:root{--color-paper: oklch(15% .008 255);--color-paper-2: oklch(19% .009 255);--color-paper-3: oklch(24% .01 255);--color-edge: oklch(32% .012 255);--color-ink: oklch(94% .005 255);--color-ink-2: oklch(74% .008 255);--color-ink-3: oklch(56% .01 255);--color-accent: oklch(80% .135 78);--color-accent-dim: oklch(62% .105 78);--color-accent-wash: oklch(80% .135 78 / .12);--color-danger: oklch(68% .165 28);--color-focus: oklch(84% .13 78);--font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-display-s: clamp(1.5rem, 3.5vw + .5rem, 2.25rem);--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 14px;--gutter-block-start: max(env(safe-area-inset-top), var(--space-md));--gutter-block-end: max(env(safe-area-inset-bottom), var(--space-md));--gutter-inline-start: max(env(safe-area-inset-left), var(--space-md));--gutter-inline-end: max(env(safe-area-inset-right), var(--space-md));--touch-target: 44px;--rule-hairline: 1px;--dur-instant: 90ms;--dur-short: .14s;--dur-medium: .22s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--layer-stage: 0;--layer-chrome: 10;--layer-sheet: 15;--layer-drop: 20;--layer-toast: 30}:root{--presence-lightness: 80%;--presence-chroma: .12}.presence{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--layer-chrome);pointer-events:none;overflow:hidden}.presence__peer{position:absolute;inset-block-start:0;inset-inline-start:0;display:flex;align-items:flex-start;gap:var(--space-2xs);transform:translateZ(0);will-change:transform;color:oklch(var(--presence-lightness) var(--presence-chroma) var(--hue, 78))}.presence__arrow{flex:none;display:block;fill:currentColor;stroke:var(--color-paper);stroke-width:1.5;stroke-linejoin:round}.presence__label{margin-block-start:14px;padding:1px var(--space-2xs);border:var(--rule-hairline) solid currentColor;border-radius:var(--radius-sm);background:color-mix(in oklab,var(--color-paper) 82%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.4;white-space:nowrap;color:currentColor}.presence__edge{display:none;flex:none;width:7px;height:7px;margin:6px;border-radius:50%;background:currentColor}.presence__peer[data-offscreen=true] .presence__arrow{display:none}.presence__peer[data-offscreen=true] .presence__edge{display:block}.presence__peer[data-offscreen=true] .presence__label{margin-block-start:2px;opacity:.6}.session{position:fixed;z-index:var(--layer-chrome);inset-block-start:var(--gutter-block-start);inset-inline-end:var(--gutter-inline-end);width:min(15rem,calc(100vw - var(--space-xl)));border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);background:color-mix(in oklab,var(--color-paper) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:appear var(--dur-medium) var(--ease-out) both}.session[hidden]{display:none}.session__share{display:block;width:100%;padding:var(--space-xs) var(--space-sm);border:0;border-radius:var(--radius-md);background:none;color:var(--color-accent);font:inherit;font-size:var(--text-sm);text-align:start;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out)}.session__share:hover{background:var(--color-accent-wash)}.session__share[hidden]{display:none}.session__head{display:flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-xs);border-block-end:var(--rule-hairline) solid var(--color-edge)}.session__title{flex:1;font-size:var(--text-sm);font-weight:500;letter-spacing:-.01em}.session__action{padding:0;border:0;background:none;color:var(--color-ink-3);font:inherit;font-size:var(--text-xs);white-space:nowrap;cursor:pointer;transition:color var(--dur-short) var(--ease-out)}.session__action:hover{color:var(--color-accent)}.session__status{margin:0;padding:var(--space-xs) var(--space-sm) 0;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.4;color:var(--color-ink-3)}.session__status[hidden]{display:none}.session__cursors{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-xs) var(--space-sm) 0}.session__cursors-label{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-3)}.session__modes{display:flex;border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);overflow:hidden}.session__mode{flex:1;min-width:0;padding:2px var(--space-2xs);border:0;border-inline-start:var(--rule-hairline) solid var(--color-edge);background:none;color:var(--color-ink-3);font:inherit;font-size:var(--text-xs);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out)}.session__mode:first-child{border-inline-start:0}.session__mode:hover{color:var(--color-ink-2)}.session__mode[aria-checked=true]{background:var(--color-accent-wash);color:var(--color-accent)}.session__roster{margin:0;padding:var(--space-xs) var(--space-sm) var(--space-sm);list-style:none}.session__participant{display:flex;align-items:center;gap:var(--space-xs);padding-block:2px;font-size:var(--text-xs)}.session__dot{flex:none;width:7px;height:7px;border-radius:50%;background:oklch(var(--presence-lightness) var(--presence-chroma) var(--hue, 78))}.session__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-ink-2)}.session__follow{padding:0;border:0;background:none;color:var(--color-ink-3);font:inherit;font-size:var(--text-xs);cursor:pointer;transition:color var(--dur-short) var(--ease-out)}.session__follow:hover:not(:disabled){color:var(--color-accent)}.session__follow[aria-pressed=true]{color:var(--color-accent)}.session__follow:disabled{opacity:.4;cursor:default}.session__action--collapse{display:none}@media (max-width: 40rem){.chip--session{inset-block-end:var(--gutter-block-end);inset-inline-end:var(--gutter-inline-end)}.chip__dots{display:flex;align-items:center}.chip__dots .session__dot{margin-inline-start:-3px;border:var(--rule-hairline) solid var(--color-paper)}.chip__dots .session__dot:first-child{margin-inline-start:0}.chip--session .chip__label{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-ink-2)}.chip--session[data-mode=share] .chip__label{color:var(--color-accent)}.session__head{flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md) var(--space-sm)}.session__title{flex:1 1 100%;font-size:var(--text-base)}.session__action,.session__action--collapse{display:inline-flex;flex:1;align-items:center;justify-content:center;min-height:var(--touch-target);padding-inline:var(--space-xs);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);color:var(--color-ink-2);font-size:var(--text-sm)}.session__share{min-height:var(--touch-target);padding:var(--space-xs) var(--space-md);font-size:var(--text-base)}.session__status{padding-inline:var(--space-md);font-size:var(--text-sm)}.session__cursors{gap:var(--space-xs);padding:var(--space-sm) var(--space-md) 0}.session__mode{min-height:var(--touch-target);padding-inline:var(--space-xs);font-size:var(--text-sm)}.session__roster{padding:var(--space-xs) var(--space-md) var(--space-md)}.session__participant{gap:var(--space-sm);padding-block:0;font-size:var(--text-sm)}.session__follow{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target);min-width:var(--touch-target);padding-inline:var(--space-sm);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);font-size:var(--text-sm)}.session__follow[aria-pressed=true]{border-color:var(--color-accent-dim)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior:none}h1,h2{font-style:normal;font-weight:500;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}#stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--layer-stage);display:block;width:100%;height:100%;touch-action:none;cursor:grab;background:var(--color-paper)}#stage[data-dragging=true]{cursor:grabbing}.drop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--layer-drop);display:grid;justify-items:center;align-items:safe center;overflow-y:auto;padding:var(--space-lg);background:var(--color-paper);transition:opacity var(--dur-medium) var(--ease-out)}.drop[data-state=over]{background:var(--color-accent-wash)}.drop[hidden]{display:none}.drop__inner{width:min(46rem,100%);margin-inline-start:min(8vw,var(--space-2xl));border-inline-start:var(--rule-hairline) solid var(--color-edge);padding-inline-start:var(--space-lg)}.drop__eyebrow{margin:0 0 var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}.drop__title{font-size:var(--text-display-s);letter-spacing:-.025em;line-height:1.1;overflow-wrap:anywhere;min-width:0}.drop__body{max-width:42ch;margin:var(--space-md) 0 0;color:var(--color-ink-2)}.drop__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);margin-top:var(--space-xl)}.drop__hint{margin:0;font-size:var(--text-sm);color:var(--color-ink-3)}.drop__status{min-height:1.5em;margin:var(--space-lg) 0 0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent)}.drop[data-state=over] .drop__inner{border-inline-start-color:var(--color-accent)}.samples{margin-top:var(--space-xl)}.samples__label{margin:0 0 var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-3)}.samples__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-sm);margin:0;padding:0;list-style:none}.sample__button{display:flex;align-items:center;gap:var(--space-sm);width:100%;height:100%;padding:var(--space-xs);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);background:var(--color-paper-2);color:inherit;font:inherit;text-align:start;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out)}.sample__button:hover{background:var(--color-paper-3);border-color:var(--color-ink-3)}.sample__button[aria-busy=true]{border-color:var(--color-accent-dim);cursor:progress}.sample__figure{position:relative;flex:none;width:4.25rem;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-paper-3)}.sample__image{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover}.sample__image--ghost{filter:grayscale(1) brightness(.5) contrast(.85)}.sample__image--full{clip-path:inset(calc(100% - var(--progress, 100%)) 0 0 0);transition:clip-path var(--dur-short) linear}.sample__scan{position:absolute;inset-inline:0;inset-block-end:var(--progress, 0%);height:1px;background:var(--color-accent);box-shadow:0 0 8px 2px var(--color-accent-wash);opacity:0;transition:inset-block-end var(--dur-short) linear,opacity var(--dur-short) var(--ease-out)}.sample__figure[data-state=loading] .sample__scan,.sample__figure[data-state=indeterminate] .sample__scan{opacity:1}.sample__figure[data-state=indeterminate] .sample__image--full{clip-path:inset(100% 0 0 0)}.sample__figure[data-state=indeterminate] .sample__scan{animation:sample-sweep 1.6s var(--ease-in-out) infinite}.sample__figure[data-state=opening]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-accent-wash);animation:sample-pulse 1.2s var(--ease-in-out) infinite}.sample__text{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0}.sample__title{font-size:var(--text-sm);font-weight:500}.sample__description{font-size:var(--text-xs);color:var(--color-ink-2)}.sample__detail{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--color-ink-3)}@keyframes sample-sweep{0%{inset-block-end:0%}to{inset-block-end:100%}}@keyframes sample-pulse{0%,to{opacity:0}50%{opacity:1}}.button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.button:hover,.button.is-hover{background:var(--color-paper-3);border-color:var(--color-ink-3)}.button:active,.button.is-active{transform:translateY(1px)}.button:disabled,.button[aria-disabled=true]{opacity:.5;cursor:not-allowed}.button--primary{border-color:var(--color-accent-dim);color:var(--color-accent)}.button--primary:hover,.button--primary.is-hover{background:var(--color-accent-wash);border-color:var(--color-accent)}.button:has(:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.chip{position:fixed;z-index:var(--layer-chrome);display:none;align-items:center;gap:var(--space-xs);min-height:var(--touch-target);padding:var(--space-2xs) var(--space-sm);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-lg);background:color-mix(in oklab,var(--color-paper) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--color-ink);font:inherit;font-size:var(--text-sm);cursor:pointer;animation:appear var(--dur-medium) var(--ease-out) both;transition:border-color var(--dur-short) var(--ease-out)}.chip:active{border-color:var(--color-ink-3)}.chip__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip__caret{flex:none;width:7px;height:7px;border-block-start:1.5px solid var(--color-ink-3);border-inline-start:1.5px solid var(--color-ink-3);transform:rotate(45deg);transform-origin:center;transition:transform var(--dur-short) var(--ease-out)}.panel{position:fixed;z-index:var(--layer-chrome);inset-block-start:var(--gutter-block-start);inset-inline-start:var(--gutter-inline-start);width:min(20rem,calc(100vw - var(--space-xl)));border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);background:color-mix(in oklab,var(--color-paper) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:appear var(--dur-medium) var(--ease-out) both}.panel[hidden]{display:none}.panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-xs);border-block-end:var(--rule-hairline) solid var(--color-edge)}.panel__name{font-size:var(--text-sm);font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel__actions{display:flex;align-items:baseline;gap:var(--space-sm)}.panel__action{padding:0;border:0;background:none;color:var(--color-ink-3);font:inherit;font-size:var(--text-xs);white-space:nowrap;cursor:pointer;transition:color var(--dur-short) var(--ease-out)}.panel__action:hover{color:var(--color-accent)}.panel__action--copy{min-width:4.5em;text-align:start}.panel__action--collapse{display:none}.panel__grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2xs) var(--space-md);margin:0;padding:var(--space-sm);font-size:var(--text-xs)}.panel__grid dt{color:var(--color-ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:.625rem;align-self:center}.panel__grid dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-ink-2);overflow-wrap:anywhere}.readout{position:fixed;z-index:var(--layer-chrome);inset-block-end:var(--gutter-block-end);inset-inline-end:var(--gutter-inline-end);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);animation:appear var(--dur-medium) var(--ease-out) both}.readout[hidden]{display:none}.readout__row{display:flex;align-items:baseline;gap:var(--space-sm);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.readout__magnification{font-size:var(--text-lg);color:var(--color-ink);letter-spacing:-.02em}.readout__level{font-size:var(--text-xs);color:var(--color-ink-3)}.readout__facts{display:grid;grid-template-columns:auto auto;gap:var(--space-2xs) var(--space-md);margin:0;font-size:var(--text-xs);text-align:end}.readout__facts dt{color:var(--color-ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:.625rem;align-self:start}.readout__facts dd{display:flex;flex-direction:column;align-items:flex-end;margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-ink-2)}.readout__aside{color:var(--color-ink-3)}.readout__aside:empty{display:none}.scalebar{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2xs)}.scalebar[hidden]{display:none}.scalebar__label{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--color-ink-2)}.scalebar__rule{position:relative;display:block;height:1px;background:var(--color-ink-2);transition:width var(--dur-short) var(--ease-out)}.scalebar__rule:before,.scalebar__rule:after{content:"";position:absolute;inset-block-start:-3px;width:1px;height:7px;background:var(--color-ink-2)}.scalebar__rule:before{inset-inline-start:0}.scalebar__rule:after{inset-inline-end:0}.toast{position:fixed;z-index:var(--layer-toast);inset-block-end:var(--gutter-block-end);inset-inline-start:var(--gutter-inline-start);max-width:min(32rem,calc(100vw - var(--space-xl)));margin:0;padding:var(--space-xs) var(--space-md);border:var(--rule-hairline) solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-paper-2);color:var(--color-ink);font-size:var(--text-sm);animation:appear var(--dur-short) var(--ease-out) both}.toast[hidden]{display:none}@keyframes appear{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 40rem){.drop__inner{margin-inline-start:0}.chip{display:inline-flex}.chip[hidden]{display:none}.chip[aria-expanded=true] .chip__caret{transform:rotate(-135deg)}.chip--slide{inset-block-end:var(--gutter-block-end);inset-inline-start:var(--gutter-inline-start);max-width:min(60vw,18rem)}.sheet[data-expanded=false]{display:none}.sheet{z-index:var(--layer-sheet);background:color-mix(in oklab,var(--color-paper) 97%,transparent);inset-block-start:auto;inset-block-end:0;inset-inline:0;width:auto;max-block-size:72svh;overflow-y:auto;overscroll-behavior:contain;border-inline-width:0;border-block-end-width:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-block-end:var(--gutter-block-end);padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px);animation:rise var(--dur-medium) var(--ease-out) both}.panel__head{flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md) var(--space-sm)}.panel__name{flex:1 1 100%;font-size:var(--text-base)}.panel__actions{flex:1 1 100%;align-items:stretch;gap:var(--space-xs)}.panel__action,.panel__action--collapse{display:inline-flex;flex:1;align-items:center;justify-content:center;min-height:var(--touch-target);min-width:0;padding-inline:var(--space-xs);border:var(--rule-hairline) solid var(--color-edge);border-radius:var(--radius-md);color:var(--color-ink-2);font-size:var(--text-sm);text-align:center}.panel__grid{padding:0 var(--space-md) var(--space-md);gap:var(--space-xs) var(--space-md);font-size:var(--text-sm)}.panel__grid dt{font-size:var(--text-xs)}.readout{inset-block-start:var(--gutter-block-start);inset-block-end:auto;gap:var(--space-2xs)}.readout__magnification{font-size:var(--text-base)}.readout__facts{gap:0 var(--space-xs)}.readout__facts dd{flex-direction:row;align-items:baseline;gap:var(--space-xs)}.toast{inset-block-end:calc(var(--gutter-block-end) + var(--touch-target) + var(--space-xs));inset-inline-end:var(--gutter-inline-end);max-width:none}}
