/* Grema. Concept: the trace. See DESIGN.md. Fonts: Bricolage Grotesque, Newsreader (SIL OFL 1.1). */
@font-face{font-family:"Bricolage";src:url(/assets/fonts/bricolage-grotesque-var.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"Newsreader";src:url(/assets/fonts/newsreader-var.woff2) format("woff2");font-weight:200 800;font-display:swap}

:root{
  color-scheme:light dark;
  --paper:#e9efe6;--paper-2:#f3f6ef;--ink:#0d1f18;--muted:#44564d;--rule:#bfcbbf;
  --gap:#c2301a;--gap-fill:#e8472d;--ok:#0a6a4d;--ok-fill:#12825f;--verify:#7d5300;--verify-fill:#d4951a;
  --scene:#0b1713;--scene-2:#12231d;--scene-ink:#e4ede6;--scene-muted:#9bafa4;--scene-rule:#2a3f35;
  --scene-gap:#ff7658;--scene-ok:#5fd3a6;--scene-verify:#f2bc57;
  --display:"Bricolage","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --text:"Newsreader","Iowan Old Style",Charter,Georgia,serif;
  --pad:clamp(20px,4.4vw,64px);--gut:clamp(16px,2vw,32px);--head:60px;
  --sec:clamp(80px,11vw,176px);
  --ease:cubic-bezier(.2,.7,.1,1);
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0a1411;--paper-2:#101e19;--ink:#e4ede6;--muted:#9bafa4;--rule:#25382f;
  --gap:#ff7658;--gap-fill:#ff7658;--ok:#5fd3a6;--ok-fill:#5fd3a6;--verify:#f2bc57;--verify-fill:#f2bc57;
  --scene:#111f1a;--scene-2:#172a22;--scene-rule:#30473c;
}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 16px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.1875rem/1.55 var(--text);font-variant-numeric:lining-nums;font-synthesis:none;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--ink);color:var(--paper)}
img,svg{display:block}
a{color:inherit;text-decoration:underline;text-decoration-color:var(--gap-fill);text-decoration-thickness:1.5px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:3px}
:focus-visible{outline:3px solid var(--gap-fill);outline-offset:4px;border-radius:1px}
h1,h2,h3{font-family:var(--display);font-stretch:78%;font-weight:640;margin:0;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(2.9rem,8vw,8.2rem);line-height:.92;letter-spacing:-.022em;font-stretch:75%;font-weight:680}
h2{font-size:clamp(2.2rem,4.7vw,4.4rem);line-height:.98;letter-spacing:-.02em}
h3{font-size:clamp(1.4rem,1.9vw,1.75rem);line-height:1.08}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
strong{font-weight:640}
.ui,.btn,.site-head,.site-foot,dt,.when,.tag,.stamp,.st,.facts,.sev,.src-k,.hop-k,.rail,.map,summary,.note-k{font-family:var(--display);font-stretch:92%;letter-spacing:-.005em;font-variant-numeric:tabular-nums lining-nums}
.wrap{max-width:1500px;margin:0 auto;padding:0 var(--pad)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:50;font-family:var(--display)}
.skip:focus{left:12px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* header */
.site-head{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--rule);font-size:.9375rem}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:var(--head)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:680 1.4rem/1 var(--display);font-stretch:78%;letter-spacing:-.03em}
.brand svg{width:26px;height:26px;flex:none}
.tag{display:inline-block;font-size:.75rem;font-weight:560;line-height:1;padding:5px 8px 4px;border:1px solid currentColor;border-radius:99px;color:var(--muted);letter-spacing:0;white-space:nowrap}
.site-head nav ul{display:flex;gap:26px}
.site-head nav a{text-decoration:none;color:var(--muted);font-weight:500;padding:6px 0}
.site-head nav a:hover,.site-head nav a:focus-visible{color:var(--ink)}
.head-cta{font-weight:620;text-decoration-thickness:2px;white-space:nowrap}
@media (max-width:980px){.site-head nav{display:none}}
@media (max-width:420px){.site-head .tag{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:14px;padding:17px 24px 16px;font-size:1.0625rem;font-weight:620;line-height:1;text-decoration:none;border:1.5px solid var(--ink);border-radius:2px;will-change:transform}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn .rec{width:14px;height:10px;border-radius:1px;background:currentColor;flex:none;transition:transform .35s var(--ease)}
.btn:hover .rec,.btn:focus-visible .rec{transform:translateX(6px)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--paper);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:12px}

/* stamps and status */
.stamp{display:inline-block;font-size:.8125rem;font-weight:620;line-height:1.2;padding:7px 11px 6px;border:1.5px dashed currentColor;border-radius:2px;color:var(--gap);transform:rotate(-1.2deg);transform-origin:left center}
.st{display:inline-flex;align-items:center;gap:8px;font-weight:640;font-size:.9375rem;line-height:1}
.st::before{content:"";width:12px;height:12px;border-radius:50%;flex:none;border:2.5px solid currentColor}
.st-ok{color:var(--ok)}.st-ok::before{background:currentColor}
.st-verify{color:var(--verify)}.st-verify::before{background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.st-gap{color:var(--gap)}

/* section scaffolding */
.sec{padding:var(--sec) 0 0}
.sec-rule{display:block;height:1px;background:var(--ink);transform-origin:left;margin-bottom:clamp(20px,2.4vw,36px)}
.js:not(.rm) .sec-rule{transform:scaleX(0);transition:transform 1.1s var(--ease)}
.js:not(.rm) .sec-rule.is-in{transform:none}
.sec-head{margin-bottom:clamp(36px,5vw,84px)}
.sec-head h2{grid-column:1/9}
.sec-head .sec-lede{grid-column:9/13;align-self:end;color:var(--muted);margin:0;font-size:1.125rem;max-width:36ch}
.sec-head .stamp{margin-top:14px}
@media (max-width:900px){.sec-head h2,.sec-head .sec-lede{grid-column:1/-1}.sec-head .sec-lede{margin-top:18px}}

/* hero */
.hero{padding-top:clamp(36px,6vw,92px)}
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:560 1.0625rem/1.2 var(--display);font-stretch:92%;margin:0 0 clamp(18px,2.2vw,30px)}
.hero h1{max-width:12em}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.06em 0 .12em;margin:-.06em 0 -.12em}
.hero h1 .w>span{display:inline-block}
.js:not(.rm) .hero h1{visibility:hidden}
.js:not(.rm) .hero.is-ready h1{visibility:visible}
.js:not(.rm) .hero.is-ready h1 .w>span{animation:rise .9s var(--ease) both;animation-delay:calc(var(--i)*45ms)}
@keyframes rise{from{transform:translateY(108%)}to{transform:none}}
.hero-body{margin-top:clamp(28px,4vw,60px);row-gap:36px;align-items:start}
.hero-copy{grid-column:1/7}
.hero-sub{font:620 clamp(1.5rem,2.5vw,2.25rem)/1.05 var(--display);font-stretch:78%;letter-spacing:-.025em;margin:0 0 .55em}
.lede{font-size:clamp(1.1875rem,1.45vw,1.375rem);line-height:1.45;max-width:34em;margin-bottom:1.5em}
.stop{font-size:1rem;line-height:1.45;color:var(--muted);margin:22px 0 0;padding-left:14px;border-left:3px solid var(--gap-fill);max-width:34em}
.stop strong{color:var(--ink)}
.js:not(.rm) .hero-copy,.js:not(.rm) .record-card,.js:not(.rm) .facts{opacity:0;transition:opacity .9s ease .55s}
.js:not(.rm) .hero.is-ready .hero-copy,.js:not(.rm) .hero.is-ready .record-card,.js:not(.rm) .hero.is-ready .facts{opacity:1}

.record-card{grid-column:8/13;background:var(--paper-2);border:1px solid var(--ink);border-radius:2px;font-family:var(--display);font-stretch:92%;font-size:.9375rem;line-height:1.3;box-shadow:8px 8px 0 var(--rule)}
.record-card header{display:flex;justify-content:space-between;gap:12px;padding:13px 18px 12px;border-bottom:1px solid var(--ink);font-weight:620}
.record-card header span:last-child{color:var(--muted);font-weight:480}
.record-card dl{margin:0;padding:6px 18px}
.record-card .row{display:grid;grid-template-columns:7.2em 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule)}
.record-card .row:last-child{border-bottom:0}
.record-card dt{color:var(--muted);font-size:.875rem}
.record-card dd{margin:0;position:relative;min-height:1.35em;font-weight:520}
.record-card dd::after{content:"";position:absolute;inset:-1px 0;width:var(--w,70%);background:var(--ink);transform-origin:left;transition:transform .5s var(--ease);transition-delay:calc(var(--r,0)*60ms)}
.record-card:hover dd::after,.record-card.is-lifted dd::after{transform:scaleX(.035)}
.js:not(.rm) .record-card dd::after{transform:scaleX(0)}
.js:not(.rm) .hero.is-ready .record-card dd::after{transform:none;transition-delay:calc(.7s + var(--r,0)*80ms)}
.js:not(.rm) .hero.is-ready .record-card:hover dd::after,.js:not(.rm) .hero.is-ready .record-card.is-lifted dd::after{transform:scaleX(.035);transition-delay:calc(var(--r,0)*60ms)}
.record-card dd span{padding-left:.7em}
.record-card footer{padding:13px 18px 15px;border-top:1px solid var(--ink);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}
.record-card footer p{margin:0;flex:1 1 15em;font:400 1rem/1.35 var(--text)}
.lift{font:600 .875rem/1 var(--display);font-stretch:92%;color:inherit;background:none;border:0;padding:8px 0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--gap-fill);text-decoration-thickness:1.5px;text-underline-offset:.25em}
.lift[hidden]{display:none}

.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(40px,6vw,88px);border-top:1px solid var(--ink)}
.facts li{padding:16px 16px 0 0;font-size:.9375rem;line-height:1.3;color:var(--muted)}
.facts li+li{padding-left:16px;border-left:1px solid var(--rule)}
.facts b{display:block;font-weight:640;font-stretch:78%;font-size:clamp(1.35rem,2.3vw,2.1rem);line-height:1.05;letter-spacing:-.015em;color:var(--ink);margin-bottom:6px}
@media (max-width:900px){
  .hero-copy,.record-card{grid-column:1/-1}
  .record-card{box-shadow:5px 5px 0 var(--rule)}
  .facts{grid-template-columns:1fr 1fr}
  .facts li{padding:14px 12px 14px 0}
  .facts li:nth-child(odd){padding-left:0;border-left:0}
  .facts li:nth-child(n+3){border-top:1px solid var(--rule)}
  .actions .btn{flex:1 1 100%;justify-content:space-between}
}

/* trace */
.trace-grid{align-items:start}
.trace-stage{grid-column:1/8;position:sticky;top:calc(var(--head) + 24px);z-index:2}
.map{margin:0;background:var(--scene);color:var(--scene-ink);border-radius:2px;font-size:.8125rem;line-height:1.15;width:min(100%,calc((100vh - var(--head) - 150px)*1.282));min-width:min(100%,420px)}
.map-plot{position:relative;aspect-ratio:100/78;overflow:hidden}
.map-regions{position:absolute;inset:0;display:grid;grid-template-columns:30fr 44fr 26fr}
.map-regions span{padding:12px 0 0 12px;color:var(--scene-muted);font-weight:520}
.map-regions span+span{border-left:1px dashed var(--scene-rule)}
.map svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.p-base{fill:none;stroke:var(--scene-rule);stroke-width:.3;stroke-dasharray:.9 1.1}
.p-live{fill:none;stroke-width:.55;stroke-dasharray:1;stroke-dashoffset:0}
.c-ok{--c:var(--scene-ok)}.c-verify{--c:var(--scene-verify)}.c-gap{--c:var(--scene-gap)}
.p-live{stroke:var(--c)}
.flow{fill:var(--c);opacity:0;offset-rotate:0deg;animation:flow 2.6s linear infinite paused}
.map.is-live .is-done .flow{opacity:.95;animation-play-state:running}
.flow:nth-of-type(2){animation-delay:-1.3s}
@keyframes flow{from{offset-distance:0%}to{offset-distance:100%}}
.node{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1.2821%);display:flex;align-items:center;gap:9px;transform:translate(-11px,-50%);text-decoration:none;color:var(--scene-ink);padding:3px 4px 3px 0;border-radius:2px}
.node.below{flex-direction:column;align-items:flex-end;gap:7px;transform:translate(calc(-100% + 11px),-11px);text-align:right;padding:0 0 3px}
.node:focus-visible{outline-color:var(--scene-ink)}
.dot{position:relative;width:22px;height:22px;flex:none;border-radius:50%;border:2px solid var(--c,var(--scene-muted));background:var(--scene);transition:background-color .35s,border-color .35s,border-width .35s,transform .35s var(--ease)}
.c-ok .dot{background:var(--c)}
.c-verify .dot{background:linear-gradient(90deg,var(--c) 50%,var(--scene) 50%)}
.c-gap .dot{border-width:5px}
.node:hover .dot{transform:scale(1.18)}
.dot::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1.5px solid var(--scene-ink);opacity:0}
.node.is-current .dot::after{animation:ping 1.3s ease-out infinite}
@keyframes ping{from{transform:scale(.5);opacity:.9}to{transform:scale(1.25);opacity:0}}
.lab{display:block;font-weight:600;white-space:nowrap}
.lab small{display:block;margin-top:3px;font-size:.75rem;font-weight:560;color:var(--c,var(--scene-muted));transition:opacity .35s}
.node.origin .dot{width:14px;height:10px;border-radius:1px;border:0;background:var(--scene-muted);margin:0 4px}
.js:not(.rm) .node:not(.is-done):not(.origin) .dot{background:var(--scene);border-color:var(--scene-muted);border-width:2px}
.js:not(.rm) .node:not(.is-done) .lab small{opacity:0}
.record{position:absolute;left:0;top:0;width:16px;height:12px;margin:-6px 0 0 -8px;border-radius:1.5px;background:var(--scene-ink);box-shadow:0 0 0 5px rgba(228,237,230,.16),0 0 22px 4px rgba(228,237,230,.28);display:none;will-change:transform;pointer-events:none}
.record::before{content:"";position:absolute;left:3px;right:6px;top:3px;height:2px;background:var(--scene);box-shadow:0 4px 0 var(--scene)}
.js:not(.rm) .record{display:block}
.map figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding:11px 14px 12px;border-top:1px solid var(--scene-rule)}
.map .stamp{color:var(--scene-gap);font-size:.75rem;padding:5px 8px 4px;transform:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px}
.legend .st{font-size:.8125rem;font-weight:560;color:var(--scene-ink)}
.legend .st::before{color:var(--c)}
.legend .c-ok::before{background:currentColor}
.legend b{font-weight:680;color:var(--c);min-width:.65em;display:inline-block;text-align:right}

.hops{grid-column:9/13}
.hop{padding:22px 0 30px;border-top:1px solid var(--rule);scroll-margin-top:calc(var(--head) + 24px)}
.hop:first-child{border-top:0;padding-top:0}
.hop-k{font-size:.875rem;font-weight:560;color:var(--muted);margin:0 0 10px}
.hop h3{margin-bottom:16px}
.hop p{max-width:30em}
.hop dl{margin:0 0 18px}
.hop .row{display:grid;grid-template-columns:6.2em 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--rule);font-size:1.0625rem;line-height:1.35}
.hop dt{color:var(--muted);font-size:.875rem;padding-top:.2em}
.hop dd{margin:0}
.hop .st{font-size:1.0625rem}
.tally{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:12px;margin:0 0 20px}
.tally div{font:560 .875rem/1.2 var(--display);font-stretch:92%;color:var(--muted)}
.tally b{display:block;font-size:clamp(2.6rem,4.4vw,4rem);font-weight:680;font-stretch:75%;letter-spacing:-.04em;line-height:.9;color:var(--c,var(--ink));font-variant-numeric:tabular-nums}
.tally .t-ok{--c:var(--ok)}.tally .t-verify{--c:var(--verify)}.tally .t-gap{--c:var(--gap)}
.js:not(.rm) .hop{min-height:76vh;opacity:.34;transition:opacity .4s}
.js:not(.rm) .hop.is-active{opacity:1}
.js:not(.rm) .hop:last-child{min-height:50vh}
@media (max-width:900px){
  .trace-stage{grid-column:1/-1;top:var(--head);margin:0 calc(var(--pad)*-1)}
  .map{width:100%;border-radius:0;font-size:.75rem}
  .map .stamp{font-size:.6875rem;border-width:1px}
  .map figcaption{padding:8px var(--pad) 9px}
  .legend{gap:4px 12px}.legend .st{font-size:.75rem;gap:6px}.legend .st::before{width:10px;height:10px;border-width:2px}
  .dot{width:18px;height:18px}.c-gap .dot{border-width:4px}
  .node{transform:translate(-9px,-50%);gap:6px}.node.below{transform:translate(calc(-100% + 9px),-9px);gap:5px}
  .lab small{font-size:.6875rem;margin-top:2px}
  .hops{grid-column:1/-1;margin-top:28px}
  .hop{scroll-margin-top:calc(var(--head) + var(--stage-h,400px) + 12px)}
  .js:not(.rm) .hop{min-height:56vh}
  .js:not(.rm) .hop:last-child{min-height:0}
}

/* findings */
.finding{padding:26px 0 30px;border-top:1px solid var(--rule);row-gap:12px;align-items:start}
.finding:last-child{border-bottom:1px solid var(--rule)}
.sev{grid-column:1/3;font-weight:640;font-size:.9375rem;display:flex;flex-direction:column;gap:9px;padding-top:.45em}
.sev i{display:flex;gap:3px}
.sev i::before,.sev i::after,.sev i b{content:"";display:block;width:22px;height:6px;background:var(--rule)}
.sev-high{color:var(--gap)}.sev-high i::before,.sev-high i b,.sev-high i::after{background:currentColor}
.sev-med{color:var(--verify)}.sev-med i::before,.sev-med i b{background:currentColor}
.sev-save{color:var(--ok)}.sev-save i{display:none}
.finding .what{grid-column:3/8}
.finding .what h3{margin-bottom:10px}
.finding .what p{margin:0;color:var(--muted);max-width:34em}
.finding .fix{grid-column:8/13;margin:0;padding-top:.3em;max-width:34em}
.finding .fix strong{font-family:var(--display);font-stretch:92%;font-size:.9375rem;display:block;margin-bottom:4px}
@media (max-width:900px){.sev{grid-column:1/-1;flex-direction:row;align-items:center;padding:0}.finding .what,.finding .fix{grid-column:1/-1}}

/* deliverables */
.deliv{padding:clamp(26px,3vw,44px) 0;border-top:1px solid var(--rule);row-gap:14px;align-items:start}
.deliv:last-child{border-bottom:1px solid var(--rule)}
.deliv .num{grid-column:1/2;font:300 clamp(2.6rem,4.6vw,4.4rem)/.8 var(--display);font-stretch:75%;letter-spacing:-.04em;color:var(--muted)}
.deliv h3{grid-column:2/6;font-size:clamp(1.6rem,2.5vw,2.4rem);line-height:1;max-width:9em}
.deliv .body{grid-column:6/10;margin:0}
.deliv .src{grid-column:10/13;font-size:.9375rem;line-height:1.42;color:var(--muted);border-left:1px solid var(--rule);padding-left:16px}
.deliv .src p{margin:0 0 .7em}
.deliv .src p:last-child{margin:0}
.deliv .src a{color:var(--ink);display:block;margin-top:4px}
.src-k{display:block;font-size:.8125rem;font-weight:620;color:var(--ink);margin-bottom:4px}
@media (max-width:1100px){.deliv .body{grid-column:6/13}.deliv .src{grid-column:6/13}}
@media (max-width:760px){.deliv .num,.deliv h3,.deliv .body,.deliv .src{grid-column:1/-1}.deliv .num{font-size:2.6rem}}

/* fit */
.fit{row-gap:44px}
.fit>div{grid-column:span 6}
.fit h3{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--ink)}
.fit li{position:relative;padding:12px 0 12px 30px;border-bottom:1px solid var(--rule);max-width:36em}
.fit li::before{content:"";position:absolute;left:1px;top:1.05em;width:13px;height:13px;border-radius:50%;border:2.5px solid var(--ok);background:var(--ok)}
.fit .no li::before{background:transparent;border-color:var(--gap)}
.fit .no li{color:var(--muted)}
@media (max-width:760px){.fit>div{grid-column:1/-1}}

/* five days */
.gantt{position:relative;--p:1}
.stages{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:4px}
.stage{padding-right:18px}
.when{font-size:.9375rem;font-weight:600;margin:0 0 10px;color:var(--muted)}
.bar{display:block;position:relative;height:12px;background:var(--rule);overflow:hidden;margin:0 -18px 20px 0}
.bar i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(var(--f,1))}
.stage h3{font-size:1.4rem;margin-bottom:8px}
.stage p:last-child{font-size:1.0625rem;line-height:1.45;margin:0}
.js:not(.rm) .stage h3,.js:not(.rm) .stage p{transition:opacity .4s}
.js:not(.rm) .stage:not(.is-on) h3,.js:not(.rm) .stage:not(.is-on) p{opacity:.38}
.access{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:4px;margin:34px 0 0;font:560 .9375rem/1.3 var(--display);font-stretch:92%;color:var(--ok)}
.access span{grid-column:2/7}
.access .bar{height:4px;margin:0 0 10px}
.access .bar i{background:var(--ok-fill)}
@media (max-width:900px){
  .stages{display:block;position:relative;padding-left:26px}
  .stages::before,.stages::after{content:"";position:absolute;left:5px;top:6px;bottom:0;width:2px;background:var(--rule)}
  .stages::after{background:var(--ink);transform-origin:top;transform:scaleY(var(--p))}
  .stage{position:relative;padding:0 0 30px}
  .stage::before{content:"";position:absolute;left:-26px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);z-index:1;transition:background-color .3s}
  .stage.is-on::before,html:not(.js) .stage::before,.rm .stage::before{background:var(--ink)}
  .stage .bar{display:none}
  .access{display:block;padding-left:26px;margin-top:6px}
}

/* pricing */
.price-main{grid-column:1/9}
.price-side{grid-column:9/13;border-top:1px solid var(--ink);padding-top:22px;align-self:end}
.price-name{font:600 1.125rem/1.2 var(--display);font-stretch:92%;margin:0 0 6px;letter-spacing:-.01em}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .22em;font-family:var(--display);font-stretch:75%;font-weight:680;letter-spacing:-.025em;line-height:.84;margin:0}
.price small{font-size:.26em;font-weight:560;letter-spacing:-.01em;font-stretch:90%}
.price-main .price{font-size:clamp(5.4rem,17vw,16.5rem)}
.price-side .price{font-size:clamp(3.6rem,6.6vw,6.4rem)}
.price small{color:var(--muted)}
.price b{font-weight:inherit;display:inline-block;font-variant-numeric:tabular-nums}
.terms{font:520 1.0625rem/1.3 var(--display);font-stretch:92%;color:var(--muted);margin:14px 0 26px}
.incl{columns:2;column-gap:var(--gut);max-width:46em;margin-bottom:30px}
.price-side .incl{columns:1}
.incl li{break-inside:avoid;padding:9px 0;border-top:1px solid var(--rule);font-size:1.0625rem;line-height:1.35}
.notes{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--rule);padding-top:22px;row-gap:18px}
.notes p{grid-column:span 4;margin:0;font-size:1.0625rem;line-height:1.45;color:var(--muted)}
.note-k{display:block;font-weight:620;font-size:.9375rem;color:var(--ink);margin-bottom:4px}
@media (max-width:900px){.price-main,.price-side{grid-column:1/-1}.price-side{margin-top:48px}.incl{columns:1}.notes p{grid-column:1/-1}}

/* faq */
.faq h2{grid-column:1/5;position:sticky;top:calc(var(--head) + 28px);align-self:start}
.faq .qa{grid-column:6/13}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-of-type{border-top:1px solid var(--ink)}
.faq summary{cursor:pointer;list-style:none;position:relative;padding:20px 44px 19px 0;font-size:clamp(1.25rem,1.7vw,1.5rem);font-weight:600;font-stretch:82%;letter-spacing:-.02em;line-height:1.15}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:2px;background:var(--ink);transition:transform .3s var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:none}
.faq details p{margin:0 0 22px;max-width:38em}
@media (max-width:900px){.faq h2,.faq .qa{grid-column:1/-1}.faq h2{position:static;margin-bottom:28px}}

/* plain statement + close */
.plain{position:relative;z-index:21;margin-top:var(--sec);background:var(--scene);color:var(--scene-ink);padding:clamp(56px,8vw,128px) 0}
.plain h2{grid-column:1/9;font-size:clamp(2.4rem,6.2vw,6rem);line-height:.94}
.plain p{grid-column:9/13;align-self:end;margin:0;color:var(--scene-muted);font-size:1.0625rem;line-height:1.5}
.plain p strong{color:var(--scene-ink)}
@media (max-width:900px){.plain h2,.plain p{grid-column:1/-1}.plain p{margin-top:24px}}
.close{padding:clamp(64px,9vw,150px) 0 clamp(56px,7vw,110px)}
.close p{margin:0 0 18px;max-width:34em}
.close-cta{display:inline-block;position:relative;font:680 clamp(3.4rem,13.2vw,13.5rem)/.86 var(--display);font-stretch:75%;letter-spacing:-.025em;text-decoration:none;padding-bottom:.12em;will-change:transform}
.close-cta::before{content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(3px,.5vw,7px);background:var(--ink)}
.close-cta::after{content:"";position:absolute;left:0;bottom:calc(clamp(3px,.5vw,7px)/2);width:clamp(18px,2.6vw,36px);height:clamp(13px,1.9vw,26px);margin-bottom:calc(clamp(13px,1.9vw,26px)/-2);border-radius:2px;background:var(--gap-fill);transition:transform .9s var(--ease)}
.close-cta:hover::after,.close-cta:focus-visible::after{transform:translateX(calc(var(--cw,60vw) - 100%))}
.close .stop{margin-top:34px}
.close .alt{font:520 1.0625rem/1.4 var(--display);font-stretch:92%;margin-top:26px;color:var(--muted)}

/* footer */
.site-foot{border-top:1px solid var(--rule);padding:34px 0 48px;color:var(--muted);font-size:.9375rem;line-height:1.5}
.site-foot .grid{row-gap:22px}
.site-foot .grid>div{grid-column:span 4}
.site-foot p{margin:0 0 .4em}
.site-foot strong{color:var(--ink);font-weight:620}
@media (max-width:760px){.site-foot .grid>div{grid-column:1/-1}}

/* rail */
.rail{display:none}
@media (min-width:1280px){
  .js .rail{display:block;position:fixed;left:calc(max(0px,(100vw - 1500px)/2) + var(--pad)/2 - 6px);top:50%;transform:translateY(-50%);z-index:20;font-size:.8125rem;font-weight:600}
  .rail ol{position:relative;display:grid;gap:22px}
  .rail ol::before,.rail .fill{content:"";position:absolute;left:5.5px;top:6px;bottom:6px;width:1px;background:var(--rule)}
  .rail .fill{background:var(--ink);transform-origin:top;transform:scaleY(var(--rp,0))}
  .rail a{position:relative;display:flex;align-items:center;gap:10px;text-decoration:none;height:12px}
  .rail a::before{content:"";width:12px;height:12px;border-radius:50%;border:1.5px solid var(--muted);background:var(--paper);flex:none;transition:background-color .25s,border-color .25s,transform .25s}
  .rail a.is-on::before{background:var(--ink);border-color:var(--ink)}
  .rail a:hover::before{transform:scale(1.25);border-color:var(--ink)}
  .rail a span{background:var(--ink);color:var(--paper);padding:5px 8px 4px;border-radius:2px;white-space:nowrap;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;pointer-events:none}
  .rail a:hover span,.rail a:focus-visible span{opacity:1;transform:none}
}

/* legal + 404 */
.legal main{padding:clamp(40px,6vw,96px) 0 var(--sec)}
.legal h1{font-size:clamp(2.6rem,6vw,5.2rem);margin-bottom:.35em}
.legal .col{grid-column:1/9;max-width:44em}
.legal h2{font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.08;margin:2em 0 .5em;padding-top:.8em;border-top:1px solid var(--rule);letter-spacing:-.025em}
.legal .meta{color:var(--muted);font-size:1.0625rem}
.legal main ul{list-style:disc;padding-left:1.2em;margin:0 0 1em}
.legal main li{margin-bottom:.4em}
.legal main li::marker{color:var(--gap-fill)}
.lost{min-height:calc(100vh - var(--head) - 160px);display:grid;align-content:center;padding-top:64px;padding-bottom:64px}
.lost h1{margin:18px 0 .25em;max-width:9em}
.lost p{max-width:30em}
.lost .st{font-size:1.0625rem}
@media (max-width:900px){.legal .col{grid-column:1/-1}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-head,.rail,.record{display:none!important}}
