/* ============================================================
   Wesley & Claire — shared design tokens
   Palette: Wedding_Palette.png (White · Green · Lemon)
   Fonts:   Heritage system — Cormorant Garamond + Great Vibes + Montserrat
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Great+Vibes&family=Montserrat:wght@300;400;500;600&display=swap');

:root{
  /* neutrals — white & natural wood */
  --soft-white:#F8F4EE;
  --dover:#F0EADC;
  --oat:#D9CFB0;
  --oak:#AE9568;

  /* greens — vibrant foliage */
  --leaf:#6FA03E;
  --grass:#4F8A2F;
  --forest:#34672A;

  /* yellows — lemon daisy */
  --soft-lemon:#FBE7A0;
  --lemon:#F6CD44;     /* hero colour */
  --honey:#C3890B;

  /* ink / text */
  --ink:#2c3327;       /* deep green-charcoal */
  --soft-ink:#5b6353;
  --line:rgba(52,103,42,.18);

  /* tints for soft sectioned (Wonderlust-style) backgrounds */
  --tint-green:#EDF3E4;
  --tint-lemon:#FBF3D6;

  /* fonts */
  --display:"Cormorant Garamond",Georgia,serif;
  --script:"Great Vibes",cursive;
  --sans:"Montserrat",-apple-system,system-ui,sans-serif;

  /* misc */
  --maxw:1120px;
  --radius:16px;
  --shadow:0 24px 60px rgba(44,51,39,.16);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--soft-white);
  -webkit-font-smoothing:antialiased;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}

/* shared type primitives (options may override) */
.eyebrow{font-family:var(--sans);font-weight:500;text-transform:uppercase;
  letter-spacing:.32em;font-size:12px;color:var(--honey);margin:0 0 .5em}
.script{font-family:var(--script);color:var(--grass);font-weight:400;line-height:1}
.display{font-family:var(--display);font-weight:500;line-height:1.05;color:var(--ink)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px)}

/* scroll reveal */
[data-reveal]{opacity:0;transform:translateY(22px);
  transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* shared lightbox (created by std.js) */
.std-lightbox{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;
  background:rgba(28,33,25,.92);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
  padding:4vmin;cursor:zoom-out}
.std-lightbox.open{opacity:1;visibility:visible}
.std-lightbox img{max-width:94vw;max-height:92vh;width:auto;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.std-lightbox__close{position:fixed;top:18px;right:22px;background:none;border:0;color:#fff;font-size:38px;
  line-height:1;cursor:pointer;opacity:.8}
.std-lightbox__close:hover{opacity:1}

/* body scroll lock while cover is up */
body:not(.std-entered){overflow:hidden}

/* shared cover transitions (the cover stays CLOSED until tapped; engine handles play) */
[data-std-cover]{transition:opacity 1.2s var(--ease),visibility 1.2s var(--ease)}
[data-std-cover].is-gone{opacity:0;visibility:hidden}
/* while the opening animation plays, fade out the tap prompt */
[data-std-cover].is-opening [data-std-enter]{opacity:0;pointer-events:none;transition:opacity .55s var(--ease)}
