:root{--bg:#0e0f14;--panel:#171923e6;--panel-solid:#171923;--edge:#ffffff14;--edge-strong:#ffffff29;--text:#eceff4;--muted:#8a93a6;--dim:#4a5160;--gold:#f5e663;--green:#52e07a;--red:#ff4d5e;--ff:#ff3b3b;--shadow:0 10px 30px #00000073;--radius:.75rem;--radius-sm:.45rem;--font:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--el-water:#3b9dff;--el-life:#4ce07a;--el-shield:#f5e663;--el-cold:#bfefff;--el-lightning:#c77dff;--el-arcane:#ff3b3b;--el-earth:#b5752d;--el-fire:#ff7a1a;--el-steam:#e6e6e6;--el-ice:#8ed8ff;--top-bar:40px}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:clamp(13px,.6vw + 8px,26px)}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;margin:0;line-height:1.35;overflow:hidden}[hidden]{display:none!important}#game{inset:var(--top-bar) 0 0 0;width:100vw;height:calc(100vh - var(--top-bar));touch-action:none;display:block;position:fixed}#ui{inset:var(--top-bar) 0 0 0;pointer-events:none;z-index:10;position:fixed}.top-bar{z-index:60;height:var(--top-bar);padding:0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));color:#f9fafb;background:#111827eb;align-items:center;font:14px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;position:fixed;top:0;left:0;right:0}.top-bar-home{color:inherit;border-radius:4px;padding:6px 4px;text-decoration:none}.top-bar-home:hover{text-decoration:underline}.top-bar-home:focus-visible{outline-offset:2px;outline:2px solid #f9fafb}.overlay{pointer-events:none;position:absolute;inset:0}.overlay>*{pointer-events:auto}.noscript{place-items:center;font-size:1.25rem;display:grid;position:fixed;inset:0}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.25rem;font-size:.72rem;display:block}.muted{color:var(--muted)}.hint{color:var(--muted);min-height:1.2em;font-size:.85rem}.row{align-items:center;gap:.5rem;display:flex}kbd.key{border:1px solid var(--edge-strong);font-family:var(--font);color:var(--text);white-space:nowrap;vertical-align:baseline;background:#ffffff0f;border-bottom-width:2px;border-radius:.35em;padding:.05em .45em;font-size:.85em;font-weight:700;display:inline-block}.btn{appearance:none;border:1px solid var(--edge-strong);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;background:#ffffff12;border-radius:999px;padding:.5rem 1.1rem;font-weight:600;transition:background .12s,transform 80ms,opacity .12s}.btn:hover{background:#ffffff21}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn:focus-visible,.tab:focus-visible,.swatch:focus-visible,.book-content:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.book-content:focus-visible{outline-offset:-2px}.settings-panel:focus,.book-panel:focus,.results-panel:focus{outline:none}.btn-primary{background:var(--gold);color:#1a1600;border-color:#0000}.btn-primary:hover{background:#fff08a}.btn-ghost{background:0 0}.btn-sm{padding:.3rem .8rem;font-size:.85rem}.btn-wide{width:100%}.btn-on{border-color:var(--green);color:var(--green)}.input{appearance:none;border:1px solid var(--edge-strong);border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;-webkit-user-select:text;user-select:text;background:#00000059;outline:none;padding:.55rem .8rem}.input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #f5e6632e}.input-code{text-transform:uppercase;letter-spacing:.25em;width:8.5em;font-weight:700}textarea.clip{opacity:0;position:fixed;top:0;left:-9999px}.chip{--c:var(--el-steam);--fg:#111;background:var(--c);min-width:1.7em;height:1.7em;color:var(--fg);letter-spacing:.02em;vertical-align:middle;border-radius:.4em;justify-content:center;align-items:center;padding:0 .4em;font-size:.9rem;font-weight:800;display:inline-flex;box-shadow:inset 0 -2px #00000047,0 1px 2px #0006}.chip-sm{font-size:.72rem}.chip-lg{font-size:1.15rem}.el-water{--c:var(--el-water)}.el-life{--c:var(--el-life)}.el-shield{--c:var(--el-shield)}.el-cold{--c:var(--el-cold)}.el-lightning{--c:var(--el-lightning)}.el-arcane{--c:var(--el-arcane);--fg:#fff}.el-earth{--c:var(--el-earth);--fg:#fff}.el-fire{--c:var(--el-fire)}.el-steam{--c:var(--el-steam)}.el-ice{--c:var(--el-ice)}.el-mud{--c:#7a5a36;--fg:#fff}.el-lava{--c:#ff4a12;--fg:#fff}.el-spring{--c:#5ee6c8}.el-plasma{--c:#ff66e0}.el-flux{--c:#9b5cff;--fg:#fff}.el-stillness{--c:#a9c7d9}.el-obsidian{--c:#5b4a78;--fg:#fff}.el-ether{--c:#b8a6ff}.el-cloud{--c:#c9d3dc}.el-ash{--c:#8a7f78;--fg:#fff}.el-rime{--c:#e3f7ff}.el-moment{--c:#ffd27a}.el-dragonfire{--c:#ff2e63;--fg:#fff}.el-stormglass{--c:#6b5bd6;--fg:#fff}.el-thunderhead{--c:#6e7fa8;--fg:#fff}.el-time{--c:#e8b04a}.el-tide{--c:#1f6fe0;--fg:#fff}.el-pulse{--c:#7cffb0}.el-void{--c:#2a1840;--fg:#fff}.el-wildfire{--c:#ffa318}.el-whirlpool{--c:#2bb8c8}.el-deluge{--c:#3a5fa8;--fg:#fff}.el-inferno{--c:#e8241a;--fg:#fff}.el-glacier{--c:#7fc4e8}.el-soul{--c:#c8f0ff}.el-sun{--c:#ffe14a}.el-winter{--c:#d8ecfa}.el-death{--c:#4a4a52;--fg:#fff}.chip-unknown{--c:#2a2e3a;--fg:#8a93a6}.weave-unknown{opacity:.6}.weave-progress{color:var(--gold,#f5e663);margin:.2rem 0 .6rem;font-weight:800}.weave-revealed{color:#9ff0c8}.badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--edge-strong);color:var(--muted);border-radius:999px;margin-left:.4rem;padding:.1em .55em;font-size:.72rem;font-weight:700;display:inline-block}.badge-host{color:var(--gold);border-color:#f5e66380}.badge-ready{color:var(--green);border-color:#52e07a80}.badge-wait{color:var(--muted)}.badge-away{color:var(--red);border-color:#ff4d5e80}.badge-menace{color:var(--ff);border-color:#ff3b3b99}.status-tag{--c:var(--muted);border:1px solid var(--c);color:var(--c);white-space:nowrap;border-radius:.35em;padding:.1em .5em;font-size:.85rem;font-weight:700;display:inline-block}.st-wet{--c:#3b9dff}.st-burning{--c:#ff7a1a}.st-chilled{--c:#bfefff}.st-frozen{--c:#8ed8ff}.st-shocked{--c:#c77dff}.st-knockdown{--c:#c9c9c9}.st-hasted{--c:#f5e663}.st-slowed{--c:#9aa0a6}.card{border:1px solid var(--edge);border-radius:var(--radius-sm);background:#00000040;padding:.75rem .9rem}.card h3,.group-title{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 .5rem;font-size:.8rem}#toasts{pointer-events:none;z-index:50;flex-direction:column;align-items:center;gap:.4rem;width:min(90vw,32rem);display:flex;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:1px solid var(--edge-strong);box-shadow:var(--shadow);text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;padding:.55rem 1rem;font-size:.95rem;transition:opacity .35s,transform .35s;animation:.18s ease-out toast-in}.toast-error{border-color:#ff4d5e99}.toast-success{border-color:#52e07a99}.toast-out{opacity:0;transform:translateY(-.5rem)}@keyframes toast-in{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:none}}.landing{pointer-events:auto;background:radial-gradient(at 50% 40%,#3c326e73,#0e0f14eb 70%);place-items:center;display:grid}.landing-panel{background:var(--panel);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(92vw,26rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1.75rem 1.75rem 1.25rem}.title{letter-spacing:.06em;text-align:center;background:linear-gradient(90deg, var(--el-water), var(--el-lightning), var(--el-fire));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.4rem}.tagline{text-align:center;color:var(--muted);margin:.25rem 0 1.25rem}.field{margin-bottom:1rem;display:block}.colors{gap:.6rem;display:flex}.swatch{--swatch:#fff;background:var(--swatch);cursor:pointer;border:3px solid #0000;border-radius:50%;width:2.2rem;height:2.2rem;padding:0;transition:transform .1s,border-color .1s;box-shadow:inset 0 -4px #00000040}.swatch:hover{transform:scale(1.08)}.swatch-on{border-color:#fff;transform:scale(1.12)}.actions{margin-top:1.25rem}.or{text-align:center;color:var(--dim);letter-spacing:.15em;text-transform:uppercase;margin:.6rem 0;font-size:.8rem}.join-row .input-code{flex:none}.join-row .btn{flex:auto}.landing-status{text-align:center;min-height:1.4em;color:var(--gold);margin-top:.75rem;font-size:.9rem}.landing-help{border-top:1px solid var(--edge);color:var(--muted);text-align:center;gap:.35rem;margin-top:1rem;padding-top:.85rem;font-size:.8rem;display:grid}.conn-banner{background:#ff4d5e2e;border:1px solid #ff4d5e99;border-radius:999px;padding:.5rem 1rem;font-size:.9rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.lobby-panel{background:var(--panel);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(24rem,32vw);max-height:calc(100vh - 2rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;gap:.9rem;padding:1rem 1.1rem;display:flex;position:absolute;top:1rem;right:1rem;overflow-y:auto}.lobby-head{justify-content:space-between;align-items:flex-end;gap:.5rem;display:flex}.room-code{letter-spacing:.22em;color:var(--gold);font-size:1.9rem;font-weight:800;line-height:1}.players{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.player{border-radius:var(--radius-sm);border:1px solid var(--edge);background:#00000040;align-items:center;gap:.55rem;min-height:2.4rem;padding:.45rem .6rem;display:flex}.player-me{border-color:#f5e66359}.player-away{opacity:.6}.player-empty{color:var(--muted);border-style:dashed;font-size:.85rem}.player .name{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-weight:600;overflow:hidden}.dot{--swatch:#888;background:var(--swatch);border-radius:50%;flex:none;width:.9rem;height:.9rem;box-shadow:inset 0 -2px #0000004d}.dot-empty{border:1px dashed var(--dim);background:0 0}.lobby-actions{gap:.5rem;display:grid}.lobby-mode{gap:.35rem;display:grid}.mode-btns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;display:grid}.btn-mode{text-align:left;white-space:normal;min-width:0;min-height:3.2rem;padding:.45rem .55rem}.btn-mode:disabled{opacity:.45}.mode-inner{gap:.1rem;display:grid}.mode-name{font-weight:800}.mode-blurb{color:var(--dim);font-size:.72rem;line-height:1.2}.btn-mode.btn-on .mode-blurb{color:inherit;opacity:.85}.howto ul{color:var(--text);gap:.35rem;margin:0;padding-left:1.1rem;font-size:.85rem;display:grid}.lobby-foot{justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.chat{pointer-events:none}.chat-log{pointer-events:none;gap:.2rem;width:min(26rem,34vw);margin:0;padding:0;font-size:.9rem;list-style:none;display:grid;position:absolute;bottom:5.5rem;left:1rem}.chat-line{border-radius:var(--radius-sm);word-break:break-word;background:#00000073;padding:.25rem .6rem;transition:opacity .3s linear}.chat-line .from{color:var(--gold);font-weight:700}.chat-input{pointer-events:auto;background:#000000b3;width:min(26rem,34vw);position:absolute;bottom:1rem;left:1rem}.onb-card{background:var(--panel);border-radius:var(--radius);width:min(28rem,40vw);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #f5e66366;padding:.9rem 1.1rem;transition:border-color .2s;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.onb-done{border-color:var(--green)}.onb-head{justify-content:space-between;align-items:baseline;display:flex}.onb-head .label{margin:0}.onb-counter{color:var(--muted);font-size:.8rem}.onb-title{margin:.25rem 0 .35rem;font-size:1.1rem}.onb-body{margin:0 0 .75rem;line-height:1.7}.onb-actions{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.onb-check{color:var(--green);margin-right:auto;font-weight:700}.results{pointer-events:auto;background:#0000008c;place-items:center;display:grid}.results-panel{background:var(--panel-solid);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(94vw,52rem);box-shadow:var(--shadow);padding:1.5rem 1.75rem}.results-title{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.results-headline{margin:.1rem 0 0;font-size:2rem}.results-sub{color:var(--gold);font-weight:700}.results-menace{color:var(--muted);margin:.5rem 0 1rem}.results-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.results-table th,.results-table td{text-align:right;border-bottom:1px solid var(--edge);padding:.5rem .6rem}.results-table th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600}.results-table .left{text-align:left}.row-me td{background:#f5e6630f}.row-menace td:first-child{color:var(--ff)}.oops-meter{background:#ffffff0f;border-radius:.3rem;min-width:7rem;height:1.2rem;position:relative;overflow:hidden}.oops-fill{background:linear-gradient(90deg, #ff7a1ab3, var(--ff));width:0;position:absolute;inset:0 auto 0 0}.oops-num{text-shadow:0 1px 2px #0009;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;inset:0}.results-foot{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.1rem;display:flex}.results-countdown{color:var(--muted)}.spellbook{pointer-events:auto;background:#0009;place-items:center;display:grid}.book-panel{background:var(--panel-solid);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(96vw,78rem);height:min(92vh,60rem);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.book-head{border-bottom:1px solid var(--edge);align-items:center;gap:1.25rem;padding:.85rem 1.25rem;display:flex}.book-title{letter-spacing:.08em;margin:0;font-size:1.2rem}.book-hint{margin-left:auto;font-size:.85rem}.tabs{gap:.25rem;display:flex}.tab{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.35rem .9rem;font-weight:600}.tab:hover{color:var(--text)}.tab-on{color:#1a1600;background:var(--gold)}.book-content{flex:auto;padding:1rem 1.25rem 1.5rem;overflow-y:auto}.tab-body .intro{margin:0 0 .9rem}.combo-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.6rem;margin-bottom:1.25rem;display:grid}.combo-card{border:1px solid var(--edge);border-left:3px solid var(--dim);border-radius:var(--radius-sm);background:#ffffff08;align-content:start;gap:.45rem;padding:.7rem .8rem;display:grid}.mode-force{border-left-color:var(--el-arcane)}.mode-area{border-left-color:var(--el-lightning)}.mode-self{border-left-color:var(--el-life)}.mode-weapon{border-left-color:var(--el-earth)}.mode-queue{border-left-color:var(--el-steam)}.mode-magick{border-left-color:var(--gold)}.combo-head{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;font-size:.75rem;display:flex}.combo-n{font-weight:700}.keys{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.keys .note{color:var(--el-water);margin-right:.2rem;font-size:.8rem;font-style:italic}.then{color:var(--muted);padding:0 .2rem;font-size:.75rem}.queue-out{align-items:center;gap:.25rem;font-size:.8rem;display:flex}.combo-result{font-size:.9rem}.across{border-top:1px dashed var(--edge);color:var(--muted);grid-template-columns:1fr 1fr;gap:.15rem .6rem;padding-top:.4rem;font-size:.75rem;display:grid}.across-item{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.across-mode{color:var(--dim);font-weight:700}.across-on{color:var(--text)}.across-on .across-mode{color:var(--gold)}.magick-list{gap:.5rem;display:grid}.magick-row{border:1px solid var(--edge);border-radius:var(--radius-sm);background:#ffffff08;grid-template-columns:10rem 1fr 2fr;align-items:center;gap:.75rem;padding:.6rem .8rem;display:grid}.magick-name{color:var(--gold);font-weight:700}.magick-desc{font-size:.9rem}.status-table,.status-matrix,.mult-table{border-collapse:collapse;width:100%;margin-bottom:1.25rem;font-size:.85rem}.status-table th,.status-table td,.status-matrix th,.status-matrix td,.mult-table th,.mult-table td{border-bottom:1px solid var(--edge);text-align:left;vertical-align:top;padding:.45rem .55rem}.status-table thead th,.status-matrix thead th,.mult-table thead th{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600}.status-table td.num{white-space:nowrap;font-variant-numeric:tabular-nums}.status-matrix tbody th,.mult-table tbody th{white-space:nowrap;font-weight:600}.cell-hot{color:var(--gold);font-weight:700}.cell-replace{color:var(--el-cold)}.cell-dim{color:var(--dim);text-align:center}@media (width<=1400px),(height<=760px){.lobby-panel{gap:.6rem;width:min(22rem,34vw);padding:.8rem .9rem}.howto ul{font-size:.8rem}.book-panel{height:min(94vh,60rem)}.magick-row{grid-template-columns:8rem 1fr 2fr}}@media (width<=1000px){.lobby-panel{width:min(90vw,24rem)}.onb-card{width:min(90vw,30rem)}.magick-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.toast,.btn,.swatch,.chat-line,.onb-card{transition:none;animation:none}}.settings{pointer-events:auto;background:#0009;place-items:center;display:grid}.settings[hidden]{display:none}.settings-panel{width:min(96vw,46rem);max-height:calc(92vh - var(--top-bar));background:var(--panel-solid);border:1px solid var(--edge-strong);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.settings-head{border-bottom:1px solid var(--edge);align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:flex}.settings-head h2{margin:0 auto 0 0;font-size:1.15rem}.settings-status{margin:.6rem 1.25rem 0;font-size:.85rem}.settings-sound{border-bottom:1px solid var(--edge);padding:.5rem 1.25rem .25rem}.settings-sound h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:.5rem 0 .35rem;font-size:.75rem}.sound-row{grid-template-columns:6rem 1fr;align-items:center;gap:.5rem;padding:.2rem 0;font-size:.9rem;display:grid}.sound-row input[type=range]{width:100%;max-width:22rem;accent-color:var(--accent,#b48cff)}.sound-row input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent,#b48cff);justify-self:start}.sound-hint{margin:.3rem 0 .4rem;font-size:.78rem;display:block}.settings-list{padding:.25rem 1.25rem 1.25rem;overflow-y:auto}.settings-list h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .35rem;font-size:.75rem}.settings-row{grid-template-columns:1fr 11rem 11rem;align-items:center;gap:.5rem;padding:.2rem 0;display:grid}.settings-label{font-size:.9rem}.bind-slot{gap:.25rem;display:flex}.btn.bind{text-align:left;flex:1;padding:.35rem .5rem;font-size:.8rem}.btn.bind.empty{color:var(--muted)}.btn.bind.capturing{outline:2px solid var(--gold,#f5e663)}.btn.bind-clear{padding:.35rem .5rem;font-size:.75rem}.gear-btn{top:calc(var(--top-bar) + .6rem);z-index:30;pointer-events:auto;padding:.4rem .55rem;font-size:1.1rem;line-height:1;position:fixed;right:.6rem}html.touch,html.touch body{overscroll-behavior:none;touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}html.touch #game{height:calc(100dvh - var(--top-bar))}.touch-ui{inset:var(--top-bar) 0 0 0;z-index:5;pointer-events:none;touch-action:none;position:fixed}html.touch .overlay{z-index:6}html.touch #toasts{z-index:7}.touch-stick-zone{pointer-events:auto;touch-action:none;width:34vw;height:62vh;position:absolute;bottom:0;left:0}.touch-stick-base{pointer-events:none;background:#ffffff0f;border:2px solid #ffffff40;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:fixed}.touch-stick-knob{background:#ffffff59;border-radius:50%;width:52px;height:52px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-pad{right:max(.5rem, env(safe-area-inset-right));bottom:max(.5rem, env(safe-area-inset-bottom));pointer-events:none;align-items:flex-end;gap:.5rem;display:flex;position:absolute}.touch-elements{gap:.4rem;display:flex}.touch-el-col{flex-direction:column;gap:.4rem;display:flex}.touch-actions{flex-direction:column;gap:.35rem;display:flex}.touch-btn{pointer-events:auto;touch-action:none;color:var(--text);font:600 .8rem var(--font);-webkit-user-select:none;user-select:none;background:#141620b8;border:1px solid #ffffff2e;border-radius:.8rem}.touch-el{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--el) 85%, white), var(--el) 60%, var(--el-dark));border:2px solid #ffffff40;border-radius:50%;place-items:center;width:min(13vh,3.6rem);height:min(13vh,3.6rem);padding:0;display:grid}.touch-el canvas{pointer-events:none;width:60%;height:60%}.touch-act,.touch-book{min-width:4.2rem;height:min(10vh,2.6rem);padding:0 .6rem}.touch-btn.pressed{filter:brightness(1.35);transform:scale(.92)}.touch-book.on{outline:2px solid var(--gold,#f5e663)}html.touch .lobby-panel{left:max(.5rem, env(safe-area-inset-left));gap:.5rem;width:min(17rem,38vw);max-height:58vh;padding:.6rem .7rem;font-size:.85rem;top:.5rem;right:auto}html.touch .howto{display:none}html.touch .lobby-panel{touch-action:pan-y;overscroll-behavior:contain;overflow-x:hidden}html.touch .lobby-panel>*{order:3}html.touch .lobby-panel>.lobby-head{order:0}html.touch .lobby-panel>.lobby-mode,html.touch .lobby-panel>.lobby-actions{order:1}html.touch .btn-mode{min-height:2.4rem}html.touch .mode-blurb{display:none}html.touch .landing-panel,html.touch .results-panel,html.touch .book-content,html.touch .settings-list{max-height:calc(94dvh - var(--top-bar));touch-action:pan-y;overscroll-behavior:contain;overflow-y:auto}html.touch .landing-help{display:none}html.touch .settings-panel{max-height:calc(96dvh - var(--top-bar))}html.touch .settings-row{grid-template-columns:1fr 8.5rem 8.5rem}html.touch .gear-btn{top:calc(var(--top-bar) + .4rem);right:max(.4rem, env(safe-area-inset-right))}.rotate-hint{display:none}@media (orientation:portrait){html.touch .rotate-hint{inset:var(--top-bar) 0 0 0;z-index:50;background:var(--bg);color:var(--text);font:600 1.2rem var(--font);text-align:center;place-items:center;padding:2rem;display:grid;position:fixed}}.lobby-panel{pointer-events:auto;max-height:calc(100vh - 5.2rem);top:4.2rem;left:1rem;right:auto}.lobby-tab{pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-left:none;border-radius:0 .9rem .9rem 0;padding:.55rem .6rem .55rem .7rem;position:absolute;top:38%;left:0}.lobby-tab-inner{flex-direction:column;align-items:flex-start;gap:.15rem;display:flex}.lobby-tab-code{letter-spacing:.12em;color:var(--gold,#f5e663);font-weight:800}.lobby-tab-info{color:var(--muted);font-size:.75rem}.lobby-tab-arrow{color:var(--muted);font-size:1.3rem;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.lobby-tab{padding-right:1.5rem}html.touch .lobby-panel{max-height:80dvh;top:.5rem}html.touch .lobby-tab{top:22%}.book-btn{top:calc(var(--top-bar) + .6rem);z-index:30;pointer-events:auto;padding:.4rem .7rem;font-size:.85rem;position:fixed;right:3.4rem}html.touch .book-btn{display:none}.speaker-btn{top:calc(var(--top-bar) + .6rem);z-index:30;pointer-events:auto;padding:.4rem .55rem;font-size:1.1rem;line-height:1;position:fixed;right:6.7rem}.speaker-btn svg{fill:currentColor;width:1.1em;height:1.1em;display:block}html.touch .speaker-btn{top:calc(var(--top-bar) + .4rem);right:3.2rem}.sound-popover{top:calc(var(--top-bar) + 3.1rem);z-index:31;pointer-events:auto;background:var(--panel-solid);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(19rem,100vw - 1.2rem);box-shadow:var(--shadow);padding:.5rem .9rem .6rem;position:fixed;right:.6rem}.sound-popover[hidden]{display:none}.sound-popover .sound-row{grid-template-columns:4.5rem 1fr}.book-close{margin-left:auto}.lobby-hide{width:1.9rem;height:1.9rem;padding:0;font-size:1.3rem;line-height:1;position:absolute;top:.35rem;right:.35rem}.lobby-head{padding-right:2.2rem}.lobby-panel{max-height:calc(100vh - 10rem);overflow-x:hidden}html.touch .lobby-panel{max-height:80dvh}.badge-team{background:color-mix(in srgb, var(--team) 22%, transparent);color:var(--team);border:1px solid color-mix(in srgb, var(--team) 60%, transparent)}.btn-small.btn-team{margin-left:4px;padding:2px 8px;font-size:12px}.team-dot{background:var(--team);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pause-menu{pointer-events:auto;background:#0000008c;place-items:center;display:grid}.pause-menu[hidden]{display:none}.pause-panel{background:var(--panel-solid);border:1px solid var(--edge-strong);border-radius:var(--radius);width:min(92vw,22rem);box-shadow:var(--shadow);text-align:center;padding:1.4rem 1.5rem 1.5rem}.pause-panel:focus{outline:none}.pause-title{letter-spacing:.06em;margin:0 0 .3rem;font-size:1.6rem}.pause-line{margin:0 0 1.1rem;font-size:.9rem}.pause-actions{flex-direction:column;gap:.55rem;display:flex}.pause-actions .btn{width:100%;padding:.65rem 1rem;font-size:1rem}html.touch .pause-actions .btn{min-height:2.6rem}.paused-chip{top:calc(var(--top-bar) + .6rem);z-index:29;background:var(--panel);border:1px solid var(--edge-strong);letter-spacing:.12em;text-transform:uppercase;pointer-events:none;border-radius:999px;padding:.3rem .9rem;font-size:.85rem;font-weight:700;position:fixed;left:50%;transform:translate(-50%)}.paused-chip[hidden]{display:none}.wait-bar{pointer-events:none;width:max-content;max-width:calc(100vw - 2rem);inset:5.2rem auto auto 50%;transform:translate(-50%)}.wait-bar[hidden]{display:none}.wait-btn{pointer-events:auto;box-shadow:var(--shadow);padding:.5rem 1.1rem;font-size:.95rem}.wait-btn:disabled{background:var(--panel);color:var(--muted);border-color:var(--edge-strong);cursor:default}html.touch .wait-bar{top:3.6rem}html.touch .wait-btn{min-height:2.4rem}.lobby-diff{gap:.35rem;display:grid}.diff-btns{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;display:grid}.btn-diff{min-width:0;font-weight:800}.btn-diff:disabled{opacity:.45}.btn-diff-hard.btn-on{color:#1a0e00;background:#ff9f43;border-color:#0000}.btn-diff-brutal.btn-on{background:var(--red);color:#1a0004;border-color:#0000}html.touch .lobby-panel>.lobby-diff{order:1}
