
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=DM+Sans:wght@300;400;500;600&family=Great+Vibes&display=swap');
:root{
 --ivory:#fbf7ed;--paper:#fffdf7;--butter:#e7c45f;--butter2:#f3df9b;--gold:#b48a3c;
 --wine:#7c343b;--wine-soft:#a36a67;--ink:#403b32;--muted:#857b6d;--line:#e8ddc6;
 --forest:#173c31;--forest2:#244d3d;--sage:#8c9a75;--white:#fffdf8;
 --serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Great Vibes',cursive;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:18px;overflow-x:hidden}
a{color:inherit}button,input,select,textarea{font:inherit}
body.theme-wedding{--bg:var(--ivory);--surface:var(--paper);--accent:var(--wine);--accent2:var(--gold);--text:var(--ink);--sub:var(--muted);--edge:var(--line);background:var(--ivory)}
body.theme-roce{--bg:#102f27;--surface:#193f33;--accent:#f0d78d;--accent2:#d4b15c;--text:#f5efdf;--sub:#d1c8b0;--edge:#456452;background:#102f27;color:#f5efdf}
::selection{background:#e7c45f66}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.site-header{height:82px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,76px);background:rgba(255,253,247,.9);backdrop-filter:blur(16px);border-bottom:1px solid #e8ddc6aa}
.theme-roce .site-header{background:rgba(16,47,39,.9);border-color:#456452}
.brand{font:43px var(--script);text-decoration:none;color:var(--wine);letter-spacing:.02em;white-space:nowrap}
.brand span{color:var(--gold)}
.theme-roce .brand{color:#f1d991}
.nav{display:flex;align-items:center;gap:clamp(18px,3vw,42px)}
.nav a{text-decoration:none;text-transform:uppercase;font:500 10px var(--sans);letter-spacing:.22em;color:#897e6d;transition:color .25s}
.nav a:hover{color:var(--wine)}
.theme-roce .nav a{color:#e3d7b7}.theme-roce .nav a:hover{color:#f3d77d}
.nav .nav-rsvp{padding:13px 22px;border-radius:2px;background:var(--wine);color:white}
.theme-roce .nav .nav-rsvp{background:#d4b15c;color:#15372d}
.menu-toggle{display:none;border:0;background:none;color:var(--accent);font-size:25px}
.hero{min-height:690px;position:relative;display:grid;grid-template-columns:1fr .92fr;align-items:center;gap:30px;padding:70px clamp(28px,8vw,130px) 76px;overflow:hidden;background:
 radial-gradient(ellipse at 12% 14%,#fffdf7 0,transparent 42%),
 linear-gradient(120deg,#fbf7ed 0%,#f6eedc 60%,#f3e8cf 100%)}
.theme-roce .hero{background:
 radial-gradient(ellipse at 15% 20%,#2b5845 0,transparent 45%),
 linear-gradient(125deg,#102f27,#183f32 60%,#102c25)}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#b58d4320 .7px,transparent .7px);background-size:8px 8px;pointer-events:none}
.hero-flower{position:absolute;z-index:0;pointer-events:none;width:min(36vw,470px);opacity:.36;filter:saturate(.88)}
.hero-flower.left{left:-135px;top:-85px;transform:rotate(16deg)}
.hero-flower.right{right:-155px;bottom:-130px;transform:rotate(190deg) scaleX(-1);opacity:.3}
.theme-roce .hero-flower{opacity:.28;filter:saturate(.8) brightness(.88)}
.hero-copy{position:relative;z-index:2;max-width:660px}
.kicker{font:500 10px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#9b8051;margin:0 0 22px}
.theme-roce .kicker{color:#d5bb75}
.hero h1{font:clamp(68px,8vw,118px)/.88 var(--script);font-weight:400;color:var(--wine);margin:0 0 23px}
.theme-roce .hero h1{color:#f2dc9c}
.hero h1 .amp{display:block;color:var(--gold);font-size:.55em;margin:8px 0 3px 68px}
.theme-roce .hero h1 .amp{color:#d5b15c}
.hero-intro{max-width:480px;color:#776b5d;font-size:21px;line-height:1.45;font-style:italic;margin:0 0 26px}
.theme-roce .hero-intro{color:#e1d8c4}
.date-plaque{display:flex;align-items:center;gap:17px;width:max-content;max-width:100%;padding:12px 0;border-top:1px solid #c8a45e;border-bottom:1px solid #c8a45e;color:#8c714a;text-transform:uppercase;font:500 10px var(--sans);letter-spacing:.2em}
.date-plaque strong{font:500 37px var(--serif);letter-spacing:0;color:var(--wine)}
.theme-roce .date-plaque{color:#e9d99f;border-color:#b99c56}.theme-roce .date-plaque strong{color:#f1dc9d}
.date-plaque sup{font-size:12px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border:1px solid #c7a45f;padding:13px 21px;background:transparent;color:#7b6545;font:500 10px var(--sans);letter-spacing:.17em;text-transform:uppercase;transition:all .3s;cursor:pointer}
.btn:hover{transform:translateY(-3px);box-shadow:0 9px 20px #60451a18;background:#fffdf6}
.btn.primary{background:var(--wine);border-color:var(--wine);color:#fff}
.theme-roce .btn{border-color:#b89c59;color:#eadcae}.theme-roce .btn.primary{background:#d5b65e;border-color:#d5b65e;color:#17382d}
.hero-art-wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:500px}
.hero-art-frame{position:relative;width:min(100%,445px);padding:15px;background:#fffaf0;border:1px solid #c6a45e;box-shadow:0 24px 55px #5a45241e;transform:rotate(1.2deg)}
.hero-art-frame:before{content:"";position:absolute;inset:7px;border:1px solid #e8d5aa;pointer-events:none}
.hero-art{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.theme-roce .hero-art-frame{background:#f9f2df}
.floating-caption{position:absolute;bottom:2%;right:-5%;padding:13px 20px;background:#fffaf0;border:1px solid #d8c18c;color:#7d6a4b;font:italic 17px var(--serif);box-shadow:0 8px 24px #3b2d1a16}
.theme-roce .floating-caption{background:#1d4839;color:#f1dfa9;border-color:#a28d55}
.hero-sparkle{position:absolute;color:#c3a35d;animation:twinkle 4s ease-in-out infinite}
.hero-sparkle.one{top:14%;right:11%;font-size:27px}.hero-sparkle.two{bottom:17%;left:7%;font-size:20px;animation-delay:1.4s}
@keyframes twinkle{0%,100%{opacity:.28;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.18) rotate(25deg)}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(1.2deg)}50%{transform:translateY(-11px) rotate(.3deg)}}
.hero-art-frame{animation:floaty 8s ease-in-out infinite}
.intro-strip{padding:70px 20px;text-align:center;background:#f8f1e3;border-block:1px solid #e7d8bc;position:relative}
.theme-roce .intro-strip{background:#14372d;border-color:#456452}
.quote-mark{font:48px var(--script);color:var(--gold);line-height:.6}
.intro-strip blockquote{max-width:760px;margin:15px auto 14px;font:italic 27px/1.35 var(--serif);color:var(--wine)}
.theme-roce .intro-strip blockquote{color:#efda9d}
.intro-strip cite{font:500 9px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#9a8668}
.theme-roce .intro-strip cite{color:#d4c69f}
.section{max-width:1180px;margin:auto;padding:88px clamp(20px,4vw,56px);position:relative}
.section-head{text-align:center;margin:0 auto 42px;max-width:720px}
.section-head .kicker{margin-bottom:9px}
.section-head h2{font:clamp(43px,5vw,66px)/1 var(--script);font-weight:400;color:var(--wine);margin:0}
.theme-roce .section-head h2{color:#efd995}
.section-head p{color:var(--muted);font-size:17px;font-style:italic;margin:12px 0 0}
.theme-roce .section-head p{color:#d3c9b1}
.ornament{display:block;width:min(310px,70%);height:40px;margin:15px auto 0;background:url("ornament.svg") center/contain no-repeat}
.couple-layout{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:55px}
.couple-portrait{position:relative;padding:16px;border:1px solid #c6a45e;background:#fffaf0;box-shadow:0 18px 40px #6b4c2015}
.couple-portrait:after{content:"";position:absolute;inset:7px;border:1px solid #eadbb9;pointer-events:none}
.couple-portrait img{display:block;width:100%;max-height:490px;object-fit:contain}
.couple-copy .kicker{margin-bottom:10px}
.couple-copy h3{font:clamp(48px,5vw,70px) var(--script);color:var(--wine);margin:0 0 10px}
.theme-roce .couple-copy h3{color:#f0d993}
.couple-copy p{color:#7d7162;font-size:19px;line-height:1.55}
.theme-roce .couple-copy p{color:#d8d0bd}
.family-names{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:25px}
.family-card{padding:19px;border-top:1px solid #c8a45e;border-bottom:1px solid #c8a45e;text-align:center}
.family-card small{display:block;font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#a28b68}
.family-card strong{display:block;font:27px var(--script);color:var(--wine);margin:5px 0}
.family-card span{font-size:14px;color:#837767}
.theme-roce .family-card strong{color:#f0d993}.theme-roce .family-card span{color:#d6cbb3}
.events-section{max-width:none;background:#f5efdf;padding:88px max(20px,calc((100vw - 1080px)/2))}
.theme-roce .events-section{background:#12352b}
.event-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:18px}
.event-card{position:relative;min-height:310px;padding:34px 28px 28px;background:#fffdf7;border:1px solid #ddcda9;text-align:center;overflow:hidden;box-shadow:0 10px 28px #56431b0b;transition:transform .35s,box-shadow .35s}
.event-card:hover{transform:translateY(-7px);box-shadow:0 18px 35px #56431b18}
.event-card:before,.event-card:after{content:"";position:absolute;width:140px;height:100px;background:url("yellow-calla-lilies-trim.png") center/contain no-repeat;opacity:.19;pointer-events:none}
.event-card:before{top:-35px;left:-42px;transform:rotate(-22deg)}
.event-card:after{right:-45px;bottom:-40px;transform:rotate(165deg)}
.theme-roce .event-card{background:#1a4436;border-color:#6e7956;color:#f2ead8}
.event-date{font:500 10px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#a28751}
.theme-roce .event-date{color:#e4c979}
.event-card h3{font:38px/1 var(--script);color:var(--wine);margin:17px 0 5px}
.theme-roce .event-card h3{color:#f0d993}
.event-card .event-time{font:500 11px var(--sans);letter-spacing:.08em;color:#8b7a67;margin-bottom:15px}
.theme-roce .event-card .event-time{color:#d7cba8}
.event-card .venue{font-size:21px;color:#51483c;margin-bottom:6px}
.theme-roce .event-card .venue{color:#f4ecd9}
.event-card .address{font-size:16px;line-height:1.4;color:#897c6c}
.theme-roce .event-card .address{color:#d4cbb6}
.event-card .event-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:20px}
.event-actions .btn{padding:10px 13px;font-size:9px}
.theme-roce .event-actions .btn{background:#15382e}
.invite-section{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}
.invite-frame{background:#fffdf7;padding:14px;border:1px solid #c8a45e;box-shadow:0 14px 35px #60451a14;transition:transform .35s}
.invite-frame:hover{transform:translateY(-5px) rotate(-.5deg)}
.invite-frame img{display:block;width:100%;height:auto;cursor:zoom-in}
.invite-frame figcaption{text-align:center;padding:13px 0 4px;font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#9b8665}
.theme-roce .invite-frame{background:#fdf8e9}
.rsvp-area{background:#eee5d2;padding:90px 20px}
.theme-roce .rsvp-area{background:#0f2c24}
.rsvp-inner{max-width:900px;margin:auto}
.rsvp-panel{background:#fffdf7;border:1px solid #c8a45e;padding:clamp(22px,4vw,44px);box-shadow:0 20px 55px #46351b14;position:relative}
.rsvp-panel:before{content:"";position:absolute;inset:8px;border:1px solid #eadbb9;pointer-events:none}
.theme-roce .rsvp-panel{background:#193f33;border-color:#a38b51}
.theme-roce .rsvp-panel:before{border-color:#526d52}
.form-intro{text-align:center;position:relative;margin-bottom:26px}
.form-intro h2{font:48px var(--script);color:var(--wine);margin:0}
.theme-roce .form-intro h2{color:#f0d993}
.form-intro p{font-size:16px;color:#8a7a67;font-style:italic;margin:4px}
.theme-roce .form-intro p{color:#d4cbb6}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;position:relative}
.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}
.field label,.field-label{font:500 9px var(--sans);letter-spacing:.17em;text-transform:uppercase;color:#89775e}
.theme-roce .field label,.theme-roce .field-label{color:#e1d29e}
.field input,.field select,.field textarea{width:100%;border:1px solid #dfd2b9;background:#fffefa;padding:13px 14px;color:#51483d;font:16px var(--serif);border-radius:0}
.field textarea{min-height:90px;resize:vertical}
.theme-roce .field input,.theme-roce .field select,.theme-roce .field textarea{background:#f9f3e4;color:#3d4335;border-color:#a99a6c}
.radio-row,.event-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check-option{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #e4d8c1;background:#fffefa;color:#5b5043;font-size:16px;cursor:pointer}
.check-option input{accent-color:#9d7840;width:16px;height:16px}
.theme-roce .check-option{background:#214b3b;border-color:#667a58;color:#f1ead9}
.theme-roce .check-option input{accent-color:#e3c46b}
.submit-btn{position:relative;width:100%;margin-top:22px;border:0;background:var(--wine);color:white;padding:16px;font:500 10px var(--sans);letter-spacing:.23em;text-transform:uppercase;cursor:pointer;transition:all .3s}
.submit-btn:hover{background:#5d252d;letter-spacing:.28em}
.theme-roce .submit-btn{background:#d7b95f;color:#16382e}
.form-note{font:13px/1.5 var(--sans);color:#8c806f;text-align:center;margin:13px 0 0;position:relative}
.theme-roce .form-note{color:#d1c7ae}
#rsvp-feedback{font-weight:500}
.whatsapp-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:15px;position:relative}
.whatsapp-links a{font:500 10px var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border:1px solid #bda263;padding:11px 15px;color:#6f613f}
.theme-roce .whatsapp-links a{color:#eddfa9;border-color:#a68e52}
.site-footer{padding:48px 20px 36px;text-align:center;background:#f9f3e7;border-top:1px solid #e4d8c1}
.theme-roce .site-footer{background:#102f27;border-color:#456452}
.footer-brand{font:48px var(--script);color:var(--wine)}
.theme-roce .footer-brand{color:#f0d993}
.footer-small{font:9px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#998b77;margin-top:6px}
.theme-roce .footer-small{color:#d2c7aa}
.footer-flowers{width:min(360px,65vw);height:auto;display:block;margin:0 auto 12px;opacity:.7}
.lightbox{position:fixed;inset:0;background:#0e1d18eF;z-index:100;display:none;align-items:center;justify-content:center;padding:25px}
.lightbox.open{display:flex}.lightbox img{max-width:94vw;max-height:90vh;object-fit:contain;background:#fff}
.lightbox button{position:absolute;top:20px;right:25px;border:1px solid #d5c18c;background:#fff9eb;color:#56432b;width:42px;height:42px;border-radius:50%;font-size:25px;cursor:pointer}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.delay-1{transition-delay:.12s}.delay-2{transition-delay:.24s}.delay-3{transition-delay:.36s}
.petals{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.petal{position:absolute;top:-50px;width:12px;height:19px;background:linear-gradient(145deg,#f5dfa0,#d9b85e);border-radius:80% 0 80% 0;opacity:.42;animation:petalFall linear infinite}
.petal:nth-child(1){left:9%;animation-duration:15s;animation-delay:-3s}.petal:nth-child(2){left:31%;animation-duration:19s;animation-delay:-9s;transform:scale(.7)}
.petal:nth-child(3){left:68%;animation-duration:17s;animation-delay:-5s;transform:scale(.8)}.petal:nth-child(4){left:88%;animation-duration:22s;animation-delay:-12s;transform:scale(.6)}
@keyframes petalFall{0%{transform:translate3d(0,-30px,0) rotate(0deg)}50%{transform:translate3d(45px,360px,0) rotate(170deg)}100%{transform:translate3d(-20px,760px,0) rotate(350deg)}}
.home-hero{min-height:calc(100vh - 82px);display:grid;place-items:center;text-align:center;padding:60px 20px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fffdf7 0,#f8f0df 55%,#f2e7cf 100%)}
.home-hero:before,.home-hero:after{content:"";position:absolute;width:min(44vw,560px);height:310px;background:url("yellow-calla-lilies-trim.png") center/contain no-repeat;opacity:.5;pointer-events:none}
.home-hero:before{left:-150px;top:-65px;transform:rotate(20deg)}.home-hero:after{right:-160px;bottom:-70px;transform:rotate(195deg) scaleX(-1)}
.home-content{position:relative;z-index:2;max-width:1020px}
.home-monogram{font:58px var(--script);color:var(--wine);margin-bottom:12px}.home-monogram span{color:var(--gold)}
.home-title{font:clamp(72px,11vw,142px)/.88 var(--script);font-weight:400;color:var(--wine);margin:0}
.home-title span{display:block;color:var(--gold);font-size:.58em;margin:8px}
.home-subtitle{font:italic 23px var(--serif);color:#82735e;max-width:620px;margin:25px auto 24px}
.home-date{font:500 10px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#8e744a;border-block:1px solid #c7a45f;display:inline-block;padding:13px 20px}
.home-choices{padding:80px 24px 95px;background:#f6efdf}
.home-choices .section-head{margin-bottom:42px}
.choice-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.choice-card{position:relative;background:#fffdf7;border:1px solid #d3bd8c;padding:27px 20px 25px;text-align:center;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .35s,box-shadow .35s;overflow:hidden}
.choice-card:before{content:"";position:absolute;top:-40px;right:-40px;width:150px;height:120px;background:url("yellow-calla-lilies-trim.png") center/contain no-repeat;opacity:.28}
.choice-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px #624a1d18}
.choice-card .family{font:36px var(--script);color:var(--wine);margin:0 0 6px}
.choice-card .kind{font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#a18a68}
.choice-card .detail{font-style:italic;color:#897d6c;margin:13px 0 19px;font-size:16px}
.choice-card a{display:block;text-decoration:none;border:1px solid #c6a45e;color:#7c633e;padding:11px 13px;margin:5px 0;width:100%;font:500 9px var(--sans);letter-spacing:.13em;text-transform:uppercase;transition:all .25s}
.choice-card a:hover{background:#f5e9cc}
.choice-card a.roce-link{background:#173c31;border-color:#173c31;color:#f0d994}
.home-bottom{text-align:center;padding:35px 20px;background:#f9f3e7;color:#907d61;font-style:italic}
@media(max-width:900px){.choice-grid{grid-template-columns:repeat(2,1fr)}.hero{padding-inline:5vw}.hero-art-wrap{min-height:400px}.hero-art-frame{max-width:370px}}
@media(max-width:700px){
 .site-header{height:70px;padding:0 20px}.brand{font-size:38px}.menu-toggle{display:block}
 .nav{display:none;position:absolute;top:70px;left:0;right:0;padding:20px;background:#fffdf7;box-shadow:0 12px 20px #0001;flex-direction:column;gap:22px}
 .theme-roce .nav{background:#14372d}.nav.open{display:flex}
 .hero{grid-template-columns:1fr;padding:45px 23px 52px;gap:10px;min-height:unset}
 .hero-copy{order:1}.hero-art-wrap{order:2;min-height:350px}.hero-art-frame{width:min(82vw,340px)}
 .hero h1{font-size:82px}.hero-intro{font-size:18px}.floating-caption{right:-2%;bottom:0;font-size:14px}
 .hero-flower{width:60vw}.hero-flower.left{left:-90px;top:-50px}.hero-flower.right{right:-110px;bottom:-70px}
 .intro-strip{padding:52px 24px}.intro-strip blockquote{font-size:22px}
 .section{padding:65px 20px}.couple-layout{grid-template-columns:1fr;gap:28px}.couple-portrait{max-width:430px;margin:auto}
 .family-names{grid-template-columns:1fr}.event-timeline{grid-template-columns:1fr}
 .invite-section{grid-template-columns:1fr;max-width:480px;margin:auto}
 .form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.radio-row,.event-checks{grid-template-columns:1fr}
 .choice-grid{grid-template-columns:1fr;max-width:430px}.home-hero{min-height:75vh}.home-subtitle{font-size:19px}
 .home-hero:before,.home-hero:after{width:70vw;height:210px}.home-hero:before{left:-95px}.home-hero:after{right:-100px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.countdown{display:flex;gap:10px;flex-wrap:wrap;margin:23px 0 8px}
.countdown div{min-width:61px;padding:8px 10px 7px;text-align:center;border:1px solid #dfd0ad;background:#fffaf0d9}
.countdown strong{display:block;font:500 25px var(--serif);line-height:1.1;color:var(--wine)}
.countdown span{display:block;margin-top:4px;font:500 8px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#9a8767}
.theme-roce .countdown div{background:#1c4638;border-color:#71815b}
.theme-roce .countdown strong{color:#f0d993}.theme-roce .countdown span{color:#d7cba9}
@media(max-width:700px){.countdown{gap:6px}.countdown div{min-width:54px;padding:7px 8px}.countdown strong{font-size:22px}}

/* Combined Roce + Wedding invitations: the RSVP colour follows the celebration selected. */
.rsvp-choice{font-size:8px!important;letter-spacing:.1em!important;padding:10px 12px!important;white-space:nowrap}
.rsvp-choice.rsvp-roce{background:#173c31!important;border-color:#173c31!important;color:#f0d993!important}
.rsvp-choice.rsvp-wedding{background:#e8ca70!important;border-color:#c6a45e!important;color:#4b3b20!important}
.rsvp-choice:hover{transform:translateY(-2px)}
.rsvp-area[data-rsvp-mode="wedding"]{background:#f4e8c7}
.rsvp-area[data-rsvp-mode="wedding"] .section-head h2{color:#7c343b}
.rsvp-area[data-rsvp-mode="wedding"] .section-head p{color:#84765e}
.rsvp-area[data-rsvp-mode="wedding"] .rsvp-panel{background:#fffaf0;border-color:#c8a45e}
.rsvp-area[data-rsvp-mode="wedding"] .rsvp-panel:before{border-color:#eadbb9}
.rsvp-area[data-rsvp-mode="wedding"] .form-intro h2{color:#7c343b}
.rsvp-area[data-rsvp-mode="wedding"] .form-intro p{color:#8a7a67}
.rsvp-area[data-rsvp-mode="wedding"] .field label,
.rsvp-area[data-rsvp-mode="wedding"] .field .field-label{color:#89775e}
.rsvp-area[data-rsvp-mode="wedding"] .check-option{background:#fffefa;border-color:#e4d8c1;color:#5b5043}
.rsvp-area[data-rsvp-mode="wedding"] .check-option input{accent-color:#b48a3c}
.rsvp-area[data-rsvp-mode="wedding"] .submit-btn{background:#e8ca70;color:#4b3b20}
.rsvp-area[data-rsvp-mode="wedding"] .submit-btn:hover{background:#d9b653}
.rsvp-area[data-rsvp-mode="wedding"] .form-note{color:#8c806f}
.rsvp-area[data-rsvp-mode="wedding"] .whatsapp-links a{color:#6f613f;border-color:#bda263}

/* Combined Roce + Wedding pages: both use the yellow calla-lily wedding palette.
   The Roce RSVP button alone is forest green as the event-specific accent. */
body.theme-wedding .site-header{background:rgba(255,253,247,.92);border-bottom-color:#e8ddc6}
body.theme-wedding .brand{color:var(--wine)}
body.theme-wedding .nav a{color:#897e6d}
body.theme-wedding .nav a:hover{color:var(--wine)}
body.theme-wedding .hero{
 background:radial-gradient(ellipse at 12% 14%,#fffdf7 0,transparent 42%),
 linear-gradient(120deg,#fbf7ed 0%,#f6eedc 60%,#f3e8cf 100%);
}
body.theme-wedding .hero-flower{opacity:.36;filter:saturate(.88)}
body.theme-wedding .hero h1{color:var(--wine)}
body.theme-wedding .hero h1 .amp{color:var(--gold)}
body.theme-wedding .hero-intro{color:#776b5d}
body.theme-wedding .date-plaque{color:#8c714a;border-color:#c8a45e}
body.theme-wedding .date-plaque strong{color:var(--wine)}
body.theme-wedding .hero-art-frame{background:#fffaf0}
body.theme-wedding .floating-caption{background:#fffaf0;color:#7d6a4b;border-color:#d8c18c}
body.theme-wedding .intro-strip{background:#f8f1e3;border-color:#e7d8bc}
body.theme-wedding .intro-strip blockquote{color:var(--wine)}
body.theme-wedding .intro-strip cite{color:#9a8668}
body.theme-wedding .section-head h2{color:var(--wine)}
body.theme-wedding .couple-copy h3{color:var(--wine)}
body.theme-wedding .couple-copy p{color:#7d7162}
body.theme-wedding .family-card strong{color:var(--wine)}
body.theme-wedding .family-card span{color:#837767}
body.theme-wedding .events-section{background:#f5efdf}
body.theme-wedding .event-card{background:#fffdf7;border-color:#ddcda9;color:var(--ink)}
body.theme-wedding .event-date{color:#a28751}
body.theme-wedding .event-card h3{color:var(--wine)}
body.theme-wedding .event-card .event-time{color:#8b7a67}
body.theme-wedding .event-card .venue{color:#51483c}
body.theme-wedding .event-card .address{color:#897c6c}
body.theme-wedding .rsvp-area{background:#eee5d2}
body.theme-wedding .rsvp-panel{background:#fffdf7;border-color:#c8a45e}
body.theme-wedding .rsvp-panel:before{border-color:#eadbb9}
body.theme-wedding .form-intro h2{color:var(--wine)}
body.theme-wedding .form-intro p{color:#8a7a67}
body.theme-wedding .field label,body.theme-wedding .field .field-label{color:#89775e}
body.theme-wedding .field input,body.theme-wedding .field select,body.theme-wedding .field textarea{background:#fffefa;color:#51483d;border-color:#dfd2b9}
body.theme-wedding .check-option{background:#fffefa;border-color:#e4d8c1;color:#5b5043}
body.theme-wedding .check-option input{accent-color:#9d7840}
body.theme-wedding .submit-btn{background:var(--wine);color:white}
body.theme-wedding .form-note{color:#8c806f}
body.theme-wedding .whatsapp-links a{color:#6f613f;border-color:#bda263}
body.theme-wedding .site-footer{background:#f9f3e7;border-color:#e4d8c1}
body.theme-wedding .footer-brand{color:var(--wine)}
body.theme-wedding .footer-small{color:#998b77}

/* Final palette lock: no combined invitation page may render a forest-green canvas. */
body.theme-wedding,
body.theme-wedding .hero,
body.theme-wedding .intro-strip,
body.theme-wedding .events-section,
body.theme-wedding .rsvp-area,
body.theme-wedding .site-footer {
  color:var(--ink);
}
body.theme-wedding{background:#fbf7ed!important}
body.theme-wedding .hero{background:radial-gradient(ellipse at 12% 14%,#fffdf7 0,transparent 42%),linear-gradient(120deg,#fbf7ed 0%,#f6eedc 60%,#f3e8cf 100%)!important}
body.theme-wedding .intro-strip{background:#f8f1e3!important}
body.theme-wedding .events-section{background:#f5efdf!important}
body.theme-wedding .rsvp-area{background:#eee5d2!important}
body.theme-wedding .site-footer{background:#f9f3e7!important}
body.theme-wedding .site-header{background:rgba(255,253,247,.94)!important}
body.theme-wedding .event-card{background:#fffdf7!important;color:var(--ink)!important}
body.theme-wedding .rsvp-panel{background:#fffdf7!important;color:var(--ink)!important}
body.theme-wedding .rsvp-panel:before{border-color:#eadbb9!important}

/* Soft, continuous petal drift over the entire page, not only the hero. */
.page-petals{
 position:fixed;inset:0;z-index:45;overflow:hidden;pointer-events:none;
}
.page-petals .drifting-petal{
 position:absolute;top:-36px;width:10px;height:17px;
 border-radius:85% 0 85% 0;
 background:linear-gradient(145deg,#fff0b9 0%,#e4c36b 68%,#c9a34f 100%);
 opacity:.26;filter:blur(.12px);
 animation:pagePetalDrift var(--fall-duration,22s) linear infinite;
 animation-delay:var(--fall-delay,0s);
}
.page-petals .drifting-petal:nth-child(3n){width:7px;height:12px;opacity:.19}
.page-petals .drifting-petal:nth-child(4n){background:linear-gradient(145deg,#fff9df,#ead9a2);opacity:.3}
@keyframes pagePetalDrift{
 0%{transform:translate3d(0,-8vh,0) rotate(0deg)}
 25%{transform:translate3d(22px,22vh,0) rotate(95deg)}
 55%{transform:translate3d(-18px,52vh,0) rotate(205deg)}
 80%{transform:translate3d(27px,78vh,0) rotate(290deg)}
 100%{transform:translate3d(-8px,112vh,0) rotate(390deg)}
}
body.theme-wedding .event-card,
body.theme-wedding .invite-frame,
body.theme-wedding .couple-portrait,
body.theme-wedding .choice-card,
body.theme-wedding .home-family-card,
body.theme-wedding .rsvp-panel{
 transition:transform .75s cubic-bezier(.2,.7,.2,1),box-shadow .75s ease,background-color .5s ease;
}
body.theme-wedding .event-card:hover,
body.theme-wedding .invite-frame:hover,
body.theme-wedding .choice-card:hover,
body.theme-wedding .home-family-card:hover{
 transform:translateY(-5px);
}
body.theme-wedding .section-head h2,
body.theme-wedding .couple-copy h3,
body.theme-wedding .hero h1,
body.theme-wedding .brand{
 transition:color .8s ease,transform .8s ease;
}
@media(prefers-reduced-motion:reduce){
 .page-petals{display:none!important}
 .page-petals *{animation:none!important}
}
