:root{--ink: #0b2238;--ink-soft: #385673;--bg: #d3e1ef;--paper: #f5f9fe;--brand: #184f83;--brand-soft: #d1e3f5;--mint: #d9e9f9;--line: rgba(11, 34, 56, .14);--ornament: rgba(155, 194, 226, .55);--radius: 18px;--shadow: 0 14px 30px rgba(15, 42, 68, .2)}:root[data-theme=maroon]{--ink: #12375a;--ink-soft: #496887;--bg: #e6f0f8;--paper: #fcfeff;--brand: #2b74b0;--brand-soft: #e0eefb;--mint: #e7f2fc;--line: rgba(18, 55, 90, .14);--shadow: 0 14px 30px rgba(18, 55, 90, .18)}*{box-sizing:border-box}html,body{margin:0;font-family:Plus Jakarta Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at 20% 10%,rgba(200,232,255,.24),transparent 36%),radial-gradient(circle at 84% 84%,rgba(18,79,131,.2),transparent 44%),url(/images/bg.jpg) center top / cover no-repeat fixed}body{position:relative;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(#07192a3d,#07192a3d),repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 2px,transparent 2px,transparent 12px);z-index:0}body:after{content:"";position:fixed;inset:10px;border:1px solid rgba(208,228,246,.3);border-radius:22px;pointer-events:none;z-index:0}.cover{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center;background:linear-gradient(#07192a57,#07192a57),url(/images/bg.jpg) center top / cover no-repeat fixed;transform-origin:center top;transition:opacity .56s ease,transform .56s ease,filter .56s ease}.cover.is-opening{opacity:0;transform:translateY(-12px) scale(1.02);filter:blur(2px)}.cover.is-hidden{display:none}.cover:before,.cover:after{content:"";position:absolute;pointer-events:none}.cover:before{inset:16px;border:1px solid rgba(221,238,253,.34);border-radius:24px;animation:frameGlow 2.2s ease-in-out infinite alternate}.cover:after{width:min(440px,86vw);height:min(440px,86vw);top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(198,226,250,.24);animation:ringFloat 5.2s ease-in-out infinite}.cover>*{position:relative;z-index:1}:root[data-theme=maroon] .cover{background:linear-gradient(#07192a5c,#07192a5c),url(/images/bg.jpg) center top / cover no-repeat fixed}#content{position:relative;opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;background:linear-gradient(#dae8f661,#dae8f661);z-index:1;transition:opacity .56s ease,transform .56s ease,visibility 0ms linear .56s}body.invite-locked #content{display:none}body.invite-locked #content.show{display:block;opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .56s ease,transform .56s ease,visibility 0ms linear 0ms}#content:before,#content:after{content:"";position:absolute;left:14px;right:14px;height:22px;pointer-events:none;opacity:.75;background:linear-gradient(90deg,transparent,rgba(195,221,243,.78),transparent),repeating-linear-gradient(90deg,rgba(168,204,233,.44) 0,rgba(168,204,233,.44) 10px,transparent 10px,transparent 20px);border-radius:999px}#content:before{top:8px}#content:after{bottom:8px}.cover-card{position:relative;max-width:540px;width:100%;background:#f7fcfff0;border:1px solid rgba(169,206,236,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:calc(var(--radius) + 4px);padding:28px 22px;box-shadow:var(--shadow);animation:rise .9s ease-out both}.cover-card--landing{max-width:980px;display:grid;gap:16px}.cover-photo-wrap{margin:0;display:grid;gap:8px;animation:photoRise .9s ease-out .14s both}.cover-photo{width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center 18%;border-radius:14px;border:1px solid rgba(56,130,189,.52);box-shadow:0 14px 24px #0f2a4433}.cover-photo-wrap figcaption{margin:0;text-align:center;font-size:.86rem;color:var(--ink-soft)}.cover-copy{display:grid;gap:10px;align-content:center}.cover-copy>*{opacity:0;transform:translateY(10px);animation:copyReveal .7s ease-out both}.cover-copy>*:nth-child(1){animation-delay:.22s}.cover-copy>*:nth-child(2){animation-delay:.32s}.cover-copy>*:nth-child(3){animation-delay:.42s}.cover-copy>*:nth-child(4){animation-delay:.52s}.cover-copy>*:nth-child(5){animation-delay:.62s}.cover-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(15,42,68,.14);border-radius:calc(var(--radius) - 4px);pointer-events:none}.cover-card:after{content:"";position:absolute;inset:12px;border-radius:calc(var(--radius) - 5px);pointer-events:none;background:radial-gradient(circle at 12px 12px,var(--ornament) 0 2px,transparent 2px),radial-gradient(circle at calc(100% - 12px) 12px,var(--ornament) 0 2px,transparent 2px),radial-gradient(circle at 12px calc(100% - 12px),var(--ornament) 0 2px,transparent 2px),radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),var(--ornament) 0 2px,transparent 2px)}.eyebrow{margin:0;letter-spacing:.1em;text-transform:uppercase;font-size:.76rem;font-weight:700;color:var(--brand)}.cover h1{position:relative;display:inline-block;margin:12px 0 14px;padding:14px 18px;font-family:Prata,serif;font-size:clamp(2rem,6vw,3rem);line-height:1.15;color:#0e3a61;text-shadow:0 1px 0 rgba(255,255,255,.35)}.cover h1:before,.cover h1:after{content:"";position:absolute;left:50%;width:min(220px,80%);height:10px;transform:translate(-50%);background:radial-gradient(circle,rgba(152,192,225,.7) 0 2px,transparent 2px),linear-gradient(90deg,transparent,rgba(152,192,225,.85),transparent);background-size:20px 10px,100% 1px;background-position:center,center;background-repeat:repeat-x,no-repeat}.cover h1:before{top:0}.cover h1:after{bottom:0}.cover p{margin:0 0 24px;color:var(--ink-soft)}.cover-to,.cover-note{margin:0;color:var(--ink-soft)}.cover-note{font-size:.92rem;line-height:1.55}.btn{border:none;border-radius:999px;padding:13px 24px;font-weight:700;font-size:.94rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-primary{background:linear-gradient(135deg,#184f83,#2a72ac);color:#fff;box-shadow:0 10px 18px #0a223847}.btn-soft{background:var(--brand-soft);color:color-mix(in srgb,var(--ink) 86%,black)}.btn:hover{transform:translateY(-2px)}.btn-row{display:flex;flex-wrap:wrap;gap:10px}#content{padding:16px 14px 44px}.shell{position:relative;max-width:980px;margin:0 auto;display:grid;gap:14px}.shell:before{content:"";position:absolute;inset:-8px;border:1px solid rgba(213,233,250,.58);border-radius:22px;pointer-events:none}.section{position:relative;overflow:hidden;background:color-mix(in srgb,var(--paper) 93%,white);border-radius:var(--radius);border:1px solid rgba(168,204,233,.6);padding:18px;box-shadow:0 10px 22px #0d2c4824}.section:before,.section:after{content:"";position:absolute;width:64px;height:64px;border:1px solid rgba(172,208,236,.55);pointer-events:none}.section:before{top:10px;left:10px;border-right:none;border-bottom:none;border-top-left-radius:14px}.section:after{right:10px;bottom:10px;border-left:none;border-top:none;border-bottom-right-radius:14px}.formal-opening{text-align:center;background:linear-gradient(180deg,rgba(63,140,206,.12),transparent 45%),var(--paper)}.basmalah{margin:2px 0 10px;font-family:Prata,serif;font-size:clamp(1.2rem,3.4vw,1.6rem);color:#0f3f6b}.salam{margin:0;font-weight:700;color:var(--ink)}.formal-copy{margin:12px auto 0;max-width:720px;color:var(--ink-soft);line-height:1.7;text-wrap:pretty}.formal-copy--closing{max-width:980px;margin-top:14px;font-size:.98rem;letter-spacing:.01em;line-height:1.65;color:#3b5875}.hero{text-align:center;padding:26px 18px;background:radial-gradient(circle at top right,rgba(63,140,206,.18),transparent 38%),radial-gradient(circle at bottom left,rgba(37,104,161,.16),transparent 40%),var(--paper)}:root[data-theme=maroon] .hero{background:radial-gradient(circle at top right,rgba(47,128,193,.2),transparent 38%),radial-gradient(circle at bottom left,rgba(27,88,142,.16),transparent 40%),var(--paper)}.hero h2{margin:0;font-family:Prata,serif;font-size:clamp(1.65rem,5vw,2.3rem);line-height:1.2}.hero p{margin:12px 0 0;color:var(--ink-soft)}.featured-photo-section{text-align:center}.featured-photo-card{margin:0;display:grid;gap:10px;justify-items:center}.featured-photo{width:min(100%,760px);aspect-ratio:4 / 5;object-fit:cover;object-position:center 20%;border-radius:16px;border:1px solid rgba(56,130,189,.42);box-shadow:0 16px 30px #0f2a4429}.featured-photo-card figcaption{margin:0;color:var(--ink-soft);font-size:.92rem;line-height:1.6}.event-day-heading{position:relative;margin:0 auto 10px;width:fit-content;max-width:100%;padding:8px 18px;font-family:Prata,serif;font-size:clamp(1.2rem,3.2vw,1.55rem);line-height:1.35;color:#0f3f6b;letter-spacing:.01em;text-align:center;background:linear-gradient(180deg,#e8f3fcc7,#e8f3fc59);border:1px solid rgba(169,206,236,.68);border-radius:999px}.event-day-heading:before,.event-day-heading:after{content:"";position:absolute;top:50%;width:38px;height:1px;background:linear-gradient(90deg,transparent,rgba(109,163,207,.72),transparent)}.event-day-heading:before{right:calc(100% + 8px)}.event-day-heading:after{left:calc(100% + 8px)}@media(max-width:640px){.event-day-heading{width:100%}.event-day-heading:before,.event-day-heading:after{display:none}}.event-countdown-title{margin:0 0 12px;text-align:center;font-family:Prata,serif;font-size:clamp(1.02rem,2.6vw,1.2rem);line-height:1.35;color:#1d4f7b;letter-spacing:.02em;text-transform:uppercase}.countdown{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}.count-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 8px}.count-box b{font-size:1.35rem;color:var(--brand)}.count-box span{display:block;margin-top:3px;font-size:.82rem;color:var(--ink-soft)}.rsvp-wrap{display:grid;gap:14px}.rsvp-head h3{margin:0}.rsvp-head p{margin:8px 0 0;color:var(--ink-soft);line-height:1.55;font-size:.92rem}.status{margin:0;padding:11px 12px;border-radius:12px;background:var(--mint);border:1px solid color-mix(in srgb,var(--mint) 70%,var(--ink) 30%);color:color-mix(in srgb,var(--ink) 82%,black);font-size:.9rem}.formal-note{margin:4px 0 0;padding-top:8px;border-top:1px dashed var(--line);color:var(--ink-soft);font-size:.86rem;line-height:1.5}.saweran-panel{margin-top:2px;border:1px solid rgba(47,128,193,.32);border-radius:14px;background:linear-gradient(180deg,#d5e8fa8c,#fff);padding:12px;text-align:center}.saweran-panel h4{margin:0;color:#174d7b;font-size:.98rem}.saweran-panel p{margin:8px 0 10px;color:var(--ink-soft);font-size:.86rem;line-height:1.5}.saweran-panel img{width:min(100%,220px);aspect-ratio:1 / 1;object-fit:contain;border-radius:12px;border:1px solid var(--line);background:#fff;padding:8px}.saweran-bank{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);display:grid;gap:6px;justify-items:center}.saweran-bank p{margin:0}#saweranAccountNumber{letter-spacing:.08em;font-weight:700;color:#174d7b}#copySaweranBtn{padding:10px 18px;font-size:.82rem}.saweran-actions{display:flex;justify-content:center;width:100%}.saweran-actions .btn{padding:10px 18px;font-size:.82rem}.saweran-meta-label{margin:2px 0 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#4b6e90}.saweran-meta-value{margin:0;font-weight:700;color:#174d7b}#copySaweranStatus{color:#325f88;font-size:.8rem}.field{display:grid;gap:7px}.field label{font-size:.86rem;color:var(--ink-soft);font-weight:600}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;font:inherit;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:#2b74b0;box-shadow:0 0 0 3px #2b74b02e}:root[data-theme=maroon] input:focus,:root[data-theme=maroon] select:focus,:root[data-theme=maroon] textarea:focus{border-color:#1f5f96;box-shadow:0 0 0 3px #1f5f9633}textarea{min-height:110px;resize:vertical}.guest-pill{margin:0;display:inline-block;padding:7px 12px;border-radius:999px;background:var(--brand-soft);color:color-mix(in srgb,var(--ink) 80%,black);font-size:.83rem;font-weight:700}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gallery img{width:100%;height:130px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.location{display:grid;gap:12px}.location-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.location-card h4{margin:0;font-size:1rem}.location-card p{margin:8px 0 0;color:var(--ink-soft);font-size:.92rem}.map-embed-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.map-embed{border:0;display:block;width:100%;height:280px}.wishes{display:grid;gap:10px}.wish{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.wish h4{margin:0;font-size:.95rem}.wish p{margin:8px 0 0;color:var(--ink-soft);font-size:.9rem}.music{position:fixed;right:14px;width:46px;height:46px;border:none;border-radius:50%;font-size:18px;cursor:pointer;color:#fff;box-shadow:var(--shadow)}.music{bottom:14px;background:var(--ink)}.reveal{opacity:1;transform:translateY(0)}body.invite-locked .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}body.invite-locked .reveal.show{opacity:1;transform:translateY(0)}.parallax-soft{will-change:transform}@media(min-width:760px){#content{padding:30px 20px 64px}#content:before,#content:after{left:26px;right:26px}.section{padding:24px}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.gallery img{height:170px}.location{grid-template-columns:1fr auto;align-items:center}.map-embed{height:360px}.featured-photo{aspect-ratio:3 / 4}.cover-card--landing{grid-template-columns:1fr 1fr;gap:22px;text-align:left;align-items:center;padding:28px}.cover-photo{aspect-ratio:3 / 4;max-height:520px}.cover-photo-wrap figcaption{text-align:left}.cover-copy .btn{justify-self:start}.formal-copy--closing{white-space:nowrap;font-size:.95rem}}@media(max-width:759px){.formal-copy--closing{white-space:normal}}@media(min-width:1024px){.shell{perspective:900px}}@media(prefers-reduced-motion:reduce){.cover:before,.cover:after,.cover-photo-wrap,.cover-copy>*{animation:none!important;opacity:1;transform:none}.cover,#content{transition:none}}@keyframes rise{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes frameGlow{0%{opacity:.6}to{opacity:1}}@keyframes ringFloat{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.03)}}@keyframes photoRise{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes copyReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
