/* homepage v12 */
.bh{min-height:calc(100svh - var(--hdr));display:flex;flex-direction:column;padding:clamp(1.5rem,5vh,4rem) 0 clamp(1.25rem,3.5vh,2.5rem);position:relative;overflow:hidden}
.bh::before{content:"";position:absolute;inset:auto 0 0;height:70%;background:radial-gradient(50% 60% at 50% 60%,oklch(0.55 0.2 275 / .12),transparent 70%);pointer-events:none}
.bh>.wrap{flex:1;width:100%;display:flex;flex-direction:column;justify-content:space-between}
.bh-g{display:flex;flex-direction:column;align-items:flex-start}
.bh h1{font-size:clamp(2.75rem,min(7vw,11.5vh),7.25rem);font-weight:500;letter-spacing:-.05em;line-height:.9;margin-top:clamp(.875rem,2.2vh,1.5rem)}
.bh-r{align-self:stretch;display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem 3rem;flex-wrap:wrap;margin-top:clamp(1rem,2.6vh,1.75rem)}
.bh-r .lede{max-width:58ch;font-size:clamp(1.0625rem,1.3vw,1.1875rem)}
/* Shrinks only once it sits on a line of its own, so the buttons wrap on a phone instead of running off the edge. */
.bh-act{display:flex;flex-wrap:wrap;gap:.625rem;flex:0 1 auto;min-width:0}
.gs-n .gs-p{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:.8125rem;font-weight:500;color:var(--t2);padding-right:.875rem;border-right:1px solid var(--rule);align-self:center}
.gs{position:relative;margin-top:clamp(1.75rem,5vh,3.5rem)}
.gs-h,.gs-f{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 0}
.gs-h{border-top:1px solid var(--rule)}
.gs-f{border-top:1px solid var(--rule-2);padding-block:.75rem 0}
.gs-n{display:flex;align-items:baseline;gap:.875rem;min-width:0}
.gs-n b{font-size:.9375rem;font-weight:500;letter-spacing:-.01em;white-space:nowrap}
.gs-n span{font-family:var(--mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--t4);white-space:nowrap}
.gs-m{display:flex;align-items:center;gap:.625rem;font-size:.8125rem;color:var(--t3);white-space:nowrap}
.gs-m b{font-size:1.25rem;font-weight:500;letter-spacing:-.03em;color:var(--t1);font-variant-numeric:tabular-nums}
.gm{width:120px;height:4px;background:oklch(1 0 0 / .08);position:relative;margin-left:.375rem}
.gm i{position:absolute;inset:0 auto 0 0;width:0;background:var(--acc);transition:width .5s var(--e)}
.gs-b{padding:.75rem 0 1.25rem}
.gs-lbl{position:relative;height:1.25rem;margin-bottom:.25rem}
.gs-lbl span{position:absolute;top:0;font-family:var(--mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--t4);white-space:nowrap}
.gs-lbl span b{color:var(--t2);font-weight:500;margin-left:.375rem}
.gs-lbl i{font-style:normal}.gs-lbl .gl-a,.gs-lbl.ab .gl-f{display:none}.gs-lbl.ab .gl-a{display:inline}
.gs-c{position:relative}
.rail{position:absolute;top:0;display:flex;flex-direction:column;gap:var(--g,4px);pointer-events:none}
.rail span{position:relative;height:var(--cs,28px);display:flex;align-items:center;gap:.5rem;padding:0 .875rem 0 .375rem;font-size:.8125rem;color:var(--t3);white-space:nowrap;overflow:hidden;transition:color .3s,background .3s}
.rail img{width:16px;height:16px;flex:none;border-radius:3px;background:#fff;padding:2px;object-fit:contain}
.rail span::after{content:"";position:absolute;right:0;top:50%;width:5px;height:5px;margin-top:-2.5px;background:var(--rule);transition:background .3s,box-shadow .3s}
.rail span.on{color:var(--t1);background:oklch(1 0 0 / .04)}
.rail span.on::after{background:var(--acc-txt);box-shadow:0 0 8px var(--acc-txt)}
.rail span.on.g::after{background:var(--crit);box-shadow:0 0 8px var(--crit)}
.lgd{display:flex;gap:1.25rem;font-size:.8125rem;color:var(--t3);flex-wrap:wrap;justify-content:flex-end}
.lgd span{display:inline-flex;align-items:center;gap:.5rem}
.lgd i{width:10px;height:10px}
.gs canvas,.dc canvas,.pm canvas,.cta canvas{display:block;width:100%}
.tip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,calc(-100% - 12px));background:oklch(0.98 0.003 265);color:var(--ink);border-radius:var(--rad-s);padding:.5rem .75rem;font-size:.8125rem;white-space:nowrap;box-shadow:0 12px 30px oklch(0 0 0 / .45);opacity:0;transition:opacity .25s}
.tip.on{opacity:1}
.tip code{font-family:var(--mono);font-size:.75rem;font-weight:600;margin-right:.375rem}
.tip::after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg)}
@media(max-width:860px){.lgd{display:none}.gs-n>span:not(.gs-p){display:none}}
@media(max-width:700px){.gs-n span,.gm{display:none}.gs-h,.gs-f,.gs-b{padding-inline:0}}

/* decay */
.dc{position:relative;height:280vh;border-top:1px solid var(--rule-2)}
.dc-st{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(1.5rem,4vh,3rem);padding-top:var(--hdr)}
.dc-hd{display:grid;text-align:center}
.dc-t{grid-area:1/1;display:flex;flex-direction:column;align-items:center;gap:1rem;transition:opacity .5s,transform .6s var(--e)}
.dc-t .h-l{max-width:18ch}
.dc-t .copy{text-align:center;max-width:52ch}
.dc-t.b{opacity:0;transform:translateY(14px)}
.dc.flip .dc-t.a{opacity:0;transform:translateY(-14px)}
.dc.flip .dc-t.b{opacity:1;transform:none}
.dc-g{max-width:980px;margin:0 auto;width:100%}
.dc-tl{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;max-width:980px;margin:0 auto;width:100%;font-family:var(--mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--t4)}
.dc-tl .bar{height:2px;background:var(--rule);position:relative}
.dc-tl .bar i{position:absolute;inset:0 auto 0 0;background:var(--t2)}
.dc-tl .bar b{position:absolute;top:-1.75rem;transform:translateX(-50%);color:var(--t1);font-weight:500;white-space:nowrap}
.dc-k{display:flex;justify-content:center;gap:clamp(2rem,6vw,5rem)}
.dc-k div{display:flex;flex-direction:column;align-items:center}
.dc-k b{font-size:clamp(2rem,3.4vw,2.75rem);font-weight:500;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.dc-k span{font-size:.8125rem;color:var(--t3);margin-top:.375rem}
.dc-k .gry b{color:var(--t4)}
@media(max-height:760px){.dc-t .copy{display:none}}

/* chain */
.ch{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem clamp(2.5rem,6vw,6rem);align-items:start}
.ch-l{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:calc(var(--hdr) + 2.5rem)}
.ch-l .h-l{max-width:12ch;margin-top:.5rem}
.chp{display:flex;flex-direction:column;border-top:1px solid var(--rule);margin-top:1rem}
.chp button{position:relative;display:grid;grid-template-columns:10px 5.25rem minmax(0,1fr);align-items:center;gap:.875rem;padding:1.0625rem 0;border-bottom:1px solid var(--rule);text-align:left;font-size:.9375rem;color:var(--t3);transition:color .25s}
.chp button i{width:10px;height:10px}
.chp button code{font-family:var(--mono);font-size:.75rem;color:var(--t4);transition:color .25s}
.chp button:hover,.chp button[aria-selected="true"]{color:var(--t1)}
.chp button[aria-selected="true"] code{color:var(--t2)}
.chp button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--acc-txt);transform:scaleX(0);transform-origin:0 50%}
.chp button[aria-selected="true"]::after{transform:scaleX(1)}
.chp button.tm::after{animation:tm var(--d) linear both}
@keyframes tm{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.rec .rid{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--t4)}
.rec-b{--sl:calc(1.5rem + 6.5rem + 1.25rem + 7px);position:relative;padding:.375rem 0}
.spn{position:absolute;left:calc(var(--sl) - .5px);width:1px;background:var(--rule)}
.spn i{position:absolute;left:0;top:0;width:1px;height:0;background:var(--acc-txt);box-shadow:0 0 8px oklch(0.62 0.2 275 / .9);transition:height .5s var(--e)}
.rr{display:grid;grid-template-columns:6.5rem 14px minmax(0,1fr) auto;align-items:center;gap:0 1.25rem;padding:1.0625rem 1.5rem;border-bottom:1px solid var(--rule-2);opacity:0;transform:translateY(6px);transition:opacity .45s var(--e) calc(var(--i)*55ms),transform .5s var(--e) calc(var(--i)*55ms),background .35s}
.rr:last-child{border-bottom:0}
#cn.on .rr{opacity:1;transform:none}
.rr>*{transition:opacity .35s}
.rr small{font-family:var(--mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--t4)}
.rr>i{width:9px;height:9px;justify-self:center;background:var(--ink-2);border:1px solid var(--t4);position:relative;z-index:1;transition:background .3s,border-color .3s,box-shadow .3s}
.rr-b{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.rr-b code{font-family:var(--mono);font-size:.75rem;color:var(--t4)}
.rr-s{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--t3)}
.rr-s img{width:18px;height:18px;border-radius:4px;background:#fff;padding:2px;object-fit:contain}
.rr-b b{font-size:1rem;font-weight:500;line-height:1.35;letter-spacing:-.01em;color:var(--t1);text-wrap:pretty}
.rr.done>i{background:var(--acc);border-color:var(--acc)}
.rr.lit{background:oklch(0.62 0.2 275 / .07)}
.rr.lit>i{background:var(--acc-txt);border-color:var(--acc-txt);box-shadow:0 0 0 4px oklch(0.62 0.2 275 / .22),0 0 14px oklch(0.62 0.2 275 / .8)}
.rec.run .rr:not(.lit):not(.done)>:not(i){opacity:.32}
@media(max-width:960px){.ch{grid-template-columns:1fr}.ch-l{position:static}}
@media(max-width:600px){.rec-b{--sl:calc(1rem + 7px)}.rr{grid-template-columns:14px minmax(0,1fr);grid-template-areas:"n s" "n b" "n p";gap:.375rem 1rem;padding:1rem}.rr small{grid-area:s}.rr>i{grid-area:n}.rr-b{grid-area:b}.rr .pl{grid-area:p;justify-self:start}.rec .rid{display:none}}

/* ask */
.ask .wrap{display:flex;flex-direction:column;align-items:center;text-align:center}
.ask .h-l{max-width:16ch;margin-top:1.5rem}
.ask .hd-qs{flex-direction:row;flex-wrap:wrap;justify-content:center;margin-top:2rem}
.ask .ax{width:100%;max-width:880px;margin-top:clamp(2.5rem,5vw,3.5rem);text-align:left;border-top:1px solid var(--rule);padding-top:2rem;display:grid;grid-template-columns:40px 1fr;gap:1.25rem}
.ask .ax>.hud-m{width:34px;height:34px}
.ask .hx-qt{background:none;padding:0;max-width:none;align-self:auto;border-radius:0;font-size:clamp(1.25rem,2vw,1.625rem);font-weight:500;letter-spacing:-.025em;line-height:1.25;color:var(--t1);margin-bottom:1rem}
.ask .hx-st{margin-bottom:.75rem}
.ask .hx-at{font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.6;color:var(--t2);min-height:7.5em}
.ask [data-hudson].busy .hx-st::after{content:"";width:40px;height:2px;background:linear-gradient(90deg,transparent,var(--hud),transparent);background-size:200% 100%;animation:scan 1s linear infinite}

/* product */
.pr-shot{margin-top:clamp(2.5rem,5vw,4rem);transform-origin:50% 0}
.pr-shot .frame>img{width:100%;height:auto}
.pr-n{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);margin-top:2rem}
.pr-n div{padding:1.25rem 1.5rem 0 0;display:flex;gap:1rem}
.pr-n div+div{padding-left:1.5rem;border-left:1px solid var(--rule-2)}
.pr-n em{font-style:normal;font-family:var(--mono);font-size:.75rem;color:var(--acc-txt);padding-top:.2rem}
.pr-n b{display:block;font-weight:500;font-size:1rem;margin-bottom:.25rem}
.pr-n span{font-size:.9375rem;color:var(--t3);line-height:1.5}
@media(max-width:860px){.pr-n{grid-template-columns:1fr}.pr-n div,.pr-n div+div{padding:1.25rem 0;border-left:0;border-bottom:1px solid var(--rule-2)}}

/* platform */
.pf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto 1fr auto;border:1px solid var(--rule);border-radius:var(--rad-l);background:var(--ink-2);overflow:hidden}
.pm{grid-row:span 5;display:grid;grid-template-rows:subgrid;padding:clamp(1.5rem,2.5vw,2.25rem);transition:background .3s}
.pm+.pm{border-left:1px solid var(--rule-2)}
.pm:hover{background:oklch(1 0 0 / .025)}
.pm-g{padding-bottom:clamp(1.5rem,2.5vw,2rem);margin-bottom:1.75rem;border-bottom:1px solid var(--rule-2);align-self:end}
.pm header{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem}
.pm header img{width:22px;height:22px}
.pm header b{font-size:1.0625rem;font-weight:500;letter-spacing:-.02em}
.pm header .pl{margin-left:auto}
.pm h3{font-size:1.375rem;font-weight:500;letter-spacing:-.025em;line-height:1.2;margin-bottom:.75rem;text-wrap:balance}
.pm p{font-size:.9375rem;line-height:1.55;color:var(--t3);margin-bottom:1.75rem;text-wrap:pretty}
.pm .lnk{justify-self:start;align-self:end}
@media(max-width:960px){.pf{grid-template-columns:1fr;grid-template-rows:none}.pm{grid-row:auto;display:flex;flex-direction:column}.pm .lnk{align-self:flex-start}.pm-g{align-self:stretch}.pm+.pm{border-left:0;border-top:1px solid var(--rule-2)}}

/* operators + cta */
.op{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem 4rem;align-items:start}
.cr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);margin-top:2rem}
.cr div{padding:1.25rem 1rem 0 0;display:flex;flex-direction:column;gap:.25rem}
.cr div+div{padding-left:1.25rem;border-left:1px solid var(--rule-2)}
.cr b{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;letter-spacing:-.04em;line-height:1.1}
.cr span{font-size:.875rem;color:var(--t3)}
@media(max-width:860px){.op{grid-template-columns:1fr}}
.cta .cg{position:absolute;inset:auto 0 0 0;opacity:.55;pointer-events:none;-webkit-mask:linear-gradient(180deg,transparent,#000 60%);mask:linear-gradient(180deg,transparent,#000 60%)}
.cta>div:not(.cg){position:relative;z-index:1}
.cta{padding-bottom:clamp(6rem,12vw,9rem)}

/* v10 polish */
.bh h1 .ln{display:block;overflow:hidden;padding-bottom:.2em;margin-bottom:-.2em}
.bh h1 .ln>span{display:block;transition:transform 1.15s var(--e)}
.bh h1 .ln:nth-child(2)>span{transition-delay:.12s}
.fin{transition:opacity 1s var(--e),transform 1s var(--e)}.f1{transition-delay:.3s}.f2{transition-delay:.45s}.f3{transition-delay:.6s}.f4{transition-delay:.6s}
.intro .bh h1 .ln>span{transform:translateY(125%)}
.intro .fin{opacity:0;transform:translateY(12px)}
.tk{position:relative;height:1.5rem;flex:1;min-width:0;max-width:560px;overflow:hidden}
.tk-r{position:absolute;left:0;top:0;height:1.5rem;display:flex;align-items:center;gap:.625rem;font-size:.8125rem;color:var(--t3);white-space:nowrap;transform:translateY(100%);opacity:0;transition:transform .5s var(--e),opacity .4s}
.tk-r.on{transform:none;opacity:1}.tk-r.out{transform:translateY(-100%);opacity:0}
.tk-r::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none}
.tk-r.g::before{background:var(--crit)}.tk-r.w::before{background:var(--warn)}
.tk-r time{font-family:var(--mono);font-size:.6875rem;color:var(--t4)}
.tk-r b{color:var(--t1);font-weight:500}
.tk-r code{font-family:var(--mono);font-size:.75rem;color:var(--acc-txt)}
.tk-r.g code{color:oklch(0.76 0.15 22)}.tk-r.w code{color:var(--warn)}
.dc-tl .bar .ticks i{position:absolute;top:-3px;width:1px;height:8px;background:var(--rule)}
.dc-tl .bar i#dbi{z-index:1}

/* hero product tag */
.bh-pt{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem 1.25rem;font-size:.9375rem;font-weight:500}
.bh-pt a{display:inline-flex;align-items:center;gap:.5rem;color:var(--t1);transition:color .2s}
.bh-pt a:hover{color:var(--acc-txt)}
.bh-pt img{width:20px;height:20px}
.bh-pt span{color:var(--t4);font-weight:400;padding-left:1.25rem;border-left:1px solid var(--rule)}
@media(max-width:520px){.bh-pt span{display:none}.gs-n .gs-p{display:none}}
