[hidden]{display:none!important}
:root{--ink:#101010;--char:#292827;--stone:#77716B;--ivory:#F0EDE7;--muted:#C4BFB7;--line:rgba(240,237,231,.11);--err:#E59B8C;--ok:#9CC8A9;--warn:#DDBB78;
--bg:var(--ink);--surface:var(--char);--text:var(--ivory);box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
*,*:before,*:after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.65 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:400;letter-spacing:-.015em;line-height:1.08;margin:0}
h1{font-size:clamp(34px,5.4vw,68px)}h2{font-size:clamp(28px,4.2vw,52px)}h3{font-size:22px;font-weight:400}
p{margin:0 0 1em}a{color:inherit}
:focus-visible{outline:2px solid var(--ivory);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ivory);color:var(--ink);padding:10px 16px;z-index:99}.skip:focus{left:8px}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(16,16,16,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.wm{font:400 20px Montserrat,Inter,sans-serif;letter-spacing:.42em;text-decoration:none;color:var(--ivory)}
nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-size:15px}
nav a{text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
nav a:hover,nav a[aria-current=page]{color:var(--ivory);border-bottom-color:var(--ivory)}
.btn{display:inline-block;font:500 15px Inter,sans-serif;padding:14px 28px;border:1px solid var(--ivory);background:var(--ivory);color:var(--ink);text-decoration:none;cursor:pointer;transition:background .25s,color .25s}
.btn:hover{background:transparent;color:var(--ivory)}.btn.s{background:transparent;color:var(--ivory)}.btn.s:hover{background:var(--ivory);color:var(--ink)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
header .btn{padding:10px 20px}
.burger{display:none;background:none;border:1px solid var(--line);width:44px;height:44px;cursor:pointer;color:var(--ivory)}
.bar{display:flex;gap:18px;align-items:center}
@media(max-width:980px){nav{display:none}header .bar>.btn{display:none}.burger{display:block}
header.open nav{display:block;position:absolute;top:72px;left:0;right:0;background:var(--ink);border-bottom:1px solid var(--line);padding:8px 28px 22px}
header.open nav ul{flex-direction:column;gap:0}header.open nav a{display:block;padding:15px 0;font-size:19px;color:var(--ivory);border-bottom:1px solid var(--line)}}
section{padding:clamp(80px,14vh,170px) 0}
.hero{padding:clamp(90px,20vh,220px) 0 clamp(60px,10vh,120px)}
.hero .wm{display:block;font-size:clamp(34px,8vw,104px);letter-spacing:.44em;padding-left:0;margin:0 0 clamp(40px,8vh,90px);text-align:left}
.hero h1{max-width:16ch}.lede{color:var(--muted);font-size:clamp(17px,1.6vw,20px);max-width:56ch;margin:28px 0 40px}
.row{display:flex;gap:14px;flex-wrap:wrap}
.split{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(32px,7vw,110px)}
@media(max-width:820px){.split{grid-template-columns:1fr}}
.list a.item,.list .item{display:grid;grid-template-columns:1fr 1.2fr auto;gap:28px;padding:30px 0;border-top:1px solid var(--line);text-decoration:none;align-items:baseline;transition:padding .3s}
.list a.item:hover{padding-left:12px}.list>:last-child{border-bottom:1px solid var(--line)}
.list h3{font-size:clamp(22px,2.6vw,30px)}.list p{margin:0;color:var(--muted);font-size:16px}.list .go{color:var(--muted);font-size:15px}
@media(max-width:700px){.list a.item,.list .item{grid-template-columns:1fr;gap:8px}}
.pts{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}.pts div{padding:26px 0;border-top:1px solid var(--line)}.pts h3{margin-bottom:8px}.pts p{color:var(--muted);margin:0;font-size:16px}
@media(max-width:700px){.pts{grid-template-columns:1fr}}
.num{font:300 clamp(44px,11vw,150px)/1 Inter,system-ui,sans-serif,sans-serif;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.subs{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px;max-width:720px}.subs div{border-top:1px solid var(--line);padding-top:16px}.subs b{display:block;font:300 clamp(24px,3.4vw,40px) Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}.subs span{color:var(--muted);font-size:15px}
@media(max-width:520px){.subs{grid-template-columns:1fr}}
.marq{overflow:hidden;margin-top:48px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.track{display:flex;width:max-content;animation:slide 38s linear infinite}.marq:hover .track{animation-play-state:paused}.marq.rev .track{animation-direction:reverse}.marq+.marq{margin-top:20px}#d1 li,#d2 li{font-size:clamp(20px,2.4vw,30px);color:var(--muted)}.track img{height:clamp(26px,3vw,38px);width:auto;display:block;filter:grayscale(1) brightness(0) invert(1);opacity:.85}
.track li{font:300 clamp(28px,4vw,52px) Inter,system-ui,sans-serif;letter-spacing:.02em;color:var(--muted);padding-right:clamp(48px,8vw,110px);white-space:nowrap}
@keyframes slide{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.marq{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}
.steps{counter-reset:s;list-style:none;margin:40px 0 0;padding:0}.steps li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;padding:22px 0;border-top:1px solid var(--line)}.steps li:before{content:counter(s,decimal-leading-zero);color:var(--stone);font-size:15px}
.steps b{display:block;font-weight:500}.steps span{color:var(--muted)}
.ph{border:1px dashed var(--stone);padding:16px 20px;color:var(--muted);font-size:15px;margin:32px 0}
.crumb{font-size:14px;color:var(--muted);margin-bottom:36px}.crumb a{color:var(--muted)}
ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:14px 0;border-top:1px solid var(--line)}ul.plain li:last-child{border-bottom:1px solid var(--line)}
footer{padding:72px 0 48px;color:var(--muted);font-size:15px}footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
footer a{display:block;text-decoration:none;padding:4px 0}footer a:hover{color:var(--ivory)}footer h4{font-weight:500;color:var(--ivory);margin:0 0 10px;font-size:15px}
@media(max-width:820px){footer .wrap{grid-template-columns:1fr 1fr}}
form{max-width:640px}label,legend{display:block;font-size:15px;margin:22px 0 8px}fieldset{border:0;padding:0;margin:0}
input[type=text],input[type=email],input[type=url],select,textarea{width:100%;background:var(--ink);border:1px solid var(--stone);color:var(--ivory);padding:13px 14px;font:inherit;border-radius:0}
input:focus,select:focus,textarea:focus{border-color:var(--ivory);outline:0}
.chk{display:flex;gap:12px;align-items:flex-start;margin:12px 0;font-size:15px}.chk input{margin-top:5px;accent-color:var(--ivory)}
.err{color:var(--err);font-size:14px;margin:6px 0 0;min-height:0}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--err)}
.prog{display:flex;gap:8px;margin:0 0 36px}.prog i{flex:1;height:2px;background:var(--line)}.prog i.on{background:var(--ivory)}
.notice{border:1px solid var(--warn);color:var(--ivory);padding:14px 18px;font-size:15px;margin:0 0 28px}.notice b{color:var(--warn);font-weight:500}
.ok{border:1px solid var(--ok);padding:18px 20px;margin-top:28px}
.leg h2{font-size:22px;margin:36px 0 10px;font-weight:400}.leg h3{font-size:18px;margin:22px 0 6px}.leg h4{font-size:16px;margin:16px 0 4px;font-weight:500}.leg ul{padding-left:20px;color:var(--muted)}.leg p,.leg li{color:#d8d4cc;font-size:16px}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,90px)}@media(max-width:820px){.split2{grid-template-columns:1fr}}.art{max-width:760px}.art p{font-size:19px;line-height:1.75;margin:0 0 1.4em}.art .deck{font-size:clamp(20px,2.4vw,26px);color:var(--muted);margin:28px 0 56px;line-height:1.4}.art .big{font-size:clamp(24px,3.4vw,40px);line-height:1.2;margin:56px 0}.art .sign{color:var(--muted);margin-top:56px}
.done{text-align:left;padding:48px 0 8px;animation:in .6s ease both}.done svg{width:92px;height:92px;fill:none;stroke:var(--ivory);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;display:block;margin-bottom:34px}
.done circle,.done path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1s cubic-bezier(.6,0,.2,1) .15s forwards}.done path{animation-duration:.55s;animation-delay:.95s}
.done h2{animation:in .8s ease 1.3s both}.done p,.done .row{animation:in .8s ease 1.5s both}.done .rule{height:1px;background:var(--ivory);width:0;margin:0 0 40px;animation:ln 1.3s cubic-bezier(.6,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}@keyframes ln{to{width:100%}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.pg{animation:in .6s cubic-bezier(.2,.7,.2,1) both}@keyframes in{from{opacity:0;transform:translateY(14px)}}
#intro{position:fixed;inset:0;z-index:60;cursor:pointer}
#intro .pn{position:absolute;left:0;right:0;background:var(--ink);height:50.3%}
#intro .t{top:0;animation:pt 1s cubic-bezier(.76,0,.24,1) 2.6s forwards}#intro .b{bottom:0;animation:pb 1s cubic-bezier(.76,0,.24,1) 2.6s forwards}
#intro .ct{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:fo .5s ease 2.35s forwards}
.wmw{font:400 clamp(34px,9vw,96px) Montserrat,Inter,sans-serif;letter-spacing:.42em;padding-left:.42em;display:flex;overflow:hidden;padding-bottom:.12em}
.wmw span{display:inline-block;opacity:0;transform:translateY(70%);filter:blur(10px);animation:lt 1s cubic-bezier(.2,.7,.2,1) forwards}
.wmw span:nth-child(1){animation-delay:.25s}.wmw span:nth-child(2){animation-delay:.4s}.wmw span:nth-child(3){animation-delay:.55s}.wmw span:nth-child(4){animation-delay:.7s}.wmw span:nth-child(5){animation-delay:.85s}
.ln{display:block;height:1px;width:0;background:var(--ivory);margin:30px 0 22px;animation:lw 1.1s cubic-bezier(.6,0,.2,1) 1.2s forwards}
#intro p{margin:0;font-size:clamp(11px,1.5vw,14px);letter-spacing:.3em;color:var(--muted);text-transform:uppercase;text-align:center;padding:0 20px;opacity:0;animation:fi .9s ease 1.6s forwards}
@keyframes lt{to{opacity:1;transform:none;filter:none}}@keyframes lw{to{width:min(440px,68vw)}}@keyframes fi{to{opacity:1}}@keyframes fo{to{opacity:0}}
@keyframes pt{to{transform:translateY(-101%)}}@keyframes pb{to{transform:translateY(101%)}}
html:not(.seen) .hero .wrap>*{animation:in 1.1s cubic-bezier(.2,.7,.2,1) 3.05s both}html:not(.seen) .hero .wrap>:nth-child(2){animation-delay:3.2s}html:not(.seen) .hero .wrap>:nth-child(3){animation-delay:3.35s}
html:not(.seen){overflow:hidden}.seen #intro{display:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}#intro span{opacity:1}}

/* ---- phase 4 additions ---- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
ul.track{list-style:none;margin:0}
.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.crumb li+li:before{content:"/";margin-right:6px;color:var(--stone)}.crumb a{color:var(--muted)}
.qa{border-top:1px solid var(--line);padding:22px 0;max-width:760px}.qa h3{font-size:19px;margin-bottom:8px}.qa p{margin:0;color:var(--muted)}
.note{color:var(--muted);font-size:15px;border-left:2px solid var(--ivory);padding-left:16px;max-width:60ch;margin-top:32px}
.hint{color:var(--muted);font-size:14px}.art .meta{color:var(--muted);margin:0 0 10px}
.presslogo{display:block;margin:0 0 56px;max-width:min(420px,80%);height:auto}
.list a.item.dl .go:before{content:"Download · "}
.cookie{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:560px;background:var(--char);border:1px solid var(--line);padding:18px 20px;z-index:40;font-size:14px}.cookie p{margin:0 0 12px}
section[id]{scroll-margin-top:90px}
.leg h2{font-size:22px;margin:36px 0 10px;font-weight:400}.leg h3{font-size:18px;margin:22px 0 6px}
