.royal-envelope [data-royal-open] { transition:transform .36s cubic-bezier(.2,.8,.2,1),opacity .3s; }
.royal-envelope [data-royal-open] > i,.royal-envelope [data-royal-open] > b { position:absolute; inset:12%; border:1px solid #d7b67b55; border-radius:50%; opacity:0; pointer-events:none; }
.royal-template[data-state="cracking"] .royal-envelope [data-royal-open] { transform:translate(-50%,-50%) scale(.94); }
.royal-template[data-state="cracking"] .royal-envelope [data-royal-open] > i { opacity:1; transform:rotate(19deg) scale(1.14); border-color:transparent; border-top-color:#f5dcb788; border-bottom-color:#26090a; }
.royal-template[data-state="opening"] .royal-envelope [data-royal-open] { opacity:0; transform:translate(-50%,-50%) scale(1.14); }
.royal-template[data-state="opening"] .royal-envelope-paper { animation-duration:1.85s; animation-delay:.65s; }
.royal-template[data-state="opening"] .royal-flap { transition-duration:1.45s; }
.royal-hero,.royal-final { background-position:center calc(50% + var(--parallax,0px)); }
.royal-hero-atmosphere { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 20% 72%,#e9c47d20 0 1px,transparent 2px),radial-gradient(circle at 77% 26%,#e9c47d18 0 1px,transparent 2px); background-size:130px 150px,190px 210px; animation:royal-lanterns 7s ease-in-out infinite alternate; }
@keyframes royal-lanterns { to { opacity:.55; transform:translate3d(0,-7px,0); } }
.royal-crest strong { position:relative; }
.royal-crest strong small { position:absolute; inset:auto 0 14px; font:500 9px Manrope,sans-serif; letter-spacing:.22em; }
.royal-section[data-reveal],.royal-section,.royal-gallery figure[data-reveal] { opacity:.38; transform:translate3d(0,28px,0); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
.royal-section.is-visible,.royal-gallery figure.is-visible { opacity:1; transform:none; }
.royal-gallery figure { position:relative; }
.royal-gallery figure::after { content:""; position:absolute; inset:0; background:linear-gradient(140deg,#c9a76a30,transparent 45%,#071d1955); opacity:.75; transition:opacity .7s; }
.royal-gallery figure:hover::after { opacity:.2; }
.royal-program ol { position:relative; }
.royal-program ol::before { content:""; position:absolute; left:43px; top:0; bottom:0; width:1px; background:#c9a76a36; }
.royal-program li { position:relative; opacity:.58; transition:opacity .35s,transform .35s; }
.royal-program li::before { content:""; position:absolute; left:39px; width:9px; aspect-ratio:1; border-radius:50%; background:#806b46; box-shadow:0 0 0 5px #071d19; transition:transform .35s,background-color .35s; }
.royal-program li.is-current { opacity:1; transform:translateX(6px); }
.royal-program li.is-current::before { background:var(--gold); transform:scale(1.35); }
.royal-map { position:relative; background:#061915; }
.royal-map-art { position:absolute; inset:0; z-index:2; display:grid; place-content:center; justify-items:center; gap:12px; padding:30px; color:#f0dfc0; background:linear-gradient(#0619148c,#061914d9),url('/app/assets/templates/royal-crest-01/palace-estate-v1.png') center/cover; transition:opacity .7s,transform .7s; }
.royal-map-art::after { content:""; position:absolute; inset:18px; border:1px solid #c9a76a80; pointer-events:none; }
.royal-map-art i { display:grid; place-items:center; width:64px; aspect-ratio:1; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-style:normal; font-size:28px; }
.royal-map-art b { font:400 clamp(30px,6vw,46px) Cormorant,serif; }
.royal-map-art button { min-height:42px; padding:0 18px; border:1px solid var(--gold); background:#071d19cc; color:#eadcc2; }
.royal-map iframe { opacity:0; transition:opacity .6s; }
.royal-map.is-live .royal-map-art { opacity:0; transform:scale(1.04); pointer-events:none; }
.royal-map.is-live iframe { opacity:1; }
.royal-rsvp fieldset { min-width:0; margin:0; padding:0; border:0; }
.royal-rsvp fieldset[hidden] { display:none; }
.royal-rsvp legend { width:100%; margin:0 0 24px; color:var(--paper); text-align:center; font:400 28px/1.15 Cormorant,serif; }
.royal-rsvp-progress { height:2px; overflow:hidden; background:#c9a76a24; }
.royal-rsvp-progress i { display:block; width:100%; height:100%; background:var(--gold); transform:scaleX(.333); transform-origin:left; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.royal-choice { display:grid; gap:10px; }
.royal-choice input { position:absolute; opacity:0; pointer-events:none; }
.royal-choice span { display:block; padding:17px; border:1px solid #c9a76a48; text-align:center; cursor:pointer; transition:border-color .2s,background-color .2s,color .2s; }
.royal-choice input:checked + span { border-color:var(--gold); background:#c9a76a; color:#102a24; }
.royal-check { grid-template-columns:auto 1fr!important; align-items:center; }
.royal-check input { width:22px; min-height:22px; }
.royal-rsvp-actions { display:flex!important; grid-template-columns:none!important; justify-content:space-between; gap:12px; }
.royal-rsvp-actions button { flex:1; }
.royal-final { position:relative; min-height:100svh; }
.royal-final-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:32px; }
.royal-final-actions a { display:grid; place-items:center; min-height:46px; padding:0 20px; border:1px solid var(--gold); color:var(--paper); text-decoration:none; font-size:11px; letter-spacing:.08em; }
@media (prefers-reduced-motion:reduce){.royal-hero-atmosphere{animation:none}.royal-hero,.royal-final{background-position:center}.royal-section[data-reveal],.royal-section,.royal-gallery figure[data-reveal]{opacity:1;transform:none;transition:opacity .15s}.royal-template[data-state="cracking"] .royal-envelope [data-royal-open],.royal-template[data-state="opening"] .royal-envelope [data-royal-open]{transform:translate(-50%,-50%)} }
