body{margin:0;background:#0D0E11}
a{color:inherit}a:hover{color:#316DDB}
@property --gap{syntax:'<length>';inherits:true;initial-value:30px}
.gd{--night:#0D0E11;--night2:#15171C;--night3:#1E2128;--paper:#FFFFFF;--paper2:#F3F3F0;--paper3:#E7E6E1;--ink:#242321;--ink-d:#F2F2F0;--mute:#5F5D58;--mute-d:#A3A3AA;--blue:#316DDB;--blue-hi:#6B9BFF;--blue-lo:#2459BD;--wash:#EAF0FC;--green:#1F7A4D;--green-d:#3DCB82;--amber:#8F5300;--amber-d:#F2A93B;--m:clamp(16px,3.4vw,52px);--ease:cubic-bezier(.16,1,.3,1);--fs-hero:clamp(52px,7.2vw,132px);--fs-d:clamp(40px,5.2vw,84px);--fs-h:clamp(22px,1.9vw,30px);--fs-l:clamp(18px,1.3vw,21px);font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:clip;caret-color:var(--blue)}
.gd *{box-sizing:border-box}
.gd ::selection{background:#316DDB;color:#fff}
.gd :focus-visible{outline:2px solid #6B9BFF;outline-offset:3px;border-radius:4px}
:where(.gd) :where(h1,h2,h3,p,figure,ul,dl,dd,pre){margin:0}
:where(.gd) :where(ul){padding:0;list-style:none}
.gd h2{font-size:var(--fs-d);font-weight:600;letter-spacing:-0.042em;line-height:.98;text-wrap:balance}
.gd h3{font-size:var(--fs-h);font-weight:500;letter-spacing:-0.02em;line-height:1.15}
.mono{font-family:"Geist Mono",ui-monospace,Menlo,monospace}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lead{font-size:var(--fs-l);line-height:1.5;max-width:46ch}
.dark{background:var(--night);color:var(--ink-d)}
.dark .lead,.dark p{color:#CFCFD5}
.sheet{position:relative;z-index:1;border-radius:28px 28px 0 0;margin-top:-28px}
.nd{display:inline-block;width:.17em;height:.17em;border-radius:50%;background:var(--blue);margin-left:.07em;vertical-align:baseline}

/* buttons: pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;font:500 15.5px/1 Geist,sans-serif;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:transform .2s var(--ease),background-color .2s,color .2s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn svg{transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.b-light{background:#FFFFFF;color:#111214}
.b-light:hover{background:#DCE6FB;color:#111214}
.b-blue{background:var(--blue);color:#FFFFFF}
.b-blue:hover{background:var(--blue-lo);color:#FFFFFF}
.b-ink{background:var(--ink);color:#FFFFFF}
.b-ink:hover{background:#000000;color:#FFFFFF}
.b-line{background:transparent;color:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.b-line:hover{color:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}

/* nav */
.nav{position:absolute;z-index:5;top:0;left:0;right:0;height:84px;padding:0 var(--m);display:flex;align-items:center;justify-content:space-between;color:#FFFFFF}
.brand{display:inline-flex;align-items:center;text-decoration:none;color:#F0EEEB}
.brand .logo{height:30px;width:auto;display:block}
.brand b{font-weight:650}
.brand:hover{color:#FFFFFF}
.nav-r{display:flex;align-items:center;gap:30px;font-size:15px}
.nav-r a.nl{text-decoration:none;color:#E2E2E6;position:relative}
.nav-r a.nl::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-r a.nl:hover{color:#FFFFFF}
.nav-r a.nl:hover::after{transform:scaleX(1)}
.nav .btn{min-height:42px;padding:0 18px;font-size:14.5px}

/* hero */
.hero{position:relative;height:clamp(720px,100svh,980px);background:var(--night);color:var(--ink-d);overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(255,255,255,.055) 1px,transparent 1.4px) 0 0/28px 28px,#0D0E11}
.hero-cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-scrim{position:absolute;left:0;right:0;bottom:0;height:48%;z-index:-1;background:linear-gradient(to top,#0D0E11 22%,rgba(13,14,17,0));pointer-events:none}
.hero-meta{position:absolute;z-index:3;top:96px;left:var(--m);right:var(--m);display:flex;justify-content:flex-end;align-items:center;font:400 12px/1 Geist,sans-serif;color:var(--mute-d);pointer-events:none}
.hero-meta button{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 4px;background:none;border:0;border-radius:6px;font:inherit;color:#8C93A6;cursor:pointer;transition:color .2s}
.hero-meta button:focus{outline:none}.hero-meta button:focus-visible{outline:2px solid #6B9BFF;outline-offset:2px}
.hero-meta button:hover{color:#FFFFFF}
.hero-meta button i{width:6px;height:6px;border-radius:50%;background:var(--green-d)}
.paused .hero-meta button i{background:var(--amber-d)}
.hero-copy{position:absolute;z-index:2;left:var(--m);right:var(--m);bottom:clamp(36px,5vw,72px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,410px);gap:clamp(24px,4vw,64px);align-items:end}
.hero h1{font-size:var(--fs-hero);font-weight:600;letter-spacing:-0.048em;line-height:.9;color:#FFFFFF}
.hero h1 span{display:block}
.hero-side .lead{color:#C9C9D0}
.acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* marquee */
.mq{background:var(--night);color:#E4E4E8;overflow:hidden;padding:30px 0 62px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.mq-track{display:flex;width:max-content;animation:mq 52s linear infinite}
.mq:hover .mq-track,.paused .mq-track{animation-play-state:paused}
.mq-set{display:flex}
.mq-item{display:inline-flex;align-items:center;gap:24px;padding-right:24px;font-size:clamp(22px,2.3vw,34px);letter-spacing:-0.025em;white-space:nowrap}
.mq-item i{width:.3em;height:.3em;border-radius:.06em;background:var(--blue);display:inline-block}
@keyframes mq{to{transform:translateX(-50%)}}

/* euler */
.euler{background:var(--paper);padding:clamp(100px,11vw,170px) var(--m) clamp(64px,7vw,110px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center}
.euler-copy .lead{margin-top:30px}
.euler-copy p+p{margin-top:18px}
.euler-copy p{max-width:44ch}
.print{position:relative;view-timeline:--print block}
.print-frame{position:relative;aspect-ratio:2200 / 1571;background:#EEEAE1;box-shadow:0 44px 90px -44px rgba(35,28,12,.5),0 2px 6px rgba(35,28,12,.1)}
.print-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);mix-blend-mode:multiply}
.print-graph{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.kb-e{fill:none;stroke:#316DDB;stroke-width:.45;stroke-linecap:round}
.kb-l{position:absolute;width:clamp(22px,2.3vw,34px);aspect-ratio:1;display:grid;place-items:center;transform:translate(-50%,-50%);font:600 clamp(11px,1vw,14px)/1 "Geist Mono",monospace;color:#FFFFFF;background:#316DDB;border:2px solid #FFFFFF;border-radius:50%;box-shadow:0 0 0 4px rgba(49,109,219,.18),0 6px 14px -4px rgba(20,30,60,.45)}
/* ponytail: time-based draw-in, triggered once when the print scrolls in; scroll-linked froze half-drawn */
.armed .print .kb-e{stroke-dasharray:1;stroke-dashoffset:1}
.armed .print .kb-l{opacity:0}
.armed .print.seen .kb-l{animation:kbPop .5s cubic-bezier(.2,.9,.3,1.3) both}
.armed .print.seen .kb-e{animation:draw 1s cubic-bezier(.6,0,.2,1) both}
.print .kb-l:nth-of-type(2){animation-delay:.08s}.print .kb-l:nth-of-type(3){animation-delay:.16s}.print .kb-l:nth-of-type(4){animation-delay:.24s}
.print .kb-e:nth-child(1){animation-delay:.35s}.print .kb-e:nth-child(2){animation-delay:.47s}.print .kb-e:nth-child(3){animation-delay:.59s}.print .kb-e:nth-child(4){animation-delay:.71s}.print .kb-e:nth-child(5){animation-delay:.83s}.print .kb-e:nth-child(6){animation-delay:.95s}.print .kb-e:nth-child(7){animation-delay:1.07s}
@keyframes kbPop{from{opacity:0;transform:translate(-50%,-50%) scale(.3)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.print figcaption{margin-top:40px;font-size:14px;color:var(--mute);max-width:72ch}

/* story */
.story-sec{background:var(--paper);padding:clamp(40px,5vw,80px) var(--m) clamp(100px,10vw,160px)}
.story-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end;margin-bottom:clamp(32px,4vw,64px)}
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,72px)}
.st-step{min-height:620px;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:40px 0}
.st-step:first-child{min-height:540px;justify-content:flex-start;padding-top:16px}
.st-step h3{font-size:clamp(28px,2.6vw,42px);font-weight:600;letter-spacing:-0.035em;line-height:1.05;transition:color .4s}
.st-step p{max-width:42ch;transition:color .4s}
.armed .st-step:not(.on) h3,.armed .st-step:not(.on) p{color:var(--mute)}
.code{font:500 12.5px/1.65 "Geist Mono",monospace;background:#111318;color:#DCE3F5;border-radius:12px;padding:16px 18px;overflow-x:auto;white-space:pre;max-width:100%}
 .code .k{color:#8FB3FF}.code .v{color:#8FE0B4}.code .n{color:#F2C27B}.code .p{color:#7D8496}.code .kw{color:#C7A6FF}.code .fn{color:#E9EDF7}.code .cm{color:#6E7587;font-style:italic}
.cw{border-radius:14px;background:#111318;box-shadow:0 1px 2px rgba(0,0,0,.2),0 28px 60px -34px rgba(17,19,24,.85);overflow:hidden;max-width:100%}
.cw .code{border-radius:0;background:transparent;padding:14px 18px 16px 0;counter-reset:ln;white-space:pre}
.cw .ln{display:block;padding-left:52px;position:relative}
.cw .ln::before{counter-increment:ln;content:counter(ln);position:absolute;left:0;width:34px;text-align:right;color:#4A5062}
.cw .ln:has(.v):nth-child(2),.cw .ln:nth-child(n){transition:background-color .3s}
.cw:hover .ln:nth-child(2){background:rgba(107,155,255,.12)}
.cw-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 16px;box-shadow:inset 0 -1px 0 rgba(255,255,255,.07)}
.cw-file{font:500 12px "Geist Mono",monospace;color:#9AA1B4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cw-seg{display:flex;flex:none;padding:3px;gap:2px;border-radius:999px;background:#1C1F27}
.cw-seg button{border:0;background:transparent;color:#9AA1B4;font:500 12.5px/1 Geist,sans-serif;padding:7px 12px;border-radius:999px;cursor:pointer;transition:background-color .25s,color .25s}
.cw-seg button:hover{color:#FFFFFF}
.cw-seg button.on{background:#F0EEEB;color:#111318}
.cw-seg button:focus-visible{outline:2px solid #6B9BFF;outline-offset:2px}
.st-step .cw-foot{max-width:none}
.cw-foot{display:flex;align-items:center;gap:8px;margin:0;padding:10px 16px 12px;font-size:13px;color:#9AA1B4;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.cw-foot i{width:7px;height:7px;border-radius:50%;background:#316DDB;flex:none}
.st-step.on .cw .ln{animation:lnIn .45s var(--ease) both}
.cw .ln:nth-child(2){animation-delay:.04s}.cw .ln:nth-child(3){animation-delay:.08s}.cw .ln:nth-child(4){animation-delay:.12s}.cw .ln:nth-child(5){animation-delay:.16s}.cw .ln:nth-child(6){animation-delay:.2s}.cw .ln:nth-child(7){animation-delay:.24s}.cw .ln:nth-child(8){animation-delay:.28s}.cw .ln:nth-child(9){animation-delay:.32s}.cw .ln:nth-child(10){animation-delay:.36s}.cw .ln:nth-child(11){animation-delay:.4s}
@keyframes lnIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
.st-stage.cw-hl .sn:not(.n-addr){opacity:.28 !important}
.st-stage.cw-hl .n-addr{box-shadow:0 0 0 2px #316DDB,0 14px 30px -12px rgba(49,109,219,.6);transform:translate(-50%,-50%) scale(1.08)}
.st-wrap{position:relative}
.st-stage{position:sticky;top:96px;width:min(100%,640px);margin-left:auto;aspect-ratio:1 / 1;border-radius:22px;background:radial-gradient(#D3D2CC 1px,transparent 1.3px) 0 0/22px 22px,#F3F3F0;overflow:hidden}
.st-edges{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.st-edges .E{opacity:0;transition:opacity .6s ease}
.st-stage.s1 .E1,.st-stage.s2 .E2,.st-stage.s3 .E3,.st-stage.s4 .E4{opacity:1}
.st-edges path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.e-tree{stroke:#ABA9A2;stroke-width:1.2}
.e-main{stroke:#316DDB;stroke-width:2}
.e-req{stroke:#99978F;stroke-width:1.2;stroke-dasharray:4 4}
.e-cause{stroke:#1F7A4D;stroke-width:1.6;stroke-dasharray:2 5}
.e-bundle{stroke:#316DDB;stroke-width:1;opacity:.32}
.e-dev{stroke:#E39A2E;stroke-width:1.4;opacity:.9}
.e-prog{stroke:#242321;stroke-width:1.6}
.e-in{stroke:#316DDB;stroke-width:1.3;stroke-dasharray:3 4}
.sn{position:absolute;width:max-content;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 12px 9px;border-radius:10px;background:#FFFFFF;box-shadow:0 0 0 1px #D8D7D1;white-space:nowrap;max-width:32%;pointer-events:none;transition:left .9s var(--ease),top .9s var(--ease),opacity .45s ease}
.sn-t{display:flex;align-items:center;gap:6px;font:500 10.5px/1.2 "Geist Mono",monospace;color:var(--mute)}
.k-key .sn-t::before,.k-alt .sn-t::before{content:"";width:6px;height:6px;border-radius:1.5px;background:currentColor}
.sn-t:empty{display:none}
.sn-n{font-size:14px;line-height:1.2;font-weight:600;letter-spacing:-0.01em;color:var(--ink);white-space:normal}
.k-struct{padding:6px 10px;border-radius:6px}
.k-struct .sn-n{font:500 12px/1.2 "Geist Mono",monospace}
.k-key,.k-alt{box-shadow:0 1px 2px rgba(36,35,33,.1),0 10px 22px -12px rgba(36,35,33,.45)}
.k-key .sn-t{color:var(--blue-lo)}
.k-cap{background:transparent;box-shadow:none;padding:0;align-items:center;text-align:center}
.k-cap .sn-t{color:var(--blue-lo)}
.k-req{background:#FAFAF8;box-shadow:0 0 0 1px #C9C7C1}
.k-req .sn-t{color:var(--green);font-weight:600}
.k-req .sn-n{font:500 12px/1.2 "Geist Mono",monospace}
.k-alt .sn-t{color:var(--amber)}
.k-br{background:#242321;box-shadow:none}
.k-br .sn-t{color:#B9B9C0}
.k-br .sn-n{color:#FFFFFF;font:500 12.5px/1.2 "Geist Mono",monospace}
.k-in{background:transparent;box-shadow:none;padding:0;align-items:center}
.k-in .sn-t{color:var(--blue-lo)}
.k-in .sn-n{font:500 12.5px/1.2 "Geist Mono",monospace;color:var(--blue-lo);padding:3px 7px;border-radius:5px;background:#F3F3F0}
.k-test{background:#E3F3EA;box-shadow:none;flex-direction:row;align-items:center;gap:10px;padding:9px 14px}
.k-test .sn-t,.k-test .sn-n{color:var(--green);font-weight:600}
.k-note{background:transparent;box-shadow:none;padding:0}
.k-note.warn .sn-t{color:var(--amber);font-weight:600}
.st-prog{position:absolute;left:18px;bottom:16px;display:flex;gap:6px}
.st-prog i{width:9px;height:9px;border-radius:2px;background:#CFCDC6;transition:background .3s}
.st-prog i.on{background:#316DDB}
.st-note{position:absolute;right:18px;top:14px;font:500 11.5px "Geist Mono",monospace;color:var(--mute)}

/* sandbox */
.sbx{padding:clamp(110px,11vw,170px) var(--m) clamp(100px,10vw,150px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center;background-color:#0D0E11;background-image:linear-gradient(rgba(107,155,255,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(107,155,255,.065) 1px,transparent 1px);background-size:48px 48px;view-timeline:--sbx block;overflow:hidden}
.sbx .lead{margin-top:28px}
.pins{margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;font:500 13px/1.4 "Geist Mono",monospace;color:#B5BDD3}
.pins li{display:flex;gap:10px;align-items:baseline}
.pins li::before{content:'';flex:none;width:8px;height:8px;border-radius:2px;background:#6B9BFF;transform:translateY(-1px)}
.net{margin-top:44px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.sw{display:inline-flex;align-items:center;gap:18px;background:none;border:0;padding:0;cursor:pointer;color:#FFFFFF;font:inherit;text-align:left}
.sw-track{position:relative;flex:none;width:104px;height:56px;border-radius:28px;background:#2A2D35;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);transition:background-color .35s}
.sw-thumb{position:absolute;top:6px;left:6px;width:44px;height:44px;border-radius:50%;background:#FFFFFF;transition:transform .55s cubic-bezier(.34,1.45,.5,1)}
.sw:active .sw-thumb{width:50px}
.sbx.on .sw-track{background:#316DDB}
.sbx.on .sw-thumb{transform:translateX(48px)}
.sw-txt{display:flex;flex-direction:column;width:3.2em}
.sw:focus{outline:none}.sw:focus-visible .sw-track{outline:2px solid #6B9BFF;outline-offset:4px}
.sw-txt small{font:500 12.5px "Geist Mono",monospace;color:var(--mute-d)}
.sw-txt b{font-size:30px;font-weight:600;letter-spacing:-0.03em;line-height:1.1}
.net p{max-width:34ch;font-size:15px;color:#BDBDC5;display:grid}
.net p span{grid-area:1 / 1;transition:opacity .35s}
.net p .off{opacity:0;visibility:hidden}
.sbx-stage{position:relative;display:grid}
.pv{grid-area:1 / 1;border-radius:16px;overflow:hidden;font-family:Geist,sans-serif;font-size:13px;line-height:1.35}
.pv.real{background:#FFFFFF;color:#1C2433;box-shadow:0 60px 110px -50px rgba(0,0,0,.75);clip-path:inset(0 100% 0 0 round 16px);transition:clip-path 1.05s cubic-bezier(.65,0,.35,1);z-index:2}
.sbx.on .pv.real{clip-path:inset(0 0 0 0 round 16px)}
.pv.bp{background:rgba(14,20,36,.88);color:#A8C2FF;box-shadow:inset 0 0 0 1px rgba(107,155,255,.5)}
.pt-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;background:#0F3D5E;color:#FFFFFF}
.pt-logo{display:inline-flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.08em;font-size:13px}
.pt-logo i{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 3px #7FD1C2}
.pt-nav{font-size:12.5px;opacity:.85}
.pt-body{padding:20px 20px 22px}
.pt-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pt-head b{font-size:17px;letter-spacing:-0.01em}
.pt-steps{display:flex;gap:6px;font-size:12px}
.pt-steps span{padding:3px 9px;border-radius:999px;background:#EEF1F5;color:#4A5568}
.pt-steps .cur{background:#0F3D5E;color:#FFFFFF}
.pt-grid{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.pt-f{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0}
.pt-f.wide{grid-column:1 / -1}
.pt-f>span{font-size:12px;color:#4A5568}
.pt-in{border:1px solid #CBD2DC;border-radius:6px;padding:9px 11px;background:#FFFFFF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-in.foc{border-color:#0F7AA8;box-shadow:0 0 0 3px rgba(15,122,168,.15)}
.caret{display:inline-block;width:1px;height:14px;background:#1C2433;vertical-align:-2px;margin-left:1px;animation:blink 1.1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.pt-ac{border:1px solid #CBD2DC;border-radius:6px;overflow:hidden}
.pt-ac div{padding:7px 11px}
.pt-ac .hl{background:#E8F3F8;font-weight:600}
.pt-foot{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pt-btn{background:#0F3D5E;color:#FFFFFF;border-radius:6px;padding:11px 16px;font-weight:600}
.pt-q{font-size:13px;color:#4A5568}
.pt-q b{font-size:20px;color:#0F3D5E;margin-left:6px;letter-spacing:-0.01em}
.ann{position:absolute;right:0;top:0;font:500 11px/1.3 "Geist Mono",monospace;color:#7FA6FF;font-style:normal}
.ann.in-flow{position:static;display:block;margin-top:6px}
.pv.real .ann{visibility:hidden}
.pv.real .ann.in-flow{visibility:visible;font-family:Geist,sans-serif;color:#6B7280}
.pv.bp .pt-top{background:transparent;color:#A8C2FF;box-shadow:inset 0 -1px 0 rgba(107,155,255,.4)}
.pv.bp .pt-logo i{box-shadow:inset 0 0 0 1px #6B9BFF}
.pv.bp .pt-steps span,.pv.bp .pt-steps .cur{background:transparent;color:#A8C2FF;box-shadow:inset 0 0 0 1px rgba(107,155,255,.45)}
.pv.bp .pt-f>span,.pv.bp .pt-q{color:#8DA6DD}
.pv.bp .pt-in,.pv.bp .pt-ac{background:transparent;border:1px solid rgba(107,155,255,.42);color:rgba(196,213,255,.78)}
.pv.bp .pt-f:not(.wide)>.ann{display:none}
.pv.bp .ann{color:#6B9BFF}
.pv.bp .ann.in-flow::before{content:"";display:inline-block;width:22px;height:1px;margin-right:8px;vertical-align:middle;background:currentColor}
.pv.bp .pt-in.foc{box-shadow:none}
.pv.bp .caret{background:#C4D5FF}
.pv.bp .pt-ac .hl{background:rgba(107,155,255,.14)}
.pv.bp .pt-btn{background:transparent;border:1px solid rgba(168,194,255,.7);color:#C4D5FF;padding:10px 15px}
.pv.bp .pt-q b{color:#C4D5FF}
.scan{position:absolute;z-index:3;top:-3%;bottom:-3%;left:0;width:2px;background:#B9CEFF;box-shadow:0 0 22px 5px rgba(91,142,242,.65);opacity:0;pointer-events:none}
.sbx.touched.on .scan{animation:scanOn 1.05s cubic-bezier(.65,0,.35,1)}
.sbx.touched.off .scan{animation:scanOff 1.05s cubic-bezier(.65,0,.35,1)}
@keyframes scanOn{0%{left:0;opacity:1}96%{opacity:1}100%{left:100%;opacity:0}}
@keyframes scanOff{0%{left:100%;opacity:1}96%{opacity:1}100%{left:0;opacity:0}}
.rq{position:absolute;z-index:1;font:500 12px/1 "Geist Mono",monospace;color:#7E8AA6;white-space:nowrap}
.rq b{color:#3DCB82;font-weight:500;margin-left:8px}
.rq.r1{top:-38px;left:4%}.rq.r2{top:-38px;right:4%}.rq.r3{bottom:-38px;right:6%}.rq.r4{bottom:-38px;left:4%}
.sbx .stage-cap{margin-top:58px;font:500 12px "Geist Mono",monospace;color:#8C93A6}

/* proof */
.proof{background:var(--paper2);padding:clamp(110px,11vw,170px) var(--m);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center}
.proof .lead{margin-top:28px}
.pts{margin-top:36px;display:grid;gap:16px;max-width:46ch}
.pts li{display:grid;grid-template-columns:12px minmax(0,1fr);gap:14px;align-items:baseline}
.pts li::before{content:'';width:10px;height:10px;border-radius:2px;background:#316DDB;transform:translateY(1px)}
.cert{position:relative;container-type:inline-size;aspect-ratio:3 / 2;background:#FDFCF7;border-radius:6px;box-shadow:0 60px 100px -60px rgba(40,34,18,.55),0 1px 3px rgba(40,34,18,.14);color:#1C2440;transform:rotate(-1.2deg);overflow:hidden}
.cert-edge{position:absolute;inset:0;width:100%;height:100%}
.cert-edge text{font:600 7px "Geist Mono",monospace;fill:#7E97CC;letter-spacing:.6px}
.cert-in{position:absolute;inset:6.5%;display:flex;flex-direction:column;justify-content:space-between}
.cert-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:max(11px,1.9cqw)}
.cert-top .cb{display:inline-flex;align-items:center;gap:.6em;font-weight:600;letter-spacing:-0.01em;color:#1C2440}
.cert-top .cb .mark{height:1.6em;width:auto}
.cert-top .ser{font:500 max(10px,1.7cqw) "Geist Mono",monospace;color:#3D4E7A;text-align:right}
.cert-mid{width:62%}
.cert-mid h3{font-size:max(16px,3.7cqw);font-weight:600;letter-spacing:-0.03em;line-height:1.05;color:#1C2440}
.cert-mid .sub{margin-top:.5em;font-size:max(11px,1.8cqw);color:#4A5778}
.cert-rows{margin-top:1.2em;display:grid;grid-template-columns:auto 1fr;gap:.35em 1.2em;font-size:max(11px,1.75cqw)}
.cert-rows dt{color:#5A678A}
.cert-rows dd{font-weight:600;color:#1C2440}
.cert-rows dd.pass{color:#1F7A4D}
.cert-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.sig{width:34cqw;max-width:220px;height:auto;display:block}
.sig path{fill:none;stroke:#1E2A66;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.armed .sig path{stroke-dasharray:1;stroke-dashoffset:1}
.armed .seen-cert .sig path{animation:sign 1.5s ease .25s forwards}
@keyframes sign{to{stroke-dashoffset:0}}
.sig-l{font-size:max(10px,1.6cqw);color:#4A5778;padding-top:.4em;box-shadow:inset 0 1px 0 #9AA6C4;width:34cqw;max-width:220px}
.hash{font:500 max(9.5px,1.45cqw) "Geist Mono",monospace;color:#5A678A;text-align:right}
.ros{position:absolute;right:4%;top:15%;width:36%;aspect-ratio:1;animation:spin 120s linear infinite}
.ros path{fill:none;stroke:#316DDB;stroke-width:.42;opacity:.55}
.ros path:nth-child(2){stroke:#1E2A66;opacity:.35}
.paused .ros{animation-play-state:paused}
@keyframes spin{to{transform:rotate(360deg)}}
.stamp{position:absolute;right:9%;top:40%;transform:rotate(-9deg);box-shadow:inset 0 0 0 3px #316DDB;color:#316DDB;border-radius:10px;padding:.4em .75em .35em;font:700 max(15px,3.4cqw)/1 Geist,sans-serif;letter-spacing:.06em;text-transform:uppercase;background:rgba(253,252,247,.72);opacity:.94}
.stamp small{display:block;margin-top:.4em;font:500 max(9.5px,1.35cqw)/1.25 "Geist Mono",monospace;letter-spacing:0;text-transform:none}
.armed .stamp{opacity:0}
.armed .seen-cert .stamp{animation:stamp .6s cubic-bezier(.2,.9,.3,1.25) 1.2s both}
@keyframes stamp{0%{opacity:0;transform:rotate(-15deg) scale(1.9)}70%{opacity:1;transform:rotate(-9deg) scale(.96)}100%{opacity:.94;transform:rotate(-9deg) scale(1)}}

/* repair */
.rep{padding:clamp(110px,11vw,170px) var(--m) clamp(100px,10vw,160px)}
.rep-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}
.rep-body{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
.dom{position:relative;aspect-ratio:16 / 11;border-radius:18px;background:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.4px) 0 0/22px 22px,#15171C;overflow:hidden}
.dom svg{position:absolute;inset:0;width:100%;height:100%}
.dom path{fill:none;stroke:#5C6273;stroke-width:1.3;vector-effect:non-scaling-stroke;transition:opacity .6s}
.dom .after{opacity:0}
.dom.chg .before{opacity:0}
.dom.chg .after{opacity:1}
.rn{position:absolute;transform:translate(-50%,-50%);padding:7px 11px;border-radius:8px;background:#1F2229;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font:500 12px/1.2 "Geist Mono",monospace;color:#E6E6EA;white-space:nowrap;transition:left .9s var(--ease),top .9s var(--ease),opacity .5s,box-shadow .4s,color .4s}
.rn.key{box-shadow:inset 0 0 0 1.5px #6B9BFF}
.rn.key.chg{box-shadow:inset 0 0 0 1.5px #F2A93B;color:#FFD9A0}
.rn.key.fix{box-shadow:inset 0 0 0 1.5px #3DCB82;color:#B5F0CF}
.rn.new{color:#FFD9A0}
.dom-cap{margin-top:12px;padding:0 4px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font:500 11.5px "Geist Mono",monospace;color:#9A9FB0}
.dom-cap b{font-weight:500;color:#F2A93B}
.dom-cap b.ok{color:#3DCB82}
.rep-right{display:flex;flex-direction:column;gap:14px}
.rep-act{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.b-line-d{background:transparent;color:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.b-line-d:hover{box-shadow:inset 0 0 0 1px #FFFFFF}
.btn.nudge{animation:nudge 2.6s ease-in-out infinite}
@keyframes nudge{0%,55%,100%{box-shadow:0 0 0 0 rgba(107,155,255,.55)}80%{box-shadow:0 0 0 12px rgba(107,155,255,0)}}
.rsteps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.rsteps li{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:2px solid rgba(255,255,255,.12);color:#8C93A6;font-size:14px;line-height:1.3;transition:color .35s,border-color .35s}
.rsteps b{display:flex;align-items:center;gap:8px;font:500 11.5px "Geist Mono",monospace}
.rsteps em{font:600 11px/1 Geist,sans-serif;font-style:normal;letter-spacing:.02em;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.08);color:#C9CCD6}
.rsteps em:empty{display:none}
.rsteps li.ai em{background:#316DDB;color:#FFFFFF}
@media (min-width:761px){.rsteps li{white-space:nowrap}}
.rp-acts{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.rp-acts:not(:has(li)){display:none}
.rp-acts li{display:flex;align-items:center;gap:10px;font:500 13px/1.4 "Geist Mono",monospace;color:#C9D6FF;animation:actIn .4s var(--ease) both}
.rp-acts li i{width:7px;height:7px;border-radius:50%;background:#6B9BFF;flex:none}
.rp-acts li:nth-child(2){animation-delay:.9s}.rp-acts li:nth-child(3){animation-delay:1.8s}
.rp-acts li:last-child i{animation:blink 1s ease-in-out infinite}
@keyframes actIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes blink{50%{opacity:.25}}
.rep-auto{display:flex;align-items:center;gap:18px;min-height:48px;margin-top:6px;font-size:18px;letter-spacing:-0.01em;color:#C9CCD6}
.rep-auto b{color:#FFFFFF;font-weight:600}
.ra-bar{position:relative;flex:none;width:clamp(80px,12vw,160px);height:4px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.ra-bar i{position:absolute;inset:0;background:#6B9BFF;transform-origin:left;transform:scaleX(0)}
.ra-bar i.ra-1{animation:raFill 3.2s linear forwards}
.ra-bar i.ra-2{animation:raFill2 5.4s linear forwards}
@keyframes raFill{to{transform:scaleX(1)}}@keyframes raFill2{to{transform:scaleX(1)}}
.rsteps li.ai span{color:#A8C2FF}
.rsteps li.done{border-color:#3DCB82;color:#C9CCD6}
.rsteps li.done b{color:#3DCB82}
.rsteps li.cur{border-color:#FFFFFF;color:#FFFFFF}
.rsteps li.ai.cur{border-color:#6B9BFF}
.rsteps li.ai.cur span{color:#FFFFFF}
.rpanel{min-height:272px;border-radius:16px;background:#15171C;padding:22px 24px 24px;transition:background-color .4s,box-shadow .4s}
.rpanel.k-ai{background:#0F1830;box-shadow:inset 0 0 0 1px rgba(107,155,255,.6),0 34px 80px -34px rgba(49,109,219,.55)}
.rp-top{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap}
.rp-tag{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 "Geist Mono",monospace;padding:6px 10px;border-radius:999px;background:rgba(61,203,130,.13);color:#3DCB82}
.rp-tag i{width:7px;height:7px;border-radius:2px;background:currentColor}
.k-stop .rp-tag{background:rgba(242,169,59,.14);color:#F2A93B}
.k-ai .rp-tag{background:#316DDB;color:#FFFFFF}
.rp-meta{font:500 12px "Geist Mono",monospace;color:#8C93A6}
.rp-t{margin-top:16px;font-size:clamp(22px,2vw,28px);font-weight:600;letter-spacing:-0.025em;line-height:1.15;color:#FFFFFF}
.rp-b{margin-top:8px;font-size:15px;color:#BDBDC5;max-width:62ch}
.rpanel .diff{margin-top:16px}
@media (max-width:760px){.rpanel{min-height:0;padding:18px 18px 20px}.rpanel .diff{white-space:pre-wrap;word-break:break-word}}
.rep-act small{font-size:14px;color:var(--mute-d)}
.entry{border-radius:14px;background:#15171C;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);padding:14px 16px;animation:enter .55s var(--ease) both}
.entry-t{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;color:#FFFFFF}
.entry-t i{width:9px;height:9px;border-radius:2px;flex:none}
.entry-b{margin-top:5px;color:#BDBDC5;font-size:14.5px}
.k-pass i{background:#3DCB82}.k-stop i{background:#F2A93B}.k-wait i{background:#6B9BFF}
.diff{margin-top:10px;padding:12px 14px;border-radius:8px;background:#0E1014;font:500 12.5px/1.65 "Geist Mono",monospace;color:#C9CEDB;white-space:pre;overflow-x:auto}
.diff .add{color:#3DCB82;display:block}
@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* compare */
.cmp{background:var(--paper);padding:clamp(110px,11vw,170px) var(--m)}
.cmp-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}
.ways{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(8,auto);gap:0 16px}
.way{display:grid;grid-row:span 8;grid-template-rows:subgrid;border-radius:20px;background:var(--paper2);padding:24px 24px 10px}
.way.us{background:#0D0E11;color:#F2F2F0}
.way h3{margin-top:22px;font-size:clamp(22px,1.9vw,28px);font-weight:600;letter-spacing:-0.025em}
.way .one{margin-top:8px;color:var(--mute);font-size:15.5px;max-width:34ch}
.way.us .one{color:#BDBDC5}
.qa{padding:14px 0;box-shadow:inset 0 1px 0 rgba(0,0,0,.08)}
.way.us .qa{box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.qa dt{font-size:13px;color:var(--mute)}
.way.us .qa dt{color:#9C9CA5}
.qa dd{margin-top:2px;font-weight:500;font-size:16px}
.qa dd.good::before,.qa dd.bad::before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:9px;vertical-align:1px}
.qa dd.good::before{background:#1F9D5B}.qa dd.bad::before{background:#B9B7B0}
.way.us .qa dd.good::before{background:#3DCB82}
.dg{position:relative;height:150px;border-radius:14px;background:#FFFFFF;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:18px}
.way.us .dg{background:#15171C}
.dg .bx{padding:8px 12px;border-radius:8px;box-shadow:0 0 0 1px #D8D7D1;font:500 12px "Geist Mono",monospace;background:#FFFFFF}
.dg .bx.model{background:#242321;color:#FFFFFF;box-shadow:none}
.loop{position:relative;width:70px;height:70px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #C9C7C1;animation:spin 2.6s linear infinite}
.loop i{position:absolute;top:-4px;left:50%;width:8px;height:8px;margin-left:-4px;border-radius:2px;background:#316DDB}
.dg-cap{position:absolute;left:14px;bottom:10px;font:500 11.5px "Geist Mono",monospace;color:var(--mute)}
.way.us .dg-cap{color:#9C9CA5}
.film{display:flex;gap:6px;position:relative}
.film b{width:34px;height:46px;border-radius:5px;box-shadow:inset 0 0 0 1px #C9C7C1;background:#FAFAF8}
.film b:nth-child(5){animation:breakf 3.2s steps(1) infinite}
.film .ph{position:absolute;top:-8px;bottom:-8px;width:2px;background:#316DDB;left:0;animation:play 3.2s linear infinite}
@keyframes play{0%{left:0}62%{left:calc(100% - 46px)}100%{left:calc(100% - 46px)}}
@keyframes breakf{0%,60%{background:#FAFAF8;box-shadow:inset 0 0 0 1px #C9C7C1}61%,100%{background:#FBE9E5;box-shadow:inset 0 0 0 1.5px #B4361F}}
.mini{position:relative;width:260px;height:96px}
.mini svg{position:absolute;inset:0}
.mini path{fill:none;stroke:#6B9BFF;stroke-width:1.5}
.mini i{position:absolute;width:12px;height:12px;border-radius:3px;background:#6B9BFF;transform:translate(-50%,-50%)}
.mini i.b{background:#F2A93B;transform:translate(-50%,-50%) rotate(45deg)}
.mini .pulse{position:absolute;left:0;top:0;width:9px;height:9px;border-radius:50%;background:#DCE7FF;box-shadow:0 0 12px 3px rgba(91,142,242,.85);offset-path:path('M10 60 L80 60 L130 30 L190 60 L250 60');animation:pul 2.6s cubic-bezier(.45,0,.55,1) infinite}
@keyframes pul{from{offset-distance:0%}to{offset-distance:100%}}
.badge{position:absolute;right:12px;top:10px;font:600 11.5px "Geist Mono",monospace;color:#3DCB82}
.paused .loop,.paused .film b,.paused .film .ph,.paused .mini .pulse{animation-play-state:paused}

/* cost */
.cost{background:var(--paper2);padding:clamp(110px,11vw,170px) var(--m) clamp(90px,9vw,140px)}
.cost-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}
.ctl{width:min(460px,100%);background:#FFFFFF;border-radius:16px;padding:16px 18px 12px;box-shadow:0 0 0 1px #DEDDD8}
.ctl label{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;font-weight:500}
.ctl output{font-variant-numeric:tabular-nums;color:var(--blue-lo)}
.ctl input{width:100%;height:30px;margin:12px 0 2px;accent-color:#316DDB;cursor:pointer}
.odo{margin-top:clamp(48px,6vw,96px);display:flex;align-items:flex-end;font-size:clamp(64px,13.4vw,214px);font-weight:600;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums}
.odo .dg2{display:inline-block;height:1em;width:.6em;overflow:hidden;text-align:center;transition:width .6s var(--ease),opacity .4s}
.odo .strip{display:flex;flex-direction:column;transition:transform .9s var(--ease)}
.odo .strip span{display:block;height:1em;line-height:1em}
.odo .cm{display:inline-block;width:.26em;line-height:1;overflow:hidden;transition:width .6s var(--ease),opacity .4s}
.odo .lead0{width:0;opacity:0}
.cost-foot{margin-top:28px;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:start}
.cost-foot p.big{font-size:clamp(22px,2vw,30px);letter-spacing:-0.02em;line-height:1.25;font-weight:500;max-width:30ch}
.cost-foot p.small{font-size:15px;color:var(--mute);max-width:44ch}

/* security stack */
.sec{padding:clamp(110px,11vw,170px) var(--m) clamp(100px,10vw,160px);overflow:hidden}
.sec-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}
.sec-body{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:center}
.sec-list{display:grid;gap:4px}
.sec-i{display:grid;grid-template-columns:14px minmax(0,1fr);gap:16px;padding:16px 18px;border-radius:14px;transition:background-color .3s}
.sec-i::before{content:'';width:10px;height:10px;border-radius:2px;background:#5C6273;margin-top:9px;transition:background-color .3s}
.sec-i.on{background:#15171C}
.sec-i.on::before{background:#6B9BFF}
.sec-i h3{font-size:clamp(20px,1.6vw,24px);font-weight:600;letter-spacing:-0.02em;color:#FFFFFF}
.sec-i p{margin-top:4px;font-size:15.5px;color:#BDBDC5}
.stack{position:relative;height:560px;display:grid;place-items:center;view-timeline:--stack block}
.iso{position:relative;width:310px;height:310px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-42deg) translateZ(-90px)}
.slab{position:absolute;inset:0;transform-style:preserve-3d;border-radius:14px;background:#1A1D24;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);padding:22px;transition:background-color .35s,box-shadow .35s}
.slab::after{content:'';position:absolute;inset:0;border-radius:14px;background:#0B0C0F;transform:translateZ(-12px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.z0{transform:translateZ(0)}.z1{transform:translateZ(var(--gap))}.z2{transform:translateZ(calc(var(--gap) * 2))}.z3{transform:translateZ(calc(var(--gap) * 3))}.z4{transform:translateZ(calc(var(--gap) * 4))}
.slab.hl{background:#21407F;box-shadow:inset 0 0 0 1.5px #6B9BFF}
.slab .lbl{position:absolute;left:18px;bottom:16px;font:600 13px "Geist Mono",monospace;color:#C9D6F5}
.racks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.racks b{height:16px;border-radius:3px;background:#2A2E38}
.racks b:nth-child(3n){background:#2F4F8F}
.rt{display:flex;gap:10px;flex-wrap:wrap}
.rt b{padding:8px 10px;border-radius:6px;background:#2A2E38;font:500 12px "Geist Mono",monospace;color:#DDE4F7}
.sx{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.sx b{padding:6px 9px;border-radius:5px;background:#E9E9EC;color:#111;font:600 12px "Geist Mono",monospace}
.sg{position:relative;height:120px}
.sg i{position:absolute;width:14px;height:14px;border-radius:3px;background:#6B9BFF}
.sg svg{position:absolute;inset:0;width:100%;height:100%}
.sg path{fill:none;stroke:#6B9BFF;stroke-width:1.5}
.slab .ok-big{font:700 40px/1 Geist,sans-serif;color:#3DCB82;letter-spacing:-0.03em}

/* cta */
.cta{background:#316DDB;color:#FFFFFF;padding:clamp(100px,10vw,150px) var(--m);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center;position:relative;overflow:hidden}
.cta-bgg{position:absolute;inset:-10% -5%;width:110%;height:120%;opacity:.22;pointer-events:none}
.cta-bgg path{fill:none;stroke:#FFFFFF;stroke-width:1.2;vector-effect:non-scaling-stroke}
.cta-bgg rect{fill:#FFFFFF}
.cta-copy{position:relative}
.cta-copy h2{font-size:clamp(52px,7vw,118px);letter-spacing:-0.05em;line-height:.9;max-width:9ch}
.cta-copy p{margin-top:28px;max-width:42ch;font-size:var(--fs-l);color:#E8EEFC}
.dlg{position:relative;width:min(470px,100%);justify-self:end;background:#FFFFFF;color:#242321;border-radius:20px;box-shadow:0 40px 80px -30px rgba(8,18,52,.6),0 2px 8px rgba(8,18,52,.2);padding:28px}
.dlg h3{font-size:21px;font-weight:600;letter-spacing:-0.02em}
.dlg .sub{margin-top:4px;font-size:14.5px;color:#5F5D58}
.dlg label,.dlg .fl{display:block;margin-top:22px;font-size:13.5px;font-weight:500}
.dlg input{margin-top:7px;width:100%;height:48px;border:1px solid #CFCDC8;border-radius:12px;padding:0 14px;font:15px Geist,sans-serif;color:#242321;background:#FFFFFF}
.dlg input:focus{outline:2px solid #316DDB;outline-offset:0;border-color:#316DDB}
.seg{margin-top:7px;display:grid;grid-template-columns:1fr 1fr;background:#F2F2F0;border-radius:12px;padding:4px;gap:4px}
.seg button{height:42px;border:0;border-radius:9px;background:transparent;font:500 14.5px Geist,sans-serif;color:#4A4945;cursor:pointer;transition:background-color .2s,color .2s}
.seg button[aria-pressed="true"]{background:#FFFFFF;color:#242321;box-shadow:0 1px 3px rgba(0,0,0,.14)}
.dlg .note{margin-top:12px;font-size:13.5px;color:#4A4945;min-height:40px}
.dlg .btn{margin-top:20px;width:100%;height:52px}
.dlg .closed{margin-top:20px;display:flex;align-items:center;gap:14px;min-height:52px;padding:10px 16px;border-radius:999px;background:#F2F2F0}
.closed-tag{flex:none;display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:#242321;color:#FFFFFF;font:600 12px/1 "Geist Mono",monospace;letter-spacing:.04em;text-transform:uppercase}
.closed-tag i{width:7px;height:7px;border-radius:50%;background:#F2A93B}
.dlg .closed p{margin:0;font-size:14px;line-height:1.35;color:#4A4945}

/* footer */
.ft{background:#0D0E11;color:#F2F2F0;padding:clamp(72px,8vw,120px) var(--m) 28px;overflow:hidden}
.ft-top{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.ft-top p{font-size:clamp(22px,2vw,30px);letter-spacing:-0.02em;font-weight:500;max-width:24ch}
.ft-top nav{display:flex;gap:28px;flex-wrap:wrap;font-size:15px}
.ft-top nav a{color:#D6D6DB;text-decoration:none}
.ft-top nav a:hover{color:#FFFFFF}
.ft-word{margin-top:clamp(48px,6vw,96px);color:#F0EEEB}
.ft-word .logo{display:block;width:100%;height:auto}
.ft-bot{margin-top:64px;display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;font-size:13.5px;color:#8E8E96}
.ft-bot a{color:#D6D6DB}

/* scroll-linked motion: content is visible without it */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .hero-bg{animation:heroOut linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .hero-copy{animation:heroCopy linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    .rv2{animation:rise linear both;animation-timeline:view();animation-range:entry 8% entry 48%}
    .print-frame{animation:parY linear both;animation-timeline:--print;animation-range:cover 0% cover 100%}
    .rq.r1,.rq.r3{animation:parA linear both;animation-timeline:--sbx;animation-range:cover 0% cover 100%}
    .rq.r2,.rq.r4{animation:parB linear both;animation-timeline:--sbx;animation-range:cover 0% cover 100%}
    .sbx-stage{animation:parS linear both;animation-timeline:--sbx;animation-range:cover 0% cover 100%}
    .cert{animation:certIn linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
    .iso{animation:explode linear both;animation-timeline:--stack;animation-range:entry 20% cover 60%}
    .ft-word{animation:wordIn linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
  }
}
@keyframes heroOut{to{transform:translateY(22%);opacity:.3}}
@keyframes heroCopy{to{transform:translateY(-14%);opacity:.2}}
@keyframes rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes parY{from{transform:translateY(28px)}to{transform:translateY(-28px)}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes parA{from{transform:translateY(70px)}to{transform:translateY(-90px)}}
@keyframes parB{from{transform:translateY(-40px)}to{transform:translateY(60px)}}
@keyframes parS{from{transform:translateY(40px)}to{transform:translateY(-40px)}}
@keyframes certIn{from{transform:translateY(80px) rotate(-5deg)}to{transform:rotate(-1.2deg)}}
@keyframes explode{from{--gap:10px}to{--gap:62px}}
@keyframes wordIn{from{transform:translateY(40%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  .mq-track,.ros,.loop,.film b,.film .ph,.mini .pulse,.caret{animation:none}
  .sn,.rn,.pv.real,.odo .strip,.sw-thumb{transition:none}
  .armed .stamp{opacity:.94}.armed .sig path{stroke-dashoffset:0}
  .armed .seen-cert .stamp,.armed .seen-cert .sig path{animation:none}
  .btn.nudge{animation:none}
  .rp-acts li,.rp-acts li i{animation:none}
  .st-step.on .cw .ln{animation:none}
  .armed .print.seen .kb-e,.armed .print .kb-e{stroke-dashoffset:0;animation:none}.armed .print.seen .kb-l,.armed .print .kb-l{opacity:1;animation:none}
}

/* tablet */
@media (max-width:1080px){
  .nav-r a.nl{display:none}
  .hero-copy{grid-template-columns:minmax(0,1fr);gap:28px}
  .hero h1{font-size:8.8vw}
  .euler,.proof,.sbx{grid-template-columns:minmax(0,1fr)}
  .story{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
  .rep-body,.sec-body{grid-template-columns:minmax(0,1fr)}
  .ways{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:16px}
  .way{grid-row:auto;grid-template-rows:none}
  .rq{display:none}
  .stack{height:480px}
  .st-stage{aspect-ratio:7 / 8;width:min(100%,500px)}
  .k-test{flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px}
  .code,.cw .code{white-space:pre-wrap;word-break:break-word;font-size:12px}
  .cw .ln{padding-left:40px}.cw .ln::before{width:26px}
  .sn-n{font-size:13px}
  .k-br .sn-n,.k-in .sn-n{font-size:12px}
}
/* phone */
@media (max-width:760px){
  .gd{font-size:16px}
  .sheet{border-radius:20px 20px 0 0;margin-top:-20px}
  .nav{height:68px}
  .brand{font-size:21px}
  .hero{height:auto;display:flex;flex-direction:column;padding-bottom:40px}
  .hero-bg{position:relative;inset:auto;height:440px;margin-top:68px}
  .hero-scrim{display:none}
  .hero-meta{position:static;order:2;padding:4px var(--m) 0}
  .hero-copy{position:static;order:3;display:block;padding:20px var(--m) 0}
  .hero h1{font-size:12.6vw}
  .hero-side{margin-top:22px}
  .acts .btn{flex:1 1 auto}
  .mq{padding:22px 0 46px}
  .euler{padding-top:88px;gap:36px}
  .print-frame{margin-inline:calc(var(--m) * -1);box-shadow:none}
  .kb-l{font-size:11px;padding:3px 5px;transform:translate(8px,-50%)}
  .print figcaption{font-size:13px}
  .story-head,.rep-head,.cmp-head,.cost-top,.sec-head,.cost-foot{grid-template-columns:minmax(0,1fr);gap:20px}
  .story{display:flex;flex-direction:column;gap:0}
  .st-wrap{order:-1;position:sticky;top:0;z-index:6;background:#FFFFFF;padding:10px 0 12px;margin-inline:calc(var(--m) * -1);padding-inline:var(--m)}
  .st-stage{position:relative;top:auto;width:100%;aspect-ratio:7 / 8;border-radius:16px}
  .sn{padding:6px 9px 7px}
  .sn-n{font-size:12.5px}
  .k-struct .sn-n,.k-req .sn-n,.k-in .sn-n,.k-br .sn-n{font-size:11.5px}
  .sn-t{font-size:10.5px}
  .st-step,.st-step:first-child{min-height:340px;justify-content:flex-start;padding:28px 0 0}
  .st-note{top:auto;bottom:12px}
  .st-step h3{font-size:28px}
  .pins{grid-template-columns:minmax(0,1fr)}
  .sbx{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .sbx-copy{display:contents}
  .sbx-copy h2{order:1}
  .sbx .lead{order:2}
  .net{order:3;margin:32px 0 28px}
  .sbx-view{order:4}
  .pins{order:5;margin-top:36px}
  .net{gap:16px}
  .pt-grid{grid-template-columns:minmax(0,1fr)}
  .pt-nav{display:none}
  .pt-body{padding:16px}
  .ann{font-size:10px}
  .cert{aspect-ratio:auto;transform:rotate(-1deg)}
  .cert-edge{display:none}
  .cert{box-shadow:0 30px 60px -36px rgba(40,34,18,.55),inset 0 0 0 6px #FDFCF7,inset 0 0 0 7px #9AA6C4}
  .cert-in{position:relative;inset:auto;padding:26px 22px;gap:22px}
  .cert-mid{width:100%}
  .ros{width:58%;right:-14%;top:18%;opacity:.55}
  .stamp{top:auto;bottom:22%;right:7%}
  .sig,.sig-l{width:150px}
  .dom{aspect-ratio:4 / 3}
  .rn{font-size:11px;padding:6px 9px}
  .dg{height:132px}
  .odo{font-size:16.4vw}
  .stack{height:420px}
  .iso{width:220px;height:220px}
  .slab{padding:14px}
  .rt b,.sx b{font-size:10.5px;padding:5px 7px}
  .racks{gap:5px}.racks b{height:11px}
  .slab .ok-big{font-size:28px}
  .sg{width:266px;transform:scale(.72);transform-origin:left top}
  .sec-i{padding:14px 12px}
  .cta{grid-template-columns:minmax(0,1fr);gap:44px}
  .dlg{justify-self:stretch;padding:22px}
  .ft-top nav{gap:18px}
}
