:root{--bg:#f7f4ed;--paper:#fffdfa;--ink:#382e3a;--muted:#6e6470;--red:#b92f5b;--red-soft:#f5e5e8;--violet:#23776b;--lavender:#eee8e0;--line:#d9d1c7;--coral:#b55735;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);font-family:'Space Grotesk',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-height:100svh}button,input,a{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid var(--violet);outline-offset:5px}button:active:not(:disabled){transform:translateY(2px)}a{color:inherit;text-decoration:none}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2{font-family:'Bungee',sans-serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(3.5rem,6.5vw,5.6rem);line-height:1.08}h1 em,h2 em{color:var(--red);font-style:normal}h1:focus,h2:focus{outline:none}[hidden]{display:none!important}.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 80% 20%,#691e5038,transparent 52%)}.site-header{max-width:1250px;margin:auto;padding:25px 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-family:'Bungee',sans-serif;font-size:29px;line-height:1}.brand>svg{height:34px;width:34px;fill:var(--red);stroke:var(--red)}.brand-dot{color:var(--red)}.brand small{font:9px 'IBM Plex Mono',monospace;letter-spacing:.17em;color:var(--muted);margin-top:8px;display:block}.header-actions{display:flex;gap:28px;align-items:center}.recipient{font:10px 'IBM Plex Mono',monospace;letter-spacing:.1em;display:flex;align-items:center;gap:8px}.recipient i,.live-dot,.cabinet-label i{width:6px;height:6px;border-radius:50%;background:var(--violet);display:inline-block;box-shadow:0 0 12px #78efd25a}.music-toggle{min-height:44px;display:flex;gap:10px;align-items:center;padding:10px 15px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:12px}.music-toggle svg{width:16px;height:16px}.sound-bars{display:flex;gap:2px;align-items:center;height:14px}.sound-bars i{width:2px;height:3px;background:var(--red)}.music-toggle[aria-pressed=true] .sound-bars i{animation:equalize 1s ease-in-out infinite}.sound-bars i:nth-child(2){animation-delay:-.35s!important}.sound-bars i:nth-child(3){animation-delay:-.7s!important}#app{max-width:1166px;padding:0 42px;margin:auto}.screen{animation:screen-in 250ms var(--ease-out)}.welcome{display:grid;grid-template-columns:1.05fr 1fr;column-gap:48px;align-items:center;padding-top:65px}.eyebrow{display:flex;align-items:center;gap:9px;font:10px 'IBM Plex Mono',monospace;letter-spacing:.11em;color:var(--violet);margin-bottom:23px;line-height:1.6}.welcome h1 em{display:inline-block;color:var(--red);text-shadow:4px 4px 0 #76253f}.intro{font-size:22px;line-height:1.45;color:var(--ink);margin-top:25px}.intro strong{color:var(--red);font-weight:500}.mission-copy{font-size:15px;line-height:1.75;max-width:360px;color:var(--muted);margin-top:18px}.primary,.secondary{min-height:54px;border-radius:8px;padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-weight:700;font-size:14px;transition:transform 120ms var(--ease-out),background 160ms ease,box-shadow 160ms ease}.primary{background:var(--red);border:1px solid var(--red);color:#210f2e;box-shadow:0 5px 0 #8c264c}.primary svg{width:20px;height:20px}.secondary{background:transparent;color:var(--ink);border:1px solid #865779}.start-button{margin-top:30px;min-width:255px;background:var(--violet);border-color:var(--violet);box-shadow:0 5px 0 #378b82;font-size:16px;justify-content:space-between}.welcome-meta{display:flex;gap:13px;align-items:center;margin-top:24px;font:9px 'IBM Plex Mono',monospace;letter-spacing:.04em;color:var(--muted)}.welcome-meta i{width:3px;height:3px;background:var(--red);border-radius:50%}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 10px;font-size:12px;color:var(--muted);background:transparent;border:0}.text-button svg{width:16px;height:16px}.replay-home{display:block;margin:8px 0 0;padding-left:0;text-decoration:underline}.hero-arcade{position:relative;width:100%;max-width:430px;padding:15px 20px 28px;margin:0 auto}.mini-cabinet{border:3px solid #ff856c;border-radius:22px 22px 12px 12px;background:var(--coral);padding:13px 13px 0;box-shadow:12px 14px 0 #65223f,0 25px 50px #09040f80;transform:rotate(3deg);position:relative}.cabinet-marquee{height:58px;background:var(--ink);color:#492341;display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border:3px solid #7e2946;border-radius:10px 10px 4px 4px;font-family:'Bungee',sans-serif;font-size:clamp(13px,1.7vw,20px);letter-spacing:-.04em}.cabinet-marquee span{color:var(--red);font-size:18px}.cabinet-screen{border:10px solid #45203c;border-radius:14px;background:#21102f;margin-top:12px;height:280px;position:relative;overflow:hidden;box-shadow:inset 0 0 25px #0009}.cabinet-screen:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0000,#0000 3px,#0002 4px);pointer-events:none}.demo-hud{padding:17px 16px;display:flex;justify-content:space-between;position:relative;z-index:2;font:7px/1.8 'IBM Plex Mono',monospace;color:var(--muted)}.demo-hud>span:last-child{text-align:right}.demo-hud b{font-size:10px;color:var(--violet)}.pixel-heart{position:absolute;top:87px;left:50%;width:108px;margin-left:-54px;color:var(--red);filter:drop-shadow(0 0 24px #ff477e48);animation:heartbeat 2s ease-in-out infinite}.pixel-heart svg{width:100%;height:100%;fill:var(--red);stroke:none}.pixel-heart span{position:absolute;top:-18px;right:-35px;transform:rotate(8deg);font:15px 'Bungee',sans-serif;color:var(--violet)}.demo-ready{position:absolute;bottom:46px;left:0;right:0;text-align:center;font:10px 'IBM Plex Mono',monospace;color:var(--ink);letter-spacing:.09em;z-index:2}.demo-floor{height:68px;position:absolute;bottom:-15px;inset-inline:0;background:linear-gradient(0deg,#ff477e30,transparent),repeating-linear-gradient(90deg,transparent,transparent 23px,#784262 24px),repeating-linear-gradient(0deg,transparent,transparent 10px,#784262 11px);transform:perspective(90px) rotateX(40deg);transform-origin:bottom}.demo-star{position:absolute;color:var(--violet);font-size:18px}.star-a{top:99px;left:32px}.star-b{right:23px;bottom:80px;font-size:12px;color:var(--coral)}.star-c{left:42px;bottom:89px;color:var(--ink)}.cabinet-deck{height:80px;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 15px;position:relative;border-bottom:3px solid #a63c4f}.cabinet-deck>span{margin-right:auto;margin-left:66px;font:7px 'IBM Plex Mono',monospace;color:#4a1c37;max-width:45px;line-height:1.5}.joystick{position:absolute;bottom:18px;left:23px;width:57px;height:23px;border-radius:50%;background:#8f3248;border:3px solid #72273f;box-shadow:0 4px 0 #e75754}.joystick i{position:absolute;left:23px;top:-30px;width:9px;height:41px;background:#532039;transform:rotate(-10deg)}.joystick b{position:absolute;top:-43px;left:9px;width:32px;height:32px;background:var(--red);border:3px solid #76273f;border-radius:50%;box-shadow:inset 3px 3px 0 #ff9cab}.cabinet-button{display:block;height:32px;width:32px;border-radius:50%;background:var(--violet);border:3px solid #37685f;box-shadow:0 5px 0 #75414a}.button-b{background:var(--ink);border-color:#b9986c;margin-top:-17px}.cabinet-base{height:65px;background:#ea655d;margin:0 -13px;border-radius:0 0 8px 8px;padding:21px;display:flex;justify-content:space-between;align-items:center}.cabinet-base>span{font:8px 'IBM Plex Mono',monospace;color:#4a1c37}.coin-slot{width:48px;height:25px;border:3px solid #742541;background:#48203a;border-radius:5px;position:relative}.coin-slot:after{content:'';position:absolute;width:22px;height:3px;background:var(--ink);left:10px;top:9px}.cabinet-sticker{position:absolute;right:-4px;top:-3px;z-index:4;background:var(--violet);color:#213831;width:94px;height:94px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font:8px 'IBM Plex Mono',monospace;transform:rotate(16deg);box-shadow:0 0 0 5px var(--bg);text-align:center}.cabinet-sticker b{font-family:'Bungee',sans-serif;font-size:13px;margin-top:3px;line-height:1.1}.arcade-ticket{position:absolute;bottom:6px;left:-8px;transform:rotate(-10deg);z-index:5;display:flex;flex-direction:column;background:var(--ink);color:#45203c;padding:13px 20px 13px 31px;border-left:2px dashed #b99aa1;box-shadow:3px 5px 0 #0003}.arcade-ticket:before,.arcade-ticket:after{content:'';position:absolute;width:15px;height:15px;border-radius:50%;background:var(--bg);left:-8px}.arcade-ticket:before{top:-7px}.arcade-ticket:after{bottom:-7px}.arcade-ticket>span{font:8px 'IBM Plex Mono',monospace;letter-spacing:.15em}.arcade-ticket strong{font:22px 'Bungee',sans-serif;margin:3px 0}.arcade-ticket small{font:6px 'IBM Plex Mono',monospace;letter-spacing:.04em}.arcade-marquee{grid-column:1/-1;display:flex;align-items:center;justify-content:space-around;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;margin:66px -10px 0;gap:12px;font:19px 'Bungee',sans-serif;color:var(--muted)}.arcade-marquee i{font-style:normal;color:var(--red)}.journey-preview{grid-column:1/-1;display:grid;grid-template-columns:.85fr 1.15fr;gap:55px;padding:53px 0 60px}.journey-title .eyebrow{margin-bottom:12px;color:var(--red)}.journey-title h2{font-size:25px;line-height:1.3}.journey-title h2 em{color:var(--ink)}.journey-title p{font-size:13px;line-height:1.75;margin-top:18px;color:var(--muted)}.arcade-lineup{display:grid;grid-template-columns:1fr 1fr;gap:0 23px}.arcade-lineup>div{display:grid;grid-template-columns:28px 1fr;align-items:center;border-bottom:1px solid var(--line);padding:13px 0;gap:3px 5px}.arcade-lineup>div>span{grid-row:1/3;color:var(--red);font:13px 'IBM Plex Mono',monospace}.arcade-lineup strong{font-size:13px;font-weight:500}.arcade-lineup small{font:8px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.08em}.site-footer{max-width:1166px;padding:23px 42px calc(26px + env(safe-area-inset-bottom));margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font:8px/1.6 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.03em}.game-screen{padding:18px 0 55px}.game-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px}.game-toolbar>span{font:9px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.1em}.game-toolbar button{padding:8px 0}.game-progress{display:flex;max-width:470px;margin:20px auto 36px;align-items:center}.progress-node{width:27px;height:27px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--line);border-radius:6px;color:var(--muted);font:10px 'IBM Plex Mono',monospace}.progress-node svg{height:13px;width:13px}.progress-node.done{color:var(--violet);border-color:#47726c;background:#203333}.progress-node.current{color:var(--bg);background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px #ff477e20}.progress-line{border-top:1px solid var(--line);flex:1;margin:0 6px}.challenge-layout{display:grid;grid-template-columns:1fr 400px;align-items:start;gap:60px;max-width:950px;margin:auto}.challenge-heading{padding-top:36px}.challenge-heading h1{font-size:clamp(2rem,3.6vw,3.05rem);line-height:1.2}.challenge-heading>p{font-size:15px;line-height:1.75;max-width:350px;color:var(--muted);margin-top:23px}.level-label{background:#40213c;color:var(--red);padding:5px 8px;border-radius:4px}.challenge-meta{display:flex;gap:18px;align-items:center;font-size:11px;color:var(--muted);margin-top:24px}.challenge-meta>span{display:flex;align-items:center;gap:6px}.challenge-meta svg{width:15px;height:15px;color:var(--red)}.level-stakes{display:flex;flex-direction:column;gap:9px;border-left:2px solid var(--red);padding-left:17px;margin-top:38px;max-width:320px}.level-stakes small{font:8px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.1em}.level-stakes strong{font-size:17px;color:var(--ink)}.level-stakes>span{font-size:12px;line-height:1.7;color:var(--muted)}.desktop-flirt{display:flex;gap:8px;align-items:center;font-size:11px;max-width:295px;color:var(--coral);margin-top:30px;line-height:1.6}.desktop-flirt svg{width:16px;height:16px}.arcade-column{min-width:0}.challenge-card{width:100%;padding:10px 12px 12px;border:1px solid #82485f;border-radius:16px;background:#3a203e;box-shadow:0 8px 0 #110b1a,0 18px 35px #0b051d40;scroll-margin-top:12px}.arcade-top{display:flex;align-items:center;justify-content:space-between;height:37px;padding:0 0 5px 2px}.cabinet-label{display:flex;align-items:center;gap:8px;font:8px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.08em}.arcade-pause{width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:19px}.arcade-hud{display:flex;justify-content:space-between;gap:12px;background:#26142e;border:1px solid #653952;border-radius:7px 7px 0 0;padding:11px 12px}.arcade-hud>div{display:flex;flex-direction:column;gap:5px}.arcade-hud>div>span{font:7px 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.09em}.arcade-hud strong{font:18px 'IBM Plex Mono',monospace;color:var(--ink);white-space:nowrap}.arcade-hud small{font-size:10px;color:var(--muted)}.arcade-hud .hud-lives{display:flex;gap:3px;color:var(--red);height:24px;align-items:center}.hud-lives svg{width:14px;height:14px;fill:currentColor;stroke:none}.hud-lives .lost{color:#704052}.hud-time.urgent{color:var(--coral)}.arcade-display{position:relative;border:1px solid #653952;border-top:0;overflow:hidden;background:#210f2e}.arcade-display canvas{display:block;width:100%;aspect-ratio:360/420;height:auto;touch-action:none;user-select:none}.arcade-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;background:#210f2eef;z-index:3}.overlay-chip{font:8px 'IBM Plex Mono',monospace;color:var(--violet);letter-spacing:.07em;padding:7px 10px;border:1px solid #507568;border-radius:4px}.overlay-icon{color:var(--red);margin-top:20px}.overlay-icon svg{height:38px;width:38px;fill:var(--red);stroke:none;filter:drop-shadow(0 0 12px #ff477e44)}.arcade-overlay h2{font-size:25px;line-height:1.2;margin-top:15px}.arcade-overlay p{font-size:13px;line-height:1.65;color:var(--muted);max-width:275px;margin-top:14px}.arcade-overlay .primary{margin-top:20px;min-height:49px;font-size:13px;padding:12px 24px}.overlay-footnote{font:8px/1.6 'IBM Plex Mono',monospace;color:var(--muted);max-width:240px;margin-top:18px}.arcade-meter{height:4px;background:#543246;overflow:hidden}.arcade-meter>span{height:100%;display:block;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform 160ms var(--ease-out)}.arcade-controls{display:flex;gap:9px;margin-top:12px;touch-action:none}.arcade-controls>button{flex:1;min-width:0;min-height:58px;background:#563048;color:var(--ink);border:1px solid #a36681;border-radius:8px;box-shadow:0 4px 0 #221027;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;user-select:none;touch-action:none;transition:background 120ms ease,transform 120ms var(--ease-out)}.arcade-controls>button b{font:21px 'IBM Plex Mono',monospace}.arcade-controls>button span{font:8px 'IBM Plex Mono',monospace}.arcade-controls>button.pressed{background:#8b3a61;transform:translateY(3px);box-shadow:0 1px 0 #221027}.arcade-controls.many-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.many-controls>button{min-height:44px;flex-direction:row;gap:7px}.many-controls>button b{font-size:17px}.many-controls>button span{font-size:8px}.arcade-bottom{display:flex;justify-content:space-between;align-items:center;font:7px 'IBM Plex Mono',monospace;letter-spacing:.05em;color:var(--muted);margin-top:16px}.arcade-bottom b{color:var(--violet);font-weight:400}.arcade-instruction{font-size:11px;line-height:1.6;color:var(--muted);margin-top:12px;padding-top:10px;border-top:1px solid #57364c;text-align:center}.combo-toast{position:absolute;top:16px;left:50%;transform:translate(-50%,-5px);color:var(--violet);background:#210f2ee6;border:1px solid var(--violet);padding:8px 13px;border-radius:5px;font:16px 'Bungee',sans-serif;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 160ms var(--ease-out);white-space:nowrap}.combo-toast.visible{opacity:1;transform:translate(-50%,0)}.challenge-actions{text-align:center;margin-top:28px}.ask-key{width:100%;font-size:12px}.ask-key svg{height:17px;width:17px}.key-teaser{font-size:11px;color:var(--muted);line-height:1.7;margin-top:12px}.puzzle-success{font-size:13px;line-height:1.6;display:flex;align-items:center;gap:8px;margin-top:22px;color:var(--violet);text-align:center}.puzzle-success:empty{display:none}.puzzle-success svg{height:20px;width:20px}.couple-gate{max-width:620px;margin:40px auto 0;padding:26px;background:var(--paper);border:1px solid #915071;border-radius:16px;scroll-margin-top:20px;animation:screen-in 250ms var(--ease-out)}.mini-challenge{text-align:center;padding:30px 25px;background:#48213d;border:1px solid #784262;border-radius:10px}.mini-challenge .eyebrow{justify-content:center;color:var(--coral);font-size:8px;margin-bottom:20px}.mini-challenge .eyebrow svg{height:14px;width:14px}.mini-challenge h2{font-size:31px;line-height:1.25}.mini-copy{font-size:16px;line-height:1.8;margin-top:21px;color:var(--ink)}.change-mini{color:var(--coral);text-decoration:underline;margin-top:14px}.mini-challenge small{display:block;font-size:11px;line-height:1.6;color:var(--muted)}.key-form{margin-top:26px}.key-form label{display:block;font-size:14px;font-weight:500;margin-bottom:12px}.key-field{display:flex;align-items:center;border:1px solid #ab7395;background:#21132c;border-radius:8px;overflow:hidden}.key-field input{min-width:0;width:100%;flex:1;border:0;background:transparent;min-height:53px;padding:14px 16px;color:var(--ink);font-size:18px;font-family:'IBM Plex Mono',monospace;letter-spacing:.1em}.key-field input:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--violet)}.icon-button{height:44px;width:44px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;flex-shrink:0}.icon-button svg{width:20px;height:20px}.key-field .icon-button{margin-right:5px}#key-help{font-size:12px;line-height:1.7;color:var(--muted);margin-top:11px}.key-error{font-size:13px;color:#ff9bb6;line-height:1.6;margin-top:12px}.key-error:empty{display:none}.unlock-phase{width:100%;margin-top:20px}.connection-note{font-size:12px;line-height:1.6;color:var(--muted);margin-top:15px;max-width:330px}.envelope-screen{text-align:center;max-width:640px;margin:35px auto 15px}.envelope-screen .eyebrow{justify-content:center}.envelope-screen h1{font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.2}.reveal-scene{position:relative;max-width:340px;margin:20px auto}.reveal-art{width:100%;height:auto;animation:float 4s ease-in-out infinite}.reveal-number{position:absolute;bottom:24px;right:19px;background:var(--violet);color:var(--bg);width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font:20px 'Bungee',sans-serif}.envelope-screen>p{font-size:16px;line-height:1.75;color:var(--muted);max-width:440px;margin:0 auto 25px}.little-note{display:block;margin-top:22px;color:var(--muted);font:9px 'IBM Plex Mono',monospace}.gift-layout{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:65px;margin-top:45px}.gift-image{position:relative;padding:10px;background:var(--ink);border-radius:12px;transform:rotate(-3deg);max-width:420px;box-shadow:7px 8px 0 #703047}.gift-image img{display:block;width:100%;height:auto;border-radius:5px}.image-tag{display:block;text-align:center;font:8px 'IBM Plex Mono',monospace;color:var(--bg);padding:14px 4px 6px;letter-spacing:.08em}.gift-copy h1{font-size:clamp(2rem,3.4vw,3rem);line-height:1.2}.gift-intro{font-size:15px;line-height:1.75;color:var(--muted);margin-top:20px}.ticket-details{display:flex;flex-direction:column;gap:20px;margin-top:28px}.ticket-details>div{display:flex;gap:14px;align-items:center}.ticket-details svg{color:var(--red);width:22px;height:22px}.ticket-details span{display:flex;flex-direction:column;gap:5px}.ticket-details strong{font-size:15px;font-weight:500}.ticket-details small{font-size:12px;color:var(--muted)}.gift-note{display:flex;gap:8px;align-items:center;color:var(--violet);font-size:12px;margin-top:26px}.gift-note svg{width:17px;height:17px}.gift-bottom{text-align:center;margin-top:50px}.gift-bottom p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 auto 24px;max-width:450px}.calendar-details{display:flex;flex-direction:column;gap:17px;margin-top:25px}.calendar-details>div{display:flex;align-items:center;gap:15px}.calendar-details>div>span{font:24px 'Bungee',sans-serif;color:var(--red);width:35px;flex-shrink:0}.calendar-details svg{color:var(--red);width:35px}.calendar-details p{font-size:12px;line-height:1.6;color:var(--muted)}.calendar-details strong{display:block;font-size:14px;color:var(--ink);margin-bottom:2px;font-weight:500}.shipping-note{display:flex;gap:12px;align-items:center;background:#203333;border:1px solid #47726c;padding:15px;border-radius:8px;margin-top:25px;color:var(--violet)}.shipping-note span{display:flex;flex-direction:column;gap:5px}.shipping-note strong{font-size:13px}.shipping-note small{color:var(--muted);font-size:11px;line-height:1.6}.final-screen{text-align:center;max-width:650px;margin:45px auto 15px}.final-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #47726c;color:var(--violet);padding:10px 15px;border-radius:6px;font:9px 'IBM Plex Mono',monospace;margin-bottom:28px}.final-badge svg{width:15px;height:15px}.final-screen h1{font-size:clamp(2.5rem,4.4vw,4rem);line-height:1.2}.final-letter{font-size:15px;color:var(--muted);line-height:1.9;margin-top:25px}.final-signature{color:var(--red);font-size:18px;margin-top:20px}.final-gifts{display:flex;flex-direction:column;gap:14px;margin:35px auto;max-width:470px}.final-gift{display:flex;gap:18px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-align:left;width:100%}.final-gift>img{width:60px;height:65px;object-fit:cover;border-radius:5px}.final-gift>span{display:flex;flex:1;flex-direction:column;gap:6px}.final-gift small{font:8px 'IBM Plex Mono',monospace;color:var(--red)}.final-gift strong{font-size:15px;font-weight:500}.final-gift>span>span{font-size:11px;color:var(--muted)}.final-gift>svg{color:var(--violet);height:20px;width:20px}.final-ps{font-size:12px;color:var(--muted);line-height:1.7}.replay-button{margin-top:18px;text-decoration:underline}.surprises-dialog{width:min(480px,calc(100% - 32px));max-height:85svh;border:1px solid #915071;background:var(--paper);color:var(--ink);padding:25px;border-radius:15px}.surprises-dialog::backdrop{background:#10091dc9;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;gap:16px;align-items:center}.dialog-top h2{font-size:22px}.surprises-dialog>p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:12px}.treasure-list{display:flex;flex-direction:column;gap:12px;margin-top:23px}.treasure-list>button{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#21132c;color:var(--ink);text-align:left}.treasure-list>button>span{display:flex;flex-direction:column;gap:6px;flex:1}.treasure-list strong{font-size:13px}.treasure-list small{font-size:10px;color:var(--muted)}.treasure-list svg{width:19px;height:19px;color:var(--violet)}.locked-treasure{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px;padding:12px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:20}#confetti i{position:absolute;top:-20px;left:var(--x);width:7px;height:13px;border-radius:1px;animation:confetti 2300ms var(--delay) ease-out both}@keyframes confetti{from{transform:translate(0,-20px) rotate(0);opacity:1}to{transform:translate(var(--drift),105vh) rotate(var(--spin));opacity:0}}@keyframes screen-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes heartbeat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.04)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes equalize{0%,100%{transform:scaleY(1)}50%{transform:scaleY(3.5)}}@media(hover:hover) and (pointer:fine){.primary:hover{background:#ff6b95;transform:translateY(-2px)}.start-button:hover{background:#a2ffe8}.secondary:hover{background:#442039}.music-toggle:hover{background:#442039}.text-button:hover{color:var(--ink)}.final-gift:hover{border-color:var(--red)}}
@media(max-width:980px){.challenge-layout{grid-template-columns:1fr 365px;gap:30px}.challenge-heading h1{font-size:32px}.challenge-heading>p{font-size:14px}.welcome{gap:25px}.hero-arcade{padding-left:10px;padding-right:10px}.cabinet-marquee{font-size:15px}.arcade-marquee{font-size:16px}.journey-preview{gap:25px}.gift-layout{gap:40px}}
@media(max-width:760px){.site-header{padding:20px 20px}.brand{font-size:24px;gap:9px}.brand>svg{width:28px;height:28px}.brand small{font-size:7px;letter-spacing:.12em;margin-top:7px}.recipient{display:none}.header-actions{gap:10px}.music-toggle{padding:9px 11px;gap:7px}.music-toggle>span:not(.sound-bars){font-size:11px}#app{padding:0 20px}.welcome{grid-template-columns:1fr;padding-top:35px;text-align:center;gap:0}.welcome-copy{display:flex;flex-direction:column;align-items:center}.welcome .eyebrow{font-size:8px;letter-spacing:.06em;gap:6px;margin-bottom:23px}.welcome h1{font-size:clamp(3.4rem,13.6vw,4.7rem);line-height:1.07;letter-spacing:-.045em}.intro{font-size:20px;margin-top:22px}.mission-copy{font-size:14px;max-width:310px;margin-top:16px;line-height:1.7}.start-button{width:100%;max-width:330px;margin-top:26px;min-height:56px}.welcome-meta{font-size:8px;margin-top:22px;gap:11px}.replay-home{padding:8px 10px;margin:5px 0 0}.hero-arcade{max-width:350px;padding:20px 15px 30px;margin:37px auto 0}.mini-cabinet{border-width:2px;padding:10px 10px 0;box-shadow:8px 9px 0 #65223f,0 20px 35px #09040f80;border-radius:16px 16px 9px 9px}.cabinet-marquee{height:49px;font-size:15px;padding:8px 10px}.cabinet-marquee span{font-size:14px}.cabinet-screen{height:242px;border-width:8px}.demo-hud{padding:13px 12px;font-size:7px}.pixel-heart{width:88px;margin-left:-44px;top:76px}.pixel-heart span{font-size:12px;right:-33px}.demo-ready{font-size:8px;bottom:42px}.demo-star.star-a{left:24px;top:89px}.star-b{right:19px;bottom:67px}.star-c{left:30px;bottom:67px}.cabinet-deck{height:69px;padding-right:9px}.cabinet-deck>span{font-size:6px;margin-left:64px}.cabinet-button{width:28px;height:28px}.joystick{left:14px;bottom:16px}.cabinet-base{height:55px;margin:0 -10px;padding:16px}.cabinet-base>span{font-size:7px}.cabinet-sticker{width:78px;height:78px;right:0;top:0;font-size:6px;box-shadow:0 0 0 4px var(--bg)}.cabinet-sticker b{font-size:11px}.arcade-ticket{bottom:10px;left:3px;padding:10px 17px 10px 25px}.arcade-ticket strong{font-size:19px}.arcade-ticket>span{font-size:7px}.arcade-ticket small{font-size:5px}.arcade-marquee{margin:29px 0 0;padding:16px 0;gap:9px;font-size:12px;flex-wrap:wrap;row-gap:8px}.arcade-marquee span:last-child,.arcade-marquee i:last-of-type{display:none}.journey-preview{grid-template-columns:1fr;gap:24px;padding:36px 0 40px;text-align:left}.journey-title .eyebrow{margin-bottom:13px;font-size:8px}.journey-title h2{font-size:23px}.journey-title p{margin-top:13px;font-size:12px}.arcade-lineup{gap:0 19px}.arcade-lineup>div{padding:13px 0;grid-template-columns:24px 1fr}.arcade-lineup strong{font-size:12px}.arcade-lineup small{font-size:7px}.site-footer{margin:0 20px;padding:20px 0 calc(22px + env(safe-area-inset-bottom));text-align:center;justify-content:center;font-size:7px;line-height:1.8;max-width:100%}.site-footer>span:last-child{display:none}.game-screen{padding-top:8px}.game-toolbar>span{display:none}.game-toolbar .text-button{font-size:11px}.game-progress{margin:14px auto 27px;max-width:380px}.progress-node{width:24px;height:24px;font-size:9px}.progress-line{margin:0 3px}.progress-node svg{width:12px;height:12px}.challenge-layout{grid-template-columns:1fr;gap:24px}.challenge-heading{padding-top:0;text-align:center}.challenge-heading .eyebrow{justify-content:center;font-size:9px;margin-bottom:13px}.challenge-heading h1{font-size:clamp(1.7rem,7.2vw,2.5rem);line-height:1.15}.challenge-heading>p{font-size:13px;line-height:1.6;max-width:325px;margin:13px auto 0}.challenge-meta{justify-content:center;font-size:9px;gap:18px;margin-top:13px}.challenge-meta svg{width:12px;height:12px}.level-stakes,.desktop-flirt{display:none}.arcade-column{width:100%;max-width:400px;margin:auto}.challenge-card{padding:8px 9px 11px;border-radius:13px}.arcade-top{height:34px;padding-left:2px}.cabinet-label{font-size:7px;letter-spacing:.05em}.arcade-hud{padding:10px}.arcade-hud strong{font-size:16px}.arcade-hud>div>span{font-size:7px}.arcade-hud .hud-lives{height:20px;gap:2px}.hud-lives svg{width:12px;height:12px}.arcade-overlay{padding:18px}.overlay-chip{font-size:7px;padding:6px 8px}.overlay-icon{margin-top:16px}.overlay-icon svg{width:30px;height:30px}.arcade-overlay h2{font-size:23px;margin-top:13px}.arcade-overlay p{font-size:12px;line-height:1.65;margin-top:12px}.arcade-overlay .primary{min-height:46px;margin-top:17px;font-size:12px}.overlay-footnote{font-size:7px;margin-top:14px}.arcade-controls{gap:7px;margin-top:11px}.arcade-controls>button{min-height:55px}.arcade-controls>button span{font-size:7px}.arcade-bottom{font-size:6px}.arcade-instruction{font-size:10px}.many-controls>button{min-height:44px}.many-controls>button span{font-size:7px}.challenge-actions{margin-top:25px}.ask-key{font-size:12px;min-height:49px}.key-teaser{font-size:10px}.couple-gate{margin-top:30px;padding:17px;border-radius:13px}.mini-challenge{padding:25px 16px}.mini-challenge .eyebrow{font-size:7px;letter-spacing:.03em;margin-bottom:16px;gap:5px}.mini-challenge h2{font-size:26px}.mini-copy{font-size:15px;line-height:1.75;margin-top:18px}.change-mini{font-size:11px}.mini-challenge small{font-size:10px}.key-form{margin-top:22px}.key-form label{font-size:12px}.key-form #key-help{font-size:11px}.key-error{font-size:12px}.unlock-phase{font-size:13px}.envelope-screen{margin-top:15px}.envelope-screen .eyebrow{font-size:9px}.envelope-screen h1{font-size:clamp(1.9rem,7.3vw,2.6rem)}.reveal-scene{max-width:290px;margin:15px auto}.envelope-screen>p{font-size:14px;max-width:310px}.open-gift{font-size:12px;width:100%;max-width:340px}.gift-layout{grid-template-columns:1fr;gap:39px;margin-top:25px}.gift-copy{order:0}.gift-image{order:1;width:calc(100% - 28px);max-width:330px;margin:auto}.gift-copy .eyebrow{font-size:9px;margin-bottom:16px}.gift-copy h1{font-size:clamp(1.9rem,7vw,2.6rem)}.gift-intro{font-size:14px;margin-top:16px}.ticket-details{margin-top:22px;gap:17px}.ticket-details strong{font-size:14px}.ticket-details small{font-size:11px}.gift-note{font-size:11px}.gift-bottom{margin-top:35px}.gift-bottom p{font-size:13px;max-width:310px}.gift-bottom .primary{font-size:11px;padding:15px 17px;gap:9px;width:100%;max-width:340px}.calendar-details strong{font-size:13px}.calendar-details p{font-size:11px}.shipping-note{padding:13px;gap:10px}.shipping-note strong{font-size:12px}.shipping-note small{font-size:10px}.final-screen{margin-top:28px}.final-screen h1{font-size:clamp(2rem,8.2vw,2.9rem)}.final-letter{font-size:13px;line-height:1.9}.final-signature{font-size:16px}.final-gift{padding:12px;gap:13px}.final-gift>img{width:53px;height:58px}.final-gift strong{font-size:12px}.final-gift>span>span{font-size:10px}.final-gift small{font-size:7px}.final-gift>svg{width:16px;height:16px}.final-ps{font-size:11px}.dialog-top h2{font-size:18px}.surprises-dialog{padding:20px}}
@media(max-width:360px){.site-header{padding:18px 15px}#app{padding:0 15px}.music-toggle>span:not(.sound-bars){display:none}.welcome .eyebrow{font-size:7px}.welcome h1{font-size:50px}.progress-node{width:22px;height:22px}.progress-line{margin:0 2px}.arcade-overlay{padding:13px}.arcade-overlay h2{font-size:20px}.arcade-overlay p{font-size:11px}.overlay-icon{margin-top:12px}.arcade-overlay .primary{margin-top:13px}.overlay-footnote{margin-top:12px}.mini-challenge h2{font-size:23px}.mini-copy{font-size:14px}}
@media(prefers-reduced-motion:reduce){.screen,.couple-gate{animation:fade-in 180ms ease}.pixel-heart,.reveal-art,.sound-bars i{animation:none!important}.primary,.secondary,.combo-toast,.arcade-controls>button{transition:background 160ms ease,opacity 160ms ease}.primary:hover,.primary:active,.arcade-controls>button.pressed{transform:none!important}.arcade-meter>span{transition:none}#confetti{display:none}@keyframes fade-in{from{opacity:0}to{opacity:1}}}

/* Cream edition: readable surfaces and a full-height mobile play view. */
.ambient{background:radial-gradient(ellipse at 80% 20%,#e7d6c426,transparent 52%)}
.show-video-intro{max-width:780px;margin:0 auto;text-align:center}.show-video-intro>.eyebrow{justify-content:center;margin-bottom:15px}.show-video-intro h1{font-size:clamp(28px,4.4vw,44px);line-height:1.2}.show-video-lead{margin:18px 0 27px;color:var(--muted);font-size:16px;line-height:1.6}.show-video-frame{position:relative;width:100%;aspect-ratio:16/9;min-height:200px;background:#231e27;border:1px solid #d3c4bc;border-radius:14px;overflow:hidden;box-shadow:0 6px 0 #ded5cb}.show-video-frame iframe{display:block;width:100%;height:100%;border:0;position:absolute;inset:0}.show-video-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:20px 0 0;color:var(--muted);font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.03em}.show-video-caption>span:last-child{display:flex;align-items:center;gap:5px}.show-video-caption svg{width:14px;height:14px}.show-video-status{margin:22px auto 18px;max-width:440px;font-size:14px;line-height:1.6;color:var(--muted)}.show-video-link{display:flex;width:fit-content;margin:12px auto 0;text-decoration:underline;text-underline-offset:4px}.replay-show-video{display:block;margin:18px auto 0;text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.show-intro-screen .game-progress{margin-bottom:28px}.show-video-intro>.eyebrow{font-size:9px;gap:5px}.show-video-intro>.eyebrow svg{width:18px;height:18px}.show-video-intro h1{font-size:28px}.show-video-lead{font-size:14px;margin:16px 0 22px}.show-video-caption{font-size:8px;gap:7px;text-align:left}.show-video-caption>span:last-child{max-width:120px;text-align:right;justify-content:flex-end}.show-video-status{font-size:13px}.reveal-show-gift{width:100%;max-width:340px}}
.primary{color:#fffdfa;box-shadow:0 4px 0 #7e2140}.primary svg{stroke-width:2}.start-button{color:#fffdfa;background:var(--violet);border-color:var(--violet);box-shadow:0 4px 0 #17574e}.welcome h1 em{text-shadow:3px 3px 0 #ead2d7}.secondary{color:var(--ink);background:var(--paper);border-color:#b8a2a9;box-shadow:0 2px 0 #dfd2d2}.music-toggle{background:var(--paper);border-color:var(--line);color:var(--ink)}.live-dot,.recipient i,.cabinet-label i{box-shadow:none}.brand small{font-size:9px}.recipient{font-size:11px}.eyebrow{font-size:11px}.welcome-meta{font-size:11px}.replay-home{font-size:13px}.mission-copy{font-size:16px}.arcade-marquee{color:#776d77}.journey-title p{font-size:14px}.arcade-lineup strong{font-size:14px}.arcade-lineup small{font-size:10px}.site-footer{font-size:10px}.hero-arcade{filter:none}.mini-cabinet{background:#efd0c4;border-color:#d49a90;box-shadow:10px 12px 0 #dcc9c1,0 22px 40px #6b4a3412}.cabinet-marquee{background:#fffaf0;color:var(--ink);border-color:#a97678}.cabinet-screen{background:#f7f3e9;border-color:#a4767c;box-shadow:inset 0 0 18px #c3a89533}.cabinet-screen:after{background:repeating-linear-gradient(0deg,transparent,transparent 3px,#6b59470a 4px)}.demo-hud{color:#706570}.demo-hud b{color:var(--violet)}.demo-ready{color:var(--ink)}.demo-floor{background:linear-gradient(0deg,#c5647c14,transparent),repeating-linear-gradient(90deg,transparent,transparent 23px,#cdbdb0 24px),repeating-linear-gradient(0deg,transparent,transparent 10px,#cdbdb0 11px)}.pixel-heart{filter:drop-shadow(0 0 17px #c764841f)}.cabinet-sticker{background:#d4e8df;color:#215c51;box-shadow:0 0 0 5px var(--bg)}.cabinet-base{background:#e5bcb0}.cabinet-deck{border-bottom-color:#bf9291}.cabinet-button{background:#b5d9c8;border-color:#69998a;box-shadow:0 4px 0 #ab8d86}.button-b{background:#fff4dd;border-color:#b59e70}.arcade-ticket{background:#fffdf6;box-shadow:3px 5px 0 #d6cbc380}.arcade-ticket strong{color:var(--red)}.star-c{color:#a47e43}.coin-slot{background:#85606d;border-color:#a67b81}.coin-slot:after{background:#fff1da}.level-label{background:#f2e1e4;color:var(--red)}.challenge-meta{font-size:12px}.level-stakes small{font-size:10px}.level-stakes>span,.desktop-flirt{font-size:13px}.game-toolbar>span{font-size:10px}.progress-node{background:var(--paper);color:var(--muted);border-color:var(--line);font-size:11px}.progress-node.done{color:#246f60;background:#e4eee6;border-color:#a1bba9}.progress-node.current{color:#fffdfa;background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px #b92f5b14}.challenge-heading>p{font-size:16px}.challenge-card{background:#fffdf8;border:1px solid #cfc5ba;box-shadow:0 5px 0 #ded5cb,0 12px 24px #4a312b0a;padding:10px 12px 13px}.arcade-top{min-height:46px;height:auto;gap:8px;padding:0 0 6px}.cabinet-label{color:#716570;font-size:10px;letter-spacing:.03em}.arcade-top button{color:var(--ink);border:1px solid #d5c9bf;background:#f5f0e8;border-radius:8px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 9px;font-size:12px}.arcade-top .arcade-pause{font-size:20px}.arcade-header-actions,.arcade-tools{display:flex;align-items:center;gap:6px}.arcade-hud{background:#f0ebe2;border-color:#d8cdc2;color:var(--ink);padding:11px 13px;min-height:66px}.arcade-hud>div>span{font-size:10px;color:#726671;letter-spacing:.04em}.arcade-hud strong{font-size:21px;color:var(--ink)}.arcade-hud small{font-size:12px;color:#726671}.arcade-hud .hud-lives{color:var(--red);height:24px;gap:3px}.hud-lives svg{height:15px;width:15px}.hud-lives .lost{color:#d2c2c4}.hud-time.urgent{color:#a34325}.arcade-display{display:flex;align-items:center;justify-content:center;aspect-ratio:360/420;min-width:0;min-height:0;background:#f8f5ef;border-color:#d8cdc2}.arcade-display canvas{width:100%;height:auto;max-width:100%;max-height:100%;flex-shrink:0}.arcade-overlay{background:#fffdf9f5;color:var(--ink);padding:24px}.overlay-chip{font-size:10px;border-color:#a5bbae;background:#eaf1e9;color:#256755;letter-spacing:.04em}.overlay-icon svg{filter:none}.arcade-overlay h2{font-size:25px;line-height:1.25}.arcade-overlay p{font-size:15px;line-height:1.6;color:#6e626e}.arcade-overlay .primary{font-size:14px;min-height:50px}.overlay-footnote{font:12px/1.6 'Space Grotesk',sans-serif;max-width:290px}.arcade-overlay .secondary,.arcade-help-action{font-size:13px;min-height:46px;margin-top:12px}.arcade-meter{background:#e6ded4}.arcade-meter>span{background:var(--violet)}.arcade-controls{gap:10px}.arcade-controls>button{background:#f1e5e3;color:#563544;border-color:#c6a7ac;box-shadow:0 3px 0 #d1b6b7;min-height:64px;border-radius:9px;transition:background 120ms ease,transform 120ms var(--ease-out)}.arcade-controls>button b{font-size:23px}.arcade-controls>button b svg{width:22px;height:22px}.arcade-controls>button span{font-size:11px;font-family:'Space Grotesk',sans-serif;font-weight:600}.arcade-controls>button.pressed{background:#e1b4c1;box-shadow:0 1px 0 #bba0a7}.arcade-controls>button:disabled{opacity:.6}.arcade-controls.many-controls>button{min-height:48px}.arcade-bottom{font-size:10px;letter-spacing:0;color:#756775}.arcade-instruction{font-size:13px;line-height:1.6;color:#6e626e;border-color:#e0d5ca}.combo-toast{color:#176653;background:#f5fff8ed;border-color:#81ab91;box-shadow:0 3px 10px #42795210}.ask-key{font-size:14px;min-height:52px}.key-teaser{font-size:13px;line-height:1.7}.couple-gate{background:#fffdf9;border-color:#d6bbc3;box-shadow:0 8px 28px #6844520b}.mini-challenge{background:#f5e8e8;border-color:#dec5ca}.mini-challenge .eyebrow{color:#8f3450;font-size:10px}.devil-badge{font-size:39px;line-height:1;margin:0 0 17px}.mini-challenge h2{font-size:31px}.mini-challenge small{font-size:12px}.change-mini{color:#a53859;font-size:13px}.key-form label{font-size:15px}.key-field{background:#fffdfa;border-color:#bba0ac}.key-field input{color:var(--ink)}#key-help{font-size:13px}.key-error{color:#a22749}.unlock-phase{font-size:15px}.gift-image{background:#fffdf8;box-shadow:7px 8px 0 #e3cdc9}.image-tag{color:#5c4051;font-size:10px}.gift-intro{font-size:16px}.ticket-details small{font-size:13px}.calendar-details p{font-size:13px}.shipping-note{background:#eaf0e7;border-color:#acbeaa;color:#266650}.shipping-note small{color:#596a59;font-size:12px}.final-badge{color:#256755;background:#eaf1e9;border-color:#a5bbae;font-size:11px}.final-gift{background:var(--paper)}.final-gift small{font-size:10px}.final-gift>span>span{font-size:12px}.final-ps{font-size:14px}.surprises-dialog{background:#fffdf9;border-color:#c9b4bf;box-shadow:0 22px 70px #3d2d4229}.surprises-dialog::backdrop{background:#46364755}.treasure-list>button{background:#f6f0e9}.treasure-list small{font-size:12px}.treasure-list strong{font-size:14px}.locked-treasure{font-size:13px}.surprises-dialog>p{font-size:14px}
@media(hover:hover) and (pointer:fine){.primary:hover{background:#a32951}.start-button:hover{background:#1c675d}.secondary:hover,.music-toggle:hover{background:#f0e6df}.text-button:hover{color:var(--red)}.arcade-top button:hover{background:#eaddd3}}
body.arcade-focus{overflow:hidden;overscroll-behavior:none}.arcade-focus .game-screen{animation:none;transform:none}.arcade-focus .site-header,.arcade-focus .site-footer,.arcade-focus .game-toolbar,.arcade-focus .game-progress,.arcade-focus .challenge-heading,.arcade-focus .challenge-actions,.arcade-focus .puzzle-success,.arcade-focus .couple-gate{display:none}.arcade-focus .puzzle-host{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;z-index:60;margin:0;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f7f4ed;border:0;border-radius:0;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:48px 66px minmax(0,1fr) 4px auto;gap:0;touch-action:manipulation;overflow:hidden}.arcade-focus .arcade-top{grid-area:1/1/2/2;padding:0 0 5px}.arcade-focus .arcade-hud{grid-area:2/1/3/2;border-radius:10px 10px 0 0;min-height:0}.arcade-focus .arcade-display{grid-area:3/1/4/2;aspect-ratio:auto;min-height:0;max-height:none;align-self:stretch;overflow:hidden;border-top:0}.arcade-focus .arcade-meter{grid-area:4/1/5/2}.arcade-focus .arcade-controls{grid-area:5/1/6/2;gap:10px;margin-top:12px;margin-bottom:4px}.arcade-focus .arcade-controls>button{min-height:64px}.arcade-focus .arcade-controls.many-controls{gap:7px}.arcade-focus .many-controls>button{min-height:46px}.arcade-focus .arcade-bottom,.arcade-focus .arcade-instruction{display:none}.arcade-focus .arcade-overlay{overflow-y:auto;padding:20px}.arcade-focus .arcade-display canvas{max-width:100%;max-height:100%}.arcade-focus .arcade-overlay h2{font-size:clamp(20px,6vw,28px)}.arcade-focus .overlay-chip{font-size:10px}.arcade-focus .overlay-icon{margin-top:14px}.arcade-focus .overlay-icon svg{width:30px;height:30px}.arcade-focus .overlay-footnote{font-size:12px}.arcade-focus .arcade-overlay p{font-size:15px}.arcade-focus .arcade-overlay .primary{min-height:50px;font-size:14px}
@media(max-width:760px){.welcome .eyebrow{font-size:9px}.brand small{font-size:8px}.welcome-meta{font-size:10px}.mission-copy{font-size:15px}.arcade-lineup small{font-size:9px}.arcade-lineup strong{font-size:13px}.site-footer{font-size:9px}.journey-title p{font-size:14px}.challenge-heading>p{font-size:14px;line-height:1.7}.challenge-meta{font-size:11px}.challenge-heading .eyebrow{font-size:10px}.game-toolbar .text-button{font-size:13px}.progress-node{font-size:10px}.cabinet-label{font-size:9px}.arcade-top{min-height:48px}.arcade-hud>div>span{font-size:10px}.arcade-hud strong{font-size:20px}.arcade-hud small{font-size:12px}.hud-lives svg{width:14px;height:14px}.arcade-overlay{padding:20px}.arcade-overlay p{font-size:14px;line-height:1.55}.overlay-chip{font-size:9px}.overlay-footnote{font-size:11px}.arcade-overlay .primary{font-size:14px;min-height:50px}.arcade-controls>button{min-height:61px}.arcade-controls>button span{font-size:11px}.arcade-controls.many-controls>button span{font-size:10px}.arcade-bottom{font-size:9px}.arcade-instruction{font-size:12px}.ask-key{font-size:13px}.key-teaser{font-size:12px}.mini-challenge .eyebrow{font-size:9px}.mini-copy{font-size:16px}.change-mini{font-size:12px}.mini-challenge small{font-size:12px}.key-form label{font-size:14px}.key-form #key-help{font-size:12px}.key-error{font-size:13px}.unlock-phase{font-size:14px}.gift-intro{font-size:15px}.ticket-details small{font-size:12px}.calendar-details p{font-size:12px}.shipping-note small{font-size:12px}.final-letter{font-size:14px}.final-gift>span>span{font-size:11px}.final-gift small{font-size:9px}.final-ps{font-size:13px}}
@media(max-height:520px) and (orientation:landscape){.arcade-focus .puzzle-host{grid-template-columns:minmax(0,1fr) 166px;grid-template-rows:54px minmax(0,1fr) 4px;column-gap:12px;padding-top:max(6px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.arcade-focus .arcade-top{grid-area:1/1/2/2}.arcade-focus .arcade-hud{grid-area:1/2/2/3;border-radius:8px;padding:5px 7px;gap:6px;align-items:center}.arcade-focus .arcade-hud>div>span{font-size:8px}.arcade-focus .arcade-hud strong{font-size:15px}.arcade-focus .hud-lives{gap:1px}.arcade-focus .hud-lives svg{width:10px;height:10px}.arcade-focus .arcade-hud small{font-size:10px}.arcade-focus .arcade-display{grid-area:2/1/3/2}.arcade-focus .arcade-meter{grid-area:3/1/4/2}.arcade-focus .arcade-controls{grid-area:2/2/4/3;display:flex;flex-direction:column;margin-top:8px;gap:8px}.arcade-focus .arcade-controls>button{min-height:48px;flex:1}.arcade-focus .arcade-controls.many-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.arcade-focus .many-controls>button{min-height:44px;flex-direction:column;gap:2px}.arcade-focus .many-controls>button span{font-size:8px}.arcade-focus .arcade-overlay{padding:12px 20px;justify-content:center}.arcade-focus .overlay-icon{display:none}.arcade-focus .arcade-overlay h2{font-size:21px;margin-top:10px}.arcade-focus .arcade-overlay p{font-size:13px;margin-top:10px}.arcade-focus .overlay-footnote{font-size:10px;margin-top:8px}.arcade-focus .arcade-overlay .primary{margin-top:12px;min-height:44px}.arcade-focus .arcade-overlay .secondary{margin-top:8px;min-height:44px}}
.arcade-help-note{font-size:13px;color:#91384f;margin-top:12px;line-height:1.5}.arcade-loss-help{gap:7px}.arcade-exit svg{width:18px;height:18px}.arcade-help b{font-size:17px;font-weight:400}
.key-dialog{width:min(420px,calc(100% - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:32px 26px 20px;border:1px solid #d3c4bc;border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #3d2d4233;text-align:center;overflow-y:auto;overscroll-behavior:contain;animation:screen-in 180ms var(--ease-out)}.key-dialog::backdrop{background:#45394070;backdrop-filter:blur(5px)}.key-dialog .close-key-dialog{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted)}.key-dialog .close-key-dialog svg{width:20px;height:20px}.key-dialog-devil{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 18px;border:1px solid #e5cbd5;background:#f7e7ed;border-radius:21px;font-size:36px;transform:rotate(-5deg)}.key-dialog .eyebrow{justify-content:center;font-size:10px;margin-bottom:12px;color:var(--muted);letter-spacing:.06em}.key-dialog h2{font-size:25px;line-height:1.3;letter-spacing:-.035em}.key-dialog>p:not(.key-dialog-note){font-size:14px;line-height:1.6;color:var(--muted);max-width:270px;margin:16px auto 0}.key-digits{display:flex;justify-content:center;gap:14px;margin-top:24px}.key-digits input{width:78px;height:78px;padding:0;border:2px solid #ccb8bf;border-radius:13px;background:#f8f3ed;color:var(--ink);text-align:center;font:42px 'IBM Plex Mono',monospace;caret-color:var(--red);box-shadow:0 3px 0 #e6d8d6}.key-digits input:focus{outline:3px solid #b92f5b22;outline-offset:3px;border-color:var(--red);background:#fffdfa}.key-digits input[aria-invalid=true]{border-color:#aa294a}.key-digits input[readonly]{opacity:.65}.key-dialog-error{min-height:20px;margin:15px 0 10px;color:#a22749;font-size:13px;line-height:1.5}.key-dialog .unlock-phase{width:100%;font-size:14px;min-height:52px}.key-dialog-note{margin:18px 0 4px;color:var(--muted);font-size:12px;line-height:1.6}.key-dialog .return-to-game{font-size:13px;text-decoration:underline;text-underline-offset:3px}.key-dialog .primary:disabled{box-shadow:none}.key-dialog .text-button:hover{color:var(--red)}@media(max-width:360px){.key-dialog{padding:28px 20px 16px}.key-dialog h2{font-size:22px}.key-dialog .eyebrow{font-size:9px}.key-digits input{width:70px;height:70px}.key-dialog-devil{width:60px;height:60px;font-size:31px}}@media(max-height:540px){.key-dialog{padding-top:20px}.key-dialog-devil{width:48px;height:48px;font-size:27px;margin-bottom:10px}.key-dialog h2{font-size:21px}.key-dialog .eyebrow{margin-bottom:8px}.key-dialog>p:not(.key-dialog-note){margin-top:10px}.key-digits{margin-top:16px}.key-digits input{width:62px;height:62px;font-size:34px}.key-dialog-note{margin-top:13px}}@media(prefers-reduced-motion:reduce){.key-dialog{animation:none}}
@media(max-width:760px){.arcade-exit span{display:none}.arcade-header-actions{gap:5px}.arcade-top .arcade-exit{width:44px;padding:6px}.arcade-focus .cabinet-label{font-size:10px}}
