@import url('https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=DM+Sans:wght@400;500;600;700;800;900;1000&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--bg:#241b2d;--panel:#312638;--text:#fff5ee;--muted:#b8a9bb;--pink:#ff98a8;--mint:#a5ead8;--line:#4a3a50;--display:'DM Sans','Noto Sans KR',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--display);font-size:16px;line-height:1.5;min-width:320px;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:5px}button{touch-action:manipulation}button:not(:disabled){transition:filter .16s,background .16s,transform .16s}button:not(:disabled):hover{filter:brightness(1.08)}button:not(:disabled):active{transform:translateY(2px)}.ambient{position:fixed;border-radius:50%;pointer-events:none;z-index:-1;filter:blur(90px);opacity:.13}.ambient-one{width:650px;height:650px;background:#d25490;top:120px;left:-300px}.ambient-two{width:460px;height:460px;background:#6b8dd5;right:-150px;top:380px}.site-header{max-width:1150px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:27px 32px 22px;border-bottom:1px solid #ffffff0c}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--text);font-size:21px;font-weight:1000;letter-spacing:-.5px;line-height:1.1}.brand small{display:block;font-size:12px;font-weight:500;letter-spacing:1.5px;margin-top:8px;color:var(--muted)}.brand-mark{position:relative;background:var(--pink);color:#382332;border-radius:11px;width:44px;height:46px;display:grid;place-items:center;font-weight:1000;font-size:35px;box-shadow:3px 3px 0 #ff98a830;transform:rotate(-5deg)}.brand-mark>span{font-size:20px;position:absolute;right:-7px;top:-8px;color:var(--mint);text-shadow:2px 2px var(--bg)}.header-actions{display:flex;gap:10px}.icon-button{border:1px solid var(--line);border-radius:50%;color:#f7e4e8;background:#36293c;width:40px;height:40px;display:grid;place-items:center;font-size:21px;font-weight:700}.icon-button svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.arcade{max-width:1120px;margin:25px auto 0;display:grid;grid-template-columns:minmax(0,680px) 300px;gap:45px;padding:0 28px;align-items:start}.play-column{min-width:0}.session-strip{display:flex;justify-content:space-between;align-items:center;padding:0 21px;margin-bottom:1px}.machine-number{font-size:12px;font-weight:800;letter-spacing:2px;color:#bca9bf}.machine-number b{color:#efe1ea;margin-left:5px}.free-play{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--mint)}.free-play span{font-size:17px;margin-right:6px}.cabinet{position:relative;isolation:isolate;filter:drop-shadow(0 25px 28px #09050d55)}#scene{display:block;width:100%;height:auto;aspect-ratio:880/780}.machine-loading{position:absolute;left:15%;right:15%;top:40%;text-align:center;background:#302939e6;border-radius:12px;padding:15px;font-size:14px}.machine-loading[hidden]{display:none}.control-deck{position:relative;margin:-7.5% 11.5% 0;min-height:120px;padding:7px 16px 15px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:10px;background:linear-gradient(#f9ded2,#ebc2ba);border:5px solid #f299a4;border-top:5px solid #fdb6b8;border-radius:8px 8px 15px 15px;box-shadow:0 7px 0 #a5566e,inset 0 0 0 2px #fff0d57a;color:#694450;z-index:3}.joystick-section,.drop-section{text-align:center;display:flex;align-items:center;flex-direction:column}.joystick{position:relative;width:105px;height:90px;touch-action:none;user-select:none}.joystick-well{position:absolute;left:27px;top:27px;width:54px;height:48px;background:radial-gradient(ellipse,#3e3844 0%,#615061 55%,#ad8e90 57%,#f5d5c6 72%);border-radius:50%;box-shadow:0 3px 0 #bc8f91}.joystick-stick{position:absolute;left:48px;top:32px;width:13px;height:26px;background:linear-gradient(90deg,#717583,#e2e4e8,#7a7180);border-radius:4px;transform:rotate(-8deg)}.joystick-knob{position:absolute;top:13px;left:34px;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 32% 24%,#d8fbec 0%,#91d4c5 24%,#609f9d 60%,#3b717b 100%);box-shadow:0 4px 5px #3a34444a;pointer-events:none}.direction{position:absolute;border:0;background:none;color:#906775;font-size:12px;width:27px;height:27px;display:grid;place-items:center;padding:0}.direction.up{top:-2px;left:40px}.direction.down{bottom:-3px;left:40px}.direction.left{left:-2px;top:34px}.direction.right{right:-3px;top:34px}.deck-label{display:block;font-size:10px;font-weight:900;letter-spacing:2px;white-space:nowrap}.deck-label span{display:none;letter-spacing:0;font-weight:500}.deck-display{align-self:center;text-align:center;background:#403440;border:3px solid #cfabac;border-radius:9px;padding:7px 4px;box-shadow:inset 0 2px 7px #130d22aa;color:var(--mint);min-width:85px}.display-label{display:block;color:#cbb6c1;font-size:9px;letter-spacing:1.8px;font-weight:800}#timer{display:block;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1.1;text-shadow:0 0 13px #a5ead866}#timer span{font-size:9px;letter-spacing:1px;margin-left:3px}#deck-hint{display:block;font-size:9px;color:#dec9d3;margin-top:3px;white-space:nowrap}.drop-button{border:4px solid #dc8793;border-bottom:7px solid #b9576f;box-shadow:0 4px 0 #b79395,0 5px 8px #a6707750,inset 0 2px 2px #ffd9cd;width:81px;height:72px;border-radius:50%;background:radial-gradient(ellipse at 35% 20%,#ffc5bd,#fb8b9c 70%);color:#6c374b;margin:4px 0 11px;display:flex;flex-direction:column;align-items:center;justify-content:center}.drop-button>span{font-size:19px;font-weight:1000;letter-spacing:1px}.drop-button small{font-size:9px;font-weight:700}.drop-button:disabled{filter:saturate(.6);opacity:.7}.drop-button:not(:disabled){box-shadow:0 4px 0 #b79395,0 0 24px #ff91a49a,inset 0 2px 2px #ffd9cd}.cabinet-bottom{margin:0 13%;height:78px;padding:14px 23px 9px;background:linear-gradient(100deg,#d3798d,#e18b9c 55%,#bd657d);border-radius:0 0 13px 13px;border:3px solid #a95e76;border-top:0;display:flex;align-items:center;justify-content:space-between;box-shadow:inset 0 -7px #814b6550}.prize-door{width:110px;height:42px;background:linear-gradient(#704157,#51384c);box-shadow:inset 0 5px 5px #352c36aa,0 1px 0 #e4a5aa;border:3px solid #b36c84;border-radius:5px 5px 12px 12px;text-align:center;line-height:33px;font-size:10px;color:#d69eac;letter-spacing:1px;font-weight:800}.prize-door>span{margin-right:4px}.machine-sticker{background:#ffebb6;color:#92575d;transform:rotate(-6deg);font-size:8px;font-weight:700;letter-spacing:1px;padding:4px 7px;line-height:1.25;border-radius:3px;text-align:center}.machine-sticker b{font-size:10px}.vent{color:#84485f;letter-spacing:2px;font-size:20px}.game-status{display:flex;gap:12px;align-items:center;margin:24px 20px 0;min-height:61px}.status-symbol{display:grid;place-items:center;background:#ff98a816;border:1px solid #ff98a826;border-radius:13px;width:42px;height:42px;flex-shrink:0;font-size:23px;color:var(--pink)}.game-status strong{font-size:16px;font-weight:700}.game-status p{font-size:13px;color:var(--muted);margin:3px 0 0;line-height:1.65}.pause-button{margin-left:auto;flex-shrink:0;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:10px;width:34px;height:34px}.pause-button:disabled{opacity:.3}.keyboard-hint{display:flex;justify-content:center;gap:20px;font-size:11px;color:#9c8ba4;margin-top:17px}.keyboard-hint>span{display:flex;align-items:center;gap:3px}kbd{display:inline-block;background:#382c41;border:1px solid #50415a;border-bottom-width:2px;border-radius:4px;font-family:inherit;font-size:10px;min-width:16px;text-align:center;padding:0 4px;color:#c4b1ce}.side-column{padding-top:26px}.wallet{padding-bottom:28px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:800;color:var(--pink)}h1{font-size:37px;line-height:1.35;font-weight:900;letter-spacing:-1.5px;margin:13px 0 23px}.coin-balance{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(115deg,#43313f,#382d3e);border:1px solid #594050;border-radius:14px}.coin-icon{width:38px;height:38px;border:3px solid #d7a660;border-radius:50%;display:grid;place-items:center;color:#9a633c;background:linear-gradient(135deg,#ffe7aa,#efbb75);box-shadow:inset 0 0 0 2px #ffe7b7;font-size:24px;font-weight:1000;transform:rotate(-12deg)}.coin-balance>div{display:flex;flex-direction:column}.coin-balance>div>span{font-size:11px;color:#d3bcc7}.coin-balance strong{font-size:29px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums}.per-play{margin-left:auto;color:#b9a1b1;font-size:11px}.start-button{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--pink);color:#41273a;font-size:15px;font-weight:800;border:0;border-radius:11px;width:100%;padding:14px 12px;margin-top:13px;box-shadow:0 3px 0 #b66380}.start-button>span:first-child{font-size:22px;line-height:1}.start-button>span:last-child{margin-left:auto;font-size:21px}.start-button:disabled{opacity:.5;box-shadow:none}.wallet-foot{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:7px;color:#b6a2b9;font-size:10px}.wallet-foot button{padding:3px 0;border:0;border-bottom:1px solid #806575;background:none;color:#efc1cd;font-size:11px;white-space:nowrap}.wallet-foot button:disabled{opacity:.35}.collection{padding-top:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-heading h2{font-size:16px;letter-spacing:-.5px;font-weight:700;margin:0}.section-heading>span:not(.mini-label){font-size:12px;color:var(--pink);padding:3px 9px;border:1px solid #5a3e51;background:#41303e;border-radius:7px}.section-caption{font-size:12px;color:var(--muted);margin:6px 0 15px}.prize-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.prize-card{position:relative;background:#332839;border:1px solid #4d3a4c;border-radius:13px;padding:7px 3px 9px;text-align:center;min-width:0}.prize-card.owned{border-color:#a77886;background:#45323f}.toy-image{width:100%;aspect-ratio:1;display:block;background-image:url('./art/plush-atlas.png');background-repeat:no-repeat;background-size:300% 200%;filter:saturate(.5) brightness(.65);opacity:.7}.owned .toy-image{filter:none;opacity:1}.prize-card h3{font-size:11px;font-weight:500;color:#c4afc4;margin:1px 0 0}.owned h3{color:#fff1e5}.prize-quantity{position:absolute;top:6px;right:5px;font-size:9px;color:#bda9bd;line-height:1.2;background:#302637b3;border-radius:8px;padding:2px 4px}.owned .prize-quantity{color:#a5ead8}.collection-total{display:flex;justify-content:space-between;font-size:11px;color:#b39eb5;border-top:1px dashed #574254;padding-top:14px;margin-top:17px}.collection-total strong{color:#f8e6ee;font-size:16px;line-height:1}.collection-total small{font-size:11px;font-weight:400}.aim-card{margin-top:25px;padding:15px;border:1px solid #4c3b50;border-radius:13px;background:#2b2233}.aim-card h2{font-size:13px}.mini-label{font-size:9px;letter-spacing:1px;color:#9a859f}.aim-card canvas{width:100%;height:auto;display:block;margin:12px 0 6px}.aim-card p{color:#ad99b0;font-size:11px;margin:0;line-height:1.8}.aim-card p br{display:none}footer{max-width:1064px;padding:24px 0 26px;margin:30px auto 0;border-top:1px solid #ffffff0c;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#947f9b;letter-spacing:.3px}footer>span:first-child{font-weight:600}footer span span{color:#cfa1b4;margin:0 5px}dialog{border:1px solid #765568;border-radius:24px;background:#302438;color:#fff4ee;max-width:440px;width:calc(100% - 34px);padding:30px;box-shadow:0 30px 80px #10071577}dialog::backdrop{background:#140c1cc9;backdrop-filter:blur(6px)}dialog h2{font-size:24px;letter-spacing:-1px;margin:10px 0 20px}.dialog-close{position:absolute;right:15px;top:13px;background:none;color:#c7b2c6;border:0;font-size:26px;padding:0 6px}dialog ol{padding-left:23px}dialog li{padding-left:5px;margin:15px 0}dialog li::marker{color:var(--pink);font-weight:800}dialog li b{font-size:15px}dialog li p{font-size:13px;color:#c4b0c5;margin:4px 0;line-height:1.7}.help-note{border-top:1px solid var(--line);padding-top:16px;color:#a998af;font-size:11px;line-height:1.8}.is-paused #scene{filter:brightness(.6)}.is-paused .cabinet::after{content:attr(data-pause-label);position:absolute;left:20%;right:20%;top:39%;border:1px solid #ad8a9e;border-radius:14px;background:#342638ee;padding:18px;text-align:center;font-weight:700;color:#ffe6e9}.win .status-symbol{color:var(--mint);background:#a5ead812;border-color:#a5ead83b}.win .game-status strong{color:var(--mint)}
@media(min-width:1280px){.arcade{gap:58px;grid-template-columns:minmax(0,680px) 300px}.control-deck{min-height:127px}}
@media(max-width:900px){.arcade{gap:20px;grid-template-columns:minmax(0,1fr) 260px;padding:0 20px}.site-header{padding:22px 25px}.side-column{padding-top:22px}h1{font-size:31px}.control-deck{margin-left:8%;margin-right:8%;padding:6px 7px 12px;gap:5px}.cabinet-bottom{margin-left:10%;margin-right:10%}.joystick{width:94px;height:87px}.joystick-well{left:21px}.joystick-stick{left:42px}.joystick-knob{left:28px}.direction.up,.direction.down{left:33px}.drop-button{width:70px;height:65px}.deck-display{min-width:70px}.keyboard-hint{gap:8px;font-size:10px}.game-status{margin-left:5px;margin-right:5px}.game-status strong{font-size:14px}.game-status p{font-size:12px}.vent{display:none}footer{margin-left:25px;margin-right:25px}}
@media(max-width:700px){.site-header{padding:20px 21px 18px}.brand{font-size:19px}.brand-mark{width:38px;height:40px;font-size:30px}.brand small{font-size:10px;margin-top:6px}.icon-button{width:36px;height:36px}.arcade{display:flex;flex-direction:column;gap:22px;max-width:500px;margin-top:17px;padding:0 13px}.play-column{width:100%}.session-strip{padding:0 18px}.machine-number{font-size:10px}.free-play{font-size:9px}#scene{margin-top:-2px}.control-deck{margin-top:-7%;margin-left:9%;margin-right:9%;min-height:109px;border-width:4px;padding:1px 5px 10px;border-radius:6px 6px 13px 13px}.joystick{height:83px;width:90px}.joystick-knob{width:36px;height:36px;left:28px}.joystick-well{left:20px}.direction.up,.direction.down{left:33px}.direction.right{right:-2px}.drop-button{width:70px;height:65px;border-width:3px;border-bottom-width:6px;margin:4px 0 9px}.drop-button span{font-size:17px}.drop-button small{font-size:8px}.deck-label{font-size:8px}.deck-display{padding:6px 2px;border-width:2px;min-width:65px}#timer{font-size:30px}#timer span{font-size:8px}.display-label{font-size:7px}#deck-hint{font-size:8px}.cabinet-bottom{height:58px;margin-left:11%;margin-right:11%;padding:7px 14px}.prize-door{height:34px;width:94px;line-height:26px;font-size:9px}.machine-sticker{font-size:7px}.machine-sticker b{font-size:9px}.vent{display:block;font-size:17px;letter-spacing:1px}.game-status{margin:18px 11px 0;gap:10px;min-height:58px}.status-symbol{width:36px;height:36px;border-radius:10px}.game-status strong{font-size:14px}.game-status p{font-size:11px}.keyboard-hint{display:none}.side-column{padding:0 11px;width:100%;display:flex;flex-direction:column;gap:21px}.wallet{padding:17px;border-radius:16px;background:#33263a;border:1px solid #584054;position:relative;display:grid;grid-template-columns:1fr 1.13fr;column-gap:14px;align-items:center}.wallet>.eyebrow,.wallet>h1{display:none}.coin-balance{padding:0;border:0;background:none;gap:9px;align-items:center}.coin-balance>div>span{font-size:10px}.coin-balance strong{font-size:27px}.coin-icon{width:31px;height:31px;font-size:21px;border-width:2px}.per-play{display:none}.start-button{font-size:12px;gap:7px;padding:12px 9px;white-space:nowrap;margin-top:0}.start-button>span:first-child{font-size:18px}.start-button>span:last-child{font-size:17px}.wallet-foot{grid-column:1/-1;margin-top:14px;font-size:10px}.wallet-foot button{font-size:10px}.collection{padding-top:0}.prize-grid{gap:9px;grid-template-columns:repeat(6,minmax(0,1fr))}.prize-card{border-radius:9px;padding:4px 2px 7px}.prize-card h3{font-size:9px}.prize-quantity{font-size:8px;top:4px;right:2px}.section-caption{font-size:11px}.section-heading h2{font-size:15px}.collection-total{font-size:11px;margin-top:12px;padding-top:12px}.aim-card{margin-top:0;display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}.aim-card .section-heading{display:block}.aim-card .mini-label{display:block;margin-top:5px}.aim-card canvas{grid-column:2;grid-row:1/3;margin:0;align-self:center}.aim-card p{font-size:10px}footer{max-width:460px;display:block;font-size:9px;margin:25px auto 0;padding:20px;text-align:center}footer>span{display:block}footer>span+span{margin-top:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* Keep actionable and collection text readable at actual device sizes. */
.start-button{font-size:16px;min-height:48px}.wallet-foot{font-size:12px;flex-wrap:wrap}.wallet-foot button{font-size:12px;min-height:30px}.coin-balance>div>span,.per-play{font-size:12px}.prize-card h3{font-size:12px}.section-caption,.collection-total,.aim-card p{font-size:12px}.aim-card h2{font-size:14px}.game-status p{font-size:14px}dialog li p{font-size:14px}.help-note{font-size:12px}footer{font-size:12px}
@media(max-width:700px){.wallet{grid-template-columns:1fr 1.35fr;padding:15px}.start-button{font-size:14px}.wallet-foot{font-size:12px}.wallet-foot button{font-size:12px}.coin-balance>div>span{font-size:12px}.prize-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.prize-card h3{font-size:12px}.prize-quantity{font-size:11px}.game-status p{font-size:12px}.aim-card p{font-size:12px}.section-caption{font-size:12px}footer{font-size:11px}}

@media(min-width:901px) and (max-height:950px){.site-header{max-width:985px;padding-top:18px;padding-bottom:18px}.arcade{max-width:965px;grid-template-columns:minmax(0,530px) 300px;gap:45px;margin-top:16px}.control-deck{min-height:106px;padding-top:2px;padding-bottom:10px}.cabinet-bottom{height:60px;padding-top:7px;padding-bottom:7px}.game-status{margin-top:16px}.keyboard-hint{margin-top:10px}.side-column{padding-top:19px}h1{font-size:32px;margin-top:10px;margin-bottom:18px}.wallet{padding-bottom:22px}.collection{padding-top:20px}.aim-card{margin-top:19px}footer{max-width:905px}}

.game-status p,dialog p,.aim-card p{word-break:keep-all;overflow-wrap:break-word}dialog{max-height:calc(100dvh - 32px);overflow-y:auto}

/* Six-language selector and space for longer localized copy. */
.header-actions{align-items:center}.language-control select{color:var(--text);background:#36293c;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:12px;height:38px;width:96px;padding:0 7px;cursor:pointer}.language-control select:focus-visible{outline:3px solid var(--mint);outline-offset:3px}h1[data-i18n]{white-space:pre-line}.coin-balance>div{min-width:0}.per-play{flex-shrink:0}.prize-card h3{min-height:1.5em;overflow-wrap:anywhere}.section-heading h2{line-height:1.4}.wallet-foot>span{max-width:100%}.start-button{white-space:normal;line-height:1.4}.drop-button small{line-height:1.15;max-width:64px}.game-status>div{min-width:0}.game-status strong{line-height:1.45;display:block}.help-note{white-space:pre-line}
@media(max-width:700px){.site-header{padding:18px 16px}.brand{font-size:15px;gap:9px}.brand-mark{width:34px;height:37px;font-size:28px}.brand small{font-size:9px;letter-spacing:.4px}.header-actions{gap:7px}.icon-button{width:34px;height:34px}.language-control select{width:90px;height:34px;font-size:12px}.wallet{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}.start-button{font-size:13px}.wallet-foot{gap:6px}.prize-card h3{min-height:3em;display:flex;align-items:center;justify-content:center}.aim-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:360px){.brand{font-size:12px;gap:7px}.brand-mark{width:29px;height:32px;font-size:25px}.brand small{font-size:8px}.header-actions{gap:5px}.icon-button{width:30px;height:32px}.language-control select{width:79px;height:32px;font-size:11px}.site-header{padding-left:14px;padding-right:14px}}

#timer.is-urgent{color:#ffa4ab}

.brand{min-width:0}.brand-mark{flex-shrink:0}.brand>span:last-child{min-width:0}.brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{flex-shrink:0}.drop-button{padding:0}
html:lang(ja) .game-status p,html:lang(ja) dialog p,html:lang(ja) .aim-card p{word-break:normal}

/* Physical arcade: one large world, four clear camera choices. */
.view-panel{margin:14px 0 12px;padding:14px 16px 11px;border:1px solid #635369;border-radius:18px;background:linear-gradient(120deg,#3b3045,#2c2538);box-shadow:0 8px 24px #100c1720}
.view-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;letter-spacing:.4px;margin-bottom:9px;color:#e9dce9}.view-badge{font-size:9px;color:var(--mint);letter-spacing:2px}.view-badge:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:7px;box-shadow:0 0 8px var(--mint)}
.view-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.view-buttons button{min-width:0;min-height:47px;display:flex;align-items:center;justify-content:center;gap:7px;background:#211c2c;border:1px solid #5b4965;color:#cdbed3;border-radius:10px;padding:8px 5px;font-size:12px;font-weight:700;line-height:1.2}.view-buttons button[aria-pressed=true]{background:#b2ead9;color:#24463f;border-color:#cfffee;box-shadow:0 0 20px #a5ead813}.view-buttons svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}.view-panel p{font-size:11px;color:#b9aabe;line-height:1.5;margin:9px 0 0}.cabinet{background:radial-gradient(ellipse at 50% 38%,#5c4864,#241b2d 72%);border-radius:22px}#scene{aspect-ratio:1.12;outline:none}.control-deck{margin:-2% 5% 0}.cabinet-bottom{margin:0 7%}.arcade{grid-template-columns:minmax(0,740px) 300px;max-width:1200px;gap:38px}.side-column{padding-top:32px}.game-status{margin-left:6px;margin-right:6px}
@media(min-width:901px) and (max-height:950px){.arcade{max-width:1120px;grid-template-columns:minmax(0,680px) 290px;gap:34px;margin-top:12px}.site-header{max-width:1120px}.view-panel{margin-top:8px;margin-bottom:4px;padding:10px 13px 8px}.view-heading{margin-bottom:6px}.view-panel p{margin-top:6px}.control-deck{min-height:103px}footer{max-width:1060px}}
@media(max-width:900px){.arcade{grid-template-columns:minmax(0,1fr);max-width:700px}.side-column{padding-top:0}} 
@media(max-width:700px){.view-panel{margin:10px 8px 6px;padding:11px}.view-buttons{gap:5px}.view-buttons button{font-size:11px;gap:4px;min-height:46px}.view-buttons svg{width:17px;height:17px}.view-panel p{font-size:10px}.control-deck{margin:-1% 4% 0}.cabinet-bottom{margin:0 6%}.arcade{gap:18px}.view-heading{font-size:11px}}
@media(max-width:360px){.view-buttons button{flex-direction:column;gap:3px;min-height:54px}}
@media(min-width:901px) and (max-height:950px){#scene{aspect-ratio:1.3}.site-header{padding-top:14px;padding-bottom:14px}.view-panel{border-radius:14px}.game-status{margin-top:12px}.keyboard-hint{margin-top:8px}}
/* Keep camera choices reachable when the player scrolls to the controls. */
.view-panel{position:sticky;top:8px;z-index:8;backdrop-filter:blur(12px)}
@media(max-width:700px){.view-panel{top:5px}.view-buttons button{min-height:48px}}

/* Immersive release: shared controls, no duplicate game state. */
.play-tools{display:flex;align-items:center;gap:12px}.hub-link{color:#cfc2d4;text-decoration:none;font-size:11px;letter-spacing:0}.fullscreen-button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid #6d5873;border-radius:10px;padding:7px 11px;background:#393043;color:#effff7;font-size:12px;font-weight:700}.fullscreen-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}.fullscreen-button[aria-pressed=true]{background:var(--mint);color:#24463f;border-color:var(--mint)}.aim-guide{display:flex;align-items:center;gap:7px}.aim-guide-mark{font-size:18px;line-height:1;color:var(--mint)}
body.is-immersive{overflow:hidden;background:#18151f}
body.is-immersive>.site-header,body.is-immersive>footer,body.is-immersive>.ambient{display:none}
body.is-immersive #game-shell{position:fixed;inset:0;z-index:30;width:100%;max-width:none;height:100dvh;margin:0;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:radial-gradient(ellipse at 40% 40%,#3d3049,#18151f 80%);display:grid;grid-template-columns:minmax(0,1fr) 230px;grid-template-rows:44px minmax(0,1fr) auto;gap:10px 18px;overflow:hidden}
.is-immersive .play-column{display:contents}.is-immersive .session-strip{grid-column:2;grid-row:1;padding:0;justify-content:flex-end}.is-immersive .machine-number,.is-immersive .hub-link,.is-immersive .cabinet-bottom,.is-immersive .keyboard-hint,.is-immersive .collection,.is-immersive .view-heading,.is-immersive .view-panel p{display:none}
.is-immersive .view-panel{position:static;grid-column:1;grid-row:1;border:0;background:none;box-shadow:none;margin:0;padding:0;align-self:center;backdrop-filter:none}.is-immersive .view-buttons{max-width:600px;margin:auto}.is-immersive .view-buttons button{min-height:40px}
.is-immersive .cabinet{grid-column:1;grid-row:2/4;align-self:stretch;display:flex;flex-direction:column;min-height:0;border-radius:18px;filter:none;background:radial-gradient(ellipse at 50% 40%,#604c68aa,#241c2c33 74%)}
.is-immersive #scene{height:0;min-height:0;flex:1 1 0;aspect-ratio:auto;width:100%;margin:0}.is-immersive .control-deck{flex:0 0 auto;width:min(540px,94%);margin:0 auto;min-height:103px;padding:2px 20px 8px}.is-immersive .side-column{grid-column:2;grid-row:2;display:block;width:100%;padding:0;align-self:center}.is-immersive .wallet{display:block;padding:18px 12px;background:#342a40aa;border:1px solid #6d587350;border-radius:16px}.is-immersive .wallet>.eyebrow,.is-immersive .wallet>h1,.is-immersive .per-play,.is-immersive .wallet-foot>span{display:none}.is-immersive .coin-balance{padding:0 0 16px;border:0;background:none;gap:10px}.is-immersive .coin-balance strong{font-size:32px}.is-immersive .coin-icon{width:38px;height:38px;font-size:26px}.is-immersive .start-button{margin:0;min-height:48px;font-size:14px;padding:10px}.is-immersive .wallet-foot{justify-content:center;margin:10px 0 0}.is-immersive .game-status{grid-column:2;grid-row:3;margin:0;padding:12px 0;align-self:end;min-height:72px}.is-immersive .game-status p{font-size:12px}.is-immersive .game-status strong{font-size:14px}.is-immersive .status-symbol{display:none}.is-immersive .pause-button{flex-shrink:0}.is-immersive .control-deck .deck-label{display:none}
@media(max-width:700px),(max-height:500px){.session-strip{padding:0 10px}.play-tools{gap:9px}.fullscreen-button{font-size:11px;padding:7px 9px}.hub-link{font-size:10px}.machine-number{letter-spacing:1px}}
@media(max-width:700px) and (orientation:portrait){body.is-immersive #game-shell{display:flex;flex-direction:column;gap:7px;padding:8px max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top))}.is-immersive .session-strip{order:0;flex:0 0 34px;min-height:34px;position:absolute;right:max(10px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));z-index:4}.is-immersive .fullscreen-button{min-height:34px;max-width:115px;font-size:10px}.is-immersive .view-panel{order:1;flex:0 0 38px;margin-right:122px}.is-immersive .view-buttons{gap:3px;min-width:0}.is-immersive .view-buttons button{padding:4px 2px;min-height:36px;font-size:10px;flex-direction:column;gap:2px}.is-immersive .view-buttons svg{display:none}.is-immersive .cabinet{order:2;flex:1 1 0;min-height:0;width:100%}.is-immersive .control-deck{min-height:104px;padding:3px 7px 8px;width:98%}.is-immersive .side-column{order:3;flex:0 0 auto}.is-immersive .wallet{display:grid;grid-template-columns:85px minmax(0,1fr) 78px;gap:8px;padding:9px;align-items:center}.is-immersive .coin-balance{padding:0;gap:7px}.is-immersive .coin-icon{width:27px;height:27px;font-size:18px;flex-shrink:0}.is-immersive .coin-balance>div>span{font-size:9px}.is-immersive .coin-balance strong{font-size:23px}.is-immersive .wallet-foot{grid-column:auto;margin:0}.is-immersive .wallet-foot button{font-size:10px;line-height:1.3}.is-immersive .start-button{font-size:11px;gap:5px;min-height:43px;padding:7px}.is-immersive .game-status{order:4;flex:0 0 auto;min-height:49px;max-height:90px;padding:1px 4px;gap:7px}.is-immersive .game-status strong{font-size:12px}.is-immersive .game-status p{font-size:10px;line-height:1.35;margin-top:2px}}
@media(max-height:500px) and (orientation:landscape){body.is-immersive #game-shell{grid-template-columns:minmax(0,1fr) 175px;grid-template-rows:36px minmax(0,1fr) auto;gap:4px 10px;padding:5px 10px}.is-immersive .view-buttons button,.is-immersive .fullscreen-button{min-height:32px;font-size:10px}.is-immersive .view-buttons svg{height:15px;width:15px}.is-immersive .control-deck{min-height:81px;padding:0 8px 3px;width:min(420px,92%)}.is-immersive .joystick{transform:scale(.78);transform-origin:center;max-height:77px}.is-immersive .drop-button{width:63px;height:57px;margin:0}.is-immersive .drop-button span{font-size:15px}.is-immersive .wallet{padding:9px}.is-immersive .coin-balance{padding-bottom:6px}.is-immersive .coin-balance strong{font-size:23px}.is-immersive .coin-icon{width:27px;height:27px;font-size:18px}.is-immersive .coin-balance>div>span{font-size:10px}.is-immersive .game-status{padding:2px 0;min-height:48px}.is-immersive .game-status strong{font-size:11px}.is-immersive .game-status p{font-size:10px}.is-immersive .start-button{font-size:11px;min-height:36px}.is-immersive .wallet-foot{margin-top:4px}.is-immersive #timer{font-size:24px}}
