:root{--bg:#f9f9f7;--surface:#fcfcfb;--ink:#0b0b0b;--ink-secondary:#52514e;--ink-muted:#726f69;--hairline:#e1e0d9;--baseline:#c3c2b7;--border:#0b0b0b1a;--critical:#d03b3b;--good-text:#006300;--font-serif:georgia, "Times New Roman", times, serif;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, sfmono-regular, menlo, consolas, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);margin:0}.app{min-height:100vh}.skip-link{z-index:100;background:var(--ink);color:var(--bg);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.top-bar{border-bottom:1px solid var(--hairline);background:var(--surface);flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;display:flex}.wordmark{font-family:var(--font-serif);margin:0 auto 0 0;font-size:1.2rem;font-weight:400}.wordmark a{color:inherit;text-decoration:none}.marketing{flex-direction:column;min-height:100vh;display:flex}.marketing-top{justify-content:space-between;align-items:center;width:100%;max-width:880px;margin:0 auto;padding:1.5rem 2rem;display:flex}.marketing-top .wordmark{margin-right:0}.marketing-top a{color:var(--ink-secondary);font-size:.85rem;text-decoration:none}.marketing-top a.wordmark{color:var(--ink);font-size:1.2rem}.marketing-top a:hover{color:var(--ink)}.marketing main{text-align:center;flex:1;width:100%;max-width:880px;margin:0 auto;padding:4.5rem 2rem 3rem}.marketing-headline{font-family:var(--font-serif);margin:0 0 1.25rem;font-size:clamp(2.1rem,5vw,3.1rem);font-weight:400;line-height:1.15}.marketing-sub{max-width:560px;color:var(--ink-secondary);margin:0 auto 2.25rem;font-size:1.02rem;line-height:1.6}.marketing-ctas{flex-wrap:wrap;justify-content:center;gap:.9rem;display:flex}.cta{font:inherit;cursor:pointer;border:1px solid var(--hairline);color:var(--ink-secondary);background:0 0;border-radius:8px;padding:.65rem 1.4rem;font-size:.92rem;text-decoration:none;transition:background-color .15s ease-out;display:inline-block}.cta:hover{background:var(--surface);color:var(--ink)}.cta-primary{border-color:var(--ink);color:var(--ink);background:0 0}.cta-primary:hover{background:var(--ink);color:var(--surface)}.cta:disabled,.cta-primary:disabled{border-color:var(--hairline);color:var(--ink-muted);cursor:not-allowed;background:0 0}.cta:disabled:hover,.cta-primary:disabled:hover{color:var(--ink-muted);background:0 0}@media (width<=640px){.marketing-ctas{flex-wrap:nowrap;gap:.5rem}.marketing-ctas .cta{flex:1 1 0;min-width:0;padding:.6rem .5rem;font-size:.85rem}}.coming-soon-note{font-family:var(--font-mono);color:var(--ink-muted);margin:1.25rem 0 0;font-size:.72rem}.coming-soon-note a{color:inherit}.marketing-wheel{pointer-events:none;max-width:620px;margin:3.5rem auto 0}.marketing-nav{align-items:center;gap:1.25rem;display:flex}.marketing-section{text-align:left;border-top:1px solid var(--hairline);margin-top:5rem;padding-top:2.5rem}.marketing-section h2{font-family:var(--font-serif);margin:0 0 1.5rem;font-size:1.6rem;font-weight:400}.marketing-section h3{font-family:var(--font-serif);margin:0 0 .5rem;font-size:1.1rem;font-weight:400}.marketing-section p{color:var(--ink-secondary);margin:0;font-size:.95rem;line-height:1.6}.marketing-section code{font-family:var(--font-mono);font-size:.85em}.primitives{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;display:grid}@media (width<=720px){.primitives{grid-template-columns:minmax(0,1fr)}}.pricing-card{border:1px solid var(--hairline);background:var(--surface);border-radius:10px;max-width:460px;padding:2rem}.marketing-section .pricing-figure{font-family:var(--font-serif);color:var(--ink);margin:0 0 .4rem;font-size:2.6rem;line-height:1}.marketing-section .pricing-unit{margin:0 0 1.25rem}.pricing-card ul{margin:0 0 1.5rem;padding:0;list-style:none}.pricing-card li{color:var(--ink-secondary);padding:.4rem 0;font-size:.92rem}.pricing-card li+li{border-top:1px solid var(--hairline)}.marketing-section .pricing-note{font-family:var(--font-mono);color:var(--ink-muted);margin:1.25rem 0 0;font-size:.72rem}.faq details{border-top:1px solid var(--hairline);padding:.85rem 0}.faq details:first-of-type{border-top:none}.faq details:last-of-type{border-bottom:1px solid var(--hairline)}.faq summary{cursor:pointer;font-size:.98rem}.faq details p{max-width:640px;margin-top:.6rem}.marketing-footer{border-top:1px solid var(--hairline);text-align:center;margin-top:4rem;padding:2rem}.footer-note{font-family:var(--font-mono);color:var(--ink-muted);margin:0;font-size:.72rem}.footer-links{flex-wrap:wrap;justify-content:center;gap:1.25rem;margin-top:.9rem;font-size:.8rem;display:flex}.footer-links a{color:var(--ink-secondary);text-decoration:none}.footer-links a:hover{color:var(--ink)}.legal main{text-align:left;max-width:680px;padding-top:3rem}.legal h1{font-family:var(--font-serif);margin:0 0 .5rem;font-size:2rem;font-weight:400}.legal .effective{font-family:var(--font-mono);color:var(--ink-muted);margin:0 0 2.5rem;font-size:.72rem}.legal h2{font-family:var(--font-serif);margin:2rem 0 .5rem;font-size:1.15rem;font-weight:400}.legal p{color:var(--ink-secondary);margin:0;font-size:.95rem;line-height:1.6}.legal a{color:inherit}.year-nav{align-items:center;gap:.25rem;display:flex}.year-nav button{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;padding:0 .4rem;font-size:1.1rem}.year-nav button:hover{color:var(--ink)}.year-value{font-family:var(--font-mono);font-size:.95rem}.segmented{border:1px solid var(--hairline);border-radius:6px;margin:0;padding:0;display:flex;overflow:hidden}.segmented button{font-family:var(--font-sans);color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;padding:.35rem .8rem;font-size:.8rem;transition:background-color .15s ease-out}.segmented button+button{border-left:1px solid var(--hairline)}.segmented button:hover{background:var(--bg)}.segmented button.active{background:var(--ink);color:var(--surface)}.band-toggle{color:var(--ink-secondary);cursor:pointer;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.print-button{border:1px solid var(--hairline);color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .8rem;font-size:.8rem;text-decoration:none}.print-button:hover{background:var(--bg)}.print-button.primary,.connect-button{background:var(--ink);border-color:var(--ink);color:var(--surface)}.print-button.primary:hover,.connect-button:hover{background:var(--ink-secondary)}.wheel-select{border:1px solid var(--hairline);background:var(--surface);font-family:var(--font-sans);color:var(--ink);border-radius:6px;max-width:16rem;padding:.35rem .6rem;font-size:.8rem}.demo-banner{background:var(--bg);border-bottom:1px solid var(--hairline);color:var(--ink-secondary);text-align:center;margin:0;padding:.5rem 1.5rem;font-size:.8rem}.demo-banner a{color:inherit}.start-demo{display:contents}.link-button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.export-error{color:var(--critical);margin:0 0 1.5rem;font-size:.82rem}.create-wheel{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.9rem;max-width:460px;margin:1.5rem auto 0;padding:1.25rem 1.5rem;display:flex}.create-wheel h2{margin:0;font-size:.95rem;font-weight:600}.create-wheel label{color:var(--ink-secondary);flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.create-wheel input[type=text],.create-wheel input[type=number],.create-wheel .month-select{border:1px solid var(--hairline);font-family:var(--font-sans);color:var(--ink);background:var(--surface);border-radius:6px;padding:.4rem .6rem;font-size:.85rem}.team-picker{border:1px solid var(--hairline);border-radius:6px;flex-direction:column;gap:.35rem;margin:0;padding:.6rem .8rem;display:flex}.team-picker legend{color:var(--ink-muted);padding:0 .3rem;font-size:.72rem}.team-picker label{color:var(--ink);flex-direction:row;align-items:center;gap:.5rem;font-size:.82rem}.team-key{font-family:var(--font-mono);color:var(--ink-muted);font-size:.68rem}.loading-inline{color:var(--ink-muted);margin:0;font-size:.78rem}.form-actions{gap:.6rem;display:flex}.delete-wheel{border:1px solid var(--hairline);color:var(--critical);cursor:pointer;background:0 0;border-radius:6px;width:100%;margin-top:1.25rem;padding:.35rem .8rem;font-size:.75rem}.delete-wheel:hover{border-color:var(--critical)}.loading,.load-error,.empty-state{text-align:center;color:var(--ink-secondary);padding:3rem}.load-error{color:var(--critical)}.empty-state h2{font-family:var(--font-serif);margin:0 0 .5rem;font-weight:400}.empty-state p{margin:0 0 1.25rem}.render-error{border:1px solid var(--border);background:var(--surface);text-align:center;max-width:34rem;color:var(--ink-secondary);border-radius:10px;margin:3rem auto;padding:2.5rem}.render-error h1,.render-error h2{font-family:var(--font-serif);color:var(--ink);margin:0 0 .5rem;font-size:1.35rem;font-weight:400}.render-error p{margin:0 0 1.25rem}.render-error-region{max-width:none;margin:0;padding:2rem 1.5rem}.workspace{grid-template-columns:minmax(0,1fr) 340px;gap:1.5rem;max-width:1400px;margin:0 auto;padding:1.5rem;display:grid}@media (width<=900px){.workspace{grid-template-columns:minmax(0,1fr)}}.wheel-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem}@media (width<=639px){.workspace{gap:.75rem;padding:.5rem}.wheel-panel{padding:.75rem .5rem}}.item-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-height:calc(100vh - 8rem);padding:1rem 1.25rem;overflow-y:auto}@media (width<=639px){.item-panel{max-height:none;overflow-y:visible}}.item-group h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary);align-items:center;gap:.5rem;margin:1rem 0 .4rem;font-size:.75rem;font-weight:600;display:flex}.item-group:first-child h2{margin-top:0}.item-group ul{margin:0;padding:0;list-style:none}.item-group li{border-bottom:1px solid var(--hairline);cursor:pointer;border-radius:4px;grid-template-columns:1.1rem minmax(0,1fr) auto;align-items:baseline;gap:.5rem;margin:0 -.4rem;padding:.28rem .4rem;font-size:.82rem;display:grid}.item-group li:last-child{border-bottom:none}.item-group li.active{background:var(--hairline)}.item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-title a{color:inherit;text-decoration:none}.item-title a:hover{text-decoration:underline}.item-dates{font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;font-size:.68rem}.swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.swatch-outline{border:1.5px solid var(--ink-secondary);background:0 0}.swatch-ghost{background:var(--ink-muted);opacity:.55}.status-chip{font-family:var(--font-mono);text-align:center;font-size:.75rem}.status-done{color:var(--good-text)}.status-in-progress{color:var(--ink-secondary)}.status-planned{color:var(--ink-muted)}.artifact{text-align:center;max-width:860px;margin:0 auto;padding:3.5rem 2rem 4rem}.artifact-title{font-family:var(--font-serif);margin:0 0 .5rem;font-size:2.4rem;font-weight:400}.artifact-subtitle{font-family:var(--font-mono);color:var(--ink-muted);margin:0 0 2.5rem;font-size:.78rem}.voice-artifact .top-bar{background:0 0;border-bottom-color:#0000}.legend{color:var(--ink-secondary);justify-content:center;gap:1.5rem;margin:2.5rem 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.legend li{align-items:center;gap:.45rem;display:flex}.wheel-frame{max-width:760px;margin:0 auto;position:relative}.wheel-frame svg{width:100%;height:auto;display:block}.month-line{stroke:var(--hairline);stroke-width:1px}.month-label{font-family:var(--font-mono);letter-spacing:.08em;fill:var(--ink-muted);font-size:17px}.ring-track{fill:none;stroke:var(--hairline);stroke-width:1px}.ring-label{font-family:var(--font-sans);fill:var(--ink-secondary);paint-order:stroke;stroke:var(--surface);stroke-width:4px;font-size:16px}.porthole-ring-band{fill-opacity:.08;pointer-events:none}.porthole-months .month-label{letter-spacing:.1em;paint-order:stroke;stroke:var(--surface);stroke-width:4px;font-size:14px}.porthole-hub-disc{fill:var(--bg);stroke:var(--hairline);stroke-width:1px}.porthole-hub-year{font-family:var(--font-serif);fill:var(--ink);font-size:36px}.porthole-hub-year-fiscal{font-size:27px}.porthole-hub-tally{font-family:var(--font-sans);fill:var(--ink-secondary);font-size:18px}.porthole-hub-hint{font-family:var(--font-mono);letter-spacing:.08em;fill:var(--ink-muted);font-size:16px}.pending-move-bar{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.5rem;margin:.75rem 0;padding:.5rem .75rem;display:flex}.pending-move-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);flex:1;font-size:.8rem;overflow:hidden}.pending-move-cancel,.pending-move-confirm{cursor:pointer;border-radius:999px;min-height:28px;padding:.25rem .85rem;font-size:.8rem}.pending-move-cancel{border:1px solid var(--hairline);color:var(--ink-secondary);background:0 0}.pending-move-confirm{border:1px solid var(--ink);background:var(--ink);color:var(--surface)}@media (width<=639px){.ring-track{opacity:.45}}.wheel-frame[data-porthole=true] svg{border:1px solid var(--border);touch-action:none;border-radius:10px}.mark{cursor:default}.mark.clickable{cursor:pointer}.mark:focus{outline:none}.mark:focus-visible{filter:drop-shadow(0 0 2px var(--ink)) drop-shadow(0 0 2px var(--ink));outline:none}.mark.active{filter:drop-shadow(0 0 2px var(--ink)) drop-shadow(0 0 2px var(--ink))}.mark-halo{stroke:var(--ink);stroke-width:2.5px}.mark.window.active{stroke-width:34px;stroke-opacity:1}.mark.initiative.active{stroke-width:3px}.dot.draggable{cursor:grab;touch-action:none}.mark-hit{cursor:pointer}.mark-hit.draggable{cursor:grab;touch-action:none}.dot.dragging{cursor:grabbing}.spin-surface{cursor:grab;touch-action:none}.spin-surface:active{cursor:grabbing}.drag-date-label{font-family:var(--font-mono);letter-spacing:.04em;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:5px;pointer-events:none;font-size:19px}.window.mark-done{stroke-opacity:.62}.window.mark-planned{stroke-opacity:.26}.dot.mark-extrapolated{stroke-dasharray:2 2;opacity:.55}.done-shadow{fill:none;stroke:var(--baseline);opacity:.7;pointer-events:all}.done-shadow-connector{stroke:var(--baseline);stroke-width:1px}.done-shadow.active{stroke:var(--ink);stroke-width:3px;opacity:1}.done-shadow-connector.active{stroke:var(--ink);stroke-width:2px}.mark-added-badge{fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:1.5px}.twin-link line{stroke:var(--ink-secondary);stroke-width:1px;stroke-dasharray:2 3;pointer-events:none}.cluster-count{font-family:var(--font-mono);fill:var(--ink);font-size:9px}.initiative{fill:none;stroke:var(--ink-secondary);stroke-width:1.3px}.initiative.mark-planned{stroke:var(--ink-muted)}.layer{transition:opacity .45s ease-out}.layer-initiatives[data-visible=false]{opacity:0;pointer-events:none}.wheel-frame[data-mode=operations] .layer-initiatives[data-visible=true]{opacity:.45}.layer-ghost{pointer-events:none}.layer-ghost[data-visible=false]{opacity:0}.ghost-mark{opacity:.55}.ghost-mark.active{opacity:1;filter:drop-shadow(0 0 2px var(--ink)) drop-shadow(0 0 2px var(--ink))}.ghost-window{fill:none;stroke:var(--ink-muted)}.ghost-dot{fill:var(--ink-muted);stroke:#0000;stroke-width:8px}.layer-ghost[data-visible=true] .ghost-window{pointer-events:stroke}.layer-ghost[data-visible=true] .ghost-dot{pointer-events:all}.wheel-frame[data-mode=compliance] .window.mark-planned{stroke-opacity:.14}.wheel-frame[data-mode=compliance] .dot.mark-planned{opacity:.45}.today-marker{stroke:var(--ink);stroke-width:1.5px;animation:4s ease-out infinite breath}@media (width<=639px){.today-marker{stroke-width:1px}}@keyframes breath{0%{opacity:1}50%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion:reduce){.today-marker{animation:none}.layer,.segmented button{transition:none}}.center-year{font-family:var(--font-serif);fill:var(--ink);font-size:82px}.center-year-fiscal{font-size:56px}.center-week{font-family:var(--font-mono);letter-spacing:.04em;fill:var(--ink-muted);font-size:21px}.center-tally{font-family:var(--font-sans);fill:var(--ink-secondary);font-size:22px}.porthole-header{border-bottom:1px solid var(--hairline);background:var(--surface);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .25rem;display:flex}.porthole-header .year-nav button{min-width:24px;min-height:24px}.porthole-today{border:1px solid var(--hairline);min-height:24px;color:var(--ink-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .75rem;font-size:.8rem}.porthole-today:hover{color:var(--ink)}.wheel-tooltip{background:var(--surface);border:1px solid var(--border);pointer-events:none;text-align:left;z-index:2;border-radius:6px;flex-direction:column;gap:2px;width:max-content;max-width:min(300px,100% - 1.5rem,100vw - 1rem);max-height:min(100% - 1.5rem,100vh - 1rem);padding:.5rem .7rem;display:flex;position:absolute;overflow-y:auto;box-shadow:0 2px 10px #0b0b0b14}.tooltip-title{font-family:var(--font-serif);color:inherit;margin-right:1.1rem;font-size:.82rem;font-weight:600;text-decoration:none}a.tooltip-title:hover{text-decoration:underline}.tooltip-dates{font-family:var(--font-mono);color:var(--ink-muted);font-size:.7rem}.wheel-tooltip .status-chip{text-align:left;font-size:.7rem}.wheel-tooltip .tooltip-status{border:1px solid var(--hairline);background:var(--bg);border-radius:999px;width:fit-content;padding:.1rem .55rem}.wheel-tooltip .tooltip-status.status-projected{color:var(--ink-secondary);border-style:dashed}.wheel-tooltip.pinned{pointer-events:auto;z-index:3}.wheel-tooltip-inline{width:auto;max-width:none;max-height:none;margin:.75rem 0;position:relative}.tooltip-close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:.25rem .4rem;font-size:1.05rem;line-height:1;position:absolute;top:.35rem;right:.45rem}.tooltip-close:hover{color:var(--ink)}.tooltip-meta{align-items:center;gap:.5rem;margin:.25rem 0 0;display:flex}.tooltip-identifier{font-family:var(--font-mono);color:var(--ink-muted);font-size:.72rem}.state-chip{border:1px solid var(--hairline);background:var(--bg);color:var(--ink-secondary);white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.7rem}.state-chip.state-started{color:#1c5fae;background:#2a78d614;border-color:#2a78d659}.state-chip.state-completed{color:var(--good-text);background:#0063000f;border-color:#0063004d}.state-chip.state-canceled{color:var(--ink-muted);text-decoration:line-through}.tooltip-fields{flex-direction:column;gap:.3rem;margin:.25rem 0;display:flex}.tooltip-field{align-items:baseline;gap:.6rem;font-size:.8rem;display:flex}.tooltip-field .field-name{min-width:4.2rem;color:var(--ink-muted)}.tooltip-labels{flex-wrap:wrap;gap:.3rem;display:inline-flex}.tooltip-label{font-family:var(--font-mono);border:1px solid var(--hairline);color:var(--ink-secondary);border-radius:4px;padding:.05rem .35rem;font-size:.66rem}.tooltip-description{color:var(--ink-secondary);margin:.25rem 0;font-size:.8rem;line-height:1.5}.tooltip-note{color:var(--ink-secondary);margin:.25rem 0 0;font-size:.8rem;line-height:1.5}.tooltip-error{color:var(--critical);margin:.25rem 0 0;font-size:.8rem}.tooltip-live{font-family:var(--font-mono);color:var(--ink-muted);margin:.25rem 0 0;font-size:.66rem}.tooltip-prior{border-top:1px solid var(--hairline);margin-top:.45rem;padding-top:.4rem}.tooltip-prior-list{margin:.25rem 0 0;padding:0;list-style:none}.tooltip-prior-row{color:var(--ink-secondary);align-items:baseline;gap:.45rem;font-size:.75rem;display:flex}.tooltip-prior-outcome{flex:1}.match-chip{border:1px solid var(--hairline);color:var(--ink-secondary);white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.7rem}.match-chip.match-name{color:var(--ink-muted);border-style:dashed}.match-chip-glyph{margin-right:.3em}.tooltip-cluster-list{flex-direction:column;gap:1px;margin:.15rem 0 0;padding:0;list-style:none;display:flex}.tooltip-cluster-item{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.15rem 0;display:flex}.tooltip-cluster-item-title{font-size:.78rem}.tooltip-cluster-item:hover .tooltip-cluster-item-title{text-decoration:underline}@media print{body{background:#fff}.chrome,.top-bar,.wheel-tooltip{display:none}.artifact{padding-top:1rem}.today-marker{animation:none}}
