/* MUSE WAV — shared design tokens + base. See ../../DESIGN.md */
:root{
  /* color */
  --ink:#0E0E0F; --ink-2:#161616; --surface:#1C1C1F;
  --crimson:#B81D24; --maroon:#800000; --crimson-hot:#F03535;
  --bone:#F4EFE9; --bone-dim:#CFC9C0; --ash:#8A8A8E;
  --line:rgba(244,239,233,.14); --ember:#E8A33D;
  /* type */
  --display:"Space Grotesk",-apple-system,sans-serif;
  --body:"Work Sans",-apple-system,sans-serif;
  --mono:"Space Mono",ui-monospace,monospace;
  /* fluid scale */
  --fs-display-xl:clamp(3rem,11vw,11rem);
  --fs-display-l:clamp(2.4rem,7vw,6rem);
  --fs-h2:clamp(1.8rem,4.2vw,3.4rem);
  --fs-h3:clamp(1.3rem,2.2vw,2rem);
  --fs-body:clamp(1rem,1.15vw,1.2rem);
  --fs-kicker:.8rem;
  /* layout */
  --pad:clamp(1.25rem,5vw,6rem);
  --maxw:1600px;
  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html,body{height:auto}
body{
  font-family:var(--body); font-size:var(--fs-body); line-height:1.55;
  color:var(--bone); background:var(--ink);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* When Lenis drives scroll */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

img,svg,video,iframe{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--crimson);color:var(--bone)}

h1,h2,h3{font-family:var(--display);font-weight:700;line-height:.94;letter-spacing:-.02em}
.display-xl{font-size:var(--fs-display-xl);line-height:.9;letter-spacing:-.03em;text-transform:uppercase}
.display-l{font-size:var(--fs-display-l)}

/* kicker / eyebrow label */
.kicker{font-family:var(--mono);font-size:var(--fs-kicker);text-transform:uppercase;
  letter-spacing:.24em;color:var(--ash)}
.kicker--crimson{color:var(--crimson-hot)}

.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
section{position:relative}

/* line-mask reveal primitive (SplitType wraps lines; we clip) */
.reveal .line{overflow:hidden;display:block}
.reveal .line>*{display:block;will-change:transform}

/* generic reveal target (motion.js animates [data-reveal]) */
[data-reveal]{will-change:transform,opacity}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--mono);
  text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;
  padding:1.05em 1.6em;border-radius:100px;border:1px solid var(--line);
  background:var(--crimson);color:var(--bone);transition:transform .4s var(--ease),background .4s}
.btn:hover{background:var(--crimson-hot)}
.btn--ghost{background:transparent;border-color:var(--bone)}
.btn--ghost:hover{background:var(--bone);color:var(--ink)}

/* custom cursor (motion.js MW.cursor) */
.mw-cursor{position:fixed;top:0;left:0;width:14px;height:14px;border-radius:50%;
  background:var(--bone);pointer-events:none;z-index:9999;mix-blend-mode:difference;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s}
.mw-cursor.is-grow{width:64px;height:64px}
@media (hover:none){.mw-cursor{display:none}}

/* preloader */
.mw-preloader{position:fixed;inset:0;z-index:10000;background:var(--ink);
  display:grid;place-items:center}
.mw-preloader__mark{width:min(34vw,220px);opacity:.96}

/* hairline + marquee */
.rule{height:1px;background:var(--line);border:0}
.marquee{overflow:hidden;white-space:nowrap;display:flex}
.marquee__track{display:flex;flex:0 0 auto;will-change:transform}
.marquee__track>*{flex:0 0 auto}

/* accessibility */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--crimson-hot);outline-offset:3px}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal],.reveal .line>*{opacity:1!important;transform:none!important}
  .mw-cursor{display:none}
}
