@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');
.presents-intro{min-height:65svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px 24px;position:relative;overflow:hidden;background:#f4c8d8}
.presents-intro h2{max-width:850px;font-size:clamp(40px,6vw,84px);margin:15px 0}.presents-intro p{font-family:'Caveat',cursive;font-size:clamp(28px,4vw,46px);margin:15px 0}.present-glyph{font-size:64px;display:block}.presents-intro>a{margin-top:22px;border-bottom:1px solid;padding:10px;font-size:15px}
.arcade-section{padding:85px 5%;background:#f9d9e3;position:relative}.arcade-section.baseball-section{background:#efbed2}.arcade-heading{max-width:1050px;margin:0 auto 30px;display:flex;align-items:end;justify-content:space-between;gap:24px}.arcade-heading h2{font-size:clamp(36px,5vw,68px);margin:14px 0 0}.arcade-heading .handwritten{font-size:30px;transform:rotate(-5deg)}
.arcade-machine{max-width:1050px;margin:auto;background:#64243d;padding:18px;border:3px solid #4a182e;border-radius:18px;box-shadow:0 16px 0 #42142a,0 26px 40px #812c462b;color:#ffece5}.machine-top{display:flex;justify-content:space-between;padding:8px 6px 18px;gap:12px;font:11px/1.6 'Press Start 2P',monospace;color:#f6b5d1}.arcade-screen{position:relative;background:#22182f;border:5px solid #341629;border-radius:4px;overflow:hidden;aspect-ratio:16/9;isolation:isolate}.arcade-screen canvas{display:block;width:100%;height:100%;image-rendering:pixelated;outline-offset:-5px}.arcade-screen:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#190e1a16 3px 4px);pointer-events:none;z-index:3}
.game-start{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#21152ddd;padding:25px;gap:18px}.game-start h3{font:clamp(16px,2.4vw,28px)/1.7 'Press Start 2P',monospace;max-width:600px;margin:0;color:#ffd997;text-shadow:3px 3px #ab3c6b}.game-start p{font-size:16px;line-height:1.6;max-width:520px;margin:0;color:#f5d7e7}.pixel-button,.touch-controls button,.machine-actions button{font:12px/1.5 'Press Start 2P',monospace;background:#ffc0d9;color:#4b1a35;border:0;border-bottom:4px solid #d977a2;border-radius:3px;padding:16px 20px;min-height:48px}.pixel-button:hover{background:#ffe0ec}.pixel-button:active,.touch-controls button:active{transform:translateY(2px);border-bottom-width:2px}.game-status{min-height:50px;font-size:16px;line-height:1.5;margin:18px 5px 8px;color:#fff0f5}.machine-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:6px}.key-help{font-size:13px;color:#efbdd1;line-height:1.7;margin:0}.key-help kbd{font-family:inherit;color:#fff6e7}.machine-actions{display:flex;gap:12px}.machine-actions button{background:transparent;border:1px solid #bd6d93;color:#fbd2e4;padding:10px 12px;font-family:'DM Sans',sans-serif;font-size:14px;min-height:40px}.touch-controls{display:flex;gap:9px;margin-top:18px;justify-content:center;flex-wrap:wrap}.touch-controls button{touch-action:none;user-select:none;min-width:65px;font-size:11px;padding:14px 12px}.touch-controls .swing{background:#ffe4a5;border-bottom-color:#cfad60}.timing-wrap{max-width:420px;margin:10px auto 18px}.timing-labels{display:flex;justify-content:space-between;font:11px/1.5 'Press Start 2P',monospace;margin-bottom:9px;color:#efbdd1}.timing-track{height:16px;background:#30192b;border:2px solid #e9a4c0;position:relative}.timing-zone{position:absolute;left:70%;width:28%;height:100%;background:#a8cd89}.timing-ball{position:absolute;left:0;top:-4px;width:8px;height:20px;background:#fff5db;box-shadow:0 0 0 2px #44233c}
.game-reward{position:absolute;inset:0;z-index:5;background:#25172fed;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;gap:10px;overflow:auto;text-align:center}.game-reward h3{font:clamp(12px,1.5vw,20px)/1.6 'Press Start 2P',monospace;color:#ffd997;margin:0}.gift-card{width:min(340px,50%);border:4px solid #ffe2ae;box-shadow:6px 6px #120d1b;background:#fff0d9;color:#382237;animation:prize-pop .6s ease-out}.gift-card img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;display:block;image-rendering:pixelated}.gift-card .gift-code{padding:10px 5px;font:clamp(10px,1vw,13px)/1.5 'Press Start 2P',monospace;display:block}.game-reward p{font-size:13px;margin:0;color:#f9cadf}.game-reward .pixel-button{padding:10px 18px;min-height:40px;font-size:10px}.game-reward:focus-visible{outline:3px solid #ffe4a5;outline-offset:-5px}
.lsat-finale{text-align:center;padding:110px 24px 45px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#fff0f5,transparent 65%),#f9d9e3}.lsat-finale h2{max-width:900px;margin:24px auto;font-size:clamp(40px,5.5vw,76px)}.lsat-finale .second-wish{font-family:'Caveat',cursive;font-size:clamp(30px,4vw,48px);margin:0 0 40px}.lsat-letter{max-width:670px;margin:0 auto 38px;font-size:20px;line-height:1.8}.countdown-date{font-size:13px;letter-spacing:2px;margin:0 0 22px}.countdown{display:flex;justify-content:center;gap:clamp(12px,3vw,45px);margin:20px auto 36px}.countdown>div{min-width:70px}.countdown strong{font-family:'Playfair Display',serif;font-size:clamp(42px,7vw,88px);font-weight:500;font-variant-numeric:tabular-nums;display:block}.countdown span{font-size:11px;letter-spacing:2px;text-transform:uppercase}.lsat-finale footer{margin-top:70px}.lsat-finale>.handwritten{font-size:36px}
@keyframes prize-pop{from{opacity:0;transform:translateY(35px) scale(.75)}to{opacity:1;transform:none}}
@media(max-width:650px){.arcade-section{padding:55px 12px}.arcade-heading{padding:0 12px;display:block}.arcade-heading .handwritten{display:block;margin-top:17px;font-size:26px}.arcade-machine{padding:9px;border-radius:10px}.machine-top{font-size:8px;padding:9px 2px 14px}.arcade-screen{aspect-ratio:4/3}.arcade-screen canvas{object-fit:contain;background:#22182f}.game-start{padding:14px;gap:14px}.game-start h3{font-size:16px}.game-start p{font-size:13px}.game-start .pixel-button{font-size:10px;padding:12px}.game-status{font-size:14px;min-height:63px;margin-top:13px}.machine-bottom{justify-content:center;text-align:center}.touch-controls{gap:6px}.touch-controls button{min-width:45px;font-size:9px;padding:12px 9px}.gift-card{width:65%;max-width:240px}.gift-card .gift-code{font-size:8px;padding:7px}.game-reward{gap:7px;padding:10px}.game-reward h3{font-size:11px}.game-reward p{font-size:11px}.game-reward .pixel-button{font-size:9px;padding:8px;min-height:32px}.lsat-finale{padding-top:65px}.lsat-letter{font-size:18px}.countdown{gap:14px}.countdown>div{min-width:60px}.countdown span{font-size:9px;letter-spacing:1px}.countdown-date{font-size:11px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.gift-card{animation:none}}
/* The game itself is the stage: no oversized console housing. */
.presents-intro>a{border:0;text-decoration:none;font-family:'Caveat',cursive;font-size:38px}
.arcade-section{padding:28px 4% 40px;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.arcade-heading{display:block;text-align:center;margin:0 auto 20px}.arcade-heading h2{font-size:clamp(32px,4vw,52px);margin:8px 0}
#slaying .arcade-heading h2{font-family:'Caveat',cursive;font-weight:400;letter-spacing:0}
.arcade-heading .handwritten{display:block;transform:none;font-size:25px;margin-top:6px}
.arcade-machine{width:min(1050px,calc((100svh - 200px)*16/9));max-width:100%;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
.arcade-screen{border:0;border-radius:8px;aspect-ratio:16/9;box-shadow:0 12px 36px #812c4622}
.machine-top{position:absolute;top:8.5%;left:2%;right:2%;padding:0;z-index:1;font:10px/1.4 monospace;pointer-events:none}
#baseball-machine .machine-top{top:3%;left:3%;right:auto;flex-direction:column;gap:4px;font-size:10px}
.game-status{position:absolute;bottom:2%;left:3%;right:3%;margin:0;min-height:0;font:clamp(9px,1.1vw,14px)/1.3 monospace;color:#fff0df;text-shadow:1px 1px #21182e;pointer-events:none;z-index:1}
.machine-actions{position:absolute;right:2%;top:10%;z-index:2;gap:5px}.machine-actions button{font-size:11px;min-height:28px;padding:4px 9px;background:#21182ebd}
#baseball-machine .machine-actions{top:3%}
.timing-wrap{position:absolute;bottom:13%;left:4%;width:27%;margin:0;z-index:2}.timing-labels{font:9px/1.4 monospace}.timing-zone{left:84%;width:8%}.timing-track{height:13px}.timing-ball{height:17px;width:5px}
.onscreen-swing{position:absolute;right:4%;bottom:12%;z-index:2;border:2px solid #ffe5a6;background:#ffe5a6;color:#4b1a35;padding:9px 16px;font:bold 15px monospace;border-radius:3px}.onscreen-swing small{display:block;font-size:9px;margin-top:4px}
.game-start,.game-reward{z-index:5}.game-fail{background:#21152df2}.game-start small{font-size:12px}.game-start h3{font-size:clamp(13px,2vw,25px)}
@media(max-width:650px){.arcade-section{min-height:70svh;padding:30px 10px}.arcade-machine{width:100%}.arcade-heading{margin-bottom:15px}.arcade-screen{aspect-ratio:16/9}.game-start{gap:9px;padding:10px}.game-start p{font-size:11px}.game-start .pixel-button{min-height:32px;padding:8px;font-size:9px}.game-start h3{font-size:12px}.machine-actions button{font-size:9px;min-height:24px;padding:3px 6px}.machine-top{font-size:8px}#baseball-machine .machine-top{font-size:7px}.timing-labels{font-size:7px}.onscreen-swing{font-size:11px;padding:5px 9px}.game-reward .gift-card{max-width:180px;width:38%}.game-reward{gap:5px}.game-reward p{font-size:9px}}
/* Matching pixel type and in-game placement for both games. */
.arcade-screen{container-type:inline-size}
.machine-top,#baseball-machine .machine-top,.machine-actions button,.game-status,.timing-labels,.onscreen-swing,.onscreen-swing small,.game-start p,.game-start small,.game-reward p{font-family:'Press Start 2P',monospace;font-weight:400}
.machine-top,#baseball-machine .machine-top{font-size:clamp(6px,1.35cqw,12px);line-height:1.7;color:#fff}
.machine-top{top:10%;right:3%;left:3%}
#baseball-machine .machine-top{top:3%;font-size:clamp(5px,1.1cqw,10px)}
.machine-actions,#baseball-machine .machine-actions{top:auto;bottom:3%;right:3%;gap:8px}
.machine-actions button{font-size:clamp(6px,1.2cqw,11px);padding:10px 12px;min-height:34px;color:white;background:#21182edd;border-color:#efbdd1}
#quest-status{top:20%;bottom:auto;left:15%;right:15%;text-align:center;font-size:clamp(7px,1.6cqw,14px);line-height:1.9;color:#fff;background:#21182ebd;padding:8px 12px;border-radius:3px;text-shadow:none}
#baseball-status{display:none;top:37%;bottom:auto;left:16%;right:16%;text-align:center;font-size:clamp(8px,1.8cqw,16px);line-height:2;color:#fff;background:#21182eed;padding:16px;border:1px solid #e9a4c0;text-shadow:none;z-index:2}
#baseball-status.between-pitches{display:block}
.timing-labels{font-size:clamp(5px,1cqw,9px)}
.onscreen-swing{font-size:clamp(7px,1.4cqw,13px);bottom:17%}.onscreen-swing small{font-size:clamp(5px,.9cqw,8px)}
.game-start p{font-size:clamp(7px,1.4cqw,13px);line-height:2}.game-start small{font-size:clamp(6px,1.2cqw,11px)}.game-reward p{font-size:clamp(6px,1cqw,10px);line-height:1.7}
@media(max-width:650px){.machine-actions button{min-height:25px;padding:6px 7px}.music-player{padding:14px;gap:10px}.music-player #music-toggle{min-width:104px;padding:9px 12px}#quest-status{padding:4px 7px}#baseball-status{padding:8px}}

.gift-card .gift-code{white-space:pre-line;font:clamp(11px,1.8cqw,16px)/1.7 monospace;letter-spacing:0;padding:8px 5px;user-select:text;overflow-wrap:anywhere}.game-reward{justify-content:safe center}

.arcade-heading h2{font-family:'Caveat',cursive;font-weight:400;letter-spacing:0}
/* Match all gift-card redemption text to the arcade lettering. */
.gift-card .gift-code{font-family:'Press Start 2P',monospace;font-size:clamp(7px,1.2cqw,12px);line-height:2;overflow-wrap:anywhere}
