*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 25%,#263040,#090c15 65%);color:#f5f5ed;font:16px Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}[hidden]{display:none!important}.site-header{max-width:1150px;margin:auto;padding:20px 28px;display:flex;justify-content:space-between;align-items:center;gap:24px}.site-header img{width:95px;height:auto}.site-header>a:last-child{font-size:14px;min-height:44px;display:flex;align-items:center}main{max-width:1150px;margin:auto;padding:12px 28px 60px}.cabinet{border:2px solid #6b622d;border-radius:28px 28px 16px 16px;background:#171e2b;box-shadow:0 25px 90px #0009,0 0 65px #ffe4300a;overflow:hidden}.marquee{text-align:center;padding:22px 16px;background:linear-gradient(115deg,#ffe430,#fff284 50%,#e9bd1c);color:#121620;border-bottom:6px solid #090c15}.edition,.marquee-note{font-size:12px;font-weight:800;letter-spacing:3px}.marquee h1{display:flex;align-items:center;justify-content:center;gap:18px;margin:10px 0;font-size:clamp(32px,6vw,62px);font-weight:900;letter-spacing:4px}.marquee h1 img{width:145px;height:auto;filter:drop-shadow(0 0 1px #000);background:#10151f;padding:8px;border-radius:8px}.screen-bezel{padding:24px 28px;background:linear-gradient(120deg,#2e394b,#121926);border-bottom:1px solid #465164}.screen{border:5px solid #05080d;border-radius:16px;background:#090f1b;overflow:hidden;box-shadow:0 0 0 1px #5a6c80,inset 0 0 30px #000}#selection{padding:28px}.selection-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.eyebrow{font-size:12px;letter-spacing:2px;color:#ffe430;margin:0 0 10px}h2{font-size:28px;margin:0}.selection-heading>span{font-size:12px;color:#aebbd0}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.game-card{padding:0;text-align:left;border:1px solid #4b5970;border-radius:12px;overflow:hidden;background:#172133;color:inherit;transition:transform .18s,border-color .18s}.game-card:hover{border-color:#ffe430;transform:translateY(-3px)}.art{height:230px;display:grid;place-items:center;background:linear-gradient(#0b112533,#0b1125cc),url('/play/assets/city.webp') center/cover}.slop .art{background-image:linear-gradient(#0b112533,#0b1125aa),url('/play/slop/assets/arena.webp')}.art img{width:170px;height:205px;object-fit:contain;filter:drop-shadow(0 12px 15px #0009)}.runner .art img{image-rendering:pixelated}.card-copy{padding:22px}.genre{font-size:12px;letter-spacing:1.5px;color:#ffe430}h3{font-size:28px;margin:10px 0}.card-copy p{line-height:1.6;color:#bac8de;margin:0 0 20px}.play{display:flex;justify-content:space-between;align-items:center;background:#ffe430;color:#111725;border-radius:7px;padding:14px;font-weight:700;font-size:14px}.save-note{font-size:14px;text-align:center;line-height:1.5;color:#aab9d1;margin:24px 0 0}.control-deck{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;background:linear-gradient(#283346,#182232)}.now-playing span{display:block;color:#ffe430;font-size:12px;letter-spacing:2px;margin-bottom:6px}.now-playing strong{font-size:16px}.cabinet-controls{display:flex;gap:8px;flex-wrap:wrap}.cabinet-controls button,dialog button{min-height:44px;padding:10px 14px;border-radius:8px;border:1px solid #6c7a90;background:#0c1424;color:#fff;font-size:14px}.cabinet-controls #choose{background:#ffe430;color:#111725;border-color:#ffe430}.cabinet-base{background:#0c111b;display:flex;justify-content:space-between;padding:14px 28px;font-size:12px;letter-spacing:2px;color:#9caabd}#game-frame{display:block;width:100%;height:740px;border:0;background:#090c15}#loading{text-align:center;padding:15px;color:#ffe430}dialog{max-width:430px;width:90%;padding:28px;border:1px solid #ffe430;background:#121b2b;border-radius:16px;color:#fff}dialog::backdrop{background:#000b}dialog p{line-height:1.6;color:#bfcee3}dialog>div{display:flex;gap:12px}dialog #leave{background:#ffe430;color:#111725}.cabinet.expanded{position:fixed;inset:0;z-index:1000;border-radius:0;overflow:auto}.cabinet:fullscreen{overflow:auto;background:#090c15}.cabinet.expanded .marquee,.cabinet:fullscreen .marquee{display:none}
@media(max-width:650px){main{padding:0 8px 24px}.site-header{padding:12px 16px}.cabinet{border-radius:16px}.marquee{padding:14px 10px;border-bottom-width:3px}.marquee h1{gap:12px;font-size:32px;letter-spacing:2px}.marquee h1 img{width:96px}.edition,.marquee-note{font-size:10px;letter-spacing:1.5px}.screen-bezel{padding:8px}.screen{border-width:2px;border-radius:10px}#selection{padding:18px 12px}.selection-heading{display:block;margin-bottom:18px}.selection-heading>span{display:block;margin-top:10px}h2{font-size:25px}.game-grid{grid-template-columns:1fr;gap:14px}.game-card{display:grid;grid-template-columns:100px 1fr}.art{height:100%;min-height:225px}.art img{width:100%;height:160px}.card-copy{padding:16px 12px}h3{font-size:23px}.genre{font-size:10px}.card-copy p{font-size:14px;line-height:1.5;margin-bottom:14px}.play{padding:12px 8px;font-size:13px}.control-deck{padding:14px 12px;flex-direction:column;align-items:stretch;gap:12px}.cabinet-controls{justify-content:space-between}.cabinet-controls button{flex:1;padding:10px 8px}.cabinet-base{padding:12px;font-size:10px;letter-spacing:1px}.now-playing strong{font-size:14px}.cabinet.playing .marquee{padding:8px}.cabinet.playing .marquee h1{font-size:25px;margin:2px}.cabinet.playing .marquee h1 img{width:76px}.cabinet.playing .edition,.cabinet.playing .marquee-note{display:none}}
@media(prefers-reduced-motion:reduce){.game-card{transition:none}}

.clash .art{background-image:linear-gradient(#0b112511,#0b112544),url('/play/clash/assets/stage.png')}.clash-character{width:200px;height:220px;background:url('/play/clash/assets/hero.png') 0 0/400% 200% no-repeat;display:block}@media(min-width:950px){.game-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-copy{padding:18px}.card-copy h3{font-size:25px}.game-card{display:flex;flex-direction:column}.art{width:100%}.card-copy{flex:1;display:flex;flex-direction:column}.play{margin-top:auto}}@media(max-width:650px){.clash-character{width:100px;height:112px}}
/* Cabinet game selector */
#selection{background:radial-gradient(ellipse at 50% 0,#24364955,transparent 70%),#090f1b;padding:24px}.selection-heading{margin-bottom:18px}.selection-heading h2{font-size:18px}.selection-heading .eyebrow{margin-bottom:6px}.game-preview{display:grid;grid-template-columns:1.1fr 1fr;min-height:330px;border:1px solid #39465d;border-radius:10px;overflow:hidden;background:#111d2e}.preview-art{min-width:0;position:relative;overflow:hidden}.preview-art .art{height:100%;min-height:330px;background-size:cover}.preview-art .art img{width:90%;height:300px;object-fit:contain}.preview-art.breach .art{background:radial-gradient(circle,#605021,#141a2e)}.preview-art.breach .art img{width:100%;height:350px;object-fit:cover;object-position:center 35%}.preview-art .clash-character{width:270px;height:300px;max-width:100%}.preview-copy{padding:32px 28px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.preview-copy h2{font-size:clamp(28px,3.5vw,46px);line-height:1.05;margin:13px 0}.preview-copy>p:not(.eyebrow){color:#bdc9db;line-height:1.6;font-size:15px;margin:0 0 24px}.preview-copy>.eyebrow{font-size:10px;letter-spacing:2px;color:#8193ab;margin-bottom:18px}.start-game{display:flex;justify-content:space-between;gap:45px;align-items:center;min-height:54px;padding:16px 22px;background:#ffe430;color:#111725;border:0;border-bottom:4px solid #b8990f;border-radius:7px;font-weight:900;letter-spacing:1px;width:100%;box-shadow:0 4px 20px #ffe43015}.start-game:hover{background:#fff183}.start-game:active{transform:translateY(2px)}.selector-nav{display:flex;align-items:center;justify-content:center;gap:22px;margin:18px 0 14px}.selector-nav button{width:48px;height:44px;border:1px solid #64728b;border-radius:50%;background:#263249;color:#ffe430;font-size:22px;box-shadow:0 3px 0 #03060c}.selector-nav span{font-size:11px;letter-spacing:2px;color:#bac8de;min-width:140px;text-align:center}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.game-card{display:block;position:relative;border-radius:7px;border:2px solid #39465d;opacity:.65;transition:opacity .18s,border-color .18s,transform .18s}.game-card:hover{opacity:1;transform:translateY(-2px)}.game-card[aria-pressed=true]{border-color:#ffe430;opacity:1;box-shadow:0 0 16px #ffe43020}.game-card .art{height:86px;min-height:0}.game-card .art img{height:82px;width:100%;object-fit:contain}.game-card.breach .art img{object-fit:contain;object-position:center}.game-card .clash-character{width:78px;height:86px}.game-card .card-copy{padding:10px 6px;display:block;text-align:center}.game-card .card-copy h3{font-size:13px;margin:0;line-height:1.3}.game-card .genre,.game-card .card-copy p,.game-card .play{display:none}.game-card .game-platform{font-size:9px;margin-top:5px}.save-note{font-size:11px;margin-top:18px}.cabinet-base{padding:22px 28px;background:linear-gradient(100deg,#080e18,#202b3e,#080e18)}.control-deck{border-top:3px solid #47536b;border-bottom:5px solid #090f19}.start-game:disabled,.selector-nav button:disabled{opacity:.4;cursor:default}.game-preview.switching{animation:screen-in .2s ease-out}@keyframes screen-in{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){.marquee .edition,.marquee-note{display:none}.marquee{padding:8px}.marquee h1{margin:4px;font-size:28px}.marquee h1 img{width:86px}#selection{padding:14px 10px}.selection-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px}.selection-heading h2{font-size:16px}.selection-heading>span{font-size:9px;max-width:100px;text-align:right;margin:0}.selection-heading .eyebrow{font-size:9px}.game-preview{grid-template-columns:1fr;min-height:0}.preview-art .art{min-height:0;height:195px}.preview-art .art img{height:185px;width:80%}.preview-art.breach .art img{height:195px;width:100%;object-position:50% 33%}.preview-art .clash-character{height:190px;width:172px}.preview-copy{padding:18px}.preview-copy>.eyebrow{display:none}.preview-copy .genre{font-size:9px}.preview-copy h2{font-size:30px;margin:8px 0}.preview-copy>p:not(.eyebrow){font-size:13px;line-height:1.45;margin-bottom:15px}.start-game{min-height:48px;padding:12px 18px;font-size:14px}.selector-nav{margin:14px 0 12px}.game-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.game-card .art{height:61px;min-height:0}.game-card .art img{height:60px}.game-card .clash-character{width:54px;height:60px}.game-card .card-copy{padding:8px 3px}.game-card .card-copy h3{font-size:10px}.game-card .game-platform{font-size:8px}.save-note{font-size:10px}.control-deck{padding:12px}.cabinet-base{padding:14px 12px}}
@media(prefers-reduced-motion:reduce){.game-preview.switching{animation:none}.game-card{transition:none}}
/* Keep every selector tile aligned, including unavailable games. */
#selection .game-grid{align-items:stretch}
#selection .game-card{display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
#selection .game-card .art{flex:none;width:100%;height:86px;min-height:0}
#selection .game-card .card-copy{display:flex;flex:1;flex-direction:column;align-items:center;width:100%;padding:10px 6px;gap:8px}
#selection .game-card h3{display:flex;align-items:center;justify-content:center;min-height:34px;margin:0;width:100%}
#selection .game-card .game-platform{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;margin:0;padding:5px 3px;font-size:11px;line-height:1.35;letter-spacing:0;text-align:center}
#selection .game-card .game-platform-note{display:none}
@media(max-width:650px){#selection .game-card .art{height:61px}#selection .game-card .card-copy{padding:8px 3px;gap:6px}#selection .game-card h3{min-height:28px}#selection .game-card .game-platform{min-height:36px;font-size:9px;padding:4px 2px}}
/* Arcade glass, restrained CRT texture, and a tactile start control. */
.screen-bezel{padding:24px;background:linear-gradient(135deg,#465064 0%,#151b26 13%,#080b12 50%,#333e50 100%)}
.screen{position:relative;border:7px solid #05080c;border-radius:28px;box-shadow:0 0 0 2px #586479,0 8px 22px #000b,inset 0 0 40px #000}
#selection{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 20%,#183a4355,transparent 75%),#080e18}
#selection::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:18px;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 3px,#000 4px);opacity:.1;box-shadow:inset 0 0 60px 12px #000}
#selection::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(120deg,#c4ecff09,transparent 35%,transparent 75%,#c4ecff04);border-radius:18px}
.selection-heading .eyebrow,.selector-nav span,.preview-copy .genre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-shadow:0 0 9px #ffe43035}
.game-preview{border-color:#3c6269;border-radius:16px;background:linear-gradient(135deg,#122735,#101724);box-shadow:0 0 18px #5ddaff09,inset 0 0 30px #0003}
#preview-art .art{height:100%;min-height:360px;background-color:#080e18}
#preview-art .art img{display:block;width:100%;height:360px;object-fit:contain;object-position:center;padding:12px;filter:drop-shadow(0 8px 16px #0008)}
#preview-art.breach .art{background:radial-gradient(ellipse,#293e57,#070c15 75%)}
#preview-art.breach .art img{width:100%;height:360px;object-fit:contain;object-position:center;padding:12px}
.start-game{position:relative;isolation:isolate;justify-content:center;gap:20px;min-height:64px;padding:16px 24px;border:2px solid #fff399;border-bottom:6px solid #967200;border-radius:12px;background:linear-gradient(#fff790 0%,#ffe631 18%,#f7cc12 85%,#eebc0b);color:#131708;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:20px;font-weight:900;letter-spacing:3px;text-shadow:0 1px #fff9;box-shadow:0 6px 0 #05090e,0 0 0 4px #060b13,0 0 24px #ffe43030,inset 0 2px 0 #ffffce;transition:transform .12s,box-shadow .12s,filter .12s}
.start-game:hover{background:linear-gradient(#fffbc5,#ffe940 30%,#ffd325);box-shadow:0 6px 0 #05090e,0 0 0 4px #060b13,0 0 32px #ffe43055,inset 0 2px 0 #ffffce}
.start-game:active{transform:translateY(4px);box-shadow:0 2px 0 #05090e,0 0 0 4px #060b13,0 0 18px #ffe43040}
.start-icon{display:block;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid currentColor;filter:drop-shadow(0 1px 0 #fff9)}
.start-game:disabled{filter:grayscale(.8)}
@media(max-width:650px){.screen-bezel{padding:10px}.screen{border-width:5px;border-radius:22px}#preview-art .art{height:270px;min-height:0}#preview-art .art img,#preview-art.breach .art img{height:270px;width:100%;object-fit:contain;padding:10px}.start-game{min-height:58px;font-size:18px;letter-spacing:2px;margin:4px 0 5px}.preview-copy{padding:18px 20px}.game-preview{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.start-game{transition:none}}
.view-leaderboard{order:3;align-self:center;margin-top:16px;padding:10px 16px;min-height:44px;border:1px solid #ffe43077;border-radius:7px;background:#122338;color:#ffe430;font-weight:700}

.cabinet.playing,.cabinet.playing *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.cabinet.playing button{touch-action:manipulation}.cabinet.playing input,.cabinet.playing textarea{-webkit-user-select:text;user-select:text}

.hall-link{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.hall-link a{display:inline-block;padding:10px 14px;background:#ffe631;color:#10141b;border-radius:8px;font-size:14px;font-weight:800;text-decoration:none;min-height:44px}.hall-link>span{font-size:12px}
.pinball .art{background:radial-gradient(ellipse,#5b4b27,#101b13)}.pinball .art img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:none}.preview-art.pinball{background:#0c1b12}.preview-art.pinball img{object-fit:cover;object-position:center 35%}

.pinball .art img{object-fit:cover;object-position:60% center}.preview-art.pinball img{object-fit:contain;object-position:center}.preview-art.pinball{background:radial-gradient(ellipse,#24432c,#050a07)}

.stopslop .art{background-image:linear-gradient(#0b112522,#0b1125aa),url('/play/stop-the-slop/assets/arena.webp')}
/* Give every selector card one image viewport, regardless of source aspect ratio. */
#selection .game-grid .game-card .art{height:86px;min-height:0;overflow:hidden;display:grid;place-items:center}
#selection .game-grid .game-card .art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;padding:5px;filter:drop-shadow(0 5px 6px #0008)}
@media(max-width:650px){#selection .game-grid .game-card .art{height:61px}}


#selection .game-card .play-count{display:block;color:#b8c4d6;font-size:12px;font-weight:500;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* Keep the home actions together and match the main site's wordmark glow. */
.site-header{justify-content:flex-start;gap:14px}
.site-header>a:first-child img{transition:filter .2s ease}
.site-header>a:first-child:hover img,.site-header>a:first-child:focus-visible img{filter:drop-shadow(0 0 5px #ffe430bb) drop-shadow(0 0 13px #ffe43066)}
@media(prefers-reduced-motion:reduce){.site-header>a:first-child img{transition:none}}

/* Neon Run keeps its poster art within the same card and feature image viewport. */
.neonrun .art,.preview-art.neonrun .art{background:radial-gradient(ellipse at 50% 40%,#174e67,#070e21 75%)}
#selection .game-grid .game-card.neonrun .art img,#preview-art.neonrun .art img{object-fit:contain;object-position:center;filter:none}

/* Compact game selectors; artwork belongs in the main preview above. */
#selection .game-grid .game-card .art{display:none}
#selection .game-grid{gap:10px}
#selection .game-card{opacity:1;background:#111b2b;border-color:#364359;border-radius:10px}
#selection .game-card .card-copy{padding:16px 10px;gap:7px;justify-content:center}
#selection .game-card h3{font-size:15px;line-height:1.3;min-height:39px;color:#f5f5ed}
#selection .game-card .play-count{font-size:12px;color:#aab9cc}
#selection .game-card .game-platform{min-height:0;padding:0;border:0;background:none;border-radius:0;font-size:12px;font-weight:500;line-height:1.4;color:#c4cbd8}
#selection .game-card:hover{border-color:#b7a84d;background:#1a283b}
#selection .game-card[aria-pressed=true]{border-color:#ffe430;background:#252718;box-shadow:inset 0 0 20px #ffe43008,0 0 12px #ffe43016}
#selection .game-card[aria-pressed=true] h3{color:#ffe430}
@media(max-width:650px){#selection .game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#selection .game-card .card-copy{padding:13px 8px;gap:6px}#selection .game-card h3{font-size:15px;min-height:39px}}

/* Show the complete Rift Breach landscape composition and its title. */
#preview-art.breach .art{background:#070c15}
#preview-art.breach .art img{padding:0;object-fit:contain;object-position:center}
@media(max-width:650px){#preview-art.breach .art{height:auto;min-height:0;aspect-ratio:1672/941}#preview-art.breach .art img{width:100%;height:auto;padding:0}}

/* All game artwork shares one landscape viewport as new covers arrive. */
#selection #preview-art{align-self:center;width:100%;min-width:0}
#selection #preview-art .art{position:relative;width:100%;height:auto;min-height:0;aspect-ratio:16/9;overflow:hidden}
#selection #preview-art .art img{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;object-fit:contain;object-position:center}

/* Creator credits and a consistent upper-right play counter. */
#selection .game-card .card-copy{padding:32px 10px 15px;gap:7px}
#selection .game-card .play-count{position:absolute;top:9px;right:11px;margin:0;font-size:11px;line-height:1.2;max-width:calc(100% - 22px);text-align:right}
#selection .game-card .creator-credit{font-size:12px;line-height:1.4;color:#b8c4d6;font-weight:400}
#selection .preview-copy #preview-creator{margin:0 0 12px;font-size:13px;line-height:1.4;color:#b8c4d6;font-weight:400}
@media(max-width:650px){#selection .game-card .card-copy{padding:30px 8px 13px}#selection .game-card .play-count{top:8px;right:9px}}

/* Full landscape covers need smooth downscaling, without sprite filters. */
#selection #preview-art .art img{image-rendering:auto;filter:none}
