/* ============================================================
   CELEBRITY CREATORS — animated site
   Light, high-contrast editorial style. Motion stack:
   sticky light hero, dark slide-over panel, GSAP SplitText
   reveals, grain, crosshair guides, velocity marquee,
   custom cursor, creator-photo grid. Self-contained; no build.
   ============================================================ */

:root{
  --paper:#f4f1ea;        /* warm light paper (hero + light sections) */
  --ink:#14110d;          /* near-black ink */
  --ink-dim:#6b6256;      /* muted warm gray */
  --dark:#14110d;         /* dark section bg (slide-over panel, footer) */
  --dark-ink:#f4f1ea;     /* text on dark */
  --dark-dim:#9a9082;
  --accent:#bf8f2e;       /* warm premium gold */
  --accent-2:#e0b85a;
  --line:rgba(20,17,13,.14);        /* hairline on light */
  --line-d:rgba(244,241,234,.14);   /* hairline on dark */
  --ease: cubic-bezier(.7,0,.2,1);
  --pad: clamp(20px,4vw,64px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Inter",system-ui,sans-serif;
  overflow-x:hidden;
  cursor:none;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:none}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}

/* ---------- film grain ---------- */
.grain{
  position:fixed;inset:-150%;z-index:9990;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}10%{transform:translate(-4%,-4%)}30%{transform:translate(3%,-2%)}
  50%{transform:translate(-2%,3%)}70%{transform:translate(4%,2%)}90%{transform:translate(-3%,1%)}100%{transform:translate(0,0)}
}

/* ---------- custom cursor ---------- */
.cursor{
  position:fixed;top:0;left:0;z-index:9995;pointer-events:none;
  width:14px;height:14px;border-radius:50%;background:var(--accent);
  transform:translate(-50%,-50%);mix-blend-mode:difference;
  transition:width .3s var(--ease),height .3s var(--ease),background .3s;
}
.cursor.is-hover{width:74px;height:74px;background:#fff}
.cursor__label{
  display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.05em;color:#000;
  text-transform:uppercase;opacity:0;transition:opacity .25s;
}
.cursor.is-hover .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}body,a,button{cursor:auto}}

/* ---------- loader (light) ---------- */
.loader{
  position:fixed;inset:0;z-index:9999;background:var(--paper);
  display:flex;align-items:flex-end;justify-content:space-between;padding:var(--pad);
}
.loader__inner{display:flex;align-items:baseline;gap:24px;width:100%;justify-content:space-between}
.loader__count{font-family:"Anton",sans-serif;font-size:clamp(80px,22vw,300px);line-height:.8;color:var(--ink)}
.loader__tag{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;color:var(--accent)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:120;
  display:flex;align-items:center;justify-content:space-between;padding:var(--pad);
}
/* logo is a solid gold chip — opaque so it never smears into the giant headings.
   Hidden over the hero (which already shows the wordmark) and fades in on scroll. */
.nav__logo{
  display:inline-block;background:var(--accent);color:#15120c;
  padding:7px 12px;border-radius:8px;font-weight:700;
  font-size:clamp(13px,1.1vw,15px);letter-spacing:-.01em;line-height:1;
  opacity:0;transform:translateY(-8px);pointer-events:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.nav__logo.is-visible{opacity:1;transform:none;pointer-events:auto}
/* right-side buttons stay readable over light AND dark via difference blend */
.nav__right{display:flex;gap:18px;mix-blend-mode:difference;color:#fff}
.nav__btn{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.1em;color:#fff}
.nav__btn #soundState{display:inline-block;min-width:2.2em;text-align:left}

/* ---------- fullscreen menu ---------- */
.menu{
  position:fixed;inset:0;z-index:110;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;padding:var(--pad);
  clip-path:inset(0 0 100% 0);pointer-events:none;
}
.menu.is-open{pointer-events:auto}
.menu__links{display:flex;flex-direction:column;gap:.1em}
.menu__link{
  font-family:"Anton",sans-serif;font-size:clamp(48px,11vw,140px);line-height:.95;
  text-transform:uppercase;display:flex;align-items:baseline;gap:.3em;transition:color .3s;
}
.menu__link:hover{color:var(--accent-2)}
.menu__link span{font-family:"Space Mono",monospace;font-size:14px;color:var(--accent)}
.menu__foot{
  position:absolute;bottom:var(--pad);left:var(--pad);right:var(--pad);
  display:flex;justify-content:space-between;font-family:"Space Mono",monospace;font-size:12px;color:var(--dark-dim);
}

/* ---------- hero (light, sticky; dark panel slides over) ---------- */
.hero{
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  justify-content:center;padding:var(--pad);overflow:hidden;will-change:transform;
  background:var(--paper);
}
.hero__glow{
  position:absolute;left:-10%;bottom:-30%;width:70vw;height:70vw;z-index:0;
  background:radial-gradient(circle,var(--accent-2) 0%,transparent 60%);
  opacity:.35;filter:blur(50px);
}
.guides{position:absolute;inset:0;z-index:1;pointer-events:none}
.guides__v{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line)}
.guides__h{position:absolute;top:50%;left:0;right:0;height:1px;background:var(--line)}
.guides__dot{position:absolute;top:calc(50% - 4px);left:calc(50% - 4px);width:8px;height:8px;background:var(--accent);opacity:.8}
.hero__inner{position:relative;z-index:2}
.hero__title{
  font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(58px,16vw,280px);line-height:.82;letter-spacing:-.01em;color:var(--ink);
}
.hero__title .line{display:block;overflow:hidden}
.hero__title .line--accent{
  background:linear-gradient(180deg,var(--ink) 30%,var(--accent) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__sub{
  position:relative;z-index:2;max-width:44ch;margin-top:clamp(20px,3vw,40px);
  font-size:clamp(15px,1.4vw,20px);color:var(--ink-dim);line-height:1.5;
}
.hero__bottom{
  position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);z-index:2;
  display:flex;justify-content:space-between;font-family:"Space Mono",monospace;
  font-size:12px;letter-spacing:.1em;color:var(--ink-dim);
}

/* ---------- slide-over dark panel ---------- */
.panel{
  position:relative;z-index:10;background:var(--dark);color:var(--dark-ink);
  padding:clamp(80px,14vh,180px) var(--pad);min-height:100vh;
  display:flex;align-items:center;
  border-radius:28px 28px 0 0;box-shadow:0 -40px 80px rgba(0,0,0,.35);
}
.panel__inner{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(30px,6vw,90px);align-items:end;width:100%}
.panel__headline{
  font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(40px,8vw,150px);line-height:.9;letter-spacing:-.01em;
}
.swap{position:relative;color:#5a5346;transition:color .4s}
.swap__fill{color:var(--accent)}
.panel__body{display:flex;flex-direction:column;gap:1.2em;font-size:clamp(15px,1.3vw,19px);line-height:1.55;max-width:46ch;color:var(--dark-dim)}
@media (max-width:820px){.panel__inner{grid-template-columns:1fr}}

/* sections after the sticky hero must sit above it (hero is position:sticky =
   "positioned", so static siblings would otherwise paint UNDER it). */
.marquee,.creators,.process,.faq,.foot{position:relative;z-index:2}

/* ---------- marquee (dark) ---------- */
.marquee{background:var(--dark);overflow:hidden;padding:clamp(28px,5vw,64px) 0;border-bottom:1px solid var(--line-d)}
.marquee__track{
  display:flex;align-items:center;gap:48px;width:max-content;white-space:nowrap;
  font-family:"Anton",sans-serif;font-size:clamp(40px,7vw,110px);text-transform:uppercase;color:var(--dark-ink);
}
.marquee__track .dot{color:var(--accent);font-size:.3em;transform:translateY(-.4em)}

/* ---------- creator grid (light) ---------- */
.creators{background:var(--paper);padding:clamp(60px,10vw,140px) var(--pad)}
.creators__head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(30px,5vw,70px)}
.kicker{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.14em;color:var(--accent)}
.creators__title{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;line-height:.9;font-size:clamp(40px,7vw,120px);color:var(--ink)}
.creators__lead{max-width:48ch;color:var(--ink-dim);font-size:clamp(15px,1.3vw,19px);line-height:1.5}
.creators__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
@media (max-width:680px){.creators__grid{grid-template-columns:repeat(2,1fr)}}
.ccard{display:block;will-change:transform}
.ccard__media{
  position:relative;overflow:hidden;border-radius:16px;aspect-ratio:4/5;
  background:linear-gradient(160deg,#fff 0%,#e7e1d4 100%);
  border:1px solid var(--line);
}
.ccard__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;
  transform:scale(1.02);transition:transform .8s var(--ease),filter .8s var(--ease);
  filter:grayscale(.15);
}
.ccard:hover .ccard__media img{transform:scale(1.07);filter:grayscale(0)}
.ccard__meta{display:flex;flex-direction:column;gap:3px;margin-top:14px}
.ccard__name{font-weight:600;font-size:clamp(15px,1.4vw,19px);color:var(--ink);line-height:1.15}
.ccard__cat{font-family:"Space Mono",monospace;color:var(--accent);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.ccard__subs{color:var(--ink-dim);font-size:13px}

/* ---------- process (light) ---------- */
.process{background:var(--paper);padding:clamp(60px,10vw,140px) var(--pad)}
.process__list{list-style:none;margin-top:clamp(24px,4vw,50px);border-top:1px solid var(--line)}
.step{
  display:grid;grid-template-columns:90px 1fr 2fr;gap:clamp(12px,3vw,48px);align-items:baseline;
  padding:clamp(22px,3vw,40px) 0;border-bottom:1px solid var(--line);
}
.step__no{font-family:"Space Mono",monospace;color:var(--accent);font-size:14px}
.step__name{font-family:"Anton",sans-serif;font-size:clamp(28px,4vw,56px);text-transform:uppercase;line-height:.9;color:var(--ink)}
.step__desc{color:var(--ink-dim);font-size:clamp(14px,1.2vw,18px);line-height:1.5}
@media (max-width:720px){.step{grid-template-columns:50px 1fr}.step__desc{grid-column:1/-1}}

/* ---------- footer (dark) ---------- */
.foot{background:var(--dark);color:var(--dark-ink);padding:clamp(60px,12vw,160px) var(--pad) var(--pad);border-top:1px solid var(--line-d)}
.foot__cta{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;line-height:.9;font-size:clamp(48px,12vw,200px);margin-bottom:.2em}
.foot__mail{
  display:inline-block;font-family:"Anton",sans-serif;font-size:clamp(28px,5vw,80px);
  text-transform:uppercase;color:var(--accent);line-height:1;transition:color .3s;
}
.foot__mail:hover{color:var(--accent-2)}
.foot__row{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  margin-top:clamp(40px,8vw,120px);font-family:"Space Mono",monospace;font-size:12px;
  letter-spacing:.08em;color:var(--dark-dim);
}
.foot__links{display:flex;gap:22px}
.foot__links a:hover{color:var(--accent-2)}

/* ---------- faq (light) ---------- */
.faq{background:var(--paper);padding:clamp(60px,10vw,140px) var(--pad)}
.faq__title{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;line-height:.9;font-size:clamp(36px,6vw,100px);color:var(--ink);margin:14px 0 clamp(28px,4vw,56px)}
.faq__list{display:grid;gap:0;border-top:1px solid var(--line)}
.faq__item{padding:clamp(20px,3vw,34px) 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:clamp(16px,4vw,60px);align-items:start}
.faq__item dt{font-family:"Inter",sans-serif;font-weight:600;font-size:clamp(18px,1.8vw,26px);color:var(--ink);line-height:1.2}
.faq__item dd{color:var(--ink-dim);font-size:clamp(15px,1.2vw,18px);line-height:1.6;max-width:54ch}
@media (max-width:720px){.faq__item{grid-template-columns:1fr;gap:10px}}

/* ---------- mobile polish ---------- */
@media (max-width:600px){
  .hero__title{font-size:clamp(52px,17vw,90px)}
  .hero__sub{font-size:15px}
  .hero__bottom{font-size:10px;gap:10px}
  .nav__right{gap:12px}
  .nav__btn{font-size:11px}
  .loader__tag{display:none}
  .panel{border-radius:20px 20px 0 0}
  .foot__row{flex-direction:column;align-items:flex-start;gap:10px}
}

/* reduce motion */
@media (prefers-reduced-motion:reduce){
  .grain{animation:none}
  *{transition-duration:.001ms!important}
}
