:root{
  --bg:#070A1F;--bg2:#0D1231;--panel:rgba(22,29,68,.55);--line:rgba(150,170,255,.16);
  --text:#EAEEFB;--muted:#8D94B8;--ice:#7FE7FF;--violet:#9A86FF;--amber:#FFB35C;
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --pad:clamp(20px,5vw,72px);
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#070A1F;--bg2:#0D1231;--text:#EAEEFB;--muted:#8D94B8}}
:root[data-theme="dark"]{--bg:#070A1F;--bg2:#0D1231;--text:#EAEEFB;--muted:#8D94B8}
:root[data-theme="light"]{--bg:#F3F5FC;--bg2:#E6EAF8;--panel:rgba(255,255,255,.7);--line:rgba(40,50,120,.14);--text:#0D1230;--muted:#586089;--ice:#0089A8;--violet:#5B46E0;--amber:#B35F00;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--violet);color:#fff}
:focus-visible{outline:2px solid var(--ice);outline-offset:4px;border-radius:6px}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;letter-spacing:-.01em}
h2{font-size:clamp(28px,3.4vw,46px)}
p{margin:0}
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--pad)}
section{position:relative}
.muted{color:var(--muted)}

/* progress + cursor */
.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--ice),var(--violet));z-index:60;padding-top:0}
.cursor{position:fixed;top:0;left:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--ice);border-radius:50%;pointer-events:none;z-index:70;opacity:0;transition:width .3s,height .3s,margin .3s,background .3s,opacity .3s;mix-blend-mode:difference}
.cursor.on{opacity:1}
.cursor.big{width:76px;height:76px;margin:-38px 0 0 -38px;background:rgba(127,231,255,.15)}
@media (pointer:coarse){.cursor{display:none}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .4s,backdrop-filter .4s}
.nav.solid{background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:.06em;text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.logo i{width:8px;height:8px;border-radius:50%;background:var(--ice);box-shadow:0 0 14px var(--ice);animation:pulse 2.4s ease-in-out infinite}
.logo .wm{font-style:normal;display:inline-flex}
.logo span{display:inline-block;transition:transform .35s cubic-bezier(.3,1.6,.5,1),color .35s}
.logo:hover span{transform:translateY(-4px);color:var(--ice)}
.logo:hover span:nth-child(2){transition-delay:.03s}.logo:hover span:nth-child(3){transition-delay:.06s}.logo:hover span:nth-child(4){transition-delay:.09s}.logo:hover span:nth-child(5){transition-delay:.12s}.logo:hover span:nth-child(6){transition-delay:.15s}.logo:hover span:nth-child(7){transition-delay:.18s}.logo:hover span:nth-child(8){transition-delay:.21s}
@keyframes pulse{50%{opacity:.35}}
.links{display:flex;gap:26px;font-size:15px}
.links a{text-decoration:none;color:var(--muted);position:relative;transition:color .3s}
.links a::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:100%;background:var(--ice);transform:scaleX(0);transform-origin:right;transition:transform .4s}
.links a:hover{color:var(--text)}.links a:hover::after{transform:scaleX(1);transform-origin:left}
@media (max-width:860px){.links{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid var(--line);position:relative;overflow:hidden;isolation:isolate;transition:border-color .3s,color .3s;will-change:transform}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,var(--ice),var(--violet));transform:translateY(101%);transition:transform .45s cubic-bezier(.7,0,.2,1)}
.btn:hover::before{transform:none}
.btn:hover{color:#070A1F;border-color:transparent}
.btn.primary{background:var(--amber);color:#1a0f00;border-color:transparent}
.btn.primary::before{background:#fff}
.btn.sm{padding:10px 18px;font-size:14px}

/* hero */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden}
#gl{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(34% 50% at 76% 55%,rgba(154,134,255,.20),transparent 70%),radial-gradient(60% 40% at 50% 100%,rgba(127,231,255,.10),transparent 70%);pointer-events:none}
.hero .grid{position:absolute;inset:0;z-index:0;opacity:.35;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(70% 60% at 30% 50%,#000,transparent);-webkit-mask-image:radial-gradient(70% 60% at 30% 50%,#000,transparent)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-top:76px;padding-bottom:0;display:grid;grid-template-columns:1.3fr .7fr;align-items:end;gap:20px;height:100vh;height:100svh;min-height:560px}
.hero .txt{align-self:center;padding:0 0 4vh}
.me{position:relative;align-self:end;justify-self:center;height:min(66vh,470px);aspect-ratio:1/1;max-width:100%;pointer-events:none}
.me img{width:100%;height:100%;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 0 40px rgba(127,231,255,.18)) drop-shadow(-12px 0 30px rgba(154,134,255,.22));will-change:transform}

@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;height:auto;min-height:0;padding-top:100px}.hero .txt{padding-bottom:10px}.me{height:auto;width:min(72%,320px);justify-self:center;margin-right:0}}
.status{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:7px 16px 7px 12px;background:var(--panel);backdrop-filter:blur(8px)}
.status b{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 10px #4ADE80}
.hero h1{font-size:clamp(30px,min(4.2vw,7.4vh),66px);font-weight:500;max-width:19ch;margin:0 0 min(26px,3vh);letter-spacing:-.025em}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.hero h1 .w>span{display:inline-block}
.hero h1 .glow{background:linear-gradient(100deg,var(--ice),var(--violet) 60%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{max-width:56ch;font-size:clamp(15.5px,min(1.25vw,2.2vh),19px);color:var(--muted)}
.hero .lede strong{color:var(--text);font-weight:500}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:min(34px,4vh)}
.scrollcue{position:absolute;left:50%;bottom:28px;z-index:2;width:22px;height:36px;border:1px solid var(--line);border-radius:12px;transform:translateX(-50%)}
.scrollcue::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--ice);animation:cue 1.8s infinite}
@keyframes cue{to{transform:translateY(12px);opacity:0}}

/* stats */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:26px 24px 24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat .n{font-family:var(--display);font-size:clamp(28px,3.4vw,44px);font-weight:500;letter-spacing:-.02em}
.stat .n em{font-style:normal;color:var(--ice)}
.stat p{color:var(--muted);font-size:15px;max-width:22ch;margin-top:6px}
@media (max-width:820px){.stats .wrap{grid-template-columns:1fr 1fr}.stat{padding:30px 16px}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}

/* marquee */
.marquee{overflow:hidden;padding:15px 0;border-bottom:1px solid var(--line)}
.marquee .track{display:flex;gap:56px;width:max-content;animation:mq 42s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee.rev{background:var(--bg2)}.marquee.rev .track{animation-direction:reverse;animation-duration:55s}.marquee.rev span{color:var(--text)}.marquee.rev span::after{border-color:var(--ice);border-radius:50%}
.marquee span{font-family:var(--display);font-size:clamp(15px,1.7vw,21px);color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:56px}
.marquee span::after{content:"";width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--violet)}
@keyframes mq{to{transform:translateX(-50%)}}

.sec{padding:clamp(64px,8vw,110px) 0}
.head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,3.6vw,48px)}
.head p{max-width:44ch;color:var(--muted)}

/* about */
.about{overflow:hidden}
.ghost{position:absolute;top:20px;left:0;font-family:var(--display);font-weight:700;font-size:clamp(70px,13vw,190px);letter-spacing:.06em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px var(--line);pointer-events:none;line-height:1;user-select:none}
.about .cols{display:grid;grid-template-columns:5fr 7fr;padding-top:10px;gap:clamp(36px,6vw,96px);align-items:start;position:relative}
.portrait{position:relative;perspective:900px}
.portrait .frame{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line);transform-style:preserve-3d;transition:transform .2s ease-out;background:var(--bg2)}
.portrait img{width:100%;height:118%;object-fit:cover;object-position:50% 20%;filter:contrast(1.05)}
.portrait .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,10,31,.85)),radial-gradient(circle at var(--gx,50%) var(--gy,30%),rgba(127,231,255,.22),transparent 45%);pointer-events:none}
.portrait .tag{position:absolute;left:22px;bottom:20px;right:22px;z-index:2;display:flex;justify-content:space-between;align-items:end;color:#EAEEFB;font-size:14px}
.portrait .tag b{font-family:var(--display);font-weight:500;font-size:18px;display:block}
.orbit{position:absolute;inset:-18px;border:1px dashed var(--line);border-radius:36px;pointer-events:none;z-index:-1}
.about h2{font-size:clamp(26px,3vw,42px)}
.about .copy p+p{margin-top:12px}
.about .copy p{color:var(--muted);max-width:60ch}
.about .copy p.big{font-size:clamp(17px,1.5vw,20px);color:var(--text);line-height:1.5}
.principles{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.principles div{background:var(--bg);padding:13px 16px;font-size:14px;transition:background .35s}
.principles div:hover{background:var(--bg2)}
.principles strong{display:block;font-weight:600;margin-bottom:3px}
.principles span{color:var(--muted)}
@media (max-width:900px){.about .cols{grid-template-columns:1fr}.about h2{position:static}.principles{grid-template-columns:1fr}}

/* expertise horizontal */
.xp{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.xp .pin{padding:clamp(64px,8vw,110px) 0}
.hs{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px var(--pad) 24px;scrollbar-width:none;cursor:grab;align-items:flex-start;scroll-padding-left:var(--pad)}
.hs::-webkit-scrollbar{display:none}.hs.drag{cursor:grabbing;scroll-snap-type:none}
.hs>*{scroll-snap-align:start}
.card{width:min(380px,82vw);flex:none;border:1px solid var(--line);border-radius:22px;padding:24px;background:var(--panel);position:relative;transform-style:preserve-3d;transition:border-color .4s;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(400px circle at var(--gx,50%) var(--gy,0%),rgba(154,134,255,.18),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover{border-color:rgba(127,231,255,.4)}.card:hover::before{opacity:1}
.card .ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;border:1px solid var(--line);margin-bottom:16px;color:var(--ice);transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.card:hover .ico{transform:rotate(-12deg) scale(1.08)}
.card h3{font-size:19px;margin-bottom:8px}
.card p{color:var(--muted);font-size:15.5px}
.card ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:7px}
.card li{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;color:var(--text);transition:border-color .3s,background .3s}
.card li:hover{border-color:var(--violet);background:rgba(154,134,255,.12)}
.card ul.stack li{color:var(--ice);border-color:rgba(127,231,255,.28);font-size:12.5px}
.card h4{font-family:var(--body);font-size:12.5px;font-weight:600;color:var(--muted);margin:14px 0 0;letter-spacing:.02em}
.card.wide{width:min(860px,88vw)}
.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.stages>div{border-left:1px solid var(--line);padding-left:16px}
.stages h4{margin-top:16px;color:var(--text);font-size:14px}
.stages h4 span{color:var(--amber);margin-right:6px}
@media (max-width:700px){.stages{grid-template-columns:1fr}}
.xp .head{padding:0 var(--pad);max-width:1280px;margin-left:auto;margin-right:auto;width:100%}


/* experience */
.tl{position:relative;padding-left:44px;max-width:980px}
.tl .rail{position:absolute;left:10px;top:6px;bottom:6px;width:1px;background:var(--line)}
.tl .fill{position:absolute;left:10px;top:6px;bottom:6px;width:1px;background:linear-gradient(var(--ice),var(--violet));transform-origin:top;transform:scaleY(1)}
.job{position:relative;display:grid;grid-template-columns:150px 1fr;gap:22px;padding:18px 0;border-bottom:1px solid var(--line)}
.job::before{content:"";position:absolute;left:-39px;top:46px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--ice);transition:box-shadow .4s,background .4s}
.job:hover::before{background:var(--ice);box-shadow:0 0 0 6px rgba(127,231,255,.15),0 0 20px var(--ice)}
.job .when{font-family:var(--display);font-size:13px;color:var(--muted);padding-top:2px}
.job h3{font-size:clamp(18px,1.8vw,22px)}
.job .co{color:var(--ice);font-weight:500;margin:2px 0 8px}
.job p{color:var(--muted);max-width:70ch;font-size:15.5px}
.job.feature{grid-template-columns:150px 1fr}
.job>div{min-width:0}
.job .about-co{margin:4px 0 12px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--muted);font-size:14.5px;line-height:1.55}
.job .lg{width:50px;height:50px;border-radius:16px;overflow:hidden;background:#fff;display:grid;place-items:center;margin-bottom:12px;border:1px solid var(--line);transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.job:hover .lg{transform:rotate(-6deg) scale(1.06)}
.job .lg img{width:100%;height:100%;object-fit:contain}
.job .lg.mono{background:linear-gradient(135deg,var(--violet),var(--ice));color:#070A1F;font-family:var(--display);font-weight:700;font-size:17px}
.job .lg.mono.ibex{background:linear-gradient(135deg,#1e3a8a,#0ea5e9);color:#fff}
.job .lg.mono.st{background:var(--bg2);color:var(--ice);border-color:rgba(127,231,255,.4)}
.job .about-co b{color:var(--text);font-weight:600}
.job ul.duties{margin:10px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.job ul.duties li{position:relative;padding-left:18px;color:var(--muted);font-size:14.5px}
.job ul.duties li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--violet);transform:rotate(45deg)}
@media (max-width:700px){.job ul.duties{grid-template-columns:1fr}}
.job .now{display:inline-block;margin-left:10px;font-family:var(--body);font-size:12px;font-weight:600;vertical-align:middle;padding:3px 10px;border-radius:999px;background:rgba(74,222,128,.14);color:#4ADE80}
@media (max-width:700px){.job,.job.feature{grid-template-columns:1fr;gap:6px}.tl{padding-left:34px}.job::before{left:-29px;top:36px}}

/* projects */
.pgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}
.proj{grid-column:span 6;border-radius:26px;border:1px solid var(--line);background:var(--bg2);overflow:hidden;position:relative;text-decoration:none;display:flex;flex-direction:column;transform-style:preserve-3d;transition:transform .2s ease-out,border-color .4s}
.proj:nth-child(1){grid-column:span 7}.proj:nth-child(2){grid-column:span 5}.proj:nth-child(3){grid-column:span 5}.proj:nth-child(4){grid-column:span 7}
.proj .shot{height:300px;overflow:hidden;position:relative;background:#fff}
.proj .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.proj:hover .shot img{transform:scale(1.06)}
.proj:hover{border-color:rgba(127,231,255,.45)}
.proj .info{padding:26px 28px 30px}
.proj .role{font-size:13px;color:var(--amber);font-weight:600}
.proj h3{font-size:26px;margin:8px 0 10px}
.proj p{color:var(--muted);font-size:15.5px;max-width:52ch}
.proj .go{position:absolute;top:18px;right:18px;width:46px;height:46px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:grid;place-items:center;transform:scale(.6) rotate(-45deg);opacity:0;transition:.45s cubic-bezier(.3,1.6,.5,1);z-index:2}
.proj:hover .go{transform:none;opacity:1}
@media (max-width:900px){.proj,.proj:nth-child(n){grid-column:span 12}.proj .shot{height:220px}}
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.prod{border:1px solid var(--line);border-radius:22px;padding:20px;background:var(--panel);display:flex;flex-direction:column;gap:10px;text-decoration:none;position:relative;transform-style:preserve-3d;transition:transform .2s ease-out,border-color .4s}
.prod:hover{border-color:rgba(154,134,255,.55)}
.prod .plate{height:64px;border-radius:12px;background:#fff;display:flex;align-items:center;padding:8px 14px;overflow:hidden}
.prod .plate img{max-height:46px;max-width:100%;width:auto;object-fit:contain;transition:transform .5s cubic-bezier(.3,1.6,.5,1)}
.prod:hover .plate img{transform:scale(1.05)}
.prod .meta{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.prod h3{font-size:17px;font-weight:500}
.prod .cat{font-size:12.5px;color:var(--amber);font-weight:600;white-space:nowrap}
.prod p{color:var(--muted);font-size:14.5px;line-height:1.5}
@media (max-width:1000px){.prods{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.prods{grid-template-columns:1fr}}
.egrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.case{border:1px solid var(--line);border-radius:24px;padding:24px;background:var(--panel);position:relative;overflow:hidden;display:flex;flex-direction:column;transform-style:preserve-3d;transition:transform .2s ease-out,border-color .4s}
.case::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--gx,80%) var(--gy,0%),rgba(127,231,255,.14),transparent 50%);pointer-events:none}
.case:hover{border-color:rgba(127,231,255,.45)}
.case .plate{height:70px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;margin-bottom:14px;width:fit-content;max-width:100%}
.case .plate img{max-height:50px;width:auto;max-width:200px;object-fit:contain}
.case .plate.txt{font-family:var(--display);font-weight:700;color:#0B2D6B;font-size:20px;letter-spacing:-.01em}
.case .plate.txt span{color:#E46B25}
.case .mono{font-family:var(--display);font-weight:700;font-size:clamp(28px,2.7vw,38px);letter-spacing:-.02em;line-height:1;margin-bottom:6px;background:linear-gradient(100deg,var(--text),var(--muted));-webkit-background-clip:text;background-clip:text;color:transparent}
.case .sector{color:var(--muted);font-size:14px;margin-bottom:20px}
.case .role{font-size:13px;color:var(--amber);font-weight:600}
.case h3{font-size:18px;margin:4px 0 8px;font-weight:500}
.case p{color:var(--muted);font-size:14.5px;line-height:1.5}
.case .kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.case .kpis b{display:block;font-family:var(--display);font-weight:500;font-size:21px;color:var(--ice)}
.case .kpis span{font-size:13px;color:var(--muted);line-height:1.35;display:block}
.case ul{list-style:none;padding:0;margin:auto 0 0;display:flex;flex-wrap:wrap;gap:6px;padding-top:14px}
.case li{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--muted)}
.case.todo{border-style:dashed}
@media (max-width:1000px){.egrid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.egrid{grid-template-columns:1fr}}
.more{margin-top:40px}
.more h3{font-size:20px;margin-bottom:22px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);border-radius:14px;padding:11px 16px;font-size:15px;cursor:default;background:var(--panel);transition:border-color .3s,transform .3s;position:relative}
.chip small{display:block;color:var(--muted);font-size:13px;max-height:0;overflow:hidden;opacity:0;transition:max-height .45s,opacity .3s,margin .3s;max-width:30ch}
.chip:hover,.chip:focus{border-color:var(--violet);transform:translateY(-3px)}
.chip:hover small,.chip:focus small{max-height:80px;opacity:1;margin-top:4px}

/* recommendations */
.recs{overflow:hidden}
.rtrack{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px var(--pad) 10px;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch}
.rtrack::-webkit-scrollbar{display:none}
.rtrack.drag{cursor:grabbing;scroll-snap-type:none}
.rec{flex:none;width:min(350px,82vw);scroll-snap-align:start;border:1px solid var(--line);border-radius:20px;padding:22px;background:var(--panel);display:flex;flex-direction:column;gap:12px;user-select:none;transition:border-color .4s,transform .4s}
.rec:hover{border-color:rgba(154,134,255,.5);transform:translateY(-4px)}
.rec blockquote{margin:0;font-size:14.5px;line-height:1.6;position:relative}
.rec blockquote .txt{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rec.open blockquote .txt{-webkit-line-clamp:unset}
.rec .rm{align-self:flex-start;background:none;border:0;color:var(--ice);font:inherit;font-size:14px;padding:0;cursor:pointer}
.rec .who{display:flex;gap:12px;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.rec .who img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.rec .who b{display:block;font-weight:600}
.rec .who span{display:block;font-size:13.5px;color:var(--muted);line-height:1.4}
.rec .who em{display:inline-block;margin-top:4px;font-style:normal;font-size:12px;font-weight:600;color:var(--amber)}
.rnav{display:flex;gap:10px;align-items:center}
.rnav .hint{font-size:13px;color:var(--muted);margin-right:6px}
.xp .head .rnav{align-self:end}
.rnav button{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer;display:grid;place-items:center;transition:background .3s,color .3s}
.rnav button:hover{background:var(--ice);color:#070A1F}
.rnav button:disabled{opacity:.3;pointer-events:none}

/* contact */
.contact{text-align:center;overflow:hidden}
.contact::before{content:"";position:absolute;left:50%;top:55%;width:900px;height:900px;max-width:140vw;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(154,134,255,.2),transparent 60%);pointer-events:none}
.contact h2{font-size:clamp(30px,4.6vw,62px);letter-spacing:-.02em;margin:0 auto 18px}
@media (min-width:700px){.contact h2{white-space:nowrap}}
.contact p.lede{color:var(--muted);max-width:50ch;margin:0 auto}
.contact .cta{justify-content:center}
.cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:34px;text-align:left}
.cgrid a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:18px;padding:20px 22px;background:var(--panel);transition:border-color .3s,transform .3s}
.cgrid a:hover{border-color:var(--ice);transform:translateY(-4px)}
.cgrid small{display:block;color:var(--muted);font-size:13px}
.cgrid span{font-weight:500;word-break:break-word}
@media (max-width:860px){.cgrid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.cgrid{grid-template-columns:1fr}}
footer{border-top:1px solid var(--line);padding:28px 0;font-size:14px;color:var(--muted)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* reveal (only when JS animation is active) */
.anim .rv{opacity:0;transform:translateY(40px)}
@media (prefers-reduced-motion:reduce){.marquee .track,.logo i,.scrollcue::after{animation:none}}
