@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-sans-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-sans-500.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/dm-sans-600.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/dm-sans-700.ttf)format("truetype")}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/pixelify-sans-500.ttf)format("truetype")}:root{color:#ebdce1;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--pink:#b9758c;--muted:#b09aa6;--wine:#70283f;--silver:#c5acbd;--pixel:"Pixelify Sans", monospace;background:#100d13;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}body{background:radial-gradient(at 50% 5%,#491d3238,#0000 65%),linear-gradient(90deg,#08070c,#0000 20% 80%,#08070c);min-width:280px;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;transition:background .18s,transform .18s}button svg{flex-shrink:0}:is(button:focus-visible,a:focus-visible,canvas:focus-visible){outline-offset:5px;outline:2px solid #e4bdc9}button:disabled{opacity:.35;cursor:default}button:not(:disabled):active{transform:translateY(2px)}button:not(:disabled):hover{filter:brightness(1.08)}.app{max-width:1720px;margin:auto;padding:18px 24px 0}.site-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.brand{color:#ecdae1;font-family:var(--pixel);align-items:center;gap:10px;font-size:26px;font-weight:500;text-decoration:none;display:flex}.brand-icon{width:32px;height:32px;color:var(--pink);background:#21151d;border:1px solid #634250;place-items:center;display:grid;transform:rotate(45deg);box-shadow:inset 0 0 0 3px #100d13}.brand-icon>svg{transform:rotate(-45deg)}.brand-dot{color:var(--pink)}.header-dedication{color:var(--muted);font-size:11px}.header-dedication>span{color:var(--pink);margin-left:8px;font-size:18px}.game-frame{background:#151017;border:1px solid #654350;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000080,0 0 0 4px #130e16,0 0 0 5px #39222f}.game-frame:after{content:"";z-index:6;pointer-events:none;opacity:.65;background:linear-gradient(var(--silver), var(--silver)) left top / 22px 1px no-repeat, linear-gradient(var(--silver), var(--silver)) left top / 1px 22px no-repeat, linear-gradient(var(--silver), var(--silver)) right top / 22px 1px no-repeat, linear-gradient(var(--silver), var(--silver)) right top / 1px 22px no-repeat, linear-gradient(var(--silver), var(--silver)) left bottom / 22px 1px no-repeat, linear-gradient(var(--silver), var(--silver)) left bottom / 1px 22px no-repeat, linear-gradient(var(--silver), var(--silver)) right bottom / 22px 1px no-repeat, linear-gradient(var(--silver), var(--silver)) right bottom / 1px 22px no-repeat;position:absolute;inset:5px}.viewport{aspect-ratio:16/9;isolation:isolate;position:relative}canvas{aspect-ratio:16/9;width:100%;height:100%;display:block}canvas:focus{outline-offset:-4px}canvas:focus:not(:focus-visible){outline:none}.game-topline{z-index:5;position:absolute;bottom:12px;right:14px}.game-actions{background:#100d16d9;border:1px solid #a1748655;align-items:center;gap:10px;padding:0 10px;display:flex}.icon-button{color:#dbc1cc;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;min-width:30px;min-height:34px;padding:6px 0;font-size:10px;display:flex}.pause-button{border-left:1px solid #583540;padding-left:10px}.sound-button span{text-align:left;min-width:51px}.hud{pointer-events:none;z-index:1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:4%;left:3.5%;right:3.5%}.pixel-panel{clip-path:polygon(0 10px,6px 10px,6px 5px,12px 5px,12px 0,calc(100% - 12px) 0,calc(100% - 12px) 5px,calc(100% - 6px) 5px,calc(100% - 6px) 10px,100% 10px,100% calc(100% - 10px),calc(100% - 6px) calc(100% - 10px),calc(100% - 6px) calc(100% - 5px),calc(100% - 12px) calc(100% - 5px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 5px),6px calc(100% - 5px),6px calc(100% - 10px),0 calc(100% - 10px));background:linear-gradient(135deg,#c5acbd,#765365 55%,#a17b8c);padding:12px 19px;position:relative}.pixel-panel:before{content:"";clip-path:inherit;background:#120f16f5;position:absolute;inset:3px}.pixel-panel>*{position:relative}.hearts-panel{min-width:155px;padding:13px 19px 14px}.collected-hearts{align-items:center;gap:9px;display:flex}.hud-heart{width:clamp(28px,3.2vw,48px);height:clamp(26px,2.9vw,43px);image-rendering:pixelated;overflow:hidden}.empty-heart{fill:none;stroke:#c6a3b3;stroke-width:.55px;stroke-linejoin:miter;padding:3px 1px}.collected-count{font-family:var(--pixel);color:#c4a2b0;font-size:11px;position:absolute;bottom:3px;right:12px}.score-panel{font-family:var(--pixel);text-shadow:1px 2px #1b1018;min-width:230px;padding:10px 20px 12px;font-size:clamp(18px,2.2vw,34px);font-weight:500;line-height:1.1}.score-panel>div{justify-content:space-between;align-items:center;gap:20px;display:flex}.score-panel strong{letter-spacing:1px;font-weight:500}.best-score{color:#c4849b;margin-top:2px}.overlay{z-index:2;position:absolute;inset:0}.home-overlay{background:linear-gradient(90deg,#100c16c9,#0000 85%);align-items:flex-start;display:flex}.home-copy{max-width:60%;margin:7% 0 0 7.5%}.eyebrow{letter-spacing:2px;color:#d1acbc;font-size:9px;font-weight:600}.home-copy>.eyebrow{letter-spacing:1.6px;align-items:center;gap:8px;font-size:clamp(7px,.7vw,10px);display:flex}.tiny-star{color:#cfacb8;font-size:15px}h1{font-family:var(--pixel);letter-spacing:-3px;color:#eadce4;text-shadow:0 4px #542336,0 12px 35px #08060c80;gap:20px;margin:27px 0 24px;font-size:clamp(68px,8.5vw,138px);font-weight:500;line-height:.85;display:flex}h1>span{align-items:center;gap:15px;display:flex}.title-heart{color:#c58a9f;display:flex}.home-copy>p{color:#e2cdd5;text-shadow:0 1px 5px #100c16;margin:0 0 26px;font-size:clamp(12px,1.2vw,17px);line-height:1.8}.home-copy>p>span{color:#c6a6b5;font-size:.85em}.primary{background:linear-gradient(135deg, var(--wine), #4c2035);color:#f5e2e9;border:1px solid #bc7189;border-radius:1px;justify-content:center;align-items:center;gap:23px;min-height:46px;padding:14px 23px;font-size:13px;font-weight:700;display:inline-flex;box-shadow:0 4px #351622,0 6px 15px #0005}.start-hint{color:#bea3b1;align-items:center;gap:5px;margin-top:18px;font-size:9px;display:flex}.start-hint kbd{color:#ddc6cf;background:#28151e99;border-color:#a176895c;font-size:8px}.game-toast{text-align:center;width:100%;font-family:var(--pixel);color:#eddae3;pointer-events:none;text-shadow:0 2px #4e1c31;font-size:26px;position:absolute;top:26%}.scene-caption{font-family:var(--pixel);letter-spacing:2px;color:#bc8298;font-size:10px;position:absolute;bottom:7%;left:24px}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d0a12c9;justify-content:center;align-items:center;padding:24px;display:flex}.result-card,.pause-card{text-align:center;background:#18111bf5;border:1px solid #966176a1;width:min(100%,560px);padding:34px 30px;box-shadow:0 10px 50px #00000060,inset 0 0 0 5px #100d13}.result-card h2,.pause-card h2{font-family:var(--pixel);margin:16px 0 10px;font-size:36px;font-weight:500;line-height:1.1}.result-card h2>span{color:var(--pink)}.result-stats{border-top:1px solid #a1708349;border-bottom:1px solid #a1708349;justify-content:center;gap:40px;margin-bottom:18px;padding:15px 0;display:flex}.result-stats>div{flex-direction:column;gap:8px;display:flex}.result-stats span{letter-spacing:1px;color:#bba1ad;font-size:8px}.result-stats strong{font-family:var(--pixel);justify-content:center;align-items:center;gap:7px;font-size:29px;font-weight:500;display:flex}.result-stats strong svg{color:var(--pink)}.pause-mark{color:var(--pink);background:#57233840;border:1px solid #744553;place-items:center;width:48px;height:48px;margin:0 auto 18px;display:grid}.pause-card .start-hint{justify-content:center}.below-game{justify-content:space-between;align-items:center;gap:16px;padding:20px 0;display:flex}.keyboard-controls{color:#baa1ae;align-items:center;gap:20px;font-size:10px;display:flex}.keyboard-controls>span{white-space:nowrap;align-items:center;gap:5px;display:flex}.controls-label{letter-spacing:1px;color:#a58a99;margin-right:3px;font-size:8px}kbd{text-align:center;color:#c6acba;background:#1b131d;border:1px solid #60424f;border-bottom-width:2px;border-radius:1px;min-width:22px;min-height:21px;padding:3px 5px;font-family:inherit;font-size:9px}.play-note{color:#b395a7;text-align:right;font-size:9px;line-height:1.8}.play-note>span{color:#d1a9bb;display:block}.touch-controls{touch-action:none;gap:12px;display:none}.touch-button{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#1b131b;border:1px solid #694451;border-radius:1px;justify-content:center;align-items:center;gap:14px;min-height:62px;padding:10px 24px;display:flex}.touch-button>span:last-child{text-align:left;font-size:13px}.touch-button small{color:#b79aaa;margin-top:4px;font-size:9px;display:block}.control-symbol{font-family:var(--pixel);color:var(--pink);font-size:25px}.jump-button{background:#412030;border-color:#a66079}.jump-button small{color:#d1b0bf}footer{border-top:1px solid #ffffff0a;align-items:center;gap:13px;padding:20px 0 24px;display:flex}.footer-heart{color:#bc788f;align-items:center;display:flex}footer p{color:#c6a5b5;margin:0;font-size:11px;line-height:1.8}.footer-signature{font-family:var(--pixel);color:#b48198;margin-left:auto;font-size:17px;transform:rotate(-3deg)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (pointer:coarse){.touch-controls{flex:1;display:flex}.below-game{flex-wrap:wrap}.keyboard-controls{display:none}.touch-button{flex:1}.play-note{text-align:center;width:100%}.play-note>span{margin-left:3px;display:inline}}@media (max-width:900px){.app{padding:16px 18px 0}.home-copy{max-width:64%;margin-top:6%}.home-copy>.eyebrow{letter-spacing:.9px;font-size:7px}h1{gap:14px;margin:20px 0 15px;font-size:clamp(64px,9vw,82px)}.home-copy>p{margin-bottom:17px;font-size:12px;line-height:1.6}.primary{min-height:42px;padding:11px 18px;font-size:11px}.start-hint{margin-top:12px}.title-heart svg{width:25px}.result-card,.pause-card{padding:22px}.result-card h2,.pause-card h2{font-size:29px}.result-stats{gap:30px;margin-bottom:13px;padding:10px 0}.modal-overlay{padding:12px}.keyboard-controls{gap:12px}.controls-label,.play-note{display:none}.hearts-panel{min-width:134px;padding:11px 16px 13px}.hud-heart{width:30px;height:28px}.score-panel{min-width:185px;padding:9px 17px 10px;font-size:23px}.score-panel>div{gap:15px}}@media (max-width:520px){.app{padding:13px 12px 0}.site-header{margin-bottom:12px}.brand{font-size:24px}.brand-icon{width:29px;height:29px}.header-dedication{font-size:10px}.header-dedication>span{margin-left:5px}.game-topline{bottom:7px;right:8px}.game-actions{gap:5px;padding:0 5px}.icon-button{min-width:26px;min-height:26px;padding:4px 0}.icon-button>svg{width:14px;height:14px}.icon-button>span{display:none}.pause-button{padding-left:6px}.hud{gap:8px;top:5%;left:3%;right:3%}.pixel-panel:before{inset:2px}.hearts-panel{min-width:106px;padding:9px 13px 12px}.collected-hearts{gap:5px}.hud-heart{width:22px;height:20px}.collected-count{font-size:8px;bottom:3px;right:11px}.score-panel{min-width:135px;padding:8px 13px 9px;font-size:16px}.score-panel strong{letter-spacing:0}.score-panel>div{gap:10px}.home-overlay{background:linear-gradient(#19101a,#2c1724);min-height:270px;display:block;position:relative}.game-frame[data-status=ready] .viewport{aspect-ratio:auto;flex-direction:column-reverse;display:flex}.game-frame[data-status=ready] canvas{height:auto}.home-copy{max-width:none;margin:0;padding:26px 24px 28px}.home-copy>.eyebrow{letter-spacing:.8px;font-size:6.5px}h1{letter-spacing:-2px;margin:22px 0 15px;font-size:66px;line-height:.9}.title-heart svg{width:24px}.home-copy>p{margin-bottom:20px;font-size:12px;line-height:1.8}.home-copy>p>span{font-size:10px}.home-copy .primary{gap:22px;padding:12px 19px;font-size:12px}.home-copy .start-hint{margin-top:14px;font-size:8px}.game-toast{font-size:17px;top:30%}.scene-caption{letter-spacing:1px;font-size:6px;bottom:8%;left:12px}.modal-overlay{background:#150e18;border-top:1px solid #bc8298;min-height:280px;position:relative}.game-frame[data-status=over] .viewport,.game-frame[data-status=paused] .viewport{aspect-ratio:auto}.game-frame[data-status=over] canvas,.game-frame[data-status=paused] canvas{height:auto}.result-card,.pause-card{box-shadow:none;background:0 0;border:0;padding:14px 9px}.result-card .eyebrow{letter-spacing:1px;font-size:6px}.result-card h2{font-size:27px}.pause-card h2{font-size:32px}.result-stats{gap:29px;margin-bottom:19px;padding:12px 0}.result-stats span{font-size:6px}.result-stats strong{font-size:26px}.below-game{flex-wrap:wrap;gap:13px;padding:17px 0 13px;display:flex}.keyboard-controls{flex-wrap:wrap;justify-content:center;gap:8px 14px;width:100%;font-size:9px}.keyboard-controls kbd{min-width:18px;min-height:19px;padding:3px;font-size:8px}.touch-controls{flex:auto;width:100%;display:flex}.touch-button{flex:1;min-height:66px;padding:12px}.play-note{text-align:center;width:100%;font-size:8px;display:block}.play-note>span{margin-left:3px;display:inline}footer{gap:10px;padding:19px 0 22px}footer p{font-size:10px}.footer-signature{font-size:13px}.game-frame[data-status=ready]~.below-game .touch-controls{display:none}}@media (max-width:340px){.app{padding-left:9px;padding-right:9px}.site-header{gap:8px}.brand{gap:8px;font-size:21px}.brand-icon{width:27px;height:27px}.header-dedication{font-size:9px}.home-copy{padding-left:19px;padding-right:19px}.home-copy>.eyebrow{font-size:5.8px}h1{gap:10px;font-size:59px}.hud{gap:4px;left:2%;right:2%}.hearts-panel{min-width:94px;padding-left:12px;padding-right:12px}.collected-hearts{gap:3px}.hud-heart{width:20px;height:18px}.score-panel{min-width:127px;padding-left:12px;padding-right:12px;font-size:15px}.keyboard-controls{gap:9px}footer .footer-signature{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.game-frame[data-status=proposal] .viewport{min-height:620px}.game-frame[data-status=proposal] .game-canvas{opacity:0;pointer-events:none;position:absolute;inset:0}.game-frame[data-status=proposal] .game-topline{z-index:4;bottom:18px;right:24px}.proposal-overlay{background:#120e18;align-items:center;padding:82px 5% 76px;animation:.85s both scene-reveal;display:grid;overflow:hidden}.proposal-overlay:before{content:"";z-index:-1;background:linear-gradient(90deg,#100c17b8,#160d1be6 80%),radial-gradient(at 20% 25%,#a34b6825,#0000 65%);position:absolute;inset:0}.proposal-scenery{z-index:-2;object-fit:cover;opacity:.65;filter:saturate(.7)blur(1px);width:100%;height:100%;position:absolute;inset:0}.proposal-grain{pointer-events:none;opacity:.14;background-image:radial-gradient(#ffe2d1 .6px,#0000 .8px);background-size:7px 7px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 65%,#0000);mask-image:linear-gradient(#0000,#000 65%,#0000)}.proposal-chapter,.proposal-bottomline{color:#cab0be;letter-spacing:.7px;justify-content:space-between;align-items:center;font-size:10px;display:flex;position:absolute;left:5%;right:5%}.proposal-chapter{border-bottom:1px solid #b58a9c38;padding-bottom:17px;top:24px}.chapter-divider{color:#a17a91;margin:0 12px}.chapter-hearts{color:#c887a0;gap:7px;display:flex}.proposal-bottomline{color:#bc94aa;border-top:1px solid #b58a9c30;padding-top:16px;font-size:9px;bottom:23px}.proposal-bottomline>span:last-child{margin-right:105px}.proposal-bottomline>span>span{color:#c88aa3;margin-left:6px}.proposal-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,70px);width:min(100%,1120px);margin:auto;display:grid;position:relative}.couple-theater{text-align:center;isolation:isolate;min-width:0;padding-top:10px;animation:1.1s cubic-bezier(.2,.8,.25,1) both actors-arrive;position:relative}.couple-moon{aspect-ratio:1;z-index:-1;background:radial-gradient(circle at 48% 40%,#cfb4c93d,#79516c28 57%,#93526d12 70%,#0000 71%);border:1px solid #cda9b538;border-radius:50%;width:80%;transition:background 1s,box-shadow 1s;position:absolute;top:2%;left:10%;box-shadow:0 0 100px #bd849d17}.couple-moon span{border:1px solid #c4a2b332;border-radius:50%;position:absolute;inset:-9%}.couple-moon span:nth-child(2){border-style:dashed;border-color:#d8b5c12b;animation:70s linear infinite orbit-turn;inset:10%}.couple-moon span:nth-child(3){border-color:#d1afb52b;inset:28%}.is-accepted .couple-moon{background:radial-gradient(circle at 48% 40%,#b06b8b44,#6b334a55 58%,#0000 71%);box-shadow:0 0 110px #af648b2e}.couple-sparkles{z-index:2;pointer-events:none;position:absolute;inset:0}.couple-sparkles>span{left:calc(5% + var(--i) * 10%);color:#d7b6c6;opacity:.65;animation:scene-sparkle 3.2s calc(var(--i) * -.37s) ease-in-out infinite;font-size:16px;position:absolute;top:15%}.couple-sparkles>span:nth-child(2n){color:#c580a1;font-size:10px;top:66%}.couple-sparkles>span:nth-child(3n){top:39%}.couple-platform{z-index:-1;background:radial-gradient(#9e6a8840,#68405820 60%,#0000 70%);border-top:1px solid #c4a6b536;border-radius:50%;height:13%;position:absolute;top:75%;left:1%;right:1%;box-shadow:0 -14px 70px #ae74940d}.couple-sprite{aspect-ratio:384/342;width:100%;position:relative}.couple-sprite canvas{aspect-ratio:auto;opacity:1;filter:none;pointer-events:none;width:100%;height:100%;display:block;position:static}.couple-fallback{justify-content:center;align-items:flex-end;gap:4%;width:90%;height:100%;margin:auto;padding-bottom:8%;display:flex}.couple-fallback img{object-fit:contain;width:45%;height:90%}.sena-fallback{background-position:0 100%;background-repeat:no-repeat;background-size:600% 400%;width:45%;height:90%;display:block}.couple-names{color:#dfccd5;width:86%;font-family:var(--pixel);letter-spacing:.5px;grid-template-columns:1fr 1fr;margin:-6% auto 0;font-size:21px;display:grid}.couple-names>span>span{color:#b97490;margin-top:3px;font-family:DM Sans,sans-serif;font-size:10px;display:block}.couple-scene-caption{color:#c09cad;letter-spacing:.3px;margin-top:17px;font-size:9px;display:block}.proposal-card,.celebration-card{min-width:0;animation:.8s cubic-bezier(.22,1,.36,1) both letter-arrive;position:relative}.scene-number{font-family:var(--pixel);color:#c78da5;align-items:baseline;gap:5px;margin-bottom:17px;font-size:48px;line-height:1;display:flex}.scene-number>span{color:#a48199;font-size:18px}.proposal-card .eyebrow,.celebration-card .eyebrow{letter-spacing:1.4px;color:#cda9bc;font-size:8px;line-height:1.8;display:block}.proposal-card h2{margin:20px 0 18px;font-weight:500}.proposal-lead{color:#d3bcc9;margin-bottom:12px;font-size:clamp(14px,1.5vw,19px);line-height:1.7;display:block}.proposal-question{font-family:var(--pixel);color:#ecdae2;text-shadow:0 4px #4d233b;font-size:clamp(38px,4.5vw,66px);line-height:1;display:block}.proposal-choices{width:min(100%,380px);height:150px;margin:12px 0 0;position:relative}.proposal-yes,.proposal-no{touch-action:manipulation;min-height:44px;position:absolute;top:8%}.proposal-yes{background:#792b46;border-color:#b97b95;gap:14px;width:42%;padding:12px;left:8%;box-shadow:0 4px #361426,0 0 25px #a34f7622}.proposal-no{color:#d4bac9;background:#231523;border:1px solid #865a71;border-radius:1px;width:76px;padding:10px;transition:left .28s,top .28s,background .18s;left:64%}.proposal-note{color:#bc94aa;min-height:24px;font-size:10px;line-height:1.7;display:block}.proposal-card.is-leaving{pointer-events:none;animation:.5s both letter-leave}.celebration-stamp{color:#e2c7d3;letter-spacing:1px;background:#99557115;border:1px solid #f7c8b155;border-radius:30px;align-items:center;gap:8px;margin-bottom:20px;padding:8px 12px;font-size:9px;font-weight:700;display:inline-flex}.celebration-card h2{font-family:var(--pixel);overflow-wrap:anywhere;color:#ead4df;text-shadow:0 4px #51203b;margin:19px 0 18px;font-size:clamp(34px,4vw,55px);font-weight:500;line-height:1.08}.celebration-card h2:focus{outline:none}.celebration-card>p{color:#cfb1c3;margin:0 0 22px;font-size:12px;line-height:1.7}.celebration-card .primary{gap:24px;font-size:12px}.confetti{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{top:-20px;left:var(--x);background:var(--color);opacity:0;width:7px;height:13px;animation:confetti-fall var(--duration) var(--delay) cubic-bezier(.12, .55, .65, 1) both;position:absolute}.confetti i:nth-child(3n){border-radius:50%;width:8px;height:8px}@keyframes scene-reveal{0%{opacity:0}to{opacity:1}}@keyframes actors-arrive{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes letter-arrive{0%{opacity:0;filter:blur(4px);transform:translate(18px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes letter-leave{to{opacity:0;filter:blur(5px);transform:translateY(-16px)}}@keyframes orbit-turn{to{transform:rotate(360deg)}}@keyframes scene-sparkle{0%,to{opacity:.3;transform:translateY(3px)}50%{opacity:.85;transform:translateY(-5px)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}85%{opacity:1}to{opacity:0;transform:translate3d(var(--drift), 1000px, 0) rotate(var(--spin))}}@media (max-width:800px){.game-frame[data-status=proposal] .viewport{aspect-ratio:auto;min-height:0}.proposal-overlay{min-height:790px;padding:80px 26px 86px;position:relative}.proposal-layout{grid-template-columns:minmax(0,1fr);gap:32px;max-width:490px}.couple-theater{width:min(100%,320px);margin:auto}.proposal-card,.celebration-card{text-align:center}.scene-number{display:none}.proposal-question{font-size:clamp(36px,6vw,48px)}.proposal-card h2{margin-top:13px}.proposal-lead{margin-bottom:10px;font-size:15px}.proposal-choices{margin:10px auto 0}.celebration-card h2{max-width:450px;margin-left:auto;margin-right:auto;font-size:39px}.celebration-stamp{margin-bottom:16px}}@media (max-width:520px){.proposal-overlay{min-height:780px;padding:68px 20px 80px}.proposal-chapter,.proposal-bottomline{font-size:8px;left:20px;right:20px}.proposal-chapter{padding-bottom:13px;top:20px}.chapter-divider{margin:0 7px}.chapter-hearts{gap:5px}.proposal-bottomline{padding-top:13px;bottom:18px}.proposal-bottomline>span:last-child{display:none}.proposal-layout{gap:26px}.couple-theater{width:min(100%,280px)}.couple-scene-caption{margin-top:12px;font-size:8px}.couple-names{font-size:19px}.proposal-card .eyebrow,.celebration-card .eyebrow{letter-spacing:.9px;font-size:7px}.proposal-lead{font-size:13px}.proposal-question{font-size:clamp(32px,8.4vw,42px)}.proposal-note{font-size:9px}.celebration-card h2{font-size:clamp(28px,8vw,36px);line-height:1.12}.celebration-card>p{font-size:11px}.game-frame[data-status=proposal] .game-topline{bottom:10px;right:16px}}@media (prefers-reduced-motion:reduce){.proposal-overlay,.couple-theater,.proposal-card,.celebration-card,.couple-moon span,.couple-sparkles>span{animation:none}.proposal-card.is-leaving{opacity:0}.confetti i{opacity:.55;top:calc(10% + var(--x) * .7);animation:none;transform:rotate(25deg)}}
