@font-face{font-family:"Inter";src:url(../fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url(../fonts/schibsted-grotesk-var.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Fallback";src:local("Arial");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:"Schibsted Grotesk Fallback";src:local("Arial");size-adjust:101%;ascent-override:95%;descent-override:25%;line-gap-override:0%}

.iso{
  --anatomy-page:#0b0b0b;--anatomy-card:#131313;--anatomy-text:#a3a3a3;--anatomy-strong:#e6e6e6;--anatomy-muted:#6e6e6e;
  --anatomy-paper:#131313;--anatomy-face:#1b1b1b;--anatomy-top:#1c1c1c;
  --anatomy-shade-0:#0f0f0f;--anatomy-shade-1:#121212;--anatomy-shade-2:#151515;--anatomy-shade-3:#181818;
  --anatomy-lit-top:#262626;--anatomy-lit-shade:#1d1d1d;
  --anatomy-hi:#d4d4d4;--anatomy-mid:#6a6a6a;--anatomy-lo:#3e3e3e;--anatomy-faint:#2a2a2a;--anatomy-lit:#ffffff;
  --anatomy-halo:#050505;--anatomy-halo-opacity:.9;--anatomy-dot:#e6e6e6;
  --anatomy-red:#ff6b6b;--anatomy-green:#6be0a0;--anatomy-blue:#6b9bff;
  --anatomy-weight:.6px;--anatomy-ease:cubic-bezier(.32,.72,0,1);
  --anatomy-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --anatomy-lift:inset 0 1px 0 0 #ffffff0a,inset 0 0 0 1px #ffffff06,0 0 0 1px #00000026,0 1px 1px -.5px #00000014,0 3px 3px -1.5px #00000014,0 6px 6px -3px #00000014,0 12px 12px -6px #00000014;
}
.iso[data-theme="light"]{
  --anatomy-page:#f2f2ef;--anatomy-card:#fbfbfa;--anatomy-text:#57575a;--anatomy-strong:#18181a;--anatomy-muted:#8c8c90;
  --anatomy-paper:#fbfbfa;--anatomy-face:#ffffff;--anatomy-top:#ffffff;
  --anatomy-shade-0:#dcdcd9;--anatomy-shade-1:#e5e5e2;--anatomy-shade-2:#ededea;--anatomy-shade-3:#f4f4f1;
  --anatomy-lit-top:#ffffff;--anatomy-lit-shade:#eeeeeb;
  --anatomy-hi:#26262a;--anatomy-mid:#8a8a8f;--anatomy-lo:#b4b4b8;--anatomy-faint:#d4d4d6;--anatomy-lit:#000000;
  --anatomy-halo:#8a8a80;--anatomy-halo-opacity:.32;--anatomy-dot:#3a3a3e;
  --anatomy-red:#e5484d;--anatomy-green:#30a46c;--anatomy-blue:#3e63dd;
  --anatomy-lift:inset 0 1px 0 0 #ffffff,0 0 0 1px #0000000f,0 1px 1px -.5px #0000000a,0 3px 3px -1.5px #0000000a,0 6px 6px -3px #0000000a,0 12px 12px -6px #0000000a;
}
.iso-svg{display:block;width:100%;height:auto;overflow:visible}
.iso-svg path,.iso-svg circle{vector-effect:non-scaling-stroke}
.iso-fill{fill:var(--anatomy-paper);stroke:none}
.iso-solid[data-lit]>.iso-fill{fill:var(--anatomy-face)}
.iso-shade,.iso-top{stroke:none}
.iso-shade[data-shade="0"]{fill:var(--anatomy-shade-0)}
.iso-shade[data-shade="1"]{fill:var(--anatomy-shade-1)}
.iso-shade[data-shade="2"]{fill:var(--anatomy-shade-2)}
.iso-shade[data-shade="3"]{fill:var(--anatomy-shade-3)}
.iso-top{fill:var(--anatomy-top)}
.iso-solid[data-lit]>.iso-top{fill:var(--anatomy-lit-top)}
.iso-solid[data-lit]>.iso-shade{fill:var(--anatomy-lit-shade)}
.iso-solid[data-seamless]>.iso-shade,.iso-solid[data-seamless]>.iso-top{stroke-width:.4;stroke-linejoin:round}
.iso-solid[data-seamless]>.iso-shade[data-shade="0"]{stroke:var(--anatomy-shade-0)}
.iso-solid[data-seamless]>.iso-shade[data-shade="1"]{stroke:var(--anatomy-shade-1)}
.iso-solid[data-seamless]>.iso-shade[data-shade="2"]{stroke:var(--anatomy-shade-2)}
.iso-solid[data-seamless]>.iso-shade[data-shade="3"]{stroke:var(--anatomy-shade-3)}
.iso-solid[data-seamless]>.iso-top{stroke:var(--anatomy-top)}
.iso-solid[data-seamless][data-lit]>.iso-top{stroke:var(--anatomy-lit-top)}
.iso-solid[data-seamless][data-lit]>.iso-shade{stroke:var(--anatomy-lit-shade)}
.iso-solid[data-lit]>.iso-edge{stroke:var(--anatomy-lit)}
.iso-halo{fill:var(--anatomy-halo);stroke:none;filter:blur(9px);opacity:var(--anatomy-halo-opacity);transform:translateY(3px)}
.iso-line{fill:none;stroke:var(--anatomy-lo);stroke-width:var(--anatomy-weight);stroke-linecap:round;stroke-linejoin:round}
.iso-line[data-tone="hi"]{stroke:var(--anatomy-hi)}
.iso-line[data-tone="mid"]{stroke:var(--anatomy-mid)}
.iso-line[data-tone="lo"]{stroke:var(--anatomy-lo)}
.iso-line[data-tone="faint"]{stroke:var(--anatomy-faint)}
.iso-line[data-tone="lit"]{stroke:var(--anatomy-lit)}
.iso-line[data-tone="red"]{stroke:var(--anatomy-red)}
.iso-line[data-tone="green"]{stroke:var(--anatomy-green)}
.iso-line[data-tone="blue"]{stroke:var(--anatomy-blue)}
.iso-line[data-dotted]{stroke-dasharray:.01 3.5;stroke-width:1}
.iso-line[data-dashed]{stroke-dasharray:3 3}
.iso-line[data-flow]{stroke-dasharray:2 6}
.iso-wire-end{fill:var(--anatomy-paper);stroke:var(--anatomy-lo);stroke-width:var(--anatomy-weight)}
.iso-wire[data-tone="hi"] .iso-wire-end{stroke:var(--anatomy-hi)}
.iso-wire[data-tone="mid"] .iso-wire-end{stroke:var(--anatomy-mid)}
.iso-wire[data-tone="faint"] .iso-wire-end{stroke:var(--anatomy-faint)}
.iso-wire[data-tone="lit"] .iso-wire-end{stroke:var(--anatomy-lit)}
.iso-dots circle{fill:var(--anatomy-dot);stroke:none;opacity:.32}
.iso-dots[data-tone="hi"] circle{opacity:.85}
.iso-dots[data-tone="mid"] circle{opacity:.45}
.iso-dots[data-tone="lo"] circle{opacity:.22}
.iso-dots[data-tone="faint"] circle{opacity:.12}
.iso-face-text{fill:var(--anatomy-mid);font-family:var(--anatomy-mono);letter-spacing:.04em}
.iso-face-text[data-tone="hi"]{fill:var(--anatomy-hi)}
.iso-face-text[data-tone="lo"]{fill:var(--anatomy-lo)}
.iso-face-text[data-tone="faint"]{fill:var(--anatomy-faint)}
.tb-body{fill:var(--anatomy-shade-2);stroke:none}
.tb-shine{fill:var(--anatomy-top);stroke:none}
.tb-shade{fill:var(--anatomy-shade-0);stroke:none}
.tb-ring{fill:none;stroke:var(--anatomy-lo);stroke-width:.45;stroke-linecap:butt;stroke-linejoin:round}
.tb-ring[data-tone="mid"]{stroke:var(--anatomy-mid)}
.tb-ring[data-tone="faint"]{stroke:var(--anatomy-faint)}
.tb-ring[data-tone="hi"]{stroke:var(--anatomy-hi)}
@keyframes iso-flow{to{stroke-dashoffset:-32}}
@keyframes iso-pulse{0%,100%{opacity:.18}12%{opacity:1}40%{opacity:.18}}
.iso-line[data-flow]{animation:iso-flow 1600ms linear infinite}
.iso-dots circle[data-pulse]{animation:iso-pulse 1600ms steps(1,end) infinite;animation-delay:var(--pulse-at,0ms)}
.iso-figure{margin:32px 0 36px}
.iso-plate{position:relative;padding:52px 24px;border-radius:0;background:var(--anatomy-card);box-shadow:0 0 0 1px var(--anatomy-mid);--anatomy-paper:var(--anatomy-card)}
.iso-plate-corners{position:absolute;inset:18px 20px;pointer-events:none}
.iso-plate-corner{position:absolute;color:var(--anatomy-muted);font-family:var(--anatomy-mono);font-size:10.5px;line-height:1;letter-spacing:.04em;white-space:nowrap}
.iso-plate-corner[data-corner="fig"]{top:0;left:0;color:var(--anatomy-text)}
.iso-plate-corner[data-corner="title"]{top:0;right:0;text-transform:uppercase;letter-spacing:.1em}
.iso-plate-corner[data-corner="hint"]{bottom:0;left:0;text-transform:uppercase;letter-spacing:.1em}
.iso-plate-corner[data-corner="readout"]{right:0;bottom:0;color:var(--anatomy-text);font-variant-numeric:tabular-nums}
.iso-plate .iso-svg{margin:0 auto}
.iso-legend{display:grid;gap:8px;margin-top:12px;color:var(--anatomy-muted);font-size:13px;line-height:1.55}
.iso-keys{display:flex;flex-wrap:wrap;gap:6px 18px}
.iso-key{display:inline-flex;align-items:center;gap:7px}
.iso-swatch{width:16px;height:10px;flex:none;overflow:visible}
.iso-swatch path{fill:none;stroke:var(--anatomy-hi);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.iso-swatch[data-mark="raised"] path,.iso-swatch[data-mark="flat"] path{stroke:var(--anatomy-mid)}
.iso-swatch[data-mark="lit"] path{stroke:var(--anatomy-lit)}
.iso-swatch[data-mark="dim"] path{stroke:var(--anatomy-lo)}
.iso-swatch[data-mark="dotted"] path{stroke-dasharray:.01 3;stroke-width:1.4}
.iso-swatch[data-mark="dashed"] path{stroke-dasharray:3 2.5}
.iso-swatch[data-mark="red"] path{stroke:var(--anatomy-red)}
.iso-swatch[data-mark="green"] path{stroke:var(--anatomy-green)}
.iso-swatch[data-mark="blue"] path{stroke:var(--anatomy-blue)}
.iso-swatch-crease{stroke:var(--anatomy-lo)!important}
@media (max-width:560px){.iso-plate{padding:48px 12px 70px}.iso-plate-corner[data-corner="hint"]{bottom:18px}}
@media (prefers-reduced-motion:reduce){.iso-line[data-flow],.iso-dots circle[data-pulse]{animation:none}}

.iso{background:transparent}
:root{--paper:#ffffff;--paper-2:#f5f5f5;--ink:#0a0d0b;--graphite:#545654;--tertiary:#848684;--rule:#e2e3e2;--rule-2:#d6d7d6;--accent:#3d7fff;--accent-text:#1f5fe0;--accent-ink:#ffffff;--ok:#16794a;--warn:#9a5b00;--danger:#c2362f;--code:#f0f1f0;--brand-subtle:#d8e5ff;
--r-btn:8px;--r-img:12px;--r-card:16px;color-scheme:light;
--font-head:"Schibsted Grotesk","Schibsted Grotesk Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;--font-body:"Inter","Inter Fallback",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--fs-body:clamp(0.9375rem,0.9101rem + 0.1124vw,1rem);--fs-lede:clamp(1.125rem,1.0702rem + 0.2247vw,1.25rem);--fs-small:clamp(0.8125rem,0.7851rem + 0.1124vw,0.875rem);--fs-h1:clamp(2.5rem,2.0618rem + 1.7978vw,3.5rem);--fs-h2:clamp(2rem,1.5618rem + 1.7978vw,3rem);--fs-h3:clamp(1.5rem,1.2809rem + 0.8989vw,2rem);--fs-h4:clamp(1.125rem,1.0702rem + 0.2247vw,1.25rem);
--space-section:clamp(3rem,1.2472rem + 7.1910vw,7rem);--space-topic:clamp(2rem,1.5618rem + 1.7978vw,3rem);--gutter:clamp(1.25rem,-0.3933rem + 6.7416vw,5rem);--gap:clamp(1rem,0.7809rem + 0.8989vw,1.5rem);--measure:68ch;--wide:1280px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#0a0d0b;--paper-2:#141715;--ink:#ffffff;--graphite:#b5b6b6;--tertiary:#858686;--rule:#232624;--rule-2:#3b3d3c;--accent:#3d7fff;--accent-text:#7aa6ff;--accent-ink:#0a0d0b;--ok:#5fd19b;--warn:#f0b75a;--danger:#ff7d73;--code:#161917;--brand-subtle:#152342;color-scheme:dark}}
:root[data-theme="dark"]{--paper:#0a0d0b;--paper-2:#141715;--ink:#ffffff;--graphite:#b5b6b6;--tertiary:#858686;--rule:#232624;--rule-2:#3b3d3c;--accent:#3d7fff;--accent-text:#7aa6ff;--accent-ink:#0a0d0b;--ok:#5fd19b;--warn:#f0b75a;--danger:#ff7d73;--code:#161917;--brand-subtle:#152342;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--paper);scroll-padding-top:calc(env(safe-area-inset-top,0px) + 4.5rem)}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/1.6 var(--font-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent-text);text-underline-offset:.18em}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
code,kbd{font:500 .88em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--code);padding:.1em .35em;border-radius:4px}
.skip{position:absolute;left:1rem;top:-3rem;background:var(--ink);color:var(--paper);padding:.5rem .8rem;border-radius:6px;z-index:20}
.skip:focus{top:calc(env(safe-area-inset-top,0px) + .75rem)}
header.top{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--paper);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--rule)}
body::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);z-index:11;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.top-in{max-width:var(--wide);margin:0 auto;padding:.7rem var(--gutter);display:flex;gap:1rem;align-items:center;justify-content:space-between}
.brand{font-weight:700;letter-spacing:-.01em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:.55rem}
.brand svg{width:26px;height:auto;color:var(--accent)}
.brand{font-family:var(--font-head);font-weight:600;font-size:1.05rem;letter-spacing:-.01em}
.brand span{color:var(--graphite);font-weight:500}
.theme-btn-old{appearance:none;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);border-radius:var(--r-btn);font-weight:500;padding:.35rem .8rem;font:inherit;font-size:.9rem;cursor:pointer;min-height:36px}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
@media (min-width:1000px){.layout{grid-template-columns:200px minmax(0,1fr);gap:3.5rem}}
nav.toc{display:none}
@media (min-width:1000px){nav.toc{display:block;position:sticky;top:5.25rem;align-self:start;max-height:calc(100vh - 6.5rem);overflow:auto;font-size:.9rem;padding-bottom:1rem}}
.toc-title{font-weight:650;margin:0 0 .7rem;color:var(--ink)}
[data-toc]{position:relative}
.toc ol{list-style:none;margin:0;padding:0}
.toc li{margin:0;max-width:none}
.toc a{position:relative;display:block;padding:.4rem 0 .4rem 1.15rem;color:var(--graphite);text-decoration:none;line-height:1.35;transition:color .25s ease}
.toc a[data-depth="1"]{padding-left:calc(18px + 1.15rem)}
.toc a:hover{color:var(--ink)}
.toc a[aria-current="true"]{color:var(--ink);font-weight:600}
.rail{position:absolute;inset:0;overflow:visible;pointer-events:none}
.rail path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.rail-base{stroke:var(--rule);stroke-width:1.25}
.rail-active{stroke:var(--accent);stroke-width:2.5;opacity:0;stroke-dasharray:0 99999;transition:stroke-dashoffset .55s cubic-bezier(.4,0,.2,1),stroke-dasharray .55s cubic-bezier(.4,0,.2,1),opacity .2s}
@media (prefers-reduced-motion:reduce){.rail-active{transition:none}}
main section.group{padding:var(--space-section) 0 1rem;border-top:1px solid var(--rule)}
main section.topic{padding:var(--space-topic) 0 .5rem}
main section.topic+section.topic{border-top:1px dashed var(--rule)}
.group-lede{color:var(--graphite);font-size:1.1rem;max-width:58ch;margin:.2rem 0 .5rem}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.1;letter-spacing:-.02em;text-wrap:balance;margin:0}
h1{font-size:var(--fs-h1);font-weight:500;max-width:17ch;letter-spacing:-.03em}
h2{font-size:var(--fs-h2);font-weight:500;margin-bottom:.4rem;letter-spacing:-.025em}
h3.topic-title{font-size:var(--fs-h3);font-weight:500;letter-spacing:-.018em;margin:0 0 .8rem}
h4{font-size:var(--fs-h4);font-weight:500;margin:1.6rem 0 .4rem}
h3{font-size:var(--fs-h3);font-weight:650;letter-spacing:-.01em;margin:1.6rem 0 .5rem}
p,li{max-width:var(--measure);text-wrap:pretty}
.lede{font-size:var(--fs-lede);color:var(--graphite);max-width:58ch;margin:1.1rem 0 1.6rem}
.hero{padding:var(--space-topic) 0 1.5rem}
.mantra{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 2rem;padding:0;list-style:none}
.mantra li{border:1px solid var(--rule);border-radius:999px;padding:.34rem .85rem;font-size:.92rem;background:var(--paper-2);font-weight:500}
.fig{margin:2rem 0 0;max-width:720px}
.fig .iso-plate{margin:0}
.note{color:var(--graphite);font-size:.93rem}
/* flow */
.flow{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:0;counter-reset:f}
.flow li{counter-increment:f;display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--rule);max-width:none}
.flow li::before{content:counter(f);font:500 1.6rem/1 var(--font-head);color:var(--accent);font-variant-numeric:tabular-nums}
.flow b{display:block;font-size:1.05rem}
.flow code{font-size:.85em}
.flow span{color:var(--graphite)}
/* ladder */
.ladder{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-direction:column-reverse;gap:.4rem;max-width:640px}
.ladder li{position:relative;padding:.75rem 1rem .75rem 3.2rem;border:1px solid var(--rule);border-radius:var(--r-img);background:var(--paper);max-width:none}
.ladder li::before{content:attr(data-rung);position:absolute;left:1rem;top:.75rem;font-weight:700;color:var(--graphite);font-variant-numeric:tabular-nums}
.ladder li.ask{border-style:dashed}
.ladder li.top{background:var(--accent);color:#fff;border-color:var(--accent)}
.ladder li.top::before{color:var(--paper)}
.ladder small{display:block;color:inherit;opacity:.75}
/* homes */
.homes{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r-card);overflow:hidden;margin:1.5rem 0}
@media (min-width:720px){.homes{grid-template-columns:repeat(2,1fr)}}
.homes div{background:var(--paper);padding:1.2rem 1.25rem}
.homes h4{margin:0 0 .4rem}
.homes p{margin:0;color:var(--graphite);font-size:.95rem}
.homes ul{margin:.6rem 0 0;padding-left:1.1rem;font-size:.93rem}
/* section anatomy */
.anat{margin:1.5rem 0;font-size:.9rem}
.box{border:1.5px solid var(--ink);border-radius:var(--r-img);padding:2.1rem .9rem .9rem;position:relative;background:var(--paper)}
.box>.tag{position:absolute;top:.55rem;left:.8rem;font-weight:650}
.box>.tag em{font-style:normal;color:var(--graphite);font-weight:400;margin-left:.4rem}
.box.bg{border-style:dashed;margin-bottom:.7rem;padding:2.1rem .9rem .6rem;color:var(--graphite)}
.box .box{margin-top:.6rem}
.box.leaf{padding:.6rem .8rem;border-width:1px;border-color:var(--rule);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.box.leaf>.tag{position:static}
.props{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem 1.5rem;margin:1rem 0 0;padding:0;list-style:none;font-size:.9rem}
.props li{border-top:1px solid var(--rule);padding-top:.45rem}
.props b{display:block}
/* outline */
.outline{font:500 .95rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:1.2rem 0;padding:1rem 1.2rem;border-left:3px solid var(--accent);background:var(--paper-2);border-radius:0 8px 8px 0;white-space:pre;overflow-x:auto}
/* playground */
.play{display:grid;gap:1.5rem;margin:1.5rem 0;padding:1.25rem;border:1px solid var(--rule);border-radius:var(--r-card);background:var(--paper-2)}
@media (min-width:860px){.play{grid-template-columns:260px 1fr}}
.ctl{display:grid;gap:.9rem;align-content:start}
.ctl label{display:grid;gap:.3rem;font-size:.88rem;color:var(--graphite)}
.ctl select,.ctl input{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:.45rem .6rem;min-height:40px}
.ctl input[type=range]{padding:0;accent-color:var(--accent)}
.out{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-img);padding:1.4rem;min-width:0}
.out pre{margin:1rem 0 0;font:500 .78rem/1.5 ui-monospace,Menlo,monospace;color:var(--graphite);white-space:pre-wrap;word-break:break-word}
.rt-list{display:flex;flex-direction:column;gap:var(--gap,.5rem);margin:0;padding:0;list-style:none;--icon-size:1em;--marker-gap:.6rem}
.rt-list[data-direction="horizontal"]{flex-direction:row;flex-wrap:wrap;column-gap:calc(var(--gap,.5rem)*2.4)}
.rt-list[data-direction="grid"]{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr))}
@container play (width < 30em){.rt-list[data-direction="grid"]{grid-template-columns:1fr}}
.out{container:play/inline-size}
.rt-list>li{display:grid;grid-template-columns:auto 1fr;column-gap:var(--marker-gap);align-items:baseline;max-width:none}
.rt-list>li::before{content:"";inline-size:var(--icon-size);block-size:var(--icon-size);background:var(--icon-color,currentColor);-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat;translate:0 .14em}
.rt-list[data-marker="bullet"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E")}
.rt-list[data-marker="check"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E")}
.rt-list[data-marker="icon"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.rt-list[data-marker="dash"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='10.5' width='16' height='3' rx='1.5'/%3E%3C/svg%3E")}
.rt-list[data-marker="none"]>li{grid-template-columns:1fr}
.rt-list[data-marker="none"]>li::before{display:none}
ol.rt-list{counter-reset:rt}
ol.rt-list>li::before{counter-increment:rt;content:counter(rt) ".";-webkit-mask:none;mask:none;background:none;inline-size:auto;block-size:auto;translate:none;color:var(--icon-color,currentColor);font-variant-numeric:tabular-nums;font-weight:650}
ol.rt-list[data-number-style="leading-zero"]>li::before{content:counter(rt,decimal-leading-zero)}
.rt-list[data-divider="line"][data-direction="vertical"]>li+li{border-top:1px solid var(--rule);padding-top:var(--gap,.5rem)}
/* live type */
.livetype{margin:1.5rem 0;padding:1.4rem;border:1px solid var(--rule);border-radius:var(--r-card)}
.livetype .sample{font-size:clamp(2rem,1.0458rem + 4.0712vw,3rem);font-weight:740;letter-spacing:-.02em;line-height:1.05;margin:0}
@media (width >= 48em){.livetype .sample{font-size:clamp(3rem,-.4286rem + 7.1429vw,4rem)}}
@media (width >= 62em){.livetype .sample{font-size:4rem}}
.livetype output{display:block;margin-top:.8rem;color:var(--graphite);font-variant-numeric:tabular-nums}
pre.code{font:500 .8rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--code);padding:1rem 1.1rem;border-radius:var(--r-img);overflow-x:auto;max-width:100%;margin:1rem 0}
/* ranges */
.ranges{margin:1.5rem 0;display:grid;grid-template-columns:27fr 15fr 11fr 37fr;border:1px solid var(--rule);border-radius:var(--r-img);overflow:hidden;font-size:.85rem}
.ranges div{padding:.8rem .7rem;border-left:1px solid var(--rule);background:var(--paper);min-width:0}
.ranges div:first-child{border-left:0}
.ranges b{display:block;font-size:.95rem}
.ranges span{color:var(--graphite)}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:0;margin:1rem 0;list-style:none}
.chips li{font:600 .82rem/1 ui-monospace,Menlo,monospace;padding:.42rem .55rem;border:1px solid var(--rule);border-radius:6px;font-variant-numeric:tabular-nums}
.chips li.frame{background:var(--accent);color:#fff;border-color:var(--accent)}
table{border-collapse:collapse;width:100%;font-size:.93rem}
.tablewrap{overflow-x:auto;margin:1.2rem 0;border:1px solid var(--rule);border-radius:var(--r-img)}
th,td{text-align:start;padding:.65rem .8rem;border-top:1px solid var(--rule);vertical-align:top}
thead th{border-top:0;background:var(--paper-2);font-weight:650}
@media (min-width:640px){td:first-child,th:first-child{white-space:nowrap}}
/* motion */
.motion{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r-card);overflow:hidden;margin:1.5rem 0}
@media (min-width:720px){.motion{grid-template-columns:repeat(3,1fr)}}
.motion button{all:unset;cursor:pointer;background:var(--paper);padding:1.1rem 1.1rem 1.3rem;display:grid;gap:.9rem;min-height:150px}
.motion button:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}
.motion .track{height:34px;border-radius:8px;background:var(--paper-2);position:relative;overflow:hidden}
.motion .dot{position:absolute;top:5px;left:6px;width:24px;height:24px;border-radius:7px;background:var(--accent);transition:translate var(--d) var(--e)}
.motion button[aria-pressed="true"] .dot{translate:calc(var(--w,200px) - 36px) 0}
.motion b{display:block}
.motion span{color:var(--graphite);font-size:.88rem}
@media (prefers-reduced-motion:reduce){.motion .dot{transition:none}}
/* pillars */
.pillars{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:1.4rem}
@media (min-width:760px){.pillars{grid-template-columns:repeat(2,1fr);gap:1.4rem 2.4rem}}
.pillars li{border-top:2px solid var(--accent);padding-top:.7rem;max-width:none}
.pillars b{font-size:1.05rem}
.pillars p{margin:.35rem 0 0;color:var(--graphite);font-size:.95rem}
/* budgets */
.budgets{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.9rem;max-width:720px}
.budgets li{display:grid;grid-template-columns:9rem 1fr 6.5rem;gap:1rem;align-items:center;max-width:none;font-size:.93rem}
.bar{height:8px;background:var(--paper-2);border-radius:99px;overflow:hidden;border:1px solid var(--rule)}
.bar i{display:block;height:100%;background:var(--accent);width:var(--v)}
.budgets b{font-variant-numeric:tabular-nums;text-align:end}
@media (max-width:520px){.budgets li{grid-template-columns:1fr 5.5rem}.budgets .bar{grid-column:1/-1;order:3}}
/* skills map */
.skills{display:grid;gap:1.5rem;margin:1.5rem 0}
@media (min-width:860px){.skills{grid-template-columns:3fr 2fr}}
.skills h4{margin-top:0}
.skills dl{margin:0;display:grid;gap:.1rem}
.skills dt{font:650 .92rem/1.4 ui-monospace,Menlo,monospace;margin-top:.7rem}
.skills dd{margin:0;color:var(--graphite);font-size:.93rem}
.glossary dt{font-weight:650;margin-top:.9rem}
.glossary dd{margin:.15rem 0 0;color:var(--graphite);max-width:var(--measure)}
@media (min-width:760px){.glossary{columns:2;column-gap:2.5rem}.glossary div{break-inside:avoid}}
footer{border-top:1px solid var(--rule);margin-top:3rem;padding:2rem 0 3rem;color:var(--graphite);font-size:.9rem}
@media print{header.top,nav.toc,.theme-btn,.play .ctl{display:none}main section{break-inside:avoid-page}}

/* universal variant playground */
.vplay{display:grid;gap:1.2rem;margin:1rem 0 1.5rem;padding:1.25rem;border:1px solid var(--rule);border-radius:var(--r-card);background:var(--paper-2)}
.vpick{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.vpick legend{font-size:.88rem;color:var(--graphite);margin-bottom:.45rem;padding:0}
.vpick label{position:relative}
.vpick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.vpick span{display:inline-block;padding:.45rem .85rem;border:1px solid var(--rule);border-radius:999px;background:var(--paper);font-size:.92rem;min-height:36px}
.vpick input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.vpick span{border-radius:var(--r-btn)}
.vpick input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.vctl{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.vctl label{display:grid;gap:.3rem;font:600 .82rem/1.2 ui-monospace,Menlo,monospace;color:var(--ink)}
.vctl label[data-off]{opacity:.38}
.vctl select,.vctl input{font:inherit;font-family:system-ui,sans-serif;font-weight:400;font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:.4rem .5rem;min-height:38px}
.vctl input[type=range]{padding:0;accent-color:var(--accent)}
.vout{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-img);padding:1.4rem;min-width:0;container:vout/inline-size}
.vcode{margin:1.2rem 0 0;font:500 .78rem/1.55 ui-monospace,Menlo,monospace;color:var(--graphite);white-space:pre-wrap;word-break:break-word}
.vstage{--tone:var(--accent);--fs:1rem;--py:.6rem;--px:1rem;--h:44px;--r:10px;--pad:1.1rem}
.vstage[data-tone="neutral"]{--tone:var(--ink)}.vstage[data-tone="success"]{--tone:var(--ok)}.vstage[data-tone="warning"]{--tone:var(--warn)}.vstage[data-tone="danger"]{--tone:var(--danger)}
.vstage[data-size="sm"]{--fs:.88rem;--py:.4rem;--px:.75rem;--h:36px;--pad:.85rem}
.vstage[data-size="lg"]{--fs:1.12rem;--py:.8rem;--px:1.3rem;--h:52px;--pad:1.4rem}
.vstage[data-radius="none"]{--r:0}.vstage[data-radius="small"]{--r:5px}.vstage[data-radius="round"]{--r:999px}
.vgroup{display:flex;flex-direction:column;gap:var(--gap);align-items:var(--ai,flex-start)}
.vgroup[data-direction="horizontal"]{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:var(--ai,flex-start)}
.vgroup[data-direction="grid"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:var(--ji,start)}
@container vout (width < 28em){.vgroup[data-direction="grid"]{grid-template-columns:1fr}}
.vbtn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:600 var(--fs)/1 system-ui,sans-serif;padding:var(--py) var(--px);min-height:var(--h);border-radius:var(--r);border:1.5px solid var(--tone);background:var(--tone);color:var(--paper);text-decoration:none}
[data-variant="outline"] .vbtn{background:transparent;color:var(--tone)}
[data-variant="ghost"] .vbtn{background:transparent;border-color:transparent;color:var(--tone)}
.vbtn svg,.vbadge svg,.vnav svg,.vfield svg{width:1em;height:1em;flex:none}
.vbtn.only{padding:var(--py);aspect-ratio:1}
.vcard{display:grid;gap:.8rem;max-width:22rem;width:100%;border-radius:var(--r);padding:var(--pad);background:var(--paper-2);border:1px solid transparent;overflow:hidden}
[data-variant="outline"] .vcard{background:transparent;border-color:var(--rule)}
[data-variant="ghost"] .vcard{background:transparent;padding:0}
.vcard .media{aspect-ratio:16/9;border-radius:calc(var(--r) * .6);background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--tone) 22%,transparent) 0 8px,color-mix(in oklab,var(--tone) 10%,transparent) 8px 16px)}
.vgroup[data-direction="vertical"] .vcard{grid-template-columns:38% 1fr;max-width:30rem;align-items:start}
.vgroup[data-direction="vertical"] .vcard .media{aspect-ratio:1}
.vcard b{font-size:calc(var(--fs) * 1.1);display:block}
.vcard p{margin:.25rem 0 .6rem;font-size:calc(var(--fs) * .9);color:var(--graphite)}
.vcard .more{display:inline-flex;gap:.4em;align-items:center;color:var(--tone);font-weight:600;font-size:var(--fs)}
.vbadge{display:inline-flex;align-items:center;gap:.35em;font:600 calc(var(--fs) * .82)/1 system-ui,sans-serif;padding:calc(var(--py) * .65) calc(var(--px) * .7);border-radius:var(--r);background:var(--tone);color:var(--paper);border:1.5px solid var(--tone)}
[data-variant="outline"] .vbadge{background:transparent;color:var(--tone)}
[data-variant="ghost"] .vbadge{background:color-mix(in oklab,var(--tone) 14%,transparent);border-color:transparent;color:var(--tone)}
.vnav{display:inline-flex;align-items:center;gap:.45em;font-size:var(--fs);padding:var(--py) var(--px);border-radius:var(--r);color:var(--ink);text-decoration:none;border:1.5px solid transparent}
.vnav[aria-current="page"]{color:var(--paper);background:var(--tone)}
[data-variant="outline"] .vnav[aria-current="page"]{background:transparent;color:var(--tone);border-color:var(--tone)}
[data-variant="ghost"] .vnav[aria-current="page"]{background:transparent;color:var(--tone);border-radius:0;box-shadow:inset 0 -2px 0 var(--tone)}
.vfield{display:grid;gap:.35rem;min-width:12rem;font-size:calc(var(--fs) * .88);color:var(--graphite)}
.vfield .box{display:flex;align-items:center;gap:.5em;min-height:var(--h);padding:0 var(--px);border-radius:var(--r);border:1.5px solid var(--rule);background:var(--paper);color:var(--ink);font-size:max(1rem,var(--fs))}
[data-variant="solid"] .vfield .box{background:var(--paper-2);border-color:transparent}
[data-variant="ghost"] .vfield .box{border-width:0 0 1.5px;border-radius:0;padding-inline:0;background:transparent}
.vfield .box.focus{border-color:var(--tone);box-shadow:0 0 0 3px color-mix(in oklab,var(--tone) 25%,transparent)}
.vfield .box span{color:var(--graphite)}
.vfield .box svg{color:var(--tone)}

.scale td{vertical-align:middle}
.scale td:first-child{font:600 .85rem/1 ui-monospace,Menlo,monospace}
.ts{display:block;white-space:nowrap}
.ts-track .ts-star{display:block}
.modes{display:grid;gap:.8rem;margin:1rem 0}
@media (min-width:640px){.modes{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.modes{grid-template-columns:repeat(4,1fr)}}
.mode{border-radius:var(--r-card);padding:1rem 1.1rem;display:grid;gap:.45rem;border:1px solid var(--rule)}
.mode b{font-size:1.05rem}
.m-light{background:#ffffff;color:#0a0d0b;border-color:#e2e3e2}.m-dark{background:#0a0d0b;color:#fff;border-color:#2a2d2b}.m-tint{background:#f4f4f1;color:#0a0d0b}.m-brand{background:#3d7fff;color:#0a0d0b}
.sw{display:flex;align-items:center;gap:.55rem;font-size:.88rem}
.sw i{width:1.35rem;height:1.35rem;border-radius:6px;border:1px solid color-mix(in srgb,currentColor 25%,transparent);flex:none}
.els li{font-weight:500}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.vgroup[data-direction="vertical"]{flex-direction:column}
.vcard .more svg{width:1em;height:1em;flex:none}.vcard .more{white-space:nowrap}

.lede{font-family:var(--font-body)}
.brand-hero{display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem;color:var(--graphite);font-weight:500}
.brand-hero svg{width:44px;height:auto}


/* sun / moon switch: transforms only, so every engine animates it */
.theme-switch{appearance:none;-webkit-appearance:none;border:0;background:none;padding:4px;margin:-4px;cursor:pointer;border-radius:999px;-webkit-tap-highlight-color:transparent;line-height:0}
.theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ts-track{position:relative;display:block;width:60px;height:32px;border-radius:999px;overflow:hidden;background:#cfe0ff;background:linear-gradient(180deg,#bcd4ff,#e6efff);box-shadow:inset 0 0 0 1px rgba(10,13,11,.08);transition:background .45s ease}
.ts-knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;color:#f5a400;display:grid;place-items:center;box-shadow:0 1px 2px rgba(13,13,20,.14),0 3px 8px rgba(13,13,20,.14);-webkit-transform:translateX(0);transform:translateX(0);transition:transform .55s cubic-bezier(.34,1.56,.64,1),background-color .4s ease,color .4s ease,width .2s ease}
.ts-knob svg{width:20px;height:20px;overflow:visible}
.ts-body{fill:currentColor;transform-box:fill-box;transform-origin:center;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.ts-cut{transform:translate(0,0);transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.ts-rays path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.ts-rays{transform-box:fill-box;transform-origin:center;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}
.ts-star{position:absolute;width:7px;height:7px;fill:#fff;opacity:0;transform:scale(.2) rotate(-90deg);transition:opacity .35s ease .12s,transform .5s cubic-bezier(.34,1.56,.64,1) .12s}
.ts-star.s1{left:10px;top:7px}.ts-star.s2{left:19px;top:17px;width:5px;height:5px}
.ts-cloud{position:absolute;right:8px;top:13px;width:14px;height:6px;border-radius:6px;background:#fff;opacity:.9;transition:opacity .3s ease,transform .45s ease}
.ts-cloud::before{content:"";position:absolute;left:3px;top:-4px;width:7px;height:7px;border-radius:50%;background:#fff}
.theme-switch[aria-checked="true"] .ts-track{background:#132048;background:linear-gradient(180deg,#0b1d45,#1d3270)}
.theme-switch[aria-checked="true"] .ts-knob{transform:translateX(28px);background:#e9eefb;color:#3d5ea8}
.theme-switch[aria-checked="true"] .ts-body{transform:scale(1.6)}
.theme-switch[aria-checked="true"] .ts-cut{transform:translate(-13px,5px)}
.theme-switch[aria-checked="true"] .ts-rays{transform:scale(.4) rotate(90deg);opacity:0}
.theme-switch[aria-checked="true"] .ts-star{opacity:1;transform:scale(1) rotate(0)}
.theme-switch[aria-checked="true"] .ts-cloud{opacity:0;transform:translateX(10px)}
@media (hover:hover){.theme-switch:hover .ts-rays{transform:rotate(45deg)}.theme-switch[aria-checked="true"]:hover .ts-rays{transform:scale(.4) rotate(90deg)}}
.theme-switch:active .ts-knob{width:30px}
.theme-switch[aria-checked="true"]:active .ts-knob{transform:translateX(24px)}
@media (prefers-reduced-motion:reduce){.ts-track,.ts-knob,.ts-body,.ts-cut,.ts-rays,.ts-star,.ts-cloud{transition:none}}
@media (forced-colors:active){.ts-track{border:1px solid ButtonText}.ts-knob{background:ButtonText}}
/* design tokens */
.chip{display:inline-block;width:1.5rem;height:1.5rem;border-radius:6px;flex:none;position:relative;overflow:hidden;
  background:linear-gradient(var(--c),var(--c)),repeating-conic-gradient(#c9cbc9 0 25%,#ffffff 0 50%) 0 0/8px 8px;box-shadow:inset 0 0 0 1px rgba(10,13,11,.14)}
.prims{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:.6rem}
.prims li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.7rem;align-items:center;padding:.65rem .75rem;border:1px solid var(--rule);border-radius:var(--r-img);max-width:none;background:var(--paper)}
.prims .chip{grid-row:1/3;width:2.4rem;height:2.4rem;border-radius:8px}
.prims b{font-weight:500;font-size:.92rem}
.prims .mono,.mono{font:500 .78rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--graphite)}
.prims .was{grid-column:2;font-size:.72rem;color:var(--tertiary)}
.tok-filter{display:grid;gap:.3rem;max-width:22rem;margin:.6rem 0 0;font-size:.88rem;color:var(--graphite)}
.tok-filter input{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--r-btn);padding:.5rem .7rem;min-height:42px}
.semwrap{max-height:70vh}
table.sem{font-size:.8rem;min-width:56rem}
table.sem thead th{position:sticky;top:0;z-index:2}
table.sem th[scope="row"]{position:sticky;left:0;z-index:1;background:var(--paper);min-width:13rem;white-space:normal}
table.sem th[scope="row"] b{display:block;font-weight:500;font-size:.85rem}
table.sem th[scope="row"] code{font-size:.72rem;background:none;padding:0;color:var(--graphite)}
table.sem td{padding:.45rem .6rem;border-top:1px solid rgba(128,128,128,.18);white-space:nowrap}
.cell{display:flex;align-items:center;gap:.5rem}
.cell .chip{width:1.25rem;height:1.25rem}
tr[hidden]{display:none}
.radii{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.8rem}
.radii li{display:grid;gap:.25rem;max-width:none;font-size:.88rem}
.radii b{font-weight:500}.radii small{color:var(--tertiary);font-size:.75rem}
.rbox{display:block;height:4.5rem;background:var(--brand-subtle);border:1.5px solid var(--accent)}
.spaces{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.45rem}
.spaces li{display:grid;grid-template-columns:minmax(9rem,13rem) minmax(0,1fr) 7.5rem;gap:1rem;align-items:center;max-width:none;font-size:.88rem}
.sname b{font-weight:500;display:block}.sname small{color:var(--tertiary);font-size:.74rem}
.bars{display:grid;gap:3px;min-width:0;overflow:hidden}
.bars i{display:block;height:7px;border-radius:4px;max-width:100%}
.bars .m{background:var(--brand-subtle)}.bars .d{background:var(--accent)}
.spaces .mono{text-align:end}
@media (max-width:560px){.spaces li{grid-template-columns:1fr 4.5rem}.spaces .bars{grid-column:1/-1;order:3}}
.layoutbox{margin:1.4rem 0}
.lb-frame{display:grid;grid-template-columns:1fr 8fr 1fr;height:4.5rem;border:1px solid var(--rule-2);border-radius:var(--r-img);overflow:hidden}
.lb-pad{background:repeating-linear-gradient(135deg,var(--brand-subtle) 0 6px,transparent 6px 12px)}
.lb-content{display:grid;place-items:center;background:var(--paper-2);font-size:.85rem;color:var(--graphite)}
.shadows{list-style:none;padding:0;margin:1.2rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.4rem}
.shadows li{display:grid;gap:.5rem;max-width:none}
.shbox{display:block;height:6rem;border-radius:var(--r-card);background:var(--paper);border:1px solid var(--rule)}
.shadows b{font-weight:500}.shadows code{font-size:.7rem;white-space:normal;word-break:break-word}
.cell .chip{background:var(--c);box-shadow:inset 0 0 0 1px currentColor;opacity:1}
.cell .chip{box-shadow:0 0 0 1px rgba(128,128,128,.55)}
table.sem td,table.sem th{vertical-align:middle}
/* judgment */
.outcomes{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.6rem}
@media (min-width:860px){.outcomes{grid-template-columns:repeat(4,1fr)}}
.outcomes li{max-width:none;display:grid;gap:.45rem;align-content:start;padding:1rem 1.1rem 1.1rem;border-radius:var(--r-card);border:1px solid var(--rule);border-top:4px solid var(--c);background:var(--paper)}
.outcomes b{font-family:var(--font-head);font-weight:500;font-size:1.15rem;color:var(--c)}
.outcomes span{font-size:.92rem;color:var(--graphite)}
.o-never{--c:var(--danger)}.o-ask{--c:var(--warn)}.o-flag{--c:var(--accent-text)}.o-decide{--c:var(--ok)}
.law0{margin:1rem 0;padding:1rem 1.2rem;border-radius:var(--r-img);background:var(--paper-2);border-left:4px solid var(--danger);max-width:none}
.law0 b{color:var(--danger)}
.prio{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.35rem;max-width:640px;counter-reset:p}
.prio li{counter-increment:p;display:grid;grid-template-columns:2.2rem 1fr;align-items:baseline;column-gap:.6rem;padding:.6rem .9rem;border-radius:var(--r-img);border:1px solid var(--rule);background:var(--paper);max-width:none;margin-left:calc((var(--i,0)) * 0px)}
.prio li::before{content:counter(p);grid-row:1/3;font:500 1.3rem/1 var(--font-head);color:var(--accent-text)}
.prio li:first-child{border-color:var(--danger)}.prio li:first-child::before{color:var(--danger)}
.prio span{grid-column:2;font-size:.88rem;color:var(--graphite)}
.prio li:nth-child(1){width:100%}.prio li:nth-child(2){width:96%}.prio li:nth-child(3){width:92%}.prio li:nth-child(4){width:88%}.prio li:nth-child(5){width:84%}.prio li:nth-child(6){width:80%}.prio li:nth-child(7){width:76%}
.chain{list-style:none;padding:0;margin:1.2rem 0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch}
.chain li{position:relative;max-width:none;flex:1 1 11rem;display:grid;gap:.2rem;padding:.8rem 1rem;border-radius:var(--r-img);border:1px solid var(--rule);background:var(--paper)}
.chain li b{font-weight:500}.chain li small{color:var(--graphite);font-size:.82rem}
@media (min-width:860px){.chain li:not(:last-child)::after{content:"→";position:absolute;right:-.62rem;top:50%;translate:0 -50%;color:var(--accent);font-weight:600;background:var(--paper);line-height:1;padding:.1rem 0}}
details.calls{border:1px solid var(--rule);border-radius:var(--r-img);margin:.5rem 0;background:var(--paper)}
details.calls summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;font-weight:500}
details.calls summary::-webkit-details-marker{display:none}
details.calls summary::after{content:"+";font:400 1.3rem/1 var(--font-body);color:var(--graphite);transition:transform .25s ease}
details.calls[open] summary::after{transform:rotate(45deg)}
details.calls summary small{margin-left:auto;color:var(--graphite);font-weight:400;font-size:.82rem}
details.calls summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r-img)}
details.calls ul{margin:0;padding:0 1rem 1rem 2.1rem;display:grid;gap:.5rem}
details.calls li{font-size:.94rem;max-width:72ch}
.loop{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.6rem;counter-reset:l}
@media (min-width:860px){.loop{grid-template-columns:repeat(4,1fr)}}
.loop li{counter-increment:l;max-width:none;display:grid;gap:.3rem;padding:1rem;border-radius:var(--r-card);background:var(--paper-2);position:relative}
.loop li::before{content:counter(l);font:500 1.4rem/1 var(--font-head);color:var(--accent)}
.loop span{font-size:.9rem;color:var(--graphite)}
.loop li:last-child::after{content:"↺ back to 1";position:absolute;right:1rem;top:1rem;font-size:.75rem;color:var(--accent-text)}
@media (prefers-reduced-motion:reduce){details.calls summary::after{transition:none}}
