:root{--cyan:#57f1ff;--violet:#9b72ff;--pink:#ff5fd0;--orange:#ff9848;--gold:#ffe16a;--green:#72ffc1;--danger:#ff5578;--text:#f8f7ff;--muted:#a59bbb;--bg:#070510;--panel:#130d24;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(ellipse at 50% -10%,var(--page-glow,#37235c) 0,var(--page-mid,#120b24) 36%,var(--bg) 80%);color:var(--text);font-family:Inter,"Noto Sans SC",system-ui,sans-serif}body{overscroll-behavior:none;background-attachment:fixed;transition:background .28s,color .28s}.app{width:min(100%,520px);margin:auto;padding:calc(7px + var(--safe-top)) 11px calc(18px + var(--safe-bottom));transition:padding .2s}.hidden{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body[data-theme="starport"]{--cyan:#57f1ff;--violet:#9b72ff;--pink:#ff5fd0;--orange:#ff9848;--gold:#ffe16a;--green:#72ffc1;--text:#f8f7ff;--muted:#a59bbb;--bg:#070510;--panel:#130d24;--page-glow:#37235c;--page-mid:#120b24;--shell-border:#a77dff99;--shell-glow:#b44cff22}
body[data-theme="forge"]{--cyan:#ffd36c;--violet:#d36a3d;--pink:#ff6738;--orange:#ff8d3f;--gold:#ffe083;--green:#b4ff8a;--text:#fff8ea;--muted:#c3a48f;--bg:#090504;--panel:#21100b;--page-glow:#67301c;--page-mid:#21100b;--shell-border:#ff9c5599;--shell-glow:#ff5b2429}
body[data-theme="abyss"]{--cyan:#63f4e7;--violet:#5a87ff;--pink:#48b8ff;--orange:#7de8c4;--gold:#d7ff8a;--green:#6dffc5;--text:#edfffe;--muted:#88b9bb;--bg:#02090e;--panel:#071923;--page-glow:#0c4852;--page-mid:#071d28;--shell-border:#56e9da8f;--shell-glow:#42e9d72b}
body[data-theme="canyon"]{--cyan:#4ed6c7;--violet:#b85c2d;--pink:#ff9d42;--orange:#ff7a32;--gold:#fff09a;--green:#9dff9a;--text:#fff7df;--muted:#c6a078;--bg:#110805;--panel:#2b150b;--page-glow:#6d3215;--page-mid:#2c1609;--shell-border:#f5b04e99;--shell-glow:#e8842b2b}
body[data-theme="stage"]{--cyan:#9cff3f;--violet:#a85cff;--pink:#ff4fe1;--orange:#ff7b42;--gold:#ffe75e;--green:#76ffca;--text:#fff4ff;--muted:#bd91c7;--bg:#09030e;--panel:#24102e;--page-glow:#5a1a73;--page-mid:#22072f;--shell-border:#d161ff99;--shell-glow:#ff4fe12b}
.topbar{min-height:52px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px}.topbar>a{display:grid;place-items:center;width:39px;height:39px;border:1px solid #a786ff66;border-radius:14px;color:#fff;text-decoration:none;font-size:31px;background:linear-gradient(145deg,#2a1e47,#100c20);box-shadow:inset 0 1px #fff2,0 8px 20px #0008}.brand{min-width:0}.brand span{display:block;color:var(--cyan);font-size:8px;letter-spacing:1.7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand h1{margin:3px 0 0;font-size:21px;line-height:1}.account{text-align:right;max-width:105px}.account b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account small{color:var(--gold);font-size:9px;font-weight:850}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:5px 0 7px}.modes button,.overlay button{min-height:44px;border:1px solid #7f6aad77;border-radius:13px;background:linear-gradient(180deg,#261a41,#130d27);color:#bdb2d3;font-weight:850;box-shadow:inset 0 1px #fff1}.modes button.active{color:#fff;border-color:var(--pink);background:linear-gradient(180deg,color-mix(in srgb,var(--pink) 38%,#21142f),var(--panel));box-shadow:0 0 19px color-mix(in srgb,var(--pink) 20%,transparent),inset 0 1px #fff3}
.theme-picker{margin:3px 0 9px}.theme-picker-head{display:flex;align-items:center;justify-content:space-between;margin:0 3px 6px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.4px}.theme-picker-head small{color:var(--cyan);font-size:10px}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.theme-option{min-width:0;min-height:68px;display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:5px;border:1px solid color-mix(in srgb,var(--muted) 34%,transparent);border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,#fff 3%);color:var(--text);text-align:center;box-shadow:inset 0 1px #fff1;transition:transform .16s,border-color .16s,background .16s}.theme-option>i{display:block;flex:0 0 29px;width:100%;height:29px;border-radius:8px;border:1px solid #fff4;box-shadow:inset 0 0 9px #fff2,0 3px 8px #0007}.theme-option[data-theme="starport"]>i{background:radial-gradient(circle at 50% 50%,#fff 0 5%,#ff5fd0 7% 14%,transparent 16%),linear-gradient(120deg,transparent 0 45%,#5cf1ff55 46% 49%,transparent 50%),linear-gradient(145deg,#251044,#073249)}.theme-option[data-theme="forge"]>i{background:radial-gradient(circle at 50% 50%,#ffe595 0 6%,#ff672f 9% 17%,transparent 20%),repeating-linear-gradient(135deg,#ffb14c 0 5px,#4a160d 5px 10px)}.theme-option[data-theme="abyss"]>i{background:radial-gradient(circle at 55% 55%,transparent 0 16%,#62f2df 18% 21%,transparent 23% 31%,#48b8ff88 32% 34%,transparent 36%),linear-gradient(145deg,#052032,#0b5b63)}.theme-option span{min-width:0;display:block}.theme-option b,.theme-option small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-option b{font-size:10px}.theme-option small{display:none}.theme-option.active{border-color:var(--cyan);background:color-mix(in srgb,var(--panel) 75%,var(--cyan) 12%);box-shadow:0 0 15px color-mix(in srgb,var(--cyan) 18%,transparent),inset 0 1px #fff3;transform:translateY(-1px)}
body[data-theme="forge"] .topbar>a,body[data-theme="forge"] .modes button,body[data-theme="forge"] .controls button{background:linear-gradient(180deg,#30170f,#150b08);border-color:#b95f3877}body[data-theme="abyss"] .topbar>a,body[data-theme="abyss"] .modes button,body[data-theme="abyss"] .controls button{background:linear-gradient(180deg,#0d2d38,#06151d);border-color:#4fcfc677}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:6px 0}.stats div{position:relative;overflow:hidden;padding:6px 2px 5px;text-align:center;border:1px solid color-mix(in srgb,var(--muted) 30%,transparent);border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 88%,#fff 4%),color-mix(in srgb,var(--bg) 90%,var(--panel)));box-shadow:inset 0 1px #fff1}.stats div:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--pink)}.stats small{display:block;color:var(--muted);font-size:8px}.stats strong{font-size:15px}.stats div:nth-child(2) strong{color:var(--gold)}.stats div:nth-child(3) strong{color:var(--pink)}.stats div:nth-child(4) strong{color:var(--cyan)}
.table-shell{position:relative;height:clamp(450px,67vh,650px);overflow:hidden;border:1px solid var(--shell-border,#a77dff99);border-bottom:0;border-radius:25px 25px 0 0;background:var(--bg);box-shadow:0 22px 60px #000c,0 0 38px var(--shell-glow,#b44cff22),inset 0 0 40px color-mix(in srgb,var(--violet) 20%,transparent);touch-action:none;user-select:none;isolation:isolate;transition:border-color .25s,box-shadow .25s}.table-shell:before{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;border:2px solid #fff1;border-bottom:0;border-radius:inherit;box-shadow:inset 8px 0 16px #dca8ff10,inset -8px 0 16px #5deeff0c}.table-shell:after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 0 18%,#fff4 20%,transparent 23% 64%,#fff2 66%,transparent 70%);opacity:.12}canvas{display:block;width:100%;height:100%;touch-action:none}
body[data-theme="starport"] .table-shell{border-color:#aaa3c8b8;background:#050711;box-shadow:0 26px 70px #000e,0 0 32px #7e5cff2b,inset 0 0 46px #0008}body[data-theme="starport"] .table-shell:before{border-color:#e9e5ff20;box-shadow:inset 10px 0 20px #d9c8ff12,inset -10px 0 20px #63eaff0d}body[data-theme="starport"] .stats div{border-color:#79758e80;background:linear-gradient(180deg,#353444 0,#171927 35%,#090b13 100%);box-shadow:inset 0 1px #fff4,inset 0 -4px 10px #0008,0 5px 14px #0008}body[data-theme="starport"] .controls button{border-color:#69677d88;background:linear-gradient(180deg,#353444,#171925 38%,#090b13);box-shadow:inset 0 1px #fff4,inset 0 -5px 10px #0008,0 8px 20px #0009}body[data-theme="starport"] .controls button.launch{border-color:#ffe16a99;background:linear-gradient(180deg,#4d4938,#242318 38%,#0d0c08)}
.table-hud{position:absolute;z-index:5;top:auto;bottom:8px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 54px);overflow:hidden;padding:6px 11px;border:1px solid color-mix(in srgb,var(--cyan) 34%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(7px);font-size:11px;letter-spacing:.25px;color:color-mix(in srgb,var(--text) 82%,var(--muted));pointer-events:none}.drain-rule{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;white-space:nowrap;color:color-mix(in srgb,var(--gold) 82%,var(--text));font-size:9px;font-weight:850;letter-spacing:.1px}.drain-rule b{color:var(--gold);font-size:8px;text-shadow:0 0 7px color-mix(in srgb,var(--gold) 58%,transparent)}#mission{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-hud i{flex:0 0 auto;font-style:normal;color:var(--gold);font-size:11px;letter-spacing:2px}.feedback{position:absolute;z-index:6;left:50%;bottom:42px;translate:-50%;width:max-content;max-width:calc(100% - 24px);padding:6px 12px;border:1px solid color-mix(in srgb,var(--pink) 52%,transparent);border-radius:999px;background:color-mix(in srgb,var(--bg) 90%,transparent);color:var(--text);font-size:10px;font-weight:800;text-align:center;box-shadow:0 7px 20px #000a,0 0 16px color-mix(in srgb,var(--pink) 18%,transparent);transition:transform .15s,opacity .15s}.feedback.flash{transform:scale(1.04)}.feedback.success{border-color:var(--green)}.feedback.error{border-color:var(--danger);color:#ffdce3}
.overlay{position:absolute;z-index:9;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--panel) 80%,var(--pink) 20%),color-mix(in srgb,var(--bg) 88%,transparent) 58%,var(--bg));backdrop-filter:blur(2px)}.overlay .eyebrow{margin:17px 0 4px;color:var(--cyan);font-size:8px;letter-spacing:2px}.overlay h2{margin:4px 0;font-size:25px}.overlay p{margin:5px 0 18px;color:color-mix(in srgb,var(--text) 72%,var(--muted));font-size:12px;line-height:1.65}.overlay button{width:min(260px,88%);border-color:var(--pink);background:linear-gradient(180deg,color-mix(in srgb,var(--pink) 62%,#fff 5%),color-mix(in srgb,var(--pink) 35%,var(--panel)));color:#fff;box-shadow:0 10px 28px #000a,0 0 24px color-mix(in srgb,var(--pink) 25%,transparent)}.overlay button.secondary{margin-top:8px;border-color:var(--muted);background:var(--panel)}.reactor-logo{position:relative;width:91px;height:91px;border:2px solid var(--pink);border-radius:50%;background:radial-gradient(circle,#fff 0 5%,var(--gold) 6% 11%,var(--pink) 12% 20%,var(--panel) 21% 43%,var(--bg) 44%);box-shadow:0 0 24px color-mix(in srgb,var(--pink) 58%,transparent),0 0 60px color-mix(in srgb,var(--violet) 42%,transparent)}.reactor-logo:before,.reactor-logo:after,.reactor-logo i{content:"";position:absolute;inset:9px;border:1px solid var(--cyan);border-radius:50% 46% 52% 48%;animation:orbit 4.2s linear infinite}.reactor-logo:after{inset:18px;border-color:var(--gold);animation-direction:reverse;animation-duration:3s}.reactor-logo i:nth-child(1){inset:-8px 36px;border-radius:50%;border-color:var(--pink)}.reactor-logo i:nth-child(2){inset:36px -8px;border-radius:50%;border-color:var(--cyan)}.reactor-logo i:nth-child(3){inset:3px;animation-duration:7s}
.controls{display:grid;grid-template-columns:1fr .78fr 1fr;gap:7px;margin-top:7px}.controls button{min-height:57px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid color-mix(in srgb,var(--muted) 38%,transparent);border-radius:15px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 86%,#fff 5%),var(--panel));color:var(--text);font-weight:850;box-shadow:inset 0 1px #fff2,0 6px 18px #0006;touch-action:none}.controls button span{color:var(--pink);font-size:22px;text-shadow:0 0 10px var(--pink)}.controls button.launch{border-color:color-mix(in srgb,var(--gold) 58%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 20%,var(--panel)),var(--panel))}.controls button.launch span{color:var(--gold);font-size:17px;text-shadow:0 0 11px var(--gold)}.controls button.pressed{transform:translateY(2px);filter:brightness(1.45);box-shadow:inset 0 2px 9px #0009,0 0 19px color-mix(in srgb,var(--pink) 28%,transparent)}.app.is-playing.is-waiting-launch .controls button.launch{animation:launch-ready .9s ease-in-out infinite alternate;border-color:var(--gold)}
.message{min-height:17px;margin:6px 2px;color:#aca1bc;font-size:10px;text-align:center}.message a{color:var(--cyan)}.ranking{margin-top:7px;padding:11px;border:1px solid #4e3c7066;border-radius:16px;background:#100a20cf}.ranking>div{display:flex;align-items:center;justify-content:space-between}.ranking h2{margin:0;font-size:14px}.ranking span{color:var(--pink);font-size:10px}.ranking ol{margin:8px 0 0;padding:0;list-style:none;color:#d3c9df;font-size:11px;line-height:1.7}.rules{margin:10px 4px 0;color:#82768f;font-size:9px;line-height:1.55}
.app>[data-player-state]{margin:4px 0 6px;padding:8px}.app>[data-player-state] .ps-head{margin-bottom:5px}.app [data-player-state] .ps-grid{grid-template-columns:1fr 1fr;gap:5px}.app [data-player-state] .ps-grid>span{padding:5px}.app.is-session-focused{max-width:430px}.app.is-playing{padding-top:calc(2px + var(--safe-top))}.app.is-playing [data-player-state],.app.is-playing [data-settlement],.app.is-playing .modes,.app.is-playing .theme-picker,.app.is-playing .ranking,.app.is-playing .rules,.app.is-playing .message{display:none!important}.app.is-playing .topbar{display:none}.app.is-playing .topbar>a,.app.is-playing .account{visibility:hidden}.app.is-playing .brand{text-align:center}.app.is-playing .brand span{display:none}.app.is-playing .brand h1{font-size:15px}.app.is-playing .stats{margin:2px 0 4px}.app.is-playing .stats div{padding:3px 1px}.app.is-playing .stats small{font-size:7px}.app.is-playing .stats strong{font-size:13px}.app.is-playing .table-shell{height:clamp(500px,79vh,680px)}.app.is-playing .controls{margin-top:4px}.app.is-playing .controls button{min-height:50px;height:50px}.app.is-playing .feedback{opacity:0;transform:translateY(5px)}.app.is-playing .feedback.flash,.app.is-playing .feedback.error{opacity:1;transform:translateY(0)}.app.is-settled{max-width:430px;min-height:100dvh;display:grid;align-content:center;padding:calc(8px + var(--safe-top)) 11px calc(8px + var(--safe-bottom))}.app.is-settled .topbar,.app.is-settled>[data-player-state],.app.is-settled>[data-settlement],.app.is-settled .modes,.app.is-settled .theme-picker,.app.is-settled .stats,.app.is-settled .ranking,.app.is-settled .rules,.app.is-settled .message{display:none!important}.app.is-settled .table-shell{width:100%;height:min(720px,calc(100dvh - 16px - var(--safe-top) - var(--safe-bottom)));border-bottom:1px solid var(--shell-border,#a77dff99);border-radius:25px}.app.is-settled .controls{display:none}.app.is-settled .overlay{overflow-y:auto;overscroll-behavior:contain;padding:18px 20px}.app.is-settled .overlay .reactor-logo{width:82px;height:82px}.controls button:disabled{opacity:.38;filter:saturate(.45);box-shadow:inset 0 1px #fff1;cursor:not-allowed}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes launch-ready{to{filter:brightness(1.32);box-shadow:inset 0 1px #fff4,0 0 24px color-mix(in srgb,var(--gold) 58%,transparent)}}
@media(max-height:690px){.app{padding-top:calc(3px + var(--safe-top))}.topbar{min-height:42px}.table-shell{height:410px}.ranking{padding:8px}.rules{display:none}.app.is-playing .table-shell{height:500px}.app.is-playing .controls button{min-height:47px;height:47px}}
@media(max-height:600px){.app.is-playing .topbar{min-height:28px}.app.is-playing .table-shell{height:452px}.app.is-playing .controls button{min-height:44px;height:44px}.app.is-playing .controls{margin-top:3px}}
@media(max-width:350px){.app{padding-left:7px;padding-right:7px}.theme-options{gap:4px}.theme-option{padding:5px 4px;gap:4px}.theme-option>i{width:18px;flex-basis:18px}.theme-option b{font-size:8px}.controls{gap:6px}.controls button{font-size:12px;padding:0 5px}.controls button span{font-size:21px}.brand h1{font-size:19px}.stats small{font-size:8px}.table-hud{padding:7px 10px;font-size:10px;letter-spacing:.2px}.table-hud i{font-size:12px}.feedback{font-size:11px}.app.is-playing .controls button{min-height:50px;height:50px}.app>[data-player-state]{font-size:12px}.app>[data-player-state] .ps-grid small{font-size:9px}}
@media(max-width:350px) and (max-height:600px){.app.is-playing .controls button{min-height:44px;height:44px}}
.board-option{min-height:78px}.board-option small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.board-option[data-board="starport"]>i{background:radial-gradient(circle at 50% 58%,#fff 0 4%,#ff5fd0 6% 12%,transparent 14%),linear-gradient(32deg,transparent 40%,#61efff88 42% 47%,transparent 49%),linear-gradient(145deg,#251044,#073249)}.board-option[data-board="forge"]>i{background:radial-gradient(circle at 50% 60%,#ffe595 0 6%,#ff672f 9% 20%,#4a160d 22% 34%,transparent 36%),linear-gradient(150deg,#4a160d,#ff7b3255)}.board-option[data-board="abyss"]>i{background:radial-gradient(ellipse at 50% 70%,transparent 0 20%,#62f2df 22% 25%,transparent 27% 38%,#48b8ff88 40% 43%,transparent 45%),linear-gradient(145deg,#052032,#0b5b63)}.board-option:disabled{opacity:.58;filter:saturate(.7);transform:none}
.board-picker .theme-options{grid-template-columns:repeat(2,minmax(0,1fr))}.board-picker .board-option{min-height:72px;flex-direction:row;align-items:center;gap:8px;padding:7px;text-align:left}.board-picker .board-option>i{flex:0 0 48px;width:48px;height:48px}.board-picker .board-option span{flex:1}.board-picker .board-option b{font-size:11px}.board-picker .board-option small{white-space:normal;line-height:1.3}.board-picker .board-option:last-child{grid-column:1/-1}.board-option[data-board="canyon"]>i{background:repeating-linear-gradient(90deg,transparent 0 7px,#fff09a55 8px 10px,transparent 11px 18px),linear-gradient(68deg,transparent 0 42%,#4ed6c7 44% 48%,transparent 50%),linear-gradient(112deg,transparent 0 42%,#4ed6c7 44% 48%,transparent 50%),linear-gradient(145deg,#6d3215,#1a0a05)}.board-option[data-board="stage"]>i{background:radial-gradient(circle at 25% 70%,transparent 0 10%,#ff4fe1 12% 17%,transparent 19%),radial-gradient(circle at 75% 70%,transparent 0 10%,#9cff3f 12% 17%,transparent 19%),conic-gradient(from 170deg at 50% 0,#ff4fe166,transparent 22%,#ffe75e55 34%,transparent 48%,#9cff3f55 64%,transparent 78%),linear-gradient(145deg,#321048,#09030e)}body[data-theme="canyon"] .topbar>a,body[data-theme="canyon"] .modes button,body[data-theme="canyon"] .controls button{background:linear-gradient(180deg,#3a1c0d,#170b06);border-color:#d58b4877}body[data-theme="stage"] .topbar>a,body[data-theme="stage"] .modes button,body[data-theme="stage"] .controls button{background:linear-gradient(180deg,#351240,#16081d);border-color:#c457d477}@media(max-width:350px){.board-picker .board-option{gap:5px;padding:5px}.board-picker .board-option>i{width:42px;height:42px;flex-basis:42px}.board-picker .board-option b{font-size:9px}.board-picker .board-option small{font-size:7px}}
.board-picker.is-random .theme-options{display:none}.board-picker.is-random .theme-picker-head{min-height:44px;margin:0;padding:8px 11px;border:1px solid color-mix(in srgb,var(--cyan) 32%,transparent);border-radius:13px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 92%,var(--cyan) 8%),color-mix(in srgb,var(--bg) 94%,var(--panel)));box-shadow:inset 0 1px #fff1,0 7px 18px #0004}.board-picker.is-random .theme-picker-head:before{content:"✦";flex:0 0 auto;margin-right:7px;color:var(--gold);font-size:15px;text-shadow:0 0 12px color-mix(in srgb,var(--gold) 65%,transparent)}.board-picker.is-random .theme-picker-head span{flex:1;color:var(--text);font-size:11px}.board-picker.is-random .theme-picker-head small{max-width:44%;text-align:right;line-height:1.25}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
