/* ============================================================
   Sagar variant — Creative Studio Stylesheet
   Warm amber/coral on deep charcoal · serif display type
   Light & dark themes via [data-theme] on <html>
   ============================================================ */

:root{
  --bg:#0E0C0A;
  --surface:#171310;
  --ink:#F5EFE6;
  --ink-soft:#A89F91;
  --line:#2A241E;
  --accent:#F59E0B;
  --accent-2:#F43F5E;
  --grad:linear-gradient(110deg,#F59E0B,#F43F5E);
  --mono:'Space Mono',monospace;
  --serif:'Fraunces',serif;
  --radius:4px;
  --nav-bg:rgba(14,12,10,.82);
  --dot:#F5EFE60d;
  --tag-bg:#F59E0B14;
}
/* ---- Alt palette 1: EMERALD — fresh mint/teal on deep pine ---- */
[data-palette="emerald"]{
  --bg:#0A100D;
  --surface:#121A15;
  --ink:#EEF5F0;
  --ink-soft:#93A69A;
  --line:#1F2C24;
  --accent:#34D399;
  --accent-2:#0EA5E9;
  --grad:linear-gradient(110deg,#34D399,#0EA5E9);
  --nav-bg:rgba(10,16,13,.82);
  --dot:#EEF5F00d;
  --tag-bg:#34D39914;
}
[data-palette="emerald"][data-theme="light"]{
  --bg:#F2F8F4;
  --surface:#FFFFFF;
  --ink:#101913;
  --ink-soft:#5C6E63;
  --line:#DCE8DF;
  --accent:#059669;
  --accent-2:#0284C7;
  --grad:linear-gradient(110deg,#059669,#0284C7);
  --nav-bg:rgba(242,248,244,.85);
  --dot:#10191310;
  --tag-bg:#05966914;
}

/* ---- Alt palette 2: MAGENTA — electric pink/orchid on ink violet ---- */
[data-palette="magenta"]{
  --bg:#0F0A14;
  --surface:#181020;
  --ink:#F5EFFA;
  --ink-soft:#A695B5;
  --line:#281B33;
  --accent:#E879F9;
  --accent-2:#FB7185;
  --grad:linear-gradient(110deg,#D946EF,#FB7185);
  --nav-bg:rgba(15,10,20,.82);
  --dot:#F5EFFA0d;
  --tag-bg:#E879F914;
}
[data-palette="magenta"][data-theme="light"]{
  --bg:#FBF6FC;
  --surface:#FFFFFF;
  --ink:#1A1220;
  --ink-soft:#6E5F7A;
  --line:#ECDFF0;
  --accent:#C026D3;
  --accent-2:#E11D48;
  --grad:linear-gradient(110deg,#C026D3,#E11D48);
  --nav-bg:rgba(251,246,252,.85);
  --dot:#1A122010;
  --tag-bg:#C026D314;
}

/* ---- Alt palette 3: OCEAN — cyan/azure on deep sea navy ---- */
[data-palette="ocean"]{
  --bg:#070D14;
  --surface:#0E1720;
  --ink:#EDF4FA;
  --ink-soft:#8FA5B8;
  --line:#1A2836;
  --accent:#22D3EE;
  --accent-2:#3B82F6;
  --grad:linear-gradient(110deg,#22D3EE,#3B82F6);
  --nav-bg:rgba(7,13,20,.82);
  --dot:#EDF4FA0d;
  --tag-bg:#22D3EE14;
}
[data-palette="ocean"][data-theme="light"]{
  --bg:#F1F7FB;
  --surface:#FFFFFF;
  --ink:#0F1820;
  --ink-soft:#587082;
  --line:#DAE7F0;
  --accent:#0891B2;
  --accent-2:#2563EB;
  --grad:linear-gradient(110deg,#0891B2,#2563EB);
  --nav-bg:rgba(241,247,251,.85);
  --dot:#0F182010;
  --tag-bg:#0891B214;
}

/* ---- Alt palette 4: SUNSET — fiery red/orange on warm black ---- */
[data-palette="sunset"]{
  --bg:#120B08;
  --surface:#1C120D;
  --ink:#FAF1EC;
  --ink-soft:#B29A8C;
  --line:#31201A;
  --accent:#F97316;
  --accent-2:#EF4444;
  --grad:linear-gradient(110deg,#F97316,#EF4444);
  --nav-bg:rgba(18,11,8,.82);
  --dot:#FAF1EC0d;
  --tag-bg:#F9731614;
}
[data-palette="sunset"][data-theme="light"]{
  --bg:#FDF5F0;
  --surface:#FFFFFF;
  --ink:#20130C;
  --ink-soft:#7C6355;
  --line:#F0DFD4;
  --accent:#EA580C;
  --accent-2:#DC2626;
  --grad:linear-gradient(110deg,#EA580C,#DC2626);
  --nav-bg:rgba(253,245,240,.85);
  --dot:#20130C10;
  --tag-bg:#EA580C14;
}

/* ---- Alt palette 5: ROYAL — indigo/gold on midnight ---- */
[data-palette="royal"]{
  --bg:#0B0B16;
  --surface:#131324;
  --ink:#F0F0FA;
  --ink-soft:#9C9CB8;
  --line:#222240;
  --accent:#818CF8;
  --accent-2:#FBBF24;
  --grad:linear-gradient(110deg,#6366F1,#FBBF24);
  --nav-bg:rgba(11,11,22,.82);
  --dot:#F0F0FA0d;
  --tag-bg:#818CF814;
}
[data-palette="royal"][data-theme="light"]{
  --bg:#F5F5FC;
  --surface:#FFFFFF;
  --ink:#13131F;
  --ink-soft:#62627E;
  --line:#E2E2F0;
  --accent:#4F46E5;
  --accent-2:#D97706;
  --grad:linear-gradient(110deg,#4F46E5,#D97706);
  --nav-bg:rgba(245,245,252,.85);
  --dot:#13131F10;
  --tag-bg:#4F46E514;
}

[data-theme="light"]{
  --bg:#FAF6EF;
  --surface:#FFFFFF;
  --ink:#191512;
  --ink-soft:#6E6558;
  --line:#E8E0D2;
  --accent:#D97706;
  --accent-2:#E11D48;
  --grad:linear-gradient(110deg,#D97706,#E11D48);
  --nav-bg:rgba(250,246,239,.85);
  --dot:#19151210;
  --tag-bg:#D9770614;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:'Space Grotesk',sans-serif;
  font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .35s ease,color .35s ease;
  cursor:none;
}
a,button{cursor:none}
@media(hover:none),(prefers-reduced-motion:reduce){
  body,a,button{cursor:auto}
}
a{color:inherit;text-decoration:none}
::selection{background:#F59E0B44}

.wrap{max-width:1120px;margin:0 auto;padding:0 28px}

/* ---------- FILM GRAIN ---------- */
.grain{
  position:fixed;inset:-50%;pointer-events:none;z-index:99;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
  animation:grainShift 8s steps(10) infinite;
}
@keyframes grainShift{
  0%,100%{transform:translate(0,0)}
  20%{transform:translate(-3%,2%)}
  40%{transform:translate(2%,-3%)}
  60%{transform:translate(-2%,-2%)}
  80%{transform:translate(3%,3%)}
}

/* ---------- CUSTOM CURSOR ---------- */
.cursor{
  position:fixed;top:0;left:0;width:10px;height:10px;border-radius:50%;
  background:var(--accent);z-index:200;pointer-events:none;
  transform:translate(-50%,-50%);
  transition:width .25s ease,height .25s ease,opacity .25s ease;
  mix-blend-mode:difference;
}
.cursor.big{width:52px;height:52px;opacity:.85}
@media(hover:none),(prefers-reduced-motion:reduce){.cursor{display:none}}

/* ---------- PALETTE PICKER (vertical rail, centered on right edge) ---------- */
.palette-picker{
  position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:90;
}
.palette-menu{
  display:flex;flex-direction:column;gap:9px;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:10px 7px;box-shadow:0 14px 34px -14px #00000090;
}
.swatch{
  width:24px;height:24px;border-radius:50%;border:2px solid transparent;
  background:var(--sw);position:relative;
  transition:transform .2s ease,border-color .2s;
}
.swatch:hover{transform:scale(1.25)}
.swatch.active{border-color:var(--ink)}
.swatch::after{
  content:attr(data-name);position:absolute;right:135%;top:50%;translate:0 -50%;
  font-family:var(--mono);font-size:11px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:6px;padding:2px 8px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.swatch:hover::after{opacity:1}
@media(max-width:640px){
  .palette-picker{right:8px}
  .swatch{width:20px;height:20px}
}

/* ---------- WHATSAPP FLOAT ---------- */
.wa-float{
  position:fixed;right:18px;bottom:18px;z-index:90;
  width:54px;height:54px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px -8px #25D36699;
  transition:transform .25s cubic-bezier(.22,.9,.3,1),box-shadow .25s;
  animation:wa-pulse 2.6s ease-out infinite;
}
.wa-float:hover{transform:scale(1.12) rotate(8deg);box-shadow:0 16px 38px -8px #25D366cc}
@keyframes wa-pulse{
  0%{box-shadow:0 12px 30px -8px #25D36699,0 0 0 0 #25D36655}
  70%{box-shadow:0 12px 30px -8px #25D36699,0 0 0 14px transparent}
  100%{box-shadow:0 12px 30px -8px #25D36699,0 0 0 0 transparent}
}
@media(max-width:640px){.wa-float{right:12px;bottom:12px;width:48px;height:48px}}

/* ---------- SCROLL PROGRESS ---------- */
.progress{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:var(--grad);z-index:100;transition:width .1s linear;
}

/* ---------- NAV ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:var(--nav-bg);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .35s ease,border-color .35s ease;
}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:66px}

/* ---------- BRAND LOGO (adapts to every palette + theme) ---------- */
.brand{display:inline-flex;align-items:center;gap:11px}
.brand-mark{
  width:36px;height:36px;border-radius:12px 0 12px 12px;flex:none;
  background:var(--grad);color:#fff;
  font-family:var(--serif);font-style:italic;font-weight:700;font-size:14px;letter-spacing:-.02em;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 70%,transparent);
  transition:transform .3s cubic-bezier(.22,.9,.3,1);
}
.brand:hover .brand-mark{transform:rotate(-8deg) scale(1.08)}
.brand-name{
  font-family:var(--serif);font-size:19px;font-weight:600;
  color:var(--ink);letter-spacing:.01em;line-height:1;
}
.brand-name b{font-weight:600;font-style:italic;color:var(--accent)}
.nav-right{display:flex;align-items:center;gap:24px}
.nav-links{display:flex;gap:26px;font-size:14px;color:var(--ink-soft);font-family:var(--mono)}
.nav-links a{transition:color .2s;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.theme-toggle{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  background:var(--surface);font-size:16px;line-height:1;color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s ease,border-color .2s;
}
.theme-toggle:hover{transform:rotate(-15deg) scale(1.08);border-color:var(--accent)}
.theme-toggle .moon,[data-theme="light"] .theme-toggle .sun{display:none}
[data-theme="light"] .theme-toggle .moon{display:block}

/* ---------- HERO ---------- */
header{position:relative;overflow:hidden;padding:96px 0 0}

/* ---------- SHOOTING STARS SKY ---------- */
.sky{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}
.star{
  position:absolute;border-radius:50%;background:var(--ink);
  animation:twinkle var(--tw,3s) ease-in-out infinite;
  opacity:.5;
}
@keyframes twinkle{
  0%,100%{opacity:.12;transform:scale(1)}
  50%{opacity:.6;transform:scale(1.3)}
}
.shooting{
  position:absolute;height:2.5px;border-radius:3px;width:170px;
  background:linear-gradient(90deg,#fff,var(--accent) 30%,var(--accent-2) 65%,transparent);
  box-shadow:0 0 12px 1px var(--accent);
  rotate:155deg;
  animation:shoot var(--dur,3.4s) linear infinite;
  animation-delay:var(--delay,0s);
  opacity:0;
}
.shooting::before{
  content:"";position:absolute;left:-3px;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:#fff;
  box-shadow:0 0 14px 4px var(--accent);
}
@keyframes shoot{
  0%{opacity:0;translate:0 0}
  6%{opacity:1}
  60%{opacity:1}
  75%{opacity:0;translate:-46vw 21vw}
  100%{opacity:0;translate:-46vw 21vw}
}
.hero-bg{
  position:absolute;inset:0;pointer-events:none;z-index:-2;
  background-image:radial-gradient(var(--dot) 1.4px,transparent 1.4px);
  background-size:30px 30px;
  mask-image:radial-gradient(ellipse 75% 70% at 40% 30%,#000,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 75% 70% at 40% 30%,#000,transparent 75%);
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:end}

/* ---------- HERO PHOTO (transparent cut-out, palette-adaptive glow) ---------- */
.hero-visual{
  position:relative;display:flex;justify-content:center;align-items:flex-end;
  align-self:stretch;
}
.hero-photo{
  width:100%;max-width:440px;height:auto;display:block;position:relative;z-index:1;
  filter:drop-shadow(0 0 26px color-mix(in srgb,var(--accent) 30%,transparent));
  mask-image:linear-gradient(#000 82%,transparent 99%);
  -webkit-mask-image:linear-gradient(#000 82%,transparent 99%);
}
.hero-photo-glow{
  position:absolute;left:50%;top:14%;z-index:0;
  width:108%;height:76%;transform:translateX(-50%);
  background:radial-gradient(ellipse 46% 46% at 50% 42%,
    color-mix(in srgb,var(--accent) 30%,transparent) 0%,
    color-mix(in srgb,var(--accent-2) 16%,transparent) 40%,
    color-mix(in srgb,var(--accent-2) 6%,transparent) 60%,
    transparent 82%);
  filter:blur(22px);
  animation:glowBreathe 6s ease-in-out infinite;
}
@keyframes glowBreathe{
  0%,100%{opacity:.7}
  50%{opacity:1}
}
@media(max-width:920px){
  .hero-grid{display:block}
  .hero-visual{margin-top:34px}
  .hero-photo{max-width:300px;margin:0 auto}
}
.hero-eyebrow{
  font-family:var(--mono);font-size:13px;color:var(--accent);
  display:inline-flex;align-items:center;gap:12px;margin-bottom:30px;
  text-transform:uppercase;letter-spacing:.14em;
}
.hero-eyebrow::before{content:"◆";font-size:9px}
h1{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(46px,7.6vw,96px);
  line-height:1.02;letter-spacing:-.015em;max-width:14ch;
  font-variation-settings:"SOFT" 60,"WONK" 1;
}
h1 em{
  font-style:italic;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-sub{margin-top:30px;max-width:50ch;color:var(--ink-soft);font-size:18px}
.hero-cta{margin-top:42px;margin-bottom:80px;display:flex;gap:16px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:10px;border:none;
  padding:15px 30px;border-radius:999px;font-weight:600;font-size:15px;
  font-family:'Space Grotesk',sans-serif;
  transition:transform .2s ease,box-shadow .2s ease,background .2s;
}
.btn:hover{transform:translateY(-3px) rotate(-1deg)}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 10px 28px -10px #F59E0B99}
.btn-ghost{border:1.5px solid var(--line);background:transparent;color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- KINETIC MARQUEE ---------- */
.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;padding:16px 0;
  font-family:var(--serif);font-size:19px;font-style:italic;
  color:var(--ink);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee-track{display:flex;gap:0;width:max-content;animation:marquee 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:flex;align-items:center;white-space:nowrap}
.marquee-track b{font-family:'Space Grotesk',sans-serif;font-weight:600;font-style:normal}
.marquee-track i{color:var(--accent);margin:0 22px;font-style:normal;font-size:14px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- SECTION SHARED ---------- */
section{padding:100px 0;border-top:1px solid var(--line)}
.sec-label{
  font-family:var(--mono);font-size:12.5px;color:var(--accent);margin-bottom:16px;
  text-transform:uppercase;letter-spacing:.16em;
}
h2{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(34px,4.8vw,52px);letter-spacing:-.01em;margin-bottom:16px;
}
h2 em{font-style:italic;color:var(--accent)}
.sec-sub{color:var(--ink-soft);max-width:56ch;margin-bottom:56px}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s cubic-bezier(.22,.9,.3,1)}
.reveal.on{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.12s}
.reveal[data-delay="2"]{transition-delay:.24s}
.reveal[data-delay="3"]{transition-delay:.36s}

/* ---------- JOURNEY — animated color timeline ----------
   One shared axis (--rail-x). A gray track sits under a gradient
   fill that draws itself as you scroll (JS sets its height);
   every milestone gets its own color via --mc. */
.journey-list{
  position:relative;display:flex;flex-direction:column;gap:22px;
  --rail-x:18px;--node:20px;padding-left:60px;
}
.j-track,.j-fill{
  position:absolute;left:calc(var(--rail-x) - 2px);width:4px;border-radius:4px;
}
.j-track{top:14px;bottom:14px;background:var(--line)}
.j-fill{
  top:14px;height:0;max-height:calc(100% - 28px);
  background:linear-gradient(#F97316,#EC4899,#8B5CF6,#3B82F6,#22C55E);
  transition:height .15s ease-out;color:#EC4899;
}
.j-fill::after{
  content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;background:#fff;
  box-shadow:0 0 14px 3px currentColor;
}
.j-row{
  position:relative;--mc:var(--accent);
  background:var(--surface);border:1px solid var(--line);border-radius:8px;
  padding:24px 26px;
  transition:transform .3s cubic-bezier(.22,.9,.3,1),border-color .25s,box-shadow .3s;
}
.j-row:nth-child(3){--mc:#F97316}
.j-row:nth-child(4){--mc:#EC4899}
.j-row:nth-child(5){--mc:#8B5CF6}
.j-row:nth-child(6){--mc:#3B82F6}
.j-row:nth-child(7){--mc:#22C55E}
.j-row:hover{transform:translateX(8px);border-color:var(--mc);box-shadow:0 18px 40px -22px #00000080}
.j-row .j-ver{color:var(--mc)}
.j-row .tag{background:color-mix(in srgb,var(--mc) 10%,transparent);color:var(--mc)}
/* node: infographic-style icon circle centered on the rail axis */
.j-row::before{
  content:"";position:absolute;z-index:1;
  left:calc(var(--rail-x) - 60px - var(--node)/2);
  top:calc(36px - var(--node)/2);
  width:var(--node);height:var(--node);border-radius:50%;
  background:var(--mc);
  box-shadow:0 0 16px -2px var(--mc);
  transition:transform .25s;
}
.j-row:hover::before{transform:scale(1.12) rotate(-8deg)}
/* connector: rail axis → card edge */
.j-row::after{
  content:"";position:absolute;left:calc(var(--rail-x) - 60px);top:35px;
  width:calc(60px - var(--rail-x));height:2px;
  background:var(--mc);opacity:.45;
}
.j-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.j-ver{font-family:var(--mono);font-size:14px;color:var(--accent);font-weight:700}
.j-year{font-family:var(--mono);font-size:13px;color:var(--ink-soft)}
.j-status{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 10px;border-radius:999px;margin-left:auto;
  border:1px solid var(--line);color:var(--ink-soft);
}
.j-status.done{color:#22C55E;border-color:#22C55E44;background:#22C55E10}
.j-status.current{
  color:#fff;border-color:transparent;background:var(--grad);
  animation:beacon 2.2s ease-out infinite;
}
@keyframes beacon{
  0%{box-shadow:0 0 0 0 #F59E0B55}
  70%{box-shadow:0 0 0 9px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
.j-row.current{border-color:var(--accent)}
.j-row.current::before{background:var(--grad);border-color:transparent;animation:beacon 2.2s ease-out infinite}
.j-body h3{font-family:var(--serif);font-weight:600;font-size:22px;margin-bottom:6px}
.j-body p{color:var(--ink-soft);font-size:15.5px;max-width:62ch}
.j-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.tag{
  font-size:12px;font-family:var(--mono);background:var(--tag-bg);color:var(--accent);
  border-radius:3px;padding:3px 9px;
}
@media(max-width:640px){
  .journey-list{--rail-x:14px;--node:16px;padding-left:48px}
  .j-track,.j-fill{width:3px;left:calc(var(--rail-x) - 1.5px)}
  .j-row::before{
    left:calc(var(--rail-x) - 48px - var(--node)/2);
    top:calc(36px - var(--node)/2);
  }
  .j-row::after{left:calc(var(--rail-x) - 48px);width:calc(48px - var(--rail-x))}
  .j-status{margin-left:0}
}

/* ---------- WORK ---------- */
.filter-bar{display:flex;gap:12px;margin-bottom:40px;flex-wrap:wrap}
.filter-btn{
  font-family:var(--mono);font-size:13px;padding:9px 20px;
  border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);
  transition:all .25s ease;text-transform:uppercase;letter-spacing:.08em;
}
.filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.filter-btn.active{background:var(--grad);color:#fff;border-color:transparent}

.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:24px}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px;display:flex;flex-direction:column;gap:13px;
  position:relative;overflow:hidden;
  transition:transform .3s cubic-bezier(.22,.9,.3,1),border-color .25s,opacity .35s ease,box-shadow .3s;
}
.card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:2;
  background:var(--grad);transform:scaleX(0);transform-origin:left;
  transition:transform .4s cubic-bezier(.22,.9,.3,1);
}
.card-logo{
  height:44px;max-width:170px;object-fit:contain;object-position:left center;
  display:block;transition:transform .3s ease;
}
.card:hover .card-logo{transform:scale(1.08)}
.card-logo{border-radius:10px}
.card-logo.on-pill{
  background:#fff;padding:6px 10px;height:44px;
}
.card-logo.pill-red{background:#E4382D}
.card:hover::before{transform:scaleX(1)}
.card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 24px 48px -24px #00000080}
.card.hide{opacity:0;transform:scale(.92);pointer-events:none;position:absolute;visibility:hidden}
.card-top{display:flex;align-items:center;justify-content:space-between}
.card-icon{
  width:48px;height:48px;border-radius:50%;background:var(--grad);
  display:flex;align-items:center;justify-content:center;font-size:22px;
  transition:transform .3s ease;
}
.card:hover .card-icon{transform:rotate(12deg) scale(1.12)}
.card-type{font-family:var(--mono);font-size:11px;color:var(--ink-soft);border:1px solid var(--line);border-radius:3px;padding:3px 9px;letter-spacing:.1em}
.card h3{font-family:var(--serif);font-weight:600;font-size:22px}
.card p{color:var(--ink-soft);font-size:15px;flex:1}
.card-link{
  font-family:var(--mono);font-size:13px;color:var(--accent);margin-top:8px;
  display:inline-flex;align-items:center;gap:8px;width:fit-content;
}
.card-link .arr{transition:transform .2s ease;display:inline-block}
.card-link:hover .arr{transform:translateX(5px)}
.card.soon{border-style:dashed}
.card.soon .card-icon{background:transparent;border:1.5px dashed var(--line)}

/* ---------- STACK — big type list ---------- */
.stack-rows{display:flex;flex-direction:column}
.stack-row{
  display:flex;align-items:baseline;gap:34px;padding:26px 8px;
  border-bottom:1px solid var(--line);
}
.stack-row h3{
  font-family:var(--mono);font-size:13px;color:var(--accent);min-width:110px;
  text-transform:uppercase;letter-spacing:.14em;
}
.stack-row .chips{display:flex;flex-wrap:wrap;gap:10px 26px}
.chip{
  font-family:var(--serif);font-size:24px;font-weight:500;
  color:var(--ink-soft);transition:color .2s,font-style .2s;
}
.chip:hover{color:var(--ink);font-style:italic}
@media(max-width:700px){
  .stack-row{flex-direction:column;gap:12px}
  .chip{font-size:20px}
}

/* ---------- ABOUT ---------- */
.about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:52px;align-items:start}
.about-grid p{color:var(--ink-soft);margin-bottom:18px;font-size:17.5px}
.about-grid p:first-child::first-letter{
  font-family:var(--serif);font-size:64px;line-height:.8;float:left;
  padding:8px 12px 0 0;color:var(--accent);font-weight:600;
}
.about-side{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:28px;font-family:var(--mono);font-size:13.5px;background:var(--surface);
}
.about-side div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line)}
.about-side div:last-child{border:none}
.about-side span:first-child{color:var(--ink-soft)}
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22C55E;margin-right:8px;animation:pulse-dot 1.8s ease-out infinite}
@keyframes pulse-dot{
  0%{box-shadow:0 0 0 0 #22C55E66}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

/* ---------- CONTACT ---------- */
.contact{
  border:1px solid var(--line);border-radius:8px;
  padding:80px 48px;text-align:center;margin:100px auto;
  position:relative;overflow:hidden;background:var(--surface);
}
.contact::before{
  content:"";position:absolute;left:50%;top:-40%;width:70%;aspect-ratio:1;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(circle,#F59E0B1f 0%,transparent 65%);
}
.contact>*{position:relative}
.contact h2 em{font-style:italic}
.contact p{color:var(--ink-soft);max-width:46ch;margin:0 auto 38px}
.contact-links{margin-top:34px;display:flex;justify-content:center;gap:30px;font-family:var(--mono);font-size:13.5px;color:var(--ink-soft)}
.contact-links a{transition:color .2s}
.contact-links a:hover{color:var(--accent)}

footer{padding:36px 0;text-align:center;font-family:var(--mono);font-size:12.5px;color:var(--ink-soft)}

@media(max-width:920px){
  .about-grid{grid-template-columns:1fr}
  .nav-links{display:none}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .grain,.marquee-track,.status-dot,.hero-photo-glow,.wa-float{animation:none}
  .btn,.card,.chip{transition:none}
}
