/* Layer 3 — theme tokens (light / dark / night) + hover polish + entrance motion.
   One accent only: the warm lamplight amber from the BFV brand imagery. */

:root, [data-theme="dark"] {
  --bg:        hsl(30 6% 7%);
  --surface:   hsl(30 5% 11%);
  --surface-2: hsl(30 5% 15%);
  --border:    hsl(30 5% 20%);
  --border-2:  hsl(30 5% 30%);
  --text:      hsl(35 12% 92%);
  --text-2:    hsl(35 8% 70%);
  --text-3:    hsl(35 6% 56%);
  --accent:      hsl(36 68% 60%);
  --accent-text: hsl(38 72% 66%);
  --on-accent:   hsl(30 30% 8%);
  --hero-bg:   hsl(0 0% 4%);
  color-scheme: dark;
}
[data-theme="light"] {
  --bg:        hsl(40 20% 98%);
  --surface:   hsl(0 0% 100%);
  --surface-2: hsl(40 16% 95%);
  --border:    hsl(35 12% 86%);
  --border-2:  hsl(35 10% 74%);
  --text:      hsl(30 10% 12%);
  --text-2:    hsl(30 6% 32%);
  --text-3:    hsl(30 5% 42%);
  --accent:      hsl(32 72% 34%);
  --accent-text: hsl(30 75% 30%);
  --on-accent:   hsl(0 0% 100%);
  --hero-bg:   hsl(0 0% 4%);
  color-scheme: light;
}
[data-theme="night"] {
  --bg:        hsl(0 0% 0%);
  --surface:   hsl(30 8% 5%);
  --surface-2: hsl(30 8% 8%);
  --border:    hsl(30 8% 13%);
  --border-2:  hsl(30 8% 20%);
  --text:      hsl(32 22% 78%);
  --text-2:    hsl(32 14% 60%);
  --text-3:    hsl(32 10% 48%);
  --accent:      hsl(30 55% 50%);
  --accent-text: hsl(32 60% 58%);
  --on-accent:   hsl(30 30% 6%);
  --hero-bg:   hsl(0 0% 0%);
  color-scheme: dark;
}

:root {
  --radius: 8px;
  --radius-lg: calc(var(--radius) * 2);
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px; --sp-7: 32px; --sp-8: 48px;
  --t: 170ms;
  --shadow-1: none; --shadow-2: none; --shadow-3: none;
}

/* Hover polish: card lift + button sheen (shadow values intentionally hardcoded — see framework) */
.card {
  transition:
    transform var(--t) cubic-bezier(.22, .7, .25, 1),
    box-shadow var(--t) cubic-bezier(.22, .7, .25, 1),
    border-color var(--t) ease;
}
@media (hover: hover) {
  .card:hover {
    transform: translateY(-6px);
    box-shadow: 0 4px 12px hsl(0 0% 0% / .28), 0 12px 32px hsl(0 0% 0% / .18);
    border-color: var(--accent);
  }
}
.btn { position: relative; overflow: hidden; transition: transform var(--t) ease, box-shadow var(--t) ease; }
.btn::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, hsl(0 0% 100% / .22) 50%, transparent 70%);
  transform: translateX(-100%);
}
.btn:hover::after { animation: btn-sheen 720ms ease forwards; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
@keyframes btn-sheen { to { transform: translateX(100%); } }

/* Page entrance — 200ms max, no exit fade */
.page-wrap { animation: page-in 200ms cubic-bezier(.25, .46, .45, .94) both; }
@keyframes page-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .card, .card:hover { transform: none; transition: border-color var(--t) ease; }
  .btn, .btn:hover { transform: none; transition: none; }
  .btn::after { display: none; }
  .page-wrap { animation: none; }
}

@media print {
  .site-header, .theme-toggle, .hero { display: none !important; }
  body { background: #fff; color: #000; }
}
