/* Shared styles for all wedding-site pages (landing, schedule, travel).
   Extracted from the original index.html inline <style> so every page stays thin. */
:root {
  --parchment: #F5F0E8;
  --parchment-deep: #ECE5D6;
  --espresso: #2C2A25;
  --travertine: #B8A98C;
  --umber: #7A6E5A;
  --gold: #C8B89A;
  --hairline: rgba(124, 110, 90, 0.28);
  --hairline-soft: rgba(124, 110, 90, 0.16);
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  background: var(--parchment);
  color: var(--espresso);
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body { overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

/* Type scale */
.serif { font-family: 'Cormorant Garamond', serif; font-weight: 300; }
.serif-italic { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 300; }
.micro {
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-weight: 400;
  color: var(--umber);
}
.small-caps {
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 400;
}

/* Layout helpers */
.container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.container-narrow { max-width: 880px; margin: 0 auto; padding: 0 32px; }
@media (max-width: 640px) {
  .container, .container-narrow { padding: 0 22px; }
}

.hairline { border: 0; border-top: 0.5px solid var(--hairline); }
.hairline-v { width: 0.5px; background: var(--hairline); }

/* Scroll reveal */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 1.1s cubic-bezier(.2,.6,.2,1), transform 1.1s cubic-bezier(.2,.6,.2,1); }
.reveal.in { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }

/* Placeholder imagery (subtle, editorial) */
image-slot.editorial::part(placeholder),
image-slot.editorial[data-empty] {
  background:
    repeating-linear-gradient(135deg, rgba(124,110,90,0.06) 0 1px, transparent 1px 14px),
    linear-gradient(180deg, #E8DFCC 0%, #D9CDB2 100%);
}
.ph {
  position: relative;
  overflow: hidden;
  background:
    repeating-linear-gradient(135deg, rgba(124,110,90,0.07) 0 1px, transparent 1px 16px),
    linear-gradient(180deg, #E8DFCC 0%, #D2C3A4 100%);
}
.ph::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 14px 16px;
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: rgba(44, 42, 37, 0.5);
  pointer-events: none;
}

/* Selection */
::selection { background: var(--gold); color: var(--espresso); }
