:root{color-scheme:dark;font-family:system-ui,sans-serif;color:#ecfcff;background:#070b17;--accent:#70eff5;--gold:#ffe3aa}*{box-sizing:border-box}body{margin:0}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:var(--gold)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffe68d;outline-offset:5px}.skip{position:fixed;top:-70px;z-index:99}.skip:focus{top:8px}.opening{position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden}.opening>img{width:100%;height:100%;display:block}.cabinet{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);background:linear-gradient(155deg,#061a2ce6,#030c1de8);border:1px solid #4de9ff66;transform:perspective(500px) rotateY(var(--tilt,-3deg));color:#e8fcff;text-shadow:0 0 8px #22bbdd;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-decoration:none;padding:2%;font-family:system-ui;font-weight:800;box-shadow:inset 0 0 12px #3be4ff33}.cabinet strong{font-size:clamp(8px,1.35vw,23px);letter-spacing:.02em}.cabinet small{font-size:clamp(7px,.72vw,12px);line-height:1.3;color:#ade8ed;margin-top:9px}.cabinet:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#02081433 4px);pointer-events:none}.cabinet:hover,.cabinet:focus-visible{filter:brightness(1.5);border-color:#f5df98}.scene-door{position:absolute;left:89%;top:26%;width:10%;height:48%;border:0;background:transparent;text-decoration:none}.scene-door span{position:absolute;bottom:3%;left:0;right:0;font-size:12px;text-align:center;background:#101318b8;padding:6px;opacity:0}.scene-door:hover span,.scene-door:focus-visible span{opacity:1}.room-guide{position:absolute;left:42%;top:66%;width:12%;height:17%;border:0;background:linear-gradient(100deg,#bc9b67,#efe0b3,#ab7b43);color:#292017;box-shadow:2px 8px 15px #0008;transform:rotateX(25deg);font-size:clamp(8px,1.1vw,18px);font-weight:900}.floor-row{position:relative;min-height:570px;display:grid;grid-template-columns:repeat(3,1fr);gap:4vw;padding:7vw 10vw 5vw;background:linear-gradient(#030a1366,#030a1344),var(--room-art) center/cover}.floor-row:before{content:'THE CABINET FLOOR';position:absolute;left:0;right:0;top:22px;text-align:center;color:#a1f5f2;letter-spacing:.3em;font-size:14px;text-shadow:0 0 12px #0cd}.machine{position:relative;display:flex;flex-direction:column;min-height:370px;border:9px solid #141d29;border-bottom-width:30px;box-shadow:12px 14px 14px #0009,inset 0 0 0 2px #418c94;transform:perspective(1200px) rotateY(-4deg);background:linear-gradient(125deg,#244551,#111820 40%,#0e1620)}.machine .marquee{text-transform:uppercase;letter-spacing:.1em;color:#bef8f4;text-align:center;background:#071421;border-bottom:6px solid #101a24;padding:16px 7px;font-weight:900;text-shadow:0 0 9px #79fcfa;font-size:clamp(15px,1.6vw,23px)}.machine .screen-button{flex:1;margin:9px 13px 0;min-height:155px;position:relative;border:2px solid #54838b;border-radius:6px;background:linear-gradient(#07101a44,#07101a99),var(--screen-art) center/cover;display:flex;align-items:end;justify-content:center;padding:18px;text-align:center;color:white;text-decoration:none;font-weight:750;font-size:19px}.machine .deck{height:55px;background:linear-gradient(#36546a,#111e2c);border-top:4px solid #617380;display:flex;align-items:center;justify-content:space-around;gap:10px;transform:skewX(-2deg)}.stick-decoration{width:21px;height:21px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffcab1,#cc2645 45%,#4e0a1c 80%);box-shadow:0 7px 0 -6px #cad8e1,0 14px 0 -4px #172329}.button-decoration{width:19px;height:19px;background:#e7ab53;border-radius:50%;box-shadow:inset 0 2px 3px #fff9,0 2px 0 #8b622a}.machine .coin-slot{height:45px;text-align:center;color:#edc07e;font-size:11px;letter-spacing:.2em;padding-top:16px}.floor-row .exit-machine{grid-column:1/-1;justify-self:center;color:#fee1a5;background:#101415bd;padding:10px 24px;text-decoration:none;border-bottom:2px solid #b58d54}footer{padding:20px;text-align:center;font-size:12px;color:#b4c9d1}dialog{color:#e8faff;background:#061323;border:2px solid #6bc6d4;border-radius:10px;max-width:1000px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:18px}dialog::backdrop{background:#01050bee}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-head h1,.dialog-head h2{font-size:clamp(21px,3vw,32px);margin:0}.dialog-head small{letter-spacing:.2em;color:#a2f3f1}.tool-button,.main-button{background:#142e40;color:white;border:1px solid #6d9ead;min-height:44px;padding:9px 17px;border-radius:7px}.main-button{background:linear-gradient(#ffe5ad,#c9a86e);color:#172331;font-weight:850}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;font-variant-numeric:tabular-nums}.toolbar output{font-weight:800;color:#f8deaa}.arena{position:relative;width:100%;max-height:calc(100dvh - 400px);aspect-ratio:960/600;display:flex;justify-content:center;overflow:hidden;background:#02050c;border:4px solid #1d3549;border-radius:9px}.arena canvas{display:block;max-width:100%;max-height:100%;width:auto;height:100%;aspect-ratio:960/600;outline-offset:-5px}.controls{display:flex;align-items:center;justify-content:center;gap:24px;background:linear-gradient(#17374b,#081424);border-top:2px solid #7595aa;border-radius:6px;padding:10px}.arcade-stick{flex-shrink:0;position:relative;width:136px;height:136px;border-radius:50%;background:repeating-conic-gradient(#354f5e 0deg 1deg,#122534 2deg 44deg,#354f5e 45deg);box-shadow:inset 0 0 0 7px #7595a84a,inset 0 0 0 15px #06101c,0 4px 10px #0008;touch-action:none;user-select:none;cursor:grab;outline-offset:3px}.arcade-stick:before{content:'';position:absolute;width:67%;height:67%;left:16.5%;top:16.5%;background:radial-gradient(#011522,#0e2738);border-radius:50%;border:1px solid #87cddd66}.stick-knob{position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffd9b4,#dd3455 35%,#731629 80%);box-shadow:inset -4px -6px 6px #420716,0 5px 0 0 #19212e,0 8px 7px #000c;pointer-events:none}.stick-direction{position:absolute;left:0;right:0;bottom:-4px;text-align:center;font-size:10px;color:#d1f7ff}.action-button{width:105px;height:105px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffeec6,#d7a350 65%,#8f6126);box-shadow:0 6px 0 #6e4926,0 9px 8px #000b;border:4px solid #24333f;color:#192631;font-weight:900;font-size:17px;touch-action:none}.action-button:active,.action-button.held{transform:translateY(4px);box-shadow:0 2px 0 #6e4926}.pad-help{font-size:12px;max-width:220px;line-height:1.5;color:#c0d7df}.status{min-height:24px;margin:8px 0 0;color:#c3f2e9}details{margin-top:8px}summary{cursor:pointer;min-height:35px}#rulesText{line-height:1.5}#guideGames{display:grid;gap:8px;margin:20px 0}#guideGames button,#guideGames a{padding:10px;text-align:left;background:#18384b;color:#e8f5ff;border:1px solid #54818c;font:inherit}#guide p{line-height:1.5}.foundry{--accent:#ffbe6f}.foundry .cabinet{color:#ffe8cd;text-shadow:0 0 8px #b57b29;border-color:#ecb66b66}.embedded-frame{width:100%;height:calc(100dvh - 130px);border:0;display:block;background:#05101c}#externalPlay{width:calc(100vw - 12px);max-width:1500px;padding:10px}@media(max-width:700px){.opening{min-height:350px;aspect-ratio:1672/941}.opening>img{object-fit:fill}.cabinet strong{font-size:9px}.cabinet small{display:none}.floor-row{grid-template-columns:repeat(2,1fr);gap:22px 12px;padding:70px 16px 25px;min-height:500px}.machine{min-height:310px;border-width:6px}.machine .screen-button{margin:8px;min-height:120px;font-size:16px}.machine .marquee{font-size:14px;padding:12px 5px}.toolbar{gap:7px;font-size:13px}.toolbar button{padding:8px}.controls{gap:14px;padding:9px 5px}.arcade-stick{width:116px;height:116px}.action-button{width:85px;height:85px;font-size:15px}.pad-help{font-size:10px;max-width:130px}.arena{max-height:calc(100dvh - 310px);min-height:175px}.dialog-head{align-items:start}.dialog-head h1{font-size:21px}.dialog-head button{font-size:12px;padding:8px}dialog{padding:10px}.room-guide{width:15%;left:40%;font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

@media(max-height:500px) and (min-width:650px){#play .arena{width:calc(100% - 185px);min-height:120px;max-height:calc(100dvh - 175px)}#play .controls{position:absolute;right:12px;top:107px;width:170px;min-height:195px;flex-wrap:wrap;gap:4px;padding:4px}#play .arcade-stick{width:90px;height:90px}#play .action-button{width:62px;height:62px;font-size:12px}#play .pad-help{max-width:160px;font-size:10px}#play .toolbar{padding:6px 0}#play .status{max-width:calc(100% - 185px);font-size:11px}#play .dialog-head h1{font-size:20px}}

.floor-row .exit-machine{width:175px;height:260px;padding:207px 13px 10px;background:url(/casino-alley/assets/exit-door-v1.webp) center/contain no-repeat;border:0;text-align:center;font-size:12px;font-weight:800;text-shadow:0 1px 5px #000;display:flex;align-items:center}
.cabinet{padding:3px}.cabinet strong{font-size:clamp(7px,1.1vw,18px);line-height:1.1}.cabinet small{font-size:clamp(6px,.62vw,10px);line-height:1.1;margin-top:3px}.room-guide{background:url('/scene-flow/assets/guest-book-v1.webp') center/contain no-repeat;box-shadow:none;color:#e9d3a0;text-shadow:0 1px 3px #000;transform:rotate(-5deg);font-size:clamp(7px,.85vw,14px);padding:0 7px}

.cabinet strong{overflow-wrap:anywhere;max-width:100%}

/* Additional physical cabinets sit on the existing floor; existing six screens stay in place. */
.foreground-cabinet{top:auto;bottom:1.5%;width:12%;height:auto;aspect-ratio:538/1007;background:url('/retro-arcades/assets/batch2-cabinets.webp') var(--cabinet-position) 42% / 285.5% 101.7% no-repeat;border:0;box-shadow:none;transform:none;padding:0;color:#e8fcff;filter:drop-shadow(4px 10px 7px #0009)}
.foreground-cabinet:before{display:none}.foreground-cabinet strong{position:absolute;left:21%;top:21%;width:61%;height:23%;display:flex;align-items:center;justify-content:center;padding:2px;font-size:clamp(6.5px,.9vw,16px);line-height:1.05}.foreground-cabinet small{display:none}.foreground-cabinet:hover,.foreground-cabinet:focus-visible{filter:brightness(1.25) drop-shadow(0 0 8px #f3dd98)}
