:root{--ink:#020303;--ink-2:#303030;--ink-3:#6c6c6c;--line:rgba(2,3,3,.1);--line-2:rgba(2,3,3,.07);--bg:#ffffff;--bg-2:#f5f5f5;--bg-3:#ebebeb;--raised:#ffffff;--mark:rgba(2,3,3,.05);--icon-ring:rgba(2,3,3,.1);--accent:#020303;--shadow:0 1px 2px rgba(2,3,3,.04),0 12px 32px rgba(2,3,3,.07);--shadow-sm:0 1px 3px rgba(2,3,3,.12);--acc:#15e396;--acc2:#6c6c6c;--acc-ink:#020303;--acc-text:#00d185;--acc-line:#00d185;--acc-hl:transparent;--acc-wash:transparent;--font:"Hanken Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;--mono:"Fragment Mono",ui-monospace,Menlo,Consolas,monospace;--fs-label:.6875rem;--fs-mono:.78rem;--fs-small:.875rem;--fs-ui:.9375rem;--fs-body:1.0625rem;--fs-lead:1.25rem;--fs-h3:1.375rem;--fs-h2:clamp(1.5rem,2.4vw,2rem);--r-pill:999px;--r-card:24px;--r-md:16px;--r-sm:12px;--measure:32rem;--wide:65rem;--cols:minmax(0,28fr) minmax(0,32fr);--col-gap:clamp(2rem,5vw,4.5rem);--gutter:clamp(16px,4vw,32px);--anchor-gap:96px;--stage-h:380px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#ffffff;--ink-2:#d1d2d2;--ink-3:#9f9f9f;--line:rgba(255,255,255,.1);--line-2:rgba(255,255,255,.08);--bg:#020303;--bg-2:#0f1010;--bg-3:#1b1c1c;--raised:#202121;--mark:rgba(255,255,255,.06);--accent:#ffffff;--icon-ring:transparent;--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.45);--shadow-sm:0 1px 3px rgba(0,0,0,.5);--acc:#15e396;--acc2:#9f9f9f;--acc-ink:#020303;--acc-text:#15e396;--acc-line:#15e396;color-scheme:dark}}:root[data-theme="dark"]{--ink:#ffffff;--ink-2:#d1d2d2;--ink-3:#9f9f9f;--line:rgba(255,255,255,.1);--line-2:rgba(255,255,255,.08);--bg:#020303;--bg-2:#0f1010;--bg-3:#1b1c1c;--raised:#202121;--mark:rgba(255,255,255,.06);--accent:#ffffff;--icon-ring:transparent;--shadow:0 1px 2px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.45);--shadow-sm:0 1px 3px rgba(0,0,0,.5);--acc:#15e396;--acc2:#9f9f9f;--acc-ink:#020303;--acc-text:#15e396;--acc-line:#15e396;color-scheme:dark}@media (pointer:coarse) and (prefers-color-scheme:dark){:root:not([data-theme="light"]){--line:rgba(255,255,255,.18);--line-2:rgba(255,255,255,.13);--mark:rgba(255,255,255,.09);--bg-2:#1a1b1b;--bg-3:#262727;--raised:#2c2d2d}}@media (pointer:coarse){:root[data-theme="dark"]{--line:rgba(255,255,255,.18);--line-2:rgba(255,255,255,.13);--mark:rgba(255,255,255,.09);--bg-2:#1a1b1b;--bg-3:#262727;--raised:#2c2d2d}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--anchor-gap)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--fs-body)/1.6 var(--font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:var(--ink);color:var(--bg)}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 30%,transparent);transition:text-decoration-color .15s,color .15s}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}code{font-family:var(--mono);font-size:var(--fs-small);background:var(--bg-2);padding:2px 6px;border-radius:6px}h1,h2,h3{font-weight:600;text-wrap:balance}h1{line-height:1.06}h2{line-height:1.12}h3{line-height:1.25}p,li,dd,figcaption{text-wrap:pretty}button{font:500 var(--fs-small)/1 var(--font);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-pill);padding:9px 16px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.page-meta,.badge,.key,.lbl,.grid thead th,.legend dd,.related h3,.demo-control legend,.demo-static summary{font-family:var(--mono);font-weight:400;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.04em}.wrap{max-width:calc(var(--wide) + 2 * var(--gutter));margin:0 auto;padding-inline:var(--gutter)}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);top:8px;background:var(--bg);padding:8px 12px;border-radius:var(--r-pill);z-index:40}.site-head{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px)}.site-head .wrap{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 28px;min-height:64px;padding-block:8px}.brand{font-weight:600;font-size:1.125rem;color:var(--ink);text-decoration:none;letter-spacing:-0.02em}.site-head .brand{display:inline-flex;align-items:center;gap:.4em}.site-head .brand img{display:block;flex:none;width:1.25em;height:1.25em}.site-head nav{justify-self:end}.site-head ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}.site-head nav a{display:block;padding:8px 14px;border-radius:var(--r-pill);color:var(--ink-3);text-decoration:none;font-size:var(--fs-ui);font-weight:500;transition:color .15s,background .15s}.site-head nav a:hover{color:var(--ink)}.site-head nav a[aria-current]{color:var(--ink);background:var(--bg-2)}.site-foot{margin-top:80px;border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--fs-small)}.site-foot .wrap{display:grid;grid-template-columns:var(--cols);column-gap:var(--col-gap);row-gap:20px;align-items:center;padding-block:32px 48px}.site-foot .wrap>*{max-width:none}.foot-brand{margin:0}.foot-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px}.foot-links{display:flex;flex-wrap:wrap;gap:4px 24px;list-style:none;margin:0;padding:0}.site-foot a{color:var(--ink-3);text-decoration:none}.site-foot a:hover{color:var(--ink)}.site-foot .brand{color:var(--ink)}.theme{display:inline-flex;align-items:center;gap:12px}.theme[hidden]{display:none}.theme .lbl{color:var(--ink-3)}.theme-pill{display:inline-flex;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--bg-2)}.theme button{display:grid;place-items:center;width:36px;height:30px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-3)}.theme button:hover{color:var(--ink);background:transparent}.theme button[aria-pressed="true"]{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px var(--line),var(--shadow-sm)}.theme svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.theme [data-set="dark"] svg{fill:currentColor;stroke:none}main>*{max-width:var(--wide)}.page-head{--h1:clamp(2.25rem,4.2vw,3.5rem);display:grid;grid-template-columns:var(--cols);column-gap:var(--col-gap);align-items:start;padding-block:64px}.home-head{--h1:clamp(2.6rem,7vw,5rem)}.ph-top{grid-column:1 / -1;display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:28px}.ph-title{grid-column:1;min-width:0}.ph-text{grid-column:2;min-width:0;margin-top:calc(.183 * var(--h1) - .403 * var(--fs-lead))}.app-icon{display:block;width:64px;height:64px;border-radius:29.5%;box-shadow:0 0 0 1px var(--icon-ring)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .app-icon{clip-path:inset(3% round 25%);transform:scale(1.064)}}:root[data-theme="dark"] .app-icon{clip-path:inset(3% round 25%);transform:scale(1.064)}.icon-row{display:flex;flex-wrap:wrap;gap:8px}.app-icon.is-small{width:40px;height:40px}.app-icon.is-card{width:40px;height:40px}.eyebrow{margin:0}.back{display:inline-flex;align-items:center;gap:8px;color:var(--ink-3);text-decoration:none;font-size:var(--fs-small);font-weight:500}.back span{transition:transform .15s}.back:hover{color:var(--ink)}.back:hover span{transform:translateX(-3px)}h1{font-size:var(--h1,clamp(2.25rem,4.2vw,3.5rem));letter-spacing:-0.035em;margin:0}.answer{font-size:var(--fs-lead);line-height:1.5;color:var(--ink-2);margin:0 0 20px}.page-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;color:var(--ink-3)}.block{display:grid;grid-template-columns:var(--cols);column-gap:var(--col-gap);padding-block:56px;border-top:1px solid var(--line)}.block-head{grid-column:1;min-width:0}.block-body{grid-column:2;min-width:0}.block-body>:first-child{margin-top:0}.block-after{grid-column:1 / -1;min-width:0;margin-top:32px}.block.wide .block-body{grid-column:1 / -1;margin-top:32px}.block.one{display:block}.block.one .block-head{margin-bottom:32px}.block.one>.block-body:empty{display:none}.block.one>.block-after{margin-top:0}.block-head h2{font-size:var(--fs-h2);letter-spacing:-0.025em;margin:0}.block p{margin:0 0 14px;color:var(--ink-2)}.block.wide .block-body>p{max-width:var(--measure)}@media (min-width:721px){.block:not(.one):not(.wide) .block-head h2{margin-top:calc(.453 * var(--fs-body) - .213 * var(--fs-h2))}.block-body>.rule-panel:first-child{margin-top:calc(.453 * var(--fs-body))}}.block-body ul:not([class]),.block-body ol:not([class]),.sources ol,.related ul,.steps{margin:0 0 14px;padding-left:0;list-style-position:outside;color:var(--ink-2)}.block-body ul:not([class])>li,.related ul>li{margin-bottom:8px}.block-body ul:not([class])>li::marker,.related ul>li::marker{color:var(--ink-3)}.sources ol>li::marker,.steps>li::marker{font:400 var(--fs-mono) var(--mono);color:var(--ink-3)}.badge{display:inline-flex;align-items:center;white-space:nowrap;line-height:1.4;padding:4px 10px 2px;border-radius:var(--r-pill);border:1px solid var(--ink);color:var(--ink);background:transparent}.badge-apple{background:var(--ink);color:var(--bg)}.badge-hyp{border-style:dashed}.badge-measured{border-style:dotted}.rules,.controls{list-style:none;margin:0;padding:0}.rule{display:grid;grid-template-columns:28px minmax(0,1fr);gap:0 16px;padding:22px 0;border-top:1px solid var(--line-2);scroll-margin-top:var(--anchor-gap)}.rule:first-child{border-top:0;padding-top:0}.num{display:grid;place-items:center;width:28px;height:28px;margin-top:1px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink-2);font:400 var(--fs-mono)/1 var(--mono);font-variant-numeric:tabular-nums;text-decoration:none;transition:border-color .15s,color .15s}.num:hover{border-color:var(--ink);color:var(--ink)}.ctl .num{width:26px;height:26px;background:var(--raised)}.rule .body,.ctl .body{min-width:0}.rule .body p,.ctl .body p{margin:0;color:var(--ink)}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px!important;line-height:1.6;color:var(--ink-3)}.src{font:400 var(--fs-mono)/1.6 var(--mono);color:var(--ink-3)}.src a{color:var(--ink-3);text-decoration-color:color-mix(in srgb,currentColor 15%,transparent);text-underline-offset:4px}.src a:hover{color:var(--ink);text-decoration-color:currentColor}.rule:target{background:var(--mark);border-radius:var(--r-sm)}.rule-panel{background:var(--bg-2);border-radius:var(--r-card);padding:28px}.rule-panel .rules{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.rule-panel .rule,.rule-panel .rule:first-child{padding:20px 22px 22px;border:0;border-radius:var(--r-md);background:var(--raised)}.rule-panel .rule:target{background:var(--raised);box-shadow:0 0 0 2px var(--ink)}.rule-panel .num{background:var(--raised)}.rule-panel.is-wide .rules{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-panel.is-wide .rule{grid-row:span 2;grid-template-rows:subgrid}.rule-panel.is-wide .rule .body{display:contents}.rule-panel.is-wide .rule .num{grid-column:1;grid-row:1}.rule-panel.is-wide .rule .body>p{grid-column:2}.rule-panel.is-wide .rule .meta{grid-row:2;margin-top:0!important;align-self:start}.block-body .legend{flex-direction:column;gap:12px}.cl-zone{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.cl-zone .type-picker{display:block;margin:0}.cl-zone .type-picker .lbl{display:none}.cl-zone .type-picker ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.cl-zone .type-picker a{display:block;padding:10px 16px;border-radius:var(--r-pill);background:var(--bg-2);color:var(--ink-3);text-decoration:none;font-size:var(--fs-ui);font-weight:500;line-height:1.35;white-space:nowrap;transition:background .15s,color .15s}.cl-zone .type-picker a:hover{color:var(--ink)}.cl-zone .type-picker.is-tabs a[aria-selected="true"]{background:var(--ink);color:var(--bg)}.cl-panels{min-width:0;display:flex;flex-direction:column;gap:16px}.cl-type{background:var(--bg-2);border-radius:var(--r-card);padding:28px;scroll-margin-top:var(--anchor-gap)}.cl-type-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.cl-type h3{margin:0;font-size:var(--fs-h3);letter-spacing:-0.02em}.controls{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.ctl{display:grid;grid-template-columns:auto 1fr;gap:0 12px;padding:20px 22px 22px;border-radius:var(--r-md);background:var(--raised);scroll-margin-top:var(--anchor-gap)}.ctl:target{box-shadow:0 0 0 2px var(--ink)}.ctl.no-num{grid-template-columns:minmax(0,1fr)}.key{display:block;line-height:26px;margin:1px 0 4px;color:var(--ink-3)}.cl-actions{display:flex;gap:8px}.cl-actions button{background:var(--raised);border-color:transparent;box-shadow:var(--shadow-sm)}.cl-actions button:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.cl-actions[hidden]{display:none}.block.has-actions .block-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}.head-actions button{background:var(--bg-2);border-color:transparent;box-shadow:none}.cl-all{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.cl-all .ctl{background:var(--bg-2)}.cl-not{margin:2px 0 0!important;font-size:var(--fs-small);color:var(--ink-3)!important}#checklist{--picker-h:64px}#checklist .ctl,#checklist .cl-type{scroll-margin-top:calc(var(--head-stuck,64px) + var(--picker-h) + 16px)}@media (min-width:721px){#checklist .type-picker{position:sticky;top:var(--head-stuck,64px);z-index:5;padding-block:12px;margin-block:-12px}#checklist .type-picker.is-stuck{background:var(--bg);box-shadow:0 0 0 100vmax var(--bg),0 1px 0 100vmax var(--line);clip-path:inset(0 -100vmax -1px)}.cl-type .controls{grid-template-columns:repeat(2,minmax(0,1fr))}.cl-type .ctl{grid-row:span 2;grid-template-rows:subgrid}.cl-type .ctl .body{display:contents}.cl-type .ctl .num{grid-column:1;grid-row:1}.cl-type .ctl .body>p{grid-column:2}.cl-type .ctl.no-num .body>p{grid-column:1}.cl-type .ctl .meta{grid-row:2;margin-top:0!important;align-self:start}.cl-type .ctl-width{grid-column:1 / -1;grid-row:auto;grid-template-rows:auto;grid-template-columns:26px calc(50% - 66px) 70px minmax(0,1fr)}.cl-type .ctl-width .body>p{grid-row:1}.cl-type .ctl-width .body>p.meta{grid-column:4}}.demo{margin:0;padding:24px;border-radius:var(--r-card);background:var(--bg-2)}.demo-intro{max-width:var(--measure);margin:0 0 16px;color:var(--ink-2)}.demo-live[hidden]{display:none}.demo-planned{display:grid;place-items:center;min-height:240px;border-radius:var(--r-md);background:var(--raised);color:var(--ink-3);font:400 var(--fs-label) var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px}.is-planned .demo-intro{margin:0}.demo-control{border:0;margin:0 0 16px;padding:0;min-width:0;display:flex;align-items:center;gap:8px 12px}.demo-control legend{float:left;flex:none;color:var(--ink-3);margin-right:4px;padding:0}.seg{display:flex;min-width:0;gap:2px;padding:3px;border-radius:var(--r-pill);background:var(--bg-3);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg label{position:relative;flex:none;cursor:pointer}.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.seg span{display:block;padding:7px 14px;border-radius:var(--r-pill);font-size:var(--fs-small);font-weight:500;color:var(--ink-3);white-space:nowrap}.seg input:checked + span{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-sm)}.seg input:focus-visible + span{outline:2px solid var(--ink);outline-offset:1px}.demo-stage,.demo-still{display:grid;place-items:center;height:var(--stage-h)}.demo-caption{margin:12px 0 0!important;min-height:1.6em;font-size:var(--fs-small);color:var(--ink-2)}.demo-static{margin-top:16px}.demo-static summary{cursor:pointer;color:var(--ink-3)}.demo-static ol{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.demo-static li p{font-size:var(--fs-small);color:var(--ink-2);margin:8px 0 0}.demo-still{--stage-h:170px}.frame{width:min(100%,calc(var(--stage-h) * var(--r,0.69)));border:3px solid var(--ink);border-radius:16px;background:var(--bg);overflow:hidden}.frame .g-app{display:flex;flex-direction:column;height:100%}.g-top,.g-bottom{display:block;flex:0 0 9%;background:var(--bg-2)}.g-list{flex:1;display:flex;flex-direction:column;gap:5%;padding:6%}.g-row{display:block;flex:1;background:var(--bg-2);max-height:22px;border-radius:4px}.demo-stage:has(.b-stage),.demo-still:has(.b-stage){display:block;height:auto;place-items:normal}.b-stage{--dur:760ms;--ease:cubic-bezier(.22,1,.36,1);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,3vw,40px)}.b-col{min-width:0}.b-slot{position:relative;aspect-ratio:1;container-type:inline-size;--u:calc(100cqw / 300);perspective:calc(var(--u) * 1400)}.b-stage .b-label{margin:10px 0 0;text-align:center;font:400 var(--fs-label)/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.b-dev{position:absolute;left:50%;top:50%;transform-origin:0 0;transform-style:preserve-3d;transition:transform var(--dur) var(--ease)}.b-half{position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;transition:transform var(--dur) var(--ease)}.b-left{left:0;transform-origin:100% 50%;transform:rotateY(-180deg)}.b-right{left:50%;transform:translateZ(calc(var(--u) * -1))}.b-dev.is-open .b-left{transform:rotateY(0deg)}.b-dev.is-open .b-right{transform:translateZ(0)}.b-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.b-back{transform:rotateY(180deg)}.b-body,.b-screen,.b-spine{position:absolute;display:block}.b-body{inset:0;background:var(--ink)}.b-screen,.b-layer{background:var(--bg)}.b-spine{background:var(--ink-3);border-radius:99px}.b-layer{position:absolute;overflow:hidden}.b-inner{transform:translateZ(calc(var(--u) * .5));opacity:0;pointer-events:none;transition:opacity calc(var(--dur) * .35) ease}.b-dev.is-open .b-inner{opacity:1;transition-delay:calc(var(--dur) * .6)}.b-it{position:absolute;display:block;box-sizing:border-box;transition-property:left,top,width,height,border-radius,transform,opacity,background-color;transition-duration:var(--dur);transition-timing-function:var(--ease);transition-delay:var(--d,0ms),var(--d,0ms),var(--d,0ms),var(--d,0ms),0ms,0ms,0ms,0ms}.b-stage.is-one{grid-template-columns:minmax(0,44rem);justify-content:center}.b-pill{border:calc(var(--u) * 1) solid var(--ink-2);background-color:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink-2)}.b-pill.b-solid{background-color:var(--raised)}.b-gly{color:var(--ink-2)}.b-gly.b-sel{color:var(--ink)}.b-g{position:absolute;left:22%;top:22%;width:56%;height:56%;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.b-gly.b-sel .b-g{stroke-width:2.8}.b-badge{background:var(--ink);box-shadow:0 0 0 calc(var(--u) * .8) var(--raised)}.b-zone{background:color-mix(in srgb,var(--ink) 12%,transparent)}.b-axis{width:0!important;border-left:1px dashed var(--ink-3)}.b-rule{background:var(--bg-3)}.b-kbd{background:var(--bg-2);box-shadow:0 -1px 0 var(--line)}.b-key{background:var(--raised);box-shadow:0 1px 0 var(--line)}.b-gap{background:var(--ink)}.b-handle{background:var(--bg-3)}.b-it.is-gone{opacity:0}.b-btn,.b-main,.b-cap,.b-pill,.b-cam{z-index:3}.b-gly{z-index:4}.b-badge{z-index:5}.b-kbd,.b-key,.b-zone,.b-axis{z-index:2}.b-soft,.b-cell{background:var(--bg-3)}.b-main{background:var(--ink)}.b-cam{background:radial-gradient(circle at 50% calc(var(--u) * 5),color-mix(in srgb,var(--ink-3) 80%,var(--bg)) 0 calc(var(--u) * 1.5),var(--ink) calc(var(--u) * 1.9))}.b-main .b-g{stroke:var(--bg);stroke-width:2.6}.b-btn .b-g{stroke:var(--ink)}.b-time{display:grid;place-items:center;font:600 calc(var(--u) * 4.3)/1 var(--font);letter-spacing:-0.02em;color:var(--ink);white-space:nowrap}.b-signal{display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * .6);color:var(--ink)}.b-signal .b-g{position:static;width:calc(var(--u) * 5.4);height:calc(var(--u) * 5.4);stroke-width:2.4}.b-ico.is-g{width:calc(var(--u) * 9);height:calc(var(--u) * 9);margin:calc(var(--u) * -4.5) 0 0 calc(var(--u) * -4.5);border:0;border-radius:0;color:var(--ink-2)}.b-ico.is-g .b-g{left:0;top:0;width:100%;height:100%}.b-ico.is-g.is-sel{background:none;color:var(--ink)}.b-ico.is-g.is-sel .b-g{stroke-width:2.8}.b-btn,.b-cap{border:calc(var(--u) * 1.1) solid var(--ink);background:var(--raised)}.b-line{background:var(--line)}.b-ico{position:absolute;width:calc(var(--u) * 5.2);height:calc(var(--u) * 5.2);margin:calc(var(--u) * -2.6) 0 0 calc(var(--u) * -2.6);border-radius:50%;border:calc(var(--u) * 1) solid var(--ink-3);transition:left var(--dur) var(--ease),top var(--dur) var(--ease)}.b-ico.is-sel{background:var(--ink);border-color:var(--ink)}.b-more::before{content:"";position:absolute;left:50%;top:50%;width:calc(var(--u) * 1.8);height:calc(var(--u) * 1.8);margin:calc(var(--u) * -.9) 0 0 calc(var(--u) * -.9);border-radius:50%;background:var(--ink);box-shadow:calc(var(--u) * -3.2) 0 0 var(--ink),calc(var(--u) * 3.2) 0 0 var(--ink)}.demo-still .b-stage .b-label{font-size:9px;margin-top:4px}.demo-stage:has(.s4-stage),.demo-still:has(.s4-stage){display:block;height:auto;place-items:normal}.s4-stage{--dur:560ms;--ease:cubic-bezier(.22,1,.36,1);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 16px}.s4-col{min-width:0}.s4-slot{position:relative;aspect-ratio:1;container-type:inline-size;--u:calc(100cqw / 300)}.s4-screen{position:absolute;overflow:hidden;background:var(--bg);border-radius:calc(var(--u) * 12);box-shadow:0 0 0 calc(var(--u) * 3) var(--ink);transition:left var(--dur) var(--ease),top var(--dur) var(--ease),width var(--dur) var(--ease),height var(--dur) var(--ease)}.s4-pane{position:absolute;left:0;top:0;overflow:hidden;transition:width var(--dur) var(--ease),height var(--dur) var(--ease)}.s4-it{position:absolute;display:block;transition-property:left,top,width,height,border-radius,opacity;transition-duration:var(--dur);transition-timing-function:var(--ease)}.s4-it.is-gone{opacity:0}.s4-soft,.s4-cell{background:var(--bg-3)}.s4-field{box-shadow:inset 0 0 0 1px var(--line);background:var(--raised)}.s4-ink{background:var(--ink)}.s4-media{background:color-mix(in srgb,var(--ink-3) 30%,var(--bg-3))}.s4-play{background:var(--raised);box-shadow:0 0 0 calc(var(--u) * 1) var(--ink)}.s4-track{background:var(--raised)}.s4-gap{background:var(--ink)}.s4-handle{background:var(--bg-3)}.s4-stage .s4-label{margin:6px 0 0;text-align:center;font:400 var(--fs-label)/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.demo-still .s4-stage{gap:6px}.demo-still .s4-stage .s4-label{display:none}@media (max-width:900px){.demo-live .s4-stage{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.demo-live .s4-stage{grid-template-columns:minmax(0,1fr)}}.demo-control.is-range{display:block}.demo-control.is-range legend{float:none;margin:0 0 8px}.range{position:relative;padding-bottom:30px}.range input[type="range"]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:22px;margin:0;background:transparent;cursor:pointer}.range input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:99px;background:var(--bg-3)}.range input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:var(--raised);box-shadow:0 0 0 1px var(--line),var(--shadow-sm)}.range input[type="range"]::-moz-range-track{height:4px;border-radius:99px;background:var(--bg-3)}.range input[type="range"]::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:var(--raised);box-shadow:0 0 0 1px var(--line),var(--shadow-sm)}.range input[type="range"]:focus-visible{outline:none}.range input[type="range"]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--ink)}.range input[type="range"]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 2px var(--ink)}.range .ticks{position:absolute;left:11px;right:11px;top:30px;height:20px}.range .tick{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;font:400 var(--fs-label)/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.range .tick:first-child{transform:none}.range .tick:last-child{transform:translateX(-100%)}.range .tick::before{content:"";position:absolute;left:50%;top:-8px;width:1px;height:5px;background:var(--ink-3)}.range .tick:first-child::before{left:0}.range .tick:last-child::before{left:100%}@media (max-width:520px){.range .tick:not(:first-child):not(:last-child){font-size:0}}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-weight:600;font-size:var(--fs-body);position:relative}.faq details:first-child summary{padding-top:0}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"";position:absolute;right:8px;top:24px;width:8px;height:8px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(45deg);transition:transform .2s}.faq details[open] summary::after{transform:rotate(-135deg);top:28px}.faq details:first-child summary::after{top:6px}.faq details[open]:first-child summary::after{top:10px}.faq details p{margin:0 0 18px;color:var(--ink-2)}figure.apple,.schema-figure{margin:28px 0}.block-body>figure:last-child{margin-bottom:0}figure.apple img{display:block;max-width:100%;height:auto;border-radius:var(--r-md)}figure.apple .img-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) figure.apple .img-dark{display:block}:root:not([data-theme="light"]) figure.apple .has-dark{display:none}}:root[data-theme="dark"] figure.apple .img-dark{display:block}:root[data-theme="dark"] figure.apple .has-dark{display:none}figure.apple .ph{display:grid;place-items:center;max-width:100%;border-radius:var(--r-md);background:var(--bg-2);color:var(--ink-3);font:400 var(--fs-label) var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:20px;text-align:center}figure.apple figcaption,.schema-figure figcaption{margin-top:12px;font-size:var(--fs-small);color:var(--ink-3)}figure.apple.is-wide{margin:0}.stage{display:grid;place-items:center;padding:clamp(24px,5vw,64px);border-radius:var(--r-card);background:var(--bg-2)}figure.apple .stage img{width:100%;max-width:min(100%,var(--img-max,100%));border-radius:0}.stage.is-photo{padding:0;overflow:hidden}.stage.is-pair{display:flex;justify-content:center;align-items:flex-end;gap:clamp(16px,4vw,48px)}.stage.is-pair .shot{flex:0 1 var(--w);min-width:0}.stage .shot-label{margin:12px 0 0;text-align:center;font:400 var(--fs-label)/1.4 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.block.one>.block-head:empty{display:none}figure.apple.is-wide figcaption{max-width:var(--measure)}.timeline li figure.about-shot{grid-column:2;margin:6px 0 4px}figure.about-shot img{display:block;width:100%;height:auto;border-radius:var(--r-md)}figure.about-shot figcaption{margin-top:10px;font-size:var(--fs-small);color:var(--ink-3)}.credit{font:400 var(--fs-label) var(--mono)}.credit a{color:var(--ink-3)}.sources ol{font-size:var(--fs-small)}.sources li{margin-bottom:8px}.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px 28px}.related>div{min-width:0}.related h3{line-height:1.6;margin:2px 0 6px;color:var(--ink-3)}.related ul{font-size:var(--fs-ui)}.signature{padding-block:44px 8px;border-top:1px solid var(--line);font-size:var(--fs-small);color:var(--ink-2)}main>.signature>*,main>.about-line>*{max-width:40rem}.signature p{margin:0 0 6px}.signature a{color:var(--ink-2)}.claims,.illustrates{list-style:none;margin:0;padding:0}.claims li,.illustrates li{padding:14px 0;border-top:1px solid var(--line-2)}.claims li:first-child,.illustrates li:first-child{border-top:0;padding-top:0}.claims p{margin:0}.illustrates li{color:var(--ink-2)}table.grid{width:100%;border-collapse:collapse;font-size:var(--fs-ui)}.block-body>p + table.grid{margin-top:28px}.grid th,.grid td{text-align:left;vertical-align:top;padding:16px 16px 16px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}.grid thead th{color:var(--ink-3);border-bottom-color:var(--line);padding-top:0}.grid tbody th{font-weight:600;color:var(--ink);min-width:7.5rem}.grid .src{display:block;margin-top:6px}.grid td>.badge{display:flex;width:max-content;margin:8px 0 0}.legend{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;color:var(--ink-3)}.legend div{display:flex;align-items:baseline;gap:10px}.legend dt{display:flex}.legend dd{margin:0}.block.one .block-head .legend{margin-top:0}.cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}.card{position:relative;display:flex;flex-direction:column;padding:26px 28px;border-radius:var(--r-card);background:var(--bg-2);min-width:0;transition:transform .2s,box-shadow .2s}.card h3{margin:0 0 8px;font-size:var(--fs-h3);letter-spacing:-0.02em}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}.card h3 a:focus-visible{outline:none}.card:has(h3 a:focus-visible){outline:2px solid var(--ink);outline-offset:3px}.card p{margin:0;color:var(--ink-2);font-size:var(--fs-ui);max-width:44rem}.card-meta{margin-top:14px!important}.card-text{min-width:0}.card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:20px}.card-foot .badge{margin-left:6px}.card-foot .badge:first-child{margin-left:0}.case-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}#by-question .case-cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:720px){#by-question .case-cards{grid-template-columns:minmax(0,1fr)}}.schema-art{display:grid;place-items:center;padding:24px;border-radius:var(--r-md);background:var(--bg-2);color:var(--ink)}.schema-art svg{width:100%;max-width:440px;height:auto}.block-head>.schema-figure{margin:32px 0 0}@media (max-width:720px){.block-head>.schema-figure{margin-top:20px}}@media (min-width:721px){.block.has-schema .block-body{margin-top:calc(.907 * var(--fs-h2) + 32px)}}.card.has-art{display:grid;grid-template-columns:var(--cols);column-gap:var(--col-gap);align-items:center;padding:0}.card.has-art .card-art{margin:20px 0 20px 20px}.card.has-art .card-text{padding:28px 32px 28px 0}.card-art{display:grid;place-items:center;aspect-ratio:16 / 10;border-radius:var(--r-md);background:var(--raised);color:var(--ink)}.card-art svg{width:86%;height:auto;overflow:visible}.s-body{fill:currentColor}.s-screen{fill:var(--bg)}.s-hinge{fill:var(--ink-3)}.s-btn{fill:var(--bg);stroke:currentColor;stroke-width:1.3}.s-soft{fill:var(--bg-3)}.s-bar{fill:var(--raised);stroke:currentColor;stroke-width:1.5}.s-ink{fill:currentColor}.s-dot{fill:none;stroke:currentColor;stroke-width:1.5}.s-arrow{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.s-hatch{fill:var(--ink-3)}.s-region{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}.hero-anim{margin-top:32px}.hero-anim .demo-planned{min-height:clamp(240px,30vw,400px);background:var(--bg-2);border-radius:var(--r-card);margin-bottom:14px}.hero-anim p{max-width:var(--measure);margin:0;font-size:var(--fs-small);color:var(--ink-3)}.home-head{padding-block:56px 64px}.home-head h1{letter-spacing:-0.045em}.entries{list-style:none;margin:0;padding:0;display:grid;gap:12px}.home-entries .entries{grid-template-columns:repeat(3,minmax(0,1fr))}.entries li{min-width:0}.entries a{display:flex;flex-direction:column;gap:10px;height:100%;min-height:200px;padding:28px;border-radius:var(--r-card);background:var(--bg-2);color:var(--ink);text-decoration:none;transition:transform .2s,box-shadow .2s}.entries a::after{content:"→";margin-top:auto;font-size:var(--fs-lead);color:var(--ink-3);transition:transform .2s,color .2s}.entries a:hover::after{transform:translateX(4px);color:var(--ink)}.entry-title{display:block;font-weight:600;font-size:var(--fs-h3);line-height:1.25;letter-spacing:-0.02em}.entry-text{display:block;color:var(--ink-2);font-size:var(--fs-ui)}.about-line{padding-block:44px;border-top:1px solid var(--line);color:var(--ink-2)}.about-line p{margin:0}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:4.5rem 1fr;align-items:baseline;gap:16px;padding:14px 0;border-top:1px solid var(--line-2)}.timeline li:first-child{border-top:0;padding-top:0}.timeline p{margin:0}.year{font:400 var(--fs-ui)/1.6 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.steps>li{margin-bottom:6px}@media (hover:hover) and (pointer:fine){.card:hover,.entries a:hover{box-shadow:var(--shadow)}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.card:hover,.entries a:hover{transform:translateY(-2px)}}@media (min-width:721px){.icon-row{max-width:calc((100% - var(--col-gap)) * 28 / 60);gap:6px}.icon-row .app-icon.is-small{width:35px;height:35px}}@media (pointer:coarse){.theme button{width:44px;height:40px}.site-head nav a{padding-block:10px}.cl-zone .type-picker a{padding-block:12px}.cl-actions button{min-height:44px}.back{min-height:44px}.num{position:relative}.num::after{content:"";position:absolute;inset:-9px}}@media (max-width:720px){:root{--fs-body:1rem;--anchor-gap:80px;--stage-h:300px}.site-head{top:calc(6px - 12px - 1.125rem * 1.6 - 8px)}.site-head .wrap{grid-template-columns:1fr;padding-block:12px 6px;min-height:0}.site-head nav{justify-self:start;margin-inline-start:-10px}.site-head nav a{padding-inline:10px}.site-foot .wrap{grid-template-columns:minmax(0,1fr)}.page-head{grid-template-columns:minmax(0,1fr);padding-block:40px 40px}.ph-text,.home-head .ph-text{grid-column:1;margin-top:20px}.block{grid-template-columns:minmax(0,1fr);padding-block:44px}.block-body{grid-column:1}.block-head{margin-bottom:20px}.block.wide .block-body{margin-top:0}.block-body ul:not([class]),.block-body ol:not([class]),.sources ol,.related ul,.steps{padding-left:1.2rem}.cl-zone .type-picker{position:sticky;top:var(--head-stuck,56px);z-index:5;margin-inline:calc(-1 * var(--gutter));padding:10px 0;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.cl-zone .type-picker ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:0 var(--gutter) 2px;scroll-padding-inline:var(--gutter)}.cl-zone .type-picker ul::-webkit-scrollbar{display:none}.cl-type{padding:18px;border-radius:20px}.rule-panel{padding:14px;border-radius:20px}.rule-panel .rule,.rule-panel .rule:first-child{padding:16px 16px 18px}.rule-panel.is-wide .rules{grid-template-columns:minmax(0,1fr)}.stage.is-pair{flex-direction:column;align-items:center}.stage.is-pair .shot{flex:none;width:min(100% * var(--r,1),var(--w))}.ctl{padding:16px 16px 18px}.home-entries .entries{grid-template-columns:minmax(0,1fr)}.card.has-art{grid-template-columns:minmax(0,1fr);row-gap:18px;padding:14px 14px 22px}.card.has-art .card-art{margin:0}.card.has-art .card-text{padding:0 8px}.entries a{min-height:0}.demo{padding:16px;border-radius:20px}.demo-control{position:sticky;top:var(--head-stuck,56px);z-index:5;margin:-8px -16px 8px;padding:calc(14px + 1.6 * var(--fs-label)) 16px 8px;background:var(--bg-2)}.demo-control legend{position:absolute;top:8px;left:16px;margin:0;line-height:1.6}.demo-control.is-stuck{box-shadow:0 1px 0 var(--line)}.demo-live .b-stage{grid-template-columns:minmax(0,1fr)}table.grid,.grid tbody,.grid tr,.grid th,.grid td{display:block}.grid thead{display:none}.grid tr{padding:12px 0;border-bottom:1px solid var(--line)}.grid th,.grid td{border:0;padding:4px 0}.grid td::before{content:attr(data-label);display:block;font:400 var(--fs-label) var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.badge-rec{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}.badge-hyp{border-color:var(--acc2);color:var(--acc2)}.rule[data-level="rec"] .num,.ctl[data-level="rec"] .num{border-color:var(--acc-line);color:var(--acc-text)}a:hover{color:var(--acc-text)}:focus-visible{outline-color:var(--acc-line)}.site-head nav a[aria-current]{color:var(--acc-text);background-image:linear-gradient(var(--acc-wash),var(--acc-wash))}.back:hover{color:var(--acc-text)}.seg input:checked + span{color:var(--acc-text);box-shadow:inset 0 0 0 1.5px var(--acc-line),var(--shadow-sm);background-image:linear-gradient(var(--acc-wash),var(--acc-wash))}.cl-zone .type-picker.is-tabs a[aria-selected="true"]{background:var(--acc);color:var(--acc-ink)}.tt-soft{color:var(--acc-text);background-image:linear-gradient(transparent 58%,var(--acc-hl) 58%,var(--acc-hl) 92%,transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone}.s-btn{stroke:var(--acc-line);fill:color-mix(in srgb,var(--acc) 12%,var(--bg))}.s-bar{stroke:var(--acc-line);fill:color-mix(in srgb,var(--acc) 14%,var(--bg))}.b-btn,.b-cap{border-color:var(--acc-line);background-color:color-mix(in srgb,var(--acc) 10%,var(--raised))}.b-btn .b-g,.b-ico.is-g{stroke:var(--acc-line);color:var(--acc-line)}.b-main{background:var(--acc)}.b-pill{border-color:var(--acc-line);background-color:color-mix(in srgb,var(--acc) 12%,transparent)}.b-pill.b-solid{background-color:color-mix(in srgb,var(--acc) 12%,var(--raised))}.b-gly{color:var(--acc-line)}.b-badge{background:var(--acc)}.b-pill[data-id^="o-"]{border-color:var(--ink-2);background-color:color-mix(in srgb,var(--ink) 5%,transparent)}.b-gly[data-id^="o-"]{color:var(--ink-2)}.b-word{display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * 1.2);font:600 calc(var(--u) * 5.2)/1 var(--font);letter-spacing:-0.01em;white-space:nowrap;color:var(--ink)}.b-word .b-g{position:static;flex:none;width:calc(var(--u) * 6);height:calc(var(--u) * 6);stroke:var(--acc-line)}.b-badge.b-word{font-size:calc(var(--u) * 4);color:var(--acc-ink)}[data-demo="symbols-not-labels"] .b-stage.is-one{grid-template-columns:minmax(0,24rem)}[data-demo="symbols-not-labels"] .b-slot{--u:calc(100cqw / 172);aspect-ratio:172 / 224}@media print{body{font-size:11pt;background:#fff;color:#000}.site-head,.site-foot,.skip,.cl-actions,.type-picker,.demo,#demo,.theme{display:none!important}a{color:inherit}.cl-type .controls{grid-template-columns:minmax(0,1fr)}.cl-type .ctl-width{grid-template-columns:26px minmax(0,1fr)}.cl-type .ctl-width .meta{grid-row:2;grid-column:2;margin-top:12px!important}.rule-panel .rule{break-inside:avoid}.cl-type{break-inside:avoid;background:none;border:1px solid #999}.ctl{break-inside:avoid}}