:root{--wine:#491d2b;--dark:#260e17;--paper:#faf5eb;--gold:#b18b51;--muted:#786960}body{font-size:16px;overflow-x:hidden}.tiny{font-size:12px;line-height:1.7;letter-spacing:2.3px}.btn{font-size:14px;min-height:48px;letter-spacing:.3px}.note{font-size:13px}.navlinks{direction:ltr;font-size:14px}nav{position:absolute;top:0;left:0;width:100%;z-index:22;border-color:#f6e6c722;color:var(--paper);height:88px}.monogram{font-size:34px}.navlinks a{position:relative}.navlinks a:after{content:'';position:absolute;bottom:-6px;left:0;width:100%;height:1px;background:#e3c893;transform:scaleX(0);transform-origin:left;transition:transform .3s}.navlinks a:hover:after{transform:scaleX(1)}.hero{max-width:none!important;min-height:860px;min-height:100svh;display:flex;justify-content:center;align-items:center;padding:135px 6% 105px;color:var(--paper);background:var(--dark);isolation:isolate}.hero:after{display:none}.hero-art{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;z-index:-4;transform:translate3d(0,var(--parallax,0px),0) scale(1.035);will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#20091255,transparent 45%,#20091270),radial-gradient(ellipse at center,#21071015,transparent 70%);z-index:-3}.halo{position:absolute;top:50%;left:50%;width:min(66vw,660px);height:min(66vw,660px);border:1px solid #ddbb762a;border-radius:50%;transform:translate(-50%,-50%) rotate(0deg);z-index:-1;animation:orbit 65s linear infinite}.halo:before,.halo:after{content:'';position:absolute;border-radius:50%;border:1px solid #ddbb7614;inset:16px}.halo:after{inset:-16px;border-style:dashed}.intro{max-width:850px;width:100%}.hero .tiny{color:#ead2a9}.names{font-size:clamp(86px,11vw,166px);line-height:.95;letter-spacing:-3px;margin:35px 0 20px;display:flex;justify-content:center;align-items:center;gap:28px}.names span{display:inline-block}.names em{font:60px 'Great Vibes',Georgia,serif;color:#e3c893;margin:28px 0 0}.hero-caption{font:italic clamp(25px,2.8vw,38px) var(--serif);margin:24px 0 32px;color:#f0dcc2}.hero-date{font:13px var(--ar);letter-spacing:3px;line-height:2.3}.hero-date span{margin:0 12px;color:#e3c893}.hero .btn{background:#e4cda1;color:#351221;border:1px solid #f3e4c4;padding:15px 32px;margin-top:30px}.hero .btn:hover{background:#fff0d0}.hero-foot{color:#e8d0b0;font-size:12px;bottom:30px;letter-spacing:1.7px}.scroll-down{display:flex;gap:16px;text-decoration:none}.scroll-down span{animation:bob 2s ease-in-out infinite}.hero-overline,.names span,.names em,.hero-caption,.hero-date,.hero .btn{opacity:0;transform:translateY(28px);transition:opacity 1.2s,transform 1.2s}.entered .hero-overline,.entered .names span,.entered .names em,.entered .hero-caption,.entered .hero-date,.entered .hero .btn{opacity:1;transform:translateY(0)}.names span:first-child{transition-delay:.1s}.names em{transition-delay:.3s}.names span:last-child{transition-delay:.5s}.hero-caption{transition-delay:.7s}.hero-date{transition-delay:.9s}.hero .btn{transition-delay:1.1s}.ribbon{overflow:hidden;padding:23px 0;background:#491d2b}.ribbon-track{white-space:nowrap;width:max-content;font:17px var(--serif);letter-spacing:5px;animation:marquee 38s linear infinite}.welcome{max-width:890px}.welcome blockquote{font:38px/1.55 var(--serif);margin:32px 0}.welcome .signature{font-size:38px}h2.ar-title{font:clamp(45px,5.7vw,73px)/1.1 var(--serif)}.section-head p{font-size:16px}.section{padding:110px 8%}.section-head{margin-bottom:58px}h2{font-size:clamp(48px,6vw,74px);letter-spacing:-1px}.countdown{gap:48px;max-width:710px;padding:30px 0}.countdown b{font-size:72px;transition:filter .2s,transform .3s}.countdown b.tick{animation:tick .4s}.countdown span{font-size:13px;text-transform:uppercase;letter-spacing:1.5px}.details{background:#ede4d5}.date-card{background:var(--paper);box-shadow:0 25px 55px #34132412;transform:rotate(-3deg);transition:transform .5s;max-width:430px}.date-card:hover{transform:rotate(0deg) translateY(-6px)}.date-card .month{font-size:24px}.date-card .weekday{font-size:20px;letter-spacing:4px}.date-card .big-day{font-size:156px}.date-card:after{content:'H & D';display:grid;place-items:center;position:absolute;bottom:-24px;right:25px;width:70px;height:70px;border-radius:50%;background:#a8834d;color:#fae3b8;border:4px double #e7c890;font:italic 23px var(--serif);box-shadow:0 8px 20px #0002}.detail-copy h3{font:46px/1.05 var(--serif);letter-spacing:-.5px}.fact{font-size:16px}.fact strong{text-align:right;font-weight:500}.detail-actions{flex-direction:column;align-items:flex-start}.detail-actions .btn{min-width:220px}.evening{background:linear-gradient(110deg,#260e17,#542337 65%,#260e17);position:relative;overflow:hidden}.evening:before{content:'&';position:absolute;font:750px/1 var(--serif);right:-70px;top:-150px;color:#e9c88b06;pointer-events:none}.event{padding:0 18px;transition:transform .3s}.event:hover{transform:translateY(-8px)}.event time{font-size:32px}.event h3{font-family:var(--serif);font-size:26px;line-height:1.2;direction:ltr}.event p{font-family:var(--ar);font-size:13px;font-style:normal}.event:after{transition:box-shadow .3s}.event:hover:after{box-shadow:0 0 20px #dab88188}.event:before{top:54px}.event:after{top:44px}.rsvp{max-width:850px}label,legend{font-size:14px}.option{font-size:15px}.form-buttons .btn{min-width:200px}.response p{font-size:16px}.sound{width:auto;min-width:50px;height:50px;border-radius:25px;padding:0 17px;font-size:17px;background:#faf5ebed;backdrop-filter:blur(8px)}.sound:after{content:'Sound';font-size:12px;margin-left:8px}.sound[aria-pressed=true]{box-shadow:0 0 0 7px #cfac6430}.gate{background:radial-gradient(ellipse at 50% 20%,#693449,#260e17 85%)}.gate:before{content:'';position:absolute;inset:16px;border:1px solid #d9ba8033;pointer-events:none}.gate:after{content:'';position:absolute;inset:26px;border:1px solid #d9ba8014;pointer-events:none}.gate-inner{width:min(530px,88vw)}.gate h2{font:70px 'Great Vibes',var(--serif);margin:0}.gate .tiny{font-size:12px;letter-spacing:3px;margin-bottom:25px}.closed-envelope{margin:35px 0 28px;animation:levitate 6s ease-in-out infinite}.open-seal{font-size:25px;animation:sealGlow 3s ease-in-out infinite}.gate.open .closed-envelope{animation:none}.gate-instruction{font:italic 22px var(--serif)}.skip{font-size:14px}.gate.open{transition:opacity 1s .4s,visibility 1s .4s;transform:none}.gate.open .open-seal{transform:scale(.8);opacity:0;transition:all .3s}.gate.open .flap{transition:transform .9s}.gate.open .closed-envelope{transform:translateY(80px);transition:transform 1s}.reading-progress{position:fixed;left:0;top:0;z-index:55;height:3px;background:#dfbb78;width:0;box-shadow:0 0 10px #d7b07599;pointer-events:none}#magic{position:fixed;inset:0;z-index:24;pointer-events:none;width:100%;height:100%}footer{padding:80px 20px;position:relative;overflow:hidden}footer .footer-names{font-size:70px}footer p{font-size:16px}footer .tiny{font-size:12px}.celebrate{display:block;margin:28px auto 38px;padding:12px 25px;border:1px solid #d8b67b66;color:#f0d4a2;background:transparent;font-size:14px;transition:background .3s}.celebrate:hover{background:#b48c4d22}.celebrate span{font-size:23px;margin-left:12px}.reveal{transition:opacity 1s,transform 1s}.js .reveal.waiting{transform:translateY(35px)}@keyframes orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes bob{50%{transform:translateY(7px)}}@keyframes levitate{50%{transform:translateY(-8px) rotate(.6deg)}}@keyframes sealGlow{50%{box-shadow:inset 0 0 0 3px #d5b276,inset 0 0 0 6px #9e773e,0 0 28px #d2b07844}}@keyframes tick{50%{transform:translateY(-3px);filter:brightness(1.5)}}
@media(max-width:760px){nav{height:76px;padding:0 6%}.navlinks{gap:18px;font-size:13px}.navlinks a:nth-child(2){display:none}.hero{min-height:820px;min-height:100svh;padding:110px 5% 100px}.hero-art{width:150%;left:-25%;object-position:center}.hero-shade{background:linear-gradient(#21091255,#21091220 50%,#21091270)}.names{display:block;margin:29px 0 25px;font-size:clamp(80px,23vw,115px);line-height:.86;letter-spacing:-2px}.names span{display:block}.names em{font-size:45px;margin:12px 0;line-height:.9}.hero-caption{font-size:29px;margin:24px 0}.hero-date{font-size:12px;letter-spacing:1.6px;max-width:300px;margin:auto}.hero-date span{margin:0 5px}.hero-overline{font-size:11px!important;letter-spacing:2px}.hero .btn{margin-top:25px;font-size:14px}.hero-foot{font-size:10px;letter-spacing:.6px;bottom:22px;inset-inline:6%}.halo{width:90vw;height:90vw;top:44%}.section{padding:75px 7%}.welcome blockquote{font-size:28px;line-height:1.55}.section-head{margin-bottom:38px}.section-head p{font-size:15px}.countdown{gap:15px;padding:25px 0}.countdown div{min-width:57px}.countdown b{font-size:48px}.countdown span{font-size:11px;letter-spacing:.4px}.detail-grid{gap:60px}.date-card{width:90%}.date-card .big-day{font-size:130px}.detail-copy h3{font-size:42px;text-align:left}.detail-actions{align-items:stretch}.detail-actions .btn{flex:auto;min-width:0}.fact{font-size:14px;gap:12px}.timeline{gap:40px 0}.event{padding:0 10px}.event h3{font-size:24px}.event time{font-size:27px}.event:before{top:47px}.event:after{top:37px}.event p{font-size:12px}.options{flex-direction:column}.option{padding:16px}.form-buttons .btn{width:100%}.gate h2{font-size:58px}.gate .tiny{font-size:11px}.gate-inner{width:min(480px,86vw)}.gate-instruction{font-size:21px}.closed-envelope{height:210px}.gate:before{inset:10px}.gate:after{inset:17px}footer .footer-names{font-size:60px}.sound{bottom:14px;left:14px}.ribbon-track{font-size:15px;letter-spacing:3px}}
@media(prefers-reduced-motion:reduce){.hero-art{transform:none!important}.hero-overline,.names span,.names em,.hero-caption,.hero-date,.hero .btn{opacity:1;transform:none}#magic{display:none}.gate.open{transition:none}.date-card{transform:none}}
/* A physical opening: seal releases, flap folds back, invitation rises, scene fades. */
.closed-envelope{isolation:isolate;perspective:1200px;overflow:visible;transform-style:preserve-3d;background:#4d2333}.closed-envelope:before{display:none}.invitation-insert{position:absolute;z-index:1;inset:13px 6% 7px;background:#fff7e7;color:#491d2b;border:1px solid #bd9a60;box-shadow:0 0 0 7px #fff7e7,0 10px 25px #19091033;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:18px;transform:translateY(0);opacity:0;transition:transform 1.15s cubic-bezier(.22,1,.36,1) 1.05s,opacity .3s .7s}.invitation-insert .tiny{font-size:10px;letter-spacing:2px;color:#947143;margin:0 0 15px}.invitation-insert strong{font:44px 'Great Vibes',var(--serif);font-weight:400}.invitation-insert strong em{font:italic 25px var(--serif);color:#b18b51}.invitation-insert>span:not(.tiny){font:12px var(--ar);letter-spacing:2px;margin-top:18px}.invitation-insert p{font:italic 18px var(--serif);margin:13px 0 0}.envelope-pocket{position:absolute;inset:0;z-index:3;background:linear-gradient(28deg,#693248,#693248 49.7%,#976575 50%,#693248 50.3%);clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);border:1px solid #986576}.flap{z-index:4;transition:transform 1s cubic-bezier(.45,.02,.3,1) .35s;backface-visibility:visible;background:linear-gradient(#794457,#542434);transform:rotateX(0deg)}.open-seal{z-index:5;transition:transform .5s,opacity .4s;animation:sealGlow 3s ease-in-out infinite}.gate.opening .closed-envelope{animation:none;transform:translateY(45px);transition:transform 1.1s}.gate.opening .open-seal{animation:none;transform:translateY(35px) rotate(-24deg) scale(.7);opacity:0;pointer-events:none}.gate.opening .flap{transform:rotateX(180deg);z-index:0}.gate.opening .invitation-insert{opacity:1;transform:translateY(-155px)}.gate.opening .gate-instruction,.gate.opening .skip,.gate.opening .gate-inner>h2,.gate.opening .gate-inner>p{opacity:0;transition:opacity .35s}.gate.departing{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .8s,visibility .8s}.gate.opening:not(.departing){opacity:1;visibility:visible}.love-letter{display:grid;grid-template-columns:.85fr 1.15fr;padding:0;min-height:580px;background:#32121f;color:#faedda;position:relative;overflow:hidden}.letter-photo{background:linear-gradient(90deg,transparent 55%,#32121f),url('wedding-roses.webp') 5% center/auto 115%;min-height:530px}.letter-content{padding:80px 12% 80px 5%;align-self:center}.letter-content .tiny{color:#d3b581}.letter-content h2{font-size:clamp(48px,5.8vw,80px);line-height:1.05;margin:20px 0 30px}.letter-content h2 em{color:#e4c28d;font-weight:400}.letter-content>p:not(.tiny){font-size:16px;line-height:1.9;color:#dfcec4;max-width:540px}.letter-signature{font:34px 'Great Vibes',var(--serif);color:#e4c28d;margin-top:35px}.keepsake-section{background:#f8f2e7}.keepsake{max-width:680px;margin:0 auto;background:#fffaf0;border:1px solid #c1a579;padding:35px 45px;outline:1px solid #d7c5a7;outline-offset:-12px;box-shadow:0 24px 65px #34132412;transform:rotate(-1.5deg);transition:transform .5s;position:relative}.keepsake:hover{transform:rotate(0) translateY(-5px)}.keepsake-top{display:flex;justify-content:space-between;align-items:center;color:#977344}.keepsake-top .tiny{font-size:12px}.keepsake-monogram{font:italic 28px var(--serif)}.keepsake-names{font:64px var(--serif);margin:32px 0;text-align:center}.keepsake-names em{font:40px 'Great Vibes';color:#a8834d;margin:0 10px}.keepsake-bottom{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #d5c5ac;padding:22px 0;gap:20px;text-align:center}.keepsake-bottom strong{display:block;font:24px var(--serif);margin-top:7px}.keepsake-bottom .tiny{color:#977344;font-size:11px}.keepsake>p{text-align:center;font:italic 21px var(--serif);margin:24px 0 5px}.keepsake-actions{display:flex;gap:15px;justify-content:center;margin-top:45px}.sound.ready{display:flex;align-items:center;justify-content:center}
@media(max-width:760px){.love-letter{grid-template-columns:1fr}.letter-photo{min-height:240px;background:linear-gradient(0deg,#32121f,transparent 60%),url('wedding-roses.webp') center/cover}.letter-content{padding:25px 8% 65px}.letter-content h2{font-size:51px}.letter-signature{font-size:31px}.keepsake{padding:26px 23px}.keepsake-names{font-size:43px;white-space:nowrap;margin:25px 0}.keepsake-names em{font-size:30px;margin:0 4px}.keepsake-bottom{gap:10px}.keepsake-bottom strong{font-size:21px}.keepsake-top .tiny{font-size:10px;letter-spacing:1.5px}.keepsake-actions{flex-direction:column}.invitation-insert{padding:14px 10px}.invitation-insert strong{font-size:34px}.invitation-insert .tiny{font-size:8px;letter-spacing:1px;margin-bottom:12px}.invitation-insert p{font-size:16px}.gate.opening .invitation-insert{transform:translateY(-115px)}}
@media(prefers-reduced-motion:reduce){.gate.opening .invitation-insert,.gate.opening .closed-envelope{transform:none}.keepsake{transform:none}}
/* Fine paper, floral borders and wine-coloured chapters. */
:root{--wine:#520f30;--dark:#300c20;--gold:#a78142;--paper:#faf6ec}.hero{color:#520f30;background:#f6f0e3;min-height:960px;min-height:100svh}.hero-art{object-fit:cover;object-position:center;width:100%;height:115%;left:0;top:-7%;transform:translate3d(0,var(--parallax,0px),0);opacity:1}.hero-shade{background:radial-gradient(ellipse at center,#fffaf052,transparent 70%)}.hero .halo{border-color:#a985452b;width:min(620px,75vw);height:min(740px,85vw);border-radius:48% 48% 0 0;animation:none}.halo:before{border-color:#a9854520;border-radius:inherit}.halo:after{display:none}.hero .tiny{color:#775629;font-size:12px;letter-spacing:3px}.names{font-family:'Great Vibes',var(--serif);font-size:clamp(90px,10vw,150px);letter-spacing:0;gap:26px;margin:40px 0 30px;line-height:1.25}.names em{color:#a8834d;font-size:65px;margin-top:10px}.hero-caption{font:17px var(--ar);letter-spacing:5px;text-transform:uppercase;color:#6f4c4c;margin:15px 0 27px}.hero-date{color:#78592f;letter-spacing:2px;font-size:14px}.hero .btn{background:#520f30;border:1px solid #520f30;color:#fff1db}.hero .btn:hover{background:#71234b}.hero-foot{color:#6c4c44}.intro{position:relative;z-index:1}.hero:before{content:'';position:absolute;inset:24px;border:1px solid #8e683f44;z-index:0;pointer-events:none}nav{color:#520f30;border-bottom:0}.hero-overline{margin-top:20px}.hero .intro{padding:40px 0}.ribbon{background:#520f30}.ribbon-track{letter-spacing:4px}#welcome{padding:90px 8%;background:#fffaf1}.welcome .rings{color:#aa843f}.welcome blockquote{font-size:31px;max-width:800px;margin:28px auto}.welcome h2{font-family:'Great Vibes',var(--serif);font-size:68px;letter-spacing:0}.countdown-scene{text-align:center;background:radial-gradient(ellipse at 50% 0,#74244b,#480e2d 65%);color:#fff3de;position:relative;overflow:hidden}.countdown-scene:before,.countdown-scene:after{content:'';position:absolute;inset:22px;border:1px solid #c8a16833;pointer-events:none}.countdown-scene:after{inset:30px;border-color:#c8a16815}.countdown-inner{position:relative;max-width:960px;margin:auto}.countdown-scene .tiny{color:#dfc499;font-size:12px;letter-spacing:3px}.countdown-scene h2{font:clamp(45px,6vw,76px) 'Great Vibes',var(--serif);margin:22px 0 35px;letter-spacing:0}.countdown-scene .countdown{border:0;max-width:840px;margin:20px auto 35px;gap:0;display:grid;grid-template-columns:repeat(4,1fr)}.countdown-scene .countdown div{padding:0 25px;position:relative}.countdown-scene .countdown div+div:before{content:'';position:absolute;left:0;top:25%;height:48%;width:1px;background:#cba77455}.countdown-scene .countdown b{font:90px/1.15 var(--serif);color:#fff1d6;margin-bottom:18px}.countdown-scene .countdown span{color:#d9bc8c;font-size:12px;letter-spacing:2px}.countdown-scene .note{color:#dec8b8;font-size:14px}.star-divider{color:#d5ad66;font-size:21px;margin-top:30px}.details{background:#f5eee1}.details h2{font-family:'Great Vibes',var(--serif);font-size:83px;letter-spacing:0}.detail-grid{gap:70px}.date-card{border-radius:200px 200px 0 0;padding-top:70px;background:linear-gradient(#fffbf1ed,#fffbf1ed),url('floral-paper.webp') center/cover;box-shadow:0 25px 55px #34132416;transform:rotate(-2deg)}.date-card:before{border-radius:190px 190px 0 0;inset:12px}.date-prelude{font-size:10px;letter-spacing:1.5px;color:#99763d;margin:0 0 20px}.date-card .month{font-size:20px;letter-spacing:5px}.date-card:after{background:radial-gradient(circle at 30% 20%,#d5b77b,#9e7438);color:#fcebc2;border-color:#dfc48b}.detail-copy h3{font-family:var(--serif);font-size:43px}.love-letter{background:#480e2d}.letter-photo{background-image:linear-gradient(90deg,transparent 55%,#480e2d),url('wedding-roses.webp')}.letter-content h2{font-family:'Great Vibes',var(--serif);letter-spacing:0;font-size:75px;line-height:1.2}.letter-content h2 em{font-style:normal}.keepsake-section{background:#fffbf2}.keepsake-section h2{font-family:'Great Vibes',var(--serif);letter-spacing:0;font-size:65px}.keepsake{background:linear-gradient(#fffaf0b3,#fffaf0b3),url('floral-paper.webp') center/cover;padding:45px 50px}.keepsake-names{font-family:'Great Vibes',var(--serif);font-size:70px;line-height:1.4}.keepsake-bottom{background:#fffbf1b3}footer{background:radial-gradient(ellipse at top,#671b40,#350c23)}.footer-prelude{color:#cba971;font-size:11px;margin-bottom:35px}.gate{background:linear-gradient(#2d0b20b0,#2d0b20e8),url('wedding-roses.webp') center/cover}.closed-envelope{background:#4e172f;box-shadow:0 30px 65px #17070d70,0 0 0 8px #ffffff03}.invitation-insert{background:linear-gradient(#fff8eae6,#fff8eae6),url('floral-paper.webp') center/cover}.gate .closed-envelope{max-width:490px;margin-inline:auto}.gate-inner>h2{font-size:74px}.gate-instruction{font-size:24px}.gate.opening .invitation-insert{box-shadow:0 0 0 7px #fff7e7,0 20px 35px #19091055}.sound.ready{background:#520f30;color:#ead2aa;border-color:#caa363}.sound[aria-pressed=true]{box-shadow:0 0 0 7px #cfac6420}
@media(max-width:760px){.hero{min-height:880px;min-height:100svh;padding:110px 6% 95px}.hero-art{width:100%;left:0;height:110%;top:-5%;object-position:center}.hero:before{inset:15px}.hero .intro{padding:30px 0}.hero .halo{height:590px;width:83vw;top:51%;border-radius:200px 200px 0 0}.names{font-size:96px;line-height:1.05;margin:25px 0}.names em{font-size:48px;line-height:.9;margin:0}.hero-caption{font-size:13px;letter-spacing:3px;line-height:1.8;max-width:220px;margin:15px auto 20px}.hero-date{font-size:12px;letter-spacing:1px;max-width:260px}.hero-overline{font-size:10px!important;letter-spacing:1.8px!important;max-width:260px;margin:auto}.hero-foot{font-size:9px;bottom:30px;inset-inline:9%}.hero .btn{padding:13px 23px}.welcome h2{font-size:51px}.welcome blockquote{font-size:26px}#welcome{padding:65px 8%}.countdown-scene h2{font-size:49px;line-height:1.2;max-width:300px;margin:20px auto 35px}.countdown-scene .tiny{font-size:10px;letter-spacing:1.6px;max-width:240px;margin:auto}.countdown-scene .countdown{gap:24px 0;grid-template-columns:repeat(2,1fr);max-width:340px}.countdown-scene .countdown div{padding:0 14px}.countdown-scene .countdown div:nth-child(3):before{display:none}.countdown-scene .countdown b{font-size:67px;margin-bottom:8px}.countdown-scene .countdown span{font-size:11px;letter-spacing:1.5px}.countdown-scene .note{padding:0 15px}.details h2{font-size:65px}.date-card{padding-top:62px}.detail-copy h3{font-size:40px}.letter-photo{background-image:linear-gradient(0deg,#480e2d,transparent 60%),url('wedding-roses.webp')}.letter-content h2{font-size:61px}.keepsake-section h2{font-size:51px;line-height:1.2}.keepsake{padding:35px 24px}.keepsake-names{font-size:46px}.gate-inner>h2{font-size:61px}.gate-instruction{font-size:22px}}
/* Compact mobile edition: invitation, then one combined details panel. */
.opening-verse{margin:0 auto 25px;max-width:560px;color:#f4dfac}.opening-verse p{font:400 clamp(26px,4vw,36px)/1.9 'Amiri',serif;margin:0;letter-spacing:0;text-shadow:0 2px 12px #18040e55}.opening-verse span{display:block;font:14px/1.6 'Amiri',serif;color:#e3c99a}.gate.opening .opening-verse{opacity:0;transition:opacity .4s}.gate-inner>h2{font-size:62px}.closed-envelope{height:225px}.gate .closed-envelope{margin:25px auto}.gate-instruction{margin:15px 0 10px;font-size:21px}.gate .gate-inner>.tiny{margin:12px 0}.gate .skip{margin-top:4px}.invitation-line{font:22px/1.5 var(--serif);color:#694343;margin:0 auto 22px}.hero{min-height:740px;padding-top:105px;padding-bottom:65px}.hero .intro{padding:10px 0}.hero .names{margin:18px 0 20px}.hero .hero-caption{margin:12px 0;font-size:14px;letter-spacing:3px}.hero .halo{height:570px;width:640px;max-width:85%}.hero .hero-foot{bottom:25px}.details{padding:55px 7% 40px;background:linear-gradient(150deg,#fffaf0,#f0e4d4)}.details>.section-head{margin-bottom:25px}.details>.section-head h2{font-size:64px;margin:7px 0}.details>.section-head>p{display:none}.countdown-scene{max-width:860px;margin:0 auto 32px;padding:24px 25px;border-radius:8px;color:#fff3de;box-shadow:0 16px 38px #480e2d18}.countdown-scene:before{inset:8px;border-radius:5px}.countdown-scene:after{display:none}.countdown-scene .tiny{font-size:10px;letter-spacing:2px}.countdown-scene h2{font-size:42px;margin:5px 0 12px}.countdown-scene .countdown{grid-template-columns:repeat(4,minmax(0,1fr));padding:0;gap:0;margin:0 auto 12px;max-width:610px}.countdown-scene .countdown div{padding:0 12px;min-width:0}.countdown-scene .countdown b{font-size:57px;margin:0 0 4px}.countdown-scene .countdown span{font-size:11px;letter-spacing:1px}.countdown-scene .countdown div:nth-child(3):before{display:block}.countdown-scene .note{margin:10px 0 0;font-size:12px}.countdown-scene .star-divider{display:none}.detail-grid{display:block;max-width:860px}.detail-copy{background:#fffdf7aa;border:1px solid #d5c5ac;border-radius:8px;padding:18px 30px}.fact{padding:13px 0}.fact:first-child{padding-top:2px}.detail-actions{flex-direction:row;justify-content:center;align-items:stretch;margin-top:22px}.detail-actions .btn{flex:1;min-width:0;padding:12px 18px}.detail-copy>.note{text-align:center;margin:15px 0 0}footer{padding:23px 7% 30px}footer>p{font:italic 20px/1.5 var(--serif);margin:0 auto 14px;max-width:500px}.celebrate{margin:0 auto;padding:7px 20px;min-height:44px}.sound.ready{min-width:44px;height:44px;padding:0 12px}.sound:after{display:none}.sound{bottom:12px;left:12px}
@media(max-width:760px){nav{height:63px}.navlinks a:nth-child(2){display:block}.navlinks{font-size:12px;gap:20px}.hero{min-height:0;padding:83px 6% 55px}.hero:before{inset:12px}.hero .intro{padding:15px 0}.hero .names{font-size:76px;line-height:.95;margin:21px 0 20px}.hero .names em{font-size:36px;margin:5px 0;line-height:.9}.hero .hero-overline{font-size:10px!important;line-height:1.7}.hero .hero-caption{font-size:11px;letter-spacing:2.7px;margin:10px auto}.invitation-line{font-size:19px;margin:12px 0 15px;line-height:1.45}.hero-date{font-size:12px;line-height:1.8}.hero .btn{margin-top:17px;font-size:13px;min-height:43px;padding:10px 20px}.hero .halo{width:84%;height:435px;top:51%}.hero .hero-foot{bottom:18px;font-size:8px}.hero-art{height:110%;object-position:center}.details{padding:32px 6% 26px}.details>.section-head{margin-bottom:19px}.details>.section-head .tiny{font-size:9px;letter-spacing:1.5px}.details>.section-head h2{font-size:51px}.countdown-scene{padding:21px 13px;margin-bottom:20px}.countdown-scene .tiny{font-size:9px;letter-spacing:1.4px;max-width:none}.countdown-scene h2{font-size:34px;max-width:none;line-height:1.2;margin:7px 0 16px}.countdown-scene .countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.countdown-scene .countdown div{padding:0 4px}.countdown-scene .countdown b{font-size:42px}.countdown-scene .countdown span{font-size:9px;letter-spacing:.4px}.countdown-scene .note{font-size:11px;padding:0 6px}.detail-copy{padding:15px 17px}.fact{font-size:13px;padding:11px 0;gap:10px}.fact strong{font-size:13px}.detail-actions{flex-direction:column;gap:9px;margin-top:17px}.detail-actions .btn{font-size:13px;padding:10px 12px;min-height:44px}.detail-copy>.note{font-size:11px;line-height:1.6;margin-top:13px}footer{padding:21px 14% 25px}footer>p{font-size:18px}.celebrate{font-size:12px}.gate{padding:22px 20px}.opening-verse{margin-bottom:18px}.opening-verse p{font-size:clamp(23px,6.3vw,29px);line-height:1.9;white-space:normal}.opening-verse span{font-size:12px}.gate-inner>h2{font-size:48px}.gate .closed-envelope{height:185px;margin:25px auto 20px}.gate-instruction{font-size:18px;margin:12px 0}.gate .gate-inner>.tiny{font-size:10px;letter-spacing:1.8px;margin-bottom:10px}.gate .skip{font-size:12px}.invitation-insert strong{font-size:29px}.invitation-insert .tiny{font-size:8px}.invitation-insert p{font-size:14px}.gate.opening .invitation-insert{transform:translateY(-100px)}}
@media(max-height:650px) and (max-width:760px){.gate .closed-envelope{height:155px;margin:20px auto 13px}.gate-inner>h2{font-size:40px}.opening-verse{margin-bottom:12px}.gate-instruction{display:none}.opening-verse p{font-size:24px}.invitation-insert p{display:none}}
.blessing{padding:48px 7%;background:#f9f4e9}.blessing-card{max-width:800px;margin:auto;padding:38px 35px 27px;background:linear-gradient(#fff9edeb,#fff9edeb),url('floral-paper.webp') center/cover;border:1px solid #b89960;outline:1px solid #d8c49b;outline-offset:-9px;text-align:center;box-shadow:0 18px 40px #4c103012}.blessing h2{font:66px/1.35 'Great Vibes',var(--serif);color:#520f30;margin:12px 0 14px;letter-spacing:0}.blessing h2 span{color:#ac8545}.blessing-date{font:12px/1.7 var(--ar);letter-spacing:3px;color:#806144;margin:0}.blessing-rule{height:1px;width:75%;margin:25px auto;background:linear-gradient(90deg,transparent,#bd9c60,transparent)}.quran-verse{font:400 clamp(27px,4vw,39px)/2 'Amiri',serif;color:#520f30;letter-spacing:0;margin:0 auto 13px;text-wrap:balance}.verse-meaning{font:italic 23px/1.5 var(--serif);color:#76614c;margin:10px auto;max-width:480px}.verse-source{font:12px var(--ar);letter-spacing:3px;color:#a47f40;margin:17px 0}.blessing-ornament{color:#b18b51;font-size:18px;display:flex;align-items:center;justify-content:center;gap:20px}.blessing-ornament:before,.blessing-ornament:after{content:'';height:1px;width:65px;background:#d1bc90}.blessing-ornament.end{margin-top:24px;font-size:26px}.sound.ready{gap:7px;display:flex}.sound span{font:12px var(--ar)}.song-panel{position:fixed;left:15px;bottom:68px;z-index:56;width:min(355px,calc(100vw - 30px));background:#fff8eb;color:#520f30;padding:14px;border:1px solid #baa06d;box-shadow:0 15px 70px #21091655;border-radius:10px}.song-panel[hidden]{display:none}.song-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.song-heading strong{display:block;font:25px var(--serif)}.song-heading span{display:block;font:12px var(--ar);color:#75624f}.song-heading button{width:40px;height:40px;border:0;background:transparent;font-size:27px}.song-panel iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:4px}.song-panel>a{display:block;margin-top:10px;font:12px var(--ar);text-underline-offset:3px}@media(max-width:760px){.blessing{padding:29px 6% 35px}.blessing-card{padding:26px 16px 20px}.blessing h2{font-size:46px;line-height:1.4}.blessing-date{font-size:10px;letter-spacing:1.4px}.blessing-rule{margin:18px auto}.quran-verse{font-size:27px;line-height:1.95;max-width:300px}.verse-meaning{font-size:20px;max-width:250px}.verse-source{font-size:10px;letter-spacing:2px}.blessing-ornament.end{margin-top:17px}.song-panel{bottom:66px}}@media print{.song-panel{display:none!important}}
