@import url('./fonts.css');
:root{--wine:#781d29;--wine-dark:#51121c;--ink:#312b2a;--paper:#fffcf7;--muted:#786b66;--line:#decec3;--gold:#c3a077;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes',cursive;--sans:'Be Vietnam Pro',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.8;color:var(--ink);font-weight:300}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}figure,p{margin:0}h1,h2,h3,h4{font-weight:400;margin:0;line-height:1.2}h2{font-family:var(--serif);font-size:clamp(42px,4.8vw,66px);color:var(--wine)}h3{font-family:var(--serif);font-size:32px}h4{font-family:var(--serif);font-size:27px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.script{font-family:var(--script);font-weight:400}.eyebrow{display:block;font-size:12px;font-weight:500;letter-spacing:2.6px;line-height:1.7}.wrap{width:min(1100px,calc(100% - 80px));margin-inline:auto}.section{padding-block:100px}.section-head{text-align:center;margin:0 auto 54px;max-width:650px}.section-head .eyebrow{color:var(--wine);margin-bottom:16px}.section-head p{margin-top:20px;color:var(--muted)}.button{min-height:48px;padding:12px 25px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:400;letter-spacing:.2px;transition:background .3s,transform .3s,color .3s}.button:hover{transform:translateY(-3px)}.button.primary{background:var(--wine);color:var(--paper)}.button.primary:hover{background:var(--wine-dark)}.button.light{background:var(--paper);color:var(--wine)}.button.outline{border-color:var(--line);background:transparent;color:var(--wine)}.button.outline:hover{background:var(--wine);border-color:var(--wine);color:white}.text-button{border:0;border-bottom:1px solid currentColor;background:transparent;font-size:14px;padding:4px 0;color:var(--wine)}.topbar{height:80px;padding:0 6%;display:flex;justify-content:space-between;align-items:center;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #781d2912;transition:box-shadow .3s}.topbar.scrolled{box-shadow:0 3px 24px #351e1a0b}.brand{font-family:var(--serif);font-size:31px;color:var(--wine);display:flex;align-items:center;gap:18px}.brand span{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:2px;border-left:1px solid var(--line);padding-left:18px}.topbar nav{display:flex;gap:30px;align-items:center;font-size:13px;font-weight:400}.nav-rsvp{border:1px solid var(--wine);padding:8px 16px;color:var(--wine)}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px}.skip-link:focus{top:10px}
/* MẪU 46 · KHUNG VÒM, BỐ CỤC BIÊN TẬP */
.hero{position:relative;overflow:hidden}.hero-arch{max-width:1440px;margin:0 auto;min-height:760px;background:var(--wine);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:5%;padding:70px 8% 80px}.hero-arch:before{content:'';position:absolute;inset:24px;border:1px solid #ffffff2b;pointer-events:none}.hero-arch .hero-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;z-index:1}.save-date{font-size:52px;margin:22px 0 6px;color:#e9cbb2}.names{font-family:var(--serif);font-weight:400;font-size:clamp(55px,5.5vw,85px);line-height:1.05;display:flex;flex-direction:column}.names i{font-family:var(--script);font-size:.62em;font-weight:400;margin:5px 0}.hero-date{margin:28px 0 20px;font-family:var(--serif);font-size:28px;letter-spacing:4px}.hero-caption{color:#e0c9c6;line-height:1.7;font-size:14px;margin-bottom:28px}.arch-photo{align-self:center;position:relative;height:595px;max-width:440px;width:100%;border-radius:240px 240px 0 0;z-index:1;box-shadow:18px 18px 0 #5e1720}.arch-photo img{border-radius:inherit}.arch-photo:before{content:'';position:absolute;inset:-15px;border:1px solid #d6b69b88;border-radius:250px 250px 0 0;pointer-events:none}.arch-photo figcaption{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:10px;font-weight:400;letter-spacing:2px;text-shadow:0 1px 6px black}.hero-edge{position:absolute;right:17px;top:50%;writing-mode:vertical-rl;font-size:10px;letter-spacing:3px;color:#dcc3bb}.families{display:grid;grid-template-columns:1fr 70px 1fr;text-align:center;align-items:center;margin:35px auto 55px;max-width:900px}.family .eyebrow{color:var(--wine);margin-bottom:18px}.family p{font-size:15px;line-height:1.9}.family-address{font-size:13px;color:var(--muted)}.family h3{font-size:38px;color:var(--wine);margin-top:20px}.family-symbol{color:var(--wine);font-size:38px}.invitation-strip{display:flex;gap:20px;max-width:730px;margin:0 auto}.invitation-strip div{width:33.333%;height:270px}.invitation-strip div:nth-child(2){margin-top:32px}.invitation-note{font-size:37px;text-align:center;color:var(--wine);margin-top:62px}.events-section{background:#f5eee7}.events-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.event-card{padding:50px 28px 40px;border:1px solid var(--line);background:var(--paper);position:relative;text-align:center}.event-number{position:absolute;top:12px;left:18px;font-family:var(--serif);font-size:25px;color:#b9a296}.event-card .eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:15px;color:var(--muted)}.event-card h3{color:var(--wine);font-size:34px}.event-date{display:flex;justify-content:center;align-items:center;gap:20px;margin:26px 0}.event-date strong{font-family:var(--serif);font-size:47px;font-weight:400;line-height:1}.event-date span{border-left:1px solid var(--line);padding-left:20px;font-size:14px;text-align:left}.event-card h4{margin-bottom:10px}.event-card p{font-size:14px;color:var(--muted);min-height:50px;margin-bottom:15px}.calendar-countdown{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:60px auto 0;align-items:center}.calendar{max-width:430px;width:100%;margin:auto;text-align:center;background:var(--paper);padding:25px 30px 28px}.calendar-title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;color:var(--wine)}.calendar-title .script{font-size:35px}.calendar-title>span:last-child{font-family:var(--serif);font-size:26px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px 4px;margin:22px 0}.calendar-grid>*{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:14px}.calendar-grid b{font-size:12px;font-weight:500;color:var(--muted)}.calendar-grid .wedding-day{background:var(--wine);color:var(--paper);border-radius:50%;box-shadow:0 0 0 4px #781d2910}.calendar>p{font-size:12px;color:var(--muted);margin-bottom:12px}.countdown-panel{text-align:center}.countdown-panel>.eyebrow{font-size:10px;color:var(--wine)}.countdown-panel h3{font-size:50px;margin:20px 0 30px;color:var(--wine)}.countdown{display:flex;gap:10px;justify-content:center}.countdown>div{flex:1;max-width:100px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 5px}.countdown strong{font-family:var(--serif);font-size:46px;font-weight:400;line-height:1.1;display:block;color:var(--wine)}.countdown span{font-size:11px;letter-spacing:1px}.countdown-note{font-size:13px;color:var(--muted);max-width:300px;margin:26px auto 16px}.mini-ornament{font-size:28px;color:var(--gold)}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.story-photo{height:590px;position:relative}.story-photo img{border-radius:230px 230px 0 0}.story-photo figcaption{position:absolute;bottom:25px;right:-25px;background:var(--paper);color:var(--wine);font-size:42px;padding:15px 25px}.story-item{padding:0 0 35px 36px;position:relative;border-left:1px solid var(--line)}.story-item:last-child{padding-bottom:0}.story-dot{position:absolute;left:-16px;top:0;background:var(--paper);border:1px solid var(--line);width:32px;height:32px;text-align:center;font-family:var(--serif);font-size:16px}.story-item .eyebrow{font-size:11px;color:var(--wine);margin-bottom:10px}.story-item h3{font-size:30px;margin-bottom:15px}.story-item p{font-size:14px;color:var(--muted)}.vow-section{min-height:520px;position:relative;display:grid;place-items:center;isolation:isolate;color:white;overflow:hidden}.vow-image{position:absolute;inset:0;z-index:-2}.vow-image img{object-position:50% 42%}.vow-section:after{content:'';position:absolute;inset:0;background:#29141680;z-index:-1}.vow-copy{max-width:760px;text-align:center;padding:65px 30px}.vow-copy .script{font-size:clamp(38px,5vw,61px);line-height:1.5;margin:25px 0}.vow-copy>span:last-child{font-size:11px;letter-spacing:3px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}.timeline article{position:relative}.timeline article:after{content:'';position:absolute;top:35px;left:calc(50% + 35px);width:calc(100% - 40px);height:1px;background:var(--line)}.timeline article:last-child:after{display:none}.timeline-symbol{font-size:38px;line-height:70px;color:var(--wine);display:block;margin-bottom:20px}.timeline strong{display:block;font-size:14px;color:var(--wine);font-weight:400;margin-bottom:15px}.timeline h3{font-size:28px;margin-bottom:12px}.timeline p{font-size:13px;color:var(--muted)}.dresscode{text-align:center;margin:65px auto 0;padding-top:35px;border-top:1px solid var(--line);max-width:600px}.dresscode>div{display:flex;justify-content:center;gap:12px;margin:18px 0}.dresscode>div span{width:25px;height:25px;border-radius:50%;border:1px solid #0002}.dresscode p{font-size:13px;color:var(--muted)}.album-section{background:#f5eee7}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;grid-auto-rows:310px}.gallery-item{padding:0;border:0;position:relative;overflow:hidden;background:#decfc7}.gallery-item:nth-child(1),.gallery-item:nth-child(5){grid-row:span 2}.gallery-item img{transition:transform 1s var(--ease)}.gallery-item:hover img{transform:scale(1.05)}.gallery-item span{position:absolute;bottom:15px;right:15px;width:36px;height:36px;border-radius:50%;background:#ffffffdb;color:var(--wine);display:grid;place-items:center;font-size:23px}.rsvp-section{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.rsvp-image{height:800px;position:relative;align-self:stretch;min-height:100%}.rsvp-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#1d151cc9)}.rsvp-image>div{position:absolute;bottom:45px;left:40px;color:white;z-index:1}.rsvp-image .script{font-size:65px;line-height:1.15;margin-top:20px}.rsvp-content>.eyebrow{font-size:10px;color:var(--wine);margin-bottom:12px}.rsvp-content h2{font-size:54px}.rsvp-content>p{font-size:14px;color:var(--muted);margin:20px 0 28px}form label,form legend{font-size:13px;font-weight:400}form>label{display:block;margin-bottom:17px}input:not([type=radio]),textarea,select{display:block;width:100%;background:transparent;border:1px solid var(--line);border-radius:0;min-height:46px;padding:10px 12px;font-size:14px;color:var(--ink);margin-top:6px;max-width:100%}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#998d84;font-weight:300}fieldset{padding:0;border:0;margin:0 0 17px}legend{margin-bottom:8px}.radio{display:flex;gap:10px;align-items:center;min-height:32px;font-weight:300}input[type=radio]{accent-color:var(--wine);width:16px;height:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:17px}select{background:var(--paper);padding-right:20px}select:disabled{opacity:.4}form .button{width:100%}button:disabled{cursor:wait;opacity:.6}.form-note{font-size:11px!important;line-height:1.7;margin:12px 0;color:var(--muted)}#form-status{font-size:13px;color:var(--wine);font-weight:400}.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.gift-section{text-align:center;background:var(--wine);color:var(--paper);padding-inline:24px}.gift-section .section-head{margin-bottom:30px;max-width:540px}.gift-section h2,.gift-section .eyebrow,.gift-section p{color:inherit}.gift-section p{opacity:.8}.gift-mark{display:block;font-family:var(--serif);font-size:80px;line-height:1;margin-bottom:25px}.footer{text-align:center;padding:65px 20px 100px}.footer .eyebrow{font-size:10px;color:var(--muted);letter-spacing:1.7px}.footer .script{font-size:51px;color:var(--wine);margin:24px 0 10px}.footer>span:last-of-type{font-size:13px;color:var(--muted)}.footer small{display:block;font-size:9px;letter-spacing:1.2px;margin-top:25px;color:var(--muted)}.footer>a{display:inline-block;margin:10px;font-size:13px;text-decoration:underline}.floating-tools{position:fixed;bottom:24px;right:24px;z-index:21;display:flex;flex-direction:column;gap:10px}.floating-tools button,.floating-tools a{width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:var(--wine);border:1px solid #fffcf76b;color:white;box-shadow:0 3px 20px #2a181226;font-size:22px;padding:0}.floating-tools #top{display:none}.floating-tools #top.is-visible{display:grid}#music[aria-pressed=true] span{animation:musicPulse 2s ease-in-out infinite}#music[aria-pressed=true]{background:var(--paper);color:var(--wine);border-color:var(--wine)}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--gold);transform-origin:left;z-index:50}.reveal{transition:opacity 1s var(--ease),transform 1.2s var(--ease)}@media(prefers-reduced-motion:no-preference){.reveal:not(.visible){opacity:0;transform:translateY(32px)}.events-grid .reveal:nth-child(2),.timeline .reveal:nth-child(2){transition-delay:.12s}.timeline .reveal:nth-child(3){transition-delay:.2s}.gallery .reveal:nth-child(3n+2){transition-delay:.1s}.opened .hero-copy{animation:fadeUp 1.2s var(--ease) both}.hero-background{animation:slowZoom 16s ease-out both}}
dialog{border:0;padding:45px;background:var(--paper);color:var(--ink);max-width:min(540px,calc(100% - 32px));max-height:90dvh;box-shadow:0 25px 100px #0005}dialog::backdrop{background:#25141be0;backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;background:transparent;font-size:30px;z-index:2}#lightbox{width:96vw;height:94dvh;max-width:1200px;max-height:94dvh;background:transparent;box-shadow:none;color:white;padding:50px 65px 20px;overflow:hidden}#lightbox figure{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}#lightbox img{height:calc(100% - 55px);width:100%;object-fit:contain;min-height:0}#lightbox figcaption{font-size:12px;text-align:center;margin-top:16px}.lightbox-prev,.lightbox-next{position:absolute;top:48%;background:#ffffff15;border:1px solid #fff4;border-radius:50%;width:44px;height:44px;color:white;font-size:30px}.lightbox-prev{left:5px}.lightbox-next{right:5px}#gift-dialog{text-align:center;width:490px}#gift-dialog h2{font-size:43px;margin:15px 0 25px}.gift-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:25px}.gift-tabs button{padding:9px 18px;background:none;border:1px solid var(--line);font-size:13px}.gift-tabs button[aria-pressed=true]{background:var(--wine);color:white;border-color:var(--wine)}.qr{width:190px;height:190px;object-fit:contain;margin:0 auto 20px}.account{font-size:23px;letter-spacing:2px;margin:12px 0}.gift-empty span{font-size:45px;color:var(--wine)}.gift-empty p{font-size:15px;margin:10px 0}.gift-empty small{font-size:12px;color:var(--muted)}.gift-status{font-size:13px;margin-top:12px;color:var(--wine)}.opening{width:560px;padding:18px;overflow:auto;background:var(--paper);transition:opacity .65s,transform .65s var(--ease);text-align:center}.opening-paper{padding:55px 28px 40px;border:1px solid var(--line);position:relative}.opening-paper>.eyebrow{font-size:9px;letter-spacing:2px}.seal{width:82px;height:82px;margin:36px auto;background:var(--wine);color:#e9c7a4;border-radius:50%;border:5px double #aa666a;display:grid;place-items:center;font-family:var(--serif);font-size:31px;box-shadow:0 4px 8px #51121c25}.opening-paper .script{font-size:59px;color:var(--wine);line-height:1.5}.opening-paper>p:not(.script){font-family:var(--serif);font-size:26px;margin:5px 0}.opening-paper>span:not(.eyebrow){display:block;font-size:14px;letter-spacing:2px}.opening-paper .button{display:flex;width:220px;margin:30px auto 20px}.opening-paper small{font-size:10px;color:var(--muted)}.opening.leaving{transform:translateY(-60px) scale(1.06);opacity:0}.opening.leaving::backdrop{background:transparent;backdrop-filter:none;transition:all .65s}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,20px);background:var(--wine-dark);color:white;font-size:13px;padding:13px 22px;opacity:0;z-index:100;pointer-events:none;transition:.3s;max-width:85vw;width:max-content}.toast.shown{opacity:1;transform:translate(-50%,0)}.celebration{position:fixed;inset:0;z-index:25;pointer-events:none;overflow:hidden}.celebration span{position:absolute;width:9px;height:17px;border-radius:80% 0 80% 0;background:#d7a3a1;top:-30px;animation:fall 5s ease-in forwards}.celebration span:nth-child(2n){background:#c5a075}.celebration span:nth-child(3n){background:#eee0cb}
/* MẪU 47 · ẢNH TRÀN KHUNG, TRẮNG TỐI GIẢN */
body[data-theme='47']{--paper:#fff;--wine:#7d1724;--line:#e1d5d4;--muted:#78716f}.hero-editorial{height:calc(100svh - 80px);min-height:670px;max-height:1000px;color:white;background:#574d4b}.hero-background{position:absolute;inset:0;object-position:50% 45%!important}.hero-editorial:after{content:'';position:absolute;inset:0;background:linear-gradient(#24131335,transparent 25%,#160b0dbb)}.editorial-top{position:absolute;z-index:1;top:36px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px}.hero-editorial .hero-copy{position:absolute;z-index:1;bottom:55px;left:8%;right:8%}.hero-editorial .names{flex-direction:row;align-items:center;gap:25px;font-size:clamp(65px,7.8vw,120px);margin-top:20px;flex-wrap:wrap}.hero-editorial .names i{margin:0}.editorial-bottom{margin-top:28px;display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #fff6;padding-top:25px}.editorial-bottom p{font-size:14px}.hero-editorial .button{background:transparent;color:white;border-color:#fff8}body[data-theme='47'] .invitation-strip{max-width:950px}body[data-theme='47'] .invitation-strip div{height:350px}body[data-theme='47'] .invitation-strip div:nth-child(2){margin-top:0}body[data-theme='47'] .events-section{background:#fff}body[data-theme='47'] .event-card{background:var(--wine);color:white;border-radius:90px 0 0 0;padding-top:65px}body[data-theme='47'] .event-card h3,body[data-theme='47'] .event-card .eyebrow,body[data-theme='47'] .event-card p,body[data-theme='47'] .event-card .button{color:inherit}body[data-theme='47'] .event-card .button{border-color:#ffffff66}body[data-theme='47'] .calendar{border:1px solid var(--line)}body[data-theme='47'] .story-photo img{border-radius:0}body[data-theme='47'] .story-photo{height:650px}body[data-theme='47'] .album-section{background:#f9f6f5}body[data-theme='47'] .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:380px}body[data-theme='47'] .gallery-item:nth-child(1),body[data-theme='47'] .gallery-item:nth-child(5){grid-row:span 1}body[data-theme='47'] .gallery-item:nth-child(3){grid-column:span 2;height:530px}body[data-theme='47'] .gallery{grid-template-rows:380px 530px 380px 380px}body[data-theme='47'] .gallery-item:last-child{grid-column:span 2}body[data-theme='47'] .rsvp-image{height:850px}
/* MẪU 38 · THIỆP ĐỎ TRUYỀN THỐNG, MÉP GIẤY */
body[data-theme='38']{--wine:#792627;--wine-dark:#531717;--paper:#fffef5;background:var(--wine)}body[data-theme='38'] main{max-width:1160px;margin:0 auto;background:var(--paper);border-left:1px solid #e2c7a266;border-right:1px solid #e2c7a266}body[data-theme='38'] .wrap{width:calc(100% - 110px)}body[data-theme='38'] .hero-traditional{background:var(--wine);color:var(--paper);padding:35px 65px 0}.traditional-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dfb99455;padding-bottom:20px}.traditional-top .script{font-size:34px}.traditional-top>span:last-child{font-family:var(--serif);letter-spacing:3px;font-size:21px}.traditional-copy{text-align:center;margin:35px 0 28px}.traditional-copy .eyebrow{font-size:10px}.traditional-copy .names{flex-direction:row;justify-content:center;align-items:center;gap:25px;font-family:var(--script);font-size:75px;margin-top:20px}.traditional-copy .names i{font-family:var(--serif);font-size:37px}.traditional-photo{position:relative;max-width:770px;margin:auto;height:600px;border-radius:300px 300px 0 0;overflow:hidden;border:1px solid #d1b18e}.traditional-photo img{object-position:50% 40%!important}.double-happiness{position:absolute;top:30px;right:35px;font-size:70px;color:var(--wine);text-shadow:0 1px 10px #fff}.hero-ribbon{max-width:850px;margin:-32px auto 0;background:var(--paper);color:var(--wine);position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:25px;border-radius:90px 90px 0 0;border-bottom:1px solid var(--line)}.hero-ribbon span{font-size:10px;letter-spacing:3px}.hero-ribbon strong{font-family:var(--serif);font-weight:400;font-size:41px;letter-spacing:4px}.hero-ribbon a{font-size:12px;color:var(--muted)}body[data-theme='38'] .invitation{padding-top:70px}body[data-theme='38'] .section-head h2{font-family:var(--script);font-size:59px}body[data-theme='38'] .event-card{background:var(--paper);border:1px solid var(--wine);outline:1px solid #79262733;outline-offset:-8px}body[data-theme='38'] .events-section{background:#f5f0e2;position:relative}body[data-theme='38'] .events-section:before,body[data-theme='38'] .events-section:after{content:'';width:32px;height:64px;border-radius:0 40px 40px 0;background:var(--wine);position:absolute;left:-1px;top:50%}body[data-theme='38'] .events-section:after{left:auto;right:-1px;transform:rotate(180deg)}body[data-theme='38'] .invitation-strip{gap:10px}body[data-theme='38'] .invitation-strip div:nth-child(2){margin:0}body[data-theme='38'] .invitation-strip div{height:300px}body[data-theme='38'] .story-layout{gap:60px}body[data-theme='38'] .story-photo img{border-radius:0}body[data-theme='38'] .vow-section{margin:0 40px}body[data-theme='38'] .album-section{background:var(--paper);border-block:1px solid var(--line)}body[data-theme='38'] .gallery{gap:10px;grid-auto-rows:270px}body[data-theme='38'] .rsvp-section{gap:40px}body[data-theme='38'] .gift-section{border:1px solid #d4bba970;margin:0 20px;position:relative}body[data-theme='38'] .gift-section:after{content:'';position:absolute;inset:10px;border:1px solid #d4bba940;pointer-events:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes slowZoom{from{transform:scale(1.06)}to{transform:scale(1)}}@keyframes musicPulse{50%{transform:scale(1.25) rotate(-10deg)}}@keyframes fall{to{transform:translate(var(--drift),110vh) rotate(var(--turn));opacity:0}}
@media(min-width:1500px){.hero-arch{max-width:1500px}.hero-editorial{max-width:1800px;margin:auto}}
@media(max-width:1000px){.wrap{width:calc(100% - 60px)}.hero-arch{padding:70px 7%;min-height:680px;gap:7%}.arch-photo{height:510px}.names{font-size:64px}.story-layout{gap:50px}.rsvp-section{gap:35px}.rsvp-content h2{font-size:44px}.calendar-countdown{gap:30px}.gallery{grid-auto-rows:240px}body[data-theme='38'] .wrap{width:calc(100% - 60px)}.traditional-copy .names{font-size:60px}.traditional-photo{height:530px}body[data-theme='38'] .hero-traditional{padding-inline:40px}.event-card h3{font-size:30px}.rsvp-image{height:860px}}
@media(max-width:700px){html{scroll-padding-top:65px}.topbar{height:65px;padding-inline:20px}.brand{font-size:29px}.brand span{display:none}.topbar nav{gap:17px;font-size:11px}.topbar nav>a:first-child{display:none}.nav-rsvp{padding:7px 10px}.wrap,body[data-theme='38'] .wrap{width:calc(100% - 40px)}.section{padding-block:65px}.section-head{margin-bottom:35px}.section-head .eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:12px}.section-head p{font-size:14px;margin-top:17px}h2{font-size:43px}.hero-arch{display:flex;flex-direction:column;padding:38px 28px 48px;gap:35px;min-height:0}.hero-arch:before{inset:12px}.hero-arch .hero-copy{align-items:center;text-align:center}.hero-arch .hero-copy>.eyebrow{font-size:9px;letter-spacing:2px}.hero-arch .save-date{font-size:35px;margin-top:20px}.hero-arch .names{flex-direction:row;align-items:center;gap:13px;font-size:clamp(32px,8.5vw,56px);line-height:1.3}.hero-arch .names i{font-size:30px;margin:0}.hero-date{font-size:23px;margin:18px 0 0}.hero-caption{display:none}.hero-arch .hero-copy .button{display:none}.arch-photo{width:80%;max-width:390px;height:auto;aspect-ratio:3/4;align-self:center;box-shadow:10px 10px 0 #5e1720}.arch-photo:before{inset:-9px}.hero-edge{right:13px;font-size:8px}.arch-photo figcaption{font-size:8px;letter-spacing:1.5px}.families{grid-template-columns:1fr 25px 1fr;margin:25px auto 35px;gap:0}.family .eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:12px}.family p{font-size:11px;line-height:1.9}.family-address{font-size:10px}.family h3{font-size:26px;margin-top:16px;line-height:1.5}.family-symbol{font-size:24px}.invitation-strip{gap:9px}.invitation-strip div{height:175px}.invitation-strip div:nth-child(2){margin-top:20px}.invitation-note{font-size:29px;margin-top:40px}.events-grid{grid-template-columns:1fr;gap:22px}.event-card{padding:40px 25px 32px}.event-card h3{font-size:32px}.event-card h4{font-size:26px}.event-card p{min-height:0;margin:10px 0 23px}.calendar-countdown{grid-template-columns:1fr;gap:48px;margin-top:40px}.calendar{max-width:400px;padding:22px 25px}.calendar-grid{gap:5px}.countdown-panel h3{font-size:45px}.countdown{gap:8px;max-width:400px;margin:auto}.countdown strong{font-size:42px}.story-layout{grid-template-columns:1fr;gap:55px}.story-photo{height:450px;max-width:400px;margin:0 auto;width:100%}.story-photo figcaption{right:-5px;font-size:36px;padding:12px 20px}.stories{padding-left:15px}.story-item h3{font-size:29px}.story-item p{font-size:14px}.vow-section{min-height:450px}.vow-copy .script{font-size:39px}.vow-copy .eyebrow{font-size:10px;letter-spacing:1.8px}.vow-copy>span:last-child{font-size:9px}.timeline{grid-template-columns:1fr 1fr;gap:35px 25px}.timeline article:after{display:none}.timeline-symbol{margin-bottom:7px;font-size:34px}.timeline h3{font-size:25px}.timeline p{font-size:12px}.dresscode{margin-top:40px}.dresscode p{font-size:12px}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:210px;gap:10px}.gallery-item:nth-child(1){grid-row:span 2}.gallery-item:nth-child(5){grid-row:span 1}.gallery-item:nth-child(4){grid-row:span 2}.gallery-item span{width:30px;height:30px;right:10px;bottom:10px}.rsvp-section{grid-template-columns:1fr;gap:35px}.rsvp-image{height:430px;min-height:0}.rsvp-image .script{font-size:53px}.rsvp-image>div{left:28px;bottom:28px}.rsvp-content h2{font-size:47px}.rsvp-content>p{font-size:14px}.gift-section{padding-block:65px}.gift-section h2{font-size:43px}.gift-mark{font-size:63px}.footer{padding:50px 25px 90px}.footer .script{font-size:40px}.floating-tools{bottom:20px;right:12px;gap:8px}.floating-tools a,.floating-tools button{width:40px;height:40px;font-size:20px}.opening{padding:11px;max-width:calc(100% - 34px)}.opening-paper{padding:35px 15px 26px}.opening-paper>.eyebrow{font-size:8px;letter-spacing:1.6px}.opening-paper .script{font-size:46px}.seal{margin:25px auto;width:72px;height:72px}.opening-paper>p:not(.script){font-size:24px}.opening-paper small{font-size:9px}.opening-paper .button{margin-top:25px}.hero-editorial{height:calc(100svh - 65px);min-height:650px;max-height:900px}.hero-editorial .hero-copy{left:25px;right:25px;bottom:40px}.hero-editorial .hero-copy>.eyebrow{font-size:9px;letter-spacing:1.5px}.hero-editorial .names{flex-direction:column;align-items:flex-start;gap:0;font-size:54px;line-height:1.03;margin-top:20px}.hero-editorial .names i{font-size:38px;margin:5px 0}.editorial-top{top:23px;left:25px;right:25px;font-size:8px;letter-spacing:1.3px}.editorial-bottom{align-items:flex-start;gap:20px;flex-direction:column;margin-top:25px;padding-top:20px}.editorial-bottom p{font-size:12px}.editorial-bottom .button{min-height:42px;font-size:12px;padding:9px 20px}.hero-background{object-position:52% 40%!important}body[data-theme='47'] .invitation-strip div{height:185px}body[data-theme='47'] .story-photo{height:460px}body[data-theme='47'] .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:230px;grid-template-rows:230px 320px 230px 300px}body[data-theme='47'] .gallery-item:nth-child(3){height:320px}body[data-theme='47'] .gallery-item:nth-child(4){grid-row:span 1}body[data-theme='47'] .rsvp-image{height:470px}body[data-theme='38'] main{margin:0 10px}body[data-theme='38'] .hero-traditional{padding:24px 20px 0}.traditional-top .script{font-size:25px}.traditional-top>span:last-child{font-size:16px;letter-spacing:1.5px}.traditional-copy{margin:27px 0 22px}.traditional-copy .eyebrow{font-size:8px;letter-spacing:1.4px}.traditional-copy .names{font-size:clamp(31px,8vw,50px);gap:13px;margin-top:18px;line-height:1.5}.traditional-copy .names i{font-size:24px}.traditional-photo{height:auto;aspect-ratio:3/4;border-radius:180px 180px 0 0}.double-happiness{font-size:46px;right:20px;top:30px}.hero-ribbon{padding:20px 8px 22px;margin-top:-25px;border-radius:60px 60px 0 0}.hero-ribbon strong{font-size:33px}.hero-ribbon a{font-size:10px}.hero-ribbon span{font-size:8px}.hero-traditional .traditional-photo img{object-position:50% 40%!important}body[data-theme='38'] .section-head h2{font-size:45px;line-height:1.45}body[data-theme='38'] .wrap{width:calc(100% - 36px)}body[data-theme='38'] .invitation{padding-top:45px}body[data-theme='38'] .invitation-strip div{height:155px}body[data-theme='38'] .family h3{font-size:23px}body[data-theme='38'] .event-card{padding-inline:18px}body[data-theme='38'] .event-card h3{font-size:30px}body[data-theme='38'] .events-section:before,body[data-theme='38'] .events-section:after{width:14px;height:28px}body[data-theme='38'] .story-layout{gap:45px}body[data-theme='38'] .vow-section{margin:0 18px;min-height:410px}body[data-theme='38'] .vow-copy{padding-inline:18px}body[data-theme='38'] .vow-copy .script{font-size:32px}body[data-theme='38'] .gallery{grid-auto-rows:195px}body[data-theme='38'] .gift-section{margin:0 10px;padding-inline:20px}body[data-theme='38'] .rsvp-section{gap:35px}dialog{padding:40px 25px 30px}#gift-dialog h2{font-size:39px}#lightbox{padding:50px 0 40px;width:100%;max-width:100%}#lightbox img{width:100%}#lightbox figcaption{padding-inline:35px}.lightbox-prev,.lightbox-next{top:auto;bottom:0}.lightbox-prev{left:calc(50% - 55px)}.lightbox-next{right:calc(50% - 55px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.celebration{display:none}}
@media print{.topbar,.floating-tools,dialog,.scroll-progress,.button,.gallery-item span,.toast{display:none!important}.reveal{opacity:1!important;transform:none!important}body{background:white}.section{padding-block:30px}.hero{min-height:0!important;height:auto!important}.hero-editorial{height:650px!important}main{max-width:none!important}.gift-section{break-inside:avoid}.rsvp-section{display:none}.events-grid{break-inside:avoid}}
