/* ═══════════════════════════════════════════════════════════
   LYTHARIUS — Section page shared styles
   Canvas is fixed full-screen; scroll-track creates scroll height.
═══════════════════════════════════════════════════════════ */

@font-face{
  font-family:'KiwiSoda';
  src:url('../fonts/KiwiSoda.ttf') format('truetype');
  font-display:swap;
}

:root {
  --c-ink:    #0A0E1A;
  --c-milk:   #E8EEF7;
  --c-cloud:  #8FA8C9;
  --c-ember:  #D4A574;
  --ease:     cubic-bezier(0.22, 1, 0.36, 1);

  /* ── Art direction ─────────────────────────────────────────────────
     Three colours, three roles — drawn from the "Create" film: the warmth
     of the thing you carry, the cold of the quiet hour it arrives in, and
     the involuntary pulse of a need you didn't choose.                */
  --da-amber: #f4b657;   /* warmth — the idea, golden hour, the receipt   */
  --da-cyan:  #00cdff;   /* the cold quiet hour · the rain · the distance */
  --da-red:   #ff2020;   /* the need — like hunger; used sparingly        */
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  background: var(--c-ink);
  scroll-behavior: auto;
}

body {
  background: var(--c-ink);
  color: var(--c-milk);
  font-family: 'KiwiSoda', -apple-system, sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
  cursor: none;
  overflow-x: hidden;
  overflow-y: scroll;
}
@media (hover: none) { body { cursor: auto; } }

/* ── Full-screen canvas (fixed, behind everything) ── */
#bg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
}

/* ── Cinematic vignette ── */
.vignette {
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(120% 90% at 50% 50%, transparent 52%, rgba(10,14,26,.6) 100%);
}

/* ── Back button (top-left) ── */
.btn-back {
  position: fixed;
  top: max(22px, 2.2vw);
  left: max(22px, 2.2vw);
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(232,238,247,.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(232,238,247,.16);
  border-radius: 999px;
  padding: .6em 1.3em .6em 1em;
  color: var(--c-milk);
  font-family: 'KiwiSoda', serif;
  font-size: 13px;
  letter-spacing: .02em;
  cursor: none;
  opacity: 0;
  animation: fadeIn .9s var(--ease) .55s forwards;
  transition: background .5s var(--ease), border-color .5s var(--ease);
}
@media (hover: none) { .btn-back { cursor: pointer; } }
.btn-back:hover {
  background: rgba(232,238,247,.13);
  border-color: rgba(232,238,247,.4);
}
.btn-back svg { flex-shrink: 0; }

/* ── Section index (top-right) ── */
.section-num {
  position: fixed;
  top: max(28px, 2.8vw);
  right: max(28px, 2.8vw);
  z-index: 20;
  font-family: 'KiwiSoda', ui-monospace, monospace;
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--c-milk);
  opacity: 0;
  animation: fadeIn .9s var(--ease) .7s forwards;
}

/* ── Hero (fixed center) ── */
.hero {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 clamp(1.5em, 5vw, 4em);
  pointer-events: none;
}

.hero-eyebrow {
  font-family: 'KiwiSoda', sans-serif;
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--c-cloud);
  margin-bottom: 1.4em;
  opacity: 0;
  animation: fadeIn 1s var(--ease) .4s forwards;
}

.hero-title {
  font-family: 'KiwiSoda', serif;
  font-weight: 300;
  font-size: clamp(38px, 6.5vw, 92px);
  line-height: 1.07;
  letter-spacing: .01em;
  color: var(--c-milk);
  max-width: 18ch;
  text-shadow: 0 2px 40px rgba(10,14,26,.55);
  opacity: 0;
  transform: translateY(20px);
  animation: heroIn 1.1s var(--ease) .25s forwards;
  will-change: opacity, transform;
}

/* ── Quote section (appears mid-scroll, fixed center) ── */
.quote-section {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  padding: 0 clamp(1.5em, 8vw, 6em);
  opacity: 0;
}

.scroll-quote {
  font-family: 'KiwiSoda', serif;
  font-weight: 300;
  font-size: clamp(20px, 2.6vw, 36px);
  line-height: 1.5;
  letter-spacing: .01em;
  color: var(--c-milk);
  max-width: 36ch;
  text-align: center;
  text-shadow: 0 2px 32px rgba(10,14,26,.5);
  opacity: .86;
}

/* ── Scroll hint (bottom center) ── */
.hint {
  position: fixed;
  left: 50%;
  bottom: 5vh;
  transform: translateX(-50%);
  z-index: 20;
  pointer-events: none;
  font-family: 'KiwiSoda', serif;
  font-size: 13px;
  letter-spacing: .18em;
  text-transform: lowercase;
  color: var(--c-milk);
  text-shadow: 0 1px 16px rgba(10,14,26,.6);
  white-space: nowrap;
  opacity: 0;
  animation: fadeIn 1.2s var(--ease) 1.4s forwards, breath 4s ease-in-out 2.6s infinite;
  transition: opacity .9s var(--ease);
}
.hint.gone { opacity: 0 !important; animation: none; }

/* ── Scroll track — only element that creates scrollable height ── */
.scroll-track { height: 280vh; pointer-events: none; }

/* ── Custom cursor ── */
.cursor, .trail {
  position: fixed; left: 0; top: 0;
  pointer-events: none; z-index: 200; border-radius: 50%;
  transform: translate(-50%, -50%);
  will-change: transform, opacity;
}
.cursor {
  width: 8px; height: 8px;
  background: var(--c-milk);
  box-shadow: 0 0 18px 4px rgba(232,238,247,.45), 0 0 38px 12px rgba(232,238,247,.18);
  transition: width .5s var(--ease), height .5s var(--ease), background .5s var(--ease);
}
.cursor.hover {
  width: 28px; height: 28px;
  background: rgba(232,238,247,.85);
  box-shadow: 0 0 24px 6px rgba(232,238,247,.55), 0 0 60px 18px rgba(232,238,247,.20);
  mix-blend-mode: screen;
}
.trail { width: 6px; height: 6px; background: rgba(232,238,247,.45); filter: blur(1px); }
@media (hover: none) { .cursor, .trail { display: none; } }

/* ── Keyframes ── */
@keyframes heroIn  { to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn  { to { opacity: .85; } }
@keyframes breath  { 0%,100%{opacity:.32;} 50%{opacity:.68;} }
