@import"https://fonts.googleapis.com/css2?family=Amatic+SC:wght@700&family=Bad+Script&family=Balsamiq+Sans:wght@400;700&family=Caveat:wght@500;700&family=Comfortaa:wght@500;700&family=Lobster&family=Marck+Script&family=Neucha&family=Pacifico&family=Pangolin&display=swap";.envelope-page{position:relative;min-height:100vh;overflow-x:hidden;padding:clamp(18px,3vw,34px);background:repeating-linear-gradient(45deg,rgba(86,47,70,.14) 0 16px,transparent 16px 34px),linear-gradient(135deg,#f6dfbe,#f7c8c7 42%,#91d8cf);color:#2a1821}.envelope-page:before{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(rgba(42,24,33,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(42,24,33,.05) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.74),transparent);mask-image:linear-gradient(to bottom,rgba(0,0,0,.74),transparent)}.envelope-review-bar{position:relative;z-index:5;display:flex;align-items:center;gap:14px;width:min(1180px,100%);margin:0 auto 16px;color:#2a1821c2;font-family:Courier New,Courier,monospace;font-size:.8rem;font-weight:900;text-transform:uppercase}.envelope-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(480px,.95fr) minmax(450px,1.05fr);gap:clamp(26px,4vw,56px);align-items:center;width:min(1220px,100%);min-height:calc(100vh - 84px);margin:0 auto}.envelope-copy{min-width:0}.envelope-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:#365f5b;font-family:Courier New,Courier,monospace;font-size:.84rem;font-weight:900;text-transform:uppercase}.envelope-copy h1{max-width:620px;margin:0 0 18px;color:#2a1821;font-size:clamp(3rem,5.2vw,5.25rem);line-height:.9;overflow-wrap:normal;text-shadow:4px 4px 0 rgba(255,244,221,.9);text-wrap:balance;word-break:normal}.envelope-copy>p{max-width:520px;margin:0 0 24px;color:#2a1821b8;font-size:clamp(1rem,2vw,1.18rem)}.envelope-countdown{width:min(560px,100%)}.envelope-countdown .countdown-grid{grid-template-columns:repeat(4,minmax(70px,1fr));width:100%;gap:10px}.envelope-countdown .time-tile{min-height:118px;border:3px dashed rgba(42,24,33,.48);border-radius:0;background:linear-gradient(180deg,#fff4dd9e,#fff4dd57);box-shadow:7px 7px #2a182129}.envelope-countdown .time-tile strong{color:#c9476d;font-size:clamp(2rem,5vw,3.45rem)}.envelope-countdown .time-tile span{color:#365f5b}.envelope-action{display:flex;margin-top:18px}.envelope-open-button{min-height:58px;padding:14px 24px;border:3px solid #2a1821;border-radius:0;background:linear-gradient(180deg,rgba(255,244,221,.4),transparent 46%),#c9476d;box-shadow:7px 7px #2a182133,inset 0 0 0 3px #fff4dd5c;color:#fff4dd;cursor:pointer;font-family:Courier New,Courier,monospace;font-size:clamp(1rem,2vw,1.18rem);font-weight:900;letter-spacing:0;text-transform:uppercase}.envelope-open-button:hover,.envelope-open-button:focus-visible{outline:none;transform:translateY(-2px);box-shadow:7px 9px #2a182138,0 0 24px #c9476d3d,inset 0 0 0 3px #fff4dd6b}.envelope-helper{margin-top:18px!important;color:#6f3348!important;font-family:Courier New,Courier,monospace;font-size:.95rem!important;font-weight:900}.envelope-object{position:relative;min-height:650px}.envelope-paper{position:absolute;left:50%;top:22px;z-index:1;width:min(78%,520px);height:470px;transform:translate(-50%) rotate(-3deg);border:3px solid rgba(42,24,33,.28);background:linear-gradient(180deg,#ffffffe6,#fff4ddf0);box-shadow:0 22px 42px #2a18212e}.envelope-paper:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border:2px dashed rgba(201,71,109,.34)}.envelope-paper-lines{position:absolute;top:34px;left:32px;display:grid;gap:13px;width:42%}.envelope-paper-lines span{display:block;height:8px;background:#2a182124}.envelope-paper-lines span:nth-child(2){width:72%}.envelope-paper-lines span:nth-child(3){width:86%}.envelope-stamp{position:absolute;top:28px;right:30px;display:grid;width:76px;height:76px;place-items:center;border:4px solid #c9476d;color:#c9476d;font-family:Courier New,Courier,monospace;font-weight:900}.envelope-stamp span{font-size:.78rem}.envelope-couple-stage{position:absolute;left:50%;top:198px;z-index:5;width:min(78%,520px);height:360px;transform:translate(-50%) rotate(-2deg);pointer-events:none}.envelope-couple-stage .countdown-sprite-scene .sprite-frame{width:min(98%,430px);height:min(360px,54vw);max-width:none}.envelope-base{position:absolute;right:0;bottom:72px;left:0;z-index:2;height:390px;background:#ffd9b3;box-shadow:0 26px #2a18211f,0 40px 70px #2a18213d}.envelope-base:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(135deg,transparent 0 50%,rgba(201,71,109,.2) 50% 100%),linear-gradient(225deg,transparent 0 50%,rgba(54,95,91,.14) 50% 100%)}.envelope-fold{position:absolute;pointer-events:none}.envelope-fold-left{left:0;bottom:0;width:58%;height:100%;clip-path:polygon(0 0,100% 50%,0 100%);background:#f7bd9d}.envelope-fold-right{right:0;bottom:0;width:58%;height:100%;clip-path:polygon(100% 0,0 50%,100% 100%);background:#f4b28f}.envelope-fold-bottom{right:0;bottom:0;left:0;height:68%;clip-path:polygon(0 100%,50% 0,100% 100%);background:#f8c7a7}.envelope-seal{position:absolute;left:50%;top:42%;z-index:4;display:grid;width:112px;height:112px;transform:translate(-50%,-50%) rotate(4deg);place-items:center;border:5px solid rgba(255,244,221,.74);border-radius:50%;background:#c9476d;color:#fff4dd;box-shadow:0 12px 22px #2a182140;font-family:Courier New,Courier,monospace;font-size:.85rem;font-weight:900}.envelope-shadow{position:absolute;right:6%;bottom:28px;left:8%;height:40px;border-radius:50%;background:#2a18213d;filter:blur(12px)}@media(max-width:1120px){.envelope-layout{grid-template-columns:1fr}.envelope-copy h1{max-width:980px;font-size:clamp(3.2rem,7.2vw,4.9rem)}.envelope-object{min-height:610px}}@media(max-width:620px){.envelope-page{padding:14px}.envelope-review-bar{flex-wrap:wrap}.envelope-copy h1{font-size:clamp(2.5rem,16vw,4.4rem)}.envelope-countdown .countdown-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}.envelope-object{min-height:560px}.envelope-paper{width:88%;height:390px}.envelope-couple-stage{top:182px;width:92%;height:310px}.envelope-base{height:310px;bottom:68px}.envelope-seal{width:92px;height:92px}}:root{color:#fff7e8;background:#14121d;font-family:Inter,Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #14121d;--panel: #211b2d;--panel-strong: #2a2139;--cream: #fff4dd;--muted: #c9bfd8;--pink: #ff6f9f;--coral: #ff9f6e;--yellow: #ffd166;--mint: #8ff5c6;--teal: #4ad8cc;--violet: #9b7cff;--shadow: rgba(0, 0, 0, .36)}.public-closed-screen{--public-bedroom-image: none;position:relative;display:grid;min-height:100dvh;place-items:center;overflow:hidden;padding:clamp(22px,5vw,60px);background:#171320;color:var(--cream);image-rendering:pixelated}.public-closed-screen:before{position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;content:"";background-image:var(--public-bedroom-image);background-position:center;background-size:cover;filter:blur(12px) saturate(.92) brightness(.48);opacity:.96;pointer-events:none;transform:scale(1.05)}.public-closed-screen:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:radial-gradient(circle at 50% 45%,rgba(255,111,159,.18),transparent 30%),radial-gradient(circle at 72% 24%,rgba(255,209,102,.12),transparent 20%),linear-gradient(180deg,#0a081038,#0a08109e);pointer-events:none}.public-closed-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.public-closed-stars span{position:absolute;width:8px;height:8px;background:var(--yellow);box-shadow:0 0 0 3px #ffd16624,0 0 20px #ffd16694;animation:publicStarBlink 1.7s steps(2,end) infinite}.public-closed-stars span:nth-child(1){top:16%;left:18%}.public-closed-stars span:nth-child(2){top:22%;right:20%;animation-delay:.36s}.public-closed-stars span:nth-child(3){right:31%;bottom:26%;animation-delay:.72s}.public-closed-stars span:nth-child(4){bottom:18%;left:24%;animation-delay:1.08s}.public-closed-stars span:nth-child(5){top:42%;left:10%;animation-delay:1.32s}.public-closed-card{position:relative;z-index:1;width:min(760px,100%);padding:clamp(34px,6vw,58px) clamp(24px,5vw,52px);border:6px solid var(--cream);border-radius:8px;background:linear-gradient(180deg,rgba(255,244,221,.08),transparent 34%),linear-gradient(135deg,#4a263f,#241a2f);box-shadow:0 0 0 8px #ffd16633,16px 16px #00000047,inset 0 0 0 3px #00000038;text-align:center}.public-closed-kicker{display:inline-flex;margin-bottom:18px;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:clamp(.72rem,1.8vw,.9rem);font-weight:800;text-transform:uppercase}.public-closed-card h1{max-width:none;margin:0 0 18px;color:#ff9fca;font-family:Balsamiq Sans,system-ui,sans-serif;font-size:clamp(2.8rem,7vw,5.8rem);line-height:.95}.public-closed-card p{margin:0;color:#fff0c4;font-family:Pangolin,system-ui,sans-serif;font-size:clamp(1.35rem,3.4vw,2.5rem);line-height:1.22;text-wrap:balance}.letter-screen{--letter-room-image: none;--avatar-move-duration: 3.6s;--letter-side-left: clamp(26px, 10vw, 168px);--letter-side-right: clamp(26px, 8vw, 132px);--letter-solo-width: clamp(112px, 16vw, 156px);--letter-center-boy: calc(50% - 166px) ;--letter-center-girl: calc(50% + 18px) ;--letter-return-girl: calc(var(--letter-side-left) + clamp(72px, 7vw, 104px));--letter-pair-width: clamp(196px, 25vw, 270px);--letter-right-pair-left: calc(100vw - var(--letter-side-right) - var(--letter-pair-width));--letter-right-boy: calc(100vw - var(--letter-side-right) - var(--letter-solo-width) - var(--letter-solo-width) + 12px);--letter-right-girl: calc(100vw - var(--letter-side-right) - var(--letter-solo-width));position:relative;min-height:100dvh;overflow:hidden;background:#08070d;color:#35261a;isolation:isolate}.letter-screen:before,.letter-screen:after{display:none}.letter-room-backdrop{position:absolute;top:-2%;right:-2%;bottom:-2%;left:-2%;z-index:-5;background-image:var(--letter-room-image);background-position:center;background-size:cover;filter:saturate(.9) brightness(.5);image-rendering:pixelated;transform:scale(1.03)}.letter-night-shade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-4;background:radial-gradient(circle at 76% 43%,rgba(255,201,122,.22),transparent 16%),radial-gradient(circle at 50% 58%,rgba(255,216,150,.2),transparent 20%),linear-gradient(180deg,#03030a7a,#03030cc7)}.letter-stars{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-3;pointer-events:none}.letter-stars span{position:absolute;width:7px;height:7px;background:#fff2b8;box-shadow:0 0 0 2px #fff2b829,0 0 18px #fff2b8bd;image-rendering:pixelated;animation:letterStarBlink 1.7s steps(2,end) infinite}.letter-stars span:nth-child(1){top:16%;left:28%}.letter-stars span:nth-child(2){top:24%;left:35%;animation-delay:.26s}.letter-stars span:nth-child(3){top:18%;left:43%;animation-delay:.62s}.letter-stars span:nth-child(4){top:11%;right:31%;animation-delay:.93s}.letter-stars span:nth-child(5){top:22%;right:25%;animation-delay:1.22s}.letter-stage-envelope{position:absolute;left:50%;top:min(83dvh,calc(100dvh - 86px));z-index:5;display:grid;width:clamp(112px,10.5vw,150px);aspect-ratio:1;place-items:center;pointer-events:none;transform:translate(-50%,-50%);transition:opacity .52s ease,top 1.65s cubic-bezier(.14,.92,.16,1),transform 1.65s cubic-bezier(.14,.92,.16,1);animation:letterFloat 2.2s ease-in-out infinite}.phase-lift .letter-stage-envelope{top:52%;transform:translate(-50%,-50%) scale(1.16);animation:none}.phase-open .letter-stage-envelope{top:52%;transform:translate(-50%,-50%) scale(1.26);animation:none}.phase-split .letter-stage-envelope,.phase-dance .letter-stage-envelope,.phase-girlReturn .letter-stage-envelope,.phase-hug .letter-stage-envelope,.phase-kiss .letter-stage-envelope{opacity:0;top:52%;transform:translate(-50%,-50%) scale(.82);pointer-events:none;animation:none}.is-letter-closed .letter-stage-envelope{top:min(83dvh,calc(100dvh - 86px));opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(.98);animation:letterFloat 2.4s ease-in-out infinite}.letter-glow{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border:4px solid rgba(255,209,102,.2);background:radial-gradient(circle,rgba(255,209,102,.46),rgba(255,111,159,.16) 42%,transparent 68%);filter:blur(1px);animation:letterGlowPulse 1.2s steps(4,end) infinite}.letter-magic-ring{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border:5px solid rgba(255,238,149,.52);opacity:0;transform:scale(.68);image-rendering:pixelated}.letter-burst{position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;opacity:0;pointer-events:none}.letter-burst span{position:absolute;width:9px;height:9px;background:#ffe875;box-shadow:9px 0 #fff4bf,0 9px #fff4bf,9px 9px #ff9f6e;image-rendering:pixelated}.letter-burst span:nth-child(1){left:16%;top:18%}.letter-burst span:nth-child(2){right:10%;top:22%}.letter-burst span:nth-child(3){left:8%;bottom:22%}.letter-burst span:nth-child(4){right:18%;bottom:12%}.letter-burst span:nth-child(5){left:46%;top:4%}.letter-burst span:nth-child(6){right:40%;bottom:2%}.phase-lift .letter-magic-ring,.phase-open .letter-magic-ring{animation:letterMagicRing 1.3s steps(7,end) forwards}.phase-lift .letter-burst,.phase-open .letter-burst{animation:letterBurst 1.25s steps(6,end) forwards}.closed-letter-button{position:relative;display:grid;width:100%;aspect-ratio:1;padding:0;place-items:center;border:0;background:transparent;cursor:pointer;image-rendering:pixelated}.letter-envelope-sprite{display:block;width:100%;aspect-ratio:1;background-image:url(/assets/letter-envelope-sprite-v1-B3Kgoxcl.png);background-repeat:no-repeat;background-position:0% 50%;background-size:400% 100%;filter:drop-shadow(9px 12px 0 rgba(0,0,0,.28));image-rendering:pixelated}.phase-lift .letter-envelope-sprite,.phase-open .letter-envelope-sprite{animation:letterEnvelopeOpenFrames 1.5s steps(3,end) forwards}.phase-split .letter-envelope-sprite,.phase-dance .letter-envelope-sprite,.phase-girlReturn .letter-envelope-sprite,.phase-hug .letter-envelope-sprite,.phase-kiss .letter-envelope-sprite{background-position:100% 50%}.is-letter-closed .letter-envelope-sprite{background-position:0% 50%;animation:none}.letter-avatar,.letter-couple-action{--anim-cycle: 1.18s;position:absolute;z-index:9;bottom:clamp(30px,6vh,58px);width:var(--letter-solo-width);min-width:118px;pointer-events:none}.letter-avatar{transition:opacity .62s ease,left var(--avatar-move-duration) linear;will-change:left}.letter-avatar .sprite-preview,.letter-couple-action .sprite-preview{min-height:0}.letter-avatar .sprite-frame,.letter-couple-action .sprite-frame{height:min(26vw,224px)}.letter-avatar-boy{left:-16vw;transform:scaleX(1)}.letter-avatar-girl{left:116vw;transform:scaleX(-1)}.phase-approach{--avatar-move-duration: 5.6s}.phase-split{--avatar-move-duration: 3.3s}.phase-girlReturn{--avatar-move-duration: 3.9s}.phase-hug,.phase-kiss{--avatar-move-duration: .9s}.phase-approach .letter-avatar-boy,.phase-lift .letter-avatar-boy,.phase-open .letter-avatar-boy{left:var(--letter-center-boy);transform:scaleX(1)}.phase-approach .letter-avatar-girl,.phase-lift .letter-avatar-girl,.phase-open .letter-avatar-girl{left:var(--letter-center-girl);transform:scaleX(-1)}.phase-split .letter-avatar-boy,.phase-dance .letter-avatar-boy,.phase-girlReturn .letter-avatar-boy{left:var(--letter-side-left)}.phase-split .letter-avatar-boy,.phase-dance .letter-avatar-boy{transform:scaleX(-1)}.phase-split .letter-avatar-girl,.phase-dance .letter-avatar-girl{left:calc(100vw - var(--letter-side-right) - var(--letter-solo-width))}.phase-split .letter-avatar-girl,.phase-dance .letter-avatar-girl,.phase-girlReturn .letter-avatar-boy{transform:scaleX(1)}.phase-girlReturn .letter-avatar-girl{left:var(--letter-return-girl);transform:scaleX(-1)}.phase-hug .letter-avatar-boy,.phase-kiss .letter-avatar-boy{left:var(--letter-side-left);transform:scaleX(1)}.phase-hug .letter-avatar-girl,.phase-kiss .letter-avatar-girl{left:var(--letter-return-girl);transform:scaleX(-1)}.phase-hug .letter-avatar,.phase-kiss .letter-avatar{opacity:0;transition-delay:.12s}.has-after-flip{--avatar-move-duration: 3.6s}.has-after-flip .letter-avatar{transition:left var(--avatar-move-duration) linear}.has-after-flip .letter-avatar-boy{left:var(--letter-right-boy);transform:scaleX(1)}.has-after-flip .letter-avatar-girl{left:var(--letter-right-girl);transform:scaleX(1)}.has-after-flip.flip-walkRight .letter-avatar{opacity:1}.has-after-flip.flip-twerk .letter-avatar,.has-after-flip.flip-standOne .letter-avatar,.has-after-flip.flip-hug .letter-avatar,.has-after-flip.flip-standTwo .letter-avatar,.has-after-flip.flip-kiss .letter-avatar{opacity:0;transition:none}.letter-couple-action{--anim-cycle: 1.76s;--heart-cycle: 3s;left:var(--letter-side-left);bottom:clamp(28px,5.5vh,54px);width:var(--letter-pair-width);opacity:0;transform:translate(8px);transition:opacity .62s ease,transform .9s ease}.phase-hug .letter-couple-action,.phase-kiss .letter-couple-action{opacity:1;transform:translate(0);transition-delay:.26s}.has-after-flip .letter-couple-action{left:var(--letter-right-pair-left);opacity:0;visibility:hidden;transform:translate(0);transition:none}.has-after-flip.flip-walkRight .letter-couple-action{opacity:0;visibility:hidden}.has-after-flip.flip-twerk .letter-couple-action,.has-after-flip.flip-standOne .letter-couple-action,.has-after-flip.flip-hug .letter-couple-action,.has-after-flip.flip-standTwo .letter-couple-action,.has-after-flip.flip-kiss .letter-couple-action{opacity:1;visibility:visible;transform:translate(0)}.has-after-flip.flip-twerk .letter-couple-action{--anim-cycle: 1.36s}.has-after-flip.flip-standOne .letter-couple-action,.has-after-flip.flip-standTwo .letter-couple-action{--anim-cycle: 2.2s;--heart-cycle: 3.2s}.has-after-flip.flip-hug .letter-couple-action,.has-after-flip.flip-kiss .letter-couple-action{--anim-cycle: 1.76s;--heart-cycle: 2.9s}.letter-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;display:grid;padding:clamp(14px,4vw,42px);place-items:center;opacity:0;pointer-events:none;transform:scale(.78) translateY(26px);transition:opacity .72s ease,transform .98s cubic-bezier(.18,.9,.2,1)}.phase-open .letter-open-overlay,.phase-split .letter-open-overlay,.phase-dance .letter-open-overlay,.phase-girlReturn .letter-open-overlay,.phase-hug .letter-open-overlay,.phase-kiss .letter-open-overlay{opacity:1;pointer-events:auto;transform:scale(1) translateY(42px)}.is-letter-closed .letter-open-overlay{opacity:0;pointer-events:none;transform:scale(.72) translateY(30px)}.has-main-note .letter-open-overlay{opacity:0;pointer-events:none;transform:scale(.94) translateY(42px)}.letter-paper{position:relative;z-index:1;width:min(500px,calc(100vw - 34px),calc((100dvh - 152px)*.6903));aspect-ratio:936 / 1356}.letter-paper-inner{position:relative;width:100%;height:100%;opacity:1;transform:scale(1);transition:opacity .32s ease,transform .26s ease-out;will-change:opacity,transform}.side-back .letter-paper-inner{transform:none}.turn-to-back .letter-paper-inner,.turn-to-front .letter-paper-inner{opacity:0;transform:scale(1.006)}.letter-paper-side{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:clamp(78px,6.7vw,108px) clamp(36px,4.25vw,58px) clamp(64px,5.4vw,90px);border:0;background:url(/assets/letter-paper-v1-BbR_7LgD.png) center / 100% 100% no-repeat;filter:drop-shadow(0 18px 0 rgba(41,24,16,.42)) drop-shadow(0 0 24px rgba(255,209,102,.22));opacity:1;image-rendering:pixelated;pointer-events:auto;transition:opacity .18s steps(2,end)}.letter-paper-side:before,.letter-paper-side:after{display:none;content:none}.letter-paper-side:before{top:7%;right:7%;bottom:7%;z-index:1;width:23%;opacity:0;background:linear-gradient(90deg,transparent 0 18%,rgba(255,250,226,.78) 40%,rgba(140,86,45,.22) 78%,transparent 100%),repeating-linear-gradient(0deg,transparent 0 10px,rgba(73,42,24,.09) 10px 12px);clip-path:polygon(20% 0,100% 5%,88% 100%,0 93%);transform-origin:right center}.letter-paper-side:after{top:8%;right:8%;bottom:8%;z-index:1;width:4px;opacity:0;background:#fff7d2eb;box-shadow:-10px 0 #5d321b29,10px 0 #ffffff38}.turn-to-back .letter-paper-side:before{animation:letterPageCurlBack .94s steps(7,end) both}.turn-to-front .letter-paper-side:before{left:7%;right:auto;transform-origin:left center;animation:letterPageCurlFront .94s steps(7,end) both}.turn-to-back .letter-paper-side:after,.turn-to-front .letter-paper-side:after{animation:letterPageEdgeLight .94s steps(6,end) both}.turn-to-front .letter-paper-side:after{left:8%;right:auto}.letter-paper-back{opacity:0;pointer-events:none;transform:none}.side-back .letter-paper-front{opacity:0;pointer-events:none}.side-back .letter-paper-back{opacity:1;pointer-events:auto}.letter-page-turn-sprite{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;opacity:0;background:url(/assets/letter-page-turn-sprite-v5-Dfk-Kn8X.png) 0 0 / 1200% 100% no-repeat;filter:drop-shadow(0 0 28px rgba(255,209,102,.16));image-rendering:pixelated;pointer-events:none;transform-origin:center center}.is-page-turning .letter-page-turn-sprite{opacity:1;animation:letterPageTurnFrames .94s steps(11,end) both}.turn-to-front .letter-page-turn-sprite{transform:scaleX(-1)}.letter-turn-effects{position:absolute;top:-8%;right:-10%;bottom:-8%;left:-10%;z-index:4;overflow:visible;opacity:0;pointer-events:none;transform:translateZ(90px)}.is-page-turning .letter-turn-effects{opacity:1}.letter-turn-effects:before,.letter-turn-effects:after{position:absolute;pointer-events:none;content:""}.letter-turn-effects:before{top:10%;right:10%;bottom:10%;width:34%;opacity:0;background:linear-gradient(90deg,#fffce80a,#fff6d0eb 42%,#91562d3d 74%,#fffce805),repeating-linear-gradient(0deg,rgba(255,255,255,.09) 0 9px,transparent 9px 15px);clip-path:polygon(32% 0,100% 7%,88% 100%,0 92%);filter:drop-shadow(18px 16px 0 rgba(45,24,18,.3));image-rendering:pixelated;transform-origin:right center}.letter-turn-effects:after{top:13%;right:23%;width:10px;height:72%;opacity:0;background:#fff0bae6;box-shadow:-14px 0 #ffffff38,16px 0 #6a381e29}.turn-to-back .letter-turn-effects:before{animation:letterTurnSheetBack .94s cubic-bezier(.2,.86,.18,1) both}.turn-to-front .letter-turn-effects:before{left:10%;right:auto;filter:drop-shadow(-18px 16px 0 rgba(45,24,18,.3));transform-origin:left center;animation:letterTurnSheetFront .94s cubic-bezier(.2,.86,.18,1) both}.turn-to-back .letter-turn-effects:after{animation:letterTurnEdgeBack .94s steps(7,end) both}.turn-to-front .letter-turn-effects:after{left:23%;right:auto;animation:letterTurnEdgeFront .94s steps(7,end) both}.letter-turn-effects span{position:absolute;width:8px;height:8px;opacity:0;background:#fff4dd;box-shadow:0 0 0 2px #ffd075a3,0 0 18px #ffd985cc;image-rendering:pixelated}.is-page-turning .letter-turn-effects span{animation:letterTurnSpark .94s steps(5,end) both}.letter-turn-effects span:nth-child(1){top:20%;left:29%;animation-delay:60ms}.letter-turn-effects span:nth-child(2){top:34%;right:25%;animation-delay:.15s}.letter-turn-effects span:nth-child(3){top:53%;left:18%;animation-delay:.23s}.letter-turn-effects span:nth-child(4){right:19%;bottom:23%;animation-delay:.31s}.letter-turn-effects span:nth-child(5){top:16%;right:36%;animation-delay:.39s}.letter-turn-effects span:nth-child(6){bottom:15%;left:36%;animation-delay:.47s}.letter-lines,.letter-back-lines{position:relative;z-index:2;display:grid;align-content:center;gap:clamp(2px,.58vh,7px);min-height:0;padding:clamp(2px,1.1vw,10px) 0}.letter-message{align-content:center;gap:clamp(6px,.96vh,11px)}.letter-lines p,.letter-back-lines p{margin:0;color:#3f2a20;line-height:1;text-align:center;text-shadow:1px 1px 0 rgba(255,255,255,.22)}.letter-lines p{font-size:clamp(1.42rem,4.3vh,2.48rem)}.letter-message p{font-size:clamp(1.36rem,3.06vh,2.18rem);line-height:1.05;text-align:left;text-wrap:balance}.letter-message .letter-message-spacer{line-height:.36}.letter-back-lines{gap:clamp(18px,4vh,34px)}.letter-back-lines p{font-size:clamp(2.7rem,8.5vh,5.2rem)}.letter-signature{align-content:center;justify-items:center;padding-inline:clamp(8px,2vw,22px)}.letter-signature p{max-width:11.8em;font-size:clamp(1.36rem,3.06vh,2.18rem);line-height:1.05;text-align:center;text-wrap:balance}.letter-font-marck{font-family:Marck Script,Comic Sans MS,cursive}.letter-font-bad{font-family:Bad Script,Comic Sans MS,cursive}.letter-font-caveat{font-family:Caveat,Comic Sans MS,cursive}.letter-font-neucha{font-family:Neucha,Comic Sans MS,cursive}.letter-font-pacifico{font-family:Pacifico,Comic Sans MS,cursive}.letter-font-lobster{font-family:Lobster,Comic Sans MS,cursive}.letter-font-amatic{font-family:Amatic SC,Comic Sans MS,cursive}.letter-font-comfortaa{font-family:Comfortaa,Comic Sans MS,cursive}.letter-font-pangolin{font-family:Pangolin,Comic Sans MS,cursive}.letter-font-balsamiq{font-family:Balsamiq Sans,Comic Sans MS,cursive}.letter-flip-button{position:relative;z-index:2;justify-self:end;align-self:end;width:clamp(68px,9vw,92px);aspect-ratio:779 / 479;border:0;border-radius:0;background:url(/assets/letter-button-next-v1-LkMkcVZc.png) center / contain no-repeat;filter:drop-shadow(5px 6px 0 rgba(109,76,50,.2));cursor:pointer;image-rendering:pixelated}.letter-flip-button:disabled{cursor:default;filter:drop-shadow(3px 4px 0 rgba(109,76,50,.15)) saturate(.9)}.is-page-turning .letter-lines,.is-page-turning .letter-back-lines,.is-page-turning .letter-flip-button{animation:letterTurnInk .94s steps(5,end) both}.letter-flip-button-back{justify-self:start;aspect-ratio:678 / 479;background-image:url(/assets/letter-button-prev-v1-BkRHkX1p.png)}.letter-capsule-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;opacity:0;pointer-events:none;transition:opacity .62s ease}.letter-capsule-layer.is-visible{opacity:1;pointer-events:none}.stat-capsule,.main-capsule{position:absolute;display:block;padding:0;border:0;background:transparent;cursor:pointer;image-rendering:pixelated;pointer-events:auto;-webkit-tap-highlight-color:transparent}.stat-capsule{width:clamp(132px,14.8vw,190px);opacity:0;transform:translateY(14px) scale(.92);transition:filter .18s steps(2,end),opacity .56s ease,transform .56s cubic-bezier(.18,.9,.2,1)}.letter-capsule-layer.is-visible .stat-capsule{opacity:1;transform:translateY(0) scale(1)}.stat-capsule[data-position=top-left]{top:clamp(58px,8vh,76px);left:clamp(62px,8vw,122px)}.stat-capsule[data-position=top-right]{top:clamp(84px,13vh,124px);right:clamp(76px,10vw,150px)}.stat-capsule[data-position=bottom-left]{top:clamp(196px,31vh,246px);left:clamp(18px,4vw,62px)}.stat-capsule[data-position=bottom-right]{top:clamp(218px,35vh,284px);right:clamp(22px,5vw,76px)}.stat-capsule img,.main-capsule img{display:block;width:100%;height:auto;pointer-events:none;filter:drop-shadow(0 12px 0 rgba(20,9,14,.24)) drop-shadow(0 0 18px rgba(255,193,99,.16));image-rendering:pixelated}.stat-capsule img{animation:statCapsuleFloat 2.8s ease-in-out infinite}.stat-capsule[data-position=top-right] img{animation-delay:.22s}.stat-capsule[data-position=bottom-left] img{animation-delay:.46s}.stat-capsule[data-position=bottom-right] img{animation-delay:.68s}.stat-capsule:hover,.stat-capsule:focus-visible{filter:brightness(1.12) saturate(1.08);outline:none}.stat-capsule.is-opened{filter:saturate(.94) brightness(.92)}.stat-capsule.is-active{filter:brightness(1.18) saturate(1.12);transform:translateY(-4px) scale(1.04)}.capsule-stat-card{position:absolute;top:clamp(86px,15vh,136px);left:50%;z-index:2;display:grid;width:min(354px,calc(100vw - 42px));gap:7px;padding:16px 18px 18px;border:4px solid rgba(255,232,178,.82);background:linear-gradient(180deg,#3d2237f0,#25182af2),repeating-linear-gradient(0deg,transparent 0 8px,rgba(255,255,255,.04) 8px 10px);box-shadow:0 10px #140a1252,0 0 26px #ffbf5e38;color:#fff1c5;pointer-events:none;text-align:center;transform:translate(-50%);animation:capsuleCardAppear .36s steps(4,end) both;image-rendering:pixelated}.capsule-stat-card span{color:#ff9fcb;font-family:Comfortaa,Trebuchet MS,sans-serif;font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.capsule-stat-card strong{color:#fff7d4;font-family:Marck Script,Comic Sans MS,cursive;font-size:clamp(1.85rem,4vh,2.72rem);font-weight:400;line-height:.95}.capsule-stat-card p{margin:0;color:#ffeec6db;font-size:.86rem;line-height:1.25}.letter-capsule-layer.has-main-capsule .stat-capsule{opacity:.5;transform:translateY(0) scale(.92)}.letter-capsule-layer.has-main-capsule .stat-capsule:hover,.letter-capsule-layer.has-main-capsule .stat-capsule:focus-visible{opacity:.78}.main-capsule{top:50%;left:50%;z-index:3;width:clamp(260px,38vw,436px);opacity:0;transform:translate(-50%,-50%) scale(.66);transition:filter .18s steps(2,end),opacity .52s ease,transform .68s cubic-bezier(.18,.9,.2,1);animation:mainCapsulePulse 2.6s ease-in-out infinite}.letter-capsule-layer.has-main-capsule .main-capsule{opacity:1;transform:translate(-50%,-50%) scale(1)}.main-capsule:hover,.main-capsule:focus-visible{filter:brightness(1.12) saturate(1.08);outline:none}.letter-capsule-layer.is-main-open .stat-capsule{opacity:0;pointer-events:none}.letter-capsule-layer.is-main-open .main-capsule{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(1.18)}.main-capsule-note{position:absolute;top:50%;left:50%;z-index:4;display:grid;width:clamp(210px,20vw,270px);aspect-ratio:936 / 1356;padding:clamp(44px,4vw,58px) clamp(22px,2.4vw,32px);place-items:center;background:url(/assets/letter-paper-v1-BbR_7LgD.png) center / 100% 100% no-repeat;filter:drop-shadow(0 18px 0 rgba(41,24,16,.38)) drop-shadow(0 0 28px rgba(255,209,102,.2));opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.8);animation:mainCapsuleNoteAppear .62s cubic-bezier(.18,.9,.2,1) .14s both;image-rendering:pixelated}.main-capsule-note p{max-width:8.7em;margin:0;color:#3f2a20;font-size:clamp(1.22rem,3vh,1.9rem);line-height:1.02;text-align:center;text-shadow:1px 1px 0 rgba(255,255,255,.24);text-wrap:balance}@keyframes statCapsuleFloat{0%,to{translate:0 0}50%{translate:0 -7px}}@keyframes capsuleCardAppear{0%{opacity:0;transform:translate(-50%) translateY(8px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes mainCapsulePulse{0%,to{filter:drop-shadow(0 0 0 rgba(255,198,91,0))}50%{filter:drop-shadow(0 0 18px rgba(255,198,91,.36))}}@keyframes mainCapsuleNoteAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes letterPageTurnFrames{to{background-position:100% 0}}@keyframes letterPageTurnToBack{0%{filter:drop-shadow(0 0 0 rgba(0,0,0,0));transform:rotateY(0) rotateX(0) translate(0) translateZ(0) skewY(0)}16%{transform:rotateY(18deg) rotateX(2deg) translate(4px) translateZ(10px) skewY(-1deg)}42%{filter:drop-shadow(26px 18px 0 rgba(45,24,18,.28));transform:rotateY(72deg) rotateX(6deg) translate(18px) translateZ(40px) skewY(-3deg)}64%{filter:drop-shadow(18px 16px 0 rgba(45,24,18,.2));transform:rotateY(118deg) rotateX(5deg) translate(14px) translateZ(34px) skewY(-2deg)}84%{transform:rotateY(164deg) rotateX(2deg) translate(4px) translateZ(12px) skewY(-1deg)}to{filter:drop-shadow(0 0 0 rgba(0,0,0,0));transform:rotateY(180deg) rotateX(0) translate(0) translateZ(0) skewY(0)}}@keyframes letterPageTurnToFront{0%{filter:drop-shadow(0 0 0 rgba(0,0,0,0));transform:rotateY(180deg) rotateX(0) translate(0) translateZ(0) skewY(0)}16%{transform:rotateY(162deg) rotateX(2deg) translate(-4px) translateZ(10px) skewY(1deg)}42%{filter:drop-shadow(-26px 18px 0 rgba(45,24,18,.28));transform:rotateY(108deg) rotateX(6deg) translate(-18px) translateZ(40px) skewY(3deg)}64%{filter:drop-shadow(-18px 16px 0 rgba(45,24,18,.2));transform:rotateY(62deg) rotateX(5deg) translate(-14px) translateZ(34px) skewY(2deg)}84%{transform:rotateY(16deg) rotateX(2deg) translate(-4px) translateZ(12px) skewY(1deg)}to{filter:drop-shadow(0 0 0 rgba(0,0,0,0));transform:rotateY(0) rotateX(0) translate(0) translateZ(0) skewY(0)}}@keyframes letterPageCurlBack{0%,to{opacity:0;transform:translate(0) scaleX(.24) skewY(0)}28%{opacity:.54;transform:translate(-8%) scaleX(.7) skewY(-4deg)}52%{opacity:.9;transform:translate(-38%) scaleX(1.14) skewY(-7deg)}74%{opacity:.46;transform:translate(-12%) scaleX(.74) skewY(-3deg)}}@keyframes letterPageCurlFront{0%,to{opacity:0;transform:translate(0) scaleX(.24) skewY(0)}28%{opacity:.54;transform:translate(8%) scaleX(.7) skewY(4deg)}52%{opacity:.9;transform:translate(38%) scaleX(1.14) skewY(7deg)}74%{opacity:.46;transform:translate(12%) scaleX(.74) skewY(3deg)}}@keyframes letterPageEdgeLight{0%,to{opacity:0;transform:scaleY(.84)}35%,64%{opacity:.76;transform:scaleY(1)}}@keyframes letterTurnSheetBack{0%,to{opacity:0;transform:translate(0) rotateY(0) skewY(0) scaleX(.48)}22%{opacity:.64;transform:translate(-4%) rotateY(-18deg) skewY(-4deg) scaleX(.8)}48%{opacity:.95;transform:translate(-52%) rotateY(-64deg) skewY(-8deg) scaleX(1.18)}72%{opacity:.56;transform:translate(-24%) rotateY(-24deg) skewY(-3deg) scaleX(.84)}}@keyframes letterTurnSheetFront{0%,to{opacity:0;transform:translate(0) rotateY(0) skewY(0) scaleX(.48)}22%{opacity:.64;transform:translate(4%) rotateY(18deg) skewY(4deg) scaleX(.8)}48%{opacity:.95;transform:translate(52%) rotateY(64deg) skewY(8deg) scaleX(1.18)}72%{opacity:.56;transform:translate(24%) rotateY(24deg) skewY(3deg) scaleX(.84)}}@keyframes letterTurnEdgeBack{0%,to{opacity:0;transform:translate(0) scaleY(.7)}46%,62%{opacity:.82;transform:translate(-86px) scaleY(1)}}@keyframes letterTurnEdgeFront{0%,to{opacity:0;transform:translate(0) scaleY(.7)}46%,62%{opacity:.82;transform:translate(86px) scaleY(1)}}@keyframes letterTurnSpark{0%,to{opacity:0;transform:translate(0) scale(.5)}34%{opacity:1;transform:translate(8px,-10px) scale(1)}72%{opacity:.5;transform:translate(18px,-22px) scale(.72)}}@keyframes letterTurnInk{0%{opacity:1}18%{opacity:.62}34%,74%{opacity:.14}88%{opacity:.56}to{opacity:1}}@keyframes letterFloat{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-12px)}}@keyframes letterEnvelopeOpenFrames{to{background-position:100% 50%}}@keyframes letterStarBlink{50%{opacity:.42;transform:scale(.72)}}@keyframes publicStarBlink{50%{opacity:.42;transform:scale(.72)}}@keyframes letterGlowPulse{50%{opacity:.55;transform:scale(1.05)}}@keyframes letterMagicRing{0%{opacity:0;transform:scale(.68)}34%{opacity:.9}to{opacity:0;transform:scale(1.56)}}@keyframes letterBurst{0%{opacity:0;transform:scale(.55) rotate(0)}18%{opacity:1}to{opacity:0;transform:scale(1.34) rotate(8deg)}}@media(max-width:720px){.letter-screen{--avatar-move-duration: 3.3s;--letter-side-left: 12px;--letter-side-right: 10px;--letter-solo-width: 100px;--letter-center-boy: calc(50% - 106px) ;--letter-center-girl: calc(50% + 8px) ;--letter-return-girl: 94px;--letter-pair-width: 184px;--letter-right-pair-left: calc(100vw - 12px - var(--letter-pair-width));--letter-right-boy: calc(100vw - 12px - var(--letter-solo-width) - var(--letter-solo-width) + 8px);--letter-right-girl: calc(100vw - 12px - var(--letter-solo-width))}.letter-stage-envelope,.is-letter-closed .letter-stage-envelope{top:min(82dvh,calc(100dvh - 82px));width:108px}.letter-paper{width:min(338px,calc(100vw - 34px),calc((100dvh - 142px)*.6903));height:auto}.letter-paper-side{padding:clamp(54px,13.4vw,74px) clamp(25px,7vw,36px) clamp(46px,11.2vw,66px)}.letter-lines p{font-size:clamp(1.04rem,3.45vh,1.72rem)}.letter-message{gap:clamp(2px,.42vh,4px)}.letter-message p{font-size:clamp(.9rem,2.18vh,1.14rem);line-height:1.03}.letter-back-lines p{font-size:clamp(2.35rem,7.3vh,3.9rem)}.letter-signature p{font-size:clamp(1.1rem,3.58vh,1.68rem)}.letter-avatar{bottom:36px;width:var(--letter-solo-width);min-width:0}.letter-couple-action{bottom:36px;width:184px;min-width:0}.phase-open .letter-open-overlay,.phase-split .letter-open-overlay,.phase-dance .letter-open-overlay,.phase-girlReturn .letter-open-overlay,.phase-hug .letter-open-overlay,.phase-kiss .letter-open-overlay{transform:scale(1) translateY(48px)}.stat-capsule{width:clamp(104px,32vw,126px)}.stat-capsule[data-position=top-left]{top:58px;left:8px}.stat-capsule[data-position=top-right]{top:58px;right:8px}.stat-capsule[data-position=bottom-left]{top:150px;left:8px}.stat-capsule[data-position=bottom-right]{top:150px;right:8px}.stat-capsule-number{width:24px;border-width:2px;font-size:.72rem}.capsule-stat-card{top:102px;width:min(294px,calc(100vw - 34px));padding:12px 14px 14px}.capsule-stat-card strong{font-size:clamp(1.52rem,5.2vh,2.2rem)}.capsule-stat-card p{font-size:.78rem}.main-capsule{top:48%;width:min(318px,calc(100vw - 34px))}.main-capsule-note{top:48%;width:min(316px,calc(100vw - 38px));padding:clamp(58px,15vw,78px) clamp(28px,8vw,38px)}.main-capsule-note p{font-size:clamp(1.62rem,6.2vh,2.45rem)}}*{box-sizing:border-box}html{min-width:min(320px,100vw);min-height:100%;background:var(--ink)}body{min-width:min(320px,100vw);min-height:100vh;margin:0;overflow-x:hidden;background:radial-gradient(circle at 16% 18%,rgba(255,111,159,.18),transparent 28%),radial-gradient(circle at 82% 12%,rgba(74,216,204,.14),transparent 30%),linear-gradient(135deg,#14121d,#211b2d 46%,#172925)}button,input,textarea,select{font:inherit}button{color:inherit}#root{min-height:100vh}.screen{position:relative;min-height:100vh;overflow:hidden;padding:24px}.screen:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;content:"";background-image:linear-gradient(rgba(255,244,221,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,244,221,.04) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.82),transparent 90%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.82),transparent 90%)}.screen:after{position:fixed;inset:auto 0 0;z-index:-1;height:30vh;content:"";background:linear-gradient(90deg,transparent 0 5%,rgba(255,209,102,.16) 5% 6%,transparent 6% 15%),linear-gradient(0deg,rgba(0,0,0,.2),transparent);background-size:210px 100%}.quest-shell{width:min(1120px,100%);margin:0 auto;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 22%),var(--panel);box-shadow:0 26px 70px var(--shadow),0 0 0 8px #14121d8a,inset 0 0 0 3px #0000002e}.status-bar{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 14px;border-bottom:3px solid #fff4dd;background:#15131f;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.status-light{width:12px;height:12px;border:2px solid #fff4dd;background:var(--pink);box-shadow:0 0 0 2px #15131f,0 0 18px #ff6f9fe6}.status-light-open{background:var(--mint);box-shadow:0 0 0 2px #15131f,0 0 18px #8ff5c6e6}.preview-badge{margin-left:auto;padding:4px 8px;border:2px solid rgba(255,244,221,.72);background:#fff4dd14;color:var(--mint)}.quest-header,.memory-panel,.final-message{min-width:0}.kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.86rem;font-weight:800;text-transform:uppercase}h1,h2,p{margin-top:0}h1{max-width:760px;margin-bottom:18px;color:var(--cream);font-size:clamp(2.28rem,7vw,5rem);line-height:.95;letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance;text-shadow:5px 5px 0 rgba(0,0,0,.26)}h2{margin-bottom:10px;color:var(--cream);font-size:clamp(1.4rem,5vw,2.1rem);line-height:1.05;overflow-wrap:anywhere;text-wrap:balance}.quest-header p,.memory-panel p,.final-message{color:var(--muted);font-size:clamp(1rem,2vw,1.16rem)}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(86px,1fr));gap:12px;width:min(620px,100%)}.time-tile{min-width:0;padding:16px 12px;border:3px solid #fff4dd;border-radius:6px;background:linear-gradient(180deg,#ffd16629,#ff6f9f1a),#15131f;box-shadow:6px 6px #0000003d;text-align:center}.time-tile strong,.quest-score strong{display:block;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:clamp(2rem,5vw,3.35rem);line-height:1;letter-spacing:0}.time-tile span,.quest-score span{display:block;margin-top:8px;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:800;text-transform:uppercase}.map-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.44;background-image:linear-gradient(rgba(255,244,221,.08) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.08) 2px,transparent 2px);background-size:32px 32px}.countdown-sprite-scene{--anim-cycle: 1.5s;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center}.countdown-sprite-scene .sprite-preview{min-height:0}.countdown-sprite-scene .sprite-frame{height:min(var(--frame-height),72vw);max-width:min(98%,460px)}.countdown-sprite-scene .sprite-preview-couple .sprite-frame{max-width:min(98%,460px)}.quest-shell{min-height:calc(100vh - 48px)}.quest-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:clamp(22px,4vw,44px) clamp(18px,4vw,44px) 18px}.quest-header h1{margin-bottom:14px;font-size:clamp(2rem,5vw,4.2rem)}.quest-header p{max-width:760px;margin-bottom:0}.quest-score{min-width:138px;padding:14px;border:3px solid #fff4dd;border-radius:6px;background:#15131f;box-shadow:6px 6px #0003;text-align:center}.quest-score strong{color:var(--mint);font-size:2rem}.quest-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:18px;padding:18px clamp(18px,4vw,44px) 28px}.quest-map{position:relative;min-height:560px;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:radial-gradient(circle at 18% 70%,rgba(255,111,159,.24),transparent 24%),radial-gradient(circle at 78% 26%,rgba(143,245,198,.18),transparent 24%),linear-gradient(160deg,#161824,#252039 52%,#182b29);box-shadow:inset 0 0 0 5px #0000002e}.map-path{position:absolute;top:18%;right:6%;bottom:12%;left:6%;opacity:.72;background:linear-gradient(135deg,transparent 0 16%,var(--yellow) 16% 18%,transparent 18% 34%,var(--yellow) 34% 36%,transparent 36% 54%,var(--yellow) 54% 56%,transparent 56% 73%,var(--yellow) 73% 75%,transparent 75%),linear-gradient(22deg,transparent 0 28%,var(--teal) 28% 29.5%,transparent 29.5% 67%,var(--pink) 67% 68.5%,transparent 68.5%);filter:drop-shadow(0 0 16px rgba(255,209,102,.24))}.quest-node{position:absolute;display:flex;align-items:center;gap:10px;width:178px;max-width:calc(100% - 24px);min-height:58px;padding:8px 10px;transform:translate(-50%,-50%);border:3px solid #fff4dd;border-radius:6px;background:#15131f;box-shadow:7px 7px #0000003d;cursor:pointer;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.quest-node:hover,.quest-node:focus-visible,.quest-node.is-active{background:#2d2340;box-shadow:7px 7px #ff6f9f47;outline:none;transform:translate(-50%,-54%)}.node-orb{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border:3px solid #fff4dd;background:var(--pink);color:#15131f}.quest-node.is-active .node-orb{background:var(--mint)}.node-label{min-width:0;text-align:left}.node-label small,.memory-level{display:block;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:.72rem;font-weight:800;text-transform:uppercase}.node-label strong{display:block;color:var(--cream);font-size:.88rem;line-height:1.08;overflow-wrap:break-word}.memory-panel{position:relative;align-self:stretch;min-height:560px;padding:22px;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.12),transparent 30%),#15131f;box-shadow:8px 8px #0000003d}.close-button,.open-panel-button{display:inline-flex;align-items:center;justify-content:center;border:3px solid #fff4dd;border-radius:6px;background:#211b2d;color:var(--cream);cursor:pointer}.close-button{position:absolute;top:14px;right:14px;width:40px;height:40px}.close-button:hover,.close-button:focus-visible,.open-panel-button:hover,.open-panel-button:focus-visible{background:#35294c;outline:none}.memory-level{margin-bottom:12px;padding-right:54px}.memory-date{display:flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.86rem;font-weight:800}.photo-placeholder{display:grid;min-height:210px;margin:18px 0;padding:20px;place-items:center;border:3px dashed rgba(255,244,221,.78);border-radius:8px;background:linear-gradient(135deg,rgba(255,111,159,.16) 25%,transparent 25% 50%,rgba(143,245,198,.14) 50% 75%,transparent 75%),#211b2d;background-size:34px 34px;color:var(--cream);text-align:center}.photo-placeholder span{max-width:220px;color:var(--muted);font-family:Courier New,Courier,monospace;font-size:.84rem;font-weight:800;text-transform:uppercase}.memory-panel p{margin-bottom:0}.open-panel-button{align-self:start;gap:8px;min-height:52px;padding:10px 14px;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.82rem;font-weight:800;text-transform:uppercase}.final-message{margin:0 clamp(18px,4vw,44px) 34px;padding:18px;border:3px solid rgba(255,244,221,.82);border-radius:8px;background:#14121d99;color:#f8d7e2}.rooms-screen{--room-accent: var(--pink);--room-accent-soft: rgba(255, 111, 159, .22);--room-accent-wash: rgba(255, 111, 159, .1);--room-deep: #221728}.rooms-shell{width:min(1260px,100%);min-height:calc(100vh - 48px);margin:0 auto;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.08),transparent 24%),linear-gradient(135deg,#1b1727,#241d32,#172c2d);box-shadow:0 26px 70px var(--shadow),0 0 0 8px #14121d8a,inset 0 0 0 3px #0000002e}.rooms-header{display:flex;align-items:flex-start;justify-content:space-between;gap:26px;padding:clamp(22px,4vw,42px) clamp(18px,4vw,42px) 18px}.rooms-header h1{max-width:680px;margin-bottom:14px;font-size:clamp(2.1rem,5vw,4.35rem)}.rooms-header p{max-width:790px;margin-bottom:0;color:var(--muted);font-size:clamp(1rem,1.8vw,1.12rem)}.room-key-ring{display:grid;grid-template-columns:54px minmax(74px,1fr);gap:12px;min-width:168px;padding:12px;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(135deg,#8ff5c629,#ffd1661a),#15131f;box-shadow:7px 7px #0000003d}.room-key-ring-icon{display:grid;min-width:54px;height:54px;place-items:center;border:3px solid #fff4dd;background:var(--yellow);color:#15131f}.room-key-ring span,.room-chapter,.room-objectives span,.vault-copy span,.stat-chip span{display:block;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.76rem;font-weight:800;text-transform:uppercase}.room-key-ring strong{display:block;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:2rem;line-height:1.05}.rooms-layout{display:grid;grid-template-columns:minmax(204px,250px) minmax(0,1fr) minmax(260px,320px);gap:16px;padding:16px clamp(18px,4vw,42px) 34px}.room-rail{display:grid;align-content:start;gap:10px}.room-tab{--room-accent: var(--pink);--room-accent-soft: rgba(255, 111, 159, .2);display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:10px;min-height:82px;padding:12px;border:3px solid rgba(255,244,221,.72);border-radius:8px;background:linear-gradient(90deg,var(--room-accent-soft),transparent 42%),#15131f;color:var(--cream);cursor:pointer;text-align:left;box-shadow:6px 6px #0003;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.room-tab:hover,.room-tab:focus-visible,.room-tab.is-active{border-color:#fff4dd;outline:none;transform:translateY(-2px);box-shadow:6px 8px #00000047}.room-tab.is-complete{background:linear-gradient(90deg,rgba(143,245,198,.2),transparent 46%),#15131f}.room-tab-index{grid-column:1 / -1;color:var(--room-accent);font-family:Courier New,Courier,monospace;font-size:.7rem;font-weight:800}.room-tab-copy{min-width:0}.room-tab-copy strong{display:block;color:var(--cream);font-size:1rem;line-height:1.1;overflow-wrap:anywhere}.room-tab-copy small{display:block;margin-top:4px;color:var(--muted);font-size:.82rem;line-height:1.15}.room-tab-state{display:grid;align-self:end;width:34px;height:34px;place-items:center;border:2px solid #fff4dd;background:var(--room-accent);color:#15131f}.room-tab.is-complete .room-tab-state{background:var(--mint)}.palette-rose{--room-accent: #ff6f9f;--room-accent-soft: rgba(255, 111, 159, .24);--room-accent-wash: rgba(255, 111, 159, .12);--room-deep: #2a1725}.palette-mint{--room-accent: #8ff5c6;--room-accent-soft: rgba(143, 245, 198, .22);--room-accent-wash: rgba(143, 245, 198, .1);--room-deep: #142924}.palette-gold{--room-accent: #ffd166;--room-accent-soft: rgba(255, 209, 102, .24);--room-accent-wash: rgba(255, 209, 102, .12);--room-deep: #2d2418}.palette-violet{--room-accent: #9b7cff;--room-accent-soft: rgba(155, 124, 255, .22);--room-accent-wash: rgba(155, 124, 255, .1);--room-deep: #211c38}.palette-teal{--room-accent: #4ad8cc;--room-accent-soft: rgba(74, 216, 204, .22);--room-accent-wash: rgba(74, 216, 204, .1);--room-deep: #13292d}.room-detail{min-width:0;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:#15131f;box-shadow:8px 8px #0000003d}.room-scene{position:relative;display:grid;min-height:342px;overflow:hidden;place-items:end center;border-bottom:3px solid #fff4dd;background:linear-gradient(rgba(255,244,221,.07) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.06) 2px,transparent 2px),linear-gradient(180deg,var(--room-accent-wash),transparent 42%),var(--room-deep);background-size:32px 32px,32px 32px,auto,auto}.room-wall{position:absolute;top:0;right:0;bottom:74px;left:0}.room-wall:before,.room-wall:after{position:absolute;bottom:0;width:28%;height:52%;content:"";border:3px solid rgba(255,244,221,.58);background:linear-gradient(90deg,transparent 48%,rgba(255,244,221,.38) 48% 52%,transparent 52%),linear-gradient(0deg,transparent 48%,rgba(255,244,221,.34) 48% 52%,transparent 52%),#14121d47}.room-wall:before{left:8%}.room-wall:after{right:8%}.room-window{position:absolute;top:34px;width:76px;height:110px;border:3px solid rgba(255,244,221,.76);background:linear-gradient(90deg,transparent 46%,rgba(255,244,221,.36) 46% 54%,transparent 54%),linear-gradient(0deg,transparent 48%,rgba(255,244,221,.32) 48% 54%,transparent 54%),linear-gradient(180deg,var(--room-accent-soft),rgba(20,18,29,.2))}.room-window-left{left:12%}.room-window-right{right:12%}.room-door-glow{position:absolute;left:50%;bottom:0;width:min(38%,250px);height:64%;transform:translate(-50%);border:3px solid rgba(255,244,221,.86);background:linear-gradient(90deg,transparent 49%,rgba(255,244,221,.42) 49% 51%,transparent 51%),linear-gradient(180deg,var(--room-accent-soft),rgba(20,18,29,.6));box-shadow:0 0 34px var(--room-accent-soft)}.room-artifact{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:8px;max-width:min(280px,calc(100% - 36px));padding:8px 10px;border:3px solid #fff4dd;border-radius:6px;background:#15131fdb;color:var(--room-accent);font-family:Courier New,Courier,monospace;font-size:.76rem;font-weight:800;text-transform:uppercase}.room-artifact span{min-width:0;overflow-wrap:anywhere}.room-guide-sprite{--anim-cycle: 1.28s;--heart-cycle: 1.8s;position:relative;z-index:2;width:min(520px,84%)}.room-guide-sprite .sprite-preview{min-height:236px}.room-guide-sprite .sprite-frame{height:min(var(--frame-height),230px);max-width:min(96%,380px)}.room-floor{position:absolute;inset:auto 0 0;height:84px;border-top:3px solid rgba(255,244,221,.66);background:linear-gradient(90deg,rgba(255,244,221,.12) 2px,transparent 2px),linear-gradient(180deg,rgba(255,244,221,.08),transparent),#1d1a27;background-size:42px 100%,auto,auto}.room-copy-panel{padding:clamp(18px,3vw,28px)}.room-copy-panel h2{margin-bottom:12px}.room-copy-panel p{max-width:740px;margin-bottom:16px;color:var(--muted)}.room-clues{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.room-clues span{padding:6px 9px;border:2px solid rgba(255,244,221,.7);border-radius:6px;background:var(--room-accent-wash);color:var(--cream);font-family:Courier New,Courier,monospace;font-size:.76rem;font-weight:800}.room-objectives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.room-objectives div{min-width:0;padding:14px;border:3px solid rgba(255,244,221,.72);border-radius:8px;background:linear-gradient(180deg,var(--room-accent-wash),transparent),#211b2d}.room-objectives strong{display:block;margin-top:8px;color:var(--cream);font-size:.96rem;font-weight:700;line-height:1.25}.room-actions{display:flex;flex-wrap:wrap;gap:10px}.room-primary-action,.room-secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:3px solid #fff4dd;border-radius:6px;cursor:pointer;font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:800;text-transform:uppercase}.room-primary-action{gap:8px;padding:10px 14px;background:var(--room-accent);color:#15131f}.room-primary-action:disabled{cursor:default;background:var(--mint)}.room-secondary-action{padding:10px 12px;background:transparent;color:var(--muted)}.room-primary-action:hover:not(:disabled),.room-primary-action:focus-visible,.room-secondary-action:hover,.room-secondary-action:focus-visible{outline:none;box-shadow:0 0 0 4px #fff4dd24}.vault-panel{align-self:stretch;min-width:0;padding:18px;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.11),transparent 38%),#15131f;box-shadow:8px 8px #0000003d}.vault-panel.is-open{background:linear-gradient(180deg,rgba(143,245,198,.18),transparent 40%),#15131f}.vault-door{display:grid;width:96px;height:96px;margin-bottom:18px;place-items:center;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(90deg,transparent 48%,rgba(20,18,29,.36) 48% 52%,transparent 52%),var(--yellow);color:#15131f;box-shadow:7px 7px #0000003d}.vault-panel.is-open .vault-door{background:linear-gradient(90deg,transparent 48%,rgba(20,18,29,.28) 48% 52%,transparent 52%),var(--mint)}.vault-copy h2{margin-bottom:10px;font-size:clamp(1.45rem,3vw,2rem)}.vault-copy p{margin-bottom:16px;color:var(--muted)}.stats-preview{display:grid;gap:10px}.stat-chip{min-width:0;padding:12px;border:2px solid rgba(255,244,221,.56);border-radius:6px;background:#fff4dd0f}.stat-chip strong{display:block;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:1.04rem;line-height:1.1;overflow-wrap:anywhere}.stat-chip span{margin-top:4px;color:var(--muted);font-size:.7rem}.quest-game-shell{width:min(1280px,100%);min-height:calc(100vh - 48px);margin:0 auto;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.08),transparent 22%),linear-gradient(135deg,#171422,#241c31 48%,#132a2c);box-shadow:0 26px 70px var(--shadow),0 0 0 8px #14121d8a,inset 0 0 0 3px #0000002e}.quest-game-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px clamp(14px,3vw,28px);border-bottom:3px solid rgba(255,244,221,.82);background:#15131fdb}.quest-game-title{min-width:0}.quest-game-title span,.room-top-strip span,.room-puzzle-copy span,.hall-vault-door small,.hall-door-label small,.vault-reward-grid span{display:block;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.72rem;font-weight:800;letter-spacing:0;line-height:1.15;text-transform:uppercase}.quest-game-title strong{display:block;color:var(--cream);font-size:clamp(1.12rem,2vw,1.55rem);line-height:1.05;overflow-wrap:anywhere}.quest-key-ring{display:flex;gap:6px;padding:8px;border:3px solid rgba(255,244,221,.82);border-radius:8px;background:#15131f}.quest-key-ring span{display:grid;width:32px;height:32px;place-items:center;border:2px solid rgba(255,244,221,.64);background:#fff4dd14;color:#fff4dd6b}.quest-key-ring span.is-earned{background:var(--yellow);color:#15131f}.quest-game-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.quest-icon-action,.room-next-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 10px;border:3px solid #fff4dd;border-radius:6px;background:#15131f;color:var(--cream);cursor:pointer;font-family:Courier New,Courier,monospace;font-size:.74rem;font-weight:800;text-transform:uppercase}.quest-icon-action:hover,.quest-icon-action:focus-visible,.room-next-button:hover,.room-next-button:focus-visible{background:#302544;color:var(--mint);outline:none}.quest-hall{position:relative;min-height:660px;overflow:hidden;padding:clamp(18px,3vw,34px);background:linear-gradient(rgba(255,244,221,.065) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.055) 2px,transparent 2px),linear-gradient(180deg,rgba(155,124,255,.12),transparent 34%),#1a1725;background-size:28px 28px,28px 28px,auto,auto}.hall-back-wall{position:absolute;top:0;right:0;bottom:126px;left:0;border-bottom:3px solid rgba(255,244,221,.7);background:linear-gradient(90deg,transparent 0 18%,rgba(255,244,221,.09) 18% 18.5%,transparent 18.5% 34%,rgba(255,244,221,.08) 34% 34.5%,transparent 34.5% 54%,rgba(255,244,221,.08) 54% 54.5%,transparent 54.5% 76%,rgba(255,244,221,.09) 76% 76.5%,transparent 76.5%),linear-gradient(180deg,rgba(255,244,221,.05),transparent 38%)}.hall-floor{position:absolute;inset:auto 0 0;height:128px;background:linear-gradient(90deg,rgba(255,244,221,.14) 2px,transparent 2px),linear-gradient(180deg,#282333,#181621);background-size:54px 100%,auto}.hall-intro{position:relative;z-index:4;width:min(620px,100%)}.hall-intro h1{margin-bottom:12px;font-size:clamp(2.4rem,6vw,4.8rem)}.hall-intro p{max-width:590px;margin-bottom:0;color:var(--muted);font-size:clamp(1rem,1.8vw,1.12rem)}.hall-clock,.hall-portrait,.hall-lamp{position:absolute;border:3px solid rgba(255,244,221,.74);box-shadow:6px 6px #0000002e}.hall-clock{top:30px;left:calc(50% - 28px);width:56px;height:56px;border-radius:50%;background:linear-gradient(90deg,transparent 48%,#15131f 48% 53%,transparent 53%),linear-gradient(24deg,transparent 48%,#15131f 48% 54%,transparent 54%),var(--yellow)}.hall-portrait{top:94px;width:96px;height:122px;background:linear-gradient(90deg,transparent 45%,rgba(255,244,221,.34) 45% 55%,transparent 55%),linear-gradient(180deg,var(--room-accent-soft),rgba(20,18,29,.28))}.hall-portrait-left{left:8%}.hall-portrait-right{right:9%}.hall-lamp{top:242px;width:42px;height:76px;background:linear-gradient(180deg,var(--yellow) 0 38%,#211b2d 38% 100%)}.hall-lamp-left{left:20px}.hall-lamp-right{right:20px}.hall-doors{position:relative;right:auto;bottom:auto;left:auto;z-index:5;display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));gap:clamp(8px,1.3vw,16px);align-items:end;width:calc(100% - 260px);margin-top:34px}.hall-door{--room-accent: var(--pink);--room-accent-soft: rgba(255, 111, 159, .22);display:grid;gap:8px;min-width:0;padding:0;border:0;background:transparent;color:var(--cream);cursor:pointer}.hall-door:disabled{cursor:not-allowed}.hall-door-number{justify-self:center;padding:3px 7px;border:2px solid rgba(255,244,221,.76);background:#15131f;color:var(--room-accent);font-family:Courier New,Courier,monospace;font-size:.72rem;font-weight:800}.hall-door-body{position:relative;display:block;height:clamp(148px,21vw,226px);border:3px solid #fff4dd;background:linear-gradient(90deg,rgba(255,244,221,.18) 0 8%,transparent 8% 92%,rgba(20,18,29,.22) 92%),linear-gradient(180deg,var(--room-accent-soft),transparent 38%),#251d31;box-shadow:8px 8px #0000003d,inset 0 0 0 7px #14121d57;transition:filter .16s ease,transform .16s ease}.hall-door:not(:disabled):hover .hall-door-body,.hall-door:focus-visible .hall-door-body,.hall-door.is-next .hall-door-body{filter:drop-shadow(0 0 18px var(--room-accent-soft));transform:translateY(-5px)}.hall-door-frame{position:absolute;top:18px;right:14px;bottom:18px;left:14px;border:3px solid rgba(255,244,221,.48)}.hall-door-frame:before,.hall-door-frame:after{position:absolute;inset:18px 12px auto;height:3px;content:"";background:#fff4dd70}.hall-door-frame:after{inset:auto 12px 18px}.hall-door-knob{position:absolute;right:18px;bottom:46%;width:13px;height:13px;border:2px solid #15131f;background:var(--yellow)}.hall-door-check,.hall-door-lock{position:absolute;right:9px;bottom:9px;display:grid;width:34px;height:34px;place-items:center;border:2px solid #fff4dd;background:var(--mint);color:#15131f}.hall-door-lock{background:#fff4dd38;color:#fff4dd99}.hall-door-label{display:block;min-height:58px;padding:8px;border:3px solid rgba(255,244,221,.72);background:#15131fe0;text-align:center}.hall-door-label strong{display:block;color:var(--cream);font-size:.95rem;line-height:1.08}.hall-door-label small{margin-top:4px;color:var(--muted)}.hall-door.is-locked{opacity:.45}.hall-vault-door{position:relative;right:auto;bottom:auto;z-index:6;display:grid;grid-template-columns:56px minmax(112px,1fr);gap:10px;align-items:center;width:min(230px,20vw);min-width:190px;min-height:96px;padding:12px;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(135deg,rgba(255,209,102,.16),transparent),#15131f;color:var(--cream);cursor:pointer;box-shadow:9px 9px #00000042;margin:16px 0 0 auto;text-align:left}.hall-vault-door:disabled{cursor:not-allowed;opacity:.72}.hall-vault-door.is-open{background:linear-gradient(135deg,rgba(143,245,198,.22),transparent),#15131f}.hall-vault-lock{display:grid;width:56px;height:56px;place-items:center;border:3px solid #fff4dd;background:var(--yellow);color:#15131f}.hall-vault-door strong{display:block;color:var(--cream);font-size:1rem;line-height:1.1}.hall-vault-door small{margin-top:5px;color:var(--muted)}.hall-guide-sprite{--anim-cycle: 1.4s;--heart-cycle: 2s;position:absolute;right:min(300px,24%);bottom:18px;z-index:7;width:230px;pointer-events:none}.hall-guide-sprite .sprite-preview{min-height:168px}.hall-guide-sprite .sprite-frame{height:166px}.quest-room-view{display:grid;gap:16px;padding:clamp(14px,3vw,28px)}.room-top-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.room-top-strip>div{min-width:0}.room-top-strip strong{display:block;color:var(--cream);font-size:clamp(1.15rem,2.6vw,1.8rem);line-height:1.04}.room-key-status{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:3px solid rgba(255,244,221,.76);border-radius:6px;background:#15131f;color:var(--yellow)}.room-key-status.is-solved{color:var(--mint)}.phaser-room-stage{position:relative;display:grid;aspect-ratio:16 / 9;width:100%;min-width:0;min-height:0;overflow:hidden;place-items:center;border:3px solid #fff4dd;border-radius:8px;background:#15131f;box-shadow:8px 8px #00000038,inset 0 0 0 5px #00000029}.phaser-room-stage canvas{display:block;max-width:100%;max-height:100%;image-rendering:pixelated}.phaser-quest-host{display:block;width:100vw;height:100dvh;min-height:100vh;overflow:hidden;background:#11101a}.phaser-quest-host canvas{display:block;max-width:100%;max-height:100%;image-rendering:pixelated}.phaser-quest-loading{display:grid;min-height:100dvh;padding:0;place-items:center;background:#11101a}.phaser-quest-loading:before,.phaser-quest-loading:after{display:none}.phaser-quest-loading-panel{display:inline-flex;align-items:center;gap:12px;padding:14px 18px;border:3px solid #fff4dd;border-radius:8px;background:#15131f;color:var(--cream);font-family:Courier New,Courier,monospace;box-shadow:8px 8px #00000042}.pixel-room-stage{--room-accent: var(--pink);--room-accent-soft: rgba(255, 111, 159, .22);--room-accent-wash: rgba(255, 111, 159, .1);--room-deep: #221728;position:relative;min-height:520px;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(rgba(255,244,221,.07) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.06) 2px,transparent 2px),linear-gradient(180deg,var(--room-accent-wash),transparent 42%),var(--room-deep);background-size:28px 28px,28px 28px,auto,auto;box-shadow:inset 0 0 0 5px #00000029}.pixel-room-wall{position:absolute;top:0;right:0;bottom:134px;left:0;border-bottom:3px solid rgba(255,244,221,.72)}.pixel-room-floor{position:absolute;inset:auto 0 0;height:142px;background:linear-gradient(90deg,rgba(255,244,221,.14) 2px,transparent 2px),linear-gradient(180deg,rgba(255,244,221,.08),transparent),#201d2a;background-size:48px 100%,auto,auto}.pixel-room-label{position:absolute;top:16px;left:16px;z-index:5;max-width:calc(100% - 32px);padding:8px 10px;border:3px solid #fff4dd;border-radius:6px;background:#15131fe6}.pixel-room-label span{display:block;color:var(--room-accent);font-family:Courier New,Courier,monospace;font-size:.7rem;font-weight:800}.pixel-room-label strong{display:block;color:var(--cream);font-family:Courier New,Courier,monospace;font-size:.82rem;line-height:1.12;text-transform:uppercase}.pixel-window{position:absolute;top:58px;width:78px;height:116px;border:3px solid rgba(255,244,221,.76);background:linear-gradient(90deg,transparent 46%,rgba(255,244,221,.36) 46% 54%,transparent 54%),linear-gradient(0deg,transparent 48%,rgba(255,244,221,.32) 48% 54%,transparent 54%),linear-gradient(180deg,var(--room-accent-soft),rgba(20,18,29,.22))}.pixel-window-left{left:11%}.pixel-window-right{right:11%}.pixel-rug{position:absolute;bottom:-98px;left:50%;width:min(52%,360px);height:120px;transform:translate(-50%);border:3px solid rgba(255,244,221,.68);background:linear-gradient(90deg,transparent 0 12%,var(--room-accent-soft) 12% 88%,transparent 88%),#fff4dd0f}.pixel-prop{position:absolute;display:block;border:3px solid rgba(255,244,221,.74);box-shadow:7px 7px #00000038}.prop-desk{right:12%;bottom:-4px;width:170px;height:88px;background:linear-gradient(90deg,transparent 16%,rgba(20,18,29,.32) 16% 21%,transparent 21% 78%,rgba(20,18,29,.32) 78% 83%,transparent 83%),#6b4d3e}.prop-envelope{right:calc(12% + 44px);bottom:72px;width:76px;height:42px;background:linear-gradient(34deg,transparent 48%,#15131f 48% 52%,transparent 52%),linear-gradient(-34deg,transparent 48%,#15131f 48% 52%,transparent 52%),var(--yellow)}.prop-clock{top:66px;left:50%;width:62px;height:62px;transform:translate(-50%);border-radius:50%;background:var(--cream)}.prop-bookshelf{left:9%;bottom:-2px;width:174px;height:220px;background:linear-gradient(90deg,#ff6f9f 0 14%,transparent 14% 18%,#8ff5c6 18% 30%,transparent 30% 36%,#ffd166 36% 50%,transparent 50% 56%,#9b7cff 56% 68%,transparent 68%),linear-gradient(0deg,transparent 31%,rgba(255,244,221,.45) 31% 34%,transparent 34% 65%,rgba(255,244,221,.45) 65% 68%,transparent 68%),#3a2c48;background-size:100% 32%,100% 100%,auto}.prop-chat-one,.prop-chat-two{right:12%;width:146px;height:54px;background:#8ff5c63d}.prop-chat-one{top:86px}.prop-chat-two{top:154px;right:18%;background:#ff6f9f3d}.prop-map{left:9%;top:82px;width:min(300px,42%);height:184px;background:linear-gradient(30deg,transparent 0 46%,#15131f 46% 48%,transparent 48%),linear-gradient(140deg,transparent 0 38%,#15131f 38% 40%,transparent 40%),#4ad8cc3d}.prop-suitcase{right:16%;bottom:0;width:128px;height:82px;background:#7b5248}.prop-pinboard{right:9%;top:76px;width:154px;height:128px;background:radial-gradient(circle at 24% 30%,var(--pink) 0 5px,transparent 6px),radial-gradient(circle at 68% 42%,var(--yellow) 0 5px,transparent 6px),radial-gradient(circle at 44% 70%,var(--mint) 0 5px,transparent 6px),#fff4dd1a}.prop-lamp{left:18%;bottom:0;width:92px;height:190px;background:linear-gradient(180deg,var(--yellow) 0 34%,transparent 34%),linear-gradient(90deg,transparent 42%,#fff4dd 42% 58%,transparent 58%),transparent;box-shadow:0 0 34px #ffd1665c,7px 7px #00000038}.prop-wire{right:13%;bottom:48px;width:min(340px,46%);height:132px;border-color:transparent;background:linear-gradient(90deg,transparent 0 18%,var(--yellow) 18% 21%,transparent 21% 42%,var(--yellow) 42% 45%,transparent 45% 68%,var(--yellow) 68% 71%,transparent 71%),linear-gradient(28deg,transparent 0 36%,rgba(255,209,102,.8) 36% 39%,transparent 39%);box-shadow:none}.prop-glow{right:14%;top:80px;width:102px;height:102px;border-color:#ffd166db;background:#ffd16624;box-shadow:0 0 42px #ffd16657}.prop-pedestal-one,.prop-pedestal-two,.prop-pedestal-three{bottom:-2px;width:112px;height:102px;background:linear-gradient(180deg,rgba(255,244,221,.22),transparent),#312744}.prop-pedestal-one{left:18%}.prop-pedestal-two{left:calc(50% - 56px)}.prop-pedestal-three{right:18%}.prop-capsule{top:72px;left:calc(50% - 94px);width:188px;height:72px;background:linear-gradient(90deg,var(--pink) 0 24%,var(--yellow) 24% 52%,var(--mint) 52% 76%,var(--violet) 76%),#211b2d}.room-character-sprite{--anim-cycle: 1.35s;--heart-cycle: 1.8s;position:absolute;bottom:62px;left:50%;z-index:6;width:min(430px,74%);transform:translate(-50%);pointer-events:none}.room-character-sprite .sprite-preview{min-height:236px}.room-character-sprite .sprite-frame{height:min(var(--frame-height),230px);max-width:min(96%,380px)}.collect-hotspot{position:absolute;z-index:8;min-width:56px;min-height:38px;padding:7px 9px;transform:translate(-50%,-50%);border:3px solid #fff4dd;border-radius:6px;background:var(--yellow);color:#15131f;cursor:pointer;font-family:Courier New,Courier,monospace;font-size:.72rem;font-weight:800;text-transform:uppercase;box-shadow:6px 6px #00000038}.collect-hotspot:hover,.collect-hotspot:focus-visible{outline:none;transform:translate(-50%,-56%)}.collect-hotspot.is-collected{background:var(--mint)}.room-puzzle-panel{min-width:0;padding:clamp(16px,2.6vw,24px);border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,var(--room-accent-wash),transparent 38%),#15131f;box-shadow:8px 8px #00000038}.room-puzzle-copy h2{margin-bottom:10px;font-size:clamp(1.5rem,3vw,2.15rem)}.room-puzzle-copy p{margin-bottom:12px;color:var(--muted)}.puzzle-block{margin-top:16px}.puzzle-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.puzzle-slots span{display:grid;min-height:62px;place-items:center;border:3px dashed rgba(255,244,221,.64);border-radius:6px;color:#fff4dd94;font-family:Courier New,Courier,monospace;font-weight:800}.puzzle-slots span.is-filled{border-style:solid;background:var(--room-accent-wash);color:var(--cream)}.puzzle-options,.pair-puzzle,.path-puzzle,.timeline-puzzle,.collect-puzzle-panel{display:grid;gap:8px}.puzzle-options{grid-template-columns:repeat(4,minmax(0,1fr))}.puzzle-options button,.pair-column button,.path-puzzle button,.timeline-puzzle button,.collect-puzzle-panel span{min-width:0;min-height:46px;padding:9px 10px;border:3px solid rgba(255,244,221,.76);border-radius:6px;background:#211b2d;color:var(--cream);cursor:pointer;font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:800;line-height:1.14}.puzzle-options button:hover,.puzzle-options button:focus-visible,.pair-column button:hover,.pair-column button:focus-visible,.path-puzzle button:hover,.path-puzzle button:focus-visible,.timeline-puzzle button:hover,.timeline-puzzle button:focus-visible{background:#332746;outline:none}.puzzle-options button:disabled,.pair-column button:disabled,.path-puzzle button:disabled,.timeline-puzzle button:disabled{cursor:default;opacity:.58}.pair-puzzle{grid-template-columns:repeat(2,minmax(0,1fr))}.pair-column{display:grid;gap:8px}.pair-column button.is-selected{border-color:var(--room-accent);background:var(--room-accent-wash)}.pair-column button.is-matched,.timeline-puzzle button.is-placed,.path-puzzle button.is-lit,.collect-puzzle-panel span.is-collected{background:#8ff5c629;color:var(--mint)}.collect-puzzle-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.collect-puzzle-panel span{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:default}.path-puzzle{grid-template-columns:repeat(5,minmax(0,1fr))}.path-puzzle button{min-height:68px}.timeline-puzzle{grid-template-columns:repeat(3,minmax(0,1fr))}.timeline-puzzle button{min-height:92px;text-align:left}.timeline-puzzle button strong,.timeline-puzzle button span{display:block}.timeline-puzzle button span{margin-top:6px;color:var(--muted);font-size:.72rem}.room-feedback{display:flex;align-items:center;gap:8px;min-height:52px;margin-top:16px;padding:12px;border:3px solid rgba(255,244,221,.72);border-radius:6px;background:#fff4dd0f;color:var(--muted)}.room-feedback.is-solved{background:#8ff5c629;color:var(--mint)}.room-feedback strong{color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.86rem;text-transform:uppercase}.room-solved-actions,.next-room-hint{display:flex;justify-content:flex-end}.room-next-button{background:var(--mint);color:#15131f}.next-room-hint{padding:0 clamp(14px,3vw,28px) 24px}.next-room-hint span{max-width:100%;padding:10px 12px;border:3px solid rgba(143,245,198,.72);border-radius:6px;background:#8ff5c61a;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.78rem;font-weight:800;text-transform:uppercase}.quest-vault-view{position:relative;display:grid;gap:18px;padding:clamp(16px,3vw,32px)}.vault-back-button{justify-self:start}.vault-pixel-room{position:relative;min-height:360px;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(rgba(255,244,221,.07) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.06) 2px,transparent 2px),radial-gradient(circle at 50% 54%,rgba(143,245,198,.28),transparent 30%),#15131f;background-size:28px 28px,28px 28px,auto,auto}.vault-glow,.vault-main-door,.vault-gift-box,.vault-letter{position:absolute;display:block}.vault-glow{top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 52%,rgba(143,245,198,.28),transparent 34%)}.vault-main-door{left:50%;bottom:62px;width:min(230px,46%);height:230px;transform:translate(-50%);border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(90deg,transparent 47%,rgba(20,18,29,.42) 47% 53%,transparent 53%),linear-gradient(180deg,#8ff5c647,#fff4dd14),#263532;box-shadow:0 0 34px #8ff5c63d}.vault-gift-box{left:calc(50% - 160px);bottom:58px;width:96px;height:82px;border:3px solid #fff4dd;background:linear-gradient(90deg,transparent 42%,#fff4dd 42% 58%,transparent 58%),linear-gradient(0deg,transparent 42%,#fff4dd 42% 58%,transparent 58%),var(--pink)}.vault-letter{right:calc(50% - 172px);bottom:72px;width:104px;height:64px;border:3px solid #15131f;background:linear-gradient(32deg,transparent 48%,#15131f 48% 52%,transparent 52%),linear-gradient(-32deg,transparent 48%,#15131f 48% 52%,transparent 52%),var(--yellow)}.vault-final-copy h1{margin-bottom:12px;font-size:clamp(2.2rem,5vw,4.4rem)}.vault-final-copy p{max-width:760px;margin-bottom:0;color:var(--muted);font-size:clamp(1rem,1.8vw,1.14rem)}.vault-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vault-reward-grid article{min-width:0;padding:18px;border:3px solid rgba(255,244,221,.78);border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.1),transparent 34%),#15131f}.vault-reward-grid strong{display:block;margin-top:8px;color:var(--cream);font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.1}.vault-reward-grid p{margin:10px 0 0;color:var(--muted)}.vault-stats-card{grid-row:span 2}.vault-stats-card .stats-preview{grid-template-columns:1fr;margin-top:12px}@media(min-width:1000px){.quest-room-view{grid-template-columns:minmax(0,1fr) minmax(340px,410px);align-items:stretch}.room-top-strip,.room-solved-actions,.next-room-hint{grid-column:1 / -1}.room-puzzle-panel{align-self:stretch}}@media(max-width:1120px){.rooms-layout{grid-template-columns:minmax(196px,244px) minmax(0,1fr)}.vault-panel{display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);gap:16px}.vault-door{margin-bottom:0}.stats-preview{grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:980px){.quest-game-header{grid-template-columns:1fr}.quest-key-ring,.quest-game-actions{justify-self:start}.quest-hall{min-height:auto}.hall-back-wall,.hall-floor,.hall-guide-sprite{display:none}.hall-intro{margin-bottom:18px}.hall-doors{position:relative;right:auto;bottom:auto;left:auto;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.hall-door-body{height:178px}.hall-vault-door{position:relative;right:auto;bottom:auto;width:100%;margin-top:14px}.pixel-room-stage{min-height:460px}.vault-reward-grid{grid-template-columns:1fr}.vault-stats-card{grid-row:auto}}.animation-lab-screen{--anim-cycle: 1.2s;--dance-cycle: .82s;--heart-cycle: 1.7s}.animation-lab-screen.speed-slow{--anim-cycle: 2.1s;--dance-cycle: 1.5s;--heart-cycle: 2.6s}.animation-lab-screen.speed-fast{--anim-cycle: .76s;--dance-cycle: .52s;--heart-cycle: 1.1s}.animation-lab-screen.is-paused *,.animation-lab-screen.is-paused *:before,.animation-lab-screen.is-paused *:after{animation-play-state:paused!important}.lab-shell{width:min(1240px,100%);min-height:calc(100vh - 48px);margin:0 auto;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(143,245,198,.08),transparent 18%),var(--panel);box-shadow:0 26px 70px var(--shadow),0 0 0 8px #14121d8a,inset 0 0 0 3px #0000002e}.lab-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:clamp(22px,4vw,44px) clamp(18px,4vw,44px) 18px}.lab-header h1{margin-bottom:14px;font-size:clamp(2rem,5vw,4.1rem)}.lab-header p{max-width:790px;margin:0;color:var(--muted);font-size:clamp(1rem,2vw,1.12rem)}.lab-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.lab-icon-button,.speed-control,.speed-control button{border:3px solid #fff4dd;border-radius:6px;background:#15131f;color:var(--cream)}.lab-icon-button{display:grid;width:48px;height:48px;place-items:center;cursor:pointer}.speed-control{display:flex;align-items:center;gap:8px;min-height:48px;padding:6px}.speed-control svg{color:var(--mint)}.speed-control button{min-height:32px;padding:4px 8px;border-width:2px;color:var(--muted);cursor:pointer;font-family:Courier New,Courier,monospace;font-size:.72rem;font-weight:800;text-transform:uppercase}.lab-icon-button:hover,.lab-icon-button:focus-visible,.speed-control button:hover,.speed-control button:focus-visible,.speed-control button.is-active{background:#302544;color:var(--mint);outline:none}.animation-band{padding:16px clamp(18px,4vw,44px) 26px}.animation-band>h2{margin-bottom:16px;color:var(--yellow);font-family:Courier New,Courier,monospace;font-size:.9rem;letter-spacing:0;text-transform:uppercase}.animation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.animation-grid-couple{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.animation-card{min-width:0;overflow:hidden;border:3px solid #fff4dd;border-radius:8px;background:linear-gradient(180deg,rgba(255,209,102,.1),transparent 36%),#15131f;box-shadow:7px 7px #00000038}.animation-card h2{margin:0;color:var(--cream);font-family:Courier New,Courier,monospace;font-size:.82rem;line-height:1.15;text-align:center}.animation-card-copy{min-height:67px;padding:10px 12px 12px;border-top:3px solid rgba(255,244,221,.72);text-align:center}.animation-card-copy p{margin:6px 0 0;color:var(--mint);font-family:Courier New,Courier,monospace;font-size:.68rem;font-weight:800;line-height:1.15;text-transform:uppercase}.animation-stage{position:relative;display:grid;min-height:190px;place-items:center;overflow:hidden;background:linear-gradient(rgba(255,244,221,.055) 2px,transparent 2px),linear-gradient(90deg,rgba(255,244,221,.055) 2px,transparent 2px),radial-gradient(circle at 50% 80%,rgba(255,111,159,.14),transparent 36%),#1d1b2a;background-size:22px 22px,22px 22px,auto,auto}.sprite-preview{position:relative;display:grid;width:100%;min-width:0;min-height:190px;place-items:center;image-rendering:pixelated}.sprite-frame{width:auto;height:min(var(--frame-height),44vw);max-width:min(92%,300px);max-height:var(--frame-height);aspect-ratio:var(--cell-aspect);background-image:var(--sprite-image);background-repeat:no-repeat;background-position-x:0%;background-position-y:var(--row-position);background-size:calc(var(--sprite-cols) * 100%) calc(var(--sprite-rows) * 100%);filter:drop-shadow(8px 10px 0 rgba(0,0,0,.22));image-rendering:pixelated;animation:spriteSheetRun var(--anim-cycle) steps(var(--step-count),end) infinite}.sprite-preview-avatar .sprite-frame{background-size:100% 100%;animation:spriteAvatarBreathe var(--anim-cycle) steps(2,end) infinite}.sprite-preview-couple .sprite-frame,.sprite-preview-romance .sprite-frame{max-width:min(94%,310px)}.sprite-heart{position:absolute;width:7px;height:7px;opacity:0;background:var(--pink);box-shadow:7px 0 0 var(--pink),0 7px 0 var(--pink),7px 7px 0 var(--pink),3px 11px 0 var(--pink);image-rendering:pixelated;animation:spriteHeartFloat var(--heart-cycle) steps(5,end) infinite}.sprite-heart-one{top:64px;left:calc(50% - 22px)}.sprite-heart-two{top:48px;left:calc(50% + 12px);animation-delay:.18s}.sprite-heart-three{top:78px;left:calc(50% + 34px);animation-delay:.36s}@keyframes spriteSheetRun{0%{background-position-x:0%}to{background-position-x:var(--sprite-end-position)}}@keyframes spriteAvatarBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes spriteHeartFloat{0%{opacity:0;transform:translateY(22px) scale(.75)}24%,70%{opacity:1}to{opacity:0;transform:translateY(-44px) scale(1.15)}}.lab-character,.lab-character span{position:absolute;display:block}.lab-character{position:relative;width:82px;height:132px;image-rendering:pixelated;transform-origin:50% 100%}.lab-character-shadow{right:12px;bottom:2px;left:12px;height:8px;background:#00000052}.lab-body{left:20px;bottom:32px;z-index:3;width:42px;height:50px;border:3px solid #fff4dd}.lab-neck{left:34px;bottom:76px;z-index:4;width:14px;height:16px;background:#e3b29a}.lab-head{left:23px;bottom:86px;z-index:5;width:36px;height:34px;border:3px solid #fff4dd;background:#efc0a9}.lab-hair,.lab-hair-back{z-index:6}.lab-arm{bottom:52px;z-index:2;width:12px;height:36px;border:3px solid #fff4dd;background:#e3b29a;transform-origin:50% 8px}.lab-arm-left{left:10px}.lab-arm-right{right:10px}.lab-leg{bottom:10px;z-index:2;width:15px;height:30px;border:3px solid #fff4dd;background:#272537;transform-origin:50% 0}.lab-leg-left{left:24px}.lab-leg-right{right:24px}.lab-eye{bottom:100px;z-index:7;width:5px;height:5px;background:#14121d;animation:labBlink calc(var(--anim-cycle) * 3) steps(1,end) infinite}.lab-eye-left{left:32px}.lab-eye-right{left:46px}.lab-mouth{left:36px;bottom:94px;z-index:7;width:14px;height:4px;border-bottom:3px solid #14121d}.lab-detail{z-index:8}.lab-boy .lab-body{background:linear-gradient(90deg,transparent 0 34%,#d8d4d0 34% 42%,transparent 42% 58%,#d8d4d0 58% 66%,transparent 66%),#76717c}.lab-boy .lab-body:before{position:absolute;top:-3px;left:-10px;width:12px;height:52px;content:"";background:#1b1b2a}.lab-boy .lab-hair{left:18px;bottom:112px;width:46px;height:18px;border:3px solid #fff4dd;background:#5b554e;box-shadow:10px 12px #4a4641}.lab-boy .lab-detail-one{left:17px;bottom:78px;width:8px;height:44px;background:#1b1b2a}.lab-girl .lab-body{left:18px;width:46px;background:linear-gradient(90deg,transparent 0 70%,#15131f 70% 82%,transparent 82%),#5b4050}.lab-girl.lab-variant-subtle .lab-body{left:16px;width:50px;clip-path:polygon(18% 0,82% 0,92% 72%,78% 100%,22% 100%,8% 72%)}.lab-girl .lab-hair-back{left:18px;bottom:46px;width:50px;height:76px;border:3px solid #fff4dd;background:#80604f}.lab-girl .lab-hair{left:15px;bottom:106px;width:54px;height:22px;border:3px solid #fff4dd;background:linear-gradient(90deg,#6d5044 0,#6d5044 44%,#d0a893 44%,#d0a893 50%,#80604f 50%,#80604f)}.lab-girl .lab-detail-one{left:24px;bottom:112px;width:13px;height:7px;border:2px solid #fff4dd;background:#9db3bd}.lab-girl .lab-detail-two{right:18px;bottom:88px;width:9px;height:18px;border:3px solid #ffd1a6}.lab-heart-pop{top:34px;left:50%;z-index:12;width:8px;height:8px;opacity:0;background:var(--pink);box-shadow:8px 0 0 var(--pink),0 8px 0 var(--pink),8px 8px 0 var(--pink),4px 12px 0 var(--pink)}.lab-action-idle{animation:labIdle var(--anim-cycle) steps(2,end) infinite}.lab-action-walkDown{animation:labWalkDown var(--anim-cycle) steps(4,end) infinite}.lab-action-walkDown .lab-leg-left{animation:labLegLeft var(--anim-cycle) steps(2,end) infinite}.lab-action-walkDown .lab-leg-right{animation:labLegRight var(--anim-cycle) steps(2,end) infinite}.lab-action-walkSide{animation:labWalkSide var(--anim-cycle) steps(4,end) infinite}.lab-action-walkSide .lab-arm-left,.lab-action-walkSide .lab-leg-right{animation:labSideLimb var(--anim-cycle) steps(2,end) infinite}.lab-action-wave .lab-arm-right{animation:labWave var(--anim-cycle) steps(4,end) infinite}.lab-action-wave .lab-heart-pop{animation:labSmallHeart var(--heart-cycle) steps(3,end) infinite}.lab-action-celebrate{animation:labCelebrate var(--dance-cycle) steps(3,end) infinite}.lab-action-celebrate .lab-arm-left,.lab-action-celebrate .lab-arm-right{bottom:66px;animation:labArmsUp var(--dance-cycle) steps(2,end) infinite}.lab-action-hipShake{animation:labHipShake var(--dance-cycle) steps(4,end) infinite}.lab-action-hipShake .lab-body,.lab-action-hipShake .lab-leg-left,.lab-action-hipShake .lab-leg-right{animation:labLowerGroove var(--dance-cycle) steps(4,end) infinite}.lab-action-victory{animation:labVictory var(--dance-cycle) steps(4,end) infinite}.lab-action-victory .lab-arm-left,.lab-action-victory .lab-arm-right{animation:labDiscoArm var(--dance-cycle) steps(4,end) infinite}.lab-couple{position:relative;width:235px;height:150px;image-rendering:pixelated}.lab-couple .lab-character{position:absolute;bottom:10px}.lab-couple .lab-boy{left:40px}.lab-couple .lab-girl{right:40px}.lab-couple-hold .lab-boy{left:48px}.lab-couple-hold .lab-girl{right:48px}.lab-couple-heartGift .lab-boy{left:44px}.lab-couple-heartGift .lab-girl{right:44px}.lab-couple-happyDance .lab-character,.lab-couple-backDance .lab-character{animation:labCoupleBounce var(--dance-cycle) steps(4,end) infinite}.lab-couple-backDance .lab-boy{left:36px;transform:scaleX(-1)}.lab-couple-backDance .lab-girl{right:36px}.lab-couple-kiss .lab-boy{left:46px;animation:labLeanIn var(--anim-cycle) steps(3,end) infinite}.lab-couple-kiss .lab-girl{right:46px;animation:labLeanInGirl var(--anim-cycle) steps(3,end) infinite}.lab-couple-hug .lab-boy{left:50px;animation:labHugBoy var(--anim-cycle) steps(3,end) infinite}.lab-couple-hug .lab-girl{right:50px;animation:labHugGirl var(--anim-cycle) steps(3,end) infinite}.lab-couple-heart{position:absolute;z-index:30;width:7px;height:7px;opacity:0;background:var(--pink);box-shadow:7px 0 0 var(--pink),0 7px 0 var(--pink),7px 7px 0 var(--pink),3px 11px 0 var(--pink)}.lab-couple-heart-one{left:108px;top:48px}.lab-couple-heart-two{left:126px;top:38px}.lab-couple-heart-three{left:92px;top:58px}.lab-couple-heartGift .lab-couple-heart-one,.lab-couple-kiss .lab-couple-heart,.lab-couple-hug .lab-couple-heart-two{animation:labFloatHeart var(--heart-cycle) steps(5,end) infinite}.lab-couple-kiss .lab-couple-heart-two{animation-delay:.18s}.lab-couple-kiss .lab-couple-heart-three{animation-delay:.36s}@keyframes labIdle{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes labBlink{0%,90%,to{height:5px}94%{height:2px}}@keyframes labWalkDown{0%,to{transform:translateY(0)}25%,75%{transform:translateY(-5px)}}@keyframes labLegLeft{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes labLegRight{0%,to{transform:translateY(5px)}50%{transform:translateY(0)}}@keyframes labWalkSide{0%,to{transform:translate(-8px) translateY(0)}50%{transform:translate(8px) translateY(-4px)}}@keyframes labSideLimb{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}@keyframes labWave{0%,to{transform:rotate(-10deg) translateY(0)}50%{transform:rotate(-58deg) translateY(-10px)}}@keyframes labSmallHeart{0%,40%{opacity:0;transform:translate(-50%,14px)}55%,82%{opacity:1}to{opacity:0;transform:translate(-50%,-18px)}}@keyframes labCelebrate{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(3deg)}}@keyframes labArmsUp{0%,to{transform:rotate(-35deg) translateY(-8px)}50%{transform:rotate(35deg) translateY(-12px)}}@keyframes labHipShake{0%,to{transform:translate(-7px) rotate(-3deg)}50%{transform:translate(7px) rotate(3deg)}}@keyframes labLowerGroove{0%,to{transform:translate(-3px)}50%{transform:translate(4px)}}@keyframes labVictory{0%,to{transform:translate(-8px) translateY(0)}50%{transform:translate(8px) translateY(-8px)}}@keyframes labDiscoArm{0%,to{transform:rotate(-30deg)}50%{transform:rotate(44deg) translateY(-8px)}}@keyframes labCoupleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes labLeanIn{0%,to{transform:translate(0)}50%{transform:translate(14px) rotate(2deg)}}@keyframes labLeanInGirl{0%,to{transform:translate(0)}50%{transform:translate(-14px) rotate(-2deg)}}@keyframes labHugBoy{0%,to{transform:translate(0)}50%{transform:translate(12px) translateY(-3px)}}@keyframes labHugGirl{0%,to{transform:translate(0)}50%{transform:translate(-12px) translateY(-3px)}}@keyframes labFloatHeart{0%{opacity:0;transform:translateY(18px) scale(.8)}24%,72%{opacity:1}to{opacity:0;transform:translateY(-38px) scale(1.15)}}@media(max-width:920px){.quest-stage{grid-template-columns:1fr}.quest-header,.rooms-header{flex-direction:column}.quest-score,.room-key-ring{width:100%}.memory-panel{min-height:0}.rooms-layout{grid-template-columns:1fr}.room-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.room-detail{order:2}.vault-panel{order:3}.room-objectives{grid-template-columns:1fr}}@media(max-width:680px){.screen{padding:12px}.quest-shell,.rooms-shell{min-height:calc(100vh - 24px)}.status-bar{flex-wrap:wrap;align-content:center}.preview-badge{margin-left:0}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.time-tile{padding:14px 8px}.countdown-sprite-scene .sprite-preview{min-height:0}.countdown-sprite-scene .sprite-frame{width:min(94%,310px);max-width:none;height:auto;max-height:none}.quest-header,.quest-stage,.rooms-header,.rooms-layout{padding-right:14px;padding-left:14px}.rooms-header{gap:16px}.rooms-layout{gap:12px;padding-bottom:20px}.room-rail{grid-template-columns:1fr}.room-tab{min-height:76px}.room-scene{min-height:300px}.room-window{width:54px;height:86px}.room-wall:before,.room-wall:after{display:none}.room-door-glow{width:min(48%,210px)}.room-artifact{right:12px;left:12px;max-width:none}.room-guide-sprite{width:min(430px,96%)}.room-guide-sprite .sprite-preview{min-height:220px}.room-guide-sprite .sprite-frame{height:min(var(--frame-height),198px)}.room-copy-panel{padding:16px}.room-actions{display:grid}.room-primary-action,.room-secondary-action{width:100%}.vault-panel{display:block;padding:16px}.vault-door{width:82px;height:82px;margin-bottom:14px}.stats-preview{grid-template-columns:1fr}.quest-map{display:grid;gap:12px;min-height:auto;padding:16px}.map-grid,.map-path{display:none}.quest-node,.quest-node:hover,.quest-node:focus-visible,.quest-node.is-active{position:relative;inset:auto;left:auto!important;top:auto!important;width:100%;max-width:none;transform:none}.memory-panel{padding:18px}.photo-placeholder{min-height:170px}.final-message{margin-right:14px;margin-left:14px}}
