:root{color-scheme:dark;--bg:#0b0f17;--bg2:#0e1420;--surf:#111826;--surf2:#161f31;--line:#222c3f;--line2:#2c3850;--fg:#e8edf6;--mut:#93a0b8;--acc:#6aa0ff;--acc-soft:#16223b;--acc-ink:#07101f;--you:#f2b84b;--up:#3ddc97;--down:#ff7a7a;--focus:#8db4ff;
--ink:var(--fg);--paper:var(--bg);--card:var(--surf);--green:var(--acc);--green-soft:var(--acc-soft);--amber:var(--you);--amber-text:var(--you);--bad:var(--down);--hero:var(--bg);--herofg:var(--fg);--heromut:var(--mut);--chartbg:var(--surf);--grid:rgba(255,255,255,.09);--plan:var(--acc);
--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--paper);color:var(--fg);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--sans);font-weight:650;letter-spacing:-.022em;color:#f5f8ff;line-height:1.12;margin:0}
h2{font-size:clamp(26px,3.6vw,38px);margin-bottom:10px}h3{font-size:20px;margin-bottom:8px}
a{color:var(--green)}p{margin:0 0 12px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:8px;z-index:100}.skip:focus{left:8px}
.wrap{width:min(1160px,100% - 40px);margin:0 auto}
.fine{color:var(--mut);font-size:14.5px}.small{font-size:13.5px}.sub{color:var(--mut);max-width:60ch;margin-bottom:22px}
/* header */
.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--hero) 94%,transparent);backdrop-filter:blur(8px);color:var(--herofg);border-bottom:1px solid rgba(255,255,255,.08)}
.bar{display:flex;align-items:center;gap:18px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;color:var(--herofg);text-decoration:none;font:650 17px var(--sans)}
.links{display:flex;gap:4px;margin-left:12px;flex:1}.links a{color:var(--heromut);text-decoration:none;padding:8px 11px;border-radius:9px;font-size:15px}.links a:hover{color:#fff;background:rgba(255,255,255,.08)}
.actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:12px;font:600 15.5px system-ui,sans-serif;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .12s,background .15s}
.btn:active{transform:translateY(1px)}
.btn.solid{background:#eef3ee;color:#17352a}.btn.solid:hover{background:#fff}
.btn.amber{background:var(--amber);color:#1b1305}.btn.amber:hover{filter:brightness(1.08)}
.btn.ghostlight{border-color:rgba(255,255,255,.35);color:var(--herofg)}.btn.ghostlight:hover{background:rgba(255,255,255,.1)}
.btn.big{min-height:54px;padding:0 30px;font-size:17px}
.icon{width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:transparent;color:var(--herofg);cursor:pointer;font-size:18px;display:inline-grid;place-items:center}.icon:hover{background:rgba(255,255,255,.1)}
.burger{display:none}
/* hero */
.hero{background:radial-gradient(1000px 520px at 78% 8%,#21503d 0%,transparent 60%),var(--hero);color:var(--herofg);padding:56px 0 64px}
.herogrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:44px;align-items:center}
.hero h1{color:#fff;font-size:clamp(36px,5.4vw,62px);letter-spacing:-.01em;margin-bottom:18px}
.lead{font-size:clamp(17px,1.9vw,20px);color:var(--heromut);max-width:52ch}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 14px}
.hero .fine{color:var(--heromut)}
.srcs{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 6px;padding:0}.srcs li{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:5px 13px;font-size:13.5px;color:var(--herofg)}
/* calculator */
.calc{margin:0;background:var(--chartbg);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:18px 18px 14px;box-shadow:0 30px 70px -30px #000a}
.calc figcaption{font:650 19px var(--sans);color:#fff;margin-bottom:8px}
.chartbox{position:relative}
#chart{width:100%;height:auto;display:block;touch-action:pan-y;cursor:crosshair}
#chart text{fill:var(--heromut);font:11.5px system-ui,sans-serif;font-variant-numeric:tabular-nums}
.gl{stroke:var(--grid);stroke-width:1}.ln-plan{fill:none;stroke:var(--plan);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ln-edge{fill:none;stroke:var(--plan);stroke-width:1.3;stroke-dasharray:4 4;opacity:.7}.cone{fill:var(--plan);opacity:.14}.ln-you{fill:none;stroke:var(--you);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.5s .2s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}
.readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0 4px}
.readout div{border:1px solid rgba(255,255,255,.13);border-radius:12px;padding:8px 10px;min-width:0}.readout small{display:block;color:var(--heromut);font-size:12px}.readout b{display:block;font:650 clamp(17px,2.4vw,22px) var(--sans);color:#fff;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.readout .mid b{color:var(--plan)}
.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 92px;gap:12px 16px;margin-top:10px}
.controls label{display:grid;gap:4px;font-size:13px;color:var(--heromut)}.controls output{color:#fff;font-weight:600;font-variant-numeric:tabular-nums;float:right}
.controls input[type=range]{width:100%;min-height:30px;accent-color:var(--plan)}
.controls select{min-height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#0d1f17;color:#fff;font:inherit;padding:0 8px}
.calc .fine{margin:10px 0 0}
/* sections */
.sec{padding:76px 0}.sec.alt{background:color-mix(in srgb,var(--paper) 55%,var(--card));border-block:1px solid var(--line)}
.two{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:start}
.ticks{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}.ticks li{position:relative;padding-left:28px}
.ticks li:before{content:"";position:absolute;left:0;top:.45em;width:14px;height:8px;border-left:2.5px solid var(--green);border-bottom:2.5px solid var(--green);transform:rotate(-45deg) translateY(-3px)}
/* pains */
.pains{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:28px;margin-top:6px}
.ptabs{display:grid;gap:8px;align-content:start}
.ptabs button{text-align:left;font:inherit;font-weight:600;line-height:1.35;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;min-height:56px;transition:border-color .15s,background .15s}
.ptabs button:hover{border-color:var(--green)}.ptabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ppanel{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:26px}
.quote{font:650 20px var(--sans);color:var(--amber-text);margin-bottom:14px}
.mini{margin-top:6px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--paper)}
.mrow{display:grid;grid-template-columns:1fr auto;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-variant-numeric:tabular-nums}.mrow:last-of-type{border-bottom:0}
.mrow.head{grid-template-columns:1.2fr 1fr 1fr 1fr;color:var(--mut);font-size:13px}.mini .mrow:not(.head):has(span:nth-child(4)){grid-template-columns:1.2fr 1fr 1fr 1fr}
.spark{width:100%;max-width:340px;height:auto;margin-top:6px}
/* how */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:26px 0 0;padding:0}
.steps li{counter-increment:s;position:relative;padding-top:48px;border-top:2px solid var(--ink)}
.steps li:before{content:counter(s);position:absolute;top:8px;left:0;font:650 28px var(--sans);color:var(--green)}
/* research / ideas */
.seg{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.seg button{font:inherit;font-weight:600;font-size:14.5px;min-height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer}
.seg button[aria-selected=true],.seg button[aria-checked=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.rulecard{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--green);border-radius:16px;padding:22px}.rtag{font-size:13px;color:var(--mut);margin-bottom:6px}
.rulecard dt{font-weight:700;margin-top:12px}.rulecard dd{margin:2px 0 0;color:var(--fg)}.rulecard .weak{color:var(--bad)}
.ideas .idctl{display:flex;flex-wrap:wrap;gap:6px 28px}
.idtable{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:6px 0 12px}
.idr{display:grid;grid-template-columns:34px minmax(0,1.1fr) 62px minmax(0,1.7fr) minmax(0,1.1fr);gap:14px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line)}.idr:last-child{border-bottom:0}
.idr.hd{background:color-mix(in srgb,var(--green-soft) 60%,var(--card));font-size:13px;color:var(--mut);font-weight:600}
.idr .n{font:650 18px var(--sans);color:var(--green)}.idr .sc{font-variant-numeric:tabular-nums;font-weight:700}
.bar2{height:6px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:5px}.bar2 i{display:block;height:100%;background:var(--green);transition:width .35s}
.dr{font-variant-numeric:tabular-nums}.dr.flag{color:var(--bad);font-weight:600}.dr.ok{color:var(--green)}
/* spec */
.spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin:22px 0 0}
.spec div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line)}.spec dt{font:650 19px var(--sans);color:var(--ink)}.spec dd{margin:0;color:var(--fg)}
/* dark + faq + final */
.sec.dark{background:var(--hero);color:var(--herofg)}.sec.dark h2,.sec.dark h3{color:#fff}.sec.dark .sub{color:var(--heromut)}.sec.dark a{color:#9fe0c1}
.ticks.onDark li:before{border-color:var(--plan)}
.honest{border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:22px}.honest .fine{color:var(--heromut)}
.narrow{max-width:760px}details{border-top:1px solid var(--line);padding:4px 0}details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;padding:14px 0;min-height:48px;list-style:none;display:flex;justify-content:space-between;gap:12px}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-size:22px;line-height:1;color:var(--green)}details[open] summary:after{content:"\2212"}
details p{color:var(--mut);max-width:62ch}
.final{background:radial-gradient(800px 380px at 50% 0,#21503d 0%,transparent 70%),var(--hero);color:#fff;text-align:center;padding:72px 0}.final h2{color:#fff;margin-bottom:22px}.final .fine{margin-top:14px;color:var(--heromut)}
.foot{padding:30px 0 44px;text-align:center}.foot p{margin:0 0 8px}.foot a{color:var(--green)}
/* progressive enhancement: tabs only hide panels when JS is on */
html:not(.js) .ppanel[hidden]{display:block}
@media(max-width:980px){.herogrid,.two,.pains{grid-template-columns:1fr}.herogrid{gap:30px}.hero{padding:34px 0 44px}.sec{padding:56px 0}.spec{grid-template-columns:1fr}
 .ptabs{grid-auto-flow:column;grid-auto-columns:minmax(220px,78%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-inline:-20px;padding-inline:20px}.ptabs button{scroll-snap-align:start}
 .links{position:fixed;inset:64px 0 auto 0;margin:0;flex-direction:column;background:var(--hero);padding:10px 20px 18px;border-bottom:1px solid rgba(255,255,255,.12);transform:translateY(-130%);transition:transform .25s;z-index:-1}.links.open{transform:none}.links a{padding:13px 10px;font-size:17px}
 .burger{display:inline-grid}}
@media(max-width:700px){.steps{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr}.controls .cur{grid-column:span 2}.brand span{font-size:16px}.btn.solid{padding:0 16px}.wrap{width:calc(100% - 32px)}
 .idr{grid-template-columns:28px minmax(0,1fr) 54px;row-gap:4px}.idr .why,.idr .dr{grid-column:2 / -1}.idr.hd .why,.idr.hd .dr{display:none}.spec div{grid-template-columns:1fr;gap:2px}.readout{gap:6px}.ppanel{padding:20px}.calc{padding:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.draw{animation:none;stroke-dashoffset:0}*{transition:none!important}}
@media(max-width:700px){.ptabs{margin-inline:-16px;padding-inline:16px}}
/* app preview */
.shots{position:relative;margin-top:26px;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:0;align-items:end}
.shots img{display:block;height:auto;border:1px solid var(--line);box-shadow:0 30px 60px -28px #0007}
.shots .desk{width:100%;border-radius:14px}.shots .phone{width:190px;border-radius:26px;margin-left:-70px;margin-bottom:-18px;border:6px solid var(--ink);position:relative}
.shotcap{margin-top:26px;max-width:62ch}
@media(max-width:700px){.shots{grid-template-columns:1fr}.shots .phone{width:150px;margin:-60px 0 0 auto}}
@media(max-width:700px){.shots .desk{display:none}.shots .phone{width:min(260px,70%);margin:0 auto}}
/* ---- quant look: graphite, hairlines, one blue accent, green/red only for up/down ---- */
body{background:var(--bg)}
.top{background:rgba(11,15,23,.82);border-bottom:1px solid var(--line)}
.links a{color:var(--mut)}.links a:hover{color:#fff;background:var(--surf2)}
.icon{border-color:var(--line2)}.icon:hover{background:var(--surf2)}
.btn.solid{background:transparent;color:var(--fg);border-color:var(--line2)}.btn.solid:hover{background:var(--surf2)}
.btn.amber{background:var(--acc);color:var(--acc-ink)}.btn.amber:hover{filter:brightness(1.1)}
.btn.ghostlight{border-color:var(--line2);color:var(--fg)}.btn.ghostlight:hover{background:var(--surf2)}
.hero{background:radial-gradient(900px 520px at 80% 0,rgba(106,160,255,.16),transparent 62%),linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 56px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/56px 100%,var(--bg);background-blend-mode:normal;position:relative}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,var(--bg));pointer-events:none}.hero .wrap{position:relative;z-index:1}
.hero h1{color:#fff;font-weight:700;letter-spacing:-.03em}
.srcs li{border-color:var(--line2);background:var(--surf);font-family:var(--mono);font-size:12.5px}
.calc{background:var(--surf);border-color:var(--line2);box-shadow:0 40px 80px -40px rgba(0,0,0,.9),0 0 0 1px rgba(106,160,255,.06)}
.calc figcaption{font:650 16px var(--sans);letter-spacing:-.01em}
.readout div{background:var(--bg2);border-color:var(--line)}.readout b{font:600 clamp(16px,2.2vw,20px) var(--mono);letter-spacing:-.02em}.readout small{color:var(--mut)}
.controls output{font-family:var(--mono)}.controls select{background:var(--bg2);border-color:var(--line2)}
#chart text{font-family:var(--mono);font-size:10.5px;fill:var(--mut)}.cone{opacity:.16}
.sec.alt{background:var(--bg2);border-block:1px solid var(--line)}
.sec h2{font-weight:650}
.ticks li:before{border-color:var(--acc)}
.ptabs button{background:var(--surf);border-color:var(--line);color:var(--fg)}.ptabs button:hover{border-color:var(--acc)}
.ptabs button[aria-selected=true]{background:var(--acc-soft);border-color:var(--acc);color:#fff}
.ppanel{background:var(--surf);border-color:var(--line)}.quote{font:italic 600 19px/1.4 var(--sans);color:var(--you)}
.mini{background:var(--bg2);border-color:var(--line)}.mrow{border-bottom:1px dashed var(--line2);font-family:var(--mono);font-size:14px}.mrow span:first-child{font-family:var(--sans)}
.steps li{border-top:1px solid var(--line2)}.steps li:before{font:600 15px var(--mono);color:var(--acc);top:14px;content:"0" counter(s)}
.seg button{background:var(--surf);border-color:var(--line);color:var(--fg)}.seg button[aria-selected=true],.seg button[aria-checked=true]{background:var(--acc-soft);border-color:var(--acc);color:#fff}
.rulecard{background:var(--surf);border-color:var(--line);border-left-color:var(--acc)}.rulecard .weak{color:var(--down)}
.idtable{background:var(--surf);border-color:var(--line)}.idr{border-bottom-color:var(--line)}.idr.hd{background:var(--bg2);color:var(--mut)}
.idr .n{font:600 14px var(--mono);color:var(--mut)}.idr .sc{font-family:var(--mono)}.bar2{background:var(--line)}.bar2 i{background:var(--acc)}
.dr{font-family:var(--mono);font-size:13.5px}.dr.ok{color:var(--up)}.dr.flag{color:var(--down)}
.spec div{border-top-color:var(--line)}.spec dt{font:650 16px var(--sans);color:#f5f8ff;letter-spacing:-.01em}
.sec.dark{background:var(--surf);border-block:1px solid var(--line)}.sec.dark .sub{color:var(--mut)}.ticks.onDark li:before{border-color:var(--acc)}.honest{border-color:var(--line2);background:var(--bg2)}
details{border-top-color:var(--line)}details:last-of-type{border-bottom-color:var(--line)}summary:after{color:var(--acc)}
.final{background:radial-gradient(800px 380px at 50% 0,rgba(106,160,255,.18),transparent 70%),var(--bg2);border-top:1px solid var(--line)}
.foot a,a{color:var(--acc)}
.shots img{border-color:var(--line2);box-shadow:0 30px 70px -30px #000}.shots .phone{border-color:var(--surf2)}
.links{background:var(--bg)}
@media(max-width:980px){.links{background:var(--bg);border-bottom:1px solid var(--line)}}
