:root{color-scheme:dark;--bg:#0a131e;--panel:#152534;--ink:#edf5f6;--muted:#a3b7c6;--light:#57e6dc;--gold:#f6bf72;--vh:100dvh;font:18px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 38%,#193345,transparent 64%),var(--bg);color:var(--ink);height:var(--vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:max(8px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}button,a,input,select{font:inherit}button{color:inherit;background:#1d3447;border:1px solid #4d687b;border-radius:12px;cursor:pointer;min-height:44px}button:hover{background:#29465a}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.38;cursor:default}svg{display:block}button svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.topbar{max-width:1250px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0 10px;border-bottom:1px solid #304a5e}.brand{display:block;color:var(--muted);font-size:12px;letter-spacing:2px}.wordmark h1{margin:0;font-size:30px;line-height:1.2;letter-spacing:-1.2px}.brand-dot{font-size:12px;vertical-align:middle;margin-left:8px;color:var(--gold)}.scorebar{display:flex;gap:24px;align-items:center}.scorebar small{display:block;color:var(--muted);font-size:13px}.scorebar strong{font-variant-numeric:tabular-nums;font-size:24px;line-height:1.15}.icon-button{display:grid;place-items:center;width:45px;height:45px;padding:9px;flex-shrink:0}.icon-button svg{width:25px;height:25px}.game-shell{min-height:0;width:100%;max-width:1160px;margin:0 auto;display:grid;grid-template-columns:minmax(160px,235px) minmax(250px,1fr);grid-template-rows:minmax(0,1fr) 60px;gap:8px 22px}.table-panel{grid-column:1;grid-row:1;align-self:center}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:700;color:var(--gold)}.table-panel h2{font-size:34px;letter-spacing:-1px;margin:8px 0 10px}.table-panel p{color:var(--muted);font-size:18px}.mission-panel{border:1px solid #456074;border-radius:14px;padding:15px;background:#142737;display:grid;grid-template-columns:1fr auto;gap:12px}.mission-panel span{font-size:16px}.mission-panel strong{white-space:nowrap;color:var(--gold)}.mission-lights{display:flex;gap:10px;grid-column:1/-1}.mission-lights i{width:12px;height:12px;border-radius:50%;background:#304b5f;box-shadow:inset 0 1px 3px #061321}.mission-lights i.on{background:var(--light);box-shadow:0 0 12px var(--light)}.stats{display:flex;gap:20px;margin-top:20px;font-variant-numeric:tabular-nums;color:var(--gold);font-size:23px}.desktop-help{font-size:13px!important;border-top:1px solid #304a5e;padding-top:16px}.table-stage{grid-column:2;grid-row:1;min-height:0;min-width:0;position:relative;display:grid;place-items:center}#table{height:100%;width:100%;max-height:100%;overflow:visible;filter:drop-shadow(0 14px 18px #0008);pointer-events:none}#table .hit{filter:brightness(2)}#table [data-target]{opacity:.62}#table .lit{opacity:1;filter:drop-shadow(0 0 6px var(--table-light))}#toast{position:absolute;bottom:16%;left:50%;transform:translateX(-50%);padding:9px 14px;background:#0a1527eb;border:1px solid var(--gold);border-radius:12px;max-width:85%;text-align:center;font-size:16px;pointer-events:auto;box-shadow:0 3px 16px #0007}#toast[hidden],#pause-overlay[hidden]{display:none}#pause-overlay{position:absolute;inset:0;background:#07101acc;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;border-radius:20px;backdrop-filter:blur(3px)}#pause-overlay strong{font-size:26px}#resume{padding:10px 35px}.touch-controls{grid-column:2;grid-row:2;display:flex;align-items:stretch;gap:8px;max-width:660px;width:100%;justify-self:center;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls button{touch-action:none;position:relative;overflow:hidden;-webkit-touch-callout:none}.flipper-button{flex:1;display:flex;justify-content:center;align-items:center;gap:8px;background:#193b49;border-color:#41899a}.flipper-button svg{width:59px;height:28px;stroke-width:7}.flipper-button span{font-size:21px}.flipper-button.active{background:#376d77;box-shadow:inset 0 0 16px #88fff533}.launch-button{background:var(--gold);color:#172634;border-color:#f9d79c;font-weight:750;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 15px;min-width:115px}.launch-button:hover{background:#fbd197}.launch-button svg{width:23px;height:23px}.launch-button i{position:absolute;left:0;bottom:0;height:5px;width:0;background:#214857}.nudge-button{padding:10px;width:48px}.nudge-button svg{width:24px;height:24px}footer{display:flex;justify-content:space-between;gap:10px;width:100%;max-width:1160px;justify-self:center;font-size:10px;color:#89a4b4;padding-top:6px}dialog{color:var(--ink);background:linear-gradient(145deg,#1b3246,#0e1e30);border:1px solid #516f88;border-radius:22px;max-width:min(900px,calc(100vw - 24px));max-height:calc(var(--vh) - 24px);padding:26px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#050c17c9;backdrop-filter:blur(6px)}dialog h2{margin:8px 0 16px;font-size:30px;letter-spacing:-1px}.selection-dialog{width:870px}.selection-heading{text-align:center}.selection-heading h2{font-size:40px}.selection-heading p{color:var(--muted)}.table-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.table-choice{position:relative;min-height:230px;display:flex;flex-direction:column;padding:18px;align-items:flex-start;text-align:left;border-radius:18px;gap:10px;background:linear-gradient(150deg,#184253,#0c2337)}.table-choice[data-table="fair"]{background:linear-gradient(150deg,#54263f,#271830)}.table-choice[data-table="mystery"]{background:linear-gradient(150deg,#333149,#161e2e)}.table-choice .table-emblem{height:65px;width:100%;fill:none;stroke-width:2;stroke:var(--gold)}.table-choice strong{font-size:23px}.table-choice span{color:#c4d0d9;font-size:16px;flex:1}.table-choice b{font-size:16px;color:var(--gold)}.table-choice:hover{border-color:var(--gold);transform:translateY(-2px)}.selection-help{text-align:center;color:var(--muted);font-size:14px}.panel-dialog{width:540px}.panel-dialog>button{display:block;width:100%;margin-top:10px;padding:11px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.dialog-heading h2{font-size:25px}.rank-tabs,.rank-tables{display:flex;gap:8px;margin:14px 0}.rank-tabs button,.rank-tables button{flex:1;padding:8px;font-size:16px}.rank-tabs .selected,.rank-tables .selected{background:var(--gold);color:#122434;border-color:var(--gold)}#rank-note{font-size:16px;color:var(--muted)}#rank-rows{padding:0;list-style:none;max-height:38dvh;overflow-y:auto}#rank-rows li{display:flex;justify-content:space-between;gap:16px;padding:12px 3px;border-bottom:1px solid #304a5e;font-size:18px}#rank-rows strong{color:var(--gold);font-variant-numeric:tabular-nums}.end-score{font-size:60px;color:var(--gold);display:block;font-variant-numeric:tabular-nums}#submission{font-size:14px;color:var(--muted)}.primary{background:var(--gold);color:#172634;border-color:var(--gold)}#ts-game-menu{background:#152b3d;font-size:18px}.ts-menu-list a,.ts-menu-list button{font-size:18px!important}.ts-menu-head{border-color:#38566c!important}.ts-menu-help{line-height:1.65}.ts-name-form{grid-template-columns:1fr auto!important}
@media(max-width:700px){body{padding-top:max(5px,env(safe-area-inset-top));padding-left:max(7px,env(safe-area-inset-left));padding-right:max(7px,env(safe-area-inset-right))}.topbar{gap:6px;padding:2px 3px 7px}.brand,.brand-dot,.best,#pause{display:none}.wordmark h1{font-size:22px}.scorebar{gap:12px}.scorebar small{font-size:10px}.scorebar strong{font-size:18px}.icon-button{width:42px;height:42px}.game-shell{grid-template-columns:1fr;grid-template-rows:29px minmax(0,1fr) 58px;gap:2px}.table-panel{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 5px}.table-panel h2{margin:0;font-size:16px;letter-spacing:0}.table-panel>p,.desktop-help,.mission-lights{display:none}.mission-panel{padding:0;border:0;background:none;display:flex;gap:7px}.mission-panel span{display:none}.mission-panel strong{font-size:14px}.stats{margin:0;gap:9px;font-size:14px}.table-stage{grid-column:1;grid-row:2}.touch-controls{grid-column:1;grid-row:3;gap:6px}.flipper-button span{display:none}.flipper-button svg{width:47px}.launch-button{min-width:92px;font-size:16px;padding:0 8px}.nudge-button{width:42px;padding:8px}footer{font-size:9px}.selection-dialog{padding:20px 16px}.selection-heading h2{font-size:29px}.selection-heading p{font-size:18px;margin:10px}.table-choices{grid-template-columns:1fr;gap:10px}.table-choice{min-height:113px;padding:13px 14px;display:grid;grid-template-columns:58px 1fr;gap:3px 12px}.table-choice .table-emblem{grid-column:1;grid-row:1/4;width:55px;height:65px;align-self:center}.table-choice strong{font-size:20px}.table-choice span{font-size:15px}.table-choice b{font-size:14px}.selection-help{font-size:12px}.panel-dialog{padding:20px}.end-score{font-size:50px}.rank-tables button{font-size:14px;padding:7px}#toast{font-size:16px;bottom:18%}}
@media(orientation:landscape) and (max-height:530px){body{grid-template-rows:42px minmax(0,1fr);padding-bottom:max(5px,env(safe-area-inset-bottom))}footer{display:none}.topbar{padding:0 4px 4px}.brand,.best{display:none}.wordmark h1{font-size:22px}.scorebar{gap:16px}.scorebar small{font-size:10px}.scorebar strong{font-size:18px}.icon-button{height:36px;width:38px;padding:6px}.game-shell{grid-template-columns:120px minmax(0,1fr) 80px;grid-template-rows:minmax(0,1fr);gap:8px}.table-panel{grid-column:1;grid-row:1;display:block;align-self:center;padding:0 6px}.table-panel h2{font-size:18px;line-height:1.2;margin:0 0 12px}.table-panel>p{display:none}.mission-panel{display:flex;padding:0;border:0;background:transparent}.mission-panel span{display:none}.stats{font-size:15px;margin:12px 0;gap:10px}.table-stage{grid-column:2;grid-row:1}.touch-controls{grid-column:3;grid-row:1;display:flex;flex-direction:column;gap:5px;max-height:100%}.touch-controls button{min-height:35px}.flipper-button{flex:1}.flipper-button span{display:none}.flipper-button svg{width:46px;height:20px}.nudge-button{width:100%;height:32px;min-height:32px!important;padding:5px}.nudge-button svg{height:20px;display:inline}.launch-button{min-width:0;min-height:40px!important;flex:none;padding:5px;font-size:14px;gap:0}.launch-button svg{height:18px;width:18px}.table-choices{grid-template-columns:repeat(3,1fr)}.table-choice{display:flex;min-height:120px;padding:12px;gap:4px}.table-choice .table-emblem{height:40px;width:100%}.table-choice strong{font-size:18px}.table-choice span{display:none}.selection-heading h2{font-size:24px;margin:0 0 5px}.selection-heading p{margin:5px;font-size:16px}.selection-heading>.eyebrow,.selection-help{display:none}.selection-dialog{padding:16px}.panel-dialog h2{font-size:22px}.end-score{font-size:37px}.panel-dialog p{margin:6px 0;font-size:15px}.panel-dialog>button{padding:6px;min-height:34px}.mission-lights,.desktop-help{display:none}#toast{bottom:5%;font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.table-choice:hover{transform:none}dialog::backdrop{backdrop-filter:none}}

/* Keep the SVG's intrinsic ratio from enlarging the surrounding grid. */
html{height:100%;overflow:hidden}body,.topbar,.game-shell,.scorebar{min-width:0}.table-stage{display:block;overflow:hidden}#table{position:absolute;inset:0;max-height:none;overflow:hidden}.wordmark{flex-shrink:0}.scorebar{gap:clamp(8px,2vw,24px)}
@media(max-width:360px){.scorebar{gap:7px}.wordmark h1{font-size:20px}.scorebar strong{font-size:16px}.icon-button{width:38px;height:42px}}

[data-upper-deck].deck-active{filter:drop-shadow(0 0 7px var(--table-light))} .upper-active .objective{color:var(--gold)}
@media(prefers-reduced-motion:reduce){#table{transform:none!important}}

/* Compact two-line cabinet score display, including phones. */
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;background:#0b1118;border:1px solid #39414a;border-radius:8px;padding:7px 10px;box-shadow:inset 0 0 16px #0008}.wordmark{min-width:0;flex-shrink:1}.wordmark h1{font-size:clamp(16px,2.4vw,26px);letter-spacing:.5px;text-transform:uppercase}.scorebar{gap:clamp(6px,1.5vw,18px)}.scorebar .best{display:block}.scorebar strong{font-family:ui-monospace,"Courier New",monospace;font-weight:700;font-size:clamp(16px,2.4vw,26px)}#score{color:#ff4b42;text-shadow:0 0 7px #ff302866}#best{color:#ffb66c}.cabinet-status{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #343b44;padding-top:4px;font:14px/1.2 ui-monospace,"Courier New",monospace;color:var(--gold)}.cabinet-status .mission-panel{border:0;padding:0;background:none;display:flex;align-items:center;gap:10px}.cabinet-status .mission-panel span{font-size:12px}.cabinet-status .mission-lights{display:flex;gap:5px}.cabinet-status .mission-lights i{width:8px;height:8px}.cabinet-status .stats{margin:0;font-size:14px;gap:12px}.table-panel h2{display:none}.game-shell{padding-top:5px}
@media(max-width:700px){.topbar{gap:4px 6px;padding:5px 7px}.wordmark h1{font-size:14px;line-height:1.15}.scorebar{gap:7px}.scorebar strong{font-size:15px}.scorebar small{font-size:9px}.scorebar .balls{display:none}.cabinet-status{font-size:12px;gap:6px}.cabinet-status .mission-panel span{display:block;font-size:10px;max-width:160px}.cabinet-status .mission-panel{gap:6px}.cabinet-status .stats{font-size:12px;gap:7px}.game-shell{grid-template-rows:minmax(0,1fr) 58px}.table-panel{display:none}.table-stage{grid-row:1}.touch-controls{grid-row:2}}
@media(orientation:landscape) and (max-height:530px){body{grid-template-rows:auto minmax(0,1fr)}.table-panel{display:none}.game-shell{grid-template-columns:minmax(0,1fr) 80px}.table-stage{grid-column:1}.touch-controls{grid-column:2;grid-row:1}.cabinet-status .mission-panel span{display:block}.scorebar .balls{display:block}}

.cabinet-status .balls{display:flex;align-items:center;gap:5px;white-space:nowrap}.cabinet-status .balls small{font-size:10px}.cabinet-status .balls strong{font-size:13px}.cabinet-status .stats{align-items:center}@media(max-width:700px){.cabinet-status .mission-panel span{max-width:110px}.cabinet-status .mission-lights{display:none}.cabinet-status .stats{gap:5px}.cabinet-status .balls small{display:none}}

/* One symbolic scoreboard; the player's score leads the records. */
.topbar{position:relative;grid-template-columns:minmax(0,1fr) auto;padding:8px 10px;gap:6px}.wordmark{display:flex;align-items:center;gap:8px}.symbol svg{width:28px;height:28px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round}.scorebar{gap:10px}.scorebar #score{font-size:clamp(32px,4vw,48px);color:#ff5847;text-shadow:0 0 10px #ff392866}.score-label{font-size:9px!important;letter-spacing:2px}.record-pair{display:flex;gap:12px}.record-pair .best{display:grid;grid-template-columns:auto auto;gap:2px 5px;align-items:center}.record-pair strong{grid-column:1/-1;font-size:16px;line-height:1.2}.record-pair #best-name,.record-pair #world-name{font:10px ui-monospace,monospace;color:#c4bba9}.record-symbol{display:flex;gap:2px}.record-symbol svg,.balls svg{width:15px;height:15px;fill:none;stroke:#e4bd7e;stroke-width:2}.world-record{opacity:.8}.cabinet-status .mission-panel span{max-width:none}.goal-symbols{display:flex!important;align-items:center;gap:7px}.goal-symbols svg{width:21px;height:21px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.bonus-mark{display:none}.table-panel{display:none}.game-shell{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 60px;gap:2px;padding-top:4px}.table-stage{grid-column:1;grid-row:1}.touch-controls{grid-column:1;grid-row:2}#table{transform-origin:50% 65%}#cabinet-message{position:absolute;left:12%;right:12%;bottom:2px;background:#0b1118;color:#ffcc64;text-align:center;font:bold clamp(14px,2.5vw,23px)/1.4 ui-monospace,monospace;letter-spacing:2px;pointer-events:none;animation:score-flash 1.2s ease-in-out infinite}#cabinet-message[hidden]{display:none}.launch-button svg{width:66px;height:31px;fill:#c4d4df;stroke:#f2f8fc;stroke-width:1.2}.launch-button:disabled{background:#27323c;border-color:#40505c;color:#81949e}.launch-ready .launch-button{background:#ffd474;box-shadow:0 0 13px #ffc35999;animation:ready-glow 1.8s ease-in-out infinite}.launch-ready .ready-ball{filter:drop-shadow(0 0 7px #ffdb80);stroke:#ffe19c;stroke-width:2.5}@keyframes score-flash{50%{opacity:.35}}@keyframes ready-glow{50%{box-shadow:0 0 4px #ffc35955}}
@media(max-width:700px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:4px;padding:6px 7px}.wordmark{gap:5px}.wordmark h1{font-size:12px}.symbol svg{width:21px;height:21px}.scorebar{gap:6px}.scorebar #score{font-size:29px}.record-pair{gap:7px}.record-pair strong{font-size:12px}.record-symbol svg{width:12px;height:12px}.record-pair .best{gap:1px 3px}.record-pair #best-name,.record-pair #world-name{font-size:9px}.score-label{display:none!important}.game-shell{grid-template-rows:minmax(0,1fr) 58px}.cabinet-status .stats{font-size:12px}.cabinet-status .mission-panel{gap:5px}.goal-symbols{gap:5px}.goal-symbols svg{width:19px;height:19px}.cabinet-status .mission-lights{display:none}.launch-button{min-width:84px}.launch-button svg{width:60px}.record-pair{flex-wrap:nowrap}.icon-button{width:36px;height:40px;padding:7px}}
@media(max-width:430px){.topbar{grid-template-columns:1fr}.wordmark{padding-right:44px}.wordmark h1{font-size:15px}.scorebar{justify-content:space-between;padding-right:44px}.scorebar #score{font-size:36px}.record-pair{gap:13px}.record-pair strong{font-size:13px}#menu{position:absolute;right:7px;top:7px}.cabinet-status{gap:7px}.scorebar #pause{display:none}}
@media(orientation:landscape) and (max-height:530px){.game-shell{grid-template-columns:minmax(0,1fr) 80px;grid-template-rows:minmax(0,1fr)}.table-stage{grid-column:1;grid-row:1}.touch-controls{grid-column:2;grid-row:1}.scorebar #score{font-size:28px}.topbar{padding:3px 7px}.cabinet-status{padding-top:2px}.symbol svg{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){#cabinet-message,.launch-ready .launch-button{animation:none}}

/* Pinball-only menu and final screen. */
#ts-game-menu .ts-menu-help{color:var(--ink)}.pinball-slogan{font-size:clamp(26px,4vw,38px);font-weight:800;text-align:center;color:var(--gold);line-height:1.3}.pinball-control-guide{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.pinball-control-guide>span{min-width:100px;min-height:70px;border:1px solid #527187;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:22px}.pinball-control-guide svg{width:32px;height:32px;fill:none;stroke:var(--gold);stroke-width:2}.pinball-control-guide kbd{font:18px ui-monospace,monospace}.bonus-summary h3{font-size:17px;margin:14px 0 8px;color:var(--gold)}#bonus-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.bonus-result{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;border:1px solid #385367;padding:7px 10px;border-radius:8px}.bonus-result .symbol{display:flex;gap:3px}.bonus-result .symbol svg{width:22px;height:22px}.bonus-result strong{font:18px ui-monospace,monospace;text-align:right}.bonus-result>span:last-child{grid-column:1/-1;color:var(--muted);font-size:12px;text-align:right}.end-home{display:block;text-align:center;margin-top:10px;padding:11px;border:1px solid #4d687b;border-radius:12px;color:var(--ink);text-decoration:none;font-size:18px}.end-home:hover{background:#29465a}#end-message:empty{display:none}
@media(min-width:701px) and (min-height:531px){.topbar{grid-template-columns:1fr minmax(220px,1fr) 1fr}.wordmark{grid-column:1;grid-row:1}.scorebar{display:contents}.scorebar>div:first-child{grid-column:2;grid-row:1;text-align:center;justify-self:center}.record-pair{grid-column:3;grid-row:1;justify-self:end;margin-right:110px}.scorebar #pause{position:absolute;right:61px;top:12px}.scorebar #menu{position:absolute;right:10px;top:12px}.cabinet-status{grid-column:1/-1;grid-row:2}.scorebar #score{font-size:clamp(40px,4vw,55px)}}
@media(max-height:530px){.bonus-summary h3{margin:5px 0;font-size:14px}#bonus-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.bonus-result{padding:4px 7px}.bonus-result .symbol svg{height:16px;width:16px}.bonus-result strong{font-size:14px}.end-home{padding:6px;font-size:15px}}

/* Remaining balls stay readable while the launch control is disabled. */
.launch-button:disabled{opacity:1}.launch-button #launch-balls{width:66px;height:31px;flex:none;stroke:#f5fafc;stroke-width:1.1}.launch-button:disabled #launch-balls{opacity:.95}@media(orientation:landscape) and (max-height:530px){.launch-button #launch-balls{width:60px;height:28px}}

/* Final summary shows only earned results, with distinct symbols and readable labels. */
.bonus-result>span.bonus-label{grid-column:1/-1;color:var(--ink);font-size:13px;text-align:left;line-height:1.3}.bonus-result>span.bonus-points{grid-column:1/-1;color:var(--muted);font-size:12px;text-align:right}.bonus-summary[hidden]{display:none}
