/* RiansGroup Invitation — distinct template system. Each theme changes ornaments, typography, geometry and composition, not only colors. */
body[class*="theme-"]{--ornament-opacity:1;--radius:24px;--serif:"Cormorant Garamond",Georgia,serif;--sans:Poppins,system-ui,sans-serif;overflow-x:hidden}
body[class*="theme-"] .section{position:relative;isolation:isolate}
body[class*="theme-"] .section::before{content:"";position:absolute;z-index:-1;pointer-events:none}
body[class*="theme-"] .section::after{content:"";position:absolute;z-index:-1;pointer-events:none}
body[class*="theme-"] .hero-section .hero-content,body[class*="theme-"] .opening-content{position:relative;z-index:2}

/* Celestial — moon/orbit */
body.theme-celestial{--theme-a:#050818;--theme-b:#18275a;--theme-accent:#f6e7a8;--theme-soft:#dbe5ff;--theme-card:rgba(10,17,49,.86)}
body.theme-celestial::before{content:"☾";position:fixed;right:5vw;top:7vh;font-size:clamp(90px,18vw,240px);color:rgba(246,231,168,.08);z-index:-1;animation:rgFloat 8s ease-in-out infinite}
body.theme-celestial .section::before{inset:8% 5%;border:1px solid rgba(246,231,168,.16);border-radius:50%;transform:rotate(-18deg);}
body.theme-celestial .section::after{width:18px;height:18px;border-radius:50%;background:var(--theme-accent);box-shadow:0 0 30px rgba(246,231,168,.7);right:12%;top:12%;animation:rgPulse 3s infinite}

/* Art Deco — fans and geometric frames */
body.theme-artdeco{--theme-a:#100c08;--theme-b:#4d3517;--theme-accent:#e6c46a;--theme-soft:#f5e9c7;--theme-card:rgba(35,25,12,.9);--radius:8px}
body.theme-artdeco .section::before{inset:12px;border:1px solid rgba(230,196,106,.45);outline:1px solid rgba(230,196,106,.16);outline-offset:8px}
body.theme-artdeco .section::after{width:120px;height:120px;left:50%;top:-55px;transform:translateX(-50%);background:repeating-conic-gradient(from 0deg,rgba(230,196,106,.22) 0 7deg,transparent 7deg 14deg);clip-path:polygon(50% 0,100% 100%,0 100%);}
body.theme-artdeco .section-title h2,body.theme-artdeco .hero-title{font-family:var(--serif);letter-spacing:.08em;text-transform:uppercase}

/* Andalusian — Moorish arches / tile */
body.theme-andalusian{--theme-a:#061b27;--theme-b:#126579;--theme-accent:#e6c77a;--theme-soft:#d7f0e9;--theme-card:rgba(5,43,51,.88);--radius:28px}
body.theme-andalusian .section::before{inset:5% 8%;border:10px double rgba(230,199,122,.22);border-radius:50% 50% 8% 8%/24% 24% 8% 8%;}
body.theme-andalusian .section::after{inset:auto 0 0;width:100%;height:72px;opacity:.22;background:conic-gradient(from 45deg,transparent 0 25%,var(--theme-accent) 25% 27%,transparent 27% 50%,var(--theme-accent) 50% 52%,transparent 52% 75%,var(--theme-accent) 75% 77%,transparent 77%);background-size:52px 52px}

/* Floral Watercolor — organic petals */
body.theme-floral{--theme-a:#fff9f2;--theme-b:#eadfd4;--theme-accent:#9b5b68;--theme-soft:#6d5a54;--theme-card:rgba(255,255,255,.84);color:#493b38}
body.theme-floral .section::before{width:230px;height:230px;left:-60px;top:-50px;background:radial-gradient(ellipse at 35% 35%,rgba(178,112,127,.32) 0 13%,transparent 14%),radial-gradient(ellipse at 62% 30%,rgba(124,154,112,.28) 0 13%,transparent 14%),radial-gradient(ellipse at 48% 62%,rgba(216,169,119,.25) 0 14%,transparent 15%);filter:blur(1px);transform:rotate(-18deg)}
body.theme-floral .section::after{width:260px;height:260px;right:-90px;bottom:-90px;border-radius:50%;border:18px dotted rgba(155,91,104,.16)}
body.theme-floral .section-title h2,body.theme-floral .hero-title{font-family:var(--serif);font-style:italic}

/* Paper & Ink — stationery / deckle-like borders */
body.theme-paper{--theme-a:#f4efe3;--theme-b:#d8c9ad;--theme-accent:#4c3928;--theme-soft:#6d5b48;--theme-card:rgba(255,252,244,.94);--radius:4px;color:#403329}
body.theme-paper .section::before{inset:18px;border:1px solid rgba(76,57,40,.38);box-shadow:inset 0 0 0 7px rgba(76,57,40,.05)}
body.theme-paper .section::after{width:90px;height:90px;right:20px;top:20px;border-top:2px solid rgba(76,57,40,.25);border-right:2px solid rgba(76,57,40,.25);transform:rotate(45deg)}
body.theme-paper .section-title h2,body.theme-paper .hero-title{font-family:var(--serif);font-weight:600;letter-spacing:.02em}

/* Glass — crystal panes */
body.theme-glass{--theme-a:#071a27;--theme-b:#1e6b79;--theme-accent:#d9fff8;--theme-soft:#e6ffff;--theme-card:rgba(255,255,255,.10);--radius:32px}
body.theme-glass .section::before{inset:4%;border:1px solid rgba(255,255,255,.22);border-radius:36px;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 40%);backdrop-filter:blur(8px)}
body.theme-glass .section::after{width:140px;height:140px;right:4%;top:2%;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.32),transparent);filter:blur(2px);transform:rotate(25deg)}
body.theme-glass .couple-card,body.theme-glass .event-card,body.theme-glass .wish-card{backdrop-filter:blur(18px);box-shadow:0 20px 60px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.25)}

/* Rustic Wood — rings, linen and botanical */
body.theme-rustic{--theme-a:#2b2118;--theme-b:#725b43;--theme-accent:#e8d4a5;--theme-soft:#f1e4cf;--theme-card:rgba(66,49,35,.88);--radius:18px}
body.theme-rustic .section::before{inset:4%;border:2px solid rgba(232,212,165,.18);border-radius:18px;background:repeating-linear-gradient(90deg,transparent 0 18px,rgba(255,255,255,.018) 19px 21px)}
body.theme-rustic .section::after{width:150px;height:150px;left:3%;bottom:-55px;border:14px double rgba(232,212,165,.16);border-radius:50%}

/* Moroccan Lantern — hanging lanterns */
body.theme-maroc{--theme-a:#160c1c;--theme-b:#6a284f;--theme-accent:#f2c86b;--theme-soft:#ffe9c6;--theme-card:rgba(47,20,48,.9);--radius:20px}
body.theme-maroc .section::before{width:70px;height:92px;right:9%;top:-5px;border:4px solid rgba(242,200,107,.5);border-radius:16px 16px 30px 30px;box-shadow:0 0 30px rgba(242,200,107,.12)}
body.theme-maroc .section::after{width:2px;height:75px;right:calc(9% + 34px);top:-75px;background:rgba(242,200,107,.45);box-shadow:0 0 18px rgba(242,200,107,.45)}

/* Monogram Classic — oval frame */
body.theme-monogram{--theme-a:#f8f2e9;--theme-b:#d9c7ae;--theme-accent:#6a513c;--theme-soft:#735f4d;--theme-card:rgba(255,252,246,.95);color:#4e4034;--radius:26px}
body.theme-monogram .section::before{inset:7%;border:1px solid rgba(106,81,60,.32);border-radius:50%}
body.theme-monogram .section::after{content:"A  &  M";width:100%;text-align:center;top:6px;left:0;color:rgba(106,81,60,.13);font:600 30px var(--serif);letter-spacing:.35em}
body.theme-monogram .section-title h2,body.theme-monogram .hero-title{font-family:var(--serif);font-weight:600}

/* Coastal — waves */
body.theme-coastal{--theme-a:#eaf8f8;--theme-b:#8dc9d1;--theme-accent:#165a66;--theme-soft:#315d63;--theme-card:rgba(250,255,255,.88);color:#24484e}
body.theme-coastal .section::before{left:-10%;right:-10%;bottom:-25px;height:120px;background:radial-gradient(70% 80% at 50% 0%,transparent 58%,rgba(22,90,102,.13) 59% 61%,transparent 62%),radial-gradient(70% 80% at 50% 20%,transparent 58%,rgba(22,90,102,.09) 59% 61%,transparent 62%)}
body.theme-coastal .section::after{width:100px;height:100px;right:7%;top:5%;border:2px solid rgba(22,90,102,.16);border-radius:50% 45% 55% 40%;transform:rotate(22deg)}

/* Noir Editorial — asymmetric magazine */
body.theme-noir{--theme-a:#0a0a0a;--theme-b:#222;--theme-accent:#fff;--theme-soft:#c7c7c7;--theme-card:rgba(24,24,24,.94);--radius:0}
body.theme-noir .section::before{left:0;top:0;bottom:0;width:34%;border-right:1px solid rgba(255,255,255,.14);background:linear-gradient(160deg,rgba(255,255,255,.08),transparent 50%)}
body.theme-noir .section::after{right:7%;top:8%;width:55px;height:55px;border:1px solid rgba(255,255,255,.6);transform:rotate(45deg)}
body.theme-noir .section-title h2,body.theme-noir .hero-title{font-family:var(--serif);font-size:clamp(2.3rem,6vw,5rem);font-weight:400;letter-spacing:-.03em}

/* Add stronger identities to existing themes */
body.theme-midnight .section::before{inset:6%;border:1px solid rgba(229,199,122,.14);border-radius:50% 50% 20% 20%}
body.theme-arabian .section::before{inset:3%;border:2px solid rgba(139,216,255,.18);clip-path:polygon(50% 0,100% 25%,86% 100%,14% 100%,0 25%)}
body.theme-emerald .section::before{width:180px;height:180px;right:-60px;top:-45px;border:20px dotted rgba(229,199,122,.13);border-radius:50%}
body.theme-rose .section::before{width:200px;height:200px;left:-90px;bottom:-90px;border:30px solid rgba(240,199,168,.10);border-radius:50%}
body.theme-royal .section::before{inset:5%;border:1px solid rgba(220,231,255,.18);transform:skewY(-2deg)}
body.theme-minimal .section::before{inset:12%;border-top:1px solid rgba(231,200,137,.35);border-bottom:1px solid rgba(231,200,137,.35)}
body.theme-champagne .section::before{inset:7%;border:1px solid rgba(255,224,163,.22);border-radius:50%}
body.theme-terracotta .section::before{width:240px;height:240px;right:-100px;top:-100px;border-radius:50%;background:repeating-radial-gradient(circle,rgba(255,208,168,.11) 0 2px,transparent 3px 16px)}
body.theme-lilac .section::before{inset:4%;border:1px dashed rgba(239,217,255,.25);border-radius:30px 80px 30px 80px}
body.theme-ocean .section::before{left:0;right:0;bottom:0;height:95px;background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 25px,rgba(185,245,237,.12) 26px 28px,transparent 29px 50px)}
body.theme-blackgold .section::before{inset:10px;border:1px solid rgba(243,212,119,.35);outline:1px solid rgba(243,212,119,.12);outline-offset:5px}
body.theme-sage .section::before{width:220px;height:220px;right:-80px;bottom:-80px;border:1px dashed rgba(240,220,167,.3);border-radius:50%}

@keyframes rgFloat{50%{transform:translateY(-18px) rotate(6deg)}}
@keyframes rgPulse{50%{transform:scale(1.45);opacity:.5}}
