@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
*{box-sizing:border-box}.invitation{--bg:#061322;--bg2:#0b2238;--fg:#f9f7f1;--accent:#e8cb8c;--accent2:#6ed0d5;--muted:#b8c1cc;--card:rgba(11,32,52,.84);--line:rgba(255,255,255,.12);--radius:28px;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;position:relative;overflow:hidden;min-height:100vh;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.08),transparent 24%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.05),transparent 25%),var(--bg);color:var(--fg);font-family:var(--sans);isolation:isolate}.invitation:before,.invitation:after{content:"";position:fixed;z-index:-2;pointer-events:none;width:38vw;height:38vw;border-radius:50%;filter:blur(70px);opacity:.18;background:var(--accent);animation:aurora 12s ease-in-out infinite alternate}.invitation:before{top:-15vw;left:-12vw}.invitation:after{right:-12vw;bottom:-15vw;animation-delay:-5s}@keyframes aurora{to{transform:translate(8vw,5vw) scale(1.15);opacity:.28}}.invitation h1,.invitation h2,.invitation h3,.invitation h4{font-family:var(--serif)}.screen{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:30px 18px;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent)}.screen:before{content:"";position:absolute;inset:7%;border:1px solid var(--line);border-radius:var(--radius);transform:rotate(-.5deg);pointer-events:none}.screen:after{content:"";position:absolute;width:65vmin;height:65vmin;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:50%;animation:spinSlow 35s linear infinite;pointer-events:none}@keyframes spinSlow{to{transform:rotate(360deg)}}.orn{position:absolute;inset:5%;pointer-events:none;z-index:0}.orn:before,.orn:after{position:absolute;display:block;color:var(--accent);text-shadow:0 0 25px color-mix(in srgb,var(--accent) 55%,transparent);animation:float3d 5s ease-in-out infinite}@keyframes float3d{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-14px) rotate(5deg)}}.card-inv{width:min(100%,820px);position:relative;z-index:2;text-align:center;padding:clamp(36px,6vw,72px) clamp(22px,6vw,70px);background:linear-gradient(145deg,color-mix(in srgb,var(--card) 95%,transparent),color-mix(in srgb,var(--bg2) 70%,transparent));border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);border-radius:var(--radius);box-shadow:0 35px 100px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(18px);animation:cardIn 1.1s cubic-bezier(.2,.75,.2,1) both}@keyframes cardIn{from{opacity:0;transform:translateY(35px) scale(.96)}to{opacity:1;transform:none}}.card-inv:before,.card-inv:after{content:"";position:absolute;width:70px;height:70px;border:1px solid var(--accent);opacity:.55}.card-inv:before{left:18px;top:18px;border-right:0;border-bottom:0}.card-inv:after{right:18px;bottom:18px;border-left:0;border-top:0}.bismillah{font-family:var(--serif);font-size:clamp(1.1rem,3vw,1.45rem);color:var(--accent);animation:fadeUp 1.2s .15s both}.couple{font-size:clamp(3.5rem,11vw,7.6rem);line-height:.82;letter-spacing:-.055em;text-shadow:0 12px 35px rgba(0,0,0,.2);animation:fadeUp 1.2s .25s both}.amp{display:inline-block;color:var(--accent);font-style:italic;margin:0 .08em;animation:pulseSoft 3s ease-in-out infinite}@keyframes pulseSoft{50%{transform:scale(1.08)}}.eyebrow{letter-spacing:.26em;text-transform:uppercase;font-size:.68rem;color:var(--muted);font-weight:600}.btn-inv{border:1px solid var(--accent);color:var(--fg);border-radius:999px;padding:12px 24px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent);box-shadow:0 8px 25px rgba(0,0,0,.14);transition:.35s;position:relative;overflow:hidden}.btn-inv:before{content:"";position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transition:.5s}.btn-inv:hover{background:var(--accent);color:#111;transform:translateY(-3px);box-shadow:0 14px 35px color-mix(in srgb,var(--accent) 30%,transparent)}.btn-inv:hover:before{transform:translateX(120%)}.section-inv{padding:100px 0;position:relative}.section-inv:before{content:"";position:absolute;left:50%;top:18px;width:1px;height:52px;background:linear-gradient(var(--accent),transparent);opacity:.45}.section-title{text-align:center;margin-bottom:42px}.section-title h2{font-size:clamp(2.4rem,5vw,4.5rem);line-height:.95;margin-top:8px}.event-card,.story-card,.wish-card,.account-card{height:100%;position:relative;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--card) 96%,transparent),color-mix(in srgb,var(--bg2) 70%,transparent));border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 18px 50px rgba(0,0,0,.13),inset 0 1px 0 rgba(255,255,255,.08);transition:.45s}.event-card:after,.wish-card:after,.account-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);right:-45px;top:-45px;animation:spinSlow 18s linear infinite}.event-card:hover,.wish-card:hover,.account-card:hover{transform:translateY(-8px);border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.photo{width:210px;height:255px;border-radius:48% 48% 18px 18px;object-fit:cover;border:3px solid var(--accent);padding:5px;background:var(--bg2);box-shadow:0 18px 45px rgba(0,0,0,.22);transition:.5s}.photo:hover{transform:translateY(-8px) rotate(1deg) scale(1.03)}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.gallery-grid img{width:100%;height:240px;object-fit:cover;border-radius:20px;border:1px solid var(--line);box-shadow:0 14px 35px rgba(0,0,0,.12);transition:.5s}.gallery-grid img:nth-child(3n+1){grid-column:span 5}.gallery-grid img:nth-child(3n+2){grid-column:span 4}.gallery-grid img:nth-child(3n){grid-column:span 3}.gallery-grid img:hover{transform:translateY(-6px) scale(1.02);filter:saturate(1.08)}.theme-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:999px;color:var(--accent);font-size:.72rem;background:color-mix(in srgb,var(--accent) 7%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.wish-form .form-control,.wish-form .form-select{background:rgba(255,255,255,.96);color:#111;border-radius:16px;border:0;padding:12px 14px}.wish-card{animation:fadeUp .7s both}.footer-inv{padding:70px 0;text-align:center;color:var(--muted);border-top:1px solid var(--line)}@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@media(max-width:768px){.section-inv{padding:75px 0}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid img,.gallery-grid img:nth-child(n){grid-column:span 1;height:210px}}@media(max-width:576px){.card-inv{padding:42px 18px}.photo{width:155px;height:195px}.screen:before{inset:3%}.screen:after{width:85vmin;height:85vmin}.section-title h2{font-size:2.8rem}}

/* 01 MIDNIGHT ROYAL — celestial Islamic */
.midnight-royal{--bg:#061322;--bg2:#102a43;--fg:#fffaf0;--accent:#e9cb87;--muted:#b7c3d0;--card:rgba(11,35,58,.88);--radius:34px}.midnight-royal .orn:before{content:"☾ ✦ ✧ ✦ ☽";font-size:clamp(28px,6vw,60px);left:3%;top:4%}.midnight-royal .orn:after{content:"✦ 𓂀 ✦";font-size:42px;right:4%;bottom:5%}.midnight-royal .card-inv{border-radius:40px;box-shadow:0 40px 120px #0009,0 0 0 1px #e9cb8722}.midnight-royal .section-inv:nth-child(odd){background:linear-gradient(180deg,transparent,#0b203533,transparent)}
/* 02 ANDALUSIAN MOSAIC — arch & geometry */
.andalusian-mosaic{--bg:#f1f6f3;--bg2:#dfece5;--fg:#173b36;--accent:#b48748;--muted:#60756e;--card:rgba(255,255,255,.86);--radius:10px}.andalusian-mosaic .screen{background:radial-gradient(circle,#fff 0,#dfece5 60%,#cbded6 100%)}.andalusian-mosaic .orn{inset:4%;border:14px solid transparent;background:linear-gradient(#0000,#0000) padding-box,repeating-conic-gradient(from 45deg,#b48748 0 10deg,#fff 10deg 20deg,#2d7567 20deg 30deg) border-box;clip-path:polygon(0 4%,4% 0,96% 0,100% 4%,100% 96%,96% 100%,4% 100%,0 96%)}.andalusian-mosaic .orn:before{content:"✦  ◈  ✦";left:40%;top:-34px}.andalusian-mosaic .card-inv{border:8px solid #b4874840;box-shadow:0 25px 70px #173b3620;background:rgba(255,255,255,.78)}.andalusian-mosaic .event-card,.andalusian-mosaic .story-card,.andalusian-mosaic .wish-card,.andalusian-mosaic .account-card{box-shadow:8px 8px 0 #b4874822;border-radius:8px}
/* 03 FLORAL GARDEN — botanical */
.floral-garden{--bg:#faf4ee;--bg2:#efe2d5;--fg:#4b3932;--accent:#9b6a5c;--muted:#806f68;--card:rgba(255,250,244,.9);--radius:38px}.floral-garden .orn:before{content:"❀  ❧  ❀  ❧  ❀";font-size:58px;left:-10px;top:5%;writing-mode:vertical-rl}.floral-garden .orn:after{content:"❧  ❀  ❧  ❀";font-size:58px;right:-10px;bottom:4%;writing-mode:vertical-rl}.floral-garden .card-inv{border-radius:70px 12px 70px 12px;border-color:#9b6a5c55}.floral-garden .photo{border-radius:50%;height:210px;width:210px}.floral-garden .section-inv:after{content:"✿";position:absolute;right:5%;bottom:15%;font-size:70px;color:#9b6a5c22;animation:float3d 6s infinite}
/* 04 ART DECO — black gold geometry */
.art-deco{--bg:#090909;--bg2:#1a1510;--fg:#f7ead0;--accent:#d6af59;--muted:#b9a98a;--card:rgba(20,17,13,.9);--radius:0}.art-deco .screen{background:linear-gradient(135deg,#050505,#17130e)}.art-deco .orn{inset:3%;border:4px double var(--accent);outline:1px solid #d6af5944;outline-offset:12px}.art-deco .orn:before{content:"◇ ◆ ◇";font-size:55px;left:40%;top:-35px}.art-deco .orn:after{content:"◆";font-size:65px;right:46%;bottom:-40px}.art-deco .card-inv{border:2px solid var(--accent);box-shadow:0 30px 100px #000}.art-deco .event-card,.art-deco .story-card,.art-deco .wish-card,.art-deco .account-card{border-radius:0;border:1px solid #d6af5955}
/* 05 RUSTIC WOOD — linen + foliage */
.rustic-wood{--bg:#3b281d;--bg2:#6a4930;--fg:#fff4e2;--accent:#d5a96a;--muted:#d5c0a7;--card:rgba(82,55,37,.9);--radius:20px}.rustic-wood .screen{background:linear-gradient(135deg,#4c3323,#2c1c14)}.rustic-wood .orn{inset:0;background:repeating-linear-gradient(90deg,#0000 0 8px,#d5a96a09 9px 10px);border:0}.rustic-wood .orn:before{content:"❦  ❧";font-size:80px;left:4%;top:8%;color:#8fb17b}.rustic-wood .orn:after{content:"❧  ❦";font-size:80px;right:4%;bottom:8%;color:#8fb17b}.rustic-wood .card-inv{border:8px solid #8a633f55;box-shadow:inset 0 0 0 2px var(--accent),0 30px 90px #0009}.rustic-wood .event-card,.rustic-wood .story-card,.rustic-wood .wish-card,.rustic-wood .account-card{background:#60432d;border-color:#d5a96a33}
/* 06 CRYSTAL GLASS — translucent prism */
.crystal-glass{--bg:#dbeaf4;--bg2:#a8cde2;--fg:#18354b;--accent:#4e83aa;--muted:#557286;--card:rgba(255,255,255,.48);--radius:42px}.crystal-glass .screen{background:radial-gradient(circle at 20% 20%,#fff 0,transparent 28%),linear-gradient(135deg,#d6edf7,#b4cfe0)}.crystal-glass .orn{inset:0;border:0}.crystal-glass .orn:before{content:"◇  ◈  ◇";font-size:70px;left:5%;top:8%;transform:rotate(12deg)}.crystal-glass .orn:after{content:"◇  ◈";font-size:70px;right:5%;bottom:8%;transform:rotate(-12deg)}.crystal-glass .card-inv{background:linear-gradient(135deg,#ffffff88,#ffffff2c);backdrop-filter:blur(30px);border:1px solid #fff9;box-shadow:0 30px 90px #3a617733, inset 0 1px 0 #fff}.crystal-glass .event-card,.crystal-glass .story-card,.crystal-glass .wish-card,.crystal-glass .account-card{background:#ffffff55;border-color:#fff9}
/* 07 COASTAL BREEZE — waves + shells */
.coastal-breeze{--bg:#e7f7f8;--bg2:#c4e9ee;--fg:#17465a;--accent:#2b899d;--muted:#547582;--card:rgba(255,255,255,.82);--radius:46px}.coastal-breeze .screen{background:linear-gradient(180deg,#dff7fa,#b9e5ec)}.coastal-breeze .orn{inset:auto 0 0;height:160px;border:0;background:radial-gradient(100% 120% at 50% 100%,#fff8 0 42%,#2b899d22 43% 50%,transparent 51%)}.coastal-breeze .orn:before{content:"≈ ≈ ≈";left:16%;top:0;font-size:75px}.coastal-breeze .orn:after{content:"🐚  ✦  🐚";right:7%;bottom:18px;font-size:36px}.coastal-breeze .card-inv{border-radius:60px 14px 60px 14px}.coastal-breeze .photo{border-radius:50% 50% 45% 45%}
/* 08 MONOGRAM CLASSIC — crest + parchment */
.monogram-classic{--bg:#f1e8d8;--bg2:#e5d3b8;--fg:#4b392b;--accent:#9a7747;--muted:#7c6b58;--card:rgba(255,251,241,.92);--radius:16px}.monogram-classic .screen{background:radial-gradient(circle at center,#fffaf0,#ead9bc)}.monogram-classic .orn{inset:8%;border:1px solid #9a774777;border-radius:50%}.monogram-classic .orn:before{content:"❦";font-size:100px;left:42%;top:8%}.monogram-classic .orn:after{content:"❦";font-size:100px;right:42%;bottom:8%;transform:rotate(180deg)}.monogram-classic .card-inv{border:1px solid #9a774766;box-shadow:0 25px 70px #6b513326}.monogram-classic .event-card,.monogram-classic .story-card,.monogram-classic .wish-card,.monogram-classic .account-card{border-radius:12px;box-shadow:0 12px 35px #6b513315}
/* 09 LILAC SERENITY — floral mandala */
.lilac-serenity{--bg:#eee9fa;--bg2:#d9cff0;--fg:#4c4069;--accent:#8469b0;--muted:#71658a;--card:rgba(250,248,255,.84);--radius:70px}.lilac-serenity .screen{background:radial-gradient(circle,#fbf9ff,#d9cff0)}.lilac-serenity .orn{inset:4%;border-left:2px solid #8469b055;border-right:2px solid #8469b055;border-radius:50%}.lilac-serenity .orn:before{content:"✿  ❀  ✿";font-size:54px;left:35%;top:-32px}.lilac-serenity .orn:after{content:"❀  ✿  ❀";font-size:54px;right:34%;bottom:-32px}.lilac-serenity .card-inv{border:1px solid #8469b055;box-shadow:0 35px 100px #59407822}.lilac-serenity .event-card,.lilac-serenity .story-card,.lilac-serenity .wish-card,.lilac-serenity .account-card{border-radius:35px}
/* 10 NOIR EDITORIAL — monochrome magazine */
.noir-editorial{--bg:#f3f3ef;--bg2:#fff;--fg:#111;--accent:#111;--muted:#656565;--card:rgba(255,255,255,.94);--radius:0}.noir-editorial .screen{background:linear-gradient(120deg,#f3f3ef 0 58%,#111 58% 100%);color:#111}.noir-editorial .screen:after{border-color:#111}.noir-editorial .orn{inset:0;border:0;border-left:1px solid #111;border-right:1px solid #111}.noir-editorial .orn:before,.noir-editorial .orn:after{content:"";width:80px;height:80px;border:1px solid #111;box-shadow:12px 12px 0 #1112}.noir-editorial .orn:before{left:5%;top:7%}.noir-editorial .orn:after{right:5%;bottom:7%}.noir-editorial .card-inv{text-align:left;border:0;box-shadow:18px 18px 0 #111;border-radius:0;background:#fff}.noir-editorial .card-inv .bismillah,.noir-editorial .card-inv .amp{color:#111}.noir-editorial .couple{font-family:Arial,sans-serif;font-weight:800;letter-spacing:-.08em}.noir-editorial .section-title{text-align:left}.noir-editorial .event-card,.noir-editorial .story-card,.noir-editorial .wish-card,.noir-editorial .account-card{border-radius:0;border-color:#1112}.noir-editorial .btn-inv{border-color:#111;color:#111}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Shared Bootstrap-like motion helpers */
.theme-orbit{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.theme-orbit span{position:absolute;left:calc(8% + var(--i)*19%);top:calc(10% + (var(--i)%3)*27%);font-size:clamp(18px,3vw,34px);color:var(--accent);opacity:.16;filter:drop-shadow(0 8px 15px color-mix(in srgb,var(--accent) 45%,transparent));animation:orbitFloat calc(7s + var(--i)*.8s) ease-in-out infinite;animation-delay:calc(var(--i)*-.9s)}@keyframes orbitFloat{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(18px,-24px,0) rotate(25deg)}}.progress-scroll{position:fixed;top:0;left:0;width:100%;height:3px;background:transparent;z-index:9999}.progress-scroll span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 0 15px var(--accent);transition:width .08s linear}.section-inv,.event-card,.story-card,.wish-card,.account-card,.gallery-grid img{opacity:0;transform:translateY(24px)}.section-inv.is-visible,.event-card.is-visible,.story-card.is-visible,.wish-card.is-visible,.account-card.is-visible,.gallery-grid img.is-visible{opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}
