/* A cover or quiz step fits one phone screen; wedding pages and forms grow naturally. */
.sw-screen-fit body{padding-bottom:0!important;min-height:0}
.sw-screen-fit :is(#sw-guest,.page){height:var(--sw-screen-height);min-height:0!important;padding:0 16px!important;position:relative;overflow:clip;box-sizing:border-box}
.sw-screen-fit :is(#sw-guest,.page)>.invitation{height:100%;min-height:0!important;max-height:none;margin:0 auto!important;padding:0!important;position:relative;width:100%;display:block}
.sw-screen-fit [data-screen-panel]{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%) scale(var(--sw-screen-scale,1))!important;transform-origin:center!important;width:100%;max-width:100%;min-height:0!important;height:auto;box-sizing:border-box}
.sw-screen-fit .content{animation:none}.sw-screen-fit :is(h1,h2,h3,p,button,label,.couple){overflow-wrap:anywhere}.sw-screen-fit :is(button,input,textarea){max-width:100%;min-width:0}
.sw-screen-fit .actions{min-height:74px;flex-wrap:wrap;gap:10px;margin-top:14px}.sw-screen-fit .primary,.sw-screen-fit .secondary{min-height:46px;line-height:1.3;padding:12px 19px;white-space:normal}
.sw-screen-fit .crest{width:120px;height:80px;margin:0 auto 8px}.sw-screen-fit .crest.small-art{width:70px;height:44px;margin-bottom:10px}
.sw-screen-fit h1{font-size:clamp(42px,13vw,70px);line-height:1.02;margin:8px auto 12px}.sw-screen-fit h2{font-size:clamp(30px,8.6vw,44px);line-height:1.1;margin:8px auto 14px}
.sw-screen-fit .attendance-question{font-size:27px;line-height:1.2;margin-top:15px}.sw-screen-fit .couple{font-size:23px;line-height:1.25}.sw-screen-fit .progress{margin-bottom:10px}
.sw-screen-fit .options{gap:8px;margin-top:12px}.sw-screen-fit .option{min-height:46px;padding:10px 13px;font-size:16px;line-height:1.35;gap:10px}.sw-screen-fit .option>span{min-width:0}
.sw-screen-fit .back{min-height:40px;padding:8px 12px;margin-top:8px;font-size:14px}.sw-screen-fit .note{font-size:14px;line-height:1.4;margin:6px auto}.sw-screen-fit .interaction-caption{font-size:17px;line-height:1.4;margin:8px auto}
.sw-screen-fit .next-question{margin-top:12px}.sw-screen-fit .song-vinyl{width:100px;height:100px;margin:10px auto}.sw-screen-fit .cheer-button{width:130px;height:130px;padding:20px}.sw-screen-fit .promise-heart{height:70px;width:85px;margin:10px auto}.sw-screen-fit .slider-value{font-size:58px;line-height:1}.sw-screen-fit .range-ends{font-size:12px;gap:10px}.sw-screen-fit .direct-rsvp{margin-top:10px;font-size:13px}.sw-screen-fit .song-label input{font-size:16px;padding:12px;min-width:0;width:100%}
.sw-screen-fit [data-layout=fun] .fun-cover{gap:12px}.sw-screen-fit [data-layout=fun] .fun-cover h1{font-size:clamp(35px,10vw,55px);line-height:1.05;margin:6px auto}.sw-screen-fit .fun-cover .fun-eyebrow{font-size:11px;line-height:1.4;margin:0 auto}.sw-screen-fit .fun-cover-caption{font-size:16px;line-height:1.45;margin:0 auto}
.sw-screen-fit .fun-envelope-stage{width:min(240px,76%);padding:30px 14px 18px;margin:4px auto 8px}.sw-screen-fit .fun-postmark{width:42px;height:42px;font-size:6px}.sw-screen-fit .fun-floating-rings,.sw-screen-fit .fun-floating-shoe{width:48px;height:52px;padding:7px}.sw-screen-fit .fun-envelope-bunting{height:30px}.sw-screen-fit .fun-hand-note{font-size:12px;line-height:1.3;margin:12px auto 0}
.sw-screen-fit .fun-cover-actions{margin:0;gap:0}.sw-screen-fit .fun-cover-actions .primary{min-width:0;width:100%;max-width:320px;min-height:46px;font-size:16px}.sw-screen-fit .fun-cover-footnote{display:none}
.sw-screen-fit .fun-question-top{margin-bottom:8px;gap:12px}.sw-screen-fit .fun-question-top .fun-eyebrow{font-size:10px;line-height:1.3}.sw-screen-fit .fun-page-number{font-size:18px;white-space:nowrap}
.sw-screen-fit .fun-question-layout{grid-template-columns:minmax(0,1fr);padding:16px;gap:12px;border-radius:26px;box-shadow:3px 4px 0 var(--fun-soft)}.sw-screen-fit .fun-question-copy{padding:0}.sw-screen-fit .fun-question-art{height:42px;width:58px;margin:0 auto 6px}.sw-screen-fit .fun-question-copy h2{font-size:clamp(27px,7.5vw,38px);margin:6px auto 8px;line-height:1.12}.sw-screen-fit .fun-question-aside{display:none}
.sw-screen-fit .fun-question-copy>.back{position:absolute;left:0;top:0;font-size:0;width:34px;height:34px;min-height:34px;padding:0;margin:0}.sw-screen-fit .fun-question-copy>.back:before{content:'←';font-size:22px}
.sw-screen-fit .fun-role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sw-screen-fit .fun-role-card{min-height:102px;display:flex;padding:17px 9px 10px;gap:7px;text-align:center;border-radius:18px}.sw-screen-fit .fun-role-card strong{font-size:17px;line-height:1.2}.sw-screen-fit .fun-role-visual,.sw-screen-fit .fun-role-visual .fun-art{height:36px;width:46px}.sw-screen-fit .fun-role-number{font-size:9px;top:6px;left:7px}.sw-screen-fit .fun-role-tick{font-size:14px;top:4px;right:7px}.sw-screen-fit .fun-instruction,.sw-screen-fit .fun-card-feedback{font-size:14px;line-height:1.3;margin:7px auto;min-height:0}
.sw-screen-fit .fun-dial{width:145px;height:145px;margin:8px auto 16px;padding:8px}.sw-screen-fit .fun-dial-core>span{font-size:47px}.sw-screen-fit .fun-dial-art{width:45px;height:45px;padding:4px}
.sw-screen-fit .fun-luck-wheel{width:155px;height:155px;margin:8px auto 16px}.sw-screen-fit .fun-wheel-center{width:50px;height:50px;left:calc(50% - 25px);top:calc(50% - 25px);padding:7px}.sw-screen-fit .fun-wheel-word{font-size:8px;max-width:48px}.sw-screen-fit .fun-wheel-word.one{top:23px;right:10px}.sw-screen-fit .fun-wheel-word.two{bottom:23px;right:10px}.sw-screen-fit .fun-wheel-word.three{bottom:23px;left:10px}.sw-screen-fit .fun-wheel-word.four{top:23px;left:10px}
.sw-screen-fit .fun-spin-result{font-size:15px;line-height:1.4;min-height:36px;margin:10px auto}.sw-screen-fit .fun-honesty-meter{padding:10px;margin-bottom:12px}.sw-screen-fit .fun-honesty-meter svg{height:45px}.sw-screen-fit .fun-honesty-meter span{font-size:10px;margin-top:4px}
.sw-screen-fit .fun-attendance-gate{padding:20px 16px;border-radius:28px;box-shadow:4px 5px 0 var(--fun-soft)}.sw-screen-fit .fun-attendance-gate h1{font-size:42px;margin:12px auto}.sw-screen-fit .fun-attendance-gate h2{font-size:21px;margin:12px auto}.sw-screen-fit .fun-attendance-gate #attendance{min-height:100px;margin-top:12px;padding-top:6px}.sw-screen-fit .fun-gate-rings{width:75px;height:75px;margin:0 auto 10px}.sw-screen-fit .fun-gate-doves,.sw-screen-fit .fun-gate-heart{width:48px;height:43px}
.sw-screen-fit [data-layout=booth] #sw-guest{padding:0!important}.sw-screen-fit [data-layout=booth] #intro{padding:18px 18px;overflow:visible}.sw-screen-fit [data-layout=booth] .intro-title{font-size:clamp(43px,12vw,65px);line-height:1;margin:10px auto 18px}.sw-screen-fit [data-layout=booth] .envelope-scene{width:min(275px,78vw);height:auto;aspect-ratio:1.6;margin:15px auto 24px}.sw-screen-fit [data-layout=booth] .envelope-address{font-size:19px;bottom:19px}.sw-screen-fit [data-layout=booth] .stage{min-height:0!important}
.sw-screen-fit [data-layout=booth] #booth{height:var(--sw-screen-height);padding-bottom:8px!important}.sw-screen-fit [data-layout=booth] #game{height:auto;min-height:0!important;padding:12px 16px;display:flex;flex-direction:column;gap:10px;overflow:visible;position:relative}
.sw-screen-fit [data-layout=booth] .gamecard{width:100%;padding:20px 22px 24px}.sw-screen-fit [data-layout=booth] .gamecard h2{font-size:clamp(29px,8.2vw,42px);line-height:1.12;margin:12px auto 16px}.sw-screen-fit [data-layout=booth] .gamecard p{font-size:16px;line-height:1.4;margin:8px auto}.sw-screen-fit [data-layout=booth] .game-art .wedding-icon{width:54px;height:54px}.sw-screen-fit [data-layout=booth] .game-art{margin:0 auto 8px}
.sw-screen-fit [data-layout=booth] #choices{gap:9px;margin-top:12px}.sw-screen-fit [data-layout=booth] #choices .btn{min-height:46px;font-size:15px;line-height:1.35;padding:11px 15px}.sw-screen-fit [data-layout=booth] .ss-ticket-stub{font-size:9px;padding-bottom:9px;margin-bottom:9px}.sw-screen-fit [data-layout=booth] #choices .ss-pose-choice{padding:10px 14px;gap:12px}.sw-screen-fit [data-layout=booth] .ss-pose-choice .wedding-icon{height:32px;width:32px}.sw-screen-fit [data-layout=booth] .lb-range{margin:10px auto}.sw-screen-fit [data-layout=booth] .lb-range strong{font-size:58px;line-height:1}.sw-screen-fit [data-layout=booth] #lb-cheers{width:130px;height:130px;padding:20px}.sw-screen-fit [data-layout=booth] .lb-promise svg{width:65px;height:60px}
.sw-screen-fit .range-label{display:block;min-width:0}.sw-screen-fit input[type=range]{display:block;width:100%;margin-inline:0;min-width:0}
@media(max-height:500px) and (orientation:landscape){
.sw-screen-fit .crest,.sw-screen-fit .fun-question-art,.sw-screen-fit .game-art{display:none}.sw-screen-fit .fun-cover{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.sw-screen-fit .fun-cover-copy{display:block}.sw-screen-fit .fun-envelope-stage{grid-column:2;grid-row:1/5;max-width:190px}.sw-screen-fit .fun-cover-caption{font-size:14px}.sw-screen-fit .fun-cover h1{font-size:32px}.sw-screen-fit .fun-cover-actions{grid-column:1}.sw-screen-fit .fun-cover .fun-eyebrow{font-size:10px}
.sw-screen-fit body[data-screen-scene^=question]:not([data-layout=fun]):not([data-layout=booth]) .content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 18px;align-items:center}
.sw-screen-fit body[data-screen-scene^=question]:not([data-layout=fun]):not([data-layout=booth]) .content>.progress,.sw-screen-fit body[data-screen-scene^=question]:not([data-layout=fun]):not([data-layout=booth]) .content>h2,.sw-screen-fit body[data-screen-scene^=question]:not([data-layout=fun]):not([data-layout=booth]) .content>.back{grid-column:1}
.sw-screen-fit body[data-screen-scene^=question]:not([data-layout=fun]):not([data-layout=booth]) .question-interaction{grid-column:2;grid-row:1/5}
.sw-screen-fit .fun-question-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:12px;gap:15px}.sw-screen-fit .fun-question-copy h2{font-size:29px}.sw-screen-fit [data-layout=booth] #choices:has([data-lb-choice]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.sw-screen-fit [data-layout=booth] #choices:has([data-lb-choice]) :is(#lb-next,.lb-back){grid-column:1/-1}
}
/* Plot Twist: one stable viewport frame at every breakpoint. The reveal/forms scroll normally. */
html.sw-fun-fit{overflow:hidden;overscroll-behavior:none}
.sw-fun-fit body[data-layout=fun]{padding-bottom:0!important;min-height:0;overflow:hidden}
.sw-fun-fit [data-layout=fun] #sw-guest{height:var(--sw-fun-height);min-height:0;padding:8px clamp(16px,4vw,60px) 12px;box-sizing:border-box}
.sw-fun-fit [data-layout=fun] .invitation{height:100%;min-height:0;padding:0;display:block;position:relative}
.sw-fun-fit [data-layout=fun] .content{height:100%;width:100%;position:relative;display:flex;flex-direction:column;animation:none;min-height:0}
.sw-fun-fit .fun-cover{height:100%;min-height:0;gap:30px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.sw-fun-fit .fun-cover-copy{display:block;min-width:0}
.sw-fun-fit [data-layout=fun] .fun-cover h1{font-size:clamp(42px,min(7vw,10vh),100px);margin:12px 0;line-height:1.08}
.sw-fun-fit .fun-cover-caption{font-size:17px;line-height:1.45;margin:12px 0}
.sw-fun-fit .fun-cover-actions{margin-top:16px;gap:0}
.sw-fun-fit .fun-cover-footnote{margin-top:16px;padding-top:14px}
.sw-fun-fit .fun-envelope-stage{padding:70px 22px 35px;max-width:480px;width:100%;box-sizing:border-box;margin:auto}
.sw-fun-fit .fun-hand-note{margin-top:22px;font-size:15px}
.sw-fun-fit .fun-postmark{width:65px;height:65px;font-size:9px}
.sw-fun-fit .fun-floating-rings,.sw-fun-fit .fun-floating-shoe{width:64px;height:64px;padding:6px}
.sw-fun-fit .fun-question-top{flex:none;margin:0 0 8px}
.sw-fun-fit [data-layout=fun] .progress{flex:none;margin:0 0 12px}
.sw-fun-fit .fun-question-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:24px;box-sizing:border-box;align-items:center}
.sw-fun-fit .fun-question-copy{position:relative;min-width:0}
.sw-fun-fit .fun-question-art{width:80px;height:60px;margin-bottom:12px}
.sw-fun-fit .fun-question-copy h2{font-size:clamp(30px,min(4vw,6vh),56px);line-height:1.12;margin:8px 0 16px}
.sw-fun-fit .fun-question-aside{font-size:16px;line-height:1.4}
.sw-fun-fit .question-interaction{min-height:0;max-width:100%;width:100%}
.sw-fun-fit .fun-role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sw-fun-fit .fun-role-card{display:flex;min-height:125px;padding:20px 10px 12px;gap:7px}
.sw-fun-fit .fun-role-card strong{font-size:20px;line-height:1.2}
.sw-fun-fit .fun-role-visual,.sw-fun-fit .fun-role-visual .fun-art{width:64px;height:45px}
.sw-fun-fit .fun-instruction{font-size:15px;line-height:1.35;margin:0 0 10px}
.sw-fun-fit .fun-card-feedback{font:500 15px/1.35 var(--body);height:42px;min-height:42px;margin:10px 0 0;display:flex;align-items:center;justify-content:center}
.sw-fun-fit [data-layout=fun] :is(.primary,.secondary){min-height:46px;padding:12px 20px;font-size:16px;line-height:1.3}
.sw-fun-fit [data-layout=fun] .question-interaction .next-question{margin-top:8px}
.sw-fun-fit [data-layout=fun] .options{margin:10px 0;gap:8px}
.sw-fun-fit [data-layout=fun] .option{min-height:48px;padding:10px 13px;font-size:16px;line-height:1.35}
.sw-fun-fit [data-layout=fun] .note{font-size:15px;line-height:1.4;margin:8px auto}
.sw-fun-fit .fun-dial{width:170px;height:170px;margin:8px auto 18px;padding:9px}
.sw-fun-fit .fun-dial-core>span{font-size:50px}
.sw-fun-fit [data-layout=fun] .range-label{margin:12px auto 0}
.sw-fun-fit [data-layout=fun] .range-ends{margin:8px auto 12px}
.sw-fun-fit [data-layout=fun] .interaction-caption{font-size:17px;line-height:1.35;margin:10px auto}
.sw-fun-fit .fun-luck-wheel{width:180px;height:180px;margin:8px auto 16px}
.sw-fun-fit .fun-spin-result{height:46px;min-height:46px;margin:8px 0;font-size:16px;line-height:1.35}
.sw-fun-fit .fun-honesty-meter{padding:12px;margin-bottom:10px}
.sw-fun-fit .fun-honesty-meter svg{height:50px}
.sw-fun-fit [data-layout=fun] .song-vinyl{width:110px;height:110px;margin:10px auto}
.sw-fun-fit [data-layout=fun] .song-label input{font-size:17px;padding:12px}
.sw-fun-fit [data-layout=fun] .cheer-button{width:150px;height:150px;padding:22px}
.sw-fun-fit [data-layout=fun] .cheer-dots{margin:14px auto}
.sw-fun-fit [data-layout=fun] .promise-heart{height:90px;width:110px;margin:12px auto 20px}
.sw-fun-fit .fun-attendance-gate{width:100%;height:100%;min-height:0;max-width:1050px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box}
.sw-fun-fit .fun-gate-rings{height:65px;width:95px;margin:0 auto 12px;flex-shrink:0}
.sw-fun-fit .fun-attendance-gate>.fun-eyebrow{font:600 clamp(24px,3vw,38px)/1.25 var(--heading);letter-spacing:0;text-transform:none;color:var(--ink);margin:8px 0;max-width:100%;overflow-wrap:anywhere}
.sw-fun-fit [data-layout=fun] .fun-attendance-gate h1{font-size:clamp(38px,min(6vw,8vh),76px);margin:12px auto}
.sw-fun-fit [data-layout=fun] .fun-attendance-gate h2{font-size:22px;margin:12px auto}
.sw-fun-fit [data-layout=fun] .fun-attendance-gate #attendance{min-height:100px;height:100px;flex-shrink:0;margin:10px auto 0;padding-top:8px}
.sw-fun-fit #noreply{height:44px;min-height:44px}
.sw-fun-fit #fun-music-error{position:absolute;bottom:100%;right:0;max-width:300px;background:var(--paper);padding:6px;border-radius:8px}
@media (max-width:1180px), (max-width:1366px) and (pointer:coarse){
.sw-fun-fit [data-layout=fun] .sw-guest-nav{padding:12px 18px}.sw-fun-fit [data-layout=fun] .sw-guest-nav>a{font-size:19px}.sw-fun-fit [data-layout=fun] .sw-guest-nav div a{font-size:13px}
.sw-fun-fit .fun-cover{display:flex;flex-direction:column;justify-content:center;gap:10px;text-align:center}
.sw-fun-fit .fun-cover-copy{display:contents}
.sw-fun-fit .fun-cover .fun-eyebrow{order:0;font-size:11px;margin:0}
.sw-fun-fit [data-layout=fun] .fun-cover h1{order:1;font-size:clamp(34px,min(9vw,7vh),58px);margin:0;transform:none}
.sw-fun-fit .fun-cover-caption{order:2;font-size:16px;margin:0;line-height:1.35}
.sw-fun-fit .fun-envelope-stage{order:3;width:min(270px,76%);padding:36px 16px 20px;margin:0 auto}
.sw-fun-fit .fun-hand-note{display:none}.sw-fun-fit .fun-postmark{width:42px;height:42px;font-size:6px;top:-6px;right:-6px}
.sw-fun-fit .fun-floating-rings,.sw-fun-fit .fun-floating-shoe{width:43px;height:43px}
.sw-fun-fit .fun-cover-actions{order:4;align-items:center;margin:0;gap:0}.sw-fun-fit .fun-cover-footnote{display:none}
.sw-fun-fit .fun-envelope-bunting{height:26px}.sw-fun-fit .fun-letter{padding:8px}.sw-fun-fit .fun-letter strong{font-size:18px}.sw-fun-fit .fun-letter .fun-art{height:20px;margin:4px 0}.sw-fun-fit .fun-address{font-size:18px;bottom:12%}
.sw-fun-fit .fun-question-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);padding:14px;gap:10px;border-radius:26px;align-items:center}
.sw-fun-fit .fun-question-copy{text-align:center;padding:0 18px}
.sw-fun-fit .fun-question-art,.sw-fun-fit .fun-question-aside{display:none}
.sw-fun-fit .fun-question-copy h2{font-size:clamp(25px,6.7vw,38px);margin:0;line-height:1.12}
.sw-fun-fit .fun-question-copy>.back{position:absolute;top:0;left:-8px;width:30px;height:36px;min-height:36px;margin:0;padding:0;font-size:0}
.sw-fun-fit .fun-question-copy>.back:before{content:'←';font-size:25px}
.sw-fun-fit .fun-role-card{min-height:100px;padding:17px 8px 9px;border-radius:18px}.sw-fun-fit .fun-role-card strong{font-size:17px}.sw-fun-fit .fun-role-visual,.sw-fun-fit .fun-role-visual .fun-art{height:34px;width:46px}
.sw-fun-fit .fun-role-number{font-size:10px;left:7px;top:5px}.sw-fun-fit .fun-role-tick{font-size:14px;right:7px;top:5px}
.sw-fun-fit .fun-question-top .fun-eyebrow{font-size:11px}.sw-fun-fit .fun-page-number{font-size:20px}
.sw-fun-fit .fun-attendance-gate{padding:18px 14px;border-radius:28px}.sw-fun-fit .fun-gate-doves,.sw-fun-fit .fun-gate-heart{width:45px;height:45px}
.sw-fun-fit [data-layout=fun] .fun-attendance-gate h2{font-size:19px}
}
@media(max-height:650px){
.sw-fun-fit .fun-cover-footnote{display:none}.sw-fun-fit .fun-cover-caption{font-size:15px}.sw-fun-fit .fun-cover{gap:8px}.sw-fun-fit .fun-cover .fun-eyebrow{font-size:10px}
.sw-fun-fit .fun-envelope-stage{padding:30px 12px 18px;width:min(220px,65%)}
.sw-fun-fit .fun-question-layout{padding:12px;gap:8px}.sw-fun-fit .fun-question-art,.sw-fun-fit .fun-question-aside{display:none}
.sw-fun-fit .fun-question-copy h2{font-size:26px}.sw-fun-fit .fun-role-card{min-height:85px;padding:14px 7px 7px;gap:3px}.sw-fun-fit .fun-role-card strong{font-size:16px}.sw-fun-fit .fun-role-visual,.sw-fun-fit .fun-role-visual .fun-art{height:28px}
.sw-fun-fit .fun-card-feedback{height:40px;min-height:40px;margin:4px 0 0;font-size:14px}.sw-fun-fit .fun-instruction{font-size:14px;margin-bottom:6px}
.sw-fun-fit .fun-dial{width:130px;height:130px;margin:0 auto 12px}.sw-fun-fit .fun-dial-core>span{font-size:38px}.sw-fun-fit .fun-dial-core small{font-size:9px}.sw-fun-fit .fun-dial-art{width:40px;height:40px}
.sw-fun-fit .fun-luck-wheel{width:145px;height:145px}.sw-fun-fit .fun-spin-result{font-size:14px;margin:4px 0}.sw-fun-fit .fun-honesty-meter{padding:6px}.sw-fun-fit .fun-honesty-meter svg{height:35px}
.sw-fun-fit [data-layout=fun] .song-vinyl{width:70px;height:70px;margin:6px auto}.sw-fun-fit [data-layout=fun] .song-vinyl span{width:36px;height:36px}
.sw-fun-fit [data-layout=fun] .cheer-button{width:110px;height:110px;padding:15px}.sw-fun-fit [data-layout=fun] .promise-heart{height:60px;width:80px;margin:8px auto}
.sw-fun-fit .fun-gate-rings{height:45px;width:65px;margin-bottom:4px}.sw-fun-fit [data-layout=fun] .fun-attendance-gate h1{font-size:34px;margin:6px auto}.sw-fun-fit [data-layout=fun] .fun-attendance-gate h2{margin:6px auto}
}
@media(orientation:landscape) and (max-height:500px){
.sw-fun-fit .fun-cover{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.sw-fun-fit .fun-cover-copy{display:block}.sw-fun-fit [data-layout=fun] .fun-cover h1{font-size:30px}.sw-fun-fit .fun-cover-caption{font-size:14px}.sw-fun-fit .fun-cover-actions{margin:8px 0 0}.sw-fun-fit .fun-cover-actions .back{min-height:32px;padding:6px;font-size:13px}
.sw-fun-fit .fun-question-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr}.sw-fun-fit .fun-question-copy h2{font-size:25px}.sw-fun-fit .fun-role-card{min-height:65px;display:grid;grid-template-columns:30px 1fr;padding:12px 8px 6px}.sw-fun-fit .fun-role-card strong{font-size:14px}.sw-fun-fit .fun-role-visual,.sw-fun-fit .fun-role-visual .fun-art{width:28px;height:28px}.sw-fun-fit .fun-instruction{font-size:13px}.sw-fun-fit .fun-card-feedback{font-size:13px;height:32px;min-height:32px}
.sw-fun-fit .fun-attendance-gate{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;padding:12px 25px}.sw-fun-fit .fun-gate-rings{display:none}.sw-fun-fit .fun-attendance-gate>.fun-eyebrow{grid-column:1;font-size:24px;margin:0}.sw-fun-fit [data-layout=fun] .fun-attendance-gate h1{grid-column:1;font-size:30px;margin:0}.sw-fun-fit [data-layout=fun] .fun-attendance-gate h2{grid-column:2;grid-row:1;font-size:18px;margin:0}.sw-fun-fit [data-layout=fun] .fun-attendance-gate #attendance{grid-column:2;grid-row:2/4;margin:0;min-height:80px;height:80px}.sw-fun-fit #noreply{grid-column:1;font-size:13px!important}
}
@media(max-width:760px) and (max-height:650px){
.sw-fun-fit .fun-cover{gap:6px}.sw-fun-fit .fun-envelope-stage{width:175px;padding:24px 10px 15px}.sw-fun-fit [data-layout=fun] .fun-cover h1{font-size:33px}.sw-fun-fit .fun-cover-actions .back{min-height:34px;padding:6px 0;font-size:14px}.sw-fun-fit .fun-cover-caption{font-size:15px}
}
.sw-fun-fit .sw-preview-label{font-size:11px;line-height:1.3;padding:5px 12px;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box}
@media(max-width:760px) and (max-height:650px){
.sw-fun-fit .fun-question-copy{padding:0 10px}.sw-fun-fit .fun-question-copy h2{font-size:23px;line-height:1.12}
.sw-fun-fit .fun-instruction{display:none}.sw-fun-fit .fun-role-card{min-height:68px;padding:14px 5px 6px}.sw-fun-fit .fun-role-card strong{font-size:15px}.sw-fun-fit .fun-role-visual,.sw-fun-fit .fun-role-visual .fun-art{height:23px}.sw-fun-fit .fun-card-feedback{font-size:13px;height:36px;min-height:36px}
}
@media(max-width:380px) and (max-height:650px){
.sw-fun-fit .fun-question-top{height:22px;margin-bottom:4px}.sw-fun-fit .fun-page-number{font-size:18px}.sw-fun-fit .fun-question-top .fun-eyebrow{font-size:10px}.sw-fun-fit [data-layout=fun] .progress{margin-bottom:7px}.sw-fun-fit [data-layout=fun] .progress span{height:4px}
.sw-fun-fit .fun-question-layout{padding:10px;gap:7px}.sw-fun-fit .fun-question-copy{padding:0 6px}.sw-fun-fit .fun-question-copy h2{font-size:21px}
.sw-fun-fit .fun-role-visual{display:none}.sw-fun-fit .fun-role-card{min-height:62px;padding:16px 5px 7px}.sw-fun-fit .fun-role-card strong{font-size:15px}
.sw-fun-fit .question-interaction:has(.fun-role-grid){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.sw-fun-fit .fun-role-grid{grid-column:1/-1;gap:7px}.sw-fun-fit .fun-card-feedback{height:48px;min-height:48px;font-size:13px;margin:0}.sw-fun-fit [data-layout=fun] .question-interaction:has(.fun-role-grid) .next-question{margin:0;padding:10px 12px;max-width:115px}
}
@media(max-width:380px) and (max-height:650px){
.sw-fun-fit .fun-dial{width:105px;height:105px;padding:6px;margin:0 auto 8px}.sw-fun-fit .fun-dial-core{padding:12px}.sw-fun-fit .fun-dial-core>span{font-size:32px}.sw-fun-fit .fun-dial-core small{font-size:8px;margin-top:5px}.sw-fun-fit .fun-dial-art{width:32px;height:32px}
.sw-fun-fit [data-layout=fun] .range-label{margin-top:6px}.sw-fun-fit [data-layout=fun] .range-ends{font-size:12px;margin:5px auto 7px}.sw-fun-fit [data-layout=fun] .interaction-caption{font-size:15px;margin:6px auto}.sw-fun-fit [data-layout=fun] .option{font-size:14px;min-height:44px;padding:8px 10px;gap:8px}.sw-fun-fit [data-layout=fun] .note{font-size:13px;margin:5px auto}.sw-fun-fit [data-layout=fun] .options{margin:6px 0;gap:6px}
}
@media(max-width:380px) and (max-height:650px){.sw-fun-fit [data-layout=fun] .option{line-height:1.25;padding:6px 9px}.sw-fun-fit [data-layout=fun] .option .check{width:20px;height:20px;flex-basis:20px}.sw-fun-fit [data-layout=fun] .question-interaction .next-question{margin-top:5px}}
@media(max-width:380px) and (max-height:650px){
.sw-fun-fit .fun-luck-wheel{width:105px;height:105px;margin:0 auto 8px}.sw-fun-fit .fun-wheel-center{width:36px;height:36px;left:calc(50% - 18px);top:calc(50% - 18px);padding:4px}.sw-fun-fit .fun-wheel-word{font-size:7px;max-width:34px}.sw-fun-fit .fun-wheel-word.one{top:17px;right:5px}.sw-fun-fit .fun-wheel-word.two{bottom:17px;right:5px}.sw-fun-fit .fun-wheel-word.three{bottom:17px;left:5px}.sw-fun-fit .fun-wheel-word.four{top:17px;left:5px}
.sw-fun-fit .fun-spin-result{height:40px;min-height:40px;font-size:13px;line-height:1.3}
}
@media(max-width:380px) and (max-height:650px){.sw-fun-fit .fun-honesty-meter{display:none}.sw-fun-fit [data-layout=fun] .song-label input{margin-top:5px;padding:9px 10px}.sw-fun-fit [data-layout=fun] .skip-song{margin:3px auto;min-height:34px;padding:5px 0}}
@media(max-width:380px) and (max-height:650px){.sw-fun-fit .question-interaction:has([data-multi])>.note{display:none}.sw-fun-fit .question-interaction:has([data-multi]) .option .number{display:none}.sw-fun-fit .question-interaction:has([data-multi]) .options{gap:4px;margin:4px 0}}
@media(max-width:380px) and (max-height:650px){.sw-fun-fit .question-interaction:has([data-multi])>.interaction-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
.sw-fun-fit .fun-audio-controls{flex-wrap:nowrap;gap:6px;max-width:calc(100vw - 28px)}
.sw-fun-fit #fun-music-toggle{min-width:0;flex:1;max-width:calc(100vw - 150px)}
.sw-fun-fit #fun-music-toggle>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(orientation:landscape) and (max-height:500px){
.sw-fun-fit [data-layout=fun] .sw-guest-nav{padding:8px 24px}.sw-fun-fit [data-layout=fun] .sw-guest-nav>a{font-size:19px}.sw-fun-fit [data-layout=fun] .sw-guest-nav div a{font-size:13px;padding:6px 0}
.sw-fun-fit .fun-cover{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.sw-fun-fit .fun-cover .fun-eyebrow{display:none}.sw-fun-fit [data-layout=fun] .fun-cover h1{font-size:28px;margin:4px 0}.sw-fun-fit .fun-cover-caption{margin:6px 0}
.sw-fun-fit .fun-question-top{height:21px;margin-bottom:4px}.sw-fun-fit .fun-page-number{font-size:19px}.sw-fun-fit [data-layout=fun] .progress{margin-bottom:7px}.sw-fun-fit [data-layout=fun] .progress span{height:4px}.sw-fun-fit .fun-question-layout{padding:10px;gap:20px}
.sw-fun-fit .question-interaction:has(.fun-role-grid){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.sw-fun-fit .fun-role-grid{grid-column:1/-1;gap:6px}.sw-fun-fit .fun-role-card{min-height:60px}.sw-fun-fit .fun-card-feedback{height:40px;min-height:40px;margin:0;font-size:13px}.sw-fun-fit [data-layout=fun] .question-interaction:has(.fun-role-grid) .next-question{margin:0;max-width:150px;font-size:14px}
.sw-fun-fit .fun-instruction,.sw-fun-fit .fun-honesty-meter{display:none}.sw-fun-fit .question-interaction:has(.options) .options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 6px}.sw-fun-fit [data-layout=fun] .option{font-size:13px;line-height:1.25;padding:8px;gap:6px;min-height:48px}.sw-fun-fit [data-layout=fun] .option .check{width:18px;height:18px;flex-basis:18px}.sw-fun-fit .question-interaction:has([data-multi])>.interaction-caption{display:none}
.sw-fun-fit .fun-dial{width:90px;height:90px;padding:6px;margin:0 auto 5px}.sw-fun-fit .fun-dial-core{padding:10px}.sw-fun-fit .fun-dial-core>span{font-size:30px}.sw-fun-fit .fun-dial-core small{font-size:7px;margin-top:3px}.sw-fun-fit .fun-dial-art{width:30px;height:30px}.sw-fun-fit [data-layout=fun] .range-label{margin-top:4px}.sw-fun-fit [data-layout=fun] .range-ends{font-size:12px;margin:4px auto 6px}.sw-fun-fit [data-layout=fun] .interaction-caption{font-size:14px;margin:4px auto}
.sw-fun-fit .fun-luck-wheel{width:95px;height:95px;margin:0 auto 6px}.sw-fun-fit .fun-wheel-center{width:32px;height:32px;left:calc(50% - 16px);top:calc(50% - 16px);padding:4px}.sw-fun-fit .fun-wheel-word{display:none}.sw-fun-fit .fun-spin-result{height:34px;min-height:34px;font-size:13px;margin:4px 0}
.sw-fun-fit [data-layout=fun] .song-vinyl{width:55px;height:55px;margin:4px auto}.sw-fun-fit [data-layout=fun] .song-label input{padding:6px 10px;margin-top:0}.sw-fun-fit [data-layout=fun] .skip-song{min-height:30px;padding:4px;margin:3px auto}
.sw-fun-fit [data-layout=fun] .question-interaction .primary,.sw-fun-fit [data-layout=fun] .question-interaction .secondary{font-size:14px;padding:10px 16px;min-height:44px}.sw-fun-fit [data-layout=fun] .question-interaction .next-question{margin-top:4px}
.sw-fun-fit [data-layout=fun] .cheer-button{width:95px;height:95px;padding:15px}.sw-fun-fit [data-layout=fun] .cheer-dots{margin:8px auto}.sw-fun-fit [data-layout=fun] .note{font-size:13px;margin:4px auto}
}
/* A pointer on a moving button edge must not repeatedly toggle its hover state. */
.sw-fun-fit [data-layout=fun] :is(.primary,.secondary,.fun-role-card,.option):is(:hover,:active){transform:none;translate:none}
.sw-fun-fit .sw-preview-label:has(+.sw-preview-label){position:absolute;width:1px;height:1px;padding:0;clip-path:inset(50%);overflow:hidden}

/* A stable frame for every booth, on desktop as well as handheld devices. */
html.sw-screen-fit:has(body[data-layout=booth]){overflow:hidden;overscroll-behavior:none}
.sw-screen-fit body[data-layout=booth]{overflow:hidden;padding-bottom:0!important}
.sw-screen-fit [data-layout=booth] #sw-guest{margin-top:var(--sw-screen-top,0px);width:100%;max-width:none}
.sw-screen-fit [data-layout=booth] :is(#intro,#game){max-width:100%;animation:none}
.sw-screen-fit [data-layout=booth] #game{gap:10px;padding:12px 22px}
.sw-screen-fit [data-layout=booth] .gamecard{padding:20px 28px!important;max-width:720px;margin:0 auto;box-sizing:border-box}
.sw-screen-fit [data-layout=booth] #gameArt{height:50px;margin:0 auto 6px}
.sw-screen-fit [data-layout=booth] #gameArt :is(svg,.wedding-icon,.sk-icon,.fe-icon){width:60px;height:50px;max-height:100%;margin:auto}
.sw-screen-fit [data-layout=booth] #gameQuestion{font-size:clamp(28px,4vw,42px);line-height:1.12;margin:10px auto 16px;text-wrap:balance}
.sw-screen-fit [data-layout=booth] #gameDescription:empty{display:none}
.sw-screen-fit [data-layout=booth] #choices{display:flex;flex-wrap:wrap;flex-direction:column;align-items:center;gap:10px;margin:10px auto 8px;width:100%;min-width:0}
.sw-screen-fit [data-layout=booth] #choices .btn{font-size:17px;line-height:1.35;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;min-height:48px;height:auto;max-width:520px;width:100%;padding:12px 16px;transform:none}
.sw-screen-fit [data-layout=booth] #choices .btn:not(#lb-no):is(:hover,:active){transform:none}
.sw-screen-fit [data-layout=booth] #choices :is(.lb-promise,#lb-cheers){width:min(100%,360px);height:auto;min-height:0;max-width:100%;padding:14px 18px;gap:10px;font-size:20px;line-height:1.4;border-radius:26px;white-space:normal;overflow-wrap:anywhere;box-sizing:border-box}
.sw-screen-fit [data-layout=booth] .lb-promise>*{max-width:100%;flex-shrink:0}
.sw-screen-fit [data-layout=booth] .lb-promise>span{display:block;width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-wrap:balance}
.sw-screen-fit [data-layout=booth] .lb-promise small{white-space:normal;line-height:1.4}
.sw-screen-fit [data-layout=booth] .lb-promise svg{width:75px;height:65px}
.sw-screen-fit [data-layout=booth] #gameReply{height:auto;min-height:4.2em;max-width:100%;margin:8px auto 0;font-size:16px;line-height:1.4;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:center}
.sw-screen-fit [data-layout=booth] #choices .lb-back{min-height:38px;padding:6px 10px;margin:0;flex-basis:auto;line-height:1.3;white-space:normal}
.sw-screen-fit [data-layout=booth] #skipGame{margin:0;min-height:40px;line-height:1.3;padding:8px 12px;font-size:15px;white-space:normal}
.sw-screen-fit [data-layout=booth] :is(.lb-slider,.lb-song){gap:12px;min-width:0;max-width:100%}
.sw-screen-fit [data-layout=booth] .lb-song input{font-size:17px;min-width:0;border-radius:15px}
.sw-screen-fit [data-layout=booth] .sw-preview-label:has(+.sw-preview-label){display:none}
.sw-screen-fit [data-layout=booth] .sw-preview-label{line-height:1.3;font-size:11px;padding:5px 12px;margin:0;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:700px){
.sw-screen-fit [data-layout=booth] .gamecard{padding:14px 20px!important}
.sw-screen-fit [data-layout=booth] #gameArt{height:36px;margin-bottom:4px}
.sw-screen-fit [data-layout=booth] #gameArt :is(svg,.wedding-icon,.sk-icon,.fe-icon){height:36px;width:44px}
.sw-screen-fit [data-layout=booth] #gameQuestion{font-size:28px;margin:8px auto 12px}
.sw-screen-fit [data-layout=booth] #choices{gap:8px;margin:8px auto}
.sw-screen-fit [data-layout=booth] #choices .btn{padding:10px 12px;font-size:16px}
.sw-screen-fit [data-layout=booth] #gameReply{font-size:15px}
.sw-screen-fit [data-layout=booth] :is(.lb-slider,.lb-song){gap:9px}
}
@media(orientation:landscape) and (max-height:500px){
.sw-screen-fit [data-layout=booth] #intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;padding:12px 28px}
.sw-screen-fit [data-layout=booth] #intro>.intro-title{grid-column:1;grid-row:1;font-size:36px;margin:0}
.sw-screen-fit [data-layout=booth] #intro>.envelope-scene{grid-column:2;grid-row:1/3;width:min(260px,70%);margin:24px auto}
.sw-screen-fit [data-layout=booth] #intro>#openInvite{grid-column:1;grid-row:2;font-size:16px;max-width:100%}
.sw-screen-fit [data-layout=booth] #game .gamecard{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:0 25px;max-width:1000px}
.sw-screen-fit [data-layout=booth] .gamecard>:is(.eyebrow,.progress,#gameQuestion,#gameReply){grid-column:1}
.sw-screen-fit [data-layout=booth] #gameArt{display:none}
.sw-screen-fit [data-layout=booth] #choices{grid-column:2;grid-row:1/6;display:flex;margin:0;gap:6px}
.sw-screen-fit [data-layout=booth] #gameQuestion{font-size:28px}
.sw-screen-fit [data-layout=booth] #gameReply{font-size:14px}
.sw-screen-fit [data-layout=booth] #choices .btn{font-size:15px;min-height:44px;padding:8px 12px}
.sw-screen-fit [data-layout=booth] #choices :is(.lb-promise,#lb-cheers){font-size:18px;padding:10px;gap:8px}
.sw-screen-fit [data-layout=booth] .lb-promise svg{height:45px;width:55px}
}

/* Letter contents shrink with the envelope instead of spilling out of the paper. */
.sw-screen-fit [data-layout=booth] .letter-insert{gap:4px;padding:12px 14px;min-height:0}
.sw-screen-fit [data-layout=booth] .letter-insert .script{font-size:24px;line-height:1.1;margin:0;max-width:100%;overflow-wrap:anywhere}
.sw-screen-fit [data-layout=booth] .letter-insert .wedding-icon{width:34px;height:28px;flex:none}
.sw-screen-fit [data-layout=booth] .letter-insert>span:last-child{font-size:13px;line-height:1.2}

/* A sealed envelope hides its letter until the flap opens. */
body:is([data-plumpy-theme=strawberry],[data-plumpy-theme=vows]) .letter-insert{opacity:0;transition:transform 1.1s .5s,rotate 1s .5s,opacity .3s .25s}
body:is([data-plumpy-theme=strawberry],[data-plumpy-theme=vows]) .is-opening .letter-insert{opacity:1}
body:is([data-plumpy-theme=strawberry],[data-plumpy-theme=vows]) #intro>.intro-title{transition:opacity .3s}
body:is([data-plumpy-theme=strawberry],[data-plumpy-theme=vows]) #intro:has(.is-opening)>.intro-title{opacity:0}
/* Keep editable fields native and hold gestures free of selection/callout. */
.sw-inv-page #sw-guest :is(button,[role=button]),.sw-inv-page #sw-guest :is(button,[role=button]) *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.sw-inv-page #sw-guest :is(#promise,#lb-promise,#sl-promise){touch-action:none!important}
.sw-inv-page #sw-guest :is(input,textarea){-webkit-user-select:text;user-select:text}
.sw-inv-page #sw-guest :is(.sl-song,.lb-song,.song-label) input{font-size:17px;min-width:0;max-width:100%}
body[data-plumpy-theme=slot] .sl-spinning{filter:none!important}
.sl-spinning .sl-reel-track{will-change:transform}

/* Tablet pre-game layout: use available rows, with the wedding page left to scroll. */
@media (min-width:761px) and (max-width:1180px), (min-width:761px) and (max-width:1366px) and (pointer:coarse){
 .sw-screen-fit body[data-layout=booth] #booth{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;padding:12px 28px!important;text-align:center;box-sizing:border-box}
 .sw-screen-fit body[data-layout=booth] #booth>.ss-intro{grid-column:1;grid-row:1;text-align:center;padding:0;max-width:100%}
 .sw-screen-fit body[data-layout=booth] #booth .ss-title{font-size:clamp(40px,6vw,68px);line-height:1.04;margin:0 auto 10px;max-width:100%;overflow-wrap:anywhere}
 .sw-screen-fit body[data-layout=booth] #booth .ss-intro-copy{font-size:16px;line-height:1.4;max-width:45ch;margin:0 auto}
 .sw-screen-fit body[data-layout=booth] #booth>.booth-scene{grid-column:1;grid-row:2;min-width:0;min-height:0;width:100%;height:100%;padding:0!important}
 .sw-screen-fit body[data-layout=booth] #booth>.booth-actions{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:0}
 .sw-screen-fit body[data-layout=booth] #booth>.print-caption{grid-column:1;grid-row:4;text-align:center;font-size:14px;margin:0;max-width:100%}
 .sw-screen-fit body[data-layout=booth] #booth :is(.btn,#toGame){min-height:44px;font-size:16px;line-height:1.35;white-space:normal}
 .sw-screen-fit body[data-layout=booth] #intro,.sw-screen-fit body[data-layout=booth] #game{max-width:780px}
}
