/* ─── Custom styles Tailwind can't do tersely ────────── */

/* Fonts */
:root {
  --font-sans: 'Inter', sans-serif;
  --font-serif: 'Fraunces', serif;
  --font-mono: 'JetBrains Mono', monospace;
}

/* Smooth scroll wrapper (Lenis applies this) */
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; }
.lenis.lenis-scrolling iframe { pointer-events: none; }

/* Marquee */
.marquee-track {
  display: inline-flex; white-space: nowrap; will-change: transform;
  animation: scroll var(--marquee-dur, 50s) linear infinite;
}
@keyframes scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Live dot pulse */
.live-dot { animation: live 2s ease-in-out infinite; }
@keyframes live { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }

/* Reveal */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1); will-change: opacity, transform; }
.reveal.on { opacity: 1; transform: none; }
.reveal-fast { transition-duration: .5s; }
.reveal-stagger > * { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.reveal-stagger.on > * { opacity: 1; transform: none; }
.reveal-stagger.on > *:nth-child(1)  { transition-delay: .00s; }
.reveal-stagger.on > *:nth-child(2)  { transition-delay: .06s; }
.reveal-stagger.on > *:nth-child(3)  { transition-delay: .12s; }
.reveal-stagger.on > *:nth-child(4)  { transition-delay: .18s; }
.reveal-stagger.on > *:nth-child(5)  { transition-delay: .24s; }
.reveal-stagger.on > *:nth-child(6)  { transition-delay: .30s; }
.reveal-stagger.on > *:nth-child(7)  { transition-delay: .36s; }
.reveal-stagger.on > *:nth-child(8)  { transition-delay: .42s; }

/* Word-split: animated character-by-character reveal */
.split-word { display: inline-block; overflow: hidden; vertical-align: top; }
.split-word .char { display: inline-block; transform: translateY(110%); transition: transform .8s cubic-bezier(.4, 0, .2, 1); }
.split-word.on .char { transform: none; }

/* Stencil "I" logo */
.logo-I {
  display: inline-block; position: relative;
  width: .55em; height: .76em;
  border-top: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  margin: 0 .14em; vertical-align: middle;
}
.logo-I::before {
  content:''; position: absolute; top: 0; bottom: 0; left: 50%;
  width: 2px; background: currentColor; transform: translateX(-50%);
}

/* Inset grid background */
.bg-grid {
  background-image:
    linear-gradient(rgba(250,250,248,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(250,250,248,.03) 1px, transparent 1px);
  background-size: 80px 80px;
}
html.light .bg-grid {
  background-image:
    linear-gradient(rgba(10,10,10,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10,10,10,.04) 1px, transparent 1px);
}

/* Constellation overlay */
.console-svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* Footer watermark */
.foot-watermark p {
  font-family: var(--font-serif); font-style: italic; font-weight: 200;
  font-size: clamp(120px, 18vw, 280px);
  letter-spacing: -.035em; line-height: .85;
  color: transparent; -webkit-text-stroke: 1px rgba(250,250,248,.12);
  white-space: nowrap; user-select: none;
}
html.light .foot-watermark p { -webkit-text-stroke: 1px rgba(10,10,10,.16); }

/* Cursor */
body { min-width: 1180px; overflow-x: hidden; }

/* Page transition overlay */
#page-curtain {
  position: fixed; inset: 0; z-index: 9000; pointer-events: none;
  background: var(--curtain, #0A0A0A); transform-origin: top;
  transform: scaleY(0); transition: transform .55s cubic-bezier(.7, 0, .3, 1);
}
#page-curtain.in  { transform-origin: bottom; transform: scaleY(1); }
#page-curtain.out { transform-origin: top;    transform: scaleY(0); }
html.light { --curtain: #F5F1EA; }
