/* Photo Album — silk foundation (T003).
   Ported from silk-design foundation.css: 9-role color fallbacks (dark-neutral),
   14-step fluid type scale, content width, thin scrollbar, overscroll lock,
   reduced-motion gate. Tailwind @theme block dropped (plain CSS site).
   theme.css's quadrant tables override the :root fallbacks (loaded after this file). */

:root {
  /* Colors — dark-neutral fallbacks; theme.css sets the live values per skin/mode */
  --background: #0a0a0a;
  --card: #1a1a1a;
  --foreground: #eeeded;
  --primary-cta: #00ffab;
  --primary-cta-text: #000000;
  --secondary-cta: #1a1a1a;
  --secondary-cta-text: #ffffffe6;
  --frame-text: var(--foreground);   /* fallback; skins override — frame surfaces can keep their light/dark identity */
  --accent: #737373;
  --background-accent: #00d5c7;

  /* Border Radius - Pill (fallback; quadrants override) */
  --radius: 2rem;

  /* Content Width */
  --width-content-width: clamp(40rem, 72.5vw, 100rem);

  /* Motion easings */
  --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);   /* spec V3/V8 */

  /* Mask utilities (masks.css) */
  --vw-1_5: 1.5vw;
  --width-x-padding-mask-fade: 5vw;

  /* Typography — 14-step fluid scale (silk verbatim) */
  --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
  --text-xs: clamp(0.54rem, 0.72vw, 0.72rem);
  --text-sm: clamp(0.615rem, 0.82vw, 0.82rem);
  --text-base: clamp(0.69rem, 0.92vw, 0.92rem);
  --text-lg: clamp(0.75rem, 1vw, 1rem);
  --text-xl: clamp(0.825rem, 1.1vw, 1.1rem);
  --text-2xl: clamp(0.975rem, 1.3vw, 1.3rem);
  --text-3xl: clamp(1.2rem, 1.6vw, 1.6rem);
  --text-4xl: clamp(1.5rem, 2vw, 2rem);
  --text-5xl: clamp(2.025rem, 2.75vw, 2.75rem);
  --text-6xl: clamp(2.475rem, 3.3vw, 3.3rem);
  --text-7xl: clamp(3rem, 4vw, 4rem);
  --text-8xl: clamp(3.5rem, 4.5vw, 4.5rem);
  --text-9xl: clamp(5.25rem, 7vw, 7rem);
}

/* Smaller laptops (< 14" MacBook) */
@media (max-width: 1440px) and (min-width: 769px) {
  :root {
    --width-content-width: 87.5vw;
  }
}

/* Mobile typography (vw-based so headings track the viewport) */
@media (max-width: 768px) {
  :root {
    --text-2xs: 2.5vw;
    --text-xs: 2.75vw;
    --text-sm: 3vw;
    --text-base: 3.25vw;
    --text-lg: 3.5vw;
    --text-xl: 4.25vw;
    --text-2xl: 5vw;
    --text-3xl: 6vw;
    --text-4xl: 7vw;
    --text-5xl: 7.5vw;
    --text-6xl: 8.5vw;
    --text-7xl: 10vw;
    --text-8xl: 12vw;
    --text-9xl: 14vw;
    --width-content-width: 80vw;
  }
}

/* Thin scrollbar (theme-aware thumb) */
* {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--accent) 30%, transparent) transparent;
}

/* Kill rubber-banding; Lenis owns the root scroll feel */
html,
body {
  overscroll-behavior: none;
  overscroll-behavior-y: none;
}

/* Reduced motion — hard gate (spec §6). motion.js mirrors this in JS. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .silk-hidden, .silk-hidden-blur { opacity: 1 !important; transform: none !important; filter: none !important; }
  .silk-word { transform: none !important; }
  .silk-glow::after { display: none !important; }
}
