/* Color-only personalization. Original layout, type, decoration and opening remain in index.html. */
:root { --ivory:#f7f1e6; --paper:#fcf9f2; --olive:#879483; --olive-dark:#4d5b50; --gold:#b5a184; --ink:#343634; --line:#c8c8b8; }
.hero { background-image:url('images/hero-ivory-blonde.webp'); }
.countdown-section { background:radial-gradient(circle at 50% 14%,rgba(255,255,255,.95),rgba(252,249,242,.52) 33%,transparent 61%),#f7f1e6; }
.countdown-heading,.countdown strong,.parent-names,.godparent-names,.parents-ornament,.itinerary-node { color:#805a35; }
.countdown span,.date-line,.parents-subtitle,.venue-subtitle,.itinerary-subtitle,.venue-address,.gallery-subtitle { color:#805a35; }
.parents-title,.venue-title,.venue-role,.venue-name,.itinerary-title,.itinerary-copy,.dress-code-title,.rsvp-title,.gallery-title { color:var(--olive-dark); }
.gift-card-title,.gift-copy,.dress-code-note,.kids-note,.rsvp-intro,.rsvp-deadline { color:var(--ink); }
.map-button { color:var(--olive-dark); border-color:var(--gold); }
.map-button svg { fill:var(--gold); }
.transfer-button,.save-date-universal { background:var(--olive-dark); border-color:var(--gold); }
.countdown div:not(:last-child)::after { background:linear-gradient(transparent,#c8beac,transparent); }
.itinerary-layout::before { background:linear-gradient(transparent,#b5a184 3%,#b5a184 97%,transparent); }
/* Preserve centered names through the existing reveal animation. */
.motion-ready .hero-names.reveal-up { transform:translate(-50%,12px); }
.motion-ready .hero-names.reveal-up.is-visible { transform:translateX(-50%); }
/* Approved bilingual control. */
.language-toggle { position:fixed; z-index:10000; top:max(14px,env(safe-area-inset-top)); right:max(14px,env(safe-area-inset-right)); display:flex; padding:4px; border:1px solid #d9d0bf; border-radius:30px; background:#fcf9f2f5; box-shadow:0 3px 14px #34363415; }
.language-toggle button { border:0; border-radius:24px; padding:10px 12px; min-width:44px; min-height:40px; background:transparent; color:#4d5b50; font:500 12px 'Montserrat',sans-serif; cursor:pointer; }
.language-toggle button[aria-pressed=true] { background:#4d5b50; color:white; }
button:focus-visible,a:focus-visible { outline:2px solid #4d5b50; outline-offset:4px; }

/* Approved ivory, sage and coffee contrast; artwork keeps its original colors. */
.parent-role { color:var(--olive-dark); }
.parents-grid { grid-template-columns:minmax(0,1fr); gap:24px; max-width:350px; }
.parent-family { padding:4px 12px; }
.parent-family + .parent-family { border-left:0; border-top:1px solid var(--gold); padding-top:25px; }
.parent-names { white-space:normal; line-height:1.08; }
.save-date-universal { background:var(--olive-dark); color:white; }
.closing-date { color:#805a35; }
.hero-transition img { width:54%; left:0; bottom:0; transform:scaleY(-1); }
.hero-transition img.right { left:auto; right:0; transform:scale(-1,-1); }
.venue-corner { width:230px; height:239px; left:-40px; top:-10px; }
.venue-corner.right { left:auto; right:-40px; }

.countdown span { color:var(--olive-dark); }
.closing-thanks { color:var(--ink); }

/* Venue illustration aligned close to its name; address receives a readable size. */
.venue-art { height:auto; max-height:200px; object-position:center bottom; margin-bottom:-8px; }
.venue-name { margin-bottom:14px; }
.venue-address { font-size:17px; }

.closing-garland { background-image:url("images/timeline-footer-ivory.png"); clip-path:polygon(0 45px,15% 45px,15% 0,85% 0,85% 45px,100% 45px,100% 100%,0 100%); }

/* Match the visible calendar circle to the music control. */
.save-the-date-button { background:var(--olive-dark); }

.hero-transition img { mask-image:url("images/hero-transition-satin-mask.png"); mask-size:100% 100%; mask-repeat:no-repeat; }
.gift-card-art[src$="cash-gift-slender.jpg"] { mask-image:url("images/cash-gift-ivory.png"); mask-size:100% 100%; mask-repeat:no-repeat; }

/* Story placeholder: preserve the portrait frame and center only its heading. */
#story-card { min-height:0; aspect-ratio:923 / 1704; padding:0 30px; margin:35px auto 0; justify-content:center; }
#story-title { margin:0; color:var(--olive-dark); font-family:"Italianno",cursive; font-size:54px; font-weight:400; line-height:1; }
#story-card .countdown-frame-art { mask-image:url("images/countdown-frame-photoroom.webp"); mask-size:100% 100%; mask-repeat:no-repeat; }

/* Editorial photo gallery within the existing floral frame. */
#story-card { padding:0; display:block; position:relative; }
#story-title { position:absolute; top:21%; left:10%; width:80%; text-align:center; font-size:clamp(36px,10.5vw,57px); }
.moments-gallery { position:absolute; top:30%; left:10%; width:80%; height:43%; touch-action:pan-y; }
.moments-photo { position:absolute; inset:0 11%; display:flex; align-items:center; justify-content:center; }
#moments-image { display:block; width:auto; height:auto; max-width:100%; max-height:100%; box-sizing:border-box; border:4px solid #fffdf8; box-shadow:0 3px 12px #805a3520; object-fit:contain; opacity:1; transition:opacity .25s ease; }
#moments-image.changing { opacity:0; }
.moments-arrow { position:absolute; top:calc(50% - 24px); width:34px; height:48px; border:0; padding:0; background:transparent; color:var(--olive-dark); font:38px/1 Georgia,serif; cursor:pointer; }
.moments-prev { left:-4px; } .moments-next { right:-4px; }
.moments-controls { position:absolute; top:76%; left:20%; width:60%; display:flex; align-items:center; justify-content:center; gap:12px; color:var(--olive-dark); }
#moments-counter { font-size:14px; letter-spacing:3px; }
.moments-arrow:focus-visible { outline:2px solid var(--olive-dark); outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { #moments-image { transition:none; } }

/* Matching emphasis for guest attire and age notes. */
.dress-code-note, .kids-note { font-size:16px; font-weight:600; font-style:normal; line-height:1.5; }

#family-blessing { max-width:360px; margin:0 auto 30px; color:var(--olive-dark); font-family:"Cormorant Garamond",serif; font-size:18px; font-weight:600; line-height:1.5; text-align:center; }
.venue-block .venue-role { margin-bottom:2px; }
.venue-time { margin:0 0 12px; color:var(--olive-dark); font-family:"Cormorant Garamond",serif; font-size:13px; font-weight:600; letter-spacing:.1em; line-height:1.2; }
.hero .sparkle { visibility:visible; border-radius:50%; background:radial-gradient(circle,#fff 0 13%,#fffde8cc 24%,#fff8df55 43%,transparent 72%); filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 9px #fff7dd); animation:hero-glint 3.2s ease-in-out var(--spark-delay,0s) infinite; }
.hero .sparkle::before { width:170%; height:2px; background:linear-gradient(90deg,transparent,#fff,transparent); filter:blur(.4px); }
.hero .sparkle::after { width:2px; height:170%; background:linear-gradient(transparent,#fff,transparent); filter:blur(.4px); }
.hero .sparkle:nth-child(3n) { animation-duration:2.4s; }
.hero .sparkle:nth-child(4n) { animation-duration:3.8s; }
@keyframes hero-glint { 0%,18%,70%,100% { opacity:0; transform:scale(.4); } 32% { opacity:.35; transform:scale(.8); } 43% { opacity:1; transform:scale(1.5); } 55% { opacity:.6; transform:scale(1); } }
/* Keep the explicitly requested staggered light pulses active. */

/* Tighter parents/gallery spacing and a subtle leftward cover crop. */
#parents-section { padding-bottom:50px; }
.hero { background-position:57.5% center; }
