:root{--primary:148 15% 38%;--foreground:148 18% 25%;--card-foreground:148 18% 25%;--sage:148 16% 55%;--sage-dark:148 18% 28%;--sage-light:148 19% 72%;--ink:148 19% 22%;--countdown:148 17% 40%;--riviere:148 17% 40%;--olive:148 15% 38%;--gold-dark:148 18% 28%;--ring:148 17% 40%;--border:148 13% 72%;--input:148 13% 72%;--dusty-rose:148 13% 49%;--background:120 12% 95%;--ivory:120 12% 95%;--cream:130 13% 92%}
.text-cypress{color:#344e40}
.personal-cover{position:fixed;inset:0;z-index:50;overflow:hidden;background:#7d9586;cursor:pointer;perspective:1800px;transition:background 1s 2s}
.personal-cover.is-opening{background:transparent;pointer-events:none}
.cover-panel{position:absolute;inset:0;will-change:transform;transition:transform 3.2s cubic-bezier(.45,0,.15,1) .4s;filter:drop-shadow(0 0 14px #26382b55)}
.cover-panel img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.cover-panel-left{clip-path:inset(0 50% 0 0)}
.cover-panel-right{clip-path:inset(0 0 0 50%)}
.is-opening .cover-panel-left{transform:translateX(-52%)}
.is-opening .cover-panel-right{transform:translateX(52%)}
.cover-emblem{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(46vw,26svh);max-width:none;height:auto;pointer-events:none;transition:opacity .7s ease,transform 1s ease;filter:drop-shadow(0 6px 6px #203d3033)}
.is-opening .cover-emblem{opacity:0;transform:translate(-50%,-50%) scale(1.12)}
.cover-open{position:absolute;inset:0;background:none;border:0;cursor:pointer}
.cover-open:focus-visible{outline:2px solid #f1eee5;outline-offset:-12px}
.cover-hint{position:absolute;left:0;right:0;bottom:9%;text-align:center;color:#f5f1e8;font-family:var(--font-body);font-size:12px;letter-spacing:.45em;transition:opacity .5s}
.is-opening .cover-hint{opacity:0}
.cover-skip{position:absolute;right:24px;top:24px;background:transparent;color:#f5f1e8;border:1px solid #f5f1e866;border-radius:30px;padding:8px 16px;font:10px var(--font-body);letter-spacing:.3em;cursor:pointer}
@media(min-aspect-ratio:9/16){.cover-emblem{width:calc(100svh * .26)}}
@media(min-aspect-ratio:1/1){.cover-emblem{width:46vw;max-width:550px}}
@media(prefers-reduced-motion:reduce){.cover-panel{transition-duration:.1s;transition-delay:0s}.cover-emblem{transition-duration:.1s}.personal-cover{transition:none}}

/* Warm gold details with eucalyptus green, and a complete uncropped scene. */
:root{--gold:39 48% 48%;--gold-soft:40 48% 66%;--gold-dark:37 39% 34%;--secondary:40 36% 73%;--champagne:40 38% 82%;--dusty-rose:39 39% 46%;--border:40 26% 72%;--ring:39 48% 48%}
.section-rule{background-color:#b49350!important}
.section-eyebrow{color:#9b7d41}
.cover-emblem{filter:sepia(.65) saturate(1.45) hue-rotate(354deg) drop-shadow(0 7px 8px #26382b55)}
.cover-hint,.cover-skip{color:#f5e3b5}.cover-skip{border-color:#d6b87599}
.personal-cover{perspective:1800px;transition:background 1.5s 2.7s}
.cover-panel{backface-visibility:hidden;transition:transform 4.1s cubic-bezier(.42,0,.2,1) .4s,filter 4.1s .4s;transform-style:preserve-3d}
.cover-panel-left{transform-origin:0 50%}
.cover-panel-right{transform-origin:100% 50%}
.cover-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#263c301f,transparent 25%,#fff8df12 45%,#263c3044 50%,#fff8df12 55%,transparent 75%,#263c301f);pointer-events:none}
.is-opening .cover-panel-left{transform:rotateY(-105deg);filter:drop-shadow(25px 10px 25px #26382b55) brightness(.86)}
.is-opening .cover-panel-right{transform:rotateY(105deg);filter:drop-shadow(-25px 10px 25px #26382b55) brightness(.92)}
.is-opening .cover-emblem{opacity:0;transform:translate(-50%,-50%) rotate(-8deg) scale(1.05);transition:opacity 1s,transform 1.1s}
/* A single page canvas for sections, illustration dividers and footer. */
body{background:#e4e9e2}
main{width:100%;max-width:1000px;margin-inline:auto;box-shadow:0 0 75px #344e400c}
main>section,main>div,main>footer{box-sizing:border-box;width:100%;max-width:none;margin-inline:0}

.cover-emblem{filter:drop-shadow(0 7px 8px #26382b55)}

/* Airy stationery composition, with restrained botanical accents. */
#hero{width:100%;height:clamp(740px,100svh,1000px);min-height:740px;background:#f6f3eb;isolation:isolate}
.hero-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 38%,#fffdf5 0%,transparent 64%),repeating-linear-gradient(0deg,#8f7b5810 0px,transparent 1px,transparent 4px);}
.hero-paper-frame{position:absolute;inset:32px;border:1px solid #ac915c66}
.hero-paper-frame:after{content:"";position:absolute;inset:7px;border:1px solid #ac915c22}
.hero-leaves{position:absolute;object-fit:contain;opacity:.85;animation:leaves-drift 12s ease-in-out infinite alternate;transform-origin:top left;filter:saturate(.7)}
.hero-leaves-left{top:-35px;left:-55px;width:clamp(240px,42%,440px)}
.hero-leaves-right{bottom:-50px;right:-65px;width:clamp(230px,36%,360px);animation-delay:-6s;transform-origin:bottom right}
.hero-kicker{position:absolute;top:25%;left:15%;right:15%;text-align:center;font-family:var(--font-body);font-size:11px;letter-spacing:.32em;color:#917444}
.hero-venue{position:absolute;bottom:25%;left:15%;right:15%;text-align:center;font-family:var(--font-display);font-size:20px;font-style:italic;letter-spacing:.025em;color:#657462}
#hero>div.relative{padding:0 60px 40px;justify-content:center;align-items:center}
#hero>div.relative>div{width:100%;max-width:650px}
#hero h1{font-size:clamp(42px,5.6vw,72px);line-height:1.05;letter-spacing:.12em;color:#344e40}
#hero h1 span.my-1{font-size:.55em;margin:15px 0;color:#a18650}
#hero p.font-body{font-size:clamp(10px,1.3vw,12px);line-height:1.8;white-space:normal;letter-spacing:.22em;text-wrap:balance;color:#657462}
#hero>div.relative>div>.mt-5{margin-top:30px}
#hero>button{position:absolute;bottom:10%;left:50%;transform:translateX(-50%);padding:0;white-space:nowrap;color:#917444}
#hero>button span{font-size:10px;letter-spacing:.28em}
@keyframes leaves-drift{from{transform:rotate(-1deg) translateY(0)}to{transform:rotate(1deg) translateY(6px)}}
@media(max-width:600px){#hero{height:max(740px,100svh)}.hero-paper-frame{inset:20px}.hero-leaves-left{width:250px;top:-25px;left:-65px}.hero-leaves-right{width:230px;right:-65px;bottom:-30px}.hero-kicker{top:27%;font-size:9px;letter-spacing:.23em}.hero-venue{bottom:24%;font-size:18px}#hero>div.relative{padding-inline:35px;padding-bottom:0}#hero h1{font-size:42px}#hero>button{bottom:12%}}
@media(prefers-reduced-motion:reduce){.hero-scene *{animation:none!important}.cover-panel{transition:opacity .2s;transform:none!important}.is-opening .cover-panel{opacity:0}.cover-emblem{transition:opacity .2s!important}}

/* Compact chronological programme, with the couple's exact time ranges. */
#day-program .section-heading{font-size:clamp(34px,4vw,52px);line-height:1.2}
#day-program .schedule-row{grid-template-columns:30% 1fr;gap:24px;min-height:80px}
#day-program .schedule-row>img{width:90px;max-height:100px;object-fit:contain}
#day-program .schedule-row>div{padding-left:18px;min-width:0}
#day-program .schedule-row p:first-child{font-size:22px;line-height:1.4;letter-spacing:.025em}
#day-program .schedule-row p+p{font-size:16px;line-height:1.55;letter-spacing:.015em;text-transform:none;margin-top:5px}
#day-program .schedule-highlight p+p{font-weight:600;color:#987239}
#day-program .schedule-highlight p:first-child{color:#987239}
#day-program .schedule-marker{justify-self:center;color:#b9995c;font-size:30px}
#day-program .space-y-10>*+*{margin-top:24px}
#day-program .absolute.top-3{left:32%;width:2px}
@media(max-width:600px){#day-program .schedule-row{grid-template-columns:24% 1fr;gap:16px}#day-program .absolute.top-3{left:26%}#day-program .schedule-row>img{width:65px;max-height:80px}#day-program .schedule-row>div{padding-left:16px}#day-program .schedule-row p:first-child{font-size:19px}#day-program .schedule-row p+p{font-size:15px}#day-program .section-heading{font-size:34px}}

/* The cover panels reveal the invitation directly, with no opaque backing. */
.personal-cover,.personal-cover.is-opening{background:transparent;transition:none}
/* Layered floral corners and trailing stems around an open reading area. */
.hero-leaves{opacity:.9}
.hero-leaves-left{width:66%;max-width:640px;left:-12px;top:-12px}
.hero-leaves-bottom{width:62%;max-width:600px;right:-12px;bottom:-15px;rotate:180deg;transform-origin:center;animation-delay:-4s}
.hero-leaves-topright{width:48%;max-width:460px;right:-12px;top:-12px;scale:-1 1;transform-origin:center;animation-delay:-8s;opacity:.72}
.hero-leaves-right{width:65%;max-width:620px;right:-12px;bottom:20%;transform-origin:right center}
.hero-leaves-midleft{width:55%;max-width:520px;left:-15px;top:40%;scale:-1 1;transform-origin:center;animation-delay:-7s;opacity:.7}
@media(max-width:600px){.hero-leaves-left{width:85%;top:-6px;left:-10px}.hero-leaves-bottom{width:85%;bottom:-10px;right:-10px}.hero-leaves-topright{width:60%;top:-8px;right:-10px}.hero-leaves-right{width:64%;right:-8px;bottom:27%}.hero-leaves-midleft{width:60%;left:-10px;top:42%}}

/* One warm beige palette throughout the invitation and its form cards. */
:root{--background:39 35% 90%;--ivory:39 35% 90%;--cream:39 35% 90%;--card:39 35% 90%;--popover:39 35% 90%;--muted:39 30% 87%;--accent:39 30% 87%}
body{background:#e7decd}
main,main>section,main>div,main>footer,#hero{background-color:#eee8dc}
main .bg-white,main .bg-white\/90{background-color:#eee8dc}
.hero-scene{background:radial-gradient(ellipse at 50% 38%,#fff9ec55 0%,transparent 64%),repeating-linear-gradient(0deg,#8f7b5808 0px,transparent 1px,transparent 4px)}
main>section,main>div,main>footer{background-color:#eee8dc!important}


/* Keep the welcome copy and the following floral garland in separate rows. */
#welcome{isolation:isolate;padding:64px 24px 24px;overflow:hidden}
#welcome>div:first-child{position:relative;max-width:640px;z-index:1}
#welcome p{font-weight:400;color:#405642;line-height:1.7}
#welcome h3{line-height:1.25}
#wedding-events>div:first-child{position:relative;top:auto;left:auto;transform:none;z-index:0;width:100%;margin:0;overflow:hidden}
#wedding-events>div:nth-child(2){padding-top:24px}
@media(min-width:768px){#welcome{padding-top:80px;padding-bottom:32px}#welcome p{font-size:20px}#welcome .mt-10{margin-top:28px}#welcome .mt-12{margin-top:30px}#wedding-events>div:nth-child(2){padding-top:32px}}

/* Keep the trailing venue decoration inside its own section after removing attire. */
#wedding-events>div:last-child{position:relative;top:auto;left:auto;transform:none;width:100%;margin-top:-32px;z-index:0}
#day-program{padding-top:48px}

.cover-panel{transition:transform 4.1s cubic-bezier(.42,0,.2,1) .4s,filter 4.1s .4s}
@media(prefers-reduced-motion:reduce){.cover-panel{transition:opacity .2s}}
#wedding-events>div:last-child{display:none}

/* Restored botanical divider: in normal flow, above the programme. */
#wedding-events>div:last-child{display:block;position:relative;top:auto;left:auto;transform:none;width:100%;margin:0;padding:20px 0 0;overflow:hidden;background:#eee8dc}
#wedding-events>div:last-child>img{display:block;width:100%;max-height:330px;object-fit:contain;object-position:top;transform-origin:50% 0!important}
.hero-leaves-right{rotate:180deg;right:-12px;bottom:18%;width:45%}
.hero-leaves-midleft{scale:1;rotate:0deg;top:43%;width:37%}
#countdown>img:nth-child(2){rotate:180deg}
#faq{background-size:100% 100%}
#faq>div>div{max-width:62%;margin-inline:auto}
#day-program img[src*="timeline-disco"]{filter:sepia(.7) saturate(.7)}
:root{--gold:39 38% 43%;--gold-dark:36 35% 34%;--gold-soft:40 35% 63%}
@media(max-width:600px){#wedding-events>div:last-child>img{max-height:200px}.hero-leaves-right{width:46%;bottom:22%}.hero-leaves-midleft{width:36%;top:43%}#faq>div>div{max-width:76%}#faq{background-size:auto 100%}#faq h2{font-size:36px}}
