:root{
  --inv-primary:#8f5d65;--inv-secondary:#f8efea;--inv-accent:#c99a6b;
  --inv-heading:Georgia,serif;--inv-body:Arial,sans-serif;--pattern-opacity:.3;
  --card-opacity:.88;--content-width:1180px;--section-radius:28px;--hero-overlay:.28;
  --animation-easing:cubic-bezier(.22,1,.36,1);--theme-bg:none;--theme-ornament:none;
  --shadow-soft:0 22px 70px rgba(42,27,24,.12);--shadow-card:0 14px 44px rgba(42,27,24,.1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:#322a28;font-family:var(--inv-body);line-height:1.7;background:var(--inv-secondary);overflow-x:hidden}button,input,select,textarea{font:inherit}img{max-width:100%;display:block}a{color:inherit}.invitation-body{min-width:320px}.inv-shell{width:100%;max-width:none;min-height:100vh;overflow:hidden;position:relative;background-color:var(--inv-secondary);background-image:linear-gradient(rgba(255,255,255,calc(1 - var(--pattern-opacity))),rgba(255,255,255,calc(1 - var(--pattern-opacity)))),var(--theme-bg);background-size:100% auto;background-repeat:repeat-y;background-position:center top}.inv-shell:before,.inv-shell:after{content:"";position:absolute;width:min(34vw,520px);aspect-ratio:1/1.25;background:var(--theme-ornament) center/cover no-repeat;opacity:calc(var(--pattern-opacity) * .36);pointer-events:none;z-index:0;filter:saturate(.8)}.inv-shell:before{top:880px;right:-14vw}.inv-shell:after{bottom:160px;left:-14vw;transform:rotate(180deg)}.inv-section{padding:clamp(78px,9vw,150px) 24px;position:relative;z-index:1}.section-inner{width:min(var(--content-width),calc(100vw - 48px));margin:0 auto;position:relative}.section-heading{max-width:760px;margin:0 auto 52px;text-align:center}.inv-section h1,.inv-section h2,.inv-section h3{font-family:var(--inv-heading);line-height:1.12;margin:0 0 16px;color:var(--inv-primary);text-wrap:balance}.inv-section h2{font-size:clamp(2.15rem,4.6vw,4.65rem)}.inv-section h3{font-size:clamp(1.35rem,2.2vw,2rem)}.inv-section p{margin:0 0 18px}.inv-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;font-weight:900;color:var(--inv-primary);margin-bottom:14px}.inv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:999px;background:var(--inv-primary);color:#fff;text-decoration:none;font-weight:850;border:1px solid var(--inv-primary);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.inv-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px color-mix(in srgb,var(--inv-primary) 28%,transparent)}.inv-btn-outline{background:transparent;color:var(--inv-primary)}.inv-btn-soft{background:color-mix(in srgb,var(--inv-primary) 11%,white);color:var(--inv-primary);border-color:transparent}

/* Opening cover */
.inv-cover{position:fixed;inset:0;z-index:999;background:linear-gradient(rgba(17,13,13,.28),rgba(17,13,13,.72)),var(--cover) center/cover;display:grid;place-items:center;text-align:center;color:#fff;padding:24px;transition:opacity .75s ease,visibility .75s ease;isolation:isolate}.inv-cover:before{content:"";position:absolute;inset:clamp(14px,2.5vw,34px);border:1px solid rgba(255,255,255,.55);border-radius:clamp(22px,4vw,52px);pointer-events:none}.inv-cover:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,transparent 0 20%,rgba(0,0,0,.16) 70%);z-index:-1}.inv-cover.hidden{opacity:0;visibility:hidden;pointer-events:none}.cover-card{max-width:620px;position:relative;z-index:2;padding:clamp(32px,5vw,74px);background:rgba(18,14,14,.18);backdrop-filter:blur(7px);border:1px solid rgba(255,255,255,.28);border-radius:clamp(24px,5vw,58px);box-shadow:0 35px 90px rgba(0,0,0,.28);animation:coverEnter 1.15s var(--animation-easing) both}.cover-card h1{font:700 clamp(3.2rem,8vw,7.2rem)/.95 var(--inv-heading);margin:20px 0;color:#fff;text-shadow:0 8px 36px rgba(0,0,0,.3);text-wrap:balance}.cover-amp{font-size:.5em;color:color-mix(in srgb,var(--inv-accent) 82%,white)}.cover-card .inv-kicker{color:#fff}.cover-card .guest{font-size:clamp(1rem,2vw,1.25rem);margin:26px 0}.open-btn{border:1px solid rgba(255,255,255,.45);border-radius:999px;background:var(--inv-primary);color:#fff;padding:14px 26px;font-weight:900;cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.22);transition:.3s}.open-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 20px 42px rgba(0,0,0,.3)}.cover-decoration{position:absolute;width:min(30vw,340px);height:min(40vw,450px);background:var(--theme-ornament) center/contain no-repeat;opacity:.44;filter:brightness(1.25);z-index:1}.cover-decoration-a{left:-4vw;top:-3vw}.cover-decoration-b{right:-4vw;bottom:-5vw;transform:rotate(180deg)}@keyframes coverEnter{from{opacity:0;transform:translateY(28px) scale(.94);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}

/* Hero */
.hero-inv{min-height:100svh;padding:0;display:grid;align-items:stretch;background:linear-gradient(rgba(15,12,12,var(--hero-overlay)),rgba(15,12,12,calc(var(--hero-overlay) + .18))),var(--hero) center/cover no-repeat;color:#fff;overflow:hidden}.has-parallax .hero-inv{background-attachment:fixed}.hero-stage{width:100%;max-width:none;min-height:100svh;display:grid;place-items:center;padding:clamp(82px,9vw,140px) max(24px,6vw);position:relative}.hero-visual{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 32% 68%,rgba(255,255,255,.08));pointer-events:none}.hero-inner{position:relative;z-index:2;width:min(900px,92vw);padding:clamp(40px,6vw,84px);text-align:center;background:rgba(255,255,255,var(--card-opacity));backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.72);border-radius:var(--section-radius);box-shadow:0 32px 90px rgba(21,14,13,.22)}.hero-inv h1{font-size:clamp(3rem,8vw,8.2rem);color:var(--inv-primary);letter-spacing:-.045em}.hero-inv h1 b{font-size:.48em;color:var(--inv-accent);font-weight:500}.hero-inv .inv-kicker{color:var(--inv-primary)}.date-pill{display:inline-block;padding:9px 18px;background:var(--inv-primary);color:#fff;border-radius:999px;font-weight:900;letter-spacing:.06em}.hero-guest{margin:22px 0 0!important}.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:4;color:#fff;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;display:grid;justify-items:center;gap:7px;text-shadow:0 2px 10px rgba(0,0,0,.4)}.scroll-cue span{width:1px;height:42px;background:linear-gradient(#fff,transparent);animation:scrollCue 1.8s ease-in-out infinite}@keyframes scrollCue{0%,100%{transform:scaleY(.45);transform-origin:top;opacity:.45}50%{transform:scaleY(1);opacity:1}}

/* Core sections */
.section-quote{text-align:center;background:color-mix(in srgb,var(--inv-secondary) 88%,white)}.section-quote .section-inner{max-width:920px}.quote-mark{font:700 8rem/.6 var(--inv-heading);color:color-mix(in srgb,var(--inv-accent) 65%,transparent);margin-bottom:30px}.quote{font-family:var(--inv-heading);font-style:italic;font-size:clamp(1.25rem,2.7vw,2.15rem);line-height:1.65}.quote-source{color:var(--inv-primary);font-weight:800}.section-couple{background:rgba(255,255,255,.12)}.couple-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,70px)}.person-card{display:grid;grid-template-columns:minmax(170px,.82fr) minmax(180px,1fr);align-items:center;gap:clamp(20px,3vw,44px);padding:clamp(20px,3vw,40px);background:rgba(255,255,255,var(--card-opacity));backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.58);border-radius:var(--section-radius);box-shadow:var(--shadow-card)}.person-card.person-groom{grid-template-columns:minmax(180px,1fr) minmax(170px,.82fr)}.person-groom .photo-wrap{order:2}.photo-wrap{position:relative}.person-photo,.person-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:calc(var(--section-radius) * .8);box-shadow:0 16px 40px rgba(40,25,20,.16)}.person-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--inv-secondary) 80%,white),white);font:700 4rem var(--inv-heading);color:var(--inv-accent)}.person-copy{text-align:left}.person-groom .person-copy{text-align:right}.person-label{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;color:var(--inv-accent);font-weight:900}.amp{font:700 clamp(3rem,6vw,6rem) var(--inv-heading);color:var(--inv-accent)}.section-countdown{text-align:center;background:var(--inv-primary);color:#fff}.section-countdown h2,.section-countdown .inv-kicker{color:#fff}.countdown{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:clamp(10px,2vw,24px);max-width:900px;margin:34px auto 0}.countdown div{padding:clamp(18px,3vw,34px) 10px;border-radius:var(--section-radius);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(8px)}.countdown strong{display:block;font:700 clamp(2rem,5vw,4.5rem)/1 var(--inv-heading);color:#fff}.countdown span{font-size:.75rem;text-transform:uppercase;letter-spacing:.16em}.section-events{background:color-mix(in srgb,var(--inv-secondary) 94%,white)}.event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}.event-card{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:clamp(24px,3vw,40px);background:rgba(255,255,255,var(--card-opacity));border:1px solid rgba(255,255,255,.65);border-radius:var(--section-radius);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.event-index{font:700 3rem/1 var(--inv-heading);color:color-mix(in srgb,var(--inv-accent) 55%,transparent)}.event-card .date{font-weight:900;color:var(--inv-primary)}.event-time{letter-spacing:.05em}.event-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.section-story{background:rgba(255,255,255,.18)}.story-list{position:relative;max-width:1040px;margin:auto}.story-list:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:color-mix(in srgb,var(--inv-accent) 55%,transparent);transform:translateX(-50%)}.story-item{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;position:relative;margin-bottom:70px}.story-item:nth-child(even) .story-media{order:2}.story-item:nth-child(even) .story-copy{text-align:right}.story-dot{position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;background:var(--inv-primary);border:5px solid var(--inv-secondary);transform:translate(-50%,-50%);z-index:2}.story-media img,.story-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--section-radius);box-shadow:var(--shadow-card)}.story-placeholder{display:grid;place-items:center;background:rgba(255,255,255,.6);font:700 4rem var(--inv-heading);color:var(--inv-accent)}.story-copy{padding:20px}.story-copy small{color:var(--inv-accent);font-weight:900;letter-spacing:.08em}.section-gallery{background:color-mix(in srgb,var(--inv-primary) 5%,var(--inv-secondary))}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:90px;gap:14px}.gallery-item{margin:0;position:relative;overflow:hidden;border-radius:calc(var(--section-radius) * .7);box-shadow:var(--shadow-card);grid-column:span 4;grid-row:span 4}.gallery-item:nth-child(1){grid-column:span 7;grid-row:span 6}.gallery-item:nth-child(2){grid-column:span 5;grid-row:span 3}.gallery-item:nth-child(3){grid-column:span 5;grid-row:span 3}.gallery-item:nth-child(6n+4){grid-column:span 5;grid-row:span 4}.gallery-item:nth-child(6n+5){grid-column:span 3;grid-row:span 4}.gallery-item:nth-child(6n){grid-column:span 4;grid-row:span 4}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--animation-easing)}.gallery-item:hover img{transform:scale(1.055)}.gallery figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 12px;border-radius:12px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);color:#fff;font-size:.78rem}.section-gift{text-align:center}.gift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;max-width:1000px;margin:auto}.gift-card{padding:clamp(26px,4vw,46px);background:rgba(255,255,255,var(--card-opacity));border:1px solid rgba(255,255,255,.68);border-radius:var(--section-radius);box-shadow:var(--shadow-card)}.gift-icon{font:700 3rem var(--inv-heading);color:var(--inv-accent)}.account{font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:950;letter-spacing:.06em;color:var(--inv-primary);word-break:break-all}.section-rsvp{background:var(--inv-primary);color:#fff}.section-rsvp h2,.section-rsvp .inv-kicker{color:#fff}.rsvp-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:clamp(34px,7vw,100px);align-items:start}.rsvp-intro{position:sticky;top:60px}.rsvp-form{padding:clamp(24px,4vw,44px);border-radius:var(--section-radius);background:rgba(255,255,255,.96);color:#302826;box-shadow:0 28px 80px rgba(0,0,0,.18)}.field{margin-bottom:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field label{display:block;font-weight:850;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid #ddcfca;border-radius:13px;background:#fff;color:#2d2725;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--inv-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--inv-primary) 14%,transparent)}.wish-list{display:grid;gap:12px;margin-top:22px}.wish{display:grid;grid-template-columns:46px 1fr;gap:13px;padding:17px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2)}.wish-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--inv-primary);font-weight:950}.wish strong{display:block;color:#fff}.wish small{display:block;opacity:.78;text-transform:capitalize}.wish p{margin:5px 0 0}.section-closing{text-align:center;min-height:70svh;display:grid;place-items:center}.closing-card{max-width:820px;padding:clamp(36px,7vw,90px);border-radius:var(--section-radius);background:rgba(255,255,255,var(--card-opacity));box-shadow:var(--shadow-soft);border:1px solid rgba(255,255,255,.65)}.closing-symbol{font:700 4rem var(--inv-heading);color:var(--inv-accent)}.inv-footer{position:relative;z-index:1;padding:38px 20px 100px;background:#211b1a;color:#fff;text-align:center}.music-btn{position:fixed;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));z-index:100;width:48px;height:48px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:var(--inv-primary);color:#fff;box-shadow:0 8px 22px rgba(40,20,20,.22);cursor:pointer}.music-btn.playing{animation:musicSpin 6s linear infinite}@keyframes musicSpin{to{transform:rotate(360deg)}}.inv-nav{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:90;display:flex;gap:6px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);padding:7px;border-radius:999px;box-shadow:0 12px 34px rgba(50,30,25,.2);border:1px solid rgba(255,255,255,.7)}.inv-nav a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;text-decoration:none;color:var(--inv-primary);font-weight:950;transition:.25s}.inv-nav a:hover,.inv-nav a.active{background:var(--inv-primary);color:#fff}.alert{padding:12px 14px;border-radius:12px;margin:10px 0}.alert-success{background:#e7f8ed;color:#176b36}.alert-error{background:#fde8e8;color:#8b2020}

/* Scroll reveal engine */
.reveal-enabled [data-reveal]:not([data-reveal="none"]){transition-property:opacity,transform,filter;transition-duration:var(--reveal-duration,850ms);transition-delay:var(--reveal-delay,0ms);transition-timing-function:var(--animation-easing);will-change:opacity,transform,filter}.reveal-enabled [data-reveal]:not(.is-visible):not([data-reveal="none"]){opacity:0}.reveal-enabled [data-reveal="fade-up"]:not(.is-visible){transform:translate3d(0,58px,0)}.reveal-enabled [data-reveal="fade-down"]:not(.is-visible){transform:translate3d(0,-58px,0)}.reveal-enabled [data-reveal="fade-left"]:not(.is-visible){transform:translate3d(72px,0,0)}.reveal-enabled [data-reveal="fade-right"]:not(.is-visible){transform:translate3d(-72px,0,0)}.reveal-enabled [data-reveal="zoom-in"]:not(.is-visible){transform:scale(.82)}.reveal-enabled [data-reveal="zoom-out"]:not(.is-visible){transform:scale(1.14)}.reveal-enabled [data-reveal="flip-up"]:not(.is-visible){transform:perspective(1000px) rotateX(22deg) translateY(35px)}.reveal-enabled [data-reveal="flip-left"]:not(.is-visible){transform:perspective(1000px) rotateY(-24deg) translateX(-35px)}.reveal-enabled [data-reveal="rotate-in"]:not(.is-visible){transform:rotate(-4deg) scale(.9)}.reveal-enabled [data-reveal="blur-in"]:not(.is-visible){filter:blur(18px);transform:scale(1.04)}.reveal-enabled [data-reveal="slide-up"]:not(.is-visible){transform:translate3d(0,100px,0)}.reveal-enabled [data-reveal="slide-left"]:not(.is-visible){transform:translate3d(120px,0,0)}.reveal-enabled [data-reveal="slide-right"]:not(.is-visible){transform:translate3d(-120px,0,0)}.reveal-enabled [data-reveal="scale-bounce"]:not(.is-visible){transform:scale(.68)}.reveal-enabled [data-reveal].is-visible{opacity:1;transform:none;filter:none}.reveal-enabled [data-reveal="scale-bounce"].is-visible{animation:revealBounce var(--reveal-duration,850ms) var(--animation-easing) var(--reveal-delay,0ms) both}@keyframes revealBounce{0%{opacity:0;transform:scale(.65)}65%{opacity:1;transform:scale(1.035)}100%{opacity:1;transform:scale(1)}}

/* 01 Arch Romance */
.layout-arch .hero-inner{border-radius:320px 320px 36px 36px;padding-top:110px}.layout-arch .person-photo,.layout-arch .person-placeholder{border-radius:220px 220px 24px 24px}.layout-arch .person-card{grid-template-columns:1fr;text-align:center}.layout-arch .person-copy,.layout-arch .person-groom .person-copy{text-align:center}.layout-arch .person-groom .photo-wrap{order:0}.layout-arch .section-heading h2:after{content:"";display:block;width:88px;height:2px;margin:20px auto;background:var(--inv-accent)}.layout-arch .event-card{border-radius:120px 120px 28px 28px;padding-top:55px}

/* 02 Editorial Luxe */
.layout-editorial .hero-inv{background-position:center 28%}.layout-editorial .hero-stage{place-items:end start;padding:8vw}.layout-editorial .hero-inner{width:min(760px,78vw);text-align:left;border-radius:0;border-left:10px solid var(--inv-accent);padding:clamp(38px,6vw,80px)}.layout-editorial .hero-inv h1{font-size:clamp(3.6rem,9vw,9rem)}.layout-editorial .hero-inv h1 span{display:block}.layout-editorial .hero-inv h1 b{display:block;margin:.1em 0}.layout-editorial .section-heading{text-align:left;margin-left:0}.layout-editorial .section-heading h2{max-width:900px}.layout-editorial .couple-grid{grid-template-columns:1fr;max-width:1050px;margin-left:auto}.layout-editorial .person-card{grid-template-columns:42% 1fr;border-radius:0}.layout-editorial .person-groom{margin-left:12%;grid-template-columns:1fr 42%}.layout-editorial .amp{position:absolute;left:5%;font-size:10rem;opacity:.17}.layout-editorial .event-grid{grid-template-columns:1fr}.layout-editorial .event-card{grid-template-columns:110px 1fr auto;border-radius:0;border-bottom:1px solid var(--inv-accent);background:transparent;box-shadow:none}.layout-editorial .event-actions{grid-column:auto;align-self:center}.layout-editorial .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto}.layout-editorial .gallery-item,.layout-editorial .gallery-item:nth-child(n){grid-column:auto;grid-row:auto;aspect-ratio:3/4;border-radius:0}.layout-editorial .gallery-item:nth-child(3n+1){margin-top:90px}

/* 03 Framed Elegance */
.layout-frame .inv-section:not(.hero-inv):not(.section-countdown):not(.section-rsvp){margin:clamp(14px,2.5vw,36px);border:1px solid color-mix(in srgb,var(--inv-primary) 35%,transparent);border-radius:var(--section-radius);background:rgba(255,255,255,.32)}.layout-frame .inv-section:not(.hero-inv):before{content:"";position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--inv-accent) 42%,transparent);border-radius:calc(var(--section-radius) - 8px);pointer-events:none}.layout-frame .hero-inner{border:10px double rgba(255,255,255,.82)}.layout-frame .person-card{border:8px double color-mix(in srgb,var(--inv-accent) 40%,white)}.layout-frame .gallery-item{border:8px solid #fff}.layout-frame .event-card{outline:1px solid var(--inv-accent);outline-offset:-10px}

/* 04 Modern Split */
.layout-split .hero-stage{place-items:center end}.layout-split .hero-inner{width:min(680px,58vw);border-radius:120px 0 0 120px;text-align:left;padding-left:90px}.layout-split .hero-inv h1 span{display:block}.layout-split .hero-inv h1 b{display:block}.layout-split .inv-section:nth-of-type(even):not(.hero-inv){background:color-mix(in srgb,var(--inv-primary) 8%,var(--inv-secondary))}.layout-split .couple-grid{grid-template-columns:1fr 1fr;gap:0}.layout-split .person-card{grid-template-columns:1fr;min-height:650px;border-radius:0}.layout-split .person-card:first-child{border-radius:var(--section-radius) 0 0 var(--section-radius)}.layout-split .person-card:last-child{border-radius:0 var(--section-radius) var(--section-radius) 0}.layout-split .person-groom .photo-wrap{order:0}.layout-split .amp{position:absolute;left:50%;z-index:3;width:90px;height:90px;border-radius:50%;display:grid;place-items:center;background:var(--inv-primary);color:#fff;transform:translateX(-50%)}.layout-split .event-card:nth-child(even){transform:translateY(50px)}.layout-split .story-item{gap:0}.layout-split .story-media,.layout-split .story-copy{padding:0}.layout-split .story-copy{background:rgba(255,255,255,.85);min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:45px}.layout-split .gallery-item:nth-child(n){grid-column:span 6;grid-row:span 5;border-radius:0}

/* 05 Storybook */
.layout-storybook .inv-shell{background-size:760px auto}.layout-storybook .hero-inner{border-radius:45% 45% 18px 18px;border:5px solid rgba(255,255,255,.82)}.layout-storybook .section-inner{max-width:980px}.layout-storybook .inv-section h2:after{content:"✦";display:block;margin:18px auto 0;color:var(--inv-accent);font-size:1.2rem}.layout-storybook .person-card{grid-template-columns:1fr;border-radius:80px 18px 80px 18px;text-align:center}.layout-storybook .person-copy,.layout-storybook .person-groom .person-copy{text-align:center}.layout-storybook .person-groom .photo-wrap{order:0}.layout-storybook .event-card,.layout-storybook .gift-card{border-radius:60px 12px 60px 12px}.layout-storybook .gallery-item:nth-child(even){transform:rotate(1.2deg)}.layout-storybook .gallery-item:nth-child(odd){transform:rotate(-1.2deg)}

/* 06 Cinematic */
.layout-cinematic{background:#111;color:#eee}.layout-cinematic .inv-shell{background-color:#111;background-blend-mode:multiply}.layout-cinematic .hero-inv{min-height:100svh}.layout-cinematic .hero-inner{background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.1));border:0;box-shadow:none;color:#fff;text-align:left;width:100%;max-width:none;padding-left:9vw}.layout-cinematic .hero-inv h1,.layout-cinematic .hero-inv .inv-kicker{color:#fff}.layout-cinematic .hero-inv h1{max-width:1100px}.layout-cinematic .date-pill{background:#fff;color:#111}.layout-cinematic .inv-section:not(.hero-inv):not(.section-countdown):not(.section-rsvp){background:rgba(10,10,10,.86);color:#eee}.layout-cinematic .inv-section h2,.layout-cinematic .inv-section h3,.layout-cinematic .inv-kicker{color:#fff}.layout-cinematic .person-card,.layout-cinematic .event-card,.layout-cinematic .gift-card,.layout-cinematic .closing-card{background:#191919;border-color:#333}.layout-cinematic .person-photo{border-radius:0}.layout-cinematic .section-quote{min-height:75svh;display:grid;place-items:center}.layout-cinematic .gallery{gap:4px}.layout-cinematic .gallery-item{border-radius:0}.layout-cinematic .story-list:before{background:#555}.layout-cinematic .section-closing{background:#090909}.layout-cinematic .inv-footer{background:#000}

/* 07 Fashion Magazine */
.layout-magazine .hero-stage{padding:0;display:grid;grid-template-columns:55% 45%;align-items:stretch}.layout-magazine .hero-visual{position:relative;background:transparent}.layout-magazine .hero-inner{grid-column:2;align-self:stretch;width:100%;border-radius:0;display:flex;flex-direction:column;justify-content:center;text-align:left;padding:8vw 5vw}.layout-magazine .hero-inv h1 span{display:block}.layout-magazine .section-heading{text-align:left;margin-left:0;border-left:6px solid var(--inv-accent);padding-left:24px}.layout-magazine .section-heading h2{text-transform:uppercase;letter-spacing:-.04em}.layout-magazine .section-quote .section-inner{display:grid;grid-template-columns:180px 1fr;text-align:left;align-items:start}.layout-magazine .quote-mark{font-size:13rem}.layout-magazine .couple-grid{grid-template-columns:1fr 1fr;gap:25px}.layout-magazine .person-card{grid-template-columns:1fr;border-radius:0}.layout-magazine .person-groom .photo-wrap{order:0}.layout-magazine .amp{display:none}.layout-magazine .person-copy,.layout-magazine .person-groom .person-copy{text-align:left}.layout-magazine .event-card{border-radius:0;border-top:8px solid var(--inv-primary)}.layout-magazine .story-list:before,.layout-magazine .story-dot{display:none}.layout-magazine .story-item{grid-template-columns:42% 1fr;gap:20px;border-bottom:1px solid var(--inv-accent);padding-bottom:35px}.layout-magazine .gallery{grid-auto-rows:120px}.layout-magazine .gallery-item{border-radius:0}

/* 08 Polaroid Memories */
.layout-polaroid .hero-inner{transform:rotate(-1deg);border:16px solid #fff;border-bottom-width:70px;border-radius:3px}.layout-polaroid .person-card{display:block;background:#fff;border-radius:4px;padding:18px 18px 55px;transform:rotate(-2deg)}.layout-polaroid .person-groom{transform:rotate(2deg)}.layout-polaroid .person-copy,.layout-polaroid .person-groom .person-copy{text-align:center;padding-top:20px}.layout-polaroid .person-photo{border-radius:0;aspect-ratio:1}.layout-polaroid .event-card:nth-child(odd),.layout-polaroid .gift-card:nth-child(odd){transform:rotate(-1deg)}.layout-polaroid .event-card:nth-child(even),.layout-polaroid .gift-card:nth-child(even){transform:rotate(1deg)}.layout-polaroid .gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:30px}.layout-polaroid .gallery-item,.layout-polaroid .gallery-item:nth-child(n){width:min(300px,42vw);height:auto;aspect-ratio:4/5;border:14px solid white;border-bottom-width:48px;border-radius:2px;transform:rotate(-2deg)}.layout-polaroid .gallery-item:nth-child(even){transform:rotate(2.4deg);margin-top:40px}

/* 09 Botanical Flow */
.layout-botanical .inv-section{border-radius:50% 0 50% 0}.layout-botanical .hero-inner{border-radius:55% 45% 52% 48%/45% 58% 42% 55%}.layout-botanical .section-quote:before,.layout-botanical .section-couple:after{content:"";position:absolute;width:360px;height:480px;background:var(--theme-ornament) center/contain no-repeat;opacity:.24}.layout-botanical .section-quote:before{left:-100px;top:-90px}.layout-botanical .section-couple:after{right:-120px;bottom:-80px;transform:rotate(170deg)}.layout-botanical .person-card{border-radius:55% 18px 55% 18px}.layout-botanical .person-photo{border-radius:50% 50% 18% 18%}.layout-botanical .event-card{border-radius:70px 15px 70px 15px}.layout-botanical .gallery-item{border-radius:42% 12% 42% 12%}

/* 10 Royal Palace */
.layout-royal .hero-inner{border:2px solid var(--inv-accent);outline:10px double rgba(255,255,255,.7);outline-offset:12px;background:rgba(20,18,18,.58)}.layout-royal .hero-inv h1,.layout-royal .hero-inv .inv-kicker{color:#fff}.layout-royal .hero-inv h1 b{color:var(--inv-accent)}.layout-royal .section-heading:before{content:"♛";display:block;font-size:2rem;color:var(--inv-accent);margin-bottom:12px}.layout-royal .person-card,.layout-royal .event-card,.layout-royal .gift-card{border:2px solid var(--inv-accent);outline:1px solid var(--inv-primary);outline-offset:-10px}.layout-royal .person-photo{border-radius:50% 50% 8px 8px}.layout-royal .countdown div{border:1px solid var(--inv-accent)}.layout-royal .gallery-item{border:6px double var(--inv-accent)}

/* 11 Minimal Airy */
.layout-minimal .inv-shell{background-image:none}.layout-minimal .inv-section{padding-block:clamp(110px,13vw,200px)}.layout-minimal .hero-inv{background-image:linear-gradient(rgba(255,255,255,.15),rgba(255,255,255,.15)),var(--hero)}.layout-minimal .hero-inner{background:rgba(255,255,255,.93);border:0;border-radius:0;box-shadow:none;max-width:740px}.layout-minimal .inv-kicker{letter-spacing:.32em}.layout-minimal .section-heading{margin-bottom:85px}.layout-minimal .person-card,.layout-minimal .event-card,.layout-minimal .gift-card,.layout-minimal .closing-card{background:transparent;border:0;border-radius:0;box-shadow:none;padding:15px}.layout-minimal .person-photo{border-radius:0;box-shadow:none}.layout-minimal .couple-grid{gap:90px}.layout-minimal .event-card{border-top:1px solid color-mix(in srgb,var(--inv-primary) 30%,transparent)}.layout-minimal .gallery{gap:28px}.layout-minimal .gallery-item{border-radius:0;box-shadow:none}.layout-minimal .section-countdown{background:transparent;color:#322a28}.layout-minimal .section-countdown h2,.layout-minimal .section-countdown .inv-kicker,.layout-minimal .countdown strong{color:var(--inv-primary)}.layout-minimal .countdown div{background:transparent;border:1px solid color-mix(in srgb,var(--inv-primary) 25%,transparent)}

/* 12 Mosaic Gallery */
.layout-mosaic .hero-inner{width:min(560px,45vw);margin-left:auto;margin-right:6vw}.layout-mosaic .section-gallery{padding-inline:0}.layout-mosaic .section-gallery .section-inner{width:100%;max-width:none}.layout-mosaic .section-gallery .section-heading{padding-inline:24px}.layout-mosaic .gallery{grid-template-columns:repeat(16,1fr);grid-auto-rows:70px;gap:6px}.layout-mosaic .gallery-item,.layout-mosaic .gallery-item:nth-child(n){grid-column:span 4;grid-row:span 4;border-radius:0}.layout-mosaic .gallery-item:nth-child(1){grid-column:span 8;grid-row:span 8}.layout-mosaic .gallery-item:nth-child(2),.layout-mosaic .gallery-item:nth-child(3){grid-column:span 4;grid-row:span 4}.layout-mosaic .gallery-item:nth-child(5n){grid-column:span 8}.layout-mosaic .couple-grid{grid-template-columns:repeat(12,1fr)}.layout-mosaic .person-card{grid-column:span 7}.layout-mosaic .person-groom{grid-column:6/span 7;margin-top:-100px}.layout-mosaic .amp{position:absolute;left:50%;z-index:3}.layout-mosaic .event-card{min-height:380px;align-content:end}

/* 13 Ribbon Celebration */
.layout-ribbon .hero-inner{border-radius:10px;transform:rotate(-1deg)}.layout-ribbon .hero-inner:before,.layout-ribbon .section-heading:before{content:"";display:block;width:130px;height:28px;background:var(--inv-accent);transform:skewX(-24deg);margin:0 auto 20px}.layout-ribbon .inv-section:nth-of-type(even):before{content:"";position:absolute;left:-5%;right:-5%;top:40%;height:120px;background:color-mix(in srgb,var(--inv-accent) 18%,transparent);transform:rotate(-3deg);z-index:-1}.layout-ribbon .person-card{border-radius:8px 70px 8px 70px}.layout-ribbon .event-card{border-radius:8px;clip-path:polygon(0 0,96% 0,100% 18%,100% 100%,4% 100%,0 82%)}.layout-ribbon .gallery-item{clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);border-radius:0}

/* 14 Glassmorphism */
.layout-glass .inv-shell{background-attachment:fixed}.layout-glass .inv-section:not(.hero-inv):not(.section-countdown):not(.section-rsvp){background:transparent}.layout-glass .inv-section>.section-inner{padding:clamp(28px,5vw,70px);background:rgba(255,255,255,.34);backdrop-filter:blur(18px) saturate(1.2);border:1px solid rgba(255,255,255,.6);border-radius:var(--section-radius);box-shadow:var(--shadow-soft)}.layout-glass .hero-inner,.layout-glass .person-card,.layout-glass .event-card,.layout-glass .gift-card,.layout-glass .rsvp-form,.layout-glass .closing-card{background:rgba(255,255,255,.45);backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.7)}.layout-glass .section-countdown,.layout-glass .section-rsvp{background:color-mix(in srgb,var(--inv-primary) 80%,transparent);backdrop-filter:blur(12px)}.layout-glass .gallery-item{box-shadow:0 18px 50px rgba(30,20,18,.15)}

/* 15 Timeline Journey */
.layout-timeline .hero-inner{width:min(520px,80vw);margin-left:8vw;text-align:left}.layout-timeline .couple-grid{grid-template-columns:1fr;max-width:850px;margin:auto}.layout-timeline .person-card{grid-template-columns:240px 1fr}.layout-timeline .person-groom{grid-template-columns:1fr 240px;margin-left:120px}.layout-timeline .amp{position:absolute;left:70px;top:50%;writing-mode:vertical-rl}.layout-timeline .event-grid{position:relative;display:block;max-width:900px;margin:auto;padding-left:100px}.layout-timeline .event-grid:before{content:"";position:absolute;left:40px;top:0;bottom:0;width:3px;background:var(--inv-accent)}.layout-timeline .event-card{margin-bottom:35px}.layout-timeline .event-card:before{content:"";position:absolute;left:-72px;top:50px;width:22px;height:22px;border-radius:50%;background:var(--inv-primary);border:5px solid var(--inv-secondary)}.layout-timeline .story-list:before{left:80px}.layout-timeline .story-item{grid-template-columns:300px 1fr;padding-left:130px}.layout-timeline .story-item:nth-child(even) .story-media{order:0}.layout-timeline .story-item:nth-child(even) .story-copy{text-align:left}.layout-timeline .story-dot{left:80px}

/* 16 Celestial Night */
.layout-celestial{background:#0b1023;color:#eef2ff}.layout-celestial .inv-shell{background-color:#0b1023;background-blend-mode:multiply}.layout-celestial .inv-shell:before,.layout-celestial .inv-shell:after{filter:brightness(1.5);opacity:.35}.layout-celestial .hero-inner{border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;background:rgba(10,16,38,.65);border:1px solid color-mix(in srgb,var(--inv-accent) 70%,white)}.layout-celestial .hero-inv h1,.layout-celestial .hero-inv .inv-kicker{color:#fff}.layout-celestial .inv-section:not(.hero-inv):not(.section-countdown):not(.section-rsvp){background:rgba(8,13,31,.88);color:#eef2ff}.layout-celestial .inv-section h2,.layout-celestial .inv-section h3,.layout-celestial .inv-kicker{color:#fff}.layout-celestial .section-heading:before{content:"☾ ✦";display:block;color:var(--inv-accent);font-size:2rem}.layout-celestial .person-card,.layout-celestial .event-card,.layout-celestial .gift-card,.layout-celestial .closing-card{background:rgba(18,26,58,.86);border-color:rgba(255,255,255,.14)}.layout-celestial .person-photo{border-radius:50%}.layout-celestial .event-card{border-radius:50px}.layout-celestial .gallery-item{border-radius:50% 50% 18px 18px}.layout-celestial .section-closing{background:#080c1d}.layout-celestial .inv-footer{background:#050713}

/* 17 Playful Party */
.layout-playful .hero-inner{border-radius:48px;transform:rotate(-1deg)}.layout-playful .hero-inv h1{font-weight:950}.layout-playful .date-pill{transform:rotate(2deg)}.layout-playful .inv-section h2{text-shadow:3px 3px 0 color-mix(in srgb,var(--inv-accent) 25%,transparent)}.layout-playful .person-card{grid-template-columns:1fr;border-radius:46px;text-align:center;transform:rotate(-1deg)}.layout-playful .person-groom{transform:rotate(1deg)}.layout-playful .person-groom .photo-wrap{order:0}.layout-playful .person-copy,.layout-playful .person-groom .person-copy{text-align:center}.layout-playful .person-photo{border-radius:50%}.layout-playful .countdown div:nth-child(odd){transform:translateY(-12px) rotate(-2deg)}.layout-playful .countdown div:nth-child(even){transform:translateY(12px) rotate(2deg)}.layout-playful .event-card{border-radius:42px;transform:rotate(-.5deg)}.layout-playful .event-card:nth-child(even){transform:rotate(.7deg)}.layout-playful .gallery-item{border-radius:35px}.layout-playful .gift-card{border-radius:50% 20% 50% 20%}

/* 18 Geometric Modern */
.layout-geometric .hero-stage{place-items:end start;padding:6vw}.layout-geometric .hero-inner{width:min(720px,62vw);border-radius:0;clip-path:polygon(0 0,88% 0,100% 20%,100% 100%,12% 100%,0 80%);text-align:left}.layout-geometric .section-heading{text-align:left;margin-left:0}.layout-geometric .section-heading:after{content:"";display:block;width:180px;height:12px;background:var(--inv-accent);margin-top:22px}.layout-geometric .couple-grid{grid-template-columns:1fr 1fr;gap:20px}.layout-geometric .person-card{grid-template-columns:1fr;border-radius:0;clip-path:polygon(0 0,90% 0,100% 10%,100% 100%,10% 100%,0 90%)}.layout-geometric .person-groom .photo-wrap{order:0}.layout-geometric .person-copy,.layout-geometric .person-groom .person-copy{text-align:left}.layout-geometric .amp{display:none}.layout-geometric .event-card,.layout-geometric .gift-card,.layout-geometric .rsvp-form,.layout-geometric .closing-card{border-radius:0;clip-path:polygon(0 0,96% 0,100% 12%,100% 100%,4% 100%,0 88%)}.layout-geometric .gallery{gap:0}.layout-geometric .gallery-item{border-radius:0;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}

/* 19 Classic Formal */
.layout-classic .hero-inner{max-width:780px;border-radius:0;border:1px solid var(--inv-accent);outline:1px solid rgba(255,255,255,.75);outline-offset:14px}.layout-classic .hero-inv h1{letter-spacing:.01em}.layout-classic .section-inner{max-width:1060px}.layout-classic .section-heading:before,.layout-classic .section-heading:after{content:"";display:block;width:140px;height:1px;background:var(--inv-accent);margin:18px auto}.layout-classic .person-card{grid-template-columns:1fr;text-align:center;background:transparent;border:0;box-shadow:none}.layout-classic .person-groom .photo-wrap{order:0}.layout-classic .person-copy,.layout-classic .person-groom .person-copy{text-align:center}.layout-classic .person-photo{border-radius:50%;aspect-ratio:1;max-width:340px;margin:auto;border:12px double white}.layout-classic .event-card{text-align:center;display:block;border-radius:0;border-block:1px solid var(--inv-accent);background:transparent;box-shadow:none}.layout-classic .event-index{display:none}.layout-classic .event-actions{justify-content:center}.layout-classic .gallery-item{border-radius:0;border:10px solid #fff}.layout-classic .gift-card{border-radius:0}

/* 20 Immersive Fullscreen */
.layout-immersive .inv-section{min-height:100svh;display:grid;align-items:center}.layout-immersive .hero-inner{width:min(1100px,88vw);background:transparent;border:0;box-shadow:none}.layout-immersive .hero-inv h1,.layout-immersive .hero-inv .inv-kicker{color:#fff;text-shadow:0 5px 30px rgba(0,0,0,.45)}.layout-immersive .hero-inv h1{font-size:clamp(4rem,11vw,11rem)}.layout-immersive .date-pill{background:#fff;color:var(--inv-primary)}.layout-immersive .section-quote{background:linear-gradient(135deg,var(--inv-primary),color-mix(in srgb,var(--inv-primary) 70%,#111));color:#fff}.layout-immersive .section-quote .inv-kicker{color:#fff}.layout-immersive .section-couple{background:linear-gradient(rgba(255,255,255,.72),rgba(255,255,255,.72)),var(--theme-bg) center/cover fixed}.layout-immersive .person-card{min-height:65vh}.layout-immersive .section-events{background:linear-gradient(rgba(20,16,15,.78),rgba(20,16,15,.78)),var(--theme-bg) center/cover fixed;color:#fff}.layout-immersive .section-events h2,.layout-immersive .section-events h3,.layout-immersive .section-events .inv-kicker{color:#fff}.layout-immersive .event-card{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}.layout-immersive .section-gallery{padding-inline:0}.layout-immersive .section-gallery .section-inner{width:100%;max-width:none}.layout-immersive .gallery{gap:2px}.layout-immersive .gallery-item{border-radius:0}.layout-immersive .section-closing{background:linear-gradient(rgba(0,0,0,.62),rgba(0,0,0,.62)),var(--theme-bg) center/cover;color:#fff}.layout-immersive .section-closing h2,.layout-immersive .section-closing h3{color:#fff}.layout-immersive .closing-card{background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.22)}

/* Category personality details */
.theme-proposal .hero-inner:after{content:"◇";display:block;color:var(--inv-accent);font-size:2.2rem;margin-top:16px}.theme-birthday .hero-inner,.theme-celebration .hero-inner{font-weight:700}.theme-birthday .inv-kicker:before{content:"✦ ";color:var(--inv-accent)}.theme-aqiqah .inv-kicker:before,.theme-khitan .inv-kicker:before{content:"☾ ";color:var(--inv-accent)}.theme-aqiqah .section-heading:after,.theme-khitan .section-heading:after{content:"☾";display:block;color:var(--inv-accent);font-size:1.8rem;margin-top:16px}.category-acara-lainnya .date-pill{border-radius:8px}

@media(max-width:980px){
  .has-parallax .hero-inv,.layout-glass .inv-shell,.layout-immersive .section-couple,.layout-immersive .section-events{background-attachment:scroll}
  .couple-grid{grid-template-columns:1fr;max-width:720px;margin:auto}.amp{margin:-10px 0}.person-card,.person-card.person-groom{grid-template-columns:minmax(150px,.65fr) 1fr}.person-groom .photo-wrap{order:0}.person-groom .person-copy{text-align:left}.story-list:before{left:30px}.story-item,.story-item:nth-child(even){grid-template-columns:1fr;padding-left:78px;gap:18px}.story-item:nth-child(even) .story-media{order:0}.story-item:nth-child(even) .story-copy{text-align:left}.story-dot{left:30px;top:130px}.rsvp-layout{grid-template-columns:1fr}.rsvp-intro{position:static;text-align:center;max-width:700px;margin:auto}.gallery{grid-auto-rows:70px}.layout-editorial .person-groom{margin-left:0}.layout-split .couple-grid,.layout-magazine .couple-grid,.layout-geometric .couple-grid{grid-template-columns:1fr}.layout-split .person-card:first-child,.layout-split .person-card:last-child{border-radius:var(--section-radius)}.layout-split .amp{position:relative;left:auto;transform:none;margin:-24px auto;width:75px;height:75px}.layout-magazine .hero-stage{display:block;padding:0}.layout-magazine .hero-inner{margin-left:auto;width:min(620px,72vw);min-height:100svh}.layout-mosaic .person-card,.layout-mosaic .person-groom{grid-column:1/-1;margin:0}.layout-timeline .person-groom{margin-left:0}.layout-timeline .amp{position:relative;left:auto;top:auto;writing-mode:initial}.layout-immersive .person-card{min-height:auto}
}
@media(max-width:680px){
  .inv-section{padding:72px 18px}.section-inner{width:min(100%,calc(100vw - 36px))}.section-heading{margin-bottom:36px}.inv-section h2{font-size:clamp(2rem,10vw,3.2rem)}.inv-cover{padding:16px}.cover-card{padding:34px 22px}.cover-decoration{width:190px;height:250px}.hero-stage{padding:72px 18px}.hero-inner{width:100%;padding:38px 20px}.hero-inv h1{font-size:clamp(2.75rem,15vw,4.6rem)}.scroll-cue{bottom:18px}.person-card,.person-card.person-groom{grid-template-columns:1fr;text-align:center}.person-copy,.person-groom .person-copy{text-align:center}.person-photo,.person-placeholder{max-width:340px;margin:auto}.countdown{grid-template-columns:repeat(2,1fr)}.event-card{grid-template-columns:1fr}.event-index{font-size:2rem}.event-actions{grid-column:auto}.story-item,.story-item:nth-child(even){padding-left:58px}.story-list:before,.story-dot{left:16px}.gallery{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:8px}.gallery-item,.gallery-item:nth-child(n){grid-column:auto;grid-row:auto;border-radius:16px}.gallery-item:nth-child(1){grid-column:1/-1;height:280px}.field-row{grid-template-columns:1fr}.inv-nav a{width:37px;height:37px}.inv-nav{bottom:max(8px,env(safe-area-inset-bottom))}.music-btn{width:44px;height:44px}.layout-arch .hero-inner{border-radius:180px 180px 28px 28px;padding-top:72px}.layout-editorial .hero-stage{padding:18px;place-items:end start}.layout-editorial .hero-inner,.layout-split .hero-inner,.layout-mosaic .hero-inner,.layout-timeline .hero-inner{width:92vw;margin:0;text-align:left;border-radius:12px;padding:32px 22px}.layout-editorial .event-card{grid-template-columns:1fr}.layout-editorial .gallery,.layout-polaroid .gallery{display:grid;grid-template-columns:1fr 1fr}.layout-editorial .gallery-item:nth-child(n),.layout-polaroid .gallery-item:nth-child(n){width:auto;height:auto;aspect-ratio:3/4;margin:0;transform:none}.layout-frame .inv-section:not(.hero-inv):not(.section-countdown):not(.section-rsvp){margin:8px}.layout-split .event-card:nth-child(even){transform:none}.layout-storybook .inv-section{border-radius:0}.layout-cinematic .hero-inner{padding-left:24px}.layout-magazine .hero-inner{width:100%;min-height:auto;margin-top:auto;padding:50px 22px}.layout-magazine .section-quote .section-inner{grid-template-columns:1fr}.layout-magazine .quote-mark{font-size:8rem}.layout-polaroid .gallery-item{border-width:8px;border-bottom-width:30px}.layout-botanical .inv-section{border-radius:0}.layout-glass .inv-section>.section-inner{padding:24px 18px}.layout-timeline .event-grid{padding-left:40px}.layout-timeline .event-grid:before{left:12px}.layout-timeline .event-card:before{left:-39px}.layout-timeline .story-item{grid-template-columns:1fr;padding-left:58px}.layout-timeline .story-list:before,.layout-timeline .story-dot{left:16px}.layout-celestial .hero-inner{aspect-ratio:auto;border-radius:50% 50% 24px 24px}.layout-geometric .hero-inner{width:95vw;clip-path:none}.layout-geometric .person-card,.layout-geometric .event-card,.layout-geometric .gift-card,.layout-geometric .rsvp-form,.layout-geometric .closing-card{clip-path:none}.layout-immersive .inv-section{min-height:auto}.layout-immersive .hero-inv{min-height:100svh}.layout-immersive .hero-inner{width:100%}.layout-immersive .hero-inv h1{font-size:clamp(3.4rem,18vw,6rem)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-enabled [data-reveal]{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}.cover-card,.scroll-cue span,.music-btn{animation:none!important}}

/* v1.3 — premium closing section, themed icon navigation, and public preview */
.preview-toolbar{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:1300;width:min(760px,calc(100% - 24px));min-height:48px;padding:8px 10px 8px 16px;border:1px solid rgba(255,255,255,.58);border-radius:18px;background:rgba(24,20,19,.78);backdrop-filter:blur(18px) saturate(1.25);box-shadow:0 16px 46px rgba(0,0,0,.25);color:#fff;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:.82rem}.preview-toolbar a{text-decoration:none;font-weight:850}.preview-toolbar span{text-align:center}.preview-toolbar .preview-use{justify-self:end;padding:8px 14px;border-radius:999px;background:var(--inv-accent);color:#201815}.is-theme-preview .music-btn{top:76px}.preview-form-note{padding:10px 12px;margin-bottom:16px;border-radius:12px;background:color-mix(in srgb,var(--inv-accent) 16%,white);color:#51443e;font-size:.82rem;font-weight:800}.inv-footer span{display:block;margin-top:6px;font-size:.72rem;opacity:.64}

.section-closing{min-height:100svh;padding-block:clamp(96px,11vw,170px);overflow:hidden;isolation:isolate;color:#342b28}.closing-photo{position:absolute;inset:0;z-index:-3;background:var(--closing-image) center/cover no-repeat;transform:scale(1.025)}.closing-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,color-mix(in srgb,var(--inv-secondary) 91%,transparent),color-mix(in srgb,var(--inv-secondary) 72%,transparent) 48%,color-mix(in srgb,var(--inv-secondary) 90%,transparent));backdrop-filter:blur(1.5px)}.closing-photo:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.15),transparent 48%),linear-gradient(to bottom,transparent 55%,color-mix(in srgb,var(--inv-primary) 11%,transparent))}.section-closing .section-inner{width:min(var(--content-width),calc(100vw - 48px));display:grid;place-items:center}.closing-card{position:relative;width:min(1080px,100%);max-width:none;padding:clamp(38px,6.5vw,92px);border-radius:calc(var(--section-radius) + 8px);background:rgba(255,255,255,calc(var(--card-opacity) - .04));backdrop-filter:blur(18px) saturate(1.12);border:1px solid rgba(255,255,255,.72);box-shadow:0 35px 110px rgba(37,23,20,.2);text-align:center;overflow:hidden}.closing-card:before,.closing-card:after{content:"";position:absolute;width:190px;height:190px;border:1px solid color-mix(in srgb,var(--inv-accent) 48%,transparent);border-radius:50%;pointer-events:none}.closing-card:before{left:-94px;top:-94px}.closing-card:after{right:-94px;bottom:-94px}.closing-symbol{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:16px;color:var(--inv-accent)}.closing-symbol span{width:min(80px,16vw);height:1px;background:linear-gradient(90deg,transparent,var(--inv-accent))}.closing-symbol span:last-child{transform:rotate(180deg)}.closing-symbol b{font:500 2rem var(--inv-heading)}.section-closing .inv-kicker{margin-bottom:6px;color:var(--inv-accent)}.section-closing h2{font-size:clamp(2.2rem,4.8vw,5.4rem);margin-bottom:22px;color:var(--inv-primary)}.closing-message{max-width:850px;margin:0 auto 30px!important;font-size:clamp(1rem,1.55vw,1.2rem)}.closing-divider{display:flex;justify-content:center;align-items:center;gap:14px;margin:28px auto;color:var(--inv-accent)}.closing-divider span{width:min(190px,27vw);height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--inv-accent) 75%,transparent))}.closing-divider span:last-child{transform:rotate(180deg)}.closing-divider i{font-style:normal}.closing-farewell{margin-bottom:6px!important;font-weight:750}.closing-names{font-size:clamp(2.8rem,7vw,7rem)!important;margin:5px auto 46px!important;letter-spacing:-.04em;color:var(--inv-primary)!important}.closing-names small{font-size:.46em;color:var(--inv-accent);font-weight:500}.closing-family-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,5vw,70px);max-width:900px;margin:0 auto}.closing-family{padding:18px 24px;position:relative}.closing-family:first-child:after{content:"";position:absolute;right:calc(clamp(22px,5vw,70px) / -2);top:12%;bottom:12%;width:1px;background:linear-gradient(transparent,color-mix(in srgb,var(--inv-accent) 52%,transparent),transparent)}.closing-family>span{text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:900;color:var(--inv-primary)}.closing-family h4{font:italic 500 clamp(1.35rem,2.4vw,2.15rem) var(--inv-heading);margin:8px 0 16px;color:var(--inv-accent)}.closing-family p{margin:0!important}.invited-by{max-width:780px;margin:42px auto 0;padding-top:30px;border-top:1px solid color-mix(in srgb,var(--inv-accent) 38%,transparent)}.invited-by h4{font:700 1.05rem var(--inv-body);margin:0 0 10px;color:var(--inv-primary)}.invited-by ul{list-style:none;padding:0;margin:0;display:grid;gap:3px}.invited-by li:before{content:"✦";font-size:.58em;color:var(--inv-accent);margin-right:9px;vertical-align:middle}

/* Closing presentation changes with each template family. */
.layout-editorial .section-closing .section-inner,.layout-magazine .section-closing .section-inner{place-items:center end}.layout-editorial .closing-card,.layout-magazine .closing-card{width:min(860px,82vw);text-align:left}.layout-editorial .closing-symbol,.layout-editorial .closing-divider,.layout-magazine .closing-symbol,.layout-magazine .closing-divider{justify-content:flex-start}.layout-editorial .closing-message,.layout-magazine .closing-message{margin-left:0!important}.layout-editorial .closing-family-grid,.layout-magazine .closing-family-grid{margin-left:0}.layout-editorial .invited-by,.layout-magazine .invited-by{margin-left:0}.layout-frame .closing-card,.layout-classic .closing-card{border-radius:0;outline:1px solid color-mix(in srgb,var(--inv-accent) 60%,transparent);outline-offset:-18px}.layout-split .closing-card{display:grid;grid-template-columns:1fr 1fr;column-gap:54px;text-align:left}.layout-split .closing-symbol,.layout-split .closing-card>.inv-kicker,.layout-split .closing-card>h2,.layout-split .closing-message,.layout-split .closing-divider,.layout-split .closing-farewell,.layout-split .closing-names{grid-column:1}.layout-split .closing-family-grid,.layout-split .invited-by{grid-column:2}.layout-split .closing-family-grid{grid-template-columns:1fr}.layout-split .closing-family:first-child:after{display:none}.layout-storybook .closing-card{border-radius:28px 70px 28px 70px;box-shadow:16px 18px 0 color-mix(in srgb,var(--inv-primary) 15%,transparent),var(--shadow-soft)}.layout-cinematic .closing-photo:before,.layout-celestial .closing-photo:before,.layout-immersive .closing-photo:before{background:linear-gradient(90deg,rgba(5,5,5,.78),rgba(5,5,5,.52))}.layout-cinematic .closing-card,.layout-celestial .closing-card,.layout-immersive .closing-card{background:rgba(10,10,12,.48);border-color:rgba(255,255,255,.18);color:#f7f4ef}.layout-cinematic .section-closing h2,.layout-cinematic .closing-names,.layout-cinematic .closing-family>span,.layout-cinematic .invited-by h4,.layout-celestial .section-closing h2,.layout-celestial .closing-names,.layout-celestial .closing-family>span,.layout-celestial .invited-by h4,.layout-immersive .section-closing h2,.layout-immersive .closing-names,.layout-immersive .closing-family>span,.layout-immersive .invited-by h4{color:#fff!important}.layout-polaroid .closing-card{width:min(920px,92%);border:16px solid #fff;border-bottom-width:44px;border-radius:4px;transform:rotate(-.6deg);background:rgba(255,255,255,.92)}.layout-botanical .closing-card,.layout-arch .closing-card{border-radius:48% 48% 28px 28px;padding-top:clamp(72px,9vw,130px)}.layout-royal .closing-card{border:2px solid var(--inv-accent);outline:1px solid color-mix(in srgb,var(--inv-accent) 60%,transparent);outline-offset:-13px}.layout-minimal .closing-photo:before{background:rgba(255,255,255,.92)}.layout-minimal .closing-card{background:transparent;border:0;box-shadow:none}.layout-mosaic .closing-card{border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.92) 0 60%,color-mix(in srgb,var(--inv-primary) 12%,white) 60%)}.layout-ribbon .closing-card:before{width:100%;height:18px;left:0;right:0;top:0;border:0;border-radius:0;background:linear-gradient(90deg,var(--inv-primary),var(--inv-accent),var(--inv-primary))}.layout-glass .closing-card{background:rgba(255,255,255,.34);backdrop-filter:blur(28px) saturate(1.35)}.layout-timeline .closing-family-grid{position:relative}.layout-timeline .closing-family-grid:before{content:"";position:absolute;left:50%;top:-28px;width:12px;height:12px;border-radius:50%;background:var(--inv-accent);transform:translateX(-50%)}.layout-playful .closing-card{border-radius:64px 24px 64px 24px}.layout-playful .closing-symbol b{animation:closingPulse 2.2s ease-in-out infinite}.layout-geometric .closing-card{border-radius:0;clip-path:polygon(0 0,94% 0,100% 8%,100% 100%,6% 100%,0 92%)}@keyframes closingPulse{50%{transform:scale(1.2) rotate(8deg)}}

/* Original illustrated navigation dock. */
.inv-footer{padding-bottom:132px}.inv-nav{position:fixed;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:100;width:min(650px,calc(100% - 24px));display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:10px 12px;border-radius:26px;background:rgba(255,255,255,.9);backdrop-filter:blur(20px) saturate(1.25);border:1px solid rgba(255,255,255,.8);box-shadow:0 18px 52px rgba(42,25,21,.23)}.inv-nav a{width:auto;height:auto;min-width:0;min-height:62px;padding:5px 7px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--inv-primary);font-weight:900;transition:transform .24s ease,background .24s ease,color .24s ease}.inv-nav a:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--inv-primary) 8%,transparent);color:var(--inv-primary)}.inv-nav a.active{background:var(--inv-primary);color:#fff;transform:translateY(-4px);box-shadow:0 10px 24px color-mix(in srgb,var(--inv-primary) 28%,transparent)}.nav-icon{width:31px;height:31px;display:grid;place-items:center}.nav-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-label{font-size:.66rem;line-height:1;text-transform:none;letter-spacing:.015em}.layout-editorial .inv-nav,.layout-magazine .inv-nav,.layout-minimal .inv-nav,.layout-classic .inv-nav{border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(30,20,18,.16)}.layout-editorial .inv-nav a,.layout-magazine .inv-nav a,.layout-minimal .inv-nav a,.layout-classic .inv-nav a{border-radius:7px}.layout-cinematic .inv-nav,.layout-celestial .inv-nav,.layout-immersive .inv-nav,.layout-royal .inv-nav{background:rgba(11,12,16,.82);border-color:rgba(255,255,255,.14)}.layout-cinematic .inv-nav a,.layout-celestial .inv-nav a,.layout-immersive .inv-nav a,.layout-royal .inv-nav a{color:#fff}.layout-cinematic .inv-nav a.active,.layout-celestial .inv-nav a.active,.layout-immersive .inv-nav a.active,.layout-royal .inv-nav a.active{background:var(--inv-accent);color:#17120f}.layout-playful .inv-nav,.layout-ribbon .inv-nav{border-radius:38px;padding:8px;background:color-mix(in srgb,var(--inv-secondary) 90%,white)}.layout-playful .inv-nav a,.layout-ribbon .inv-nav a{border-radius:50% 50% 18px 18px}.layout-playful .inv-nav a:nth-child(even){transform:rotate(-2deg)}.layout-playful .inv-nav a:nth-child(odd){transform:rotate(2deg)}.layout-playful .inv-nav a.active{transform:translateY(-5px) rotate(0)}.layout-geometric .inv-nav,.layout-split .inv-nav,.layout-mosaic .inv-nav{border-radius:8px;clip-path:polygon(2% 0,98% 0,100% 22%,100% 100%,0 100%,0 22%)}.layout-glass .inv-nav{background:rgba(255,255,255,.35);border-color:rgba(255,255,255,.55)}.layout-botanical .inv-nav,.layout-arch .inv-nav,.layout-storybook .inv-nav{border-radius:34px 18px 34px 18px}

@media(max-width:980px){.layout-split .closing-card{display:block;text-align:center}.layout-split .closing-symbol,.layout-split .closing-divider{justify-content:center}.layout-split .closing-message{margin-inline:auto!important}.layout-split .closing-family-grid{grid-template-columns:1fr 1fr}.layout-split .closing-family:first-child:after{display:block}.layout-editorial .section-closing .section-inner,.layout-magazine .section-closing .section-inner{place-items:center}.layout-editorial .closing-card,.layout-magazine .closing-card{width:min(900px,100%)}.layout-editorial .closing-symbol,.layout-editorial .closing-divider,.layout-magazine .closing-symbol,.layout-magazine .closing-divider{justify-content:center}.layout-editorial .closing-card,.layout-magazine .closing-card{text-align:center}.layout-editorial .closing-message,.layout-magazine .closing-message,.layout-editorial .closing-family-grid,.layout-magazine .closing-family-grid,.layout-editorial .invited-by,.layout-magazine .invited-by{margin-inline:auto!important}}
@media(max-width:680px){.preview-toolbar{grid-template-columns:1fr auto;padding-left:12px}.preview-toolbar span{display:none}.is-theme-preview .music-btn{top:70px}.section-closing{padding:82px 16px}.section-closing .section-inner{width:100%}.closing-card{padding:38px 20px;border-radius:28px}.closing-card:before,.closing-card:after{width:110px;height:110px}.closing-names{margin-bottom:30px!important}.closing-family-grid,.layout-split .closing-family-grid{grid-template-columns:1fr;gap:10px}.closing-family{padding:14px 8px}.closing-family:first-child:after,.layout-split .closing-family:first-child:after{display:none}.closing-family:first-child{padding-bottom:24px;border-bottom:1px solid color-mix(in srgb,var(--inv-accent) 34%,transparent)}.invited-by{margin-top:28px}.layout-editorial .closing-card,.layout-magazine .closing-card,.layout-polaroid .closing-card{width:100%;transform:none}.layout-botanical .closing-card,.layout-arch .closing-card{border-radius:42% 42% 24px 24px;padding-top:66px}.layout-geometric .closing-card{clip-path:none}.inv-footer{padding-bottom:116px}.inv-nav{width:calc(100% - 16px);bottom:max(8px,env(safe-area-inset-bottom));padding:7px 6px;border-radius:22px;gap:1px}.inv-nav a{min-height:57px;padding:4px 2px;border-radius:15px}.nav-icon{width:27px;height:27px}.nav-label{font-size:.59rem}.layout-playful .inv-nav a,.layout-ribbon .inv-nav a{border-radius:18px}.layout-geometric .inv-nav,.layout-split .inv-nav,.layout-mosaic .inv-nav{clip-path:none;border-radius:14px}}

/* v1.4 category-aware profiles and preview parity */
.starter-preview-notice{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:130;width:min(760px,calc(100% - 24px));padding:11px 16px;border-radius:14px;background:#fff7dc;color:#6b4e00;border:1px solid #efd27b;box-shadow:0 12px 34px rgba(40,28,8,.16);font:600 .82rem/1.45 var(--inv-body);text-align:center}.is-theme-preview .starter-preview-notice{display:none}.cover-highlight,.hero-highlight,.closing-highlight{margin:12px 0 0;color:var(--inv-accent);font-family:var(--inv-heading);font-size:clamp(1rem,2vw,1.5rem);font-weight:700;letter-spacing:.05em}.single-hero-title{max-width:1000px}.single-profile-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(24px,5vw,70px);align-items:stretch;max-width:1180px;margin:auto}.single-person-card{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr)}.profile-highlight{display:block;margin:8px 0 12px;color:var(--inv-accent);font:700 clamp(1rem,2vw,1.35rem) var(--inv-heading)}.profile-note-card{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,52px);border-radius:var(--section-radius);background:color-mix(in srgb,var(--inv-primary) 92%,#111);color:#fff;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.profile-note-card:after{content:"";position:absolute;inset:auto -50px -70px auto;width:190px;height:190px;border-radius:50%;background:var(--theme-ornament) center/cover;opacity:calc(var(--pattern-opacity) * .5)}.profile-note-card>span{font-size:2rem;color:var(--inv-accent)}.profile-note-card h3{position:relative;z-index:1;color:#fff;font-size:clamp(1.25rem,2.8vw,2.1rem)}.profile-note-card p{position:relative;z-index:1;font-size:1.02rem;line-height:1.8}.closing-family-single{grid-template-columns:minmax(260px,620px);justify-content:center}.closing-family-single .closing-family:first-child:after{display:none}.profile-mode-single .couple-grid,.profile-mode-family .couple-grid,.profile-mode-organizer .couple-grid{max-width:1100px;margin:auto}.profile-mode-single .section-couple,.profile-mode-family .section-couple,.profile-mode-organizer .section-couple{background:color-mix(in srgb,var(--inv-secondary) 82%,white)}
.layout-arch .single-profile-layout,.layout-botanical .single-profile-layout{max-width:1000px}.layout-arch .single-person-card,.layout-botanical .single-person-card{grid-template-columns:1fr;text-align:center}.layout-arch .single-person-card .person-copy,.layout-botanical .single-person-card .person-copy{text-align:center}.layout-editorial .single-profile-layout,.layout-magazine .single-profile-layout{grid-template-columns:1.35fr .65fr}.layout-minimal .profile-note-card{background:transparent;color:var(--inv-primary);border:1px solid color-mix(in srgb,var(--inv-primary) 18%,transparent);box-shadow:none}.layout-minimal .profile-note-card h3{color:var(--inv-primary)}.layout-cinematic .profile-note-card,.layout-celestial .profile-note-card,.layout-immersive .profile-note-card{background:rgba(8,8,10,.72);backdrop-filter:blur(18px)}
@media(max-width:900px){.single-profile-layout{grid-template-columns:1fr}.single-person-card{grid-template-columns:minmax(170px,.75fr) minmax(200px,1fr)}.layout-editorial .single-profile-layout,.layout-magazine .single-profile-layout{grid-template-columns:1fr}}
@media(max-width:620px){.starter-preview-notice{top:6px;font-size:.72rem;padding:8px 10px}.single-person-card{grid-template-columns:1fr;text-align:center}.single-person-card .person-copy{text-align:center}.profile-note-card{text-align:center}.cover-highlight,.hero-highlight{font-size:1rem}.closing-family-single{grid-template-columns:1fr}}
