/* ═══ HOMEPAGE CSS ═══ */
#hero{position:relative;min-height:min(92svh,860px);display:flex;align-items:center;overflow:hidden;padding-block:var(--sp-5);background:var(--bg)}
#hero::after{display:none}
#threadCanvas{position:absolute;inset:0;width:100%;height:100%}
.hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 50% 40%,var(--accent-glow),transparent 68%);pointer-events:none}
.hero-inner{position:relative;z-index:1;text-align:center;max-width:min(920px,100%);margin-inline:auto}
.hero-eye{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp-2);display:inline-flex;align-items:center;gap:.75rem;opacity:0;animation:fup .65s var(--ease) .15s forwards}
.hero-eye::before,.hero-eye::after{content:'';width:26px;height:1px;background:var(--gold);opacity:.45}
h1.hero-h{font-size:clamp(2rem,1.2rem+4.4vw,4.6rem);font-weight:800;letter-spacing:-.034em;line-height:1.04;margin-bottom:var(--sp-2);opacity:0;animation:fup .72s var(--ease) .3s forwards;text-wrap:balance}
h1.hero-h span{color:var(--accent-lt);position:relative;white-space:nowrap}
h1.hero-h span::after{content:'';position:absolute;left:0;bottom:.05em;height:2px;width:0;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 6px,transparent 6px,transparent 13px);animation:stitch 1.1s var(--ease) 1.1s forwards}
@keyframes stitch{to{width:100%}}
.hero-sub{font-size:clamp(.92rem,.85rem+.35vw,1.08rem);line-height:1.72;color:var(--text-dim);max-width:56ch;margin:0 auto var(--sp-3);opacity:0;animation:fup .72s var(--ease) .45s forwards}
.hero-sub strong{color:var(--text)}
.hero-cta{display:flex;gap:var(--sp-1);justify-content:center;flex-wrap:wrap;opacity:0;animation:fup .72s var(--ease) .6s forwards}
@media(max-width:560px){.hero-cta{flex-direction:column;align-items:stretch;max-width:340px;margin-inline:auto}}
@keyframes fup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* S02 stats strip — count-up */
#stats{padding-block:var(--sp-4)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden}
.stat{background:var(--panel);padding:var(--sp-2) var(--sp-2);transition:background .2s;position:relative;overflow:hidden}
.stat:hover{background:var(--panel-2)}
.stat::after{content:'';position:absolute;top:0;left:.9rem;right:.9rem;height:1px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 4px,transparent 4px,transparent 10px);opacity:0;transition:opacity .3s}
.stat:hover::after{opacity:.7}
.stat-v{font-family:var(--mono);font-size:clamp(1.5rem,1.2rem+1.2vw,2.1rem);color:var(--text);letter-spacing:-.02em}
.stat-v sup{font-size:.55em;color:var(--accent-lt)}
.stat-l{font-size:.76rem;color:var(--text-dim);margin-top:.4rem;line-height:1.5}
.stat-note{font-size:.66rem;color:var(--text-faint);font-style:italic;margin-top:.2rem}

/* S03 pipeline — horizontal snap rail on all sizes; cards grow on wide */
#pipeline{background:var(--panel)}
.rail-wrap{position:relative;margin-top:var(--sp-3)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,26vw,320px);gap:var(--sp-1);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail-card{scroll-snap-align:start;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:var(--sp-2);position:relative;overflow:hidden;min-height:170px;display:flex;flex-direction:column}
.rail-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 12px);opacity:.55}
.rail-n{font-family:var(--mono);font-size:.64rem;color:var(--gold);letter-spacing:.1em;margin-bottom:.7rem}
.rail-t{font-size:.98rem;font-weight:700;color:var(--text);margin-bottom:.4rem}
.rail-b{font-size:.8rem;line-height:1.62;color:var(--text-dim)}
.rail-arrow{margin-top:auto;padding-top:.9rem;color:var(--text-faint);display:flex;justify-content:flex-end}
.rail-arrow svg{width:15px;height:15px}
.rail-dots{display:flex;gap:.45rem;justify-content:center;margin-top:.4rem}
.rail-dot{width:22px;height:4px;border-radius:2px;background:var(--line);border:none;cursor:pointer;transition:background .25s;padding:0}
.rail-dot.act{background:var(--accent-lt)}
@media(min-width:1500px){.rail{grid-auto-columns:1fr;grid-auto-flow:row;grid-template-columns:repeat(5,1fr);overflow:visible}.rail-dots{display:none}}

/* S04 model — 3 pillars */
#model{background:var(--bg);text-align:center}
#model .sec-tag{justify-content:center}
#model .sec-h,#model .sec-b{margin-inline:auto}
.model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:var(--sp-3);text-align:left}
.model-card{background:var(--panel);padding:var(--sp-3) var(--sp-2);transition:background .2s;position:relative;overflow:hidden}
.model-card:hover{background:var(--panel-2)}
.model-card::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:2px;background:repeating-linear-gradient(to bottom,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 11px);opacity:0;transform:scaleY(0);transform-origin:top;transition:opacity .2s,transform .5s var(--ease)}
.model-card:hover::before{opacity:1;transform:scaleY(1)}
.model-k{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-lt);margin-bottom:1rem}
.model-ico{width:40px;height:40px;border-radius:7px;border:1px solid var(--line);background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--accent-lt);margin-bottom:1.1rem}
.model-ico svg{width:18px;height:18px}
.model-t{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.5rem}
.model-b{font-size:.82rem;line-height:1.65;color:var(--text-dim)}

/* S05 categories */
#cats{background:var(--panel)}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:var(--sp-3)}
.cat{background:var(--bg);padding:var(--sp-2);transition:background .25s;position:relative;overflow:hidden}
.cat:hover{background:var(--panel-2)}
.cat-swatch{width:100%;aspect-ratio:16/7;border-radius:6px;background:linear-gradient(135deg,var(--panel-2),var(--accent) 140%);margin-bottom:1rem;position:relative;overflow:hidden}
.cat-swatch::after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 5px,rgba(255,255,255,.03) 5px,rgba(255,255,255,.03) 6px),repeating-linear-gradient(90deg,transparent 0,transparent 5px,rgba(255,255,255,.03) 5px,rgba(255,255,255,.03) 6px)}
.cat:hover .cat-swatch{background:linear-gradient(135deg,var(--panel-2),var(--accent) 100%)}
.cat-t{font-size:.94rem;font-weight:700;color:var(--text);margin-bottom:.2rem}
.cat-b{font-size:.76rem;color:var(--text-faint)}

/* S06 markets — tab regions */
#markets{background:var(--bg)}
.mk-tabs{margin-top:var(--sp-3)}
.mk-tab{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;padding:.6rem 1.1rem;border:1px solid var(--line);border-radius:100px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .2s}
.mk-tab:hover{border-color:var(--text-faint);color:var(--text)}
.mk-tab.act{background:var(--panel-2);border-color:var(--accent-lt);color:var(--accent-lt)}
.mk-panel{margin-top:var(--sp-2);border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:var(--sp-3);position:relative;overflow:hidden}
.mk-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 5px,transparent 5px,transparent 12px);opacity:.6}
.mk-pane{display:none;animation:fup .4s var(--ease)}
.mk-pane.act{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);align-items:start}
.mk-code{font-family:var(--mono);font-size:clamp(1.6rem,1.2rem+1.6vw,2.4rem);color:var(--accent-lt);border:1px solid var(--line);border-radius:7px;padding:.6em .7em;background:var(--bg)}
.mk-t{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:.5rem}
.mk-b{font-size:.86rem;line-height:1.7;color:var(--text-dim);max-width:60ch}
@media(max-width:600px){.mk-pane.act{grid-template-columns:1fr}.mk-code{justify-self:start}}

/* S07 broken — disclosure cards */
#broken{background:var(--panel)}
#broken .sec-tag{justify-content:center}
#broken .sec-h,#broken .sec-b{margin-inline:auto;text-align:center}
.brk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:var(--sp-3)}
.brk{background:var(--bg);transition:background .2s}
.brk[open]{background:var(--panel-2)}
.brk summary{list-style:none;cursor:pointer;padding:var(--sp-2);display:block}
.brk summary::-webkit-details-marker{display:none}
.brk-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.brk-t{font-size:.94rem;font-weight:700;color:var(--text);line-height:1.4;margin-bottom:.45rem;max-width:32ch}
.brk-plus{font-family:var(--mono);color:var(--text-faint);transition:transform .3s,color .3s;flex-shrink:0}
.brk[open] .brk-plus{transform:rotate(45deg);color:var(--gold)}
.brk-b{font-size:.8rem;line-height:1.62;color:var(--text-dim)}
.brk-fix{margin:0 var(--sp-2) var(--sp-2);padding:.9rem 1.1rem;border:1px solid rgba(111,174,126,.3);border-radius:7px;font-family:var(--mono);font-size:.66rem;letter-spacing:.03em;line-height:1.7;color:var(--verify);text-transform:uppercase}

/* S08 personas strip */
#versions{background:var(--bg)}
.ver-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:var(--sp-3)}
.ver{background:var(--panel);padding:var(--sp-2);display:flex;flex-direction:column;transition:background .2s;position:relative;overflow:hidden;text-decoration:none}
.ver:hover{background:var(--panel-2)}
.ver::after{content:'';position:absolute;top:0;left:1rem;right:1rem;height:1px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 4px,transparent 4px,transparent 10px);opacity:0;transition:opacity .3s}
.ver:hover::after{opacity:.7}
.ver-k{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.8rem}
.ver-t{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.45rem;line-height:1.35}
.ver-b{font-size:.78rem;line-height:1.6;color:var(--text-dim);flex:1}
.ver-cta{margin-top:1rem;font-size:.82rem;font-weight:700;color:var(--accent-lt);display:inline-flex;align-items:center;gap:.4rem}
.ver-cta svg{width:13px;height:13px;transition:transform .25s}
.ver:hover .ver-cta svg{transform:translateX(3px)}

/* S09 testimonials */
#quotes{background:var(--panel)}
.qt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-top:var(--sp-3)}
.qt{background:var(--bg);padding:var(--sp-3) var(--sp-2);display:flex;flex-direction:column;transition:background .2s;position:relative;overflow:hidden}
.qt:hover{background:var(--panel-2)}
.qt-mark{font-family:var(--mono);color:var(--gold);font-size:1.2rem;margin-bottom:1rem;opacity:.8}
.qt-b{font-size:.86rem;line-height:1.72;color:var(--text-dim);flex:1}
.qt-b strong{color:var(--text)}
.qt-who{margin-top:1.3rem;padding-top:1rem;border-top:1px dashed var(--line);font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}

/* S10 CTA */
#cta{background:var(--bg);text-align:center;padding-block:var(--sp-5);position:relative;overflow:hidden}
#cta::after{display:none}
.cta-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 50% 60%,var(--gold-glow),transparent 70%);pointer-events:none}
.cta-eye{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp-2)}
.cta-h{font-size:clamp(1.7rem,1.2rem+2.6vw,3.1rem);font-weight:800;letter-spacing:-.028em;line-height:1.14;max-width:20ch;margin:0 auto var(--sp-2);text-wrap:balance}
.cta-h em{font-style:normal;color:var(--accent-lt)}
.cta-sub{font-size:.95rem;line-height:1.75;color:var(--text-dim);max-width:50ch;margin:0 auto var(--sp-3)}
.cta-note{margin-top:var(--sp-2);font-size:.76rem;color:var(--text-faint)}
.cta-note strong{color:var(--text-dim)}
#cta .cta-row{justify-content:center}
@media(max-width:560px){#cta .cta-row{max-width:340px;margin-inline:auto}}

/* footer */
footer{background:var(--panel);border-top:1px solid var(--line);padding-block:var(--sp-4)}
.ft-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--sp-3)}
.ft-h{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:1rem}
.ft-l{display:flex;flex-direction:column;gap:.55rem}
.ft-l a{color:var(--text-dim);text-decoration:none;font-size:.84rem;transition:color .15s;min-height:32px;display:inline-flex;align-items:center}
.ft-l a:hover{color:var(--text)}
.ft-base{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px dashed var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;color:var(--text-faint)}

.cat-swatch{display:none}
