@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600&display=swap');
footer .footer-family-wishes{margin:20px auto 0;font:500 1.1rem/1.35 'Cormorant Garamond',serif;color:#f4e8d3}
footer .footer-waiting{margin:12px auto 0;font:600 .72rem/1.5 Montserrat,Arial,sans-serif;letter-spacing:.14em;color:#c9aa73}
footer .creator-credit{position:absolute;right:14px;bottom:76px;width:max-content;max-width:calc(100% - 28px);display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#e8d4ad;text-align:left}
footer .creator-credit-logo{width:34px;height:34px;flex:0 0 auto;fill:none;stroke:#c9aa73;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
footer .creator-credit-logo .creator-sparkle{stroke:#f4e8d3;stroke-width:1.4}
footer .creator-credit span{color:#f4e8d3;font:500 .78rem/1.15 'Cormorant Garamond',serif;letter-spacing:.055em;white-space:nowrap}
.site-shell footer{position:relative;padding-bottom:132px}
:root{--paper:#f5e8c9;--paper2:#fbf3df;--ink:#3b3025;--maroon:#7d2f20;--green:#536137;--gold:#c9aa73;--line:#d8c5a3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#d7c9ae;color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300;line-height:1.6}body:has(.mobile-nav){padding-bottom:76px}.grain{position:fixed;inset:0;pointer-events:none;opacity:.07;z-index:20;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.site-shell{width:min(100%,480px);margin:0 auto;background:var(--paper);overflow:hidden;box-shadow:0 0 45px rgba(50,35,20,.18);position:relative}.music-btn{position:absolute;z-index:12;top:14px;right:14px;border:1px solid rgba(255,255,255,.65);background:rgba(43,35,28,.48);backdrop-filter:blur(8px);color:#fff;padding:9px 12px;border-radius:30px;font-size:11px;letter-spacing:.08em}.music-btn span{font-size:9px}.opening{height:78vh;min-height:520px;max-height:760px;position:relative;background:#3a2e25}.opening-art{width:100%;height:100%;object-fit:cover;display:block}.opening-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,10,.04),rgba(20,15,10,.12) 55%,rgba(20,15,10,.58))}.scroll-cue{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);color:#fff;text-decoration:none;font-size:27px;width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;display:grid;place-items:center;animation:bob 1.8s infinite}@keyframes bob{50%{transform:translate(-50%,5px)}}section{position:relative}.section{padding:62px 20px}.section-tight{padding:28px 20px}.eyebrow{font-size:9px;letter-spacing:.25em;color:var(--maroon);font-weight:600;margin:0 0 8px}.center{text-align:center}.welcome{text-align:center;background:var(--paper2);padding-top:48px}.ornament{color:var(--maroon);font-size:20px;margin-bottom:5px}.welcome h1{font:600 clamp(2.35rem,10vw,3.3rem)/.98 'Cormorant Garamond',serif;color:var(--maroon);margin:8px 0 20px}.welcome h1 span{font-size:.65em}.lead{font:400 1.03rem/1.35 'Cormorant Garamond',serif;margin:0 auto;max-width:360px}.italic{font:italic 1.02rem/1.35 'Cormorant Garamond',serif;margin:25px auto 0;max-width:330px}.event-meta{margin:35px auto 0;display:grid;grid-template-columns:1fr;gap:0;max-width:340px}.event-meta>div{padding:18px 10px;border-bottom:1px solid var(--line)}.event-meta>div:last-child{border:0}.event-meta b{display:block;font-size:20px;color:var(--green)}.event-meta small,.event-meta em{display:block;font-style:normal;font-size:8px;letter-spacing:.12em}.event-meta strong{display:block;font:600 1.25rem/1.1 'Cormorant Garamond',serif}.countdown-wrap{background:#efe1c5;padding-top:20px}.countdown-card{border:1px solid var(--gold);padding:22px 13px;background:rgba(255,249,232,.48);text-align:center}.countdown-card .eyebrow{margin-bottom:12px}.timer{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.timer div{border:1px solid #dfc58f;padding:13px 5px;background:rgba(255,250,238,.58)}.timer strong{display:block;font:500 2rem/1 'Cormorant Garamond',serif;color:var(--maroon)}.timer span{font-size:7px;text-transform:uppercase;letter-spacing:.15em}.ceremony{background:#f8f0df}.reception{background:#efe4cd}.event-panel{display:flex;flex-direction:column;background:rgba(255,251,239,.6);border:1px solid #d9c8a8;box-shadow:0 10px 25px rgba(77,54,30,.05);border-radius:4px;overflow:hidden}.venue-image{background:#eee3cd;display:flex;justify-content:center;align-items:center}.venue-image img{width:100%;height:auto;max-height:520px;object-fit:contain;display:block}.venue-copy{padding:27px 23px}.venue-copy h2{font:600 2.2rem/.98 'Cormorant Garamond',serif;color:var(--green);margin:4px 0 15px}.detail{font-size:.78rem;line-height:1.55}.time{font:500 1rem/1.3 'Cormorant Garamond',serif}.map-btn,.share-btn{display:block;width:100%;border:0;background:var(--maroon);color:#fff;text-decoration:none;padding:14px 15px;text-align:center;font:600 9px Montserrat,sans-serif;letter-spacing:.13em;border-radius:3px;cursor:pointer;margin-top:16px}.story{background:#3a2e25;color:#f7eddb;text-align:center;padding-top:72px;padding-bottom:72px}.story .eyebrow{color:#c9a978}.story h2{font:600 2.65rem/1 'Cormorant Garamond',serif;color:#f7eddb;margin:5px 0 20px}.story p:last-child{font:400 1rem/1.6 'Cormorant Garamond',serif;margin:0 auto;max-width:360px}.gallery{background:#f7efdf}.gallery h2,.video h2,.wishes h2,.share h2{font:600 2.75rem/.95 'Cormorant Garamond',serif;color:var(--green);margin:0 0 20px}.gallery-intro{text-align:center;font:400 1rem/1.45 'Cormorant Garamond',serif;color:#76644d;margin:-4px auto 28px}.album{background:rgba(255,250,239,.65);border:1px solid var(--line);padding:14px;margin:0 auto 22px;box-shadow:0 8px 20px rgba(77,54,30,.045)}.album-heading{display:block;border-bottom:1px solid #decdae;padding:2px 3px 13px;margin-bottom:13px}.album-heading .eyebrow{margin:0 0 3px}.album-heading h3{font:600 1.85rem/1 'Cormorant Garamond',serif;color:var(--maroon);margin:0}.album-heading>span{display:block;font-size:7px;letter-spacing:.08em;color:#876e52;margin-top:5px}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gallery-photo{margin:0;background:#fbf6e9;border:1px solid #ddc9a7;overflow:hidden;border-radius:2px}.gallery-photo img{width:100%;height:235px;display:block;object-fit:cover}.gallery-photo:first-child img{object-fit:contain;background:#eee3cd;padding:4px}.gallery-photo figcaption{padding:9px 6px 11px;font:600 .95rem/1.05 'Cormorant Garamond',serif;color:#5a3b2c;text-align:center}.gallery-photo figcaption small{display:block;margin-top:5px;font:400 .51rem/1.35 Montserrat,sans-serif;letter-spacing:.03em;color:#876e52}.placeholder-photo{min-height:285px;display:flex;flex-direction:column;justify-content:center}.placeholder-photo>div{flex:1;min-height:215px;display:grid;place-items:center;text-align:center;color:#a68b68;font:500 1.05rem/1.15 'Cormorant Garamond',serif;letter-spacing:.12em;background:linear-gradient(135deg,#eee1c8,#e5d4b5)}.photo-note{text-align:center;font-size:7px;line-height:1.5;letter-spacing:.08em;color:#876e52;margin:20px 8px 0}.video{background:#eee0c4}.video-box{aspect-ratio:16/10;background:linear-gradient(135deg,#3a2e25,#987250);display:grid;place-items:center;color:#fff;position:relative}.play{width:62px;height:62px;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:1.2rem}.video-box p{position:absolute;bottom:8px;font-size:7px;letter-spacing:.08em}.opening-music-hint{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);z-index:8;border:1px solid rgba(255,255,255,.65);background:rgba(43,35,28,.42);backdrop-filter:blur(8px);color:#fff;padding:9px 13px;border-radius:24px;font:600 8px Montserrat,sans-serif;letter-spacing:.1em;white-space:nowrap}.wishes{background:#f7efdf;text-align:center}.wishes form{display:grid;gap:10px}.wishes input,.wishes textarea{border:1px solid #d4c2a1;background:#fffaf0;padding:13px;font:300 .75rem Montserrat;color:#3b3025;border-radius:2px}.wishes textarea{min-height:115px;resize:vertical}.wishes #wishStatus{min-height:18px;font-size:.65rem}.share{text-align:center;background:#efe2c6}.share-btn{margin-top:5px}.share .narrow{max-width:360px}footer{text-align:center;padding:42px 20px 90px;background:#2f261f;color:#f4e8d3}footer p{margin:0;font:italic 1rem 'Cormorant Garamond',serif}footer strong{display:block;font:600 1.55rem 'Cormorant Garamond',serif;margin:2px 0}footer span{color:#b95039}footer small{font-size:6px;letter-spacing:.25em}.mobile-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);height:66px;background:rgba(47,38,31,.96);backdrop-filter:blur(12px);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(201,170,115,.45)}.mobile-nav a{color:#f4e8d3;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;font:17px/1 serif}.mobile-nav span{font:600 7px Montserrat,sans-serif;letter-spacing:.12em;margin-top:5px;opacity:.8}.desktop{display:none}@media(min-width:700px){.site-shell{min-height:100vh}.opening{height:760px}.mobile-nav{position:fixed}.gallery-photo img{height:260px}}

/* Matching, slightly taller slots for the two professional portraits. */
.professional-photo img{height:310px;object-fit:contain;background:#eee3cd}

/* Family photos retain their full framing without dates or captions. */
.family-time-grid{align-items:start}
.family-time-grid .gallery-photo img{width:100%;height:auto;padding:0;object-fit:contain}
.family-time-grid .family-photo-wide{grid-column:1 / -1}

/* Guest attendance form. */
.rsvp{background:#efe4cd}
.rsvp-card{background:#fff9eb;border:1px solid var(--gold);padding:23px 18px 25px;box-shadow:0 8px 20px rgba(77,54,30,.05)}
.rsvp h2{font:600 2.15rem/1 'Cormorant Garamond',serif;color:var(--green);margin:0 0 20px}
.rsvp form{display:grid;gap:10px}
.rsvp-label,.rsvp legend{font-size:1rem;font-weight:500;line-height:1.4}
.rsvp input[type=text],.rsvp input[type=number]{width:100%;border:1px solid #d4c2a1;background:#fffdf7;padding:12px;font:400 1rem Montserrat,Arial,sans-serif;color:var(--ink);border-radius:2px}
.rsvp fieldset{border:0;padding:7px 0 3px;margin:0;min-width:0}
.rsvp legend{padding:0;margin-bottom:8px}
.rsvp-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.rsvp-options label{display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid #d4c2a1;background:#fffdf7;font-size:1rem;cursor:pointer}
.rsvp-options input{accent-color:var(--maroon);width:18px;height:18px;margin:0}
.rsvp-hint{font-size:.875rem;line-height:1.4;margin:-5px 0 0;color:#715a43}
.rsvp .map-btn{min-height:48px;font-size:.75rem}
.rsvp .map-btn:disabled{opacity:.6;cursor:wait}
.rsvp #rsvpStatus{font-size:.875rem;line-height:1.4;margin:0;min-height:1.4em}

/* Email wish form. */
.wish-label{font-size:.875rem;font-weight:500;text-align:left;margin-bottom:-8px}
.wishes .map-btn{min-height:48px;font-size:.75rem}
.wishes .map-btn:disabled{opacity:.6;cursor:wait}
.wish-delivery-note{font-size:.875rem;line-height:1.4;margin:3px 0 0}
.wishes #wishStatus{font-size:.875rem;line-height:1.4;margin:0;min-height:1.4em}

/* Illustrated, gently animated lakeside reception. */
.resort-illustration{height:250px;margin:0 18px 18px;position:relative;overflow:hidden;background:#55766b}
.resort-illustration img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;animation:reception-pan 16s ease-in-out infinite alternate}
.resort-illustration:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent 24%,rgba(16,33,27,.12) 42%,rgba(13,28,23,.82) 100%)}
.resort-illustration:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 36% 30%,rgba(255,255,220,.7) 0 1px,transparent 4px),radial-gradient(circle at 52% 26%,rgba(255,255,220,.7) 0 1px,transparent 4px),radial-gradient(circle at 59% 35%,rgba(255,255,220,.6) 0 1px,transparent 4px);animation:reception-sparkle 3.5s ease-in-out infinite alternate}
.resort-caption{position:absolute;inset:auto 8px 13px;z-index:2;color:#fff;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.75)}
.resort-caption span,.resort-caption small{display:block;font-size:.72rem;letter-spacing:.16em}
.resort-caption strong{display:block;font:600 2rem/1 'Cormorant Garamond',serif;margin:4px 0}
@keyframes reception-pan{from{transform:scale(1.01) translateX(-.6%)}to{transform:scale(1.06) translateX(.6%)}}
@keyframes reception-sparkle{from{opacity:.25}to{opacity:.8}}
@media(prefers-reduced-motion:reduce){.resort-illustration img,.resort-illustration:after{animation:none}}

/* A small live clock immediately below Little Moments. */
.time-together{margin:0 auto 22px;text-align:center}
.time-together-card{border:1px solid var(--gold);background:#fff9eb;padding:17px 12px 15px;box-shadow:0 8px 20px rgba(77,54,30,.05)}
.time-together .eyebrow{font-size:.75rem;margin-bottom:4px}
.time-together h3{font:600 1.75rem/1 'Cormorant Garamond',serif;color:var(--maroon);margin:0 0 15px}
.time-together-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.time-together-numbers>div{border:1px solid #dfc58f;background:#f6ead2;padding:9px 2px 8px}
.time-together-numbers strong{display:block;font:600 clamp(1.45rem,6vw,1.85rem)/1 'Cormorant Garamond',serif;color:var(--green);font-variant-numeric:tabular-nums}
.time-together-numbers span{display:block;margin-top:4px;font-size:.75rem;font-weight:500}

/* Young Us — photo-only childhood gallery */
.young-us-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.young-us-photo{margin:0;background:#fbf6e9;border:1px solid #ddc9a7;overflow:hidden;border-radius:2px;aspect-ratio:3/4}
.young-us-photo img{width:100%;height:100%;display:block;object-fit:cover}

/* Opening controls: keep the music prompt below 2026 and the scroll cue separate. */
.opening .opening-music-hint{bottom:4px}
.opening .scroll-cue{bottom:-46px;z-index:10;background:rgba(43,35,28,.78);box-shadow:0 5px 14px rgba(43,35,28,.2)}

/* Couple name stack + custom wedding date/time icons */
.welcome .couple-names{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:.92}
.welcome .couple-names .name-line{font-size:1em}
.welcome .couple-names .heart-line{font-size:.52em;line-height:1;color:#b95039;margin:4px 0}
.calendar-icon{width:46px;height:45px;margin:0 auto 6px;border:2px solid var(--green);border-radius:5px;display:flex!important;flex-direction:column;justify-content:center;align-items:center;line-height:1;background:#fffaf0;position:relative;font-family:Montserrat,sans-serif!important}
.calendar-icon:before,.calendar-icon:after{content:"";position:absolute;top:-5px;width:4px;height:9px;border-radius:2px;background:var(--green)}
.calendar-icon:before{left:10px}.calendar-icon:after{right:10px}
.calendar-icon span{font-size:15px;font-weight:700;line-height:1;color:var(--green)}
.calendar-icon small{font-size:7px!important;letter-spacing:.02em!important;font-weight:700;color:var(--green);line-height:1.2}
.clock-icon{width:44px;height:44px;margin:0 auto 7px;border:2px solid var(--green);border-radius:50%;display:block!important;position:relative;background:#fffaf0}
.clock-icon:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--green);left:18px;top:18px}
.clock-icon i{position:absolute;left:19px;top:19px;width:2px;background:var(--green);transform-origin:1px 1px;border-radius:2px}
.clock-icon .minute-hand{height:15px;transform:rotate(180deg)}
.clock-icon .hour-hand{height:11px;transform:rotate(255deg)}

.video-box{text-decoration:none;cursor:pointer}
.video-box{aspect-ratio:224/374;max-width:280px;margin:0 auto;overflow:hidden;background:#0b0e12}.video-box>img{width:100%;height:100%;object-fit:cover;display:block;grid-area:1/1}.video-box .play{grid-area:1/1;z-index:2;background:rgba(43,35,28,.48);backdrop-filter:blur(3px)}.video-box p{z-index:2;background:rgba(43,35,28,.58);padding:5px 9px;border-radius:15px}
.instagram-music-resume{display:block;margin:14px auto 0;border:1px solid #9f8053;background:rgba(255,250,238,.7);color:var(--maroon);padding:9px 14px;border-radius:24px;font:600 7px Montserrat,sans-serif;letter-spacing:.12em;cursor:pointer;opacity:0;transform:translateY(5px);transition:opacity .55s ease,transform .55s ease}.instagram-music-resume[hidden]{display:none}.instagram-music-resume.is-visible{opacity:1;transform:translateY(0)}.instagram-music-resume.is-fading{opacity:0;transform:translateY(-4px);pointer-events:none}
