@import url("https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Spline+Sans+Mono:wght@400;500&display=swap");
:root{--bg:#0a0c0f;--card:#11151a;--tile:#171c22;--tile2:#1e242b;--ink:#eef3f6;--dim:#97a3ad;--faint:#5f6b75;--hair:#1f262d;--hair2:#2c353e;--acc:#22d3ee;--on:#02161b;--up:#4ade80;--down:#f87171}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 "Hanken Grotesk",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.mono,.num{font-family:"Spline Sans Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.hint{color:var(--faint);font-size:13.5px}
.chg{font-family:"Spline Sans Mono",monospace;font-size:.86em}.chg.up{color:var(--up)}.chg.down{color:var(--down)}

header.top .wrap{display:flex;align-items:center;gap:30px;height:74px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:22px;letter-spacing:-.025em}
.brand img{width:28px;height:28px}
nav{display:flex;gap:24px;color:var(--dim);font-size:15px;margin-left:auto}nav a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:8px;font:700 15px "Hanken Grotesk",sans-serif;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-acc{background:var(--acc);color:var(--on)}.btn-acc:hover{background:#46ddf2}
.btn-ghost{background:transparent;border-color:var(--hair2);color:var(--ink)}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* hero: headline over a full-width calculator */
.hero{padding:64px 0 10px}
.eyebrowless{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap}
.hero h1{font-size:clamp(44px,6vw,80px);line-height:.96;letter-spacing:-.045em;font-weight:800;margin:0;max-width:780px}
.hero h1 span{color:var(--acc)}
.hero .sub{color:var(--dim);font-size:18px;max-width:380px;margin:0}
.ca{display:inline-flex;gap:10px;margin-top:18px;padding:8px 14px;border:1px solid var(--hair2);border-radius:8px;font:13px "Spline Sans Mono",monospace;color:var(--dim);cursor:pointer}.ca b{color:var(--ink);font-weight:500}
.calc{margin-top:40px;display:grid;grid-template-columns:330px 1fr;background:var(--card);border:1px solid var(--hair);border-radius:16px;overflow:hidden}
.calc .in{padding:24px;border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:14px}
.calc label{font-size:13px;color:var(--dim);display:flex;justify-content:space-between}
.calc label b{color:var(--ink);font:500 14px "Spline Sans Mono",monospace}
input[type=range]{width:100%;accent-color:var(--acc)}
select,input{font:inherit;color:var(--ink);background:var(--tile2);border:1px solid var(--hair2);border-radius:8px;padding:11px 14px;width:100%;outline:none}
select:focus,input:focus{border-color:var(--acc)}
.calc .out{padding:24px;display:flex;flex-direction:column;gap:20px}
.tl{position:relative;height:120px;border-bottom:1px solid var(--hair2)}
.tl .bar{position:absolute;bottom:0;background:var(--acc);border-radius:4px 4px 0 0;opacity:.9}
.tl .bar.big{background:var(--down);opacity:.75}
.tl .lab{position:absolute;top:-2px;font:12px "Spline Sans Mono",monospace;color:var(--faint)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cmp .k{font-size:12.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.07em}
.cmp .v{font:500 30px "Spline Sans Mono",monospace;margin-top:2px}
.cmp .s{color:var(--dim);font-size:13.5px}
.cmp .a .v{color:var(--down)}.cmp .b .v{color:var(--acc)}
.lg{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none;background:#fff}
.lg.badge{display:inline-grid;place-items:center;background:var(--tile2);color:var(--dim);font-size:11px;font-weight:700}

section{padding:90px 0 0}
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px;flex-wrap:wrap}
.sh h2{font-size:clamp(30px,3.4vw,44px);letter-spacing:-.04em;margin:0;font-weight:800;line-height:1.05}
.sh p{color:var(--dim);margin:0;max-width:470px}
.depth{background:var(--card);border:1px solid var(--hair);border-radius:16px;overflow:hidden}
.depth table{width:100%;border-collapse:collapse;font-size:15px}
.depth th{font-size:12px;color:var(--faint);text-transform:uppercase;letter-spacing:.07em;font-weight:600;text-align:left;padding:14px 18px;border-bottom:1px solid var(--hair)}
.depth td{padding:12px 18px;border-top:1px solid var(--hair)}
.depth td.r,.depth th.r{text-align:right;font-family:"Spline Sans Mono",monospace}
.depth tr:hover td{background:var(--tile)}
.depth .tk{display:flex;align-items:center;gap:10px}.depth .tk b{display:block}.depth .tk span{color:var(--faint);font-size:13px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.card{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:26px}
.card .n{font:500 34px "Spline Sans Mono",monospace;color:var(--acc);line-height:1}
.card h3{font-size:21px;margin:16px 0 8px;letter-spacing:-.02em}
.card p{color:var(--dim);margin:0;font-size:15px}
.faq{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.faq details{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:20px 22px}
.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary:after{content:"+";color:var(--acc)}.faq details[open] summary:after{content:"−"}
.faq p{color:var(--dim);margin:12px 0 0;font-size:15px}
.final{padding:100px 0 90px}
.final .wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.final h2{font-size:clamp(32px,4.4vw,56px);line-height:1.02;letter-spacing:-.045em;margin:0;max-width:760px;font-weight:800}
.final .btn{margin-top:8px}
footer{background:#000;padding:72px 0 80px}
footer .wrap{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
footer .note{color:#6b7680;font-size:14px;max-width:340px}
footer .cols{display:flex;gap:56px}footer .col{display:flex;flex-direction:column;gap:10px;font-size:15px;color:#b3bec7}
footer .col b{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}footer a:hover{color:#fff}

/* app */
.appgrid{display:grid;grid-template-columns:420px 1fr;gap:18px;padding:30px 0 80px;align-items:start}
.panel{background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:22px}
.panel h3{margin:0 0 6px;font-size:19px}
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--tile2);border-radius:8px;padding:4px;gap:4px}
.seg button{height:38px;border:0;border-radius:6px;background:transparent;color:var(--dim);font:700 14px "Hanken Grotesk";cursor:pointer}
.seg button.on{background:var(--acc);color:var(--on)}
.fld{margin-top:14px}.fld label{display:flex;justify-content:space-between;font-size:13px;color:var(--dim);margin-bottom:7px}
.fld .in2{display:flex;align-items:center;gap:8px;background:var(--tile2);border:1px solid var(--hair2);border-radius:8px;padding:4px 6px 4px 14px}
.fld .in2 input{border:0;background:transparent;padding:9px 0;font:500 19px "Spline Sans Mono",monospace}
.fld .in2 span{color:var(--dim);font-size:14px;padding-right:8px}
.tsel{display:flex;align-items:center;gap:10px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.mini{display:inline-flex;align-items:center;height:30px;padding:0 11px;font:600 12.5px "Hanken Grotesk";border-radius:6px;background:var(--tile2);border:1px solid var(--hair2);color:var(--ink);cursor:pointer}
.mini.on,.mini:hover{border-color:var(--acc);color:var(--acc)}
.preview{margin-top:16px;padding:14px;border-radius:8px;background:var(--tile);color:var(--dim);font-size:14.5px}.preview b{color:var(--ink)}
.big-btn{width:100%;height:52px;margin-top:16px;font-size:16px}
.ol{display:flex;flex-direction:column;gap:10px}
.ord{background:var(--tile);border:1px solid var(--hair);border-radius:12px;padding:14px}
.ord .hd{display:flex;align-items:center;gap:12px}.ord .t{font-weight:700}.ord .s{color:var(--faint);font-size:13px}
.ord .hd .act{margin-left:auto}
.prog{display:flex;gap:3px;margin-top:12px}.prog i{flex:1;height:8px;border-radius:2px;background:var(--hair2)}.prog i.d{background:var(--acc)}
.tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:12px;background:var(--tile2);color:var(--dim)}.tag.live{color:var(--acc)}.tag.done{color:var(--up)}
.empty{padding:36px 10px;text-align:center;color:var(--faint)}
.banner{margin-top:24px;padding:14px 18px;border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.06);border-radius:10px;font-size:14.5px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;place-items:center;z-index:50}.modal.open{display:grid}
.wbtn{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;padding:12px;border-radius:8px;background:var(--tile);border:1px solid var(--hair2);color:var(--ink);font:600 15px "Hanken Grotesk";cursor:pointer}.wbtn img{width:24px;height:24px}
.toast{position:fixed;left:50%;bottom:24px;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(120px);background:var(--tile2);border:1px solid var(--hair2);padding:12px 18px;border-radius:8px;transition:transform .3s;z-index:60}.toast.show{transform:translateX(-50%);opacity:1}.toast.bad{border-color:var(--down)}
.doc{max-width:780px;padding:60px 0 90px}.doc h1{font-size:46px;letter-spacing:-.04em;margin:0 0 10px}.doc h2{margin:40px 0 10px;font-size:24px}.doc p,.doc li{color:var(--dim)}
.doc table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}.doc td{padding:10px 8px;border-top:1px solid var(--hair)}.doc code{font-family:"Spline Sans Mono",monospace;color:var(--ink);font-size:13px}.doc a{color:var(--acc)}

@media(max-width:980px){.calc,.appgrid{grid-template-columns:1fr}.calc .in{border-right:0;border-bottom:1px solid var(--hair)}.steps,.faq{grid-template-columns:1fr}nav{display:none}}
@media(max-width:560px){.depth .hide{display:none}.cmp{grid-template-columns:1fr}footer .cols{gap:32px}}
