/* =====================================================================
   Rive Urbaine · STAGING — shared design tokens (loaded by every skin)
   Brand: Deep Forest #464B41 · Eucalyptus #98AA9D · Linen Mist #D0DAD1
          Blush Limestone #E7D3C8 · gold #B0875B · cream
   Type:  Cormorant Garamond (display serif) · Jost (caps/labels) · Mulish (body)
   ===================================================================== */

/* ---------- Self-hosted fonts ---------- */
@font-face { font-family:"Cormorant Garamond"; font-style:normal; font-weight:400;
  src:url("/assets/fonts/cormorant-garamond-v21-latin-regular.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; font-style:italic; font-weight:400;
  src:url("/assets/fonts/cormorant-garamond-v21-latin-italic.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; font-style:normal; font-weight:500;
  src:url("/assets/fonts/cormorant-garamond-v21-latin-500.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; font-style:italic; font-weight:500;
  src:url("/assets/fonts/cormorant-garamond-v21-latin-500italic.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Cormorant Garamond"; font-style:normal; font-weight:600;
  src:url("/assets/fonts/cormorant-garamond-v21-latin-600.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Jost"; font-style:normal; font-weight:300;
  src:url("/assets/fonts/jost-v20-latin-300.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Jost"; font-style:normal; font-weight:400;
  src:url("/assets/fonts/jost-v20-latin-regular.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Jost"; font-style:normal; font-weight:500;
  src:url("/assets/fonts/jost-v20-latin-500.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Mulish"; font-style:normal; font-weight:300;
  src:url("/assets/fonts/mulish-v18-latin-300.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Mulish"; font-style:normal; font-weight:400;
  src:url("/assets/fonts/mulish-v18-latin-regular.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Mulish"; font-style:normal; font-weight:500;
  src:url("/assets/fonts/mulish-v18-latin-500.ttf") format("truetype"); font-display:swap; }
@font-face { font-family:"Mulish"; font-style:normal; font-weight:600;
  src:url("/assets/fonts/mulish-v18-latin-600.ttf") format("truetype"); font-display:swap; }

:root {
  /* brand palette */
  --forest:    #464B41;
  --forest-dk: #2F332D;
  --forest-dker:#20241E;
  --eucalyptus:#98AA9D;
  --linen:     #D0DAD1;
  --blush:     #E7D3C8;
  --cream:     #F7F4ED;
  --cream-2:   #F1ECE1;
  --paper:     #FBF9F4;
  --ink:       #2B302B;
  --ink-soft:  #5A5F56;
  --gold:      #B0875B;
  --gold-lt:   #C7A277;
  --white:     #ffffff;

  /* soft washes */
  --blush-1:   #F5EDE6;
  --blush-2:   #EFE0D6;
  --euca-1:    #EAEFEA;
  --euca-2:    #DCE6DD;
  --linen-1:   #E2EAE3;

  --serif: "Cormorant Garamond", Georgia, serif;
  --caps:  "Jost", system-ui, sans-serif;
  --body:  "Mulish", system-ui, sans-serif;

  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { background: var(--blush); color: var(--forest-dk); }

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* ---------- Scroll-reveal (shared engine, styled per skin via transforms) ---------- */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0s); will-change: opacity, transform; }
[data-reveal].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ---------- Preview banner (admin "Preview" → ?preview=1) ---------- */
.preview-banner { position: fixed; z-index: 9999; left: 0; right: 0; top: 0; display: none;
  align-items: center; gap: 12px; padding: 10px 18px; background: var(--forest-dk); color: #fff;
  font-family: var(--caps); font-size: 13px; letter-spacing: .04em; }
.cms-preview .preview-banner { display: flex; }
.preview-banner__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(176,135,91,.25); }
.preview-banner__exit { margin-left: auto; color: var(--blush); text-decoration: underline; }
.preview-banner.is-draft { background: #6b4f2a; }
.cms-preview [data-reveal] { opacity: 1 !important; transform: none !important; }
