/* ===================================================================
   ASVAN YAPI - Design System (Dark Editorial Luxury)
   Locked direction: OLED black + warm stone, Fraunces display + Plus Jakarta
   body, Double-Bezel cards, button-in-button CTAs, custom cubic-bezier
   motion, IntersectionObserver reveals. High-end-visual-design compliant.

   Accent = the ASVAN logo's own ink (#dedbd5 warm stone), not gold. The
   --gold* token names are kept so every existing rule keeps working; they
   now carry a monotone stone ramp that sits between --muted and --ivory:
     ivory f4efe6 > bright d8d3c7 > gold c0b9a8 > muted a39c8e > dim 6f695e
   =================================================================== */

:root {
  /* --- palette (from the ASVAN stone-on-dark logo) --- */
  --bg:          #060505;
  --bg-elev:     #0e0d0c;
  --bg-card:     #131110;
  --bg-card-2:   #1a1715;
  --gold:        #c0b9a8;
  --gold-bright: #d8d3c7;
  --gold-deep:   #7d776a;
  --ivory:       #f4efe6;
  --muted:       #a39c8e;
  --muted-dim:   #6f695e;
  --line:        rgba(255,255,255,0.08);
  --line-gold:   rgba(216,211,199,0.18);
  --inner-hi:    inset 0 1px 1px rgba(255,255,255,0.10);
  --glow-gold:   0 0 60px -12px rgba(192,185,168,0.30);

  /* --- type --- */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;

  /* --- fluid type scale --- */
  --fs-eyebrow: 0.72rem;
  --fs-body:    clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
  --fs-lead:    clamp(1.15rem, 1rem + 0.8vw, 1.5rem);
  --fs-h3:      clamp(1.4rem, 1.1rem + 1.4vw, 2rem);
  --fs-h2:      clamp(2rem, 1.3rem + 3.2vw, 4rem);
  --fs-h1:      clamp(2.6rem, 1.2rem + 6vw, 7rem);
  --fs-mega:    clamp(3.4rem, 0.5rem + 12vw, 12rem);

  /* --- spacing / radius / motion --- */
  --pad-section: clamp(5rem, 3rem + 8vw, 11rem);
  --gutter:      clamp(1.25rem, 0.5rem + 3vw, 3rem);
  --maxw:        1320px;
  --r-lg: 2rem;
  --r-md: calc(2rem - 0.375rem);
  --r-sm: 0.85rem;
  --ease:      cubic-bezier(0.32, 0.72, 0, 1);
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --dur:       0.7s;
}

/* --- reset-ish --- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ivory);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, video, canvas { max-width: 100%; display: block; }
figure { margin: 0; }
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 380; line-height: 1.02; letter-spacing: -0.015em; margin: 0; }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); font-weight: 420; }
p  { margin: 0 0 1rem; color: var(--muted); }
strong { color: var(--ivory); font-weight: 600; }

/* --- film-grain overlay (fixed, pointer-events none) --- */
.grain {
  position: fixed; inset: 0; z-index: 60; pointer-events: none;
  opacity: 0.035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --- layout --- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
section { padding-block: var(--pad-section); position: relative; }

/* --- eyebrow tag --- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow); font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.24em;
  color: var(--gold-bright);
  padding: 0.4rem 0.85rem; border-radius: 999px;
  border: 1px solid var(--line-gold);
  background: rgba(192,185,168,0.05);
}
.eyebrow::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }

/* --- Double-Bezel card (outer shell + inner core) --- */
.bezel {
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 0.5rem;
}
.bezel > .core {
  background: var(--bg-card);
  border-radius: var(--r-md);
  box-shadow: var(--inner-hi);
  overflow: hidden;
  height: 100%;
}

/* --- island button + button-in-button --- */
.btn {
  --b: var(--gold);
  display: inline-flex; align-items: center; gap: 0.9rem;
  padding: 0.7rem 0.7rem 0.7rem 1.5rem;
  border-radius: 999px; border: 1px solid transparent;
  font-family: var(--font-body); font-weight: 600; font-size: 0.95rem;
  letter-spacing: 0.01em; cursor: pointer;
  background: var(--b); color: #17130a;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
  will-change: transform;
}
.btn:hover { box-shadow: var(--glow-gold); }
.btn:active { transform: scale(0.98); }
.btn .ico {
  width: 2rem; height: 2rem; border-radius: 999px;
  display: grid; place-items: center; flex: none;
  background: rgba(0,0,0,0.14);
  transition: transform var(--dur) var(--ease);
}
.btn:hover .ico { transform: translate(3px, -1px) scale(1.05); }
.btn.ghost { background: transparent; color: var(--ivory); border-color: var(--line-gold); }
.btn.ghost .ico { background: rgba(255,255,255,0.08); }
.btn.ghost:hover { background: rgba(192,185,168,0.06); box-shadow: none; }

/* --- scroll-reveal (paired with IntersectionObserver) --- */
.reveal { opacity: 0; transform: translateY(2.5rem); filter: blur(6px);
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out), filter 0.9s var(--ease-out); }
.reveal.in { opacity: 1; transform: none; filter: none; }
.reveal[data-d="1"] { transition-delay: 0.08s; }
.reveal[data-d="2"] { transition-delay: 0.16s; }
.reveal[data-d="3"] { transition-delay: 0.24s; }

/* --- scroll-progress hairline --- */
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; z-index: 70;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-bright)); }

/* --- focus --- */
:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 3px; border-radius: 4px; }

/* --- utilities --- */
.gold { color: var(--gold-bright); }
.serif { font-family: var(--font-display); }
.center { text-align: center; }
.lead { font-size: var(--fs-lead); color: var(--ivory); line-height: 1.5; }
