@font-face{font-family:DynaPuff;src:url('plot-twist/dynapuff.woff') format('woff');font-weight:400 700;font-display:swap}
@font-face{font-family:'Cormorant Garamond';font-weight:400;font-style:italic;font-display:swap;src:url('love-booth/cormorant-garamond-400-italic.woff') format('woff')}
@font-face{font-family:'Cormorant Garamond';font-weight:400;font-style:normal;font-display:swap;src:url('love-booth/cormorant-garamond-400-normal.woff') format('woff')}
@font-face{font-family:'Cormorant Garamond';font-weight:600;font-style:normal;font-display:swap;src:url('love-booth/cormorant-garamond-600-normal.woff') format('woff')}
@font-face{font-family:'DM Sans';font-weight:400;font-style:normal;font-display:swap;src:url('love-booth/dm-sans-400-normal.woff') format('woff')}
@font-face{font-family:'DM Sans';font-weight:600;font-style:normal;font-display:swap;src:url('love-booth/dm-sans-600-normal.woff') format('woff')}
@font-face{font-family:'Great Vibes';font-weight:400;font-style:normal;font-display:swap;src:url('love-booth/great-vibes-400-normal.woff') format('woff')}

:root{--paper:#f4f1e9;--ink:#242521;--accent:#69715d;--line:#24252130;--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes','Brush Script MT',cursive;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.13;z-index:5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23777777' opacity='.2' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button:disabled{cursor:wait;opacity:.65}button,.btn{min-height:48px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 28px;background:var(--ink);border:1px solid var(--ink);color:var(--paper);text-decoration:none;font:600 12px/1.5 var(--sans);letter-spacing:2px;text-transform:uppercase;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-3px);background:var(--accent)}.btn.light{background:transparent;color:var(--ink)}.btn.light:hover{background:var(--ink);color:var(--paper)}.eyebrow{font:500 11px/1.6 var(--sans);letter-spacing:3px;text-transform:uppercase}.script{font-family:var(--script);font-weight:400;line-height:1.1}.serif{font-family:var(--serif);font-weight:400;line-height:1}h1,h2,h3,p{margin-top:0}h2{font:400 clamp(48px,7vw,88px)/1 var(--serif);letter-spacing:-2px;margin-bottom:28px}h3{font:500 30px/1.1 var(--serif);margin-bottom:14px}p{margin-bottom:24px}small{font-size:12px}img{max-width:100%;object-fit:cover}.muted{opacity:.64}.rule{height:1px;background:var(--line);width:90px;margin:28px auto}.hidden,[hidden]{display:none!important}.stage{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:75px 24px 55px;position:relative;overflow:hidden}.stage .topmark{position:absolute;top:24px;left:0;right:0}.stage .footmark{margin-top:36px}.intro-title{font:400 clamp(58px,9vw,115px)/.9 var(--serif);letter-spacing:-4px;margin:24px 0 32px}.intro-title em{font-family:var(--script);display:block;font-weight:400;letter-spacing:0;font-size:1.12em;padding-top:8px}.envelope{width:min(360px,85vw);height:215px;margin:20px auto 35px;background:linear-gradient(155deg,#e3e0d6,#fffdf5);position:relative;box-shadow:0 18px 45px #2425211c;transform:rotate(-4deg);border:1px solid #d1cdbf}.envelope:before{content:"";position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.5%,#c9c6ba 50%,transparent 50.5%),linear-gradient(-32deg,transparent 49.5%,#c9c6ba 50%,transparent 50.5%);clip-path:polygon(0 0,100% 0,50% 57%)}.envelope:after{content:"";position:absolute;inset:0;border:10px solid #fff9;clip-path:polygon(0 100%,0 12%,50% 60%,100% 12%,100% 100%)}.seal{position:absolute;z-index:1;left:50%;top:42%;translate:-50% -10%;width:65px;height:65px;border-radius:50%;display:grid;place-items:center;color:#f4f1e9;background:radial-gradient(circle at 40% 35%,#8b947b,#4c5541);border:5px double #a6ad9b;white-space:nowrap;font-size:25px;box-shadow:2px 4px 8px #0003;font:32px var(--script)}.intro-note{font:italic 22px var(--serif);margin-top:16px}.corner{position:absolute;font:110px var(--script);opacity:.13;pointer-events:none}.corner.a{top:20%;left:8%;rotate:-25deg}.corner.b{bottom:15%;right:10%;rotate:20deg}.soundbar{position:fixed;bottom:20px;left:20px;z-index:40;display:flex;gap:6px;align-items:center;background:var(--paper);border:1px solid var(--line);box-shadow:0 4px 20px #0001;padding:5px;border-radius:40px}.soundbar button{background:transparent;border:0;border-radius:30px;padding:8px 14px;font-size:11px;min-height:38px}.soundbar button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.soundbar a{font-size:11px;padding:8px;text-decoration:none}.edit-toggle{position:fixed;right:20px;bottom:20px;z-index:40;border:1px solid var(--line);background:var(--paper);padding:10px 16px;font-size:12px;border-radius:30px}.booth-title{font:400 clamp(50px,7vw,86px)/1 var(--serif);margin:16px 0 24px}.booth-title span{font-family:var(--script)}.machine{width:280px;max-width:80vw;padding:14px 14px 18px;background:linear-gradient(110deg,#b2b2ab,#f6f6ef 10%,#666863 17%,#deded7 25%,#4b4d47 51%,#deded6 75%,#73756d 90%,#dadbd3);box-shadow:0 14px 28px #0003,0 0 0 2px #585b53;position:relative;border-radius:7px}.machine-head{padding:14px 12px;color:#f4f1e9;background:linear-gradient(100deg,#292c26,#4a4c44,#1c1e19);display:flex;justify-content:space-between;align-items:center;border:1px solid #a3a79a;border-radius:3px;font:11px var(--sans);letter-spacing:3px}.led{height:7px;width:7px;border-radius:100%;background:#b8c7a1;box-shadow:0 0 10px #d8e2b8}.tray{height:310px;margin-top:10px;background:linear-gradient(110deg,#42453f,#d7d8cd 10%,#999d91 35%,#b8baae 70%,#42453f);border:5px ridge #b8bbae;box-shadow:inset 0 4px 16px #0008;position:relative;overflow:hidden}.slot{position:absolute;left:8px;right:8px;top:12px;height:9px;background:#111;box-shadow:0 2px 2px #fff8;z-index:3;border-radius:6px}.tray-label{position:absolute;top:90px;inset-inline:0;color:#f5f2e3;font:57px/.9 var(--script);text-shadow:0 1px 3px #0004}.strip{background:#1e201d;padding:9px 9px 28px;width:180px;box-shadow:5px 8px 14px #0004;position:relative;display:grid;gap:7px}.strip img{width:100%;height:110px;display:block;filter:grayscale(1);pointer-events:none}.strip img:nth-child(2){object-position:60% 40%}.strip img:nth-child(3){object-position:25% 70%}.strip figcaption{color:#e8e4d9;font:16px var(--script);text-align:center;padding:6px 0 0}.print-strip{position:absolute;top:19px;left:50%;margin:0;transform:translate(-50%,-106%);width:180px;z-index:2}.print-strip img{height:74px}.printing .print-strip{animation:print 4.6s cubic-bezier(.23,.5,.47,1) forwards}.machine-btn{width:48px;height:48px;margin:20px auto 0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4f5ed,#8e9286 38%,#30342b 42%,#d8dacf 50%,#62675a 65%,#d3d5c7 75%);border:1px solid #5b6053;box-shadow:0 3px 6px #0005;display:block}.machine-btn:active{scale:.92}.print-caption{margin-top:25px;max-width:360px;min-height:28px;font:italic 22px var(--serif)}@keyframes print{0%{transform:translate(-50%,-106%)}15%{transform:translate(-50%,-75%)}30%{transform:translate(-50%,-75%)}45%{transform:translate(-50%,-45%)}60%{transform:translate(-50%,-45%)}80%{transform:translate(-50%,0)}100%{transform:translate(-50%,0) rotate(-3deg)}}.flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:90}.flash.fire{animation:flash .28s ease-out}@keyframes flash{0%{opacity:.9}100%{opacity:0}}.gamecard{max-width:700px;width:100%;padding:50px 30px;border:1px solid var(--line);position:relative}.gamecard:before{content:"";position:absolute;inset:7px;border:1px solid var(--line);pointer-events:none}.game-symbol{font:60px var(--script);color:var(--accent);margin:10px 0}.gamecard h2{font-size:clamp(44px,6vw,68px);max-width:550px;margin-inline:auto}.choices{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:25px;position:relative;min-height:75px;padding-bottom:10px}.choices button{min-width:140px}.progress{display:flex;gap:8px;justify-content:center;margin-bottom:28px}.progress i{width:28px;height:3px;background:var(--line)}.progress i.on{background:var(--ink)}#gameReply{min-height:30px;font:italic 23px var(--serif);color:var(--accent)}.skip{margin-top:24px;border:0;background:none;text-decoration:underline;font-size:12px;letter-spacing:1px}.nav{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 6%;border-bottom:1px solid var(--line);position:relative;z-index:10}.monogram{font:36px var(--script);text-decoration:none}.navlinks{display:flex;gap:32px;align-items:center}.navlinks a{font:500 10px var(--sans);letter-spacing:2px;text-transform:uppercase;text-decoration:none}.hero{padding:60px 5% 0;text-align:center;overflow:hidden}.hero h1{font:400 clamp(82px,12vw,172px)/.9 var(--script);margin:28px 0 12px;position:relative;z-index:2}.hero-sub{font:italic clamp(24px,3vw,34px) var(--serif)}.collage{width:min(940px,100%);height:570px;margin:32px auto 25px;position:relative}.hero-photo{position:absolute;width:60%;height:450px;left:18%;top:45px;rotate:-5deg;background:#fff;padding:13px 13px 60px;box-shadow:0 10px 30px #0002}.hero-photo img{width:100%;height:100%;filter:grayscale(1)}.photo-note{position:absolute;bottom:12px;left:0;right:0;font:32px var(--script)}.collage .strip{position:absolute;right:5%;top:10px;rotate:13deg;width:160px;margin:0}.collage .strip img{height:98px}.stamp{position:absolute;top:34px;left:4%;width:125px;height:125px;border:1px solid var(--ink);border-radius:50%;display:flex;flex-direction:column;justify-content:center;rotate:-15deg;font:11px/1.7 var(--sans);letter-spacing:2px;background:var(--paper)}.stamp b{font:42px var(--serif);letter-spacing:0}.record{position:absolute;left:4%;bottom:15px;width:150px;height:150px;border-radius:50%;background:repeating-radial-gradient(circle,#161815 0px,#161815 2px,#30322b 3px,#11130f 4px);display:grid;place-items:center;box-shadow:5px 10px 18px #0003;border:0;color:var(--ink);rotate:10deg}.record span{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:var(--paper);font:27px var(--script);border:1px solid #aaa}.record:after{content:"PALEISK ↗";position:absolute;bottom:-30px;font:10px var(--sans);letter-spacing:2px;white-space:nowrap}.record.spinning span{animation:spin 5s linear infinite}@keyframes spin{to{rotate:360deg}}.love-scribble{position:absolute;bottom:25px;right:5%;font:65px/1 var(--script);rotate:-12deg}.date-line{font:400 clamp(30px,4vw,46px) var(--serif);letter-spacing:5px}.section{padding:95px 7%}.center{text-align:center}.intro-copy{max-width:650px;margin:0 auto 30px;font:25px/1.5 var(--serif)}.countdown{display:flex;justify-content:center;gap:clamp(16px,5vw,65px);margin:35px 0}.countdown b{display:block;font:400 clamp(38px,5vw,65px)/1 var(--serif)}.countdown span{display:block;font-size:10px;letter-spacing:2px;margin-top:10px;text-transform:uppercase}.countdown div{min-width:45px}.ticket{max-width:960px;margin:auto;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);position:relative}.ticket:before,.ticket:after{content:"";position:absolute;width:24px;height:24px;border:1px solid var(--ink);border-radius:50%;background:var(--paper);left:50%;translate:-50% -50%;top:0}.ticket:after{top:100%}.ticket-main{padding:45px;border-right:1px dashed var(--ink)}.ticket-side{padding:45px;display:flex;flex-direction:column;justify-content:center;text-align:center}.ticket-side .script{font-size:68px}.ticket .eyebrow{font-size:10px}.grid-two{max-width:1080px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px}.arch-photo{height:600px;width:100%;border-radius:50% 50% 0 0;filter:grayscale(1)}.details-list{border-top:1px solid var(--line)}.detail{display:grid;grid-template-columns:65px 1fr;gap:22px;padding:25px 0;border-bottom:1px solid var(--line)}.detail p{margin:0;font-size:15px}.detail time{font:28px var(--serif);color:var(--accent)}.venue{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.venue .grid-two{gap:60px}.venue img{height:480px;width:100%;filter:grayscale(1)}.venue .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}.venue .script{font-size:clamp(50px,6vw,76px)}.venue .eyebrow{opacity:.6}.venue p{max-width:420px}.little-details{display:grid;grid-template-columns:repeat(3,1fr);max-width:1120px;margin:60px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.little-details article{padding:38px 30px}.little-details article+article{border-left:1px solid var(--line)}.little-details p{font-size:15px;margin:0}.line-icon{font:45px/1 var(--serif);display:block;margin-bottom:22px}.moments{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;max-width:1000px;margin:45px auto}.polaroid{margin:0;background:#fffefb;padding:10px 10px 22px;box-shadow:0 7px 20px #0001;rotate:-4deg}.polaroid:nth-child(2){rotate:4deg;translate:0 25px}.polaroid:nth-child(3){rotate:-2deg}.polaroid img{width:100%;height:275px;filter:grayscale(1);display:block}.polaroid figcaption{font:29px var(--script);padding-top:16px}.rsvp-wrap{max-width:760px;margin:auto;border:1px solid var(--ink);padding:60px;outline:1px solid var(--line);outline-offset:8px}.rsvp-wrap h2{font-size:80px}.rsvp-wrap label{text-align:left;font-size:12px;letter-spacing:1px;display:block;margin-bottom:18px}.rsvp-wrap input,.rsvp-wrap select,.rsvp-wrap textarea{display:block;width:100%;font:16px var(--sans);padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);margin-top:6px}.rsvp-wrap input:focus,.rsvp-wrap textarea:focus,.rsvp-wrap select:focus{outline:0;border-color:var(--ink)}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:25px}.rsvp-wrap textarea{min-height:70px;resize:vertical}.rsvp-wrap .check{display:flex;gap:10px;align-items:flex-start;letter-spacing:0;font-size:12px}.check input{width:auto;margin-top:4px}.rsvp-wrap .btn{width:100%;margin-top:10px}#rsvpStatus{font-size:14px;margin-top:18px}.faq{max-width:760px;margin:35px auto}.faq details{border-bottom:1px solid var(--line);text-align:left;padding:22px 0}.faq summary{cursor:pointer;font:25px var(--serif)}.faq p{font-size:15px;margin:15px 0 0}.footer{padding:80px 25px 110px;text-align:center;background:var(--ink);color:var(--paper)}.footer .script{font-size:clamp(55px,8vw,100px);margin:25px}.footer small{letter-spacing:2px;font-size:10px}.reveal{opacity:0;translate:0 24px;transition:opacity .8s,translate .8s}.reveal.visible{opacity:1;translate:0 0}.confetto{position:fixed;top:-20px;z-index:100;pointer-events:none;animation:fall 3s ease-in forwards}@keyframes fall{to{translate:var(--drift) 110vh;rotate:600deg;opacity:0}}.toast{position:fixed;top:20px;left:50%;translate:-50% 0;background:var(--ink);color:var(--paper);z-index:150;padding:13px 22px;max-width:90vw;font-size:13px;text-align:center}.editor{position:fixed;inset:0 0 0 auto;width:390px;max-width:95vw;background:#fffef9;box-shadow:-10px 0 50px #0002;z-index:80;overflow:auto;padding:28px;color:#242521;font:14px/1.5 var(--sans)}.editor h3{font:32px var(--serif);margin:10px 0}.editor label{display:block;margin:16px 0;font-size:12px}.editor input,.editor select,.editor textarea{width:100%;padding:10px;border:1px solid #ccc;background:white;font:14px var(--sans);margin-top:5px}.editor input[type=color]{height:40px;padding:2px}.editor .btn{width:100%;margin:5px 0;font-size:10px}.editor .x{float:right;background:transparent;border:0;font-size:25px}.editor details{margin:18px 0;border-bottom:1px solid #ddd;padding-bottom:15px}.editor summary{cursor:pointer;font-weight:600}.editor .hint{font-size:12px;color:#666}.editing [data-edit]{outline:1px dashed #8f9e7a;outline-offset:3px;cursor:text;min-width:20px}.editing [data-photo]{cursor:pointer;outline:3px solid #8f9e7a;outline-offset:3px}.editing [data-photo]:hover{opacity:.6}.editing .reveal{opacity:1;translate:none}.ytbox{position:fixed;width:280px;right:20px;bottom:85px;z-index:45;box-shadow:0 5px 25px #0004;background:#181a16;padding:8px;color:white}.ytbox iframe{width:100%;height:148px;border:0;display:block}.ytbox .player-note{font:10px/1.5 var(--sans);padding:6px;display:flex;align-items:center;justify-content:space-between;gap:6px}.ytbox button{min-height:30px;background:transparent;color:white;border:1px solid #888;font-size:11px}.volume{width:55px;accent-color:var(--ink)}
@media(min-width:1450px){.section{padding-top:110px;padding-bottom:110px}}@media(max-width:750px){body{font-size:16px}.nav{height:65px;padding:0 24px}.navlinks{gap:15px}.navlinks a{font-size:9px;letter-spacing:1px}.navlinks a:nth-child(2){display:none}.hero{padding-top:45px}.hero h1{font-size:clamp(66px,14vw,106px);margin-top:30px}.collage{height:430px;margin-top:25px}.hero-photo{width:76%;height:320px;left:4%;top:40px;padding:8px 8px 50px}.collage .strip{width:110px;right:1%;top:6px;padding:6px 6px 15px;gap:5px}.collage .strip img{height:75px}.stamp{width:83px;height:83px;left:1%;top:0;font-size:8px;letter-spacing:1px;z-index:3}.stamp b{font-size:29px}.record{width:105px;height:105px;left:6%;bottom:10px}.record span{width:45px;height:45px;font-size:20px}.record:after{font-size:8px;bottom:-24px}.love-scribble{font-size:44px;bottom:18px;right:5%}.photo-note{font-size:27px}.section{padding:65px 25px}.grid-two{grid-template-columns:1fr;gap:45px}.arch-photo{height:420px;max-width:420px;margin:auto;display:block}.ticket{grid-template-columns:1fr}.ticket-main{border-right:0;border-bottom:1px dashed var(--ink);padding:30px}.ticket-side{padding:30px}.ticket:before,.ticket:after{display:none}.ticket-side .script{font-size:56px}.little-details{grid-template-columns:1fr;margin-top:30px}.little-details article{padding:30px 0}.little-details article+article{border-left:0;border-top:1px solid var(--line)}.venue img{height:340px}.moments{gap:12px;margin:30px auto 25px}.polaroid{padding:6px 6px 12px}.polaroid img{height:170px}.polaroid figcaption{font-size:22px}.rsvp-wrap{padding:35px 22px}.rsvp-wrap h2{font-size:65px}.formrow{grid-template-columns:1fr;gap:0}.soundbar{bottom:12px;left:10px}.soundbar button{padding:6px 10px;font-size:10px}.soundbar a{display:none}.edit-toggle{bottom:12px;right:10px;font-size:10px;padding:8px 12px}.volume{width:42px}.ytbox{right:10px;bottom:75px;width:250px}.stage{padding-top:70px}.intro-title{font-size:72px;letter-spacing:-3px}.envelope{height:190px;width:310px}.gamecard{padding:35px 20px}.corner.a{left:0;top:14%}.corner.b{right:0}.date-line{letter-spacing:3px}.intro-copy{font-size:23px}}
@media(max-width:390px){.hero h1{font-size:62px}.collage{height:390px}.hero-photo{height:280px}.collage .strip{width:100px}.collage .strip img{height:66px}.moments{gap:8px}.polaroid img{height:135px}.polaroid figcaption{font-size:19px}.soundbar{gap:0}.volume{display:none}.navlinks{gap:10px}.stage{padding-inline:18px}.intro-title{font-size:61px}.choices button{min-width:110px;padding-inline:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;translate:none}}
@media print{.stage,.nav,.soundbar,.edit-toggle,.editor,.ytbox,.btn,.skip{display:none!important}main[hidden]{display:block!important}.reveal{opacity:1;translate:none}.section{break-inside:avoid}.hero{padding-top:0}.footer{padding-bottom:30px}body:before{display:none}}

/* The Love Booth, second edition — original stationery & wedding doodles. */
:root{--paper:#f7f5ef;--ink:#272923;--accent:#69715d}body{background-image:radial-gradient(ellipse at 20% 5%,#fff8,transparent 45%)}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.wedding-icon{width:110px;height:110px;display:inline-block;fill:none;overflow:visible;color:var(--ink)}.stage{padding-bottom:100px}.eyebrow{font-size:12px;letter-spacing:2.6px}p{font-size:18px}.btn{font-size:12px;letter-spacing:1.6px;padding:16px 30px}.intro-title{font-size:clamp(66px,7vw,100px);line-height:.94;letter-spacing:-3px;margin:20px 0 28px;position:relative;z-index:2}.intro-title em{font-size:1.3em;line-height:1.05;padding-top:0}.intro-note{font-size:24px;margin-top:17px;margin-bottom:4px}.stage .footmark{margin-top:22px;font-size:10px}.intro-doodles{position:absolute;inset:0;pointer-events:none}.float-doodle{position:absolute;width:clamp(85px,12vw,180px);height:clamp(85px,12vw,180px);opacity:.8;animation:sway 7s ease-in-out infinite}.d0{left:10%;top:21%;rotate:-16deg}.d1{right:11%;top:19%;rotate:13deg}.d2{left:20%;bottom:18%;rotate:-18deg;width:130px}.d3{right:9%;bottom:17%;rotate:14deg;height:210px;width:160px}.d4{left:4%;bottom:6%;rotate:14deg;width:130px}.d5{right:28%;top:9%;width:65px;rotate:-17deg}@keyframes sway{50%{translate:0 -8px;rotate:3deg}}.envelope-scene{position:relative;width:min(460px,80vw);height:290px;margin:36px auto 30px;perspective:1000px;z-index:2}.envelope-real{position:relative;inset:0;width:100%;height:100%;transform:rotate(-7deg);filter:drop-shadow(0 24px 20px #37362d30);transition:transform 1s}.envelope-back{position:absolute;inset:0;border-radius:4px;background:linear-gradient(155deg,#d5d0c0,#eae5d6 45%,#c9c3b1);border:1px solid #c9c2b0}.envelope-pocket{position:absolute;inset:0;z-index:4;background:linear-gradient(27deg,transparent 49.6%,#c9c1ae 49.9%,#f0ebdc 50.3%) left/50% 100% no-repeat,linear-gradient(-27deg,transparent 49.6%,#c9c1ae 49.9%,#e6dfcd 50.3%) right/50% 100% no-repeat;clip-path:polygon(0 0,50% 51%,100% 0,100% 100%,0 100%);border:1px solid #cec7b5;border-radius:3px}.envelope-pocket:after{content:"";position:absolute;inset:0;background:linear-gradient(152deg,transparent 49.5%,#d5cdba 49.8%,#f4efdf 50.2%);clip-path:polygon(0 100%,50% 48%,100% 100%);box-shadow:inset 0 -10px 20px #9b947b13}.envelope-flap{position:absolute;inset:0;z-index:5;background:linear-gradient(165deg,#faf6e9,#e9e2ce 65%,#bdb49b);clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:top;transition:transform 1s cubic-bezier(.3,.1,.3,1),filter 1s;filter:drop-shadow(0 3px 2px #82795f55)}.wax-seal{position:absolute;left:50%;top:45%;translate:-50% -5%;width:76px;height:76px;z-index:7;border-radius:47% 52% 46% 49%;border:0;background:radial-gradient(ellipse at 35% 25%,#a7af96 0,#788363 25%,#596547 64%,#3c4930 80%,#8e997a 90%);box-shadow:inset 0 0 0 3px #7f8b6d,inset 2px 2px 3px #d2d9c18c,2px 4px 5px #393e2b66;transition:transform .5s,opacity .5s}.wax-seal:before{content:"";position:absolute;inset:9px;border:1px solid #c2cca766;border-radius:50%;box-shadow:inset 1px 1px 2px #2f3b2c55}.wax-seal span{display:block;max-width:100%;font:18px/1 Georgia,serif;letter-spacing:-1px;color:#ebeedc;text-shadow:0 1px 1px #293320;white-space:nowrap;text-align:center}.wax-seal:hover{transform:scale(1.08)}.envelope-address{position:absolute;bottom:30px;left:10px;right:10px;font:26px var(--script);color:#5c594b;z-index:6;text-align:center}.letter-insert{position:absolute;left:6%;top:5%;width:88%;height:86%;z-index:2;background:linear-gradient(120deg,#fffcf2,#efeadc);padding:20px 20px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;box-shadow:0 0 4px #6c665329;transition:transform 1.1s .5s,rotate 1s .5s}.letter-insert:before{content:"";position:absolute;inset:9px;border:1px solid #a99e8280}.letter-insert .eyebrow{font-size:8px;letter-spacing:2px}.letter-insert .script{font-size:47px}.letter-insert .wedding-icon{height:55px;width:65px}.letter-insert>span:last-child{font:italic 18px var(--serif)}.open-scribble{position:absolute;bottom:-30px;right:-90px;font:25px var(--script);rotate:-10deg;transition:opacity .3s}.is-opening .envelope-real{transform:rotate(-2deg) translateY(35px)}.is-opening .wax-seal{transform:scale(.8) translateY(70px) rotate(20deg);opacity:0;pointer-events:none}.is-opening .envelope-flap{transform:rotateX(180deg);filter:brightness(.85);z-index:1}.is-opening .letter-insert{transform:translateY(-190px);rotate:4deg}.is-opening .open-scribble{opacity:0}#intro>.eyebrow,#intro>.intro-title,#intro>.btn,#intro>.intro-note{z-index:2}.booth-title{font-size:clamp(50px,5vw,74px);margin-bottom:24px;line-height:.98}.booth-title span{font-size:1.2em}.booth-ornament{display:flex;justify-content:center;align-items:center;gap:8px;padding:4px 0 10px}.booth-ornament .wedding-icon{width:42px;height:32px}.booth-ornament .script{font-size:26px;color:#272b23}.machine{width:300px;padding-top:7px;z-index:3}.tray{height:360px;overflow:visible;clip-path:inset(0 -150px -300px)}.tray:before{content:"";position:absolute;left:0;right:0;top:0;height:21px;background:linear-gradient(110deg,#55594d,#b4b8a9);z-index:4}.tray .slot{z-index:5}.print-strip{width:178px;top:21px;transform:translate(-50%,-110%);padding:8px 8px 10px;gap:5px;transition:filter .5s}.print-strip img{height:53px}.print-strip figcaption{font-size:19px}.printing .print-strip{animation:printSix 5s steps(24,end) forwards}.dropped .tray{z-index:6}.dropped .print-strip{animation:dropStrip 1.15s cubic-bezier(.3,.02,.7,1) forwards;filter:drop-shadow(10px 10px 7px #0004)}@keyframes printSix{0%{transform:translate(-50%,-110%)}100%{transform:translate(-50%,0)}}@keyframes dropStrip{0%{transform:translate(-50%,0) rotate(-2deg)}40%{transform:translate(-37%,70px) rotate(9deg)}75%{transform:translate(-43%,95px) rotate(-12deg)}100%{transform:translate(-43%,84px) rotate(-9deg)}}.machine-btn{position:relative;z-index:10;margin-top:20px}.booth-floor{width:350px;max-width:90%;height:90px;border-radius:50%;margin-top:-1px;background:radial-gradient(ellipse,#46493825,transparent 65%);display:flex;align-items:flex-end;justify-content:center;padding-bottom:0}.booth-floor span{font-size:8px;letter-spacing:2px}.print-caption{margin-top:115px;margin-bottom:0;font-size:22px;max-width:420px}#booth .booth-floor{height:24px;margin:0}#toGame{z-index:5;margin-top:20px}.game-art .wedding-icon{width:110px;height:100px}.gamecard{background:#fff6;box-shadow:8px 8px 0 var(--paper),9px 9px 0 var(--line);border-radius:170px 170px 0 0;padding-top:65px}.gamecard:before{border-radius:164px 164px 0 0}.gamecard h2{font-size:clamp(46px,5vw,68px)}.gamecard .eyebrow{margin:12px auto}.hero{position:relative;padding-top:70px;background:radial-gradient(ellipse at 50% 60%,#e2decd44,transparent 65%)}.hero h1{font-size:clamp(84px,12vw,170px);padding-inline:16px}.hero-doodle{position:absolute;pointer-events:none}.hero-doodle .wedding-icon{width:145px;height:145px}.hd1{top:70px;left:7%;rotate:-13deg}.hd2{top:75px;right:6%;rotate:15deg}.hero-sub{font-size:30px}.collage{height:600px}.hero-photo{box-shadow:0 16px 30px #0003;outline:1px solid #d7d1c333}.collage-rings{position:absolute;right:0;bottom:100px;rotate:17deg}.collage-rings .wedding-icon{width:135px;height:135px}.stamp{border:3px double var(--ink);outline:1px solid var(--line);outline-offset:4px}.section{position:relative;padding-top:85px;padding-bottom:85px}.section-art{margin:0 auto 20px}.section-art .wedding-icon{width:100px;height:100px}.left-art{margin:0 0 18px}.section h2{font-size:clamp(50px,6vw,88px)}.intro-copy{font-size:28px;max-width:700px}.love-section:before,.love-section:after{content:"✳";position:absolute;font:60px var(--serif);top:40%;left:10%;rotate:15deg;color:var(--accent)}.love-section:after{left:auto;right:10%;font-size:35px;top:60%}.ticket{background:repeating-linear-gradient(0deg,#fff0 0px,#fff0 4px,#e2ddcd20 5px);box-shadow:10px 10px 0 #d9d5c549;transform:rotate(-1deg)}.ticket-bow{width:100px;height:70px;margin:-10px auto 10px}.ticket-side .script{font-size:74px}.ticket-main h2{font-size:72px}.venue{border-top:12px double var(--paper);border-bottom:12px double var(--paper)}.venue .grid-two{position:relative}.venue img{padding:9px;border:1px solid #f4f1e970;rotate:3deg}.venue p{font-size:18px}.detail p{font-size:17px}.detail h3{font-size:34px}.detail time{font-size:30px}.little-details{gap:25px;border:0}.little-details article{border:1px solid var(--line)!important;padding:35px 25px;background:#fff4;position:relative}.little-details article:nth-child(2){rotate:-2deg}.detail-illustration{height:100px;width:120px;margin-bottom:16px}.little-details h3{font-size:34px}.little-details p{font-size:17px}.rsvp-wrap{position:relative;background:#fff4;border:2px solid var(--ink);padding-top:65px;box-shadow:13px 13px 0 #d7d0bb30}.rsvp-bow{position:absolute;top:-56px;left:50%;translate:-50%;background:var(--paper);padding-inline:15px}.rsvp-bow .wedding-icon{width:140px;height:100px}.rsvp-wrap h2.script{font:400 82px/1.1 var(--script)}.rsvp-wrap label{font-size:14px}.faq summary{font-size:29px}.faq p{font-size:17px}.footer-art{display:flex;gap:60px;justify-content:center;margin-bottom:35px}.footer-art .wedding-icon{width:90px;height:100px;color:var(--paper)}.polaroid figcaption{font-size:32px}.soundbar{padding:6px 10px;gap:5px;border-radius:6px;max-width:calc(100vw - 110px)}.soundbar button{border-radius:3px;padding:6px 10px;font-size:11px}.wave-bars{display:flex;align-items:center;height:25px;gap:2px;padding:0 4px}.wave-bars i{width:2px;height:6px;background:var(--ink)}.music-playing .wave-bars i{animation:wave .8s ease-in-out infinite alternate}.wave-bars i:nth-child(2){height:17px;animation-delay:.2s}.wave-bars i:nth-child(3){height:23px;animation-delay:.4s}.wave-bars i:nth-child(4){height:13px;animation-delay:.3s}@keyframes wave{to{height:3px}}#trackTime{font:10px var(--sans);min-width:26px}.track-line{width:50px;height:2px;background:var(--line);position:relative}.track-line i{display:block;height:100%;width:0;background:var(--ink)}.audio-engine{position:fixed!important;width:1px!important;height:1px!important;left:-10px!important;bottom:0!important;right:auto!important;padding:0!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important;box-shadow:none!important}.audio-engine iframe{width:200px!important;height:200px!important}.audio-engine .player-note{display:none}.editor .wedding-icon{width:45px;height:45px}
@media(min-width:1500px){#intro{padding-top:85px;padding-bottom:65px}.envelope-scene{margin-block:35px}}@media(max-height:850px) and (min-width:751px){#intro{padding-top:75px;padding-bottom:70px}.intro-title{font-size:76px;margin-top:13px;margin-bottom:10px}.envelope-scene{width:380px;height:235px;margin-top:25px;margin-bottom:25px}.intro-note{font-size:22px}.stage .footmark{margin-top:12px}.letter-insert .script{font-size:38px}.letter-insert .wedding-icon{height:35px}.letter-insert{gap:7px}.is-opening .letter-insert{transform:translateY(-155px)}}
@media(max-width:750px){.stage{padding:100px 20px 100px;justify-content:center}.intro-title{font-size:67px;margin:18px 0 25px;letter-spacing:-2px}.intro-title em{font-size:1.32em}.envelope-scene{width:min(350px,85vw);height:218px;margin:30px auto 33px}.envelope-address{font-size:22px;bottom:23px}.wax-seal{width:60px;height:60px}.wax-seal span{font-size:15px;letter-spacing:-1px}.letter-insert{padding:15px;gap:7px}.letter-insert .script{font-size:36px}.letter-insert .eyebrow{font-size:7px;letter-spacing:1px}.letter-insert .wedding-icon{height:37px}.letter-insert>span:last-child{font-size:16px}.is-opening .letter-insert{transform:translateY(-142px)}.open-scribble{font-size:22px;right:5px;bottom:-28px}.float-doodle{width:75px;height:75px;opacity:.6}.d0{left:2%;top:10%;width:65px}.d1{right:2%;top:12%;width:75px}.d2{left:3%;bottom:6%;width:70px}.d3{right:2%;bottom:5%;height:110px;width:80px}.d4{display:none}.d5{right:18%;top:7%;width:40px}.intro-note{font-size:21px}.stage .footmark{font-size:8px;max-width:250px;line-height:1.8}.stage .topmark{font-size:9px;top:23px}.stage>.eyebrow{font-size:9px}.machine{width:260px}.tray{height:330px}.print-strip{width:155px;padding:7px 7px 8px;gap:4px}.print-strip img{height:48px}.print-strip figcaption{font-size:17px}.booth-title{font-size:48px;margin-top:14px}.booth-ornament .script{font-size:23px}.print-caption{font-size:21px;margin-top:110px;max-width:320px}.booth-floor{max-width:100%}#booth{padding-top:76px;justify-content:flex-start;min-height:920px}.gamecard{padding-top:45px}.gamecard h2{font-size:44px}.gamecard p{font-size:16px}.game-art .wedding-icon{width:95px;height:85px}.hero{padding-top:70px}.hero h1{font-size:clamp(65px,14vw,105px);padding-inline:4px}.hero-sub{font-size:24px}.hero-doodle .wedding-icon{width:65px;height:65px}.hd1{top:8px;left:7%}.hd2{top:8px;right:7%}.hero>.eyebrow{font-size:9px;letter-spacing:1.5px}.collage{height:435px}.collage-rings{right:2%;bottom:75px}.collage-rings .wedding-icon{width:75px;height:75px}.collage .strip{right:4%}.hero-photo{left:7%;width:73%}.hero .stamp{left:5px;top:5px}.love-scribble{right:9%;bottom:10px}.section{padding:65px 25px}.section h2{font-size:56px}.section-art .wedding-icon{width:85px;height:85px}.intro-copy{font-size:24px}.love-section:before,.love-section:after{display:none}.ticket-main h2{font-size:58px}.ticket-main{padding:34px 30px}.ticket-side{padding:35px 25px}.ticket-side .script{font-size:64px}.detail h3{font-size:30px}.detail p{font-size:16px}.little-details{gap:24px}.little-details article{padding:30px 25px}.little-details article:nth-child(2){rotate:-1deg}.detail-illustration{width:100px;height:90px}.little-details h3{font-size:33px}.little-details p{font-size:16px}.venue p{font-size:17px}.polaroid figcaption{font-size:22px}.rsvp-wrap{padding-top:55px}.rsvp-wrap h2.script{font-size:65px}.rsvp-wrap p{font-size:16px}.rsvp-bow{top:-48px}.rsvp-bow .wedding-icon{height:85px;width:115px}.faq summary{font-size:26px}.footer-art{gap:25px}.footer-art .wedding-icon{width:75px;height:80px}.soundbar{gap:2px;padding:5px;left:8px;bottom:10px}.soundbar button{font-size:10px;padding:5px 7px}.soundbar .volume{width:40px}.wave-bars{padding:0 2px;gap:2px}.track-line{width:25px}.soundbar #trackTime{font-size:9px;min-width:23px}.soundbar a{display:none}.edit-toggle{font-size:9px;right:8px;bottom:10px;padding:6px 9px;min-height:44px}.footer{padding-bottom:110px}}
@media(max-width:390px){.intro-title{font-size:60px}.envelope-scene{height:200px;width:310px}.stage{padding-inline:16px}.envelope-address{font-size:20px}.letter-insert .script{font-size:33px}.letter-insert .eyebrow{font-size:6px}.intro-note{font-size:20px}.soundbar .volume{display:none}.hero h1{font-size:62px}.section h2{font-size:50px}.print-caption{font-size:19px}.gamecard h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){.is-opening .envelope-flap{transform:rotateX(180deg)}.printing .print-strip,.dropped .print-strip{transform:translate(-43%,84px) rotate(-9deg)}.float-doodle{animation:none}}


/* Viewport-fit photo booth: artwork scales, controls stay readable. */
#booth{height:100svh;min-height:0!important;padding:22px 20px 82px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;overflow:hidden;justify-content:stretch;align-items:stretch}
.booth-scene{position:relative;min-height:0;width:100%}.booth-fit{position:absolute;width:min(500px,calc(100vw - 32px));left:50%;top:0;transform:translateX(-50%) scale(var(--booth-fit,1));transform-origin:top center;display:flex;align-items:center;flex-direction:column;padding-bottom:140px}
#booth .booth-title{font-size:60px;line-height:.95;margin:0 0 25px}#booth .booth-title span{font-size:1.18em}
#booth .machine{width:270px;padding:12px}#booth .tray{height:320px;margin:0}#booth .tray-label{top:100px;font-size:50px}
#booth .print-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0;padding:0;white-space:nowrap}
.booth-actions{display:flex;align-items:center;justify-content:center;gap:14px;position:relative;z-index:15;min-height:54px;background:var(--paper)}#booth #toGame{margin:0;min-height:52px;min-width:190px;font-size:14px;letter-spacing:1px}#booth #toGame[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}
#booth .machine-btn{margin:0;width:46px;height:46px;min-height:46px;flex-shrink:0}#booth .machine-btn:after{content:"↻";position:absolute;inset:0;display:grid;place-items:center;font:23px Georgia;color:#23281c;text-shadow:0 1px #eee}
/* Remove decorative micro-copy; retain form labels and practical details. */
#intro>.eyebrow,#intro>.topmark,#intro>.footmark,#booth .print-strip figcaption,.nav .eyebrow,main .eyebrow{display:none}
#intro .intro-note{display:none}#intro .open-scribble{display:none}
@media(max-width:750px){#booth{padding:14px 16px 80px;gap:8px}#booth .booth-title{font-size:53px;margin-bottom:22px}#booth .machine{width:250px}#booth .tray{height:300px}.booth-fit{padding-bottom:125px}#booth #toGame{font-size:14px;min-width:185px}.booth-actions{gap:14px}}
@media(max-height:520px){#booth{padding-top:10px;padding-bottom:66px}.booth-actions{min-height:48px}#booth #toGame{min-height:48px}#booth .booth-title{font-size:48px;margin-bottom:16px}}

/* Original design retained. Platform integration and subtle rounded finishing only. */
body.sw-inv-page[data-layout=booth]{padding-bottom:0;overflow-x:clip}
[data-layout=booth] #sw-guest{padding:0;min-height:0}
[data-layout=booth] .sw-guest-nav{width:100%;padding:18px 5vw;border-bottom:1px solid var(--line);font:500 12px var(--sans);background:var(--paper)}
[data-layout=booth] .sw-guest-nav>a{font:28px var(--script)}
[data-layout=booth]:is([data-booth-stage=intro],[data-booth-stage=booth],[data-booth-stage=game])>.sw-guest-nav{display:none}
[data-layout=booth] .sw-preview-label{margin:0;padding:6px 15px;font:12px/1.5 var(--sans);background:#00000006}
[data-layout=booth] .stage{min-height:var(--lb-stage-height,100svh)}
[data-layout=booth] #booth{height:var(--lb-stage-height,100svh);padding-bottom:var(--lb-audio-clearance,90px)}
[data-layout=booth] .envelope-real{cursor:pointer;touch-action:manipulation}
[data-layout=booth] .envelope-back,[data-layout=booth] .envelope-pocket{border-radius:14px}
[data-layout=booth] .letter-insert{border-radius:10px}
[data-layout=booth] .btn,[data-layout=booth] .primary,[data-layout=booth] .secondary{border-radius:14px;box-shadow:0 3px 0 #00000010,0 6px 14px #00000008}
[data-layout=booth] .btn:active{transform:translateY(1px);box-shadow:0 1px 0 #00000012}
/* Preserve the original rectangular chrome machine, slot, panel and paper animation. */
[data-layout=booth] #booth .machine{border-radius:18px}
[data-layout=booth] #booth .tray{border-radius:10px}
[data-layout=booth] .print-strip{border-radius:3px}
[data-layout=booth] .gamecard{border-bottom-left-radius:18px;border-bottom-right-radius:18px}
[data-layout=booth] .gamecard:before{border-bottom-left-radius:12px;border-bottom-right-radius:12px;pointer-events:none}
[data-layout=booth] .little-details article,[data-layout=booth] .rsvp-wrap{border-radius:16px}
[data-layout=booth] .rsvp-wrap:before{border-radius:10px;pointer-events:none}
[data-layout=booth] .polaroid,[data-layout=booth] .hero-photo{border-radius:5px}
[data-layout=booth] [data-edit]{overflow-wrap:break-word}
[data-layout=booth] #choices{position:relative;flex-wrap:wrap}
[data-layout=booth] #choices .btn{max-width:100%;white-space:normal}
[data-layout=booth] .lb-back{flex-basis:100%}
[data-layout=booth] .lb-rsvp-actions{display:flex;flex-direction:column;gap:14px;margin:25px auto;max-width:340px}
[data-layout=booth] .lb-private-note{font:13px/1.5 var(--sans);opacity:.65}
[data-layout=booth] #gameReply{min-height:26px}
@media(max-width:750px){[data-layout=booth] #game{padding:65px 20px 110px}[data-layout=booth] #choices{flex-direction:column;align-items:center}[data-layout=booth] #choices .btn{width:100%}[data-layout=booth] .sw-guest-nav{padding:15px 20px;gap:10px}[data-layout=booth] .sw-guest-nav>a{max-width:55%;font-size:24px}[data-layout=booth] .sw-guest-nav div{gap:14px}[data-layout=booth] .fun-audio-controls{right:12px;bottom:max(12px,env(safe-area-inset-bottom));gap:5px}[data-layout=booth] .fun-audio-controls button{font-size:12px;padding:9px 11px;min-height:40px}}
@media(prefers-reduced-motion:reduce){#lb-flash.fire{animation:none}}
[data-layout=booth] .lb-slider,[data-layout=booth] .lb-song{width:100%;max-width:440px;margin:auto;display:flex;align-items:center;flex-direction:column;gap:18px}
[data-layout=booth] .lb-slider output{font:400 58px/1 var(--serif)}
[data-layout=booth] .lb-slider input{width:100%;accent-color:var(--accent)}
[data-layout=booth] .lb-slider p{margin:0;font-size:17px}
[data-layout=booth] .lb-song label{width:100%;text-align:left;font:500 14px/1.7 var(--sans)}
[data-layout=booth] .lb-song input{width:100%;min-height:52px;margin-top:8px;padding:12px 15px;background:var(--paper);border:1px solid var(--line);border-radius:3px;color:var(--ink);font:17px var(--sans)}
[data-layout=booth] .lb-promise{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:15px;max-width:400px;cursor:pointer;padding:15px;color:var(--ink);font:20px/1.5 var(--serif);touch-action:manipulation}
[data-layout=booth] .lb-promise svg{width:95px;height:90px;transition:transform .7s}
[data-layout=booth] .lb-promise:active svg,[data-layout=booth] .lb-promise.sealed svg{transform:scale(1.2);color:var(--accent)}
[data-layout=booth] .lb-promise small{font:13px/1.5 var(--sans);opacity:.65}
[data-layout=booth] .lb-back{flex-basis:100%}
[data-layout=booth] .invitation{width:min(100%,1080px);min-height:0;max-height:none;margin:0 auto;padding:50px 25px 130px;border:0}
[data-layout=booth] .invitation .content{width:100%;max-width:760px}
[data-layout=booth] .invitation h2{font-size:clamp(42px,6vw,76px);line-height:1.06;max-width:750px;margin:20px auto}
[data-layout=booth] .guest-form{max-width:520px;width:100%;margin:35px auto 0}
[data-layout=booth] .guest-form input,[data-layout=booth] .guest-form textarea{border-color:var(--line)!important;background:var(--surface)!important;color:var(--ink)!important;font-family:var(--sans)!important;border-radius:12px!important}
[data-layout=booth] .guest-form label,[data-layout=booth] .guest-form legend{font:500 15px/1.7 var(--sans)}
[data-layout=booth] .primary,[data-layout=booth] .secondary{background:var(--ink);border:1px solid var(--ink);color:var(--button-text);font:600 15px/1.5 var(--sans);padding:15px 24px;border-radius:14px;min-height:52px}
[data-layout=booth] .secondary{background:none;color:var(--ink);border-color:var(--line)}
[data-layout=booth] .wedding-album img{height:220px;object-fit:cover;border-radius:12px}
[data-layout=booth] .form-small{font:13px/1.7 var(--sans)}
/* Same minimal MP3 controls as the platform, with the stationery palette. */
[data-layout=booth] .fun-audio-controls{position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:calc(100vw - 30px);z-index:90}
[data-layout=booth] .fun-audio-controls button{border:1px solid var(--line);background:var(--paper);color:var(--ink);font:500 13px/1.5 var(--sans);min-height:42px;padding:10px 14px;border-radius:14px;box-shadow:0 3px 16px #0000000a;cursor:pointer}
[data-layout=booth] #fun-music-toggle{display:flex;align-items:center;gap:10px;max-width:min(330px,calc(100vw - 34px))}
[data-layout=booth] #fun-music-toggle span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-layout=booth] #fun-music-toggle[hidden]{display:none}
[data-layout=booth] #fun-music-toggle[aria-pressed=true]{background:var(--ink);color:var(--paper)}
[data-layout=booth] #fun-music-error{font:13px/1.5 var(--sans);background:var(--paper);padding:10px 14px;max-width:300px}
#lb-flash{position:fixed;inset:0;z-index:150;pointer-events:none;background:var(--surface);opacity:0}
#lb-flash.fire{animation:lb-flash .18s ease-out}
@keyframes lb-flash{0%{opacity:.55}100%{opacity:0}}
#lb-export-editor{padding:16px 24px;border-bottom:1px solid var(--line);background:#fffcf5;font:14px/1.6 Arial;color:#252a23}
#lb-export-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px;max-width:1200px;margin:25px auto}
#lb-export-fields label{font:13px/1.5 Arial;display:block;white-space:normal}
#lb-export-fields :is(input,textarea,select){display:block;width:100%;min-height:44px;margin-top:6px;padding:10px;font:15px Arial;border:1px solid #252a2340;border-radius:12px;color:#252a23;background:#fff}
#lb-export-fields textarea{min-height:95px;resize:vertical}
#lb-export-editor button{font:14px Arial;padding:12px 18px;min-height:44px;margin:4px;background:#252a23;color:#fffcf5;border:0}
@media(max-width:750px) and (max-height:740px){
 [data-layout=booth] #intro{padding:12px 16px 90px;justify-content:center}
 [data-layout=booth] .intro-title{font-size:clamp(42px,8svh,58px);margin:12px 0 16px;letter-spacing:-2px}
 [data-layout=booth] .envelope-scene{width:min(285px,80vw);height:auto;aspect-ratio:1.6;margin:15px auto 20px}
 [data-layout=booth] .envelope-address{font-size:18px;bottom:20px}
 [data-layout=booth] .letter-insert .script{font-size:28px}
 [data-layout=booth] .d0,[data-layout=booth] .d1{top:9%;width:55px}
 [data-layout=booth] .d2,[data-layout=booth] .d3{bottom:13%;width:55px;height:70px}
}
@media(min-width:751px) and (max-height:850px){
 [data-layout=booth] #intro{padding:10px 24px 88px}
 [data-layout=booth] .intro-title{font-size:60px;margin:10px 0 10px}
 [data-layout=booth] .envelope-scene{width:320px;height:202px;margin:15px auto 16px}
}

/* SayWedding 1.5.50: long-press heart controls must never select invitation text.
   Scoped to interactive promise controls; normal invitation text remains selectable. */
:is(#promise, #lb-promise, #sl-promise, .lb-promise, .sl-promise),
:is(#promise, #lb-promise, #sl-promise, .lb-promise, .sl-promise) * {
  -webkit-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
  -webkit-tap-highlight-color: transparent;
}
:is(#promise, #lb-promise, #sl-promise, .lb-promise, .sl-promise) {
  touch-action: manipulation;
}
