@font-face{font-family:'Bungee';font-weight:400;font-display:swap;src:url(/assets/fonts/Bungee-400.woff2) format('woff2')}
@font-face{font-family:'Bungee Inline';font-weight:400;font-display:swap;src:url(/assets/fonts/BungeeInline-400.woff2) format('woff2')}
@font-face{font-family:'Jersey 10';font-weight:400;font-display:swap;src:url(/assets/fonts/Jersey10-400.woff2) format('woff2')}
@font-face{font-family:'Saira SC';font-weight:400;font-display:swap;src:url(/assets/fonts/SairaSemiCondensed-400.woff2) format('woff2')}
@font-face{font-family:'Saira SC';font-weight:600;font-display:swap;src:url(/assets/fonts/SairaSemiCondensed-600.woff2) format('woff2')}
@font-face{font-family:'Saira SC';font-weight:800;font-display:swap;src:url(/assets/fonts/SairaSemiCondensed-800.woff2) format('woff2')}
:root{
  --hall:#4A2A6B;--hall-deep:#2A1640;--hall-dot:#563479;--hall-mid:#3A1F57;--red:#E73634;--red-d:#A51A29;--lamp:#D6963A;--lamp-off:#6E4860;--cab:#2747C9;--cream:#FFF1C2;--ink:#0E0F38;--amber:#FFB21E;
  --ch1:#E8ECF5;--ch2:#A4ACC8;--ch3:#4B5370;--tc:#B9C3D9;--tu:#8FD11E;--tr:#19C3E6;--te:#E8368F;--tg:#FFD23F;--sore:#E8413A;
  --gut:16px;--hud:60px;
  --coin:url(/assets/px/lamps-coin-r0c4.png) 16 16;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:var(--hud);-webkit-text-size-adjust:100%;background:var(--hall-deep)}
html.modal{overflow:hidden}
body{margin:0;min-height:100vh;color:var(--cream);font:400 17px/1.5 'Saira SC',system-ui,sans-serif;background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px;image-rendering:auto;cursor:var(--coin),auto;overflow-x:hidden}
img{max-width:100%}
.px,canvas,[src*="/assets/px/"]{image-rendering:pixelated;image-rendering:crisp-edges}
a{color:inherit}
a,button,[role=button],[onclick],summary,label[for],.ca,.ca-row,select{cursor:pointer}
button{font:inherit;color:inherit;background:none;border:0;padding:0}
input,select{font:inherit}
.j{font-family:'Jersey 10',monospace;text-transform:uppercase;letter-spacing:.04em;font-weight:400}
.bi{font-family:'Bungee Inline','Bungee',sans-serif;font-weight:400}
.bn{font-family:'Bungee',sans-serif;font-weight:400}
.num{font-family:'Saira SC',sans-serif;font-variant-numeric:tabular-nums;font-weight:800}
.skip{position:absolute;left:-999px;top:0}
.skip:focus{left:8px;top:8px;z-index:99;background:var(--cream);color:var(--ink);padding:8px 12px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
/* ---------------------------------------------------------------- HUD */
.hud{position:fixed;inset:0 0 auto 0;height:var(--hud);z-index:40;display:flex;align-items:center;gap:20px;padding:0 max(var(--gut),env(safe-area-inset-left));
  background:var(--hall-deep) url(/assets/px/lattice-deep.png) 0 0/24px 24px;border-bottom:2px solid var(--ch3);box-shadow:0 2px 0 #1a0d2a}
.hud-brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.hud-brand img{width:32px;height:32px}
.hud-brand .bi{font-size:22px;color:var(--cream);letter-spacing:.02em}
.tick{font:800 15px 'Saira SC';color:var(--amber);font-variant-numeric:tabular-nums}
.hud-nav{display:flex;gap:4px;margin-left:auto}
.hud-nav a{text-decoration:none;padding:8px 10px;font-size:21px;color:var(--ch1);transition:color .15s}
.hud-nav a:hover{color:var(--amber)}
.hud-act{display:flex;gap:10px;align-items:center}
/* arcade push button: sprite cap + engraved label */
.pbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;min-height:44px;padding:4px 12px 4px 4px;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2);color:var(--cream);transition:transform .12s steps(2)}
.pbtn .lb{font-size:22px;line-height:1;display:inline-flex;align-items:center;gap:6px}
.pbtn .lb svg{width:15px;height:15px}
.cap{position:relative;display:inline-block;width:34px;height:34px;flex:none}
.cap img{position:absolute;inset:0;width:34px;height:34px}
.cap .dn,.cap .off{opacity:0}
.pbtn:hover{transform:translateY(-2px)}
.pbtn:hover .lb{color:var(--amber)}
.pbtn:active{transform:translateY(1px)}
.pbtn:active .up{opacity:0}.pbtn:active .dn{opacity:1}
.lnk{display:inline-flex;align-items:center;min-height:40px;padding:4px 12px;text-decoration:none;background:var(--hall-deep);border:2px solid var(--ch3);border-top-color:var(--ch2);font-size:20px;color:var(--ch1);transition:transform .12s steps(2),color .12s}
.lnk:hover{transform:translateY(-2px);color:var(--amber)}
.lnk:active{transform:translateY(1px)}
/* radio bank of push buttons */
.bank{display:flex;flex-wrap:wrap;gap:6px}
.pb{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:3px 10px 3px 4px;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2);transition:transform .12s steps(2)}
.pb .j{font-size:20px;color:var(--ch2)}
.pb:hover{transform:translateY(-2px)}
.pb:hover .j{color:var(--cream)}
.pb[aria-checked=true]{transform:translateY(1px);border-color:var(--amber)}
.pb[aria-checked=true] .up{opacity:0}.pb[aria-checked=true] .dn{opacity:1}
.pb[aria-checked=true] .j{color:var(--amber)}
.pb.lock .up{opacity:0}.pb.lock .off{opacity:1}
.pb.lock .j::after{content:" $150";color:var(--ch3)}
.bank-sm .pb{min-height:38px}.bank-sm .pb .j{font-size:18px}
/* engraved name plate input */
.plate-in{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;background:#0b0c2a;border:2px solid var(--ch3);border-bottom-color:var(--ch2);cursor:text}
.plate-in .j{font-size:19px;color:var(--amber)}
.plate-in input,.plate-in select{background:transparent;border:0;color:var(--cream);font:600 16px 'Saira SC';min-width:0;width:150px;caret-color:var(--amber);padding:8px 0;outline:0;appearance:none;-webkit-appearance:none}
.plate-in select{cursor:pointer;width:170px}
.plate-in select option{background:var(--ink)}
.plate-in input::placeholder{color:var(--ch3)}
.plate-in:focus-within{border-color:var(--amber)}
.plate-in input::-webkit-search-cancel-button{display:none}
/* the coin-door button (primary) */
.insert{display:inline-grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;text-decoration:none;padding:12px 22px 12px 16px;min-height:64px;
  background:var(--cream);color:var(--ink);border:3px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:var(--ch3);transition:transform .12s steps(2)}
.insert .slot{grid-row:1/3;width:8px;height:38px;background:var(--ink);border:2px solid var(--ch3);border-right-color:var(--ch1)}
.insert .ins-k{font-size:18px;color:#6b4a9a;line-height:1}
.insert .ins-v{font-size:24px;line-height:1.05}
.insert:hover{transform:translateY(-3px)}
.insert:active{transform:translateY(2px)}
.insert-sm{min-height:54px;padding:8px 18px 8px 12px}.insert-sm .ins-v{font-size:19px}
/* CA */
.ca{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start;padding:10px 12px;background:#0b0c2a;border:2px solid var(--ch3);border-top-color:#2a2d55;text-align:left;transition:border-color .15s}
.ca-k{font-size:22px;color:var(--amber);line-height:1.1}
.ca-v{grid-column:2;font:600 15px/1.35 'Saira SC';color:var(--cream);overflow-wrap:anywhere;word-break:break-all;font-variant-numeric:tabular-nums}
.ca-c{grid-column:2;font-size:18px;color:var(--ch2)}
.ca:hover{border-color:var(--amber)}.ca:hover .ca-c{color:var(--amber)}
.ca.ok{border-color:var(--tu)}.ca.ok .ca-c{color:var(--tu)}
.ca-slot{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;padding:10px 12px;background:#0b0c2a;border:2px solid var(--ch3);border-top-color:#2a2d55}
.ca-slot .pend{white-space:nowrap;font:400 17px 'Bungee';color:var(--ink);background:var(--cream);padding:6px 12px;transform:rotate(-1.5deg);justify-self:start;letter-spacing:.02em}
.ca-tape{position:absolute;right:16px;top:4px;width:44px;height:14px;background:rgba(255,210,63,.55);transform:rotate(8deg);z-index:1}
/* ---------------------------------------------------------------- entrance */
.entrance{position:relative;min-height:100svh;padding:calc(var(--hud) + 28px) var(--gut) 0;overflow:hidden;background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px}
.entrance::before{content:"";position:absolute;left:0;right:0;top:46%;height:10px;background:var(--ch3);border-top:2px solid var(--ch2);border-bottom:4px solid #1a0d2a}
.wall{position:absolute;inset:var(--hud) 0 54% 0;background:url(/assets/px/lattice-deep.png) 0 0/24px 24px}
.far{position:absolute;left:0;right:-60%;bottom:0;height:170px;background:url(/assets/px/cabinet.png) 0 100%/76px 170px repeat-x;opacity:.12;will-change:transform}
.string{position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,var(--lamp-off) 0 12px,transparent 12px 40px)}
.string::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--lamp) 0 12px,transparent 12px 40px);animation:chase 1.2s steps(1) infinite}
.string.s1{top:22%}.string.s2{top:62%;background-position:20px 0}.string.s2::after{background-position:20px 0;animation-delay:-.6s}
@keyframes chase{0%,49%{opacity:1}50%,100%{opacity:0}}
.ent-in{position:relative;max-width:1560px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.sign{position:relative;padding:22px;margin-top:6px;background:var(--ch3);border:4px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:#2e3350}
.sign-face{display:flex;align-items:center;gap:clamp(10px,2vw,30px);background:var(--cream);padding:8px 34px 10px;border:3px solid #e2cf96;border-top-color:#fffbe6}
.sign-sym{width:84px;height:128px;flex:none}
@media (max-height:820px) and (min-width:641px){.sign-sym{width:42px;height:64px}.changer-px{display:none}.changer-plate{margin:0 0 26px}.ent-cabs{display:none}.floor-row{grid-template-columns:auto auto;justify-content:center;gap:40px}}
.brand{margin:0;font-size:clamp(46px,min(10.4vw,16vh),156px);line-height:1;color:var(--ink);letter-spacing:.01em;white-space:nowrap}
.sign-bulbs{position:absolute;inset:0;pointer-events:none}
.bulb{position:absolute;width:27px;height:35px;transform:translate(-50%,-50%)}
.bulb img{position:absolute;inset:0;width:27px;height:35px}
.bulb .b-on{opacity:0}
.sign-bulbs[data-s="0"] .bulb[data-k="0"] .b-on,.sign-bulbs[data-s="1"] .bulb[data-k="1"] .b-on,.sign-bulbs[data-s="2"] .bulb[data-k="2"] .b-on{opacity:1}
.ent-line{margin:26px 0 0;font:600 clamp(18px,1.7vw,24px)/1.3 'Saira SC';text-align:center;color:var(--cream);max-width:44ch;position:relative}
.floor-row{width:100%;display:grid;grid-template-columns:auto auto auto;justify-content:space-between;align-items:end;gap:24px;margin-top:auto;padding-top:28px}
.ent-in{min-height:calc(100svh - var(--hud) - 28px)}
.changer{display:flex;align-items:flex-end;gap:0}
.changer-px{width:172px;height:358px;flex:none;position:relative;z-index:1}
.changer-plate{width:330px;margin:0 0 26px -6px;padding:14px;background:var(--ink);border:3px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:var(--ch3);display:flex;flex-direction:column;gap:12px}
.changer-btns{display:flex;flex-wrap:wrap;gap:8px}
.ent-mid{display:flex;flex-direction:column;align-items:center;gap:18px;padding-bottom:26px}
.hiscore{display:grid;grid-template-columns:repeat(3,auto);gap:0;background:var(--ink);border:3px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:var(--ch3)}
.hs-row{display:flex;flex-direction:column;align-items:center;padding:10px 16px;border-right:2px solid #22254a}
.hs-row:last-child{border-right:0}
.hs-row .j{font-size:19px;color:var(--amber);line-height:1}
.hs-row .num{font-size:clamp(26px,2.4vw,38px);line-height:1.1;color:var(--cream)}
.num{white-space:nowrap}
.rc{display:inline-block;overflow:hidden;height:1.1em;vertical-align:top;position:relative}
.rc>span{display:block;height:1.1em}
.rc-go>span{animation:rollup .42s cubic-bezier(.3,1.4,.5,1) var(--d,0ms) both}
@keyframes rollup{from{transform:translateY(0)}to{transform:translateY(-100%)}}
.fine-ticket{margin:0;max-width:360px;font:600 13px/1.35 'Saira SC';color:var(--ink);background:var(--tg);padding:7px 18px;text-align:center;
  -webkit-mask:radial-gradient(circle 5px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 5px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 5px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 5px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat}
.ent-cabs{display:flex;gap:12px;align-items:flex-end;min-height:340px;justify-content:center}
.ecab{position:relative;width:152px;height:340px;flex:none}
.ecab canvas,.cab canvas{display:block;width:100%;height:100%}
/* marquee word + price over the native cabinet: face 12..64 x 6..26, plate 15..40 x 113..124 (of 76 x 170) */
.mq{position:absolute;left:15.79%;top:3.53%;width:68.42%;height:11.76%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.mq-w{color:var(--ink);font-size:calc(var(--s,2) * 7px);line-height:1;white-space:nowrap}
.mq-w.long{font-size:calc(var(--s,2) * 5px)}
.price{position:absolute;left:19.74%;top:66.47%;width:32.9%;height:6.47%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--s,2) * 6.5px);line-height:1;color:var(--cream);pointer-events:none}
.ecab{--s:2}
/* ---------------------------------------------------------------- the row */
.row-scene{position:relative;background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px}
.row-pin{display:flex;flex-direction:column;padding-top:calc(var(--hud) + 12px);min-height:100svh}
.row-scene.pinned .row-pin{position:sticky;top:0;height:100vh;min-height:0;overflow:hidden}
.row-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;padding:0 var(--gut) 12px;max-width:1800px;width:100%;margin:0 auto;position:relative;z-index:2}
.dial{display:flex;align-items:center;gap:10px}
.dial-knob{width:84px;height:52px;display:grid;place-items:center;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2);transition:transform .12s steps(2)}
.dial-knob img{width:auto;height:auto;max-width:80px;max-height:56px;transform:scale(2);transform-origin:center;image-rendering:pixelated}
.dial-knob:hover{transform:translateY(-2px)}
.dial-opts{display:flex;flex-wrap:wrap;gap:2px}
.dial-o{min-height:40px;padding:4px 10px;background:transparent;border-bottom:3px solid transparent;transition:color .12s}
.dial-o .j{font-size:21px;color:var(--ch2)}
.dial-o:hover .j{color:var(--cream)}
.dial-o[aria-checked=true]{border-bottom-color:var(--amber)}
.dial-o[aria-checked=true] .j{color:var(--amber)}
.row-view{flex:1;position:relative;overflow:hidden;display:flex;align-items:center}
.row-scene:not(.pinned) .row-view{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.row-scene:not(.pinned) .row-view::-webkit-scrollbar{display:none}
.row-track{display:flex;align-items:flex-end;gap:22px;padding:0 max(var(--gut),calc(50vw - 900px)) 6px;will-change:transform}
@media (max-width:640px){.row-scene:not(.pinned) .row-track{padding:0 calc(50vw - min(42vw,160px))}}
.bay{flex:none;width:calc(76px * var(--s,3) + 44px);min-width:268px;display:flex;flex-direction:column;align-items:center;scroll-snap-align:center}
.bay-wait{height:60vh;display:grid;place-items:center;font-size:28px;color:var(--ch2);width:min(600px,90vw)}
.cab{position:relative;width:calc(76px * var(--s,3));height:calc(170px * var(--s,3))}
.crank{position:absolute;left:56.6%;top:64.7%;width:36.8%;height:16.5%;border-radius:40%}
.crank::after{content:"Crank";position:absolute;left:50%;bottom:100%;transform:translate(-50%,4px);font:400 18px 'Jersey 10';text-transform:uppercase;color:var(--ink);background:var(--tg);padding:1px 8px;opacity:0;transition:opacity .15s,transform .15s;pointer-events:none;white-space:nowrap}
.crank:hover::after,.crank:focus-visible::after{opacity:1;transform:translate(-50%,-2px)}
.drop{position:absolute;left:34%;top:88%;width:calc(21px * var(--s,3));height:calc(22px * var(--s,3));background:url(/assets/px/capsules-r0c0.png) 0 0/100% 100%;image-rendering:pixelated;opacity:0;pointer-events:none;transform:translate(-25%,-60%)}
.drop.t1{background-image:url(/assets/px/capsules-r0c3.png)}.drop.t2{background-image:url(/assets/px/capsules-r0c2.png)}.drop.t3{background-image:url(/assets/px/capsules-r0c1.png)}
.drop.go{animation:drop .78s steps(10) forwards}
@keyframes drop{0%{opacity:0;transform:translate(-25%,-90%)}25%{opacity:1;transform:translate(-25%,-40%)}45%{transform:translate(-25%,-62%)}60%{transform:translate(-25%,-40%)}80%{opacity:1;transform:translate(-25%,-40%) scale(1.2)}100%{opacity:0;transform:translate(-25%,-40%) scale(1.5)}}
.board{width:100%;margin-top:8px;padding:8px 12px 8px;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2);font:600 15px/1.25 'Saira SC';font-variant-numeric:tabular-nums}
.bd-h{display:grid;grid-template-columns:62px 1fr 1fr;align-items:end;gap:4px;margin-bottom:4px}
.bd-h .j{font-size:17px;color:var(--ch2);line-height:1}
.bd-h .j:first-child{grid-column:2}
.bd-n{grid-column:1;grid-row:1;color:var(--amber)!important}
.bd-n b{font-size:15px;color:var(--cream)}
.tr{display:grid;grid-template-columns:62px 1fr 1fr;grid-template-rows:auto 6px;column-gap:4px;align-items:center;padding:0 0 4px}
.tr .tn{font-size:18px;line-height:1}
.t-e .tn{color:var(--te)}.t-r .tn{color:var(--tr)}.t-u .tn{color:var(--tu)}.t-c .tn{color:var(--tc)}
.tr .st{color:var(--ch2);font-weight:600}
.tr .pu{color:var(--cream)}
.tr.small .pu{color:var(--ch3);font-weight:600}
.tr.near .pu,.tr.out .pu{text-decoration:underline dotted var(--amber) 2px;text-underline-offset:3px}
.bar{grid-column:1/-1;position:relative;height:6px;background:#22254a;margin-top:1px}
.bar i{position:absolute;top:0;height:6px}
.band{opacity:.45}
.dot{width:6px;margin-left:-3px}
.tick{width:2px;top:-3px!important;height:12px!important;background:var(--amber);margin-left:-1px}
.t-e .band,.t-e .dot{background:var(--te)}.t-r .band,.t-r .dot{background:var(--tr)}.t-u .band,.t-u .dot{background:var(--tu)}.t-c .band,.t-c .dot{background:var(--tc)}
.bd-ev{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin-top:4px;padding-top:5px;border-top:2px solid #22254a}
.bd-ev .j{font-size:19px;color:var(--amber)}
.ev-v{font-size:28px;line-height:1;color:var(--cream)}
.ev-c{flex-basis:100%;font-size:13px;color:var(--ch2)}
.ev-c b{font-size:14px;color:var(--ch1)}
.bd-dry{display:flex;flex-wrap:wrap;column-gap:8px;align-items:baseline;margin-top:4px}
.bd-dry b{font-size:22px;color:var(--te)}
.bd-dry span{font-size:13px;color:var(--ch1)}
.bd-dry span.num{font-size:13px;font-weight:600;color:var(--ch2)}
.bd-tag{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-top:3px;font-size:12px;color:var(--ch2)}
.bd-tag .j{font-size:17px;color:var(--ch1)}
.tag-above .j{color:var(--amber)}.tag-below .j{color:var(--tr)}
.bd-part{margin:5px 0 0;font-size:12px;color:var(--ch2)}
.bay-go{margin-top:4px;font-size:20px;text-decoration:none;color:var(--ch1);padding:4px;transition:color .12s}
.bay-go:hover{color:var(--amber)}
.bay-go .j::after{content:" >"}
.row-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px var(--gut) 10px;max-width:1800px;width:100%;margin:0 auto}
.row-note{margin:0;font-size:12px;color:var(--ch2);flex:1 1 260px;max-width:440px}
.row-meter{flex:1 1 200px;height:8px;background:var(--hall-deep);border:2px solid var(--ch3)}
.row-meter i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--amber) 0 8px,transparent 8px 12px);transform:scaleX(0);transform-origin:0 50%}
/* ---------------------------------------------------------------- scenes below the row */
.scene{position:relative;padding:80px var(--gut)}
.sc-in{max-width:1500px;margin:0 auto}
.sc-h{margin:0 0 26px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px}
.sc-h .bi{font-size:clamp(34px,4.4vw,60px);line-height:1;color:var(--cream)}
.sc-h small{font:400 16px/1.4 'Saira SC';color:var(--ch2);max-width:52ch}
.rail{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--ch3) transparent;padding:30px 0 12px;overscroll-behavior-x:contain}
.rail{cursor:grab}
.dial-opts,.bank{cursor:pointer}
.rail.drag{cursor:grabbing;user-select:none}
.rail-track{display:flex;gap:16px;width:max-content;min-width:100%;align-items:flex-end}
.rail-empty{font-size:24px;color:var(--ch2);padding:40px 8px;margin:0}
.events{background:linear-gradient(var(--hall-deep),var(--hall-deep)) 0 0/100% 58% no-repeat,var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px;border-top:4px solid #1a0d2a}
.evc{display:flex;flex-direction:column;align-items:center;gap:8px;width:176px;flex:none;text-decoration:none}
.evc-px{position:relative;width:152px;height:340px;--s:2}
.evc-px canvas{width:152px;height:340px;display:block;image-rendering:pixelated}
.evc-px .mq-w{position:absolute;left:15.79%;top:3.53%;width:68.42%;height:11.76%;display:flex;align-items:center;justify-content:center}
.evc-n{font:600 14px/1.25 'Saira SC';text-align:center;color:var(--ch1);min-height:2.5em}
.evc-d{display:flex;gap:10px}
.evc-d span{display:flex;flex-direction:column;align-items:center}
.evc-d i{font-style:normal;font-size:16px;color:var(--amber);line-height:1}
.evc-d b{font-size:17px}
.evc:hover .evc-px{transform:translateY(-4px)}
.evc-px{transition:transform .15s steps(3)}
.prizes{background:var(--hall-deep) url(/assets/px/lattice-deep.png) 0 0/24px 24px}
.shelf{margin-bottom:36px;padding:16px 16px 0;background:var(--hall-mid);border-top:3px solid var(--ch2)}
.shelf::after{content:"";display:block;height:12px;margin:0 -16px;background:var(--ch2);border-top:3px solid var(--ch1);border-bottom:5px solid var(--ch3)}
.shelf-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:14px}
.shelf-t{font-size:34px;color:var(--amber);line-height:1}
.shelf-r{font-size:14px;color:var(--ch2)}
.slip{flex:none;position:relative;width:176px;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:12px 10px 10px;text-align:left;text-decoration:none;background:var(--cream);color:var(--ink);border-top:6px solid var(--tc);transition:transform .15s steps(3)}
.slip.t1{border-top-color:var(--te)}.slip.t2{border-top-color:var(--tr)}.slip.t3{border-top-color:var(--tu)}
.slip:hover{transform:translateY(-4px)}
.slip.in{animation:slipin .5s steps(6) both}
@keyframes slipin{from{transform:translateX(-60px);opacity:0}to{transform:none;opacity:1}}
.slip-cap{position:absolute;right:6px;top:-26px;width:42px;height:44px;z-index:1}
.slip-cap img{width:42px;height:44px}
.slip-img{display:grid;place-items:center;aspect-ratio:3/5;background:var(--hall-deep);margin-bottom:6px;overflow:hidden}
.slip-img img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.slip-v{font-size:24px;line-height:1.05}
.slip-x{font-size:13px;font-weight:600;color:#5a4a7a}
.slip-m{font-size:18px;color:#6b4a9a;line-height:1.1}
.slip-n{font-size:12px;line-height:1.3;color:#3a3560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slip-t{font-size:12px;color:#7a6f96;font-variant-numeric:tabular-nums}
.slip-chips{display:flex;gap:4px;flex-wrap:wrap}
.chip{font-style:normal;font-size:15px;padding:0 6px;background:var(--ink);color:var(--cream);line-height:1.3}
.chip-epic{background:var(--te)}
.slip-sore{font-size:16px;color:var(--sore);line-height:1.15}
.slip-run{border-top-color:var(--sore);min-height:200px}
.run-n{font-size:56px;line-height:1}
.run-k{font-size:19px;color:#6b4a9a}
.backroom{background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px;border-top:4px solid #1a0d2a}
.br-in{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:end}
.br-door img{width:300px;height:414px;display:block}
.br-list{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.br-list li{display:grid;grid-template-columns:28px 1fr;column-gap:10px;padding:12px 14px;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2)}
.br-list b{font:800 17px 'Saira SC'}
.br-list span:last-child{grid-column:2;font-size:14px;color:var(--ch2);line-height:1.35}
.cap-mini{grid-row:1/3;width:21px;height:22px;background:url(/assets/px/capsules-r0c0.png) 0 0/100% 100%;image-rendering:pixelated;margin-top:2px}
.cE{background-image:url(/assets/px/capsules-r0c3.png)}.cR{background-image:url(/assets/px/capsules-r0c2.png)}.cU{background-image:url(/assets/px/capsules-r0c1.png)}.cG{background-image:url(/assets/px/capsules-r0c4.png)}
.br-gate{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.br-msg{margin:0;font-size:14px;color:var(--ch2);max-width:46ch}
.room-plate{padding:16px;background:var(--ink);border:3px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:var(--ch3)}
.room-k{font-size:24px;color:var(--amber);margin:0 0 8px}
.room-t{margin:0 0 12px;color:var(--ch1)}
.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:12px}
.room-box{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;background:#0b0c2a;border:2px solid #22254a}
.room-h{font-size:20px;color:var(--ch2);margin:0}
.room-subs,.room-evs{list-style:none;margin:0;padding:0;width:100%;font-size:14px}
.room-subs li,.room-evs li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0}
.room-none{color:var(--ch3)}
.room-note{margin:0;font-size:13px;color:var(--ch2)}
.room-act{display:flex;gap:8px;flex-wrap:wrap}
/* closing time */
.closing{min-height:min(92svh,880px);overflow:hidden;padding:0;display:flex;align-items:flex-end;background:linear-gradient(#1a0d2a,#1a0d2a) 0 0/100% 40% no-repeat,var(--hall-deep) url(/assets/px/lattice-deep.png) 0 0/24px 24px}
.cl-cabs{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:14px;overflow:hidden}
.clc{position:relative;flex:none;width:152px;height:340px}
.clc img{width:152px;height:340px;display:block}
.clc::after{content:"";position:absolute;inset:0;background:#0d0718;opacity:0;-webkit-mask:url(/assets/px/cabinet.png) 0 0/100% 100%;mask:url(/assets/px/cabinet.png) 0 0/100% 100%;transition:opacity .25s steps(2) calc(var(--i) * 170ms)}
.closing.shut .clc::after{opacity:.72}
.shutter{position:relative;z-index:2;width:min(980px,calc(100% - 2 * var(--gut)));margin:0 auto 0;min-height:min(78svh,760px);display:flex;align-items:flex-end;justify-content:center;padding:60px 28px 0;
  background:repeating-linear-gradient(180deg,#A9B1C8 0 26px,#7B839D 26px 28px,#D4D9E6 28px 30px);border:4px solid var(--ch3);border-bottom:0;transform:none;transition:transform 1.1s cubic-bezier(.3,.9,.3,1) 1.3s}
.closing.arm .shutter{transform:translateY(-104%)}
.closing.arm.shut .shutter{transform:none}
.shutter::after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:22px;background:var(--ch3);border-top:3px solid var(--ch1)}
.sh-in{position:relative;z-index:1;width:min(640px,100%);margin-bottom:60px;padding:22px;background:var(--ink);border:3px solid var(--ch2);border-top-color:var(--ch1);border-bottom-color:var(--ch3);display:flex;flex-direction:column;gap:14px;text-align:center}
.sh-k{margin:0;font-size:24px;color:var(--amber)}
.sh-t{margin:0;font-size:clamp(40px,7vw,84px);line-height:1;color:var(--cream)}
.sh-s{margin:0;color:var(--ch1)}
.sh-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.sh-fine{margin:0;font-size:13px;color:var(--ch2)}
/* film (only when the build ships one) */
.film{background:var(--hall-deep)}
.film-in{max-width:1100px;margin:0 auto}
.film-scr{position:relative;aspect-ratio:16/9;background:var(--ink);border:3px solid var(--ch2);display:grid;place-items:center}
.film-scr img,.film-scr video{width:100%;height:100%;object-fit:cover;display:block}
.film-card b{font:400 32px 'Bungee'}
.film-play{position:absolute;inset:auto auto 18px 18px;display:flex;align-items:center;gap:10px;padding:6px 16px 6px 6px;background:var(--ink);border:2px solid var(--ch2)}
.film-play img{width:66px;height:66px}
.film-play .j{font-size:26px}
/* ticket */
.ticket-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}
.ticket-modal[hidden]{display:none}
.tk-back{position:absolute;inset:0;background:rgba(26,13,42,.86)}
.tk{position:relative;width:min(760px,100%);max-height:calc(100svh - 32px);overflow:auto;background:var(--cream);color:var(--ink);padding:26px 24px 22px;transform:translateY(16px);opacity:0;transition:transform .3s steps(5),opacity .2s}
.ticket-modal.open .tk{transform:none;opacity:1}
.tk-x{position:absolute;right:8px;top:8px;width:44px;height:44px;display:grid;place-items:center;background:var(--ink);color:var(--cream);font-size:24px;z-index:2}
.tk-x:hover{color:var(--amber)}
.tk-card{display:grid;grid-template-columns:minmax(0,280px) 1fr;gap:22px}
.tk-img{aspect-ratio:3/5;background:var(--hall-deep);display:grid;place-items:center}
.tk-img img{width:100%;height:100%;object-fit:contain}
.tk-info{display:flex;flex-direction:column;gap:10px;min-width:0}
.tk-tier{font-size:26px;line-height:1;color:var(--ch3)}
.tk-tier.t1{color:var(--te)}.tk-tier.t2{color:#0f86a8}.tk-tier.t3{color:#5e9410}
.tk-name{font:800 20px/1.25 'Saira SC';overflow-wrap:anywhere;padding-right:40px}
.tk-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.tk-dl div{background:var(--ink);color:var(--cream);padding:8px 10px}
.tk-dl dt{font-size:16px;color:var(--amber)}
.tk-dl dd{margin:0;font-size:24px}
.tk-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:14px;color:#4a3f6e}
.tk-act{display:flex;flex-wrap:wrap;gap:8px}
.tk-act .lnk{background:var(--ink)}
.tk-fine{margin:0;font-size:12px;color:#6a5f8e}
.tk-none{font-size:26px;margin:20px 0}
/* footer on inner pages */
.foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding:28px var(--gut);background:var(--hall-deep);border-top:4px solid #1a0d2a}
.foot-brand{display:flex;align-items:center;gap:8px;text-decoration:none}.foot-brand img{width:32px;height:32px}.foot-brand .bi{font-size:22px}
.foot p{margin:0;font-size:13px;color:var(--ch2);flex:1 1 260px}
.foot-act{display:flex;gap:8px;flex-wrap:wrap}
/* ---------------------------------------------------------------- responsive */
@media (max-width:1380px){.ecab:nth-child(3){display:none}}
@media (max-width:1180px){
  .floor-row{grid-template-columns:auto 1fr}.ent-cabs{display:none}
}
@media (max-width:900px){
  .hud-nav{display:none}.hud-act{margin-left:auto}
  .floor-row{grid-template-columns:1fr;justify-items:center;gap:22px}
  .changer-px{display:none}.changer-plate{margin:0;width:min(100%,420px)}
  .ent-mid{padding-bottom:30px}
  .br-in{grid-template-columns:1fr}.br-door{display:none}
  .room-grid{grid-template-columns:1fr}
  .entrance::before{display:none}
}
@media (max-width:640px){
  :root{--hud:56px}
  .hud{gap:8px}.hud-brand .bi{font-size:18px}.hud-brand .tick{display:none}
  .hud .pbtn{padding:2px 8px 2px 2px;min-height:40px;gap:4px}.hud .pbtn .lb{font-size:18px}.hud .pbtn .lb svg+span{display:none}
  .sign{padding:14px}.sign-face{padding:4px 12px 6px}
  .string.s2{display:none}
  .hiscore{grid-template-columns:1fr;width:100%}.hs-row{flex-direction:row;justify-content:space-between;border-right:0;border-bottom:2px solid #22254a;padding:8px 14px}.hs-row:last-child{border-bottom:0}
  .insert{width:100%}
  .br-list{grid-template-columns:1fr}
  .scene{padding:56px var(--gut)}
  .clc:nth-child(n+3){display:none}
  .tk-card{grid-template-columns:1fr}.tk-img{max-width:220px;margin:0 auto;width:100%}
  .row-top{gap:10px}.dial{width:100%}.dial-opts{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.dial-o{flex:none}
  .plate-in{width:100%}.plate-in input{width:100%}
  .bay{min-width:0;width:min(84vw,320px)}
  .pb .j{font-size:18px}
}
@media (max-width:360px){
  .hud .b-pump .lb{font-size:16px}
  .hud .pbtn .cap{display:none}.hud .pbtn{padding:2px 8px}
}
@media (min-width:2400px){
  .entrance,.row-scene,.scene,.closing{font-size:20px}
  .ent-in{max-width:2000px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;transition-delay:0s!important}
  .string::after{opacity:1}
}
@media (max-width:640px){.sign-sym{width:42px;height:64px}}
/* ---------------------------------------------------------------- machine page */
.mp{padding:calc(var(--hud) + 28px) var(--gut) 70px;background:linear-gradient(var(--hall-deep),var(--hall-deep)) 0 0/100% 280px no-repeat,var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px}
.mp-in{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr);gap:44px;align-items:start}
.mp-cab{position:sticky;top:calc(var(--hud) + 20px);display:flex;flex-direction:column;align-items:center;gap:16px}
.mp-data{display:flex;flex-direction:column;gap:16px;min-width:0}
.mp-back{margin:0}
.mp-h{margin:0;font-size:clamp(40px,6vw,88px);line-height:1;color:var(--cream)}
.mp-sub{margin:0;color:var(--ch1);font-size:16px}
.mp-board{padding:16px 18px}
.bd-big,.tr-big{grid-template-columns:110px repeat(2,minmax(0,1fr)) minmax(0,1.4fr) 70px}
.tr-big{grid-template-rows:auto 9px;padding:6px 0 8px}
.tr-big .tn{font-size:22px}.tr-big .num{font-size:20px}.tr-big .ci{font-size:14px;color:var(--ch2);font-variant-numeric:tabular-nums}.tr-big .kk{color:var(--ch2);font-weight:600;font-size:15px;text-align:right}
.tr-big .bar{height:9px}.tr-big .bar i{height:9px}.tr-big .dot{width:9px;margin-left:-4px}
.bd-big .j{font-size:18px}
.mp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.mp-box{padding:14px 16px;background:var(--ink);border:2px solid var(--ch3);border-top-color:var(--ch2)}
.mp-bh{margin:0 0 10px;font-size:22px;color:var(--amber)}
.evs,.ser{display:grid;gap:10px}
.evs{grid-template-columns:repeat(2,minmax(0,1fr))}
.evs div,.ser div{display:flex;flex-direction:column}
.evs b,.ser b{font-size:36px;line-height:1}
.evs span,.ser span{font-size:14px;color:var(--ch1)}
.evs i,.ser i{font-style:normal;font-size:13px;color:var(--ch2);font-variant-numeric:tabular-nums}
.ser .ep{color:var(--te)}.ser .rr{color:var(--tr)}
.tagline .j{font-size:22px}.tagline.tag-above .j{color:var(--amber)}.tagline.tag-below .j{color:var(--tr)}
.hist{width:100%;height:auto;aspect-ratio:200/64;display:block}
.hist-x{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));text-align:center;margin-top:6px}
.hist-x span{display:flex;flex-direction:column}.hist-x b{font-size:13px}.hist-x i{font-style:normal;font-size:11px;color:var(--ch2)}
.beads{display:flex;flex-wrap:wrap;gap:4px}
.bead{width:42px;height:44px;display:grid;place-items:center;transition:transform .12s steps(2)}
.bead img{width:42px;height:44px}
.bead:hover{transform:translateY(-3px)}
.mp-share{display:flex;flex-wrap:wrap;gap:10px}
.mp-notes{margin:0;font-size:13px;color:var(--ch2);max-width:90ch}
.mp-cab .cab{--s:4}
/* docs */
.dc{padding:calc(var(--hud) + 40px) var(--gut) 80px;background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px}
.dc-in{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.dc-top h1{margin:4px 0 12px;font-size:clamp(38px,6vw,76px);line-height:1}
.dc-k{margin:0;font-size:24px;color:var(--amber)}
.dc-lede{margin:0;font-size:19px;max-width:60ch;color:var(--ch1)}
.dc-nav{display:flex;flex-wrap:wrap;gap:4px;position:sticky;top:var(--hud);z-index:5;background:var(--hall-deep);padding:6px;border:2px solid var(--ch3)}
.dc-nav a{text-decoration:none;padding:6px 10px;font-size:20px;color:var(--ch1)}.dc-nav a:hover{color:var(--amber)}
.dc-card{padding:22px 24px;background:var(--cream);color:var(--ink);border-top:6px solid var(--lamp)}
.dc-card h2{margin:0 0 12px;font-size:26px}
.dc-card p{margin:0 0 10px}
.dc-dl{display:grid;grid-template-columns:150px 1fr;gap:8px 16px;margin:0 0 10px}
.dc-dl dt{font:400 20px 'Jersey 10';text-transform:uppercase;color:#6b4a9a}
.dc-dl dd{margin:0}
.dc-f{margin:8px 0 12px;padding:12px 14px;background:var(--ink);color:var(--cream);font:600 15px/1.5 'Saira SC';white-space:pre-wrap;overflow-wrap:anywhere}
.dc-list{margin:0 0 10px;padding-left:20px}
.dc-list b{font-size:19px;color:#6b4a9a}
.dc-big{font:800 20px 'Saira SC'}
.dc-ca{display:flex;flex-direction:column;gap:10px;margin:12px 0;padding:14px;background:var(--ink);color:var(--cream)}
.dc-tone{font-weight:600;color:#6b4a9a}
/* 404 */
.nf{min-height:100vh;display:grid;place-items:center;background:var(--hall) url(/assets/px/lattice.png) 0 0/24px 24px}
.nf-in{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:40px;padding:40px var(--gut)}
.nf-px{width:285px;height:519px}
.nf-t{max-width:420px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:30px}
.nf-t h1{margin:0;font-size:clamp(44px,7vw,80px);line-height:1}
.nf-k{margin:0;font-size:26px;color:var(--amber)}
.nf-t p{margin:0;font-size:19px}
@media (max-width:1000px){.mp-in{grid-template-columns:1fr}.mp-cab{position:static}.mp-cab .cab{--s:3}}
@media (max-width:640px){
  .mp-cab .cab{--s:2}.mp-grid,.evs{grid-template-columns:1fr}
  .bd-big,.tr-big{grid-template-columns:76px repeat(2,minmax(0,1fr)) 0 52px}.tr-big .ci,.bd-big .j:nth-child(4){display:none}
  .tr-big .tn{font-size:18px}.tr-big .num{font-size:17px}
  .dc-dl{grid-template-columns:1fr}.nf-px{width:190px;height:346px}
}
@media (max-width:400px){.ca-slot .pend{font-size:14px;padding:5px 8px}}
@media (max-width:340px){.ca-slot .pend{font-size:12px;padding:4px 6px;letter-spacing:0;max-width:100%;white-space:normal}}

/* short desktop screens (10-21): the whole row - controls, cabinets, boards, window bank - fits the first screen */
@media (max-height:900px) and (min-width:901px){
  .row-pin{padding-top:calc(var(--hud) + 4px)}
  .row-top{padding-bottom:6px}
  .board{margin-top:4px;padding:5px 10px;font-size:14px;line-height:1.15}
  .tr{padding:0 0 2px}.bd-h{margin-bottom:2px}
  .ev-v{font-size:24px}.bd-dry{margin-top:2px}.bd-dry b{font-size:19px}.bd-tag{margin-top:1px}
  .bay-go{margin-top:0;padding:2px;font-size:18px}
  .row-foot{padding:4px var(--gut) 6px}.row-note{display:none}
  .tr{grid-template-rows:auto 4px;line-height:1.05}
  .ev-c{flex-basis:auto;margin-left:6px}
  .bay-go{line-height:1.1}
}
@media (max-width:640px){.dial-knob{overflow:hidden}.dial-knob img{transform:none;max-width:56px;max-height:40px}}
