/* Physical room first. Compact wayfinding, modeled on cabinet frontends. */
:root{--cream:#f0dfb8;--paper:#ddd1ac;--ink:#211d17;--gold:#e2ae58}
body{background:#17130f}
#arcade::after{content:"";position:absolute;inset:auto 0 0;height:130px;background:linear-gradient(transparent,#100d09b8);pointer-events:none;z-index:1}
.room-credit,.room-tools,.room-invitation,.look{z-index:2}
.room-scene{transition:transform .65s ease,filter .4s}
.approaching .room-scene{filter:brightness(.6)}
.room-invitation{bottom:28px;gap:4px;font:700 13px/1.5 'Courier New',monospace;letter-spacing:.18em;color:#f6e9cc;text-shadow:0 2px 4px #000,0 0 12px #000}
.room-invitation small{display:block;font:11px/1.5 'Courier New',monospace;letter-spacing:.02em;color:#d4c5a4}
.room-credit{position:absolute;bottom:24px;left:max(26px,env(safe-area-inset-left));display:flex;flex-direction:column;color:#efe2c3;text-shadow:0 1px 5px #000;pointer-events:none}
.room-credit strong{font:900 italic 25px/1.1 'Arial Black',sans-serif;letter-spacing:-1px}
.room-credit span{margin-top:6px;font:10px/1.4 'Courier New',monospace;letter-spacing:.12em}
.room-tools{right:max(24px,env(safe-area-inset-right));bottom:20px;gap:18px}
.quiet-button{display:flex;gap:7px;padding:8px 2px;background:transparent;min-height:44px;font:700 10px/1.3 'Courier New',monospace;letter-spacing:.07em;color:#f0e1be}
.quiet-button i{font-size:17px}.quiet-button:hover{background:transparent;color:#ffd796;text-decoration:underline;text-underline-offset:5px}
.machine-label{background:#191713ed;color:#f4e6c4;border:1px solid #8e8061;padding:8px 12px;box-shadow:none;font:700 12px/1.4 'Arial Narrow','Helvetica Neue',sans-serif;letter-spacing:.04em}
.machine-label small{font:10px/1.6 'Courier New',monospace;color:#d4b36b;letter-spacing:.1em}
.machine:focus-visible{outline:2px solid #e2ae58;outline-offset:1px}
.look{border:1px solid #e6c58a5c;background:#17130fb8;border-radius:0}
dialog::backdrop{background:#0807058f;backdrop-filter:none}
.cabinet-dialog{width:min(380px,calc(100vw - 32px));background:#1b1a16;color:#ece1c6;border:1px solid #8d7750;border-radius:0;transform:none;box-shadow:0 16px 60px #0009}
.cabinet-note{padding:34px 30px 26px}
.note-kicker{font:11px/1.6 'Courier New',monospace;letter-spacing:.1em;color:#b5a481;margin:0 0 20px}
.cabinet-dialog h1{font:800 32px/1.02 'Arial Narrow','Helvetica Neue',Arial,sans-serif;letter-spacing:-.035em;padding:0 14px 18px 0;border-bottom:1px solid #675a40}
.original-name{display:none}
.availability{font:700 10px/1.4 'Courier New',monospace;letter-spacing:.2em;color:#dfb466;margin-top:20px}
.game-description{font:13px/1.7 'Helvetica Neue',Arial,sans-serif;color:#d3c7ac;margin:10px 0 24px}
.play-button{border:1px solid #e1b364;border-radius:0;background:#d5a24d;color:#1c180f;font:800 12px/1.4 'Courier New',monospace;letter-spacing:.06em;min-height:48px;padding:14px 16px}
.play-button:hover{background:#edbd6c}.play-button:active{background:#b9883e}
.coin-note{font:10px/1.6 'Courier New',monospace;color:#aa9d80;margin-top:12px}
.close-button{width:44px;height:44px;right:4px;top:4px;color:#d6c7a7}
.help-dialog{background:#ddd1ac;border:1px solid #63563b;border-radius:0;color:#29231a;box-shadow:0 16px 60px #0009}
.help-dialog h2{font:800 29px/1.05 'Arial Narrow','Helvetica Neue',sans-serif;letter-spacing:-.03em;text-transform:uppercase}
.help-dialog .note-kicker{color:#68583b}.help-dialog .close-button{color:#29231a}
.help-dialog p:not(.note-kicker){font:13px/1.7 'Helvetica Neue',Arial,sans-serif}
.play-top{background:#191712;border-color:#625236;color:#ded0b0}.play-top button{font:700 10px/1.3 'Courier New',monospace;letter-spacing:.04em}
.approaching .room-credit{opacity:0}
@media(max-width:700px){
 .room-credit{left:18px;bottom:calc(71px + env(safe-area-inset-bottom))}.room-credit strong{font-size:23px}.room-credit span{font-size:9px}
 .room-tools{left:18px;right:18px;bottom:max(14px,env(safe-area-inset-bottom));justify-content:space-between}
 .room-invitation{left:auto;right:18px;bottom:calc(72px + env(safe-area-inset-bottom));transform:none;width:auto;max-width:50%;align-items:flex-end;text-align:right;font-size:11px;letter-spacing:.09em;gap:3px}
 .room-invitation small{font-size:10px}.cabinet-dialog{margin:auto 16px 135px auto;max-height:calc(100svh - 160px)}
 .cabinet-note{padding:30px 24px 22px}.cabinet-dialog h1{font-size:29px}
}
@media(max-height:500px){
 .room-credit{bottom:15px;left:20px}.room-credit strong{font-size:20px}.room-credit span{font-size:9px;margin-top:3px}
 .room-invitation{left:50%;right:auto;bottom:17px;transform:translateX(-50%);align-items:center;text-align:center;max-width:35%;font-size:11px}.room-invitation small{font-size:9px}
 .room-tools{left:auto;right:20px;bottom:12px;gap:14px}.quiet-button{font-size:9px}
 .cabinet-dialog{margin:auto 20px auto auto;max-height:calc(100svh - 24px)}.cabinet-note{padding:25px 24px 18px}.note-kicker{margin-bottom:10px}.cabinet-dialog h1{font-size:26px;padding-bottom:12px}.availability{margin-top:12px}.game-description{margin:6px 0 14px}.coin-note{margin-top:8px}
}

.room-invitation #pan-hint{display:none}
@media (hover:none),(max-width:700px){.room-invitation #pan-hint{display:block}.room-invitation #keyboard-hint{display:none}}

/* The legal notice belongs inside the room, below its wayfinding. */
:root{--legal-height:48px;--scene-height:100svh}
#arcade{height:var(--scene-height)}
.legal-footer{position:absolute;z-index:2;inset:auto 0 0;min-height:var(--legal-height);padding:8px max(18px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));color:#c6baa1;text-shadow:0 1px 3px #000;background:linear-gradient(transparent,#100d09b8);text-align:center;font:10px/1.5 'Helvetica Neue',Arial,sans-serif;pointer-events:none}
.legal-footer p{margin:0 auto;max-width:1000px}
.room-credit{bottom:calc(24px + var(--legal-height))}.room-tools{bottom:calc(20px + var(--legal-height))}.room-invitation{bottom:calc(28px + var(--legal-height))}
@media(max-width:700px){
 :root{--legal-height:96px}
 .legal-footer{font-size:9px;line-height:1.5;padding-top:7px}
 .room-credit{bottom:calc(71px + var(--legal-height) + env(safe-area-inset-bottom))}
 .room-tools{bottom:calc(14px + var(--legal-height) + env(safe-area-inset-bottom))}
 .room-invitation{bottom:calc(72px + var(--legal-height) + env(safe-area-inset-bottom))}
}
@media(max-height:500px){
 :root{--legal-height:44px}
 .legal-footer{font-size:8px;line-height:1.4;padding-top:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}
 .room-credit{bottom:calc(15px + var(--legal-height))}.room-tools{bottom:calc(12px + var(--legal-height))}.room-invitation{bottom:calc(17px + var(--legal-height))}
}

/* Reuse the visitor sign's actual enamel and brass frame, cropped in CSS. */
.machine-label,.cabinet-dialog,.help-dialog{
 background-color:#191813;
 background-image:url('assets/visitor-sign.png');
 background-size:135.6% 179.1%;
 background-position:50% 58.5%;
 background-repeat:no-repeat;
 border:0;
 color:#edcf8b;
}
.machine-label{
 padding:16px 22px 14px;border-radius:7px;
 box-shadow:0 8px 16px #0009;
 font:700 13px/1.35 'Courier New',monospace;
 letter-spacing:.08em;text-shadow:0 1px 2px #000;
}
.machine-label small{color:#c2a778;font:10px/1.8 'Courier New',monospace;letter-spacing:.18em;margin-top:3px}
.cabinet-dialog,.help-dialog{
 border-radius:13px;
 box-shadow:0 18px 55px #000b;
}
.cabinet-note{padding:48px 34px 32px}
.cabinet-dialog .note-kicker,.help-dialog .note-kicker{font:10px/1.6 'Courier New',monospace;letter-spacing:.15em;color:#c6ac78;padding-right:26px}
.cabinet-dialog h1,.help-dialog h2{
 font:700 28px/1.15 'Courier New',monospace;
 letter-spacing:.035em;text-shadow:0 1px 2px #000;
 color:#efd59a;border:0;padding:0 4px 0 0;
}
.cabinet-dialog .availability{color:#d5b16d;font:700 10px/1.5 'Courier New',monospace;letter-spacing:.18em;margin-top:23px}
.game-description,.help-dialog p:not(.note-kicker){color:#d0c3a5;font:13px/1.8 'Helvetica Neue',Arial,sans-serif}
.cabinet-dialog .play-button{
 border:1px solid #b69654;border-radius:4px;
 background:linear-gradient(#c3a05f,#a58448);
 box-shadow:inset 0 1px 0 #f0d18d88,inset 0 -2px 0 #65502f,0 3px 8px #0007;
 color:#211b11;text-shadow:0 1px 0 #e4c27d66;
 font:700 12px/1.4 'Courier New',monospace;letter-spacing:.09em;
}
.cabinet-dialog .play-button:hover{background:linear-gradient(#d7b775,#b18c4c)}
.cabinet-dialog .play-button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #60452080}
.coin-note{color:#b09c74;line-height:1.7}
.cabinet-dialog .close-button,.help-dialog .close-button{top:28px;right:18px;color:#cfb376;border-radius:50%;background:#12120e60}
.cabinet-dialog .close-button:hover,.help-dialog .close-button:hover{color:#ffe1a0;background:#42351d80}
.cabinet-dialog button:focus-visible,.help-dialog button:focus-visible{outline:2px solid #e8c780;outline-offset:2px}
.help-dialog{padding:40px 34px 30px}
@media(max-width:700px){.cabinet-note{padding:44px 29px 29px}.cabinet-dialog h1,.help-dialog h2{font-size:25px}.machine-label{padding:14px 20px}}
@media(max-height:500px){.cabinet-note{padding:27px 29px 24px}.cabinet-dialog h1{font-size:24px}.cabinet-dialog .availability{margin-top:15px}.game-description{margin:8px 0 16px}}

/* Native dimensions of the integrated hero: 1512 × 1040. */
.room-scene{width:max(100vw,calc(100svh * 1.453846154));height:max(100svh,calc(100vw / 1.453846154));top:min(0px,calc((100svh - 100vw / 1.453846154) / 2))}

.game-guide-links{margin-bottom:8px}.game-guide-links a{color:inherit;text-underline-offset:3px}
