:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#050905;--bg-panel:#0a120a;--bg-raised:#0f1c0f;--border:#1e3320;--fg:#b9e6bb;--fg-dim:#62895f;--accent:#0f6;--accent-soft:#00ff6624;--danger:#ff5050;--warn:#ffc24d;--info:#59d8ff;--glow:0 0 10px #0f66;--glow-soft:0 0 6px #00ff6640;--sym-0:#0f6;--sym-1:#00d2ff;--sym-2:#ff9d00;--sym-3:#ffe600;--sym-4:#b3ff00;--sym-5:#8a8aff;--sym-6:#4da6ff;--sym-7:#ff4d6a;--sym-8:#c45dff;--sym-9:#ff6bd6;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--mono);margin:0;font-size:14px;line-height:1.5}body:after{content:"";position:fixed;pointer-events:none;opacity:.35;z-index:9999;background:repeating-linear-gradient(0deg,#00000029 0 1px,#0000 1px 3px);inset:0}::selection{background:var(--accent);color:var(--bg)}a{color:inherit}.app{display:flex;flex-direction:column;min-height:100vh}.app-main{display:grid;grid-template-columns:300px minmax(0,1fr)300px;flex:1;align-items: start;gap:16px;padding:0 16px 56px}@media (max-width:900px){.app-main{grid-template-columns:1fr}}.header{display:flex;align-items: center;gap:12px;padding:14px 16px}.brand .logo{display:block;filter:drop-shadow(0 0 6px #00ff6659)}.avatar{font-family:var(--mono);letter-spacing:0;user-select:none;text-shadow:0 0 6px;margin:0;font-size:11px;line-height:1}.your-move{text-transform:uppercase;letter-spacing:1px;color:var(--accent);animation:blink 1s steps(1)infinite;margin-top:6px;font-size:10px}.tile--live .badge{padding:2px 6px;font-size:9px}.brand{display:flex;letter-spacing:.5px;color:var(--accent);text-shadow:var(--glow-soft);white-space:nowrap;align-items: center;margin:0;font-size:22px;font-weight:700}.brand-home{display:flex;color:inherit;text-decoration:none;align-items: center;gap:12px}.brand-home:hover{filter:brightness(1.15)}.brand .cursor{display:inline-block;animation:blink 1.1s steps(1)infinite;margin-left:2px}@keyframes blink{50%{opacity:0}}.brand>a:not(.brand-home){color:var(--fg-dim);display:flex;align-items: center;margin-left:10px}.brand>a:not(.brand-home):hover{color:var(--accent)}.persona{display:flex;align-items: center;gap:10px;margin-left:auto}.persona input{text-align:right;text-transform:uppercase;letter-spacing:1px;width:220px}.persona .avatar{font-size:13px}.panel{border:1px solid var(--border);background:var(--bg-panel);margin-bottom:16px;padding:14px}.panel-title{text-transform:lowercase;letter-spacing:1px;color:var(--accent);margin:0 0 12px;font-size:12px}.panel-title:before{content:"> "}.field{margin-bottom:10px}.field label{display:block;text-transform:uppercase;letter-spacing:1px;color:var(--fg-dim);margin-bottom:4px;font-size:11px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}input,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--border);outline:none;border-radius:0;width:100%;padding:7px 9px}input:focus,select:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}input::placeholder{color:var(--fg-dim);opacity:.7}.check{display:flex;cursor:pointer;text-transform:uppercase;letter-spacing:1px;color:var(--fg-dim);align-items: center;gap:8px;margin:12px 0 10px;font-size:12px}.check input{accent-color:var(--accent);width:auto}.btn{font:inherit;display:inline-block;cursor:pointer;color:var(--accent);border:1px solid var(--accent);text-transform:uppercase;letter-spacing:1px;background:0 0;border-radius:0;padding:8px 14px;transition:background .1s,color .1s,box-shadow .1s;font-size:12px}.btn:hover{background:var(--accent);color:var(--bg);box-shadow:var(--glow)}.btn--ghost{color:var(--fg-dim);border-color:var(--border)}.btn--ghost:hover{color:var(--accent);border-color:var(--accent);box-shadow:var(--glow-soft);background:0 0}.stage{min-width:0;padding-top:4px}.stage-empty{color:var(--fg-dim);text-align:center;padding:48px 0}.stage-empty:before{content:"$ ";color:var(--accent)}.status-row{display:flex;flex-wrap:wrap;align-items: center;gap:12px;margin-bottom:14px}.game-name{font-size:20px;font-weight:700}.badge{text-transform:uppercase;letter-spacing:1px;border:1px solid;padding:4px 10px;font-size:11px}.badge--wait{color:var(--warn)}.badge--live{color:var(--accent);text-shadow:var(--glow-soft)}.badge--done{color:var(--info)}.badge--dead{color:var(--danger)}.board{--cell:min(calc((100vw - 64px)/var(--n)),calc(620px/var(--n)));display:grid;grid-template-columns:repeat(var(--n),var(--cell));gap:4px;margin:4px 0 8px}.cell{width:var(--cell);height:var(--cell);display:flex;font-size:calc(var(--cell)*.45);background:var(--bg-panel);border:1px solid var(--border);cursor:not-allowed;user-select:none;justify-content:center;align-items: center;font-weight:700}.cell.is-open{cursor:pointer}.cell.is-open:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--glow-soft)}.cell.is-win{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--glow);text-shadow:var(--glow)}.sym-0{color:var(--sym-0)}.sym-1{color:var(--sym-1)}.sym-2{color:var(--sym-2)}.sym-3{color:var(--sym-3)}.sym-4{color:var(--sym-4)}.sym-5{color:var(--sym-5)}.sym-6{color:var(--sym-6)}.sym-7{color:var(--sym-7)}.sym-8{color:var(--sym-8)}.sym-9{color:var(--sym-9)}.roster{margin-top:14px}.roster-title{text-transform:lowercase;letter-spacing:1px;color:var(--fg-dim);margin-bottom:8px;font-size:12px}.roster-title:before{content:"> ";color:var(--accent)}.roster-row{display:flex;flex-flow:wrap;gap:10px}.player-card{display:flex;border:1px solid var(--border);background:var(--bg-panel);flex-direction:column;align-items: center;gap:4px;min-width:84px;padding:8px 12px}.player-card.is-turn{box-shadow:var(--glow-soft);border-color:currentColor}.player-card .sym{font-size:20px;font-weight:700}.player-card .avatar{font-size:10px}.player-card .name{color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:11px}.player-card .turn-tag{text-transform:uppercase;letter-spacing:1px;font-size:10px}.clock{font-variant-numeric:tabular-nums;color:var(--fg);font-size:13px}.clock.is-running{color:var(--accent);text-shadow:var(--glow-soft)}.clock.is-low{color:var(--danger);animation:blink 1s steps(1)infinite}.rail-title{text-transform:lowercase;letter-spacing:1px;color:var(--fg-dim);margin:4px 0 8px;font-size:12px}.rail-title:before{content:"> ";color:var(--accent)}.tile{border:1px solid var(--border);background:var(--bg-panel);cursor:pointer;display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;padding:10px 12px}.tile:hover{border-color:var(--fg-dim)}.tile.is-active{border-color:var(--accent);box-shadow:var(--glow-soft)}.tile .tile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;margin-bottom:6px;font-size:13px}.tile .badge{padding:2px 6px;font-size:9px}.tile-meta{display:grid;grid-template-columns:auto auto;color:var(--fg-dim);white-space:nowrap;align-content: start;gap:2px 6px;font-size:11px}.share{position:relative}.popover{position:absolute;z-index:10;border:1px solid var(--accent);background:var(--bg-panel);box-shadow:var(--glow-soft);width:256px;padding:10px;top:calc(100% + 8px);right:0}.qr-card{background:#fff;margin-bottom:10px;padding:6px}.qr-card svg{display:block;width:100%;height:auto}.pills{display:flex;justify-content:center;gap:8px;margin-bottom:10px}.pill{text-transform:uppercase;letter-spacing:1px;border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;padding:3px 10px;font-size:11px}.pill.is-on{border-color:var(--accent);color:var(--accent)}.popover .btn{text-align:center;width:100%}.footer{position:fixed;text-align:center;color:var(--fg-dim);background:var(--bg);border-top:1px solid var(--border);padding:8px;font-size:12px;bottom:0;left:0;right:0}.footer .heart{color:var(--danger)}.footer .reconnecting{color:var(--danger);animation:blink 1.2s steps(1)infinite}.divider{border:0;border-top:1px solid var(--border);margin:16px 0}.status-feed{position:fixed;z-index:50;display:flex;pointer-events:none;flex-direction:column;align-items: center;gap:4px;bottom:40px;left:50%;transform:translate(-50%)}.status-msg{background:var(--bg-panel);border:1px solid var(--border);padding:4px 12px;font-size:12px}.status-msg--ok{color:var(--accent);border-color:var(--accent);box-shadow:var(--glow-soft)}.status-msg--info{color:var(--info)}.status-msg--warn{color:var(--warn);border-color:var(--warn)}.status-msg--err{color:var(--danger);border-color:var(--danger)}.help-toggle{font:inherit;color:var(--fg-dim);cursor:pointer;background:0 0;border:none;font-size:12px}.help-toggle:hover{color:var(--accent)}.overlay{position:fixed;display:flex;z-index:100;background:#000000b3;justify-content:center;align-items: center;inset:0}.overlay-panel{overflow-y:auto;background:var(--bg-panel);border:1px solid var(--accent);box-shadow:var(--glow-soft);width:min(560px,92vw);max-height:86vh;padding:20px;font-size:13px}.overlay-panel p{margin:0 0 10px}.overlay-panel b{color:var(--accent);font-weight:700}.overlay-panel code{color:var(--info)}.overlay-close{margin-top:10px}.sync-block{display:flex;flex-direction:column;align-items: center}.sync-block .qr-card{width:200px;margin:0 auto}.sync-block .qr-card svg{display:block;width:100%;height:auto}.dim{color:var(--fg-dim);font-size:12px}.welcome p{max-width:52ch;margin:0 0 12px}.welcome-actions{display:flex;flex-wrap:wrap;align-items: center;gap:14px}.replay-controls{display:flex;gap:8px;margin:10px 0}.board-list{list-style:none;margin:10px 0 0;padding:0}.board-row{display:grid;grid-template-columns:20px 1fr auto;border-bottom:1px solid var(--border);gap:8px;padding:3px 0;font-size:13px}.board-handle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-rating{color:var(--accent);font-variant-numeric:tabular-nums}.tile-replay{margin-top:6px;padding:2px 8px;font-size:9px}.cell{font-family:var(--mono);color:inherit;padding:0}.cell:disabled{opacity:1}.cell.is-open:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){.brand .cursor,.your-move,.clock.is-low,.footer .reconnecting{animation:none}body:after{display:none}}.robot-picker{display:inline-flex;align-items: center;gap:8px}.robot-picker select{width:auto;padding:6px 8px;font-size:12px}@media (max-width:900px){.stage{order:-1}.persona input{width:140px}}.footer-link{color:var(--fg-dim);text-decoration:none}.footer-link:hover{color:var(--accent)}
