
:root{--bg:#0e1320;--bg2:#141b2c;--card:#182034;--line:#26314a;--tx:#eef2fa;--mu:#9aa6c0;--cy:#22d3ee;--pu:#a855f7;--co:#fb7185;--grad:linear-gradient(120deg,#22d3ee,#a855f7 55%,#fb7185);color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:84px;scroll-behavior:smooth;height:100%;overflow-x:hidden;max-width:100%}
*{box-sizing:border-box}
body{margin:0;min-height:100%;background:var(--bg);color:var(--tx);font:16px/1.65 Manrope,system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden;max-width:100%}
h1,h2,h3{font-family:Sora,Manrope,system-ui,sans-serif;line-height:1.15;margin:0;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cy);outline-offset:3px}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(14,19,32,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:11px;font:600 17px Sora,sans-serif}
.brand img{width:44px;height:44px;border-radius:11px}
nav{display:flex;align-items:center;gap:6px}
nav a,.dd>span{padding:9px 14px;border-radius:9px;color:var(--mu);font-weight:500;cursor:pointer;font-size:15px}
nav a:hover,.dd:hover>span,nav a.on{color:var(--tx);background:var(--bg2)}
.dd{position:relative}
.dd .menu{display:none;position:absolute;top:100%;left:0;width:260px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.45)}
.dd:hover .menu,.dd:focus-within .menu{display:block}
.menu a{display:block;color:var(--tx)}
nav .cta,.btn{background:var(--grad);color:#0b1020;font-weight:600;padding:12px 22px;border-radius:999px;border:0;cursor:pointer;font-size:15px;display:inline-block}
nav .cta:hover{background:var(--grad);color:#0b1020;filter:brightness(1.1)}
.btn.ghost{background:transparent;color:var(--tx);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--cy)}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--tx);border-radius:9px;padding:8px 12px;font-size:18px;cursor:pointer}
.hero{padding:76px 0 60px;background:radial-gradient(700px 380px at 85% 10%,rgba(168,85,247,.22),transparent),radial-gradient(600px 340px at 5% 0,rgba(34,211,238,.14),transparent)}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
h1{font-size:clamp(34px,5.2vw,62px);font-weight:700}
.g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{color:var(--mu);font-size:18px;max-width:560px;margin:22px 0 30px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.logo-card{border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px rgba(168,85,247,.22)}
.logo-card img{display:block;width:100%}
.flow{display:flex;flex-wrap:wrap;gap:0;margin-top:44px;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.flow div{flex:1 1 150px;padding:18px 16px;background:var(--bg2);border-right:1px solid var(--line)}
.flow div:last-child{border:0}
.flow b{font:600 15px Sora;display:block}
.flow span{color:var(--mu);font-size:13.5px}
section{padding:72px 0}
.sec-h{max-width:640px;margin-bottom:38px}
.sec-h h2{font-size:clamp(28px,3.6vw,42px)}
.sec-h p{color:var(--mu);margin:14px 0 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(310px,100%),1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;display:block}
a.card:hover{border-color:var(--pu)}
.card h3{font-size:20px;margin-bottom:10px}
.card p{color:var(--mu);margin:0;font-size:15px}
.cat .n{font:600 13px Sora;color:var(--cy)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips a{font-size:13.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--mu)}
.chips a:hover{color:var(--tx);border-color:var(--cy)}
.alt{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.crumb{color:var(--mu);font-size:14px;margin-bottom:18px}
.crumb a:hover{color:var(--cy)}
.page-h{padding:64px 0 24px;background:radial-gradient(600px 300px at 90% 0,rgba(168,85,247,.18),transparent)}
.page-h h1{font-size:clamp(32px,4.6vw,54px)}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.steps div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
.steps div:before{counter-increment:s;content:counter(s);font:700 22px Sora;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.steps b{display:block;font-family:Sora}
.steps span{color:var(--mu);font-size:14px}
.band{margin:0 0 72px;padding:46px;border-radius:24px;background:linear-gradient(120deg,rgba(34,211,238,.16),rgba(168,85,247,.2),rgba(251,113,133,.16));border:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.band h2{font-size:clamp(24px,3vw,34px);max-width:560px}
form{display:grid;gap:14px;max-width:640px}
label{font-weight:600;font-size:14px;display:grid;gap:6px}
input,select,textarea{background:var(--bg2);border:1px solid var(--line);border-radius:11px;color:var(--tx);padding:13px 14px;font:inherit;width:100%;min-width:0}
form{min-width:0}
.out{white-space:pre-wrap;background:var(--bg2);border:1px dashed var(--pu);border-radius:12px;padding:16px;color:var(--mu);display:none;max-width:640px;margin-top:16px}
footer{border-top:1px solid var(--line);padding:52px 0 30px;background:var(--bg2)}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
footer h4{margin:0 0 12px;font:600 15px Sora}
footer a{display:block;color:var(--mu);font-size:14.5px;padding:3px 0}
footer a:hover{color:var(--cy)}
.copy{margin-top:34px;color:var(--mu);font-size:13.5px}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}.logo-card{max-width:360px}.fg{grid-template-columns:1fr}.burger{display:block}
nav{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--bg);padding:12px 22px 20px;border-bottom:1px solid var(--line)}
nav.open{display:flex}.dd .menu{display:block;position:static;width:auto;border:0;box-shadow:none;background:none;padding:0 0 0 10px}.dd>span{display:none}.band{padding:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

:root{--a:#22d3ee;--b:#a855f7}
.ban{position:relative;overflow:hidden;padding:72px 0 64px;background:linear-gradient(160deg,#0e1320 40%,color-mix(in srgb,var(--a) 14%,#0e1320))}
.gridbg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(circle at 70% 40%,#000,transparent 70%);mask-image:radial-gradient(circle at 70% 40%,#000,transparent 70%)}
.orb,.page-h:before{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:drift 14s ease-in-out infinite alternate}
.o1{width:380px;height:380px;background:var(--a);top:-120px;right:8%}
.o2{width:320px;height:320px;background:var(--b);bottom:-140px;left:30%;animation-delay:-5s}
.o3{width:220px;height:220px;background:var(--co);top:30%;left:-60px;opacity:.25;animation-delay:-9s}
.page-h{position:relative;overflow:hidden}.page-h:before{content:'';width:420px;height:420px;background:var(--a);right:5%;top:-200px;opacity:.28}
@keyframes drift{to{transform:translate(50px,40px) scale(1.15)}}
.ban-in{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center}
.ban-in>div:first-child>*{animation:rise .8s both}.ban-in>div:first-child>:nth-child(2){animation-delay:.12s}.ban-in>div:first-child>:nth-child(3){animation-delay:.24s}.ban-in>div:first-child>:nth-child(4){animation-delay:.36s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}}
.art{position:relative}.scene{width:100%;display:block;animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-12px)}}
.pane{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.2)}
.draw{stroke-dasharray:400;stroke-dashoffset:400;animation:dr 2.4s .5s forwards}@keyframes dr{to{stroke-dashoffset:0}}
.ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:15px;background:linear-gradient(140deg,var(--a),var(--b));color:#0b1020;margin-bottom:16px}
.ic svg{width:26px;height:26px}
.ic.big{position:absolute;right:-6px;top:-20px;width:76px;height:76px;border-radius:22px;margin:0;animation:bob 5s -2s ease-in-out infinite;box-shadow:0 18px 40px rgba(0,0,0,.4)}.ic.big svg{width:38px;height:38px}
.logo-card{animation:bob 7s ease-in-out infinite}
.g{background-size:200% 100%;animation:shine 6s linear infinite}@keyframes shine{to{background-position:200% 0}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s,border-color .3s,box-shadow .3s}.reveal.in{opacity:1;transform:none}
a.card:hover,.card.cat:hover{transform:translateY(-6px);border-color:var(--a);box-shadow:0 24px 50px -20px var(--a)}
.thumb{margin:-26px -26px 20px;padding:16px 30px;border-radius:18px 18px 0 0;background:linear-gradient(140deg,color-mix(in srgb,var(--a) 30%,#0e1320),color-mix(in srgb,var(--b) 26%,#0e1320))}
.thumb .scene{height:150px;animation:none}
.two>.thumb{margin:0;border-radius:24px;padding:26px}.two>.thumb .scene{height:auto;animation:bob 6s ease-in-out infinite}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}.lp{color:var(--mu);font-size:17px}
.mq{overflow:hidden;border-block:1px solid var(--line);background:var(--bg2);padding:16px 0}
.mq div{display:flex;gap:14px;width:max-content;animation:mq 60s linear infinite}.mq:hover div{animation-play-state:paused}
.mq a{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;color:var(--mu);font-size:14px;white-space:nowrap}.mq a:hover{color:var(--tx);border-color:var(--cy)}
.mq svg{width:16px;height:16px;color:var(--cy)}@keyframes mq{to{transform:translateX(-50%)}}
.btn{position:relative;overflow:hidden}.btn:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.45),transparent 70%);transform:translateX(-120%);transition:transform .7s}.btn:hover:after{transform:translateX(120%)}
.steps div{position:relative}.steps div:before{position:absolute;right:14px;top:10px;opacity:.5}.steps .ic{margin-bottom:12px}.steps b{margin-bottom:2px}
details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 22px;margin-bottom:12px}
summary{cursor:pointer;font:600 17px Sora,sans-serif}details p{color:var(--mu);margin:12px 0 0}details[open]{border-color:var(--pu)}
.card .ic{margin-bottom:16px}
@media(max-width:860px){.ban-in,.two{grid-template-columns:1fr}.art{max-width:420px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.draw{stroke-dashoffset:0}}

header{position:fixed;left:0;right:0;top:0;background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;transition:background .3s,border-color .3s}
header.sc{background:rgba(14,19,32,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-color:var(--line)}
#pb{position:fixed;top:0;left:0;height:3px;background:var(--grad);z-index:50;width:0}
.ban{padding:150px 0 100px;background:linear-gradient(90deg,rgba(9,13,26,.94),rgba(9,13,26,.62) 60%,rgba(9,13,26,.3)),var(--im) center/cover}
.ban:after{content:'';position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(transparent,var(--bg))}
.ban.home{min-height:94vh;display:flex;align-items:center}.ban-in{width:100%}
.ban h1{font-size:clamp(38px,6vw,78px);letter-spacing:-.035em}.ban .lead{font-size:19px}
.ban-in>div:first-child>h1{animation:blurin 1.1s .1s both}
@keyframes blurin{from{opacity:0;filter:blur(16px);transform:translateY(26px)}}
.page-h{padding-top:130px}
.glass{background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.18);border-radius:26px;padding:28px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.glass b{display:block;font:600 18px Sora,sans-serif;margin-bottom:8px}
.li{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid rgba(255,255,255,.1);font-size:15px}.li svg{width:18px;height:18px;color:var(--a);flex:none}a.li:hover span{color:var(--a)}
.fchip{position:absolute;display:flex;gap:8px;align-items:center;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font:600 14px Sora,sans-serif;animation:bob 5s ease-in-out infinite}
.fchip svg{width:18px;height:18px;color:var(--a)}.c1{left:-18px;top:10%}.c2{right:-10px;top:46%;animation-delay:-2s}.c3{left:8%;bottom:-14px;animation-delay:-3.5s}
.tilt{transition:transform .25s}
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.tile{position:relative;overflow:hidden;isolation:isolate;border-radius:26px;min-height:360px;display:flex;align-items:flex-end;border:1px solid var(--line)}
.tile:before{content:'';position:absolute;inset:0;z-index:-2;background:var(--im) center/cover;transition:transform 1.2s}.tile:hover:before{transform:scale(1.1)}
.tile:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,12,24,.05),rgba(8,12,24,.95) 80%)}
.tin{padding:28px}.tin h3{font-size:26px}.tin p{margin:8px 0;color:#cbd5ea}.tin small{color:var(--mu);font-size:13px;line-height:1.7;display:block}
.go{position:absolute;top:22px;right:22px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:.4s}.go svg{width:20px;height:20px}
.tile:hover .go{background:var(--a);color:#0b1020;transform:rotate(45deg)}
.stmt{font:600 clamp(26px,4vw,50px)/1.2 Sora,sans-serif;letter-spacing:-.025em;max-width:980px}
.tl{display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.tl:before{content:'';position:absolute;top:34px;left:10%;right:10%;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform 1.8s}.tl.in:before{transform:scaleX(1)}
.tl>div{text-align:center;padding:0 10px;position:relative}.tl .ic{width:68px;height:68px;margin:0 auto 14px;box-shadow:0 0 0 9px var(--bg)}.alt .tl .ic{box-shadow:0 0 0 9px var(--bg2)}.tl b{display:block;font-family:Sora}.tl span{color:var(--mu);font-size:14px}
.card{position:relative;overflow:hidden}.card:before{content:'';position:absolute;inset:0;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0),rgba(255,255,255,.09),transparent 45%);opacity:0;transition:.3s;pointer-events:none}.card:hover:before{opacity:1}
.side{display:grid;grid-template-columns:1fr 360px;gap:44px;align-items:start}.side aside{position:sticky;top:96px}
.band2{min-height:300px;border-radius:30px;display:flex;align-items:center;padding:46px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(8,12,24,.85),rgba(8,12,24,.1)),var(--im) center/cover}.band2 h2{font-size:clamp(26px,3.6vw,44px);max-width:560px}
.bigcta{margin:0 0 72px;padding:76px 48px;border-radius:32px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(8,12,24,.88),rgba(8,12,24,.3)),var(--im) center/cover}.bigcta h2{font-size:clamp(28px,4vw,50px);max-width:640px;margin-bottom:26px}
.fade{animation:fin .6s}@keyframes fin{from{opacity:0}}
@media(max-width:860px){.bento{grid-template-columns:1fr}.tile{grid-column:auto!important}.side{grid-template-columns:1fr}.side aside{position:static}.tl{grid-template-columns:1fr;gap:26px}.tl:before{display:none}.ban{padding-top:120px}.fchip{display:none}}
.im0{--im:url(/assets/img/im0.webp)}.im1{--im:url(/assets/img/im1.webp)}.im2{--im:url(/assets/img/im2.webp)}.im3{--im:url(/assets/img/im3.webp)}.im4{--im:url(/assets/img/im4.webp)}.im5{--im:url(/assets/img/im5.webp)}
.ban{background:linear-gradient(90deg,rgba(9,13,26,.84),rgba(9,13,26,.4) 60%,rgba(9,13,26,.1)),var(--im) center/cover}
.wa{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;background:#25d366;color:#052e16;font-weight:700;padding:13px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.4)}

/* ===== v2 enhancements ===== */
header{transition:background .3s,border-color .3s,transform .35s}
header.hh{transform:translateY(-100%)}
#app:focus{outline:0}
::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}

/* search palette */

/* goal planner */
.goals{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.goals button{font:600 15px Manrope,sans-serif;padding:11px 18px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--mu);cursor:pointer;transition:.25s}
.goals button:hover{color:var(--tx);border-color:var(--cy)}
.goals button[aria-pressed=true]{color:#0b1020;background:var(--grad);border-color:transparent}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:16px}
.picks .card{padding:22px;animation:rise .5s both}
.picks .card h3{font-size:18px}
.pl-cta{margin-top:26px}

/* mega menu */
@media(min-width:861px){
.bar{position:relative}.dd{position:static}
.dd .menu.mega{left:auto;right:22px;width:min(900px,calc(100vw - 44px));padding:22px;grid-template-columns:repeat(3,1fr);gap:20px 26px}
.dd:hover .menu.mega,.dd:focus-within .menu.mega{display:grid}
.dd .menu.mega:before{content:'';position:absolute;left:0;right:0;top:-20px;height:20px}
.mg>a{font:600 15px Sora,sans-serif;padding:6px 10px}
.mg .sv{padding:5px 10px;font-size:14px;color:var(--mu);border-radius:8px}
.mg .sv:hover{color:var(--tx);background:var(--bg2)}
}

/* form states + toast */
label .er{color:var(--co);font-weight:500;font-size:13px}
input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--co)}
.ok{max-width:640px;margin-top:18px;padding:22px;border-radius:16px;border:1px solid var(--pu);background:var(--bg2)}
.ok:focus{outline:0}
.ok h3{font-size:20px;margin-bottom:8px}.ok p{color:var(--mu);margin:0}
.ok pre{white-space:pre-wrap;font:inherit;color:var(--tx);margin:14px 0;padding:14px;border-radius:12px;background:var(--bg)}
.btn:disabled{opacity:.6;cursor:progress}
.ts{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:70;padding:11px 18px;border-radius:999px;background:var(--card);border:1px solid var(--cy);font-weight:600;animation:rise .3s both}

/* ===== v3 visual layer ===== */
.ban:before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(520px circle at var(--sx,72%) var(--sy,30%),rgba(168,85,247,.32),rgba(34,211,238,.10) 45%,transparent 70%)}
.pcv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.9}
.ban.home .art{transform:translateY(calc(var(--py,0)*-.12px))}
.tile:before{animation:kb 20s ease-in-out infinite alternate}
@keyframes kb{to{transform:scale(1.12) translate(-1.5%,-1%)}}
.tile.in{transition:transform .18s ease-out,opacity .7s,box-shadow .35s,border-color .3s;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.tile .tin{transform:translateZ(0)}
.tile:hover{border-color:var(--a);box-shadow:0 34px 80px -34px var(--a)}
.tile:hover:after{background:linear-gradient(180deg,color-mix(in srgb,var(--a) 14%,transparent),rgba(8,12,24,.94) 78%)}
.tile:before{filter:saturate(1.15) contrast(1.05)}
.btn,nav .cta{transition:transform .2s ease-out,filter .2s}
.sec-h h2{background:linear-gradient(120deg,var(--tx) 40%,color-mix(in srgb,var(--cy) 60%,var(--tx)));-webkit-background-clip:text;background-clip:text;color:transparent}
.mq div{animation-duration:45s}
.picks .card:nth-child(2){animation-delay:.07s}.picks .card:nth-child(3){animation-delay:.14s}.picks .card:nth-child(4){animation-delay:.21s}
@media(prefers-reduced-motion:reduce){.tile:before{animation:none}.pcv{display:none}}

/* ===== v4 animation layer ===== */
.wd{display:inline-block;animation:wd .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i)*95ms + 180ms)}
@keyframes wd{from{opacity:0;transform:translateY(.55em) rotate(3deg);filter:blur(12px)}}
h1[data-s]{animation:none!important}
.splash{position:fixed;inset:0;z-index:90;display:grid;place-items:center;align-content:center;gap:22px;background:var(--bg);pointer-events:none;transition:opacity .6s,visibility .6s}
.splash.out{opacity:0;visibility:hidden}
.splash img{width:112px;height:112px;border-radius:28px;animation:sp 1.1s ease-out both}
.splash i{display:block;width:140px;height:3px;border-radius:3px;background:var(--line);overflow:hidden;position:relative}
.splash i:after{content:'';position:absolute;inset:0;background:var(--grad);transform:translateX(-100%);animation:sl 1s .1s ease-in-out forwards}
@keyframes sp{from{opacity:0;transform:scale(.6) rotate(-8deg)}60%{transform:scale(1.06)}}
@keyframes sl{to{transform:none}}
.cd,.cr{position:fixed;left:0;top:0;z-index:80;pointer-events:none;border-radius:50%;opacity:0;transition:opacity .3s}
.cd{width:7px;height:7px;background:var(--cy);margin:-3.5px 0 0 -3.5px}
.cr{width:38px;height:38px;margin:-19px 0 0 -19px;border:1.5px solid rgba(168,85,247,.7);transition:opacity .3s,width .25s,height .25s,margin .25s,background .25s}
.cr.h{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(168,85,247,.16)}
.cd.v,.cr.v{opacity:1}
@keyframes pop{from{opacity:0;transform:scale(.4)}65%{transform:scale(1.12)}}
.tl.in .ic{animation:pop .7s both}
.tl.in>div:nth-child(2) .ic{animation-delay:.35s}.tl.in>div:nth-child(3) .ic{animation-delay:.7s}.tl.in>div:nth-child(4) .ic{animation-delay:1.05s}.tl.in>div:nth-child(5) .ic{animation-delay:1.4s}
.tl>div b,.tl>div span:not(.ic){transition:opacity .6s}

/* ===== v5 typography layer ===== */
#app{counter-reset:s}
.sec-h{counter-increment:s;position:relative;padding-bottom:24px}
.sec-h:before{content:counter(s,decimal-leading-zero);display:block;margin-bottom:14px;font:700 13px Sora,sans-serif;letter-spacing:.22em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content}
.sec-h:after{content:'';position:absolute;left:0;bottom:0;height:3px;width:0;border-radius:3px;background:var(--grad);transition:width 1.1s .5s cubic-bezier(.2,.75,.2,1)}
.sec-h.hv:after{width:84px}
.sec-h h2,.bigcta h2,.reveal>h2{font-size:clamp(30px,4.4vw,60px);line-height:1.08;letter-spacing:-.025em}
.sec-h h2{background:none;-webkit-text-fill-color:currentColor;color:var(--tx)}
.hm{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.hi{display:inline-block;transform:translateY(118%) rotate(5deg);transform-origin:left bottom;transition:transform .95s cubic-bezier(.2,.75,.2,1);transition-delay:calc(var(--i)*75ms)}
h2.hv .hi{transform:none}
.sec-h .hm:last-child .hi{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.stmt{max-width:1120px;font:600 clamp(28px,4.2vw,56px)/1.18 Sora,sans-serif;letter-spacing:-.022em}
.stmt:before{content:'';display:block;width:64px;height:3px;border-radius:3px;background:var(--grad);margin-bottom:30px}
.sw{opacity:.2;transition:opacity .45s,color .45s}
.sw.on{opacity:1}
.bm{overflow:hidden;padding:8px 0;margin:56px 0 -6px;user-select:none;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.bm div{display:flex;gap:.6em;white-space:nowrap;font:700 clamp(30px,5.6vw,84px)/1.25 Sora,sans-serif;letter-spacing:-.02em;-webkit-text-stroke:1.2px rgba(255,255,255,.16);color:transparent;transform:translateX(calc(var(--bm,0)*-.3px));will-change:transform}
.bm div+div{margin-top:2px;transform:translateX(calc(var(--bm,0)*.22px - 30%));-webkit-text-stroke-color:rgba(34,211,238,.3)}
.bm b{-webkit-text-stroke:0;color:var(--pu);padding:0 .1em;font-weight:400;font-size:.7em}
@media(prefers-reduced-motion:reduce){.hi{transform:none}.sw{opacity:1}}

/* ===== v6 portfolio layer ===== */
.pf-f{margin-top:6px}
.pf-c .tag{display:inline-block;font:700 11px Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--a);margin-bottom:10px}
.pf-c h3{font-size:19px}

/* ===== v7 home additions ===== */
.sub{color:var(--mu);font:600 15px Manrope,sans-serif;letter-spacing:.02em;margin:-6px 0 22px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px;text-align:center}
.stats div{padding:28px 14px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.stats b{display:block;font:800 40px Sora,sans-serif;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stats span{display:block;margin-top:8px;color:var(--mu);font-size:14px}
