@import url('https://fonts.googleapis.com/css2?family=Berkshire+Swash&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@400;500;600&display=swap');
:root{--pink:#fae0e6;--paper:#fff3ef;--rose:#ad5875;--ink:#754c5c;--gold:#987033;--line:#ceab71;--soft:#f4cad8;--color-secondary:#a37b3f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font:17px/1.7 'Cormorant Garamond',Georgia,serif;background:#f2dce2;color:var(--ink)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font-family:'Berkshire Swash',Georgia,serif;font-size:clamp(30px,4vw,44px);color:var(--gold);line-height:1.3;margin:12px 0 22px}h3{font-family:'Cormorant Garamond';font-size:26px;line-height:1.4;color:#986542}.eyebrow{font:10px/1.6 'DM Sans',sans-serif;letter-spacing:2.8px;text-transform:uppercase;color:#9c6374}.button,.pink-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:12px/1.5 'DM Sans',sans-serif;min-height:46px;padding:12px 23px;text-align:center;text-decoration:none;border:1px solid #b68d4a;border-radius:20px 4px;background:linear-gradient(125deg,#fff3df,#fffbf4);box-shadow:0 3px 9px #b47b6d1c;color:#91662b;outline:1px solid #e9c78c;outline-offset:3px;transition:transform .2s,background .2s;cursor:pointer}.button:hover,.pink-button:hover{transform:translateY(-2px);background:#fff9ef}.outline{background:transparent;outline:none;box-shadow:none;color:var(--rose);border-color:#c694a7}.text-button{border:0;background:none;color:var(--rose);font:13px 'DM Sans';padding:12px;text-decoration:underline;text-underline-offset:5px}.text-link{font:13px/1.6 'DM Sans';text-underline-offset:5px}.small{font-size:14px;color:#8a6370;line-height:1.6}.actions{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:25px}:focus-visible{outline:3px solid #8e6540!important;outline-offset:5px}img{max-width:100%}[hidden]{display:none!important}body.opening,body.locked{overflow:hidden}#main-content{max-width:1100px;margin:auto;background:var(--pink);box-shadow:0 0 80px #8c566321}.site-header{height:76px;display:flex;justify-content:space-between;align-items:center;padding:0 6%;border-bottom:1px solid #bd8d6c40;background:#fff1edee;position:relative;z-index:30}.wordmark{font:28px 'Berkshire Swash';text-decoration:none;color:var(--gold)}.wordmark span{margin-left:14px;font-family:Georgia}.site-header nav{display:flex;gap:28px}.site-header nav a{font:10px 'DM Sans';letter-spacing:1px;text-decoration:none;text-transform:uppercase}.hero{background:radial-gradient(ellipse at 50% 20%,#fff2e900,#f9dfe6aa),var(--pink);text-align:center;position:relative}.fairytale-scene{width:min(100%,620px);margin:auto;position:relative;background:radial-gradient(ellipse at center,#ffece8,#fbe0e100)}.castle-art,.carriage-art,.footer-castle{background-image:url('assets/canva-original-sections.png');background-size:100% auto;background-repeat:no-repeat}.castle-art{aspect-ratio:1024/665;background-position:top;width:100%}.fairytale-scene h1{font:clamp(51px,11vw,86px)/1.25 'Berkshire Swash';color:#a77c3e;text-shadow:0 1px #fff1cb;margin:4px 0 0}.royal-subtitle{font:18px/1.6 'Berkshire Swash';color:#ad7281}.royal-date{display:flex;justify-content:center;align-items:center;gap:18px;margin:21px 0 15px;font:12px/1.5 'DM Sans';letter-spacing:1.5px}.royal-date b{font:53px/1 'Cormorant Garamond';padding:0 20px;border-left:1px solid var(--line);border-right:1px solid var(--line);color:var(--gold)}.hero-hours{font-size:17px;margin-bottom:24px}.hero-hours span{color:var(--gold);padding:0 8px}.fairytale-scene>.button{margin:6px 0 28px}.carriage-art{aspect-ratio:1024/600;background-position:bottom}.section{position:relative;padding:75px 7%;text-align:center;isolation:isolate;scroll-margin-top:30px}.section:before{content:'❦';display:block;color:#b28a4b;font:38px/1 Georgia;margin-bottom:25px}.section:after{content:'';position:absolute;left:7%;right:7%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#c59d62,transparent)}.section>p:not(.eyebrow){max-width:620px;margin:0 auto 20px;font-size:20px}.personal-welcome{padding:36px 20px;text-align:center;background:#fff1e9;border-top:1px solid #c9a95988;border-bottom:1px solid #c9a95988}.personal-welcome>span{font:10px 'DM Sans';letter-spacing:2px;text-transform:uppercase}.personal-welcome h2{font-size:32px}.personal-welcome a{font-size:15px;display:inline-block;margin-top:15px;text-underline-offset:4px}.countdown-section{background:radial-gradient(ellipse,#fff8f0a0,transparent 75%)}.countdown{display:flex;justify-content:center;align-items:center;gap:20px;margin:35px 0 22px}.countdown b{display:block;font:58px/1 'Cormorant Garamond';color:var(--rose);min-width:70px;font-variant-numeric:tabular-nums}.countdown span{font:9px/2 'DM Sans';text-transform:uppercase;letter-spacing:2px}.countdown i{font:30px 'Cormorant Garamond';color:var(--gold)}.family-section{background:linear-gradient(120deg,#fff0eabb,#fae0e6)}.family-grid{display:flex;justify-content:center;align-items:center;gap:45px;margin:40px 0}.family-grid .eyebrow{margin-bottom:15px}.family-grid h3{font-size:27px;line-height:1.7}.family-flourish{font:50px Georgia;color:var(--gold)}.family-note{font-style:italic}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:45px 0 30px}.ornate-card{position:relative;border:1px solid var(--line);outline:1px solid #e7bf85;outline-offset:5px;background:#fff2e9a1;border-radius:45px 5px;padding:35px 18px}.ornate-card:after{content:'❧';position:absolute;bottom:-19px;left:calc(50% - 22px);width:44px;background:var(--pink);font:33px Georgia;color:var(--gold)}.card-symbol{font:40px/1 Georgia;color:var(--gold);display:block;margin:5px 0 20px}.ornate-card h3{font:28px 'Berkshire Swash';margin:12px 0}.event-time{font:35px/1.5 'Cormorant Garamond';color:var(--rose);margin:10px 0}.ornate-card .button{margin-top:25px;font-size:11px}.itinerary ol{max-width:640px;margin:35px auto 0;list-style:none;padding:0}.itinerary li{display:grid;grid-template-columns:70px 30px 1fr;gap:20px;text-align:left;padding:25px 0;align-items:center;border-bottom:1px solid #c5a26a55}.itinerary time{font-size:27px;color:var(--rose)}.itinerary li>span{color:var(--gold)}.itinerary h3{font-size:25px}.rsvp-section{background:radial-gradient(ellipse,#fff9efa0,transparent)}.guest-greeting{font-size:25px;margin:28px 0 8px;overflow-wrap:anywhere;color:#986542}#guest-meta{font:13px/1.7 'DM Sans';margin:0 auto 20px;max-width:600px}.rsvp-card{margin:30px auto!important;background:#fff7f0!important;border-radius:32px 4px!important;max-width:580px!important;border:1px solid #bf9d63!important;color:var(--ink)!important}.rsvp-card label{font:12px/1.6 'DM Sans'}.rsvp-card input,.rsvp-card select,.rsvp-card textarea{font:14px/1.5 'DM Sans';border-radius:5px!important;background:#fffdf9!important;border-color:#d3b4ad!important}.rsvp-card textarea{min-height:90px;resize:vertical}.rsvp-card input[readonly]{background:#f8eeea!important}.rsvp-card .button{width:100%;margin-top:10px}.rsvp-card #rsvp-feedback{margin-top:18px;font-size:16px}#digital-pass{text-align:center;background:linear-gradient(145deg,#fffaf0,#fae6e6)!important}#digital-pass h3{font:45px 'Berkshire Swash';color:var(--gold);margin:20px 0}#pass-name{font-size:28px}#pass-meta{font:12px/1.8 'DM Sans'}#pass-qr{display:block;padding:12px;background:white;width:204px;height:204px;margin:20px auto;border:1px solid #d2b98a}#digital-pass .actions{margin-top:25px}#digital-pass .button{width:auto}.rsvp-help{margin-top:30px;font-size:15px}.liverpool{font:italic 38px Georgia!important;color:#bb4f83;margin:25px auto!important}.gift-art{display:none}.gifts>p:not(.eyebrow){max-width:540px}.music-section>.button{margin:10px auto 22px}.music-section .small{font-size:13px!important}.memories-section>p{max-width:650px}.memories-section details{max-width:850px;margin:35px auto;text-align:left;border:1px solid #c29a6c;background:#fff0e77a;padding:20px;border-radius:24px 4px}.memories-section summary{font-family:'Berkshire Swash';font-size:20px;color:var(--gold);cursor:pointer;list-style:none}.memories-section summary span{float:right}.memory-controls{max-width:580px;margin:30px auto}.upload-label{display:inline-flex!important;margin:15px 0}.memory-controls textarea{width:100%;display:block;min-height:120px;padding:14px;border:1px solid #c29a8c;background:#fffaf4;color:var(--ink);border-radius:6px;font-size:16px}#guestbook-form label{display:block;margin:25px 0 15px}#guestbook-form .button{margin-bottom:20px}.memories-section h3{font-family:'Berkshire Swash';font-size:23px;text-align:center;margin:35px 0 20px}.shared-album{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:25px 0}.shared-album img,.shared-album video{display:block;width:100%;max-height:300px;object-fit:contain;border-radius:8px}.shared-album:not(:empty)+.empty-album{display:none}.empty-album{font-size:16px;text-align:center;font-style:italic}#shared-book{max-width:650px;margin:auto}.book-item{border:1px solid #c9a95966;background:#fff9f0;padding:22px;border-radius:20px 3px;margin:12px 0;overflow-wrap:anywhere}.book-item p{white-space:pre-wrap}.faq details{max-width:650px;text-align:left;border-bottom:1px solid #c49b7455;margin:0 auto;padding:18px 0}.faq summary{font-size:21px;color:#95613f;cursor:pointer}.faq details p{font-size:18px;padding-top:12px}.faq .actions{margin-top:38px}footer{text-align:center;padding:0 25px 100px;position:relative;background:linear-gradient(#f9dfe6,#fce8e7)}.footer-castle{max-width:450px;aspect-ratio:1024/680;margin:auto;background-position:top;opacity:.9}footer h2{font-size:40px}footer .signature{font:50px 'Berkshire Swash';color:var(--gold);margin:10px 0}footer #admin-link{display:inline-block;margin:40px auto 0;font:11px 'DM Sans';text-underline-offset:5px}.guest-dock{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:0;background:#fff9f0ed;border:1px solid #bf985f;box-shadow:0 5px 25px #74414b30;z-index:80;border-radius:30px;padding:5px;backdrop-filter:blur(10px)}.guest-dock button,.guest-dock a{display:block;white-space:nowrap;min-height:42px;min-width:44px;text-align:center;text-decoration:none;border:0;background:none;color:#98613e;padding:12px 18px;font:11px/1.6 'DM Sans';border-radius:24px}.guest-dock button{font-size:22px;line-height:1}.guest-dock a:hover{background:#f9e6de}.envelope-screen{position:fixed;inset:0;background:#f3d9e1;z-index:1000;border:0;padding:0;width:100%;height:100dvh;display:none;align-items:center;justify-content:center;transition:opacity .9s,visibility .9s}.envelope-stage{display:block;position:relative;width:min(100%,600px);height:min(100dvh,900px);background:url('assets/canva-original-cover.png') center/100% 100% no-repeat;box-shadow:0 0 60px #98616722}.opening-title{position:absolute;top:19%;width:100%;left:0;font:clamp(23px,5vw,37px) 'Berkshire Swash';color:#a67b36}.envelope-art{position:absolute;inset:27% 3% 32%}.invited-label{position:absolute;top:70%;left:0;width:100%;font:9px 'DM Sans';letter-spacing:2px;text-transform:uppercase;color:#9f6d54}#envelope-name{position:absolute;top:74%;width:90%;left:5%;font:clamp(20px,4vw,28px)/1.2 'Cormorant Garamond';color:#98663f;overflow-wrap:anywhere}#envelope-meta{position:absolute;top:82%;left:5%;width:90%;font:10px/1.5 'DM Sans';color:#9c6c53}.opening-signature{position:absolute;top:88%;left:0;width:100%;font:27px 'Berkshire Swash';color:#a17838}.envelope-screen.opening-out{opacity:0;visibility:hidden;pointer-events:none}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s,transform .8s}.js-motion .reveal.is-visible{opacity:1;transform:none}.simple-dialog{width:min(92vw,520px);border:1px solid #b58c4f;background:#fff0e8;padding:50px 30px 35px;border-radius:30px 5px;text-align:center;color:var(--ink)}dialog::backdrop{background:#4a2639cc;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:8px;min-width:44px;min-height:44px;font-size:30px;border:0;background:none;color:var(--ink)}#gallery-modal{border:1px solid #bf985f;padding:10px;background:#fff0e7;max-width:96vw;max-height:94dvh;overflow:hidden}#gallery-modal img{display:block;max-height:88dvh;object-fit:contain;margin:auto}#gallery-modal .dialog-close{background:#fff3e8dd;border-radius:50%;z-index:2}.calendar-actions{display:grid;gap:20px;margin-top:30px}#spotify-container{margin:25px auto}#spotify-container iframe{width:100%;border:0;border-radius:15px}.app-toast{background:#754252!important;font:13px/1.6 'DM Sans';z-index:3000!important;bottom:85px!important}.admin-panel{color:#684651!important;z-index:1500}.admin-panel .pink-button{border-radius:8px;font-size:12px}.admin-panel button{min-height:42px}.admin-panel header form{margin:0 15px 0 auto}.admin-panel header form button{background:none;border:0;color:#8c4b67;font-size:11px;text-decoration:underline}.admin-panel h2{font-family:'Cormorant Garamond';margin:0;color:#845464}.admin-panel .admin-tabs button{background:#faece6;border:1px solid #d5bd99;color:#785163}.admin-panel .admin-tabs button.active{background:#a95e78;color:white}.admin-content input,.admin-content select,.admin-content textarea{font:13px 'DM Sans'}#event-shortcuts{display:none}.phase-banner{font-size:20px}body[data-phase=event] .guest-dock{display:none}body[data-phase=event] #event-shortcuts{display:flex}body[data-phase=after] .countdown-section{display:none}@media(max-width:700px){.site-header{height:66px;padding:0 20px}.site-header nav{gap:15px}.site-header nav a{font-size:9px}.wordmark{font-size:23px}.wordmark span{display:none}.section{padding:55px 25px}.section>p:not(.eyebrow){font-size:19px}.location-grid{grid-template-columns:1fr;gap:36px;max-width:470px;margin:40px auto}.ornate-card{padding:30px 22px}.family-grid{flex-direction:column;gap:20px;margin:30px 0}.family-flourish{font-size:35px}.family-grid h3{font-size:26px}.countdown{gap:7px}.countdown b{font-size:43px;min-width:52px}.countdown span{font-size:8px;letter-spacing:1px}.countdown i{font-size:24px}.hero-hours{font-size:14px}.hero-hours span{padding:0 4px}.hero h1{font-size:clamp(52px,14vw,78px)}.royal-subtitle{font-size:15px}.royal-date{font-size:10px;gap:13px}.royal-date b{font-size:44px}.fairytale-scene>.button{margin-bottom:20px}.hero>.eyebrow{font-size:9px}.itinerary li{grid-template-columns:60px 20px 1fr;gap:10px}.itinerary time{font-size:24px}.itinerary h3{font-size:23px}.itinerary p{font-size:16px}.rsvp-card{padding:25px 20px!important}.shared-album{grid-template-columns:1fr 1fr}.memories-section details{padding:20px 15px;margin-left:-5px;margin-right:-5px}.memories-section summary{font-size:17px}.guest-dock{bottom:10px}.guest-dock a{padding:12px 15px}.envelope-stage{max-width:600px}.opening-title{font-size:28px}#digital-pass h3{font-size:36px}.admin-panel header{gap:10px}.admin-panel header form button{font-size:9px}.admin-panel h2{font-size:22px!important}.admin-panel header p{font-size:8px}.admin-panel header form{margin:0}.actions{gap:18px}.faq summary{font-size:20px}}@media(max-width:359px){.section{padding:45px 18px}.countdown{gap:3px}.countdown b{font-size:36px;min-width:45px}.hero-hours{font-size:12px}.eyebrow{font-size:9px;letter-spacing:2px}.site-header nav{gap:10px}.royal-subtitle{font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.js-motion .reveal{opacity:1;transform:none}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body>*{display:none!important}#main-content{display:block!important}#main-content>*{display:none!important}#main-content>main{display:block!important}main>*{display:none!important}main>#rsvp-section{display:block!important;padding:0!important;margin:0!important;opacity:1!important;transform:none!important}#rsvp-section>.section-content{display:block!important}#rsvp-section>.section-content>*{display:none!important}#rsvp-section>.section-content>#digital-pass{display:block!important;position:static!important;visibility:visible!important;background:white!important;border:1px solid #aaa!important;color:#222!important;max-width:600px!important;break-inside:avoid}#digital-pass *{visibility:visible!important;color:#222!important}#digital-pass .actions{display:none!important}#digital-pass #pass-qr{margin:25px auto!important}}

.js-enabled .envelope-screen{display:flex}
/* Artwork from the user's original licensed Canva design, exported through Canva. */
#main-content,.section,.hero,footer{background-color:#fbe0e4;background-image:url('assets/canva-original-cover.png');background-size:317.674419% auto;background-position:left center;background-repeat:repeat-y}.fairytale-scene{background:none}.castle-art{aspect-ratio:466/422;background-image:url('assets/canva-original-sections.png');background-size:293.133047% auto;background-position:50% 0}.carriage-art{aspect-ratio:346/186;width:min(100%,520px);margin:0 auto;background-image:url('assets/canva-original-sections.png');background-size:394.797688% auto;background-position:44.117647% 59.778441%}.footer-castle{aspect-ratio:466/392;background-image:url('assets/canva-original-sections.png');background-size:293.133047% auto;background-position:50% 100%;opacity:1}.envelope-stage{background-image:url('assets/canva-original-cover.png');background-size:317.674419% auto;background-position:left center;background-repeat:repeat-y}.envelope-art{inset:auto;top:31%;left:7%;width:86%;height:auto;aspect-ratio:429/313;background-image:url('assets/canva-original-cover.png');background-size:318.414918% auto;background-position:49.839915% 59.56044%}.opening-title{top:20%}.gift-art{display:block;width:260px;max-width:80%;aspect-ratio:396/331;margin:30px auto 5px;background-image:url('assets/canva-original-sections.png');background-size:344.949495% auto;background-position:49.381443% 48.824%}.countdown-section:before{content:'';width:100px;aspect-ratio:138/82;margin:0 auto 20px;background-image:url('assets/canva-original-sections.png');background-size:989.855072% auto;background-position:50% 21.884118%}.fairytale-scene .eyebrow{margin-top:8px}.fairytale-scene>.button{margin-bottom:15px}.hero-hours{margin-top:10px}@media(max-width:700px){.opening-title{top:22%}.envelope-art{top:34%}.invited-label{top:73%}#envelope-name{top:77%}#envelope-meta{top:83%}.opening-signature{top:89%}.carriage-art{width:100%}}

.castle-art{position:relative}.hero-music{position:absolute;left:2%;bottom:0;width:19%;height:19%;border:0;background:transparent;border-radius:50%}.envelope-screen:not(.opening-out)~.guest-dock{visibility:hidden}

/* Reino de Renata: one continuous illustrated landscape, with quiet ambient motion. */
:root{--ink:#694957;--gold:#947145;--rose:#a65f7d;--pink:#f6e3e9;--paper:#fff8f0;--line:#d2b98e}
body{background:#e7dfe9;font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.85}
#main-content{max-width:1400px;background:#f7e9ec;box-shadow:0 0 100px #775e7020}
#main-content,.section,.hero,footer{background-image:none}
h2{font-size:clamp(28px,4vw,46px);letter-spacing:-.025em;color:#8b6374;text-wrap:balance}
h3{color:#8d6577}.eyebrow{color:#98667c;letter-spacing:.24em;font-size:10px}
.section>p:not(.eyebrow){font-family:'Cormorant Garamond',serif;font-size:24px;line-height:1.6}
.site-header{height:70px;background:#fff8f0dd;border:0;backdrop-filter:blur(14px)}
.site-header nav a{font-size:10px;min-height:44px;display:flex;align-items:center}.wordmark{color:#9c7282}
.hero{overflow:hidden;isolation:isolate;background:linear-gradient(#e7e0f3,#f9e5ee 68%,#fff2e6);padding:0 0 40px}
.kingdom-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:url('assets/kingdom-landscape.svg') center top/cover no-repeat}
.kingdom-atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 32%,#fff9e6aa,transparent 55%)}
.fairytale-scene{width:min(100%,850px);padding:5px 30px 0;position:relative;background:none}
.castle-art{width:min(100%,650px);margin:-10px auto -50px;filter:drop-shadow(0 20px 28px #8b64841f);transform:translateY(var(--depth,0px));mask-image:linear-gradient(#000 83%,transparent);-webkit-mask-image:linear-gradient(#000 83%,transparent)}
.hero .eyebrow{position:relative;margin-top:0;letter-spacing:.32em}
.fairytale-scene h1{position:relative;font-size:clamp(76px,12vw,132px);line-height:1.25;color:#9b6684;text-shadow:0 2px #fff8ee,0 8px 35px #fff3d6;margin:3px 0 8px;letter-spacing:-.045em}
.royal-subtitle{font-family:'Cormorant Garamond',serif;font-size:30px;font-style:italic;color:#97677f}
.royal-date{margin:22px auto 14px;gap:22px;letter-spacing:.18em}.royal-date b{color:#966d83;font-size:64px;border-color:#bb9aab80}
.hero-hours{font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:.03em;margin-bottom:22px}
.carriage-art{width:290px;opacity:.85;margin:30px auto -25px;mask-image:radial-gradient(ellipse,#000 45%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,#000 45%,transparent 72%)}
.cloud{position:absolute;width:65%;height:130px;filter:blur(16px);background:radial-gradient(ellipse,#fffaf9c9,transparent 70%);animation:cloud-drift 28s ease-in-out infinite alternate;will-change:transform}.cloud-one{left:-18%;top:17%}.cloud-two{right:-20%;top:42%;animation-delay:-12s;animation-duration:36s}
.kingdom-lights{position:absolute;inset:0}.kingdom-lights i{position:absolute;left:calc(7% + var(--i)*6.5%);top:calc(9% + var(--i)*5.3%);width:4px;height:4px;background:#fff8d7;border-radius:50%;box-shadow:0 0 12px 4px #fff6dd;animation:kingdom-glow 6s ease-in-out infinite;animation-delay:calc(var(--i)*-.7s)}
.kingdom-lights i:nth-child(3n){width:8px;height:8px;clip-path:polygon(50% 0,60% 39%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 39%)}
.section{padding:72px max(28px,8%);background:#fbefec;isolation:isolate}
.section:before{content:'✧';font-size:27px;color:#bc9d77;margin-bottom:18px}
.section:after{left:0;right:0;bottom:-1px;height:58px;background:radial-gradient(ellipse at 12% 100%,#fff7ef 42%,transparent 44%),radial-gradient(ellipse at 66% 110%,#fff7ef 40%,transparent 42%);pointer-events:none;z-index:-1}
.countdown-section{padding-top:45px;padding-bottom:65px;background:linear-gradient(#fff1e5,#f9edea)}
.countdown-section:before{background:none;aspect-ratio:auto;width:auto;content:'✧';font:28px Georgia}
.countdown{max-width:540px;margin:30px auto 20px;padding:25px 10px;border-block:1px solid #d5b9ab70;gap:24px}.countdown b{font-size:62px;color:#996c84}.countdown span{color:#8c6c7a}
.family-section{background:linear-gradient(#fff7ef,#f3e9ed)}.family-grid{gap:60px;margin:30px 0}.family-grid h3{font-size:28px}.family-note{font-style:italic}.family-section:after{background:radial-gradient(ellipse at 20% 110%,#f3e9ed 45%,transparent 47%)}
#event-info-section{background:radial-gradient(ellipse at 50% 25%,#fff9f0,#f3e9ed)}
.location-grid{gap:40px;max-width:900px;margin:38px auto 28px}
.ornate-card{border:1px solid #cfb4a0;outline:0;border-radius:140px 140px 28px 28px;padding:40px 25px 35px;background:linear-gradient(150deg,#fffaf1ee,#f5e5e8b3);box-shadow:0 20px 45px #a17e8f12,inset 0 0 0 7px #fff9f24d}
.ornate-card:after{display:none}.card-symbol{font-size:35px;margin-bottom:18px}.event-time{font-size:43px;color:#a16d88}.ornate-card h3{font-family:'Cormorant Garamond';font-size:34px}
.itinerary{background:linear-gradient(#fff7ef,#f1e6ed);padding-top:55px;padding-bottom:70px}.itinerary ol{max-width:600px}.itinerary li{position:relative;border:0;padding:25px 0}.itinerary li>span{font-size:18px}.itinerary li:first-child:after{content:'';position:absolute;width:1px;background:linear-gradient(#c7a5b3,transparent);height:60px;left:104px;top:78px}.itinerary p{font-size:14px}
.photo-section{background:radial-gradient(ellipse at 50% 40%,#fff8ed,#eadeee);padding:70px 6% 80px;overflow:hidden}
.photo-section:before{content:'✧'}.photo-section h2{max-width:700px;margin:12px auto 30px}
.rsvp-section{background:linear-gradient(#fff7ef,#f7e6e9)}.rsvp-card{box-shadow:0 18px 60px #90667c10;border-radius:80px 80px 22px 22px!important;padding:40px 30px!important;border-color:#d5bba3!important;background:linear-gradient(145deg,#fffaf4,#fceded)!important}
.button,.pink-button{position:relative;border-radius:999px;border:1px solid #c5a783;outline:0;background:linear-gradient(145deg,#fffaf3,#f3dce5);color:#80516c;box-shadow:inset 0 1px #fff,0 6px 18px #9b70861a;min-height:48px;padding:14px 25px;transition:transform .22s,box-shadow .22s}
.button:hover,.pink-button:hover{background:linear-gradient(145deg,#fffdf7,#f7e4eb);box-shadow:0 9px 24px #9b70862b;transform:translateY(-2px)}.button:active,.pink-button:active{transform:translateY(1px)}.outline{background:#fff8f064}.button:focus-visible{outline:3px solid #9e6c89!important}
.gifts{background:radial-gradient(ellipse at 50% 60%,#fff4e6,#f5e6e9)}.gift-art{width:200px;mask-image:radial-gradient(ellipse,#000 35%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse,#000 35%,transparent 70%);opacity:.85}.liverpool{font-size:30px!important}
.music-section{background:linear-gradient(#fff7ef,#eee3ed);padding-top:55px;padding-bottom:60px}.memories-section{background:linear-gradient(#eee3ed,#faf0eb)}.memories-section details{border-color:#d4bba9;border-radius:35px;background:#fff8f078;padding:25px}.faq{background:#fff7ef;padding-top:55px}.faq summary{font-family:'Cormorant Garamond';font-size:25px}.faq details p{font-size:14px;line-height:1.8}
footer{background:#eee3eb url('assets/kingdom-landscape.svg') center bottom/cover no-repeat;padding-top:30px;padding-bottom:110px;overflow:hidden}.footer-castle{width:270px;mask-image:linear-gradient(#000 65%,transparent);-webkit-mask-image:linear-gradient(#000 65%,transparent);margin-bottom:-25px}footer h2{font-size:38px}footer .signature{color:#9b6684;font-size:56px}
.envelope-screen{background:radial-gradient(ellipse at 50% 40%,#fff4ee,#e8deee)}.envelope-stage{background-image:none}.envelope-stage:before{content:'';position:absolute;inset:0;background:url('assets/kingdom-landscape.svg') center/cover;opacity:.5;mask-image:radial-gradient(ellipse,#000 15%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 72%)}.opening-title{color:#9b6b84;font-size:32px}.opening-signature{font-size:38px;color:#9b6b84}.envelope-art{filter:drop-shadow(0 14px 20px #986b8426);mask-image:radial-gradient(ellipse,#000 45%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,#000 45%,transparent 72%)}
.guest-dock{background:#fff9f1ed;border-color:#d0b9a6;box-shadow:0 8px 30px #75516920}.guest-dock a,.guest-dock button{color:#80516c}.kingdom-paused *{animation-play-state:paused!important}
@keyframes cloud-drift{to{transform:translate3d(70px,10px,0)}}@keyframes kingdom-glow{0%,100%{opacity:.2;transform:translateY(10px)}50%{opacity:.9;transform:translateY(-12px)}}
@media(max-width:700px){body{font-size:14px}.hero{padding-bottom:25px}.fairytale-scene{padding:0 20px}.castle-art{width:calc(100% + 30px);max-width:none;margin:-5px -15px -28px}.fairytale-scene h1{font-size:clamp(70px,19vw,110px)}.hero .eyebrow{font-size:8px;letter-spacing:.22em}.royal-subtitle{font-size:25px}.royal-date{gap:18px;margin:20px 0 14px;font-size:9px}.royal-date b{font-size:51px;padding:0 18px}.hero-hours{font-size:10px;letter-spacing:0}.carriage-art{width:230px;margin-top:25px}.section{padding:55px 24px 65px}.section>p:not(.eyebrow){font-size:22px}.countdown{gap:7px;padding:22px 0}.countdown b{font-size:45px;min-width:49px}.countdown span{font-size:8px}.family-grid{gap:20px}.family-grid h3{font-size:27px}.location-grid{gap:30px}.ornate-card{border-radius:120px 120px 24px 24px;padding-top:35px}.photo-section{padding-left:22px;padding-right:22px}.rsvp-card{padding:32px 20px!important;border-radius:55px 55px 20px 20px!important}.itinerary li:first-child:after{left:79px}.site-header{height:60px;padding:0 18px}.site-header nav{gap:15px}.site-header nav a{font-size:8px}.section:after{height:35px}.memories-section details{padding:20px 14px}.memories-section summary{font-size:16px}.opening-title{font-size:28px}.button{max-width:100%}.hero .button{font-size:11px}.cloud{filter:blur(10px);width:80%}}
@media(max-width:359px){.section{padding-inline:18px}.hero-hours{font-size:9px}.countdown{gap:3px}.countdown b{min-width:44px;font-size:39px}.site-header nav{gap:10px}.fairytale-scene{padding-inline:17px}}
@media(prefers-reduced-motion:reduce){.castle-art{transform:none}.cloud,.kingdom-lights i{animation:none}.kingdom-lights i{opacity:.5}}
@media print{.kingdom-atmosphere{display:none!important}}
.castle-art{width:min(100%,540px);margin-bottom:-40px;mask-image:radial-gradient(ellipse 62% 66% at 50% 42%,#000 55%,transparent 84%);-webkit-mask-image:radial-gradient(ellipse 62% 66% at 50% 42%,#000 55%,transparent 84%)}
@media(max-width:700px){.castle-art{width:calc(100% + 30px);margin-bottom:-28px}}

/* Second pass: El reino mágico de Renata. Atmosphere never carries event text. */
body.locked #main-content{visibility:hidden}
.envelope-screen{transition:none;opacity:1;visibility:visible}
.envelope-screen.opening-out{opacity:1;visibility:visible;pointer-events:none}
.envelope-screen.opening-out .envelope-stage{animation:storybook-open .55s ease both}
@keyframes storybook-open{to{transform:scale(1.045);filter:brightness(1.12)}}
.js-motion .reveal{transform:none;opacity:0;transition:opacity .65s ease}
.js-motion .reveal.is-visible{transform:none;opacity:1}
main>.section{overflow:clip}
main>.section>*:not(.scene-magic){position:relative;z-index:1}
.scene-magic{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 8% 28%,#fff5d57a,transparent 26%),radial-gradient(ellipse at 94% 75%,#dbc9ee66,transparent 32%)}
.scene-magic:after{content:'';position:absolute;inset:auto 0 -2px;height:200px;background:url('assets/kingdom-garden.svg') center bottom/100% auto no-repeat;opacity:.68}
.scene-magic i{position:absolute;top:22%;left:6%;width:7px;height:7px;border-radius:50%;background:#fff9dc;box-shadow:0 0 16px 6px #fff6cb88;animation:fairy-breath 7s ease-in-out infinite}
.scene-magic i:nth-child(2){top:65%;left:94%;animation-delay:-2s;width:5px;height:5px}.scene-magic i:nth-child(3){top:85%;left:15%;animation-delay:-4s;width:3px;height:3px}
@keyframes fairy-breath{0%,100%{opacity:.18;transform:translateY(7px)}50%{opacity:.85;transform:translateY(-9px)}}
.section:before{font-size:24px;content:'✧';margin-bottom:12px;position:relative;z-index:1;color:#bb8ab1;text-shadow:0 0 15px #fff3be}
.section:after{height:50px;background:radial-gradient(ellipse at 14% 120%,#f7e7f0 43%,transparent 45%),radial-gradient(ellipse at 72% 135%,#f7e7f0 45%,transparent 47%);z-index:0;opacity:.8}
h2{font-family:'Berkshire Swash',Georgia,serif;font-size:clamp(34px,4.6vw,51px);line-height:1.25;letter-spacing:0;color:#925b8c;text-shadow:0 2px 0 #fff6f0;text-wrap:balance}
h3{font-family:'Cormorant Garamond',Georgia,serif}.section h2{max-width:720px;margin-inline:auto}
.fairytale-scene h1{font-family:'Berkshire Swash',Georgia,serif;font-size:clamp(86px,13vw,145px);letter-spacing:0;line-height:1.2;color:#a25d91;text-shadow:0 2px #fff5e5,0 0 30px #fff0d9}
.royal-subtitle{font-style:normal;font-size:29px;color:#916286}.wordmark{font-family:'Berkshire Swash';font-size:30px}
.kingdom-atmosphere{background-image:radial-gradient(ellipse at 50% 25%,#fff7c8aa,transparent 42%),url('assets/kingdom-landscape.svg')}
.castle-art{filter:drop-shadow(0 7px 24px #ffd69550)}
.hero .kingdom-lights i:nth-child(3n){box-shadow:0 0 20px 8px #fff3b7;animation-duration:8s}
.hero-music{background:linear-gradient(#fff5e4bb,#f1d1e2bb);border:1px solid #d0a9bc;left:7%;bottom:12%;width:43px;height:43px;color:#9b648d;box-shadow:0 0 22px #fff2d6}
.hero-music:before{content:'♫';font:24px Georgia}.hero-music:hover{background:#fff3df}
.countdown-section{background:radial-gradient(ellipse at 50% 45%,#fff5d6 0,#fae2f0 55%,#ebdff2 100%);padding-top:50px;padding-bottom:70px}
.countdown-section:before{content:'';width:82px;aspect-ratio:138/82;margin:0 auto 18px;background-image:url('assets/canva-original-sections.png');background-size:989.855072% auto;background-position:50% 21.884118%;mask-image:radial-gradient(ellipse,#000 45%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse,#000 45%,transparent 75%)}
.countdown-section .scene-magic:after{height:180px;opacity:.75}
.countdown{position:relative;border:0;gap:16px;padding:26px 10px 30px;margin:22px auto 12px}
.countdown>div{position:relative;min-width:85px;padding:15px 7px 12px;background:linear-gradient(160deg,#fffbf1db,#f6dfedbd);border:1px solid #deb9d280;border-radius:50% 50% 22px 22px;box-shadow:0 9px 28px #b280b11c,inset 0 1px #fff9e7}
.countdown>div:before{content:'✦';position:absolute;left:calc(50% - 5px);top:-12px;font:13px Georgia;color:#c49a65;filter:drop-shadow(0 0 4px #fff5cd)}
.countdown b{font-size:57px;color:#a46a9b}.countdown i{font-size:22px;color:#b58cac}.countdown span{font-size:8px;letter-spacing:.12em}
.family-section{background:radial-gradient(ellipse at 50% 15%,#fff3e5,#f4dfea 65%,#e9def0)}
.princess-moment{position:relative;width:min(100% - 25px,430px);margin:35px auto 40px;aspect-ratio:3/4;padding:7px;border:1px solid #d1a7c2;border-radius:48% 48% 38% 38% / 35% 35% 20% 20%;background:linear-gradient(#fff8e6,#f1cee2);box-shadow:0 18px 65px #ae79a52b,0 0 0 6px #fff5e650}
.princess-moment img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.portrait-fireflies{position:absolute;inset:-10px;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 6% 32%,#fff7cb 0 3px,transparent 5px),radial-gradient(circle at 98% 73%,#fff7cb 0 3px,transparent 5px);filter:drop-shadow(0 0 8px #fff1ad);animation:fairy-breath 8s ease-in-out infinite}
.family-flourish{font-size:26px;color:#bc8fac}.family-grid h3{font-size:28px}.family-note{max-width:600px}
#event-info-section{background:radial-gradient(ellipse at 50% 50%,#fff5e5,#efdeee)}
.ornate-card{background:linear-gradient(160deg,#fff9e9f2,#f4dfefdb);border-color:#d2adc8;box-shadow:0 18px 40px #ad83ab1c,inset 0 0 0 6px #fff8ed66;border-radius:120px 120px 35px 35px}
.ornate-card h3{font-family:'Berkshire Swash';font-size:33px;color:#9c6596}.card-symbol{color:#c49b65;text-shadow:0 0 15px #fff1b7}.event-time{color:#a76e9d}
.itinerary{background:linear-gradient(#f4e4ed,#e6dff4)}.itinerary li{padding:22px 0}.itinerary li>span{color:#c098bf;text-shadow:0 0 10px #fff1c2}.itinerary h3{font-family:'Berkshire Swash';font-size:27px}.itinerary .scene-magic:after{opacity:.55}
.photo-section{background:radial-gradient(ellipse at 50% 40%,#fff2db,#ecd9ee 65%,#dddef3)}
.photo-section .scene-magic:after{height:320px;opacity:.85;background-size:130% auto}
.rsvp-section{background:radial-gradient(ellipse at 50% 40%,#fff3df,#f1ddec 70%,#e8def1)}
.rsvp-card{background:linear-gradient(145deg,#fff8e7,#f6e2ef)!important;border-color:#ceabc4!important;box-shadow:0 18px 55px #a4769d1c}
.button,.pink-button{background:linear-gradient(145deg,#fff2d3,#efcfe3);border-color:#c49c92;color:#75456f;box-shadow:inset 0 1px #fff8e9,0 6px 20px #a46b9c24;isolation:isolate}
.button:after{content:'';position:absolute;inset:3px;border-radius:inherit;border:1px solid #fff7e65c;pointer-events:none}
.button:hover,.pink-button:hover{background:linear-gradient(145deg,#fff7db,#f5d8ec)}.outline{background:linear-gradient(145deg,#fff8edb3,#edd9ec99)}
.gifts{background:radial-gradient(ellipse at 50% 50%,#fff0d8,#f0dced)}.gift-art{width:240px;opacity:1;filter:drop-shadow(0 8px 12px #d3a3bc22)}
.music-section{background:linear-gradient(#eee1f2,#e2dff3)}.music-section .scene-magic:after{opacity:.4}
.memories-section{background:radial-gradient(ellipse at 50% 20%,#fff0e0,#eedbed)}.memories-section summary,.memories-section h3{font-family:'Berkshire Swash';font-size:27px;text-transform:none}.memories-section details{border-radius:45px;background:#fff6e4a8;border-color:#d4b0ca;box-shadow:0 15px 40px #a774a014}
.faq{background:linear-gradient(#f5e4ed,#e6dcf0)}.faq summary{font-size:24px;color:#8d5888}
footer{background-image:radial-gradient(ellipse at 50% 55%,#f5d4ec33,transparent 65%),linear-gradient(#e6dcf0,#b9adcf 65%,#82799f);color:#fff4eb;padding-top:55px;isolation:isolate}
footer:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 15% 22%,#fff3bf 0 2px,transparent 3px),radial-gradient(circle at 78% 38%,#fff3bf 0 2px,transparent 3px),radial-gradient(circle at 87% 68%,#fff3bf 0 1px,transparent 2px),radial-gradient(circle at 23% 76%,#fff3bf 0 1px,transparent 2px);pointer-events:none;z-index:-1}
footer .footer-castle{width:min(90%,390px);margin-bottom:0;mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,#000 40%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,#000 40%,transparent 80%);filter:drop-shadow(0 0 30px #ffdfb77a)}
footer h2{color:#fff2e2;text-shadow:0 3px 14px #6e4c8c55;font-size:46px}footer .signature{font-family:'Berkshire Swash';font-size:66px;color:#fff0d8}footer .eyebrow{color:#f4e4f4}footer #admin-link{color:#fff2e8}
.opening-title,.opening-signature{font-family:'Berkshire Swash';letter-spacing:0}.opening-title{font-size:38px}.opening-signature{font-size:46px}
@media(max-width:700px){h2{font-size:37px;line-height:1.23}.fairytale-scene h1{font-size:clamp(88px,24vw,116px)}.royal-subtitle{font-size:25px}.section{padding-top:50px;padding-bottom:64px}.scene-magic:after{height:170px;background-size:170% auto;opacity:.7}.scene-magic i{left:3%;width:4px;height:4px}.scene-magic i:nth-child(2){left:97%}.countdown{gap:6px;padding:24px 0;margin:16px auto 14px}.countdown>div{min-width:0;flex:1;padding:15px 2px 10px;border-radius:50% 50% 17px 17px}.countdown b{font-size:41px;min-width:0}.countdown i{font-size:16px}.countdown span{font-size:7px;letter-spacing:.06em}.princess-moment{width:calc(100% - 18px);margin:30px auto 35px;aspect-ratio:3/4}.family-grid h3{font-size:26px}.photo-section{padding-inline:17px}.photo-section .scene-magic:after{background-size:220% auto;height:300px}.memories-section summary{font-size:23px;line-height:1.4;padding-right:15px}.memories-section h3{font-size:27px}.ornate-card h3{font-size:32px}.opening-title{font-size:32px}.hero-music{width:38px;height:38px;bottom:10%}.hero-music:before{font-size:21px}footer h2{font-size:42px}}
@media(max-width:359px){h2{font-size:33px}.countdown{gap:4px}.countdown b{font-size:36px}.countdown>div{padding-inline:1px}.hero-hours{font-size:9px}.section>p:not(.eyebrow){font-size:21px}}
@media(prefers-reduced-motion:reduce){.scene-magic i,.portrait-fireflies{animation:none;opacity:.55}.envelope-screen.opening-out .envelope-stage{animation:none}.js-motion .reveal{opacity:1}}
@media print{.scene-magic,.princess-moment{display:none!important}}
body.locked .guest-dock,body.locked #event-shortcuts{visibility:hidden!important}
@media(max-width:700px){.scene-magic:after,.photo-section .scene-magic:after{background-size:100% auto}}
@media(max-width:700px){.hero-music{width:44px;height:44px}.site-header nav a{min-width:44px;min-height:44px;justify-content:center}.rsvp-card input,.rsvp-card select,.rsvp-card textarea,.memory-controls textarea{font-size:16px}}
.guest-greeting{font:16px/1.75 'DM Sans',sans-serif;color:#87547e;margin:25px auto 12px;max-width:440px}
.admin-panel{font-family:'DM Sans',sans-serif}
#contact-section details{max-width:850px;border-radius:38px;background:linear-gradient(145deg,#fff8e9dd,#f1dfefdd);color:var(--ink);padding:25px;border:1px solid #d4b0ca}
@media(max-width:700px){#contact-section details{padding:22px 17px}}

/* Third pass: the photographs, rather than the scenery, are the main rooms of the kingdom. */
.hero{padding:20px 0 25px}.fairytale-scene{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);column-gap:45px;align-items:center;width:min(1120px,100%);padding:20px 45px}
.castle-art{grid-column:1;grid-row:1;width:190px;margin:0 auto -10px;transform:none;opacity:.88}
.fairytale-scene>.eyebrow{grid-column:1;grid-row:2;align-self:end;margin-top:0}
.fairytale-scene h1{grid-column:1;grid-row:3;font-size:clamp(80px,8.5vw,124px);margin:5px 0 15px}
.royal-subtitle{grid-column:1;grid-row:4;font-size:27px}.royal-date{grid-column:1;grid-row:5;margin:20px 0}.hero-hours{grid-column:1;grid-row:6;line-height:1.8}.fairytale-scene>.button{grid-column:1;grid-row:7;justify-self:center;margin:7px 0 20px}.carriage-art{grid-column:1;grid-row:8;width:170px;margin:0 auto;opacity:.65}
.hero-photo{grid-column:2;grid-row:1/9;position:relative;width:100%;margin:0;aspect-ratio:1464/2200;overflow:hidden;border-radius:200px 200px 35px 35px;background:#dbd7e1;box-shadow:0 20px 70px #76647f26}
.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}
.hero .kingdom-atmosphere{opacity:.8}.hero-music{left:3%;bottom:8%;width:44px;height:44px}
.photo-aura{position:absolute;inset:0;border-radius:inherit;pointer-events:none;border:1px solid #fff6e0aa;box-shadow:inset 0 0 0 6px #fff5e51c}
.story-portrait{isolation:isolate;position:relative}
.princess-moment{width:min(100%,680px);aspect-ratio:1464/2200;padding:0;border-radius:160px 160px 30px 30px;outline:none;border:1px solid #e8cce1;box-shadow:0 20px 65px #946e9b26;margin:32px auto 40px}
.princess-moment img{object-fit:contain}.portrait-fireflies{inset:-2px}
.photo-chapter{max-width:1040px;margin:0 auto;overflow:hidden;background:#d7d5e0;padding:0;border:0;aspect-ratio:1464/2200;max-height:1050px;border-radius:0}
.photo-chapter img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 38%;transition:transform 1.6s ease;transform:scale(1.018)}
.photo-chapter.photo-in-view img{transform:scale(1)}
.photo-chapter:before,.photo-chapter:after{content:'';position:absolute;left:0;right:0;z-index:1;height:65px;pointer-events:none}
.photo-chapter:before{top:0;background:linear-gradient(#e9def0,transparent)}.photo-chapter:after{bottom:0;background:linear-gradient(transparent,#efdeee)}
.lantern-chapter{max-width:1040px}.lantern-chapter:before{background:linear-gradient(#e6dcf0,transparent)}.lantern-chapter:after{background:linear-gradient(transparent,#b9adcf)}
.photo-section{padding-top:55px;padding-bottom:60px}.photo-section h2{margin-bottom:25px}
.story-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4;border-radius:inherit}
.confetti-piece{position:absolute;top:-15px;display:block;width:4px;height:9px;border-radius:2px;background:#edb7d6;opacity:0;animation:royal-confetti 3.1s ease-out both;animation-delay:calc(var(--n)*.055s);transform-origin:center}
.confetti-piece:nth-child(3n){background:#f5dfaa;width:5px;height:5px;border-radius:50%}.confetti-piece:nth-child(3n+1){background:#d1c0eb}.confetti-piece:nth-child(5n){background:#bfcfe4;clip-path:polygon(50% 0,62% 35%,100% 50%,62% 64%,50% 100%,35% 64%,0 50%,35% 35%);width:8px;height:8px}
@keyframes royal-confetti{0%{opacity:0;translate:0 -10px;rotate:0deg}15%{opacity:.9}80%{opacity:.75}100%{opacity:0;translate:0 min(65svh,600px);rotate:210deg}}
#digital-pass{position:relative;isolation:isolate;overflow:hidden}.story-confetti~*{position:relative}
.scene-magic i,.portrait-fireflies,.cloud,.kingdom-lights i{animation-play-state:paused}
.scene-live .scene-magic i,.scene-live .cloud,.scene-live .kingdom-lights i,.photo-in-view .portrait-fireflies{animation-play-state:running}
.section{padding-top:55px;padding-bottom:60px}.family-section{padding-bottom:60px}.gift-art{width:165px;margin-top:25px}.footer-castle{max-width:260px!important}.scene-magic:after{opacity:.45}.photo-section .scene-magic:after{opacity:.45}
@media(min-width:1000px){.photo-chapter{aspect-ratio:auto;height:900px;max-width:900px}.photo-chapter img{object-fit:contain;background:linear-gradient(90deg,#dce2db,#eadce7)}.princess-moment{width:560px}}
@media(max-width:700px){.hero{padding-top:10px;padding-bottom:25px}.fairytale-scene{display:flex;flex-direction:column;width:100%;padding:12px 0 0;gap:0}.castle-art{position:absolute;top:7px;right:7px;width:105px;height:96px;margin:0;opacity:.5;z-index:0;pointer-events:none;mask-image:radial-gradient(ellipse,#000 40%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse,#000 40%,transparent 80%)}.castle-art .hero-music{pointer-events:auto;width:44px;height:44px;bottom:0;left:0;opacity:1}
.hero .eyebrow{align-self:flex-start;margin:10px 24px 0;font-size:8px;letter-spacing:.17em;position:relative;z-index:1}.fairytale-scene h1{align-self:flex-start;font-size:clamp(76px,21vw,100px);margin:0 22px 18px;position:relative;z-index:1;line-height:1.18}
.hero-photo{width:calc(100% - 24px);aspect-ratio:1464/2200;border-radius:130px 130px 20px 20px;margin:0 12px 24px;box-shadow:0 15px 35px #87698b22}
.royal-subtitle{font-size:24px;margin:0 20px 5px}.royal-date{margin:15px 0 13px}.hero-hours{font-size:11px;margin-bottom:16px}.fairytale-scene>.button{margin:4px 0 22px}.carriage-art{width:150px;margin:0 auto -10px;opacity:.6}
.princess-moment{width:100%;aspect-ratio:1464/2200;border-radius:110px 110px 25px 25px;margin:27px auto 30px}.family-section{padding-left:14px;padding-right:14px}.family-section>.eyebrow,.family-section>h2,.family-note{padding-inline:10px}.family-grid{padding-inline:12px}
.photo-chapter{width:100%;aspect-ratio:1464/2200;height:auto;max-height:none;max-width:none}.photo-chapter img{object-fit:contain;transform:none}.photo-chapter:before,.photo-chapter:after{height:30px}
.photo-section{padding:45px 12px 55px}.photo-section>h2,.photo-section>.eyebrow{padding-inline:12px}
.section{padding-top:48px;padding-bottom:55px}.confetti-piece{width:3px;height:7px}.gift-art{width:165px}.footer-castle{width:240px!important}.scene-magic:after{opacity:.45}}
@media(max-width:359px){.hero .eyebrow{font-size:7px;margin-left:18px}.fairytale-scene h1{font-size:77px;margin-left:17px}.castle-art{width:90px;right:0;top:9px}.hero-hours{font-size:9px}.hero-photo{width:calc(100% - 20px);margin-inline:10px}}
@media(prefers-reduced-motion:reduce){.confetti-piece,.story-confetti{display:none!important}.photo-chapter img{transform:none;transition:none}.scene-magic i,.portrait-fireflies{animation:none}}
@media print{.photo-chapter,.hero-photo,.story-confetti{display:none!important}}
@media(max-width:700px){.fairytale-scene>.eyebrow{order:0}.fairytale-scene h1{order:1;margin-bottom:5px}.royal-subtitle{order:2;margin:0 20px 18px;font:20px/1.4 'Cormorant Garamond',serif}.hero-photo{order:3}.royal-date{order:4}.hero-hours{order:5}.fairytale-scene>.button{order:6}.carriage-art{order:7}}
@media(max-width:700px){}

/* Surgical pass: original castle as the setting, photographs as the story. */
#main-content{position:relative}.site-header{position:absolute;inset:0 0 auto;height:48px;padding:0 5%;background:transparent;border:0;backdrop-filter:none;box-shadow:none}.wordmark{font-size:22px;opacity:.7}.wordmark span{display:none}.site-header nav{gap:18px}.site-header nav a{font-size:9px;opacity:.78;text-transform:none;letter-spacing:.04em}
.hero{padding:60px 0 0}.fairytale-scene{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);padding-top:0;column-gap:30px}
.castle-art{position:relative;grid-column:1;grid-row:1;width:min(100%,340px);height:auto;aspect-ratio:466/422;background-image:url('assets/canva-original-sections.png');background-size:293.133047% auto;background-position:50% 0;margin:0 auto -30px;opacity:1;mask-image:radial-gradient(ellipse 65% 68% at 50% 43%,#000 45%,transparent 84%);-webkit-mask-image:radial-gradient(ellipse 65% 68% at 50% 43%,#000 45%,transparent 84%);transform:translateY(var(--depth,0px));filter:drop-shadow(0 12px 20px #d2a3c31c)}
.fairytale-scene>.eyebrow{grid-row:2}.fairytale-scene h1{grid-row:3}.fairytale-scene>.royal-subtitle{grid-row:4}.fairytale-scene>.button{grid-row:5}.carriage-art{grid-row:6;width:120px;opacity:.45}
.hero-photo{grid-row:1/7;aspect-ratio:1464/2200;border:0;border-radius:0;box-shadow:none;margin:0;overflow:hidden;background:none}
.photo-expand{display:block;width:100%;height:100%;border:0;padding:0;margin:0;background:none;border-radius:inherit;line-height:0;cursor:zoom-in;color:inherit}
.photo-expand img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
.hero-photo .photo-aura{border:0;box-shadow:none}.hero-photo:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 72%,#25394899 100%)}
.hero-photo-details{position:absolute;left:0;right:0;bottom:16px;z-index:2;pointer-events:none;padding:0 15px;text-align:center;color:#fff8ed;text-shadow:0 1px 8px #172a3a99}
.hero-photo-details .royal-date{margin:0 auto 9px;color:inherit;font-size:10px;letter-spacing:.14em}.hero-photo-details .royal-date b{font-size:51px;color:inherit;border-color:#fff6e380}.hero-photo-details .hero-hours{font:11px/1.7 'DM Sans';color:inherit;margin:0}.hero-photo-details .hero-hours span{color:#ffe4b2}
.hero .kingdom-atmosphere{opacity:1;background-position:center top;background-size:cover}.hero .cloud{opacity:.7}.hero-music{left:3%;bottom:13%;background:#fff3df99;border-color:#d9bdcd88;box-shadow:none}
.princess-moment{border:0;outline:0;border-radius:0;padding:0;background:none;box-shadow:none;width:min(100%,670px);aspect-ratio:1464/2200;margin:30px auto}
.princess-moment img{object-fit:contain}.portrait-fireflies{display:none}.princess-moment.wow-arrived img{animation:portrait-arrival 1.6s ease both}
@keyframes portrait-arrival{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.photo-chapter{max-width:100%;border-radius:0;box-shadow:none;aspect-ratio:1464/2200}.photo-chapter .photo-aura{border:0;box-shadow:none}.photo-chapter img{transform:none;object-fit:contain;background:none}.photo-chapter.photo-in-view img{transform:none}
@media(min-width:1000px){.family-section{display:grid;grid-template-columns:1.1fr 1fr;column-gap:55px;align-items:center}.family-section:before,.family-section>.eyebrow,.family-section>h2{grid-column:1/3}.family-section>.scene-magic{position:absolute}.family-section>.princess-moment{grid-column:1;grid-row:4/7;max-width:650px;margin:30px 0 0}.family-grid{grid-column:2;grid-row:4/6;flex-direction:column;gap:28px;margin:25px 0}.family-note{grid-column:2;grid-row:6;padding:0 10px}.photo-chapter{height:900px;aspect-ratio:auto}.photo-chapter .photo-expand{max-width:800px;margin:auto}.wing-chapter{background:linear-gradient(90deg,#ede2eb,#f6eee9,#ede2eb)}.lantern-chapter{background:linear-gradient(90deg,#ddd5e6,#e7ddea,#ddd5e6)}}
/* Information belongs to the landscape, not to a stack of cards. */
.location-grid{gap:55px;max-width:850px}.ornate-card{border:0;outline:0;border-radius:0;box-shadow:none;background:none;padding:35px 25px;position:relative}.ornate-card:after{display:none}.ornate-card .card-symbol{font-size:26px;margin-bottom:15px}.ornate-card h3{font-family:'Cormorant Garamond';font-size:38px;color:#936487}.event-time{font-size:43px}.celebration-moment{position:relative;isolation:isolate;overflow:hidden}.celebration-moment h3{font-family:'Berkshire Swash';font-size:36px}.celebration-moment:before{content:'';position:absolute;left:20%;right:20%;top:0;height:1px;background:linear-gradient(90deg,transparent,#c3a6bd,transparent)}
.rsvp-card{background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:25px 0!important}.rsvp-card label{color:#78546f}.rsvp-card input,.rsvp-card select,.rsvp-card textarea{border-width:0 0 1px!important;border-radius:0!important;background:#fffaf451!important;border-color:#c6a8bd!important;padding:14px 10px}.rsvp-card #rsvp-feedback{font:14px/1.8 'DM Sans'}
#digital-pass{background:linear-gradient(#fff9e9,#f8eaf3)!important;border:1px solid #d7c2ac!important;padding:30px 20px!important}.personal-welcome{background:transparent;border:0;padding:25px 20px}.personal-welcome h2{font:30px 'Cormorant Garamond'}
.button,.pink-button{border:1px solid #c8ab9b99;background:linear-gradient(130deg,#fff0d688,#eacbdc80);box-shadow:inset 0 1px #fff8e766;outline:0;border-radius:999px}.button:after{display:none}.button:hover,.pink-button:hover{box-shadow:0 3px 14px #9b73991c}.outline{background:transparent}.itinerary h3{font-family:'Cormorant Garamond';font-size:29px}.section h2{font-size:clamp(33px,4vw,46px)}.family-section h2{font-family:'Cormorant Garamond';font-size:clamp(35px,4.4vw,49px);font-weight:500;line-height:1.2}.music-section h2,.gifts h2{font-family:'Cormorant Garamond';font-size:clamp(35px,4.5vw,48px)}
/* Small sealed notes, instead of a help-centre list. Native details remain accessible. */
.faq{padding-bottom:55px}.faq>h2{font-family:'Cormorant Garamond';font-size:42px}.faq details{position:relative;max-width:620px;margin:24px auto;padding:0;border:0;background:linear-gradient(135deg,#fff7e7b3,#f4e6ecb3);box-shadow:0 8px 23px #a77c9710;clip-path:polygon(0 3%,98% 0,100% 97%,1% 100%)}
.faq details:before{content:'';position:absolute;left:16px;right:16px;top:0;height:1px;background:linear-gradient(90deg,transparent,#d7b7c9,transparent)}
.faq summary{display:flex;align-items:center;gap:17px;padding:22px 24px;font:22px/1.4 'Cormorant Garamond',serif;color:#8c5e80;list-style:none;min-height:64px}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:'✧';flex:0 0 30px;width:30px;height:30px;border:1px solid #ceb097;border-radius:50%;font:18px/28px Georgia;text-align:center;color:#b58b57;background:#fff2db99}.faq details[open] summary:before{background:#ecd6e6}.faq details p{padding:0 26px 24px 71px;font:14px/1.85 'DM Sans',sans-serif}
#contact-section details{border:0;box-shadow:none;border-radius:0;background:transparent;padding:20px 0}.memories-section summary{font:28px 'Cormorant Garamond';list-style:none}.memories-section h3{font:27px 'Cormorant Garamond'}.book-item{border-radius:0;background:#fff7ed77;box-shadow:none;border-width:0 0 1px}
.guest-dock{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:opacity .3s,transform .3s;bottom:7px;border:0;background:#fff7e9b3;box-shadow:none;backdrop-filter:blur(6px);padding:1px 6px}.guest-dock a,.guest-dock button{font-size:10px;padding:10px 13px;color:#825b7a}.guest-dock button{font-size:19px}
body.show-story-tools:not(.in-photograph):not(.locked) .guest-dock{opacity:.93;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}body.in-photograph #event-shortcuts{opacity:0;pointer-events:none}
/* Directed confetti: two depth planes, varied speed, a protected centre. */
.story-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4;border-radius:inherit}
.confetti-piece{position:absolute;top:-25px;width:7px;height:13px;border-radius:1px;background:linear-gradient(130deg,#f8d5e8,#dba8c8);box-shadow:inset 1px 1px #fff8e77a;opacity:0;animation:directed-confetti var(--duration) cubic-bezier(.18,.35,.48,1) var(--delay) both;will-change:transform,opacity}
.confetti-piece:nth-child(5n){width:9px;height:14px;clip-path:none;background:linear-gradient(130deg,#fff3cc,#d4b378)}.confetti-piece:nth-child(5n+1){background:linear-gradient(120deg,#e6d9f3,#c6b4dd)}.confetti-piece:nth-child(5n+2){background:#fff8ed;width:5px;height:11px}.confetti-piece:nth-child(5n+3){background:#efc4d8;border-radius:50%;width:7px;height:7px}.confetti-piece.confetti-far{width:3px;height:6px;filter:blur(.3px);box-shadow:none}
@keyframes directed-confetti{0%{opacity:0;transform:translate3d(0,-10px,0) rotate(-20deg)}13%{opacity:.86}75%{opacity:.7}100%{opacity:0;transform:translate3d(var(--sway),var(--fall),0) rotate(var(--spin))}}
.confetti-far{animation-timing-function:linear}.confetti-celebration .confetti-near{width:9px;height:15px}.confetti-celebration .confetti-far{width:4px;height:7px}
footer{position:relative;isolation:isolate;overflow:hidden}footer .footer-castle{max-width:310px!important;width:min(85%,310px)!important}footer .signature{font-size:59px}footer h2{font:40px/1.2 'Cormorant Garamond';color:#fff4e5}.scene-magic:after{opacity:.35}.scene-live .scene-magic:after{animation:garden-breath 9s ease-in-out 1}.hero .cloud{animation-duration:35s}
@keyframes garden-breath{50%{opacity:.5;transform:translateY(-3px)}}
@media(max-width:700px){.site-header{height:42px;padding:0 18px}.wordmark{font-size:20px}.site-header nav{gap:12px}.site-header nav a{font-size:8px;min-height:42px;min-width:37px}.hero{padding-top:48px;padding-bottom:20px}.fairytale-scene{display:flex;padding:0;position:relative}.castle-art{position:relative;top:auto;right:auto;order:0;width:min(88vw,345px);height:auto;aspect-ratio:466/422;margin:-20px auto -85px;pointer-events:auto;opacity:1}.castle-art .hero-music{left:7%;bottom:10%;opacity:1}
.fairytale-scene>.eyebrow{order:1;align-self:center;z-index:2;margin:0 20px 3px;font-size:8px}.fairytale-scene h1{order:2;align-self:center;margin:0 18px 0;font-size:clamp(79px,23vw,103px);z-index:2;text-shadow:0 2px #fff6e9,0 0 30px #fff4e1}.fairytale-scene>.royal-subtitle{order:3;margin:0 20px 20px;font-size:20px;z-index:2}
.hero-photo{order:4;width:100%;margin:0;aspect-ratio:1464/2200;border-radius:0;mask-image:linear-gradient(transparent,#000 5%,#000 100%);-webkit-mask-image:linear-gradient(transparent,#000 5%,#000 100%)}.hero-photo-details{bottom:17px;padding:0 15px}.hero-photo-details .royal-date{gap:16px;margin:0 auto 9px;font-size:9px;letter-spacing:.13em}.hero-photo-details .royal-date b{font-size:48px;padding:0 18px}.hero-photo-details .hero-hours{font-size:10px;line-height:1.8}.fairytale-scene>.button{order:5;margin:23px auto 12px}.carriage-art{display:none}
.family-section{padding-inline:0}.family-section>.eyebrow,.family-section>h2{padding-inline:24px}.family-section h2{font-size:36px}.princess-moment{width:100%;margin:27px 0 25px;border:0;border-radius:0;box-shadow:none}.family-grid{padding-inline:22px;gap:25px}.family-note{padding-inline:24px}.photo-chapter{aspect-ratio:1464/2200;width:100%;height:auto;max-height:none;margin:0}.photo-chapter .photo-expand{width:100%;max-width:none}
.location-grid{gap:22px;margin:20px auto}.ornate-card{padding:26px 20px}.ornate-card h3{font-size:35px}.celebration-moment{padding:35px 20px}.celebration-moment h3{font-size:34px}.event-time{font-size:42px}.section{padding-top:43px;padding-bottom:48px}.section h2{font-size:35px}.rsvp-card{padding:20px 0!important}.rsvp-card input,.rsvp-card select,.rsvp-card textarea{font-size:16px}.faq details{margin:19px auto}.faq summary{font-size:22px;padding:19px 17px;gap:12px}.faq details p{padding:0 19px 22px 59px;font-size:13px}.faq>h2{font-size:37px}.guest-dock{max-width:92vw}.guest-dock a{font-size:10px}.confetti-piece{width:6px;height:11px}.confetti-celebration .confetti-near{width:8px;height:13px}#contact-section details{padding:15px 0}}
@media(max-width:359px){.site-header nav{gap:7px}.site-header nav a{font-size:8px}.castle-art{margin-bottom:-69px}.fairytale-scene h1{font-size:82px}.hero-photo-details .hero-hours{font-size:9px}.hero-photo-details .royal-date b{font-size:42px}.hero-photo-details .royal-date{font-size:8px}.section h2{font-size:32px}.family-section h2{font-size:34px}.faq summary{font-size:20px;padding-inline:13px;gap:9px}.faq details p{padding-left:52px}}
@media(prefers-reduced-motion:reduce){.princess-moment.wow-arrived img{animation:none;opacity:1;transform:none}.confetti-piece{display:none!important}.scene-live .scene-magic:after{animation:none}}
@media print{.story-confetti,.photo-expand,.hero-photo-details{display:none!important}}
.hero-photo-details .hero-hours{font-size:12px}.hero-photo-details .royal-date{font-size:10px}
@media(max-width:700px){.fairytale-scene>.eyebrow{color:#875a7b;text-shadow:0 0 6px #fff8ef;background:linear-gradient(90deg,transparent,#fff4e9a6,transparent);padding:0 12px}.hero-photo-details .hero-hours{font-size:12px}.hero-photo-details .royal-date{font-size:10px}}
@media(max-width:359px){.hero-photo-details .hero-hours{font-size:11px}.hero-photo-details .royal-date{font-size:9px}}
.confetti-piece.confetti-near{z-index:2}.confetti-piece.confetti-far{z-index:1;animation-name:directed-confetti-distant}
@keyframes directed-confetti-distant{0%{opacity:0;transform:translate3d(0,-12px,0) rotate(-15deg)}15%{opacity:.42}75%{opacity:.35}100%{opacity:0;transform:translate3d(var(--sway),var(--fall),0) rotate(var(--spin))}}
