/* Neuro-Blast growth proposal · 1920x1080 scaled stage */
:root{--bg:#111110;--bg2:#141412;--card:#1e1c1a;--line:#2a2724;--gold:#EFB504;--ochre:#B08311;--cream:#FAF8F1;--ink:#EFEBE4;--mut:#b9b4a8;--mut2:#9A9892;--dur:.8s;--stag:100ms;--ez:cubic-bezier(.22,.8,.26,1);--bk:cubic-bezier(.34,1.56,.64,1)}
@media (prefers-reduced-motion:reduce){:root{--dur:.25s;--stag:30ms}}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:#0b0b0a;color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
#wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0b0b0a;overflow:hidden;cursor:pointer}
#stage{width:1920px;height:1080px;flex:none;position:relative;transform-origin:center;background:var(--bg);overflow:hidden;box-shadow:0 0 120px rgba(0,0,0,.8)}
#fx{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity 1.2s}#fx.on{opacity:1}

/* slides */
.slide{position:absolute;inset:0;opacity:0;transform:scale(1.035);visibility:hidden;pointer-events:none;overflow:hidden;background:var(--bg);transition:opacity .7s ease,transform .7s ease,visibility 0s linear .7s}
.slide.on{opacity:1;transform:none;visibility:visible;transition-delay:0s;z-index:2}
.media{position:absolute;inset:0;overflow:hidden}
.media .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1);transition:transform 12s linear}
.slide.on .media .bg{transform:scale(1.05)}
.motion{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}
.motion.ready{opacity:1}.motion.dead{display:none}
.scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,16,.92) 0,rgba(17,17,16,.82) 28%,rgba(17,17,16,.42) 47%,rgba(17,17,16,0) 60%),linear-gradient(0deg,rgba(17,17,16,.6) 0,rgba(17,17,16,0) 16%)}
.c{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:90px 0 120px 120px;max-width:1040px}
.c.mid{max-width:1260px}
.c.wide{max-width:none;padding:80px 120px 120px}
.ft{position:absolute;left:120px;bottom:40px;z-index:2;font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut2)}

/* type */
.eb{display:flex;align-items:center;gap:18px;font-size:22px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.eb::before{content:"";width:56px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left}
.slide.on .eb::before{animation:draw .7s var(--ez) both .15s}
h1{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;font-size:128px;line-height:.94;letter-spacing:.012em;color:var(--cream);margin-top:28px}
h1.xl{font-size:140px}
.ln{display:block;clip-path:inset(0 100% 0 0);opacity:0}
.slide.on .ln{animation:wipe .9s var(--ez) both;animation-delay:calc(var(--i,0)*110ms + .1s)}
.g{color:var(--gold)}
.sub{font-size:32px;line-height:1.35;color:var(--ink);margin-top:30px;max-width:900px}
.fda{font-size:22px;line-height:1.35;color:var(--mut2);margin-top:44px;max-width:860px}
.note,.muted{font-size:22px;line-height:1.4;color:var(--mut);margin-top:28px}
.note{font-style:italic}
.logo{height:124px;width:auto;align-self:flex-start;margin:28px 0 12px -10px;border-radius:10px}
#hint{position:absolute;right:120px;bottom:44px;z-index:2;font-size:24px;color:var(--mut);letter-spacing:.06em;transition:opacity .6s}
#hint span{color:var(--gold);font-weight:700;font-size:28px;display:inline-block;animation:nudge 1.6s ease-in-out infinite}
#hint.gone{opacity:0!important;visibility:hidden;transition:opacity .6s,visibility 0s .6s}

/* enter animations */
.in{opacity:0}
.slide.on .in{animation:rise var(--dur) var(--ez) both;animation-delay:calc(var(--i,0)*var(--stag) + .15s)}
.tile,.card,.flow li,.path li{opacity:0}
.slide.on .tile,.slide.on .card{animation:fly var(--dur) var(--ez) both;animation-delay:calc(var(--i,0)*110ms + .55s)}
.slide.on .flow li,.slide.on .path li{animation:slidex var(--dur) var(--ez) both;animation-delay:calc(var(--i,0)*110ms + .55s)}

/* cards and tiles */
.tiles{display:grid;gap:22px;margin-top:40px}
.t2{grid-template-columns:1fr 1fr}.t3{grid-template-columns:repeat(3,1fr)}
.tile,.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 28px}
.tile .k{display:block;font-style:normal;font-size:22px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.tile>b{display:block;font-family:Oswald,sans-serif;font-weight:600;font-size:30px;line-height:1.15;color:var(--cream);margin-bottom:10px}
.tile p{font-size:24px;line-height:1.35;color:var(--mut)}
.tile .big{font-family:"Bebas Neue",sans-serif;font-weight:400;font-size:88px;line-height:1;color:var(--gold);margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.chips span{font-size:22px;font-weight:500;color:var(--gold);border:1px solid rgba(239,181,4,.55);border-radius:999px;padding:8px 20px}
.chips span.hot{background:var(--gold);color:var(--bg2);border-color:var(--gold);font-weight:700}


/* slide 06 product cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.card{display:flex;flex-direction:column;padding:30px 30px 26px;min-height:300px}
.card i{font-style:normal;font-size:22px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.card b{font-family:Oswald,sans-serif;font-weight:600;font-size:34px;line-height:1.1;color:var(--cream);margin:14px 0 12px}
.card p{font-size:24px;line-height:1.35;color:var(--mut)}
.card em{font-style:normal;font-family:"Bebas Neue",sans-serif;font-size:72px;line-height:1;color:var(--gold);margin-top:auto;padding-top:20px}
.card.gold{background:var(--gold);border-color:var(--gold);box-shadow:0 30px 80px rgba(239,181,4,.25)}
.card.gold i{color:rgba(20,20,18,.7)}.card.gold b,.card.gold em{color:var(--bg2)}.card.gold p{color:#3a3220}

/* slide 07 proof */
.proof{display:flex;align-items:center;gap:26px;margin-top:30px}
.proof>b{font-family:"Bebas Neue",sans-serif;font-weight:400;font-size:150px;line-height:.9;color:var(--gold)}
.proof .arr{font-style:normal;font-family:"Bebas Neue",sans-serif;font-size:110px;line-height:1;color:var(--cream)}
.stars{display:flex;gap:6px}
.stars svg{width:58px;height:58px;fill:var(--gold);filter:drop-shadow(0 0 12px rgba(239,181,4,.6));opacity:0;transform:scale(.2)}
.slide.on .stars svg{animation:pop .6s var(--bk) both;animation-delay:calc(var(--i)*110ms + 1s)}
.proof em{font-style:normal;font-size:26px;color:var(--ink);max-width:460px;line-height:1.25;margin-left:10px}

/* slide 09 streams */
.streams{width:1000px;height:360px;margin-top:30px;overflow:visible}
.streams .src text{font-size:26px;fill:var(--ink);text-anchor:end;opacity:0}
.slide.on .streams .src text{animation:rise .7s var(--ez) both;animation-delay:calc(var(--i)*110ms + .6s)}
.streams .paths path{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85}
.slide.on .streams .paths path{animation:dash 1.3s var(--ez) both;animation-delay:calc(var(--i)*120ms + .9s)}
.streams .dots circle{fill:var(--gold);opacity:0}
.slide.on .streams .dots circle{animation:pop .5s var(--bk) both;animation-delay:calc(var(--i)*110ms + .7s)}
.streams .node circle{fill:var(--gold);opacity:0;transform-origin:870px 180px}
.streams .node .ring{fill:none;stroke:rgba(239,181,4,.45);stroke-width:1.5}
.slide.on .streams .node circle{animation:pop .8s var(--bk) both 1.9s}
.streams .node text{font-family:Oswald,sans-serif;font-weight:600;font-size:34px;fill:var(--bg2);text-anchor:middle;text-transform:uppercase;letter-spacing:.04em;opacity:0}
.streams .node text.s{font-family:"DM Sans",sans-serif;font-weight:500;font-size:22px;fill:var(--mut);text-transform:none;letter-spacing:.02em}
.slide.on .streams .node text{animation:rise .6s var(--ez) both 2.3s}

.flow{list-style:none;position:relative;padding-left:46px}
.flow::before{content:"";position:absolute;left:9px;top:14px;bottom:14px;width:2px;background:rgba(239,181,4,.3)}
.flow li{position:relative;padding:8px 0}
.flow li::before{content:"";position:absolute;left:-46px;top:20px;width:20px;height:20px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px var(--bg2)}
.flow b{display:block;font-family:Oswald,sans-serif;font-weight:600;font-size:30px;color:var(--cream);line-height:1.15}
.flow span{display:block;font-size:22px;color:var(--mut);margin-top:3px}



/* slide 14 gold CTA */
.slide.gold{background:var(--gold);color:var(--bg2)}
.slide.gold .media .bg{background-color:var(--gold)}
.slide.gold .eb{color:var(--bg2)}.slide.gold .eb::before{background:var(--bg2)}
.slide.gold h1{color:var(--bg2)}.slide.gold .ln.w{color:var(--bg2);text-shadow:none}.slide.gold .ln.g{color:var(--cream);text-shadow:0 2px 24px rgba(20,20,18,.45)}
.path{list-style:none;margin-top:36px}
.path li{display:grid;grid-template-columns:74px 1fr;gap:22px;align-items:center;padding:12px 0}
.path i{font-style:normal;width:64px;height:64px;border-radius:50%;background:var(--bg2);color:var(--gold);font-family:"Bebas Neue",sans-serif;font-size:36px;display:grid;place-items:center;padding-top:3px}
.path b{display:block;font-family:Oswald,sans-serif;font-weight:600;font-size:32px;line-height:1.1;color:var(--bg2)}
.path span{display:block;font-size:24px;color:#3a3220;margin-top:3px}
.close{font-family:"Bebas Neue",sans-serif;font-size:64px;line-height:1;color:var(--bg2);margin-top:28px}
.close b{color:var(--cream);font-weight:400}
.s01 .c{padding-bottom:140px}

/* ui */
#ui{position:fixed;inset:0;pointer-events:none;z-index:20;transition:opacity .5s}
#prog{position:absolute;top:0;left:0;height:4px;width:0;background:var(--gold);box-shadow:0 0 12px rgba(239,181,4,.8);transition:width .6s var(--ez)}
#dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:9px;pointer-events:auto;transition:opacity .5s}
.dot{width:9px;height:9px;border-radius:5px;background:rgba(239,181,4,.3);border:0;padding:0;transition:all .4s var(--ez)}
.dot.on{width:30px;background:var(--gold);box-shadow:0 0 10px rgba(239,181,4,.7)}
#cnt{position:absolute;right:18px;bottom:12px;display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.1em;color:rgba(250,248,241,.55);pointer-events:auto;transition:opacity .5s}
#cnt b{color:var(--gold)}
#fs{font-size:18px;opacity:.7;padding:4px 6px}#fs:hover{opacity:1}
body.idle #cnt,body.idle #dots{opacity:.25}
#rot{display:none;position:fixed;inset:0;z-index:30;background:rgba(17,17,16,.96);color:var(--cream);flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:30px;font-size:16px}
#rot b{font-family:Oswald,sans-serif;font-weight:600;font-size:24px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold)}
#rot span{color:var(--mut);max-width:260px;line-height:1.4}
#rot .ph{width:46px;height:80px;border:3px solid var(--gold);border-radius:10px;animation:rotph 2.2s ease-in-out infinite}
@media (orientation:portrait) and (max-width:900px){#rot{display:flex}}
#rot.off{display:none}
body.lite .media .bg{animation:none;transition:none;transform:none}

/* keyframes */
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes wipe{from{clip-path:inset(0 100% 0 0);opacity:0;transform:translateY(18px)}to{clip-path:inset(0 -2% 0 0);opacity:1;transform:none}}
@keyframes fly{from{opacity:0;transform:translateY(44px) scale(.96)}to{opacity:1;transform:none}}
@keyframes slidex{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes dash{to{stroke-dashoffset:0}}
@keyframes drift{from{left:4%}to{left:96%}}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes rotph{0%,20%{transform:rotate(0)}60%,100%{transform:rotate(90deg)}}
@media (prefers-reduced-motion:reduce){#hint span,#rot .ph{animation:none}.slide.on .media .bg{transform:none}.slide{transition-duration:.3s}}
/* inline count-up spans keep their parent's type */
span.num{display:inline;font:inherit;color:inherit;margin:0;line-height:inherit;letter-spacing:inherit}
/* v2 */
.num.g,.ln .num.g{color:var(--gold)}
.chips.lg span{font-size:36px;font-weight:700;padding:16px 36px;letter-spacing:.04em}
.path li{grid-template-rows:auto auto;column-gap:22px;row-gap:0;align-items:center}
.path i{grid-row:1/3;align-self:center}
.path b,.path span{grid-column:2}
.slide.gold .fda{color:#3a3220;margin-top:30px;max-width:880px}
.slide.gold .ft{color:rgba(20,20,18,.6)}
.s11 .c{padding-top:40px;max-width:1140px}
.flow{margin-top:34px}
.flow+.chips{margin-top:28px}
.tiles+.chips{margin-top:28px}
.chips+.note{margin-top:18px}
