:root {
--bg: #1A1A1A;
--bg-2: #222222;
--cream: #F2EDE6;
--accent: #E89B6C;
--accent-soft: #F0B98D;
--accent-dim: #C97B4A;
--ease-quiet: cubic-bezier(.22, 1, .36, 1);
--ease-precise: cubic-bezier(.4, 0, .2, 1);
--ease-emphasis: cubic-bezier(.16, 1, .3, 1);
}
* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--cream); font-family: 'Inter', sans-serif; font-weight: 300; line-height: 1.65; overflow-x: hidden; }
.font-serif { font-family: 'Cormorant Garamond', serif; }

/* Eyebrow label */
.eyebrow {
font-family: 'Inter', sans-serif;
font-weight: 500;
font-size: 11px;
letter-spacing: 0.38em;
text-transform: uppercase;
color: var(--accent);
display: inline-flex;
align-items: center;
gap: 0.75rem;
}
.eyebrow::after {
content: '';
display: inline-block;
width: 0;
height: 1px;
background: currentColor;
transition: width 900ms var(--ease-quiet) 400ms;
}
[data-reveal].is-in .eyebrow::after { width: 2.5rem; }

/* Line mask reveal */
.line-mask { overflow: hidden; display: block; }
.line-inner {
display: block;
transform: translateY(110%);
transition: transform 1.2s var(--ease-quiet);
}
[data-reveal].is-in .line-inner { transform: translateY(0); }
[data-reveal].is-in .line-inner.d1 { transition-delay: 0.13s; }
[data-reveal].is-in .line-inner.d2 { transition-delay: 0.26s; }
[data-reveal].is-in .line-inner.d3 { transition-delay: 0.39s; }

/* Fade up */
.fade-up {
opacity: 0;
transform: translateY(28px);
transition: opacity 1s var(--ease-quiet), transform 1s var(--ease-quiet);
}
[data-reveal].is-in .fade-up { opacity: 1; transform: translateY(0); }
[data-reveal].is-in .fade-up.d1 { transition-delay: 0.15s; }
[data-reveal].is-in .fade-up.d2 { transition-delay: 0.3s; }
[data-reveal].is-in .fade-up.d3 { transition-delay: 0.45s; }
[data-reveal].is-in .fade-up.d4 { transition-delay: 0.6s; }

/* Ken Burns */
@keyframes kenburns {
0%   { transform: scale(1.05) translate(-1%, -1%); }
100% { transform: scale(1.18) translate(1.5%, 1.5%); }
}
.kenburns { animation: kenburns 26s ease-in-out infinite alternate; }
@keyframes breathe {
0%, 100% { transform: scale(1); }
50%      { transform: scale(1.04); }
}
.breathe { animation: breathe 14s ease-in-out infinite; }

/* Spinning badge */
@keyframes spin-cw  { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@keyframes spin-ccw { from { transform: rotate(0); } to { transform: rotate(-360deg); } }
.spin-cw  { animation: spin-cw  24s linear infinite; }
.spin-ccw { animation: spin-ccw 20s linear infinite; }

/* Paired mirror offset */
.pair__left, .pair__right {
opacity: 0;
transition: opacity 1.2s var(--ease-emphasis), transform 1.2s var(--ease-emphasis);
}
.pair__left  { transform: translateX(-30px); }
.pair__right { transform: translateX(30px); transition-delay: 0.15s; }
[data-reveal].is-in .pair__left,
[data-reveal].is-in .pair__right { opacity: 1; transform: translateX(0); }

/* Hairline rule */
.hairline {
height: 1px;
background: linear-gradient(to right, transparent, rgba(232,155,108,0.4), transparent);
}
.hairline-v {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(232,155,108,0.4), transparent);
}

/* Marquee */
@keyframes marquee {
from { transform: translateX(0); }
to   { transform: translateX(-50%); }
}
.marquee-track {
display: flex;
width: max-content;
animation: marquee 60s linear infinite;
}
.marquee-track:hover { animation-play-state: paused; }

/* Hero entrance */
@keyframes heroLineIn {
from { transform: translateY(110%); }
to   { transform: translateY(0); }
}
@keyframes heroFadeIn {
from { opacity: 0; transform: translateY(20px); }
to   { opacity: 1; transform: translateY(0); }
}
.hero-line {
display: block;
transform: translateY(110%);
animation: heroLineIn 1.2s var(--ease-quiet) forwards;
}
.hero-line.d1 { animation-delay: 0.5s; }
.hero-line.d2 { animation-delay: 0.65s; }
.hero-fade {
opacity: 0;
animation: heroFadeIn 1s var(--ease-quiet) forwards;
}
.hero-fade.d3 { animation-delay: 1.1s; }
.hero-fade.d4 { animation-delay: 1.4s; }
.hero-fade.d5 { animation-delay: 1.7s; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: rgba(232,155,108,0.25); }
::-webkit-scrollbar-thumb:hover { background: rgba(232,155,108,0.45); }

/* Selection */
::selection { background: var(--accent); color: var(--bg); }

/* Nav blur on scroll */
#navbar.scrolled {
background: rgba(26,26,26,0.85);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(232,155,108,0.1);
}

/* Number badge */
.num-badge {
font-family: 'Cormorant Garamond', serif;
font-style: italic;
font-weight: 400;
font-size: 2.5rem;
color: var(--accent);
line-height: 1;
}

/* Subtle card border */
.card-line { border: 1px solid rgba(232,155,108,0.12); transition: border-color 0.5s var(--ease-quiet); }
.card-line:hover { border-color: rgba(232,155,108,0.35); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
}
.kenburns, .breathe, .spin-cw, .spin-ccw, .marquee-track { animation: none !important; }
.hero-line, .hero-fade { opacity: 1 !important; transform: none !important; }
.line-inner, .fade-up, .pair__left, .pair__right { opacity: 1 !important; transform: none !important; }
}

/* Touch / coarse pointer fallback */
@media (pointer: coarse) {
.marquee-track:hover { animation-play-state: running; }
}