@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-condensed-latin-500-normal.BqaLkUoX.woff2)format("woff2"),url(/_astro/ibm-plex-sans-condensed-latin-500-normal.BLe87hIu.woff)format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-condensed-latin-600-normal.CRd5VyFf.woff2)format("woff2"),url(/_astro/ibm-plex-sans-condensed-latin-600-normal.6XnkKYvF.woff)format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-condensed-latin-700-normal.D8r4s4aS.woff2)format("woff2"),url(/_astro/ibm-plex-sans-condensed-latin-700-normal.D3enqrvP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff")}@font-face{font-family:IBM Plex Sans Hebrew;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-hebrew-hebrew-500-normal.BiCWpF8d.woff2)format("woff2"),url(/_astro/ibm-plex-sans-hebrew-hebrew-500-normal.Ddg_2VaK.woff)format("woff")}@font-face{font-family:IBM Plex Sans JP;font-style:normal;font-weight:500;font-display:swap;src:url(data:font/woff2;base64,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)format("woff2");unicode-range:U+304F,U+3053,U+3055,U+305D,U+306D,U+3089}@font-face{font-family:IBM Plex Sans KR;font-style:normal;font-weight:500;font-display:swap;src:url(data:font/woff2;base64,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)format("woff2");unicode-range:U+AD6C,U+B298,U+B4F1,U+B9AC,U+BD88,U+D558}:root{color-scheme:light dark;--color-paper:light-dark(oklch(95.3% .016 86),oklch(17.5% .006 75));--color-panel:light-dark(oklch(97.6% .009 86),oklch(21.5% .007 75));--color-panel-2:light-dark(oklch(91.7% .021 86),oklch(25.5% .008 75));--color-ink:light-dark(oklch(22.2% .004 85),oklch(94% .014 86));--color-ink-2:light-dark(oklch(39.6% .013 82),oklch(78% .018 85));--color-ink-3:light-dark(oklch(46% .012 82),oklch(70% .014 85));--color-rule:light-dark(oklch(82.9% .027 85),oklch(32% .009 80));--color-rule-strong:light-dark(oklch(60% .02 85),oklch(53% .012 80));--color-grid:light-dark(oklch(90% .02 86),oklch(21% .007 75));--color-accent:oklch(65.9% .215 38);--color-on-accent:oklch(22.2% .004 85);--color-accent-ink:light-dark(oklch(45% .165 38),oklch(73% .17 42));--color-accent-wash:light-dark(oklch(92% .05 50),oklch(27% .05 40));--color-focus:light-dark(oklch(52% .19 38),oklch(76% .16 44));--mask-solid:oklch(0% 0 0);--color-dither-dark:oklch(17.5% .006 75);--color-dither-light:oklch(80% .12 55);--font-display:"IBM Plex Sans Condensed", "Arial Narrow", sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", "IBM Plex Sans KR", "IBM Plex Sans JP", "IBM Plex Sans Hebrew", ui-monospace, monospace;--text-2xs:.75rem;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:clamp(1.75rem, 1.6vw + 1.1rem, 2.4rem);--text-display-s:clamp(2rem, 2.4vw + 1.1rem, 3.4rem);--text-code:clamp(1rem, 2.75vw, 2.3rem);--text-section:calc(var(--text-display-s) * .75);--text-h2:calc(var(--text-xl) * .75);--text-sub:max(var(--text-base), calc(var(--text-md) * .75));--space-3xs:4px;--space-2xs:6px;--space-xs:10px;--space-sm:16px;--space-md:26px;--space-lg:42px;--space-xl:68px;--space-2xl:110px;--gutter:16px;--max:1280px;--measure:62ch;--rule-hair:1px;--radius-none:0;--radius-chip:3px;--grid-cell:24px;--nav-h:64px;--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);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--z-base:1;--z-overlay:2;--z-sticky:10;--z-menu:20;--surface:var(--color-paper);--mount:var(--color-panel);--text:var(--color-ink);--text-muted:var(--color-ink-2);--edge:var(--color-rule);--accent:var(--color-accent);--on-accent:var(--color-on-accent);--shadow-color:light-dark(#1c1b191f,#00000059);--s-1:var(--space-3xs);--s-2:var(--space-2xs);--s-3:var(--space-xs);--s-4:var(--space-sm);--s-5:var(--space-md);--s-6:var(--space-lg);--s-7:var(--space-xl);--s-8:var(--space-2xl);--cut:16px;--section-gap:var(--space-xl);--font-sans:var(--font-body);--fs-h1:var(--text-section);--fs-h2:var(--text-h2);--fs-h3:var(--text-sub);--fs-body:var(--text-base);--fs-caption:var(--text-xs);--fs-mono:1rem;--fs-label:var(--text-2xs)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (width>=40rem){:root{--gutter:26px}}@media (width>=60rem){:root{--gutter:42px}}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--surface);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:400;line-height:1.6;overflow-x:clip}img,picture,svg{max-width:100%;height:auto;display:block}h1,h2,h3,h4{overflow-wrap:break-word;font-weight:600}h1{font-size:var(--fs-h1);line-height:1.15}h2{font-size:var(--fs-h2);line-height:1.2}h3,h4{font-size:var(--fs-h3);line-height:1.3}p{max-width:var(--measure);overflow-wrap:break-word}ul,ol{padding:0}a{color:var(--text);text-decoration-line:underline;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:2px}.skip-link{left:var(--s-4);z-index:10;padding:var(--s-3) var(--s-4);background:var(--mount);border:1px solid var(--edge);position:absolute;top:-100px}.skip-link:focus{top:var(--s-4)}.container{width:calc(100% - 2 * var(--gutter));margin-inline:auto}@media (width>=900px){.container{max-width:1120px}}@media (width>=1200px){.container{max-width:1280px}}.section{margin-block-start:var(--section-gap)}.section>*+*{margin-block-start:var(--s-4)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.code{font-family:var(--font-mono);overflow-wrap:anywhere;font-weight:500}.caption{font-size:var(--fs-caption);color:var(--text-muted);line-height:1.45}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{min-width:44px;min-height:44px;padding:0 var(--s-5);cursor:pointer;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;font-weight:500;line-height:1.2;text-decoration:none;transition:border-color .12s;display:inline-flex}.btn--primary:hover{border-color:var(--text)}.btn--secondary{border-color:var(--edge);color:var(--text);background:0 0}.btn--secondary:hover{border-color:var(--text-muted)}.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.construction-line{border:0;border-top:1px solid var(--edge)}.regmark{background:var(--accent);flex:none;width:6px;height:6px;display:inline-block}.mount{--cut-shape:polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%);isolation:isolate;flex-direction:column;min-width:0;height:100%;display:flex;position:relative}.mount__shadow{z-index:-1;background:var(--shadow-color);filter:blur(10px);position:absolute;inset:8px 4% -8px}.mount__edge{background:var(--edge);clip-path:var(--cut-shape);flex:1;padding:1px;transition:background-color .12s;display:flex}.mount:hover .mount__edge{background:var(--text-muted)}.mount--accent .mount__edge,.mount--accent:hover .mount__edge{background:var(--accent)}.mount__body{--cut-shape:polygon(0 0, 100% 0, 100% calc(100% - var(--cut) + .4px), calc(100% - var(--cut) + .4px) 100%, 0 100%);background:var(--mount);min-width:0;clip-path:var(--cut-shape);flex-direction:column;flex:1;display:flex}.theme-dark-only{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-light-only{display:none}:root:not([data-theme=light]) .theme-dark-only{display:block}}:root[data-theme=dark] .theme-light-only{display:none}:root[data-theme=dark] .theme-dark-only{display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.concept-tag{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:500}*,:before,:after{box-sizing:border-box}*{margin:0}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + var(--space-sm))}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6}img,canvas{max-width:100%;height:auto;display:block}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere;text-wrap:balance;min-width:0;font-style:normal;font-weight:600;line-height:1.1}h2{font-size:var(--text-h2)}h3{font-size:var(--text-sub)}.nowrap{white-space:nowrap}p{max-width:var(--measure);text-wrap:pretty}a{color:inherit;text-decoration-color:var(--color-accent);text-underline-offset:.22em;text-decoration-thickness:2px}code{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.92em;font-weight:500}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.skip{left:var(--space-sm);z-index:var(--z-menu);padding:var(--space-xs) var(--space-sm);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule-strong);position:absolute;top:-100px}.skip:focus{top:var(--space-sm)}.label,.tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.tag{text-transform:uppercase;letter-spacing:.06em}.only-light{display:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .only-light{display:block}:root:not([data-theme=dark]) .only-dark{display:none}}:root[data-theme=light] .only-light{display:block}:root[data-theme=light] .only-dark{display:none}main>section{width:min(100% - 2 * var(--gutter), var(--max));margin-inline:auto}.nav{z-index:var(--z-sticky);align-items:center;gap:var(--space-xs);height:var(--nav-h);padding-inline:var(--gutter);background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule);display:flex;position:sticky;top:0}.nav__mark{flex-shrink:0}.nav__mark img{width:auto;height:26px}.pill{align-items:center;gap:var(--space-xs);height:40px;padding:0 var(--space-2xs) 0 var(--space-sm);color:var(--color-ink-2);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out);border-radius:999px;margin-inline-start:var(--space-md);display:none}.pill:hover{border-color:var(--color-rule-strong)}.pill__code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-ink)}.pill__text{font-size:var(--text-sm)}kbd{min-width:24px;height:24px;font-family:var(--font-mono);font-size:var(--text-2xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-chip);place-items:center;display:inline-grid}.nav__links{margin-inline-start:auto;display:none}.nav__links a{min-height:44px;padding-inline:var(--space-xs);font-size:calc(var(--text-sm) * 1.3);white-space:nowrap;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.nav__links a:hover{text-decoration:underline;text-decoration-color:var(--color-accent)}.nav__links.is-open{padding:var(--space-xs) var(--gutter) var(--space-md);background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule);flex-direction:column;align-items:flex-start;display:flex;position:absolute;inset:100% 0 auto}.nav__menu{margin-inline-start:auto}.nav__menu,.theme{min-width:44px;min-height:44px;padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-none);cursor:pointer;background:0 0;font-weight:500}.theme{place-items:center;padding:0;display:inline-grid}.theme svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:18px;height:18px}.theme svg path{fill:currentColor;stroke:none}@media (width>=48rem){.pill{display:inline-flex}}@media (width>=64rem){.nav__menu{display:none}.nav__links,.nav__links.is-open{background:0 0;border:0;flex-direction:row;align-items:center;padding:0;display:flex;position:static}}.hero{gap:var(--space-lg);padding-block:var(--space-lg) var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid;position:relative}.hero:before{content:"";inset:0 calc(var(--gutter) * -1);z-index:-1;background-image:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);background-size:var(--grid-cell) var(--grid-cell);mask-image:linear-gradient(180deg, var(--mask-solid) 55%, transparent);position:absolute}.hero__copy{gap:var(--space-md);align-content:start;display:grid}.hero__title{gap:var(--space-xs);display:grid}.hero__setup{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:0;color:var(--color-ink-3);font-weight:500}.hero__claim{font-size:var(--text-display-s);letter-spacing:-.015em;font-weight:700;line-height:1.02}.hero__sub{font-size:var(--text-md);color:var(--color-ink-2);line-height:1.45}.hero__actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.hero__body{font-size:var(--text-sm);color:var(--color-ink-2)}.btn{min-height:46px;padding:0 var(--space-md);white-space:nowrap;border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-chip);cursor:pointer;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn--ghost,.btn--secondary{color:var(--color-ink);background:0 0}.btn--sm{min-height:44px;padding-inline:var(--space-sm);font-size:var(--text-sm)}@media (hover:hover){.btn:hover{transform:translateY(-1px)}.btn--ghost:hover{border-color:var(--color-ink-2)}}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.console{gap:var(--space-sm);padding:var(--space-sm);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);min-width:0;display:grid}.console__bar{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.console__title{font-size:var(--text-sub)}.badge{font-family:var(--font-mono);font-size:var(--text-2xs);padding:var(--space-3xs) var(--space-xs);color:var(--color-accent-ink);border:var(--rule-hair) solid currentColor;border-radius:var(--radius-chip);white-space:nowrap}.tabs{border-bottom:var(--rule-hair) solid var(--color-rule);display:flex}.tabs [role=tab]{min-height:44px;padding:0 var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-ink-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px}.tabs [role=tab][aria-selected=true]{color:var(--color-ink);border-bottom-color:var(--color-accent)}.panel{gap:var(--space-sm);justify-items:start;display:grid}.panel[hidden]{display:none}.cam{gap:var(--space-xs);width:100%;display:grid;position:relative}.cam__frame{position:relative}.cam img{aspect-ratio:16/9;width:100%}.cam__roi{aspect-ratio:16/7;outline:2px solid var(--color-accent);outline-offset:0;width:53%;position:absolute;top:50%;left:19%;overflow:hidden;translate:0 -12%}.cam__dither{width:100%;height:100%;image-rendering:pixelated;opacity:0;transition:opacity var(--dur-long) var(--ease-out)}.cam.is-read .cam__dither{opacity:1}.cam__scan{background:var(--color-accent);opacity:0;width:3px;position:absolute;inset:0 auto 0 0}@media (prefers-reduced-motion:no-preference){.cam.is-scanning .cam__scan{opacity:1;animation:sweep .9s var(--ease-in-out) forwards}}@keyframes sweep{0%{transform:translate(0)}to{transform:translateX(calc(var(--roi-w,400px) - 3px))}}.cam figcaption{font-size:var(--text-xs);color:var(--color-ink-3)}.cam__row{align-items:center;gap:var(--space-xs) var(--space-md);flex-wrap:wrap;display:flex}.readout{gap:var(--space-2xs) var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);flex-wrap:wrap;display:flex}.field{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2)}.input{width:100%;min-height:52px;padding:0 var(--space-sm);font-family:var(--font-mono);font-size:var(--text-md);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-none)}.input:hover{border-color:var(--color-ink-2)}.input[aria-invalid=true]{border-color:var(--color-accent-ink);border-style:dashed}.input:disabled{opacity:.5;cursor:not-allowed}.input:focus-visible{outline-offset:0}.examples{gap:var(--space-2xs);flex-wrap:wrap;align-items:center;max-width:none;display:flex}.examples__label{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.chip{min-height:36px;padding:0 var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-panel-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-chip);cursor:pointer;white-space:nowrap}@media (pointer:coarse){.chip{min-height:44px}}.chip:hover{border-color:var(--color-rule-strong)}.voice__cue{font-family:var(--font-mono);font-size:var(--text-md)}.voice__note,.voice__heard{font-size:var(--text-sm);color:var(--color-ink-2)}.voice__heard{font-family:var(--font-mono)}.reading{gap:var(--space-xs);border-top:var(--rule-hair) dashed var(--color-rule);padding-block-start:var(--space-sm);display:grid}.tokens{gap:var(--space-3xs);flex-wrap:wrap;min-height:52px;padding:0;list-style:none;display:flex}.tok{padding:var(--space-2xs) var(--space-xs);font-family:var(--font-mono);font-size:var(--text-md);background:var(--color-panel-2);border:var(--rule-hair) solid var(--color-rule);gap:2px;font-weight:500;line-height:1.1;display:grid}.tok small{font-size:var(--text-2xs);color:var(--color-ink-3);font-weight:400}.tok--mark{border-color:var(--color-accent);color:var(--color-accent-ink)}@media (prefers-reduced-motion:no-preference){.tok{animation:tok-in var(--dur-short) var(--ease-out) both;animation-delay:calc(var(--i,0) * 50ms)}}@keyframes tok-in{0%{opacity:0;transform:translateY(6px)}}.status{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2)}.status.is-bad{color:var(--color-ink)}.reading__row{justify-content:space-between;align-items:flex-end;gap:var(--space-xs);flex-wrap:wrap;display:flex}.result:empty{display:none}.rec{gap:var(--space-xs);border-top:2px solid var(--color-accent);padding-block-start:var(--space-sm);display:grid}.rec__code{font-family:var(--font-mono);font-size:var(--text-md);overflow-wrap:anywhere;font-weight:600}.rec__kind{font-size:var(--text-sm);color:var(--color-ink-2)}.rec dl{display:grid}.rec dl div{gap:var(--space-sm);padding-block:var(--space-2xs);border-top:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,9.5rem) minmax(0,1fr);display:grid}.rec dt{font-size:var(--text-sm);color:var(--color-ink-2)}.rec dd{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.rec__foot,.miss__why{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}.miss{gap:var(--space-2xs);border-top:2px dashed var(--color-rule-strong);padding-block-start:var(--space-sm);display:grid}::view-transition-old(zz-code),::view-transition-new(zz-code){animation-duration:var(--dur-long);animation-timing-function:var(--ease-out)}@media (width>=64rem){.hero{column-gap:var(--space-xl);padding-block:var(--space-xl) var(--space-2xl);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.console{padding:var(--space-md)}.hero__copy{top:calc(var(--nav-h) + var(--space-lg));align-self:start;position:sticky}}.anatomy{gap:var(--space-md);padding-block:var(--space-2xl) var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.anatomy h2{font-size:var(--text-section);max-width:30ch}.anatomy__lede{color:var(--color-ink-2)}.specimen{padding-block:var(--space-lg)}.specimen__code{max-width:none;font-family:var(--font-mono);font-size:var(--text-code);letter-spacing:-.02em;overflow-wrap:anywhere;font-weight:500;line-height:1.1}.part{border-bottom:2px solid var(--color-rule-strong)}.part--mark{color:var(--color-accent-ink);border-bottom-color:var(--color-accent)}.dash{color:var(--color-ink-3)}.callouts{gap:var(--space-2xs) var(--space-md);flex-wrap:wrap;padding-block-start:var(--space-sm);display:flex}.callout{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2)}@supports (anchor-name:--a){@media (width>=48rem){.specimen{padding-block-end:calc(var(--space-xl) + var(--space-md))}.callouts{padding:0;display:block}.callout{--lead:var(--space-xs);top:calc(anchor(bottom) + var(--space-3xs));left:calc(anchor(left) + .2em);border-inline-start:var(--rule-hair) solid var(--color-rule-strong);white-space:nowrap;padding-block-start:var(--lead);padding-inline-start:var(--space-2xs);line-height:1.2;position:absolute}.callout--low{--lead:calc(var(--space-md) + var(--space-xs))}}}.variants{border-top:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,1fr);display:grid}.variants div{gap:var(--space-3xs);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);display:grid}.variants dt{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}@media (width>=48rem){.variants{column-gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr))}}.why{gap:var(--space-lg);padding-block-start:var(--space-md);display:grid}.why__text,.langs{gap:var(--space-xs);align-content:start;display:grid}.why__text p{color:var(--color-ink-2)}.why__heading,.langs__heading{font-family:var(--font-mono);font-size:var(--text-code);letter-spacing:-.02em;overflow-wrap:anywhere;font-weight:500;line-height:1.1}.why__mark,.langs__mark{color:var(--color-accent-ink)}.langs__list{border-top:var(--rule-hair) solid var(--color-rule);padding:0;list-style:none;display:grid}.langs__list li{column-gap:var(--space-sm);padding-block:var(--space-2xs);border-bottom:var(--rule-hair) solid var(--color-rule);grid-template-columns:minmax(0,5.25rem) minmax(0,1fr);align-items:baseline;display:grid}.langs__name{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.langs code{font-size:var(--text-sm)}.langs__gloss{font-size:var(--text-xs);color:var(--color-ink-2);display:block}@media (width<=23.99rem){.langs__list li{column-gap:var(--space-xs);grid-template-columns:minmax(0,4.5rem) minmax(0,1fr)}.langs code{font-size:var(--text-xs);letter-spacing:-.03em}}@media (width>=48rem){.langs__list{column-gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}.langs code{white-space:nowrap}}@media (width>=64rem){.why__text p{max-width:72ch}.langs__list{grid-template-columns:repeat(3,minmax(0,1fr))}}.compare{gap:var(--space-md);padding-block:var(--space-2xl) var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.compare h2{font-size:var(--text-section)}.tour{gap:var(--space-lg);padding-block:var(--space-2xl) var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.tour__head,.field__head,.arch__head{gap:var(--space-xs);display:grid}.tour__head h2,.field__head h2,.arch__head h2,.apps h2,.manifest h2{font-size:var(--text-section)}.frames{gap:var(--space-lg);padding:0;list-style:none;display:grid}.frame{gap:var(--space-sm);display:grid}.frame img{aspect-ratio:16/9;object-fit:cover;border:var(--rule-hair) solid var(--color-rule);width:100%}.frame__cap{gap:var(--space-3xs);display:grid}.frame__cap p{color:var(--color-ink-2)}.frame__n,.row__n{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent-ink)}@media (width>=48rem){.frames{column-gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.frame:nth-child(2n){margin-top:var(--space-xl)}}.tour__foot{gap:var(--space-2xs);display:grid}.k{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);margin-inline-end:var(--space-xs)}.arrow{white-space:nowrap;font-weight:600}.arrow:after{content:" →"}.notes{gap:var(--space-md);display:grid}.notecard{gap:var(--space-sm);padding:var(--space-md);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);align-content:start;display:grid}.notecard p{color:var(--color-ink-2)}.bands{font-family:var(--font-mono);font-size:var(--text-2xs);grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;display:grid}.bands li{padding:var(--space-xs) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);text-align:center;overflow-wrap:anywhere;border-inline-start-width:0}.bands li:first-child{border-inline-start-width:1px}.bands .is-accept{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent)}@media (width>=48rem){.notes{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.manifest{gap:var(--space-md);padding-block:var(--space-2xl) var(--space-xl);display:grid}.manifest__rows{border-top:2px solid var(--color-ink);padding:0;list-style:none}.row{column-gap:var(--space-sm);row-gap:var(--space-xs);padding-block:var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr);display:grid}.row__codes,.row__text{grid-column:2}.row__codes{gap:var(--space-2xs) var(--space-sm);flex-wrap:wrap;max-width:none;display:flex}.row__codes code{color:var(--color-accent-ink);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);padding:2px 8px}.row__text{font-size:var(--text-sm);color:var(--color-ink-2)}@media (width>=64rem){.row{column-gap:var(--space-md);grid-template-columns:3rem minmax(0,3fr) minmax(0,4fr) minmax(0,6fr);align-items:start}.row__codes,.row__text{grid-column:auto}.row__codes{flex-direction:column;align-items:flex-start}}.field,.pipeline{gap:var(--space-md);padding-block:var(--space-xl);display:grid}.field__frames{padding:0 0 var(--space-xs);gap:var(--space-sm);scroll-snap-type:x mandatory;grid-auto-columns:85%;grid-auto-flow:column;list-style:none;display:grid;overflow-x:auto}.field__frames li{scroll-snap-align:start;gap:var(--space-xs);align-content:start;display:grid}.field__frames img,.pipeline img{aspect-ratio:1.618;object-fit:cover;border:var(--rule-hair) solid var(--color-rule);width:100%}.field__frames p,.pipeline figcaption,.cap{font-size:var(--text-sm);color:var(--color-ink-2)}.field__frames b,.pipeline figcaption b{color:var(--color-ink);display:block}@media (width>=64rem){.field__frames{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;overflow:visible}}.pipeline__steps{gap:var(--space-md);counter-reset:s;padding:0;list-style:none;display:grid}.pipeline__steps li{gap:var(--space-2xs);display:grid;position:relative}.step{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.step span{color:var(--color-accent-ink);margin-inline-end:var(--space-2xs)}.pipeline__pair{gap:var(--space-md);display:grid}.pipeline__pair figure{gap:var(--space-xs);display:grid}.pipeline__flow{font-family:var(--font-mono);font-size:var(--text-sm)}@media (width>=64rem){.pipeline__steps{grid-template-columns:repeat(3,minmax(0,1fr))}.pipeline__steps li:not(:last-child):after{content:"→";right:calc(var(--space-md) / -2);font-family:var(--font-mono);color:var(--color-accent-ink);position:absolute;top:30%;translate:50%}.pipeline__pair{grid-template-columns:repeat(2,minmax(0,1fr))}}.arch{gap:var(--space-lg);padding-block:var(--space-2xl) var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.flow{gap:var(--space-lg);display:grid}.flow__col{gap:var(--space-xs);align-content:start;display:grid;position:relative}.flow__col:not(:last-child):after{content:"↓";font-family:var(--font-mono);color:var(--color-accent-ink);justify-self:center}.flow__k{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.node{padding:var(--space-xs) var(--space-sm);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);gap:2px;font-weight:600;display:grid}.node span{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);overflow-wrap:anywhere;font-weight:400}.node--accent{border-color:var(--color-accent)}@media (width>=64rem){.flow{column-gap:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr))}.flow__col:not(:last-child):after{content:"→";right:calc(var(--space-xl) / -2);position:absolute;top:50%;translate:50% -50%}}.apps{gap:var(--space-sm);padding-block:var(--space-2xl) var(--space-xl);display:grid}.apps__list{border-top:var(--rule-hair) solid var(--color-rule-strong);padding:0;list-style:none}.app{grid-template-columns:minmax(0, calc(7rem * var(--shots,1))) minmax(0, 1fr);gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);display:grid}.app--wide-only{display:none}.app .app__media{grid-template-columns:repeat(var(--shots,1), minmax(0, 1fr));gap:2px;min-width:0;display:grid}.app img{aspect-ratio:1;object-fit:cover;width:100%}.app div{gap:var(--space-3xs);align-content:start;display:grid}.app p{font-size:var(--text-sm);color:var(--color-ink-2)}@media (width<=599px){.app--pair{grid-template-columns:minmax(0,1fr)}}@media (width>=600px){.app--wide-only{display:grid}}@media (width>=48rem){.app{grid-template-columns:minmax(0, calc(12rem * var(--shots,1))) minmax(0, 1fr);gap:var(--space-md)}.app img{aspect-ratio:1.618}}.end{gap:var(--space-lg);padding-block:var(--space-xl) var(--space-2xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.end>div{gap:var(--space-xs);align-content:start;display:grid}.end h2{font-size:var(--text-section)}.end .mail{font-size:clamp(1rem,2.25vw,1.3rem)}.app h3 a{text-decoration:none}.app h3 a:hover{text-decoration:underline;text-decoration-color:var(--color-accent)}.mail{font-family:var(--font-mono);color:var(--color-accent-ink);overflow-wrap:anywhere;justify-self:start;font-size:clamp(1.4rem,4.5vw,2.6rem);font-weight:500}@media (width>=64rem){.end{column-gap:var(--space-2xl);grid-template-columns:minmax(0,1fr) minmax(0,1.618fr)}}.colophon{gap:var(--space-sm);padding:var(--space-lg) var(--gutter);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);background:var(--color-panel);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.colophon nav{gap:0 var(--space-md);flex-wrap:wrap;display:flex}.colophon nav a{min-height:44px;color:var(--color-ink);white-space:nowrap;align-items:center;display:inline-flex}.colophon p{max-width:96ch}.page-head{gap:var(--space-md);padding-block:var(--space-xl) var(--space-lg);display:grid;position:relative}.page-head:before{content:"";inset:0 calc(var(--gutter) * -1);z-index:-1;background-image:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);background-size:var(--grid-cell) var(--grid-cell);mask-image:linear-gradient(180deg, var(--mask-solid) 40%, transparent);position:absolute}.page-head h1{font-size:var(--text-display-s);font-weight:700;line-height:1.02}.page-head__copy{gap:var(--space-sm);align-content:start;display:grid}.page-head__lede{font-size:var(--text-md);color:var(--color-ink-2);line-height:1.45}.nav__links a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px}a.pill{text-decoration:none}.block{gap:var(--space-md);padding-block:var(--space-xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.block>h2{font-size:var(--text-section)}.block__lede{color:var(--color-ink-2)}.contact-card{gap:var(--space-2xs);padding:var(--space-md);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);border-top:2px solid var(--color-accent);align-content:start;justify-self:start;display:grid}.contact-card .mail{font-size:var(--text-lg)}.contact-card p:last-child{font-size:var(--text-sm);color:var(--color-ink-2)}@media (width>=64rem){.page-head--about{column-gap:var(--space-xl);grid-template-columns:minmax(0,1.618fr) minmax(0,1fr);align-items:end}.page-head--about .contact-card{justify-self:stretch}}.explore{border-top:var(--rule-hair) solid var(--color-rule-strong);padding:0;list-style:none;display:grid}.explore li{gap:var(--space-3xs);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);align-content:start;display:grid}.explore a{font-family:var(--font-mono);font-size:var(--text-md);justify-self:start;font-weight:500}.explore p{font-size:var(--text-sm);color:var(--color-ink-2)}.explore__logo{object-fit:contain;width:auto;max-width:100%;height:1.5rem;margin-block:var(--space-3xs)}.explore__logo:not(.only-light){display:block}@media (width>=48rem){.explore{column-gap:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}}.people{gap:var(--space-md);padding:0;list-style:none;display:grid}.person{gap:var(--space-sm);height:100%;padding:var(--space-md);background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);align-content:start;display:grid}.person__head{gap:var(--space-sm);grid-template-columns:88px minmax(0,1fr);align-items:center;display:grid}.person__photo,.person__initials{object-fit:cover;border:var(--rule-hair) solid var(--color-rule);width:88px;height:88px}.person__initials{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-accent-ink);background:var(--color-panel-2);place-items:center;font-weight:500;display:grid}.person__name{font-size:var(--text-sub)}.person__role{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3);line-height:1.4}.person__bio{font-size:var(--text-sm);color:var(--color-ink-2)}.person__link{min-height:44px;font-size:var(--text-sm);white-space:nowrap;justify-self:start;align-items:center;font-weight:600;display:inline-flex}.person__link:after{content:" ↗"}@media (width>=48rem){.people{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.people{grid-template-columns:repeat(3,minmax(0,1fr))}.person--wide{grid-column:span 2}.person--wide .person__bio{max-width:68ch}}.dojo__sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.dojo p:not(.dojo__sub){font-size:var(--text-md);max-width:64ch;line-height:1.55}.dojo__head{gap:var(--space-2xs);display:grid}.hw{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.hw figure{gap:var(--space-2xs);display:grid}.hw img{aspect-ratio:3/4;object-fit:cover;border:var(--rule-hair) solid var(--color-rule);width:100%}.hw figcaption{font-size:var(--text-xs);color:var(--color-ink-3);gap:2px;display:grid}.hw figcaption code{color:var(--color-ink);font-size:var(--text-xs)}@media (width>=64rem){.hw{gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr))}}.where{gap:var(--space-lg);padding-block:var(--space-xl) var(--space-2xl);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.where>div{gap:var(--space-xs);align-content:start;display:grid}.where h2{font-size:var(--text-section)}@media (width>=48rem){.where{column-gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}}.jump{gap:var(--space-2xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.jump a{min-height:40px;padding:0 var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;background:var(--color-panel);border:var(--rule-hair) solid var(--color-rule);transition:border-color var(--dur-micro) var(--ease-out);border-radius:999px;align-items:center;text-decoration:none;display:inline-flex}.jump a:hover{border-color:var(--color-accent)}@media (pointer:coarse){.jump a{min-height:44px}}.app-sec{gap:var(--space-md);padding-block:var(--space-2xl) var(--space-lg);border-top:2px solid var(--color-ink);display:grid}.app-sec>h2{font-size:var(--text-section)}.app-sec__story{font-size:var(--text-md);line-height:1.5}.app-sec__extra,.closing{color:var(--color-ink-2)}.sub{gap:var(--space-sm);padding-block-start:var(--space-lg);display:grid}.sub>h3{font-size:var(--text-sub)}.real{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-3)}.gal{gap:var(--space-md);grid-template-columns:minmax(0,1fr);align-items:start;padding:0;list-style:none;display:grid}.gal figure,.gal li>div{gap:var(--space-2xs);display:grid}.gal img{border:var(--rule-hair) solid var(--color-rule);background:var(--color-panel);width:100%;height:auto}.gal--panels img{aspect-ratio:16/9;object-fit:cover}.gal figcaption{font-size:var(--text-sm);color:var(--color-ink-2);gap:2px;display:grid}.gal figcaption b{color:var(--color-ink);font-weight:600}@media (width>=40rem){.gal--2,.gal--3,.gal--4,.gal--panels{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.gal--3,.gal--panels{grid-template-columns:repeat(3,minmax(0,1fr))}.gal--4{grid-template-columns:repeat(4,minmax(0,1fr))}.gal--2{grid-template-columns:repeat(2,minmax(0,1fr))}.gal--single{grid-template-columns:minmax(0,.62fr)}}.delivery-steps{counter-reset:none}.delivery-steps li{border-top:2px solid var(--color-rule-strong);padding-block-start:var(--space-xs)}.delivery-steps .step-n{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-ink)}.delivery-steps .step-t{font-weight:600;line-height:1.35}@media (width>=64rem){.delivery-steps li:not(:last-child){position:relative}.delivery-steps li:not(:last-child):after{content:"→";top:calc(var(--space-xs) * -1 - .8em);right:calc(var(--space-md) / -2);font-family:var(--font-mono);color:var(--color-accent-ink);background:var(--color-paper);padding-inline:2px;position:absolute;translate:50%}}.pair{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));max-width:46rem;padding:0;list-style:none;display:grid}.pair figure{gap:var(--space-2xs);display:grid}.pair img{border:var(--rule-hair) solid var(--color-rule);width:100%}.pair li:last-child img{border-color:var(--color-accent)}.pair figcaption{font-size:var(--text-xs);color:var(--color-ink-2)}
