:root{--ink: #1d2430;--ink-soft: #3a4556;--paper: #e6e0d4;--paper-deep: #d5cbb8;--slate: #243041;--slate-deep: #1a2330;--copper: #b56a3a;--copper-deep: #8a4a28;--tungsten: #d9a066;--chalk: #f2efe6;--ok: #3d7a62;--warn: #c45c3a;--line: rgba(29, 36, 48, .14);--font-brand: "Dela Gothic One", sans-serif;--font-body: "Zen Maru Gothic", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--slate-deep);color:var(--ink);font-family:var(--font-body)}body{height:100dvh;max-height:100dvh;overflow:hidden;background:radial-gradient(ellipse 70% 45% at 18% 12%,rgba(217,160,102,.16),transparent 55%),radial-gradient(ellipse 50% 40% at 88% 78%,rgba(61,122,98,.12),transparent 50%),linear-gradient(165deg,#1a2330,#243041 42%,#18202c)}#app{height:100dvh;max-height:100dvh;overflow:hidden}.room{height:100%;width:100%;max-width:none;margin:0;padding:.45rem .5rem .5rem;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.4rem;overflow:hidden}.mast{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid rgba(242,239,230,.12);padding-bottom:.35rem;min-height:0}.mast__brand{font-family:var(--font-brand);font-size:clamp(1.35rem,3.2vw,2rem);letter-spacing:.02em;line-height:1;color:var(--chalk);margin:0}.meters{display:flex;flex-wrap:wrap;gap:.35rem .85rem;justify-content:flex-end;font-family:var(--font-mono);font-size:.72rem;color:#f2efe6c7}.meters b{color:var(--tungsten);font-weight:600;margin-left:.2rem;display:inline-block}.meters b.is-bump{animation:meter-bump .45s cubic-bezier(.2,1.5,.3,1)}@keyframes meter-bump{0%{transform:scale(1)}40%{transform:scale(1.35);color:#ffe0a0}to{transform:scale(1)}}.floor{min-height:0;height:100%;width:100%;display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr) minmax(220px,.75fr);gap:.5rem;align-items:stretch;overflow:hidden}@media(max-width:960px){.floor{grid-template-columns:minmax(180px,.58fr) minmax(0,1.35fr) minmax(180px,.7fr);gap:.5rem}}@media(max-width:720px){.floor{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1.2fr) minmax(0,.7fr);gap:.45rem}.tv-nook{order:2;width:min(220px,55%);max-width:220px;justify-self:start;align-self:start}.bay{order:1}.bench{order:3}}.bay{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr);gap:0;overflow:hidden;align-content:stretch}.machine{position:relative;min-height:0;height:100%;overflow:hidden;background:linear-gradient(180deg,#e6e0d4f7,#d5cbb8f5);border:1px solid rgba(29,36,48,.18);border-radius:2px;padding:.4rem .55rem .45rem;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:.15rem;box-shadow:inset 0 1px #ffffff59,0 10px 0 -2px #00000029;transition:box-shadow .25s ease}.machine__plate{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.machine__plate h2{margin:0;font-family:var(--font-brand);font-size:.88rem;color:var(--ink)}.machine__plate span{font-family:var(--font-mono);font-size:.65rem;color:var(--ink-soft)}.result{min-height:1.85rem;position:relative;z-index:2}.result__title{margin:0;font-size:1.05rem;font-weight:700;color:var(--ink);transform-origin:left center}.result__meta{margin:.1rem 0 0;color:var(--ink-soft);font-size:.78rem}.result.is-pop .result__title{animation:result-pop .45s cubic-bezier(.2,1.4,.3,1) both}.result.tier-miss .result__title{color:#5c6570;font-size:.98rem}.result.tier-small .result__title{color:var(--ok)}.result.tier-medium .result__title,.result.tier-shard .result__title{color:#1f6b4c;font-size:1.15rem}.result.tier-burst .result__title{color:var(--warn);font-size:1.2rem}.result.tier-big .result__title{color:var(--copper-deep);font-size:1.35rem;letter-spacing:.04em;text-shadow:0 0 18px rgba(196,106,46,.35)}.result.tier-jackpot .result__title{color:#b8860b;font-family:var(--font-brand);font-size:clamp(1.35rem,2.6vw,1.85rem);letter-spacing:.06em;text-shadow:0 0 12px rgba(224,168,74,.55),0 0 28px rgba(224,168,74,.3);animation:result-pop .45s cubic-bezier(.2,1.4,.3,1) both,jp-pulse .9s ease-in-out 2}.result.is-crit .result__title{color:var(--warn)}@keyframes result-pop{0%{transform:scale(.72);opacity:.2}60%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}@keyframes jp-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}.win-flash{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:radial-gradient(ellipse 70% 55% at 50% 35%,rgba(255,240,200,var(--flash-intensity, .35)),transparent 70%);animation:flash-fade .55s ease-out forwards}.win-flash--miss{background:radial-gradient(ellipse 60% 50% at 50% 40%,rgba(80,90,100,.2),transparent 70%)}.win-flash--small,.win-flash--medium{background:radial-gradient(ellipse 70% 55% at 50% 35%,rgba(80,200,140,var(--flash-intensity, .3)),transparent 70%)}.win-flash--big,.win-flash--burst{background:radial-gradient(ellipse 75% 60% at 50% 30%,rgba(255,140,60,var(--flash-intensity, .4)),transparent 72%)}.win-flash--jackpot{background:radial-gradient(ellipse 80% 65% at 50% 30%,rgba(255,210,80,var(--flash-intensity, .55)),rgba(255,160,40,.2) 45%,transparent 75%)}.win-flash--shard{background:radial-gradient(ellipse 70% 55% at 50% 35%,rgba(100,220,200,var(--flash-intensity, .35)),transparent 70%)}@keyframes flash-fade{0%{opacity:1}to{opacity:0}}.win-sparks{pointer-events:none;position:absolute;left:50%;top:42%;width:0;height:0;z-index:5}.win-sparks span{position:absolute;width:7px;height:7px;margin:-3px;border-radius:1px;background:hsl(var(--hue, 40) 85% 55%);box-shadow:0 0 8px hsl(var(--hue, 40) 90% 60%);animation:spark-fly .75s ease-out forwards;animation-delay:var(--delay, 0s);opacity:0}@keyframes spark-fly{0%{transform:translate(0) scale(1.2);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}.machine.fx-shake{animation:machine-shake .45s ease-out}.machine.fx-shake-hard{animation:machine-shake-hard .75s ease-out}.machine.fx-glow-small{box-shadow:inset 0 1px #ffffff59,0 10px 0 -2px #00000029,0 0 0 2px #3d7a6240}.machine.fx-glow-big{box-shadow:inset 0 1px #ffffff59,0 10px 0 -2px #00000029,0 0 28px #c46a2e73,0 0 0 2px #c46a2e66}.machine.fx-glow-jp{box-shadow:inset 0 1px #fff6,0 10px 0 -2px #00000029,0 0 40px #e0a84aa6,0 0 0 3px #e0a84a8c}@keyframes machine-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-1px)}60%{transform:translate(-2px)}80%{transform:translate(2px,1px)}}@keyframes machine-shake-hard{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-6px,2px) rotate(-.4deg)}25%{transform:translate(7px,-2px) rotate(.5deg)}40%{transform:translate(-5px,1px) rotate(-.3deg)}55%{transform:translate(5px,-1px) rotate(.3deg)}70%{transform:translate(-3px)}85%{transform:translate(2px,1px)}}.wheel-wrap{width:100%;height:100%;min-height:0;margin:0 auto;display:grid;place-items:center;overflow:hidden;container-type:size}.wheel-wrap canvas{display:block;flex-shrink:0}.odds-tape{display:flex;flex-wrap:wrap;gap:.2rem .55rem;justify-content:center;padding:.25rem 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);font-family:var(--font-mono);font-size:.62rem;color:var(--ink-soft);overflow:hidden}.odds-tape span em{font-style:normal;color:var(--ink);margin-left:.15rem}.controls{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:center}.lever{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--ink);background:var(--copper);color:var(--chalk);font-family:var(--font-body);font-weight:700;font-size:.88rem;letter-spacing:.08em;padding:.4rem 1rem;min-width:100px;cursor:pointer;border-radius:1px;box-shadow:0 3px 0 var(--copper-deep)}.lever:hover:not(:disabled){background:#c57742}.lever:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--copper-deep)}.lever:disabled{opacity:.45;cursor:not-allowed}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(29,36,48,.35);background:transparent;color:var(--ink-soft);font-family:var(--font-body);font-weight:700;font-size:.75rem;padding:.38rem .7rem;cursor:pointer;border-radius:1px}.toggle.is-on{border-color:var(--ok);color:var(--ok);background:#3d7a621a}.toggle:disabled{opacity:.4;cursor:not-allowed}.bench{min-height:0;height:100%;overflow:hidden}.clipboard{height:100%;min-height:0;background:var(--paper);border:1px solid rgba(29,36,48,.2);border-radius:1px;padding:.7rem .65rem .55rem;box-shadow:0 8px 0 -4px #0000001f;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;overflow:hidden}.clipboard:before{content:"";position:absolute;top:-6px;left:50%;width:36px;height:10px;transform:translate(-50%);background:linear-gradient(180deg,#5c6574,#3d4654);border-radius:2px}.clipboard__head{margin:.2rem 0 0}.clipboard__head h2{margin:0;font-size:.9rem;font-weight:700}.clipboard__head p{margin:.15rem 0 0;font-size:.7rem;color:var(--ink-soft)}.parts{display:grid;gap:0;min-height:0;overflow:auto;overscroll-behavior:contain}.part{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;text-align:left;border:0;border-top:1px solid rgba(29,36,48,.12);background:transparent;color:inherit;padding:.48rem .1rem;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:.1rem .5rem}.part:first-child{border-top:0}.part:hover:not(:disabled){background:#b56a3a14}.part:disabled{opacity:.4;cursor:not-allowed}.part__name{margin:0;font-size:.82rem;font-weight:700}.part__cost{font-family:var(--font-mono);font-size:.68rem;color:var(--copper-deep);white-space:nowrap}.part__desc{margin:0;grid-column:1 / -1;font-size:.68rem;color:var(--ink-soft);line-height:1.35}.tv-nook{min-width:0;width:100%;max-width:none;height:100%;margin:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:stretch;align-self:stretch;padding:.35rem .1rem}.room-tv{width:100%;max-height:none}.crt{width:100%;max-height:none;display:grid;grid-template-rows:auto auto auto auto;justify-items:stretch;gap:.15rem;filter:drop-shadow(0 8px 12px rgba(0,0,0,.28))}.crt__antenna{display:flex;gap:1.5rem;height:18px;align-items:flex-end;justify-content:center}.crt__antenna span{display:block;width:2px;height:18px;background:#8b929c;transform-origin:bottom center}.crt__antenna span:first-child{transform:rotate(-18deg)}.crt__antenna span:last-child{transform:rotate(18deg)}.crt__bezel{background:linear-gradient(160deg,#4a5564,#2f3846 55%,#262e3a);border:1px solid #1a2029;border-radius:10px 10px 8px 8px;padding:.45rem .5rem .4rem;position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;gap:.25rem;min-height:0;overflow:hidden}.crt__screen{grid-column:1;grid-row:1;aspect-ratio:16 / 9;width:100%;max-height:none;background:#0c1218;border:2px solid #151b24;border-radius:4px;overflow:hidden;position:relative;box-shadow:inset 0 0 22px #000000a6}.crt__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:#000}.crt__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;color:#d2e6dcd9;font-size:.72rem;letter-spacing:.05em;font-weight:700;pointer-events:none;background:#080e1259;transition:opacity .35s ease;z-index:1}.crt__overlay.is-playing{opacity:0}.crt__scan{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(140,220,180,.07) 48%,transparent 52%);animation:scan 3.8s linear infinite}.crt__knobs{position:absolute;grid-column:1;grid-row:1;right:.35rem;top:.55rem;display:grid;gap:.28rem;pointer-events:none;z-index:2}.crt__knobs i{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c5ccd6,#6b7380);border:1px solid #1a2029;display:block}.crt__speaker{grid-column:1;grid-row:2;height:8px;border-radius:1px;background:repeating-linear-gradient(90deg,#1d2430 0,#1d2430 2px,#3a4556 2px,#3a4556 4px);opacity:.7}.crt__stand{width:70%;justify-self:center}.crt__shelf{height:10px;background:linear-gradient(180deg,#6a5644,#4a3a2e);border-radius:1px;box-shadow:0 6px #2a211a}@media(max-width:720px){.tv-nook{height:auto;max-height:none}.crt__screen{max-height:110px}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.machine.fx-shake,.machine.fx-shake-hard{animation:none!important}}
