:root{--bg:#fbfcfd;--ink:#32404f;--ink-2:#3f4d5c;--muted:#727d88;--faint:#9aa3ac;--line:#e8ebef;--line-2:#dde2e7;--soft:#f3f6f8;--accent:#e65f2e;--accent-tint:#fcebe3;--hi:#2f7d49;--hi-bg:#e7f3eb;--med:#9a6a16;--med-bg:#f6eede;--lo:#b1453a;--lo-bg:#f7e7e5;--serif:"Source Serif 4",Georgia,"Times New Roman",serif;--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;--bl:linear-gradient(135deg,#d2e1f7,#a6bdec)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.6;overflow:hidden}::selection{background:#fbe0d4}.mono{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:15px clamp(20px,4vw,48px);background:#fbfcfdd1;backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}.topbar .brand{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:none}.topbar .brand span{color:var(--faint)}.topbar nav{display:flex;gap:20px}.topbar nav a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none}.topbar nav a:hover{color:var(--accent)}.toc{position:fixed;left:clamp(30px,4vw,68px);top:clamp(30px,5vh,56px);z-index:55;width:220px}.toc .logo{display:block;width:18px;height:18px;border-radius:50%;background:var(--accent);margin-bottom:30px}.toc .back{display:inline-flex;align-items:center;gap:11px;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-decoration:none;margin-bottom:38px;transition:color .2s}.toc .back .arr{font-size:17px;line-height:1;margin-top:-1px}.toc .back:hover{color:var(--ink)}.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:16px}.toc a.sec{font-family:var(--sans);font-weight:400;font-size:clamp(16px,1.15vw,18px);line-height:1.2;color:var(--faint);text-decoration:none;transition:color .2s}.toc a.sec:hover{color:var(--muted)}.toc a.sec.active{color:var(--ink);font-weight:500}@media(max-width:900px){.toc{display:none}}.pbar{position:fixed;top:0;left:0;height:2px;background:var(--accent);width:0;z-index:65;transition:width .6s cubic-bezier(.22,.61,.36,1)}.deck{height:100vh;overflow:hidden}.fold{height:100vh;display:grid;place-items:center;padding:48px clamp(24px,5vw,72px) 48px clamp(120px,16vw,300px)}.fold-in{width:100%;max-width:1280px;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,80px);align-items:center}@media(max-width:900px){.fold{padding:80px 24px 40px}.fold-in{grid-template-columns:1fr;gap:30px}}.narr .sec-label{margin:0 0 18px}.narr h1{font-family:var(--serif);font-weight:500;font-size:clamp(38px,5vw,68px);line-height:1.03;letter-spacing:-.02em;margin:0;color:var(--ink)}.narr h1 em{font-style:italic;font-weight:500}.narr h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,40px);line-height:1.18;letter-spacing:-.015em;margin:0 0 18px;color:var(--ink);max-width:18ch}.narr .lead{font-size:clamp(18px,1.55vw,22px);line-height:1.5;color:var(--ink-2);max-width:46ch;margin:18px 0 0}.narr .body{font-size:clamp(15.5px,1.15vw,17.5px);line-height:1.6;color:var(--muted);max-width:48ch;margin:14px 0 0}.narr .meta{display:flex;flex-wrap:wrap;gap:18px 28px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}.narr .meta .l{margin-bottom:7px}.narr .meta .v{font-family:var(--sans);font-size:13.5px;color:var(--ink-2)}.narr .note{font-family:var(--sans);font-size:12.5px;color:var(--faint);line-height:1.55;margin-top:18px}.stage{display:flex;justify-content:center}.ui{font-family:var(--sans);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #32404f0a,0 24px 60px #32404f1a;width:100%;max-width:560px;overflow:hidden}.ui-head{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink)}.ui-head .ver{margin-left:auto;font:500 11px/1 var(--mono);color:var(--muted);border:1px solid var(--line-2);padding:5px 8px;border-radius:7px}.conf{display:inline-flex;gap:3px}.conf i{width:6px;height:6px;border-radius:50%;background:var(--hi)}.badge{font:600 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;padding:4px 7px;border-radius:5px}.badge.hi{color:var(--hi);background:var(--hi-bg)}.badge.med{color:var(--med);background:var(--med-bg)}.badge.lo{color:var(--lo);background:var(--lo-bg)}.phase{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:0;cursor:pointer;font-family:var(--sans)}.phase:last-child{border-bottom:0}.phase .prow{display:flex;align-items:center;gap:10px;padding:14px 18px;transition:background .15s}.phase:hover .prow{background:var(--soft)}.phase .chev{color:var(--faint);transition:transform .3s;font-size:11px}.phase.open .chev{transform:rotate(90deg)}.phase .pname{font-size:14px;font-weight:600;color:var(--ink);flex:1}.phase .pmeta{font:500 11px/1 var(--mono);color:var(--muted)}.steps{max-height:0;overflow:hidden;transition:max-height .35s ease}.phase.open .steps{max-height:220px}.steps .inner{padding:2px 18px 16px 38px}.steps .s{font-size:13px;color:var(--muted);padding:4px 0;display:flex;gap:8px}.steps .s b{color:var(--ink);font-weight:600}.ui-foot{padding:14px 18px;display:flex;gap:10px;align-items:center}.hint-row{font-size:12px;color:var(--faint);font-family:var(--sans)}.btn{font:600 13px/1 var(--sans);background:var(--accent);color:#fff;border:0;border-radius:10px;padding:12px 16px;cursor:pointer;transition:filter .15s,transform .1s}.btn:hover{filter:brightness(.95)}.btn:active{transform:scale(.98)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line-2)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}.btn.wide{width:100%;justify-content:center;text-align:center}.tabs{display:flex;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--soft)}.tabs button{font:600 12px/1 var(--sans);color:var(--muted);background:transparent;border:0;padding:9px 13px;border-radius:8px;cursor:pointer}.tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #32404f14}.pane{display:none;padding:16px 18px}.pane.on{display:block}.chat{display:flex;flex-direction:column;gap:10px;min-height:230px}.msg{max-width:85%;padding:10px 13px;border-radius:12px;font-size:13.5px;line-height:1.45}.msg.ai{background:var(--soft);color:var(--ink-2);align-self:flex-start;border-bottom-left-radius:4px}.msg.you{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.msg.sys{font-family:var(--mono);font-size:11px;color:var(--muted);background:transparent;align-self:flex-start;padding:2px 0}.typing i{display:inline-block;width:5px;height:5px;margin:0 1px;border-radius:50%;background:var(--faint);animation:bnc 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bnc{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.vlist{display:grid}.vrow{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.vrow:last-child{border-bottom:0}.vrow .vt{font:500 11px/1 var(--mono);color:var(--ink);width:26px}.vrow .vd{flex:1;color:var(--ink-2)}.vrow .rev{font:600 11px/1 var(--sans);color:var(--accent);background:none;border:0;cursor:pointer;opacity:0;transition:opacity .15s}.vrow:hover .rev{opacity:1}.vrow.cur{color:var(--ink)}.vrow .dotc{width:7px;height:7px;border-radius:50%;background:var(--hi)}.panel{font-family:var(--sans)}.track{display:flex;align-items:center;gap:0;margin:8px 0 22px}.track .end{font:600 11px/1 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.track .line{flex:1;height:2px;background:var(--line-2);position:relative;margin:0 12px}.gapnode{position:relative}.nodes{display:flex;justify-content:space-around;margin-top:-30px}.node{width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:#fff;cursor:pointer;display:grid;place-items:center;font:600 12px/1 var(--mono);color:var(--muted);transition:all .2s;box-shadow:0 2px 8px #32404f0f}.node:hover,.node.on{border-color:var(--accent);color:var(--accent);transform:scale(1.12)}.reveal-card{margin-top:8px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px #32404f0a}.reveal-card h4{margin:0 0 6px;font:600 15px/1.3 var(--sans);color:var(--ink)}.reveal-card p{margin:0;font-size:14px;color:var(--muted);font-family:var(--sans);line-height:1.5}.seg{display:inline-flex;padding:4px;background:var(--soft);border-radius:11px;gap:4px}.seg button{font:600 12.5px/1 var(--sans);color:var(--muted);background:transparent;border:0;padding:9px 14px;border-radius:8px;cursor:pointer}.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #32404f1a}.funnel{display:grid;gap:9px;font-family:var(--sans)}.frow{cursor:default}.frow .ft{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-2);margin-bottom:5px}.frow .ft .v{font-family:var(--mono);color:var(--muted)}.bar{height:30px;border-radius:7px;background:var(--bl);position:relative;transition:filter .15s}.frow:hover .bar{filter:brightness(.97)}.frow.star .bar{background:linear-gradient(135deg,#f3a07e,var(--accent))}.frow.leak .bar{outline:2px dashed var(--med);outline-offset:2px}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{font:500 13px/1 var(--sans);padding:10px 13px;border-radius:9px;border:1px solid var(--line-2);color:var(--ink-2);background:#fff;transition:all .18s}.chip[data-k=own].lit{background:var(--accent);color:#fff;border-color:var(--accent)}.chip[data-k=partner].lit{background:var(--soft);color:var(--ink);border-color:var(--line-2)}.chip.dim{opacity:.4}.princ{display:grid;gap:12px}.pc{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .2s,transform .2s;font-family:var(--sans)}.pc:hover{border-color:var(--accent);transform:translate(4px)}.pc h4{margin:0 0 5px;font:600 15px/1.3 var(--sans);color:var(--ink)}.pc p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5}.skills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.skills span{font-family:var(--sans);font-size:12.5px;color:var(--ink-2);padding:7px 11px;border:1px solid var(--line-2);border-radius:999px}.modal{position:fixed;inset:0;z-index:90;display:none;place-items:center;background:#2b37446b;backdrop-filter:blur(3px)}.modal.open{display:grid}.sheet{font-family:var(--sans);background:#fff;border-radius:16px;width:min(460px,92vw);padding:22px 24px;box-shadow:0 30px 90px #00000047}.sheet h3{margin:0 0 4px;font:600 17px/1.3 var(--sans);color:var(--ink)}.sheet p{margin:0 0 16px;font-size:13.5px;color:var(--muted);font-family:var(--sans)}.opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;margin-bottom:9px;cursor:pointer;font-size:13.5px;color:var(--ink-2)}.opt:hover{border-color:var(--accent)}.opt .r{width:15px;height:15px;border-radius:50%;border:2px solid var(--line-2)}.opt.sel .r{border-color:var(--accent);background:radial-gradient(circle at center,var(--accent) 0 4px,transparent 5px)}.sheet .row{display:flex;gap:10px;margin-top:6px}.scroll-hint{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:55;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);display:flex;gap:8px;align-items:center;transition:opacity .4s}.scroll-hint .m{width:18px;height:28px;border:1.5px solid var(--line-2);border-radius:10px;position:relative}.scroll-hint .m:after{content:"";position:absolute;left:50%;top:6px;width:3px;height:6px;margin-left:-1.5px;border-radius:2px;background:var(--faint);animation:wheel 1.5s infinite}@keyframes wheel{0%{opacity:0;transform:translateY(0)}40%{opacity:1}80%{opacity:0;transform:translateY(7px)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
