.portrait{display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--character-accent);line-height:0}.portrait svg{display:block}.portrait--framed{border-radius:14px;padding:.35rem;box-sizing:content-box;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--character-accent) 18%,transparent),transparent 70%),var(--surface);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--character-accent) 35%,transparent),0 2px 8px #1a1a2e1a}.sudoku-board{display:flex;flex-direction:column;align-items:center;gap:.75rem}.sudoku-grid{display:grid;grid-template-rows:repeat(9,1fr);width:min(90vw,var(--grid-max-width, 480px));aspect-ratio:1 / 1;border:2px solid var(--board-box);background:var(--board-line);gap:1px;container-type:inline-size}.sudoku-grid--turn-yours,.sudoku-grid--turn-theirs{border-width:5px;transition:border-color .18s ease-out}.sudoku-grid--turn-yours{border-color:var(--turn-yours)}.sudoku-grid--turn-theirs{border-color:var(--turn-theirs)}.sudoku-row{display:grid;grid-template-columns:repeat(9,1fr);gap:1px;min-height:0}.sudoku-cell{width:100%;height:100%;min-width:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:clamp(.65rem,7cqw,3.25rem);font-family:inherit;background:var(--cell-bg);color:var(--text);outline:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.sudoku-cell[tabindex="0"]{cursor:pointer}.sudoku-cell:focus{outline:2px solid var(--accent-text);outline-offset:-2px;z-index:1;position:relative}.sudoku-cell--peer{background:var(--cell-peer)}.sudoku-cell--same-digit{background:var(--cell-same)}.sudoku-cell--selected{background:var(--cell-selected)}.sudoku-cell__value{display:inline-block}.sudoku-cell--clue{background:var(--surface-2)}.sudoku-cell--clue.sudoku-cell--peer{background:var(--cell-peer-clue)}.sudoku-cell--clue.sudoku-cell--same-digit{background:var(--cell-same-clue)}.sudoku-cell--clue.sudoku-cell--selected{background:var(--cell-selected-clue)}.sudoku-cell--clue .sudoku-cell__value{font-weight:700;color:var(--text)}.sudoku-cell--entry .sudoku-cell__value{color:var(--accent-text);font-weight:600}.sudoku-cell--readonly{background:var(--cell-readonly-bg)}.sudoku-cell--readonly .sudoku-cell__value{color:var(--text-muted)}.sudoku-cell--rejected{background:var(--danger-bg);position:relative;z-index:2;animation:cell-reject .38s ease-out}@keyframes cell-reject{0%{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}to{transform:translate(0)}}.sudoku-cell--fogged{background:repeating-linear-gradient(135deg,var(--fog-a),var(--fog-a) 6px,var(--fog-b) 6px,var(--fog-b) 12px);background-size:200% 200%;animation:cell-fog-in .42s ease-out}@keyframes cell-fog-in{0%{background-position:-40px 0;opacity:.25}to{background-position:0 0;opacity:1}}.sudoku-cell--locked{background:var(--lock-bg);box-shadow:inset 0 0 0 2px var(--lock-edge);cursor:not-allowed;animation:cell-lock-in .32s cubic-bezier(.3,1.4,.5,1)}@keyframes cell-lock-in{0%{box-shadow:inset 0 0 0 14px var(--lock-edge)}to{box-shadow:inset 0 0 0 2px var(--lock-edge)}}.sudoku-cell--placed{animation:cell-placed-glow .34s ease-out}@keyframes cell-placed-glow{0%{box-shadow:inset 0 0 0 2px #4361ee8c}to{box-shadow:inset 0 0 0 2px #4361ee00}}.sudoku-cell--placed .sudoku-cell__value{animation:cell-placed-pop .34s cubic-bezier(.22,1.2,.36,1)}@keyframes cell-placed-pop{0%{transform:scale(1.55)}to{transform:scale(1)}}.sudoku-cell--sweep{animation:cell-sweep .56s ease-out both}@keyframes cell-sweep{0%{box-shadow:inset 0 0 #2a9d8f00}35%{box-shadow:inset 0 0 0 3px #2a9d8fcc}to{box-shadow:inset 0 0 0 3px #2a9d8f00}}.sudoku-cell--box-left{border-left:2px solid var(--board-box)}.sudoku-cell--box-right{border-right:2px solid var(--board-box)}.sudoku-cell--box-top{border-top:2px solid var(--board-box)}.sudoku-cell--box-bottom{border-bottom:2px solid var(--board-box)}.sudoku-cell__candidates{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%}.sudoku-cell__candidate{display:flex;align-items:center;justify-content:center;font-size:clamp(.35rem,2.3cqw,1.1rem);font-weight:600;color:var(--text-muted)}.number-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;width:min(90vw,var(--grid-max-width, 480px))}.number-pad__key{position:relative;padding:.5rem 0;font-size:clamp(1.35rem,3.3vh,2.1rem);font-weight:700;font-family:inherit;color:var(--text);border:2px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;min-height:clamp(2.5rem,6.2vh,4.25rem)}.number-pad--notes .number-pad__key{border-style:dashed;color:var(--accent-text)}.number-pad__key:disabled{color:var(--text-disabled);border-color:var(--border);cursor:not-allowed}.number-pad__key--exhausted:not(:disabled){color:var(--text-disabled);border-color:var(--track);background:var(--bg)}.number-pad__key--armed:not(:disabled){border-color:var(--accent-text);background:var(--accent-tint);color:var(--accent-text);box-shadow:0 0 0 2px var(--accent-tint)}.number-pad__remaining{position:absolute;top:.15rem;right:.35rem;font-size:clamp(.65rem,1.35vh,.85rem);font-weight:600;color:var(--text-muted)}.number-pad__key--exhausted .number-pad__remaining{color:var(--text-disabled)}.number-pad__key--erase{font-size:clamp(1.15rem,2.8vh,1.8rem)}.player-page--live>.sudoku-board>.sudoku-grid{flex:1 1 0;width:auto;height:auto;max-width:100%;max-height:var(--board-width, min(90vw, 480px));min-height:12rem}@media(min-width:768px)and (min-aspect-ratio:4/5){.player-page>.sudoku-board{position:relative}.player-page .number-pad{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:1rem;grid-template-columns:repeat(2,1fr);width:auto}.player-page .number-pad__key{min-width:3.6rem;min-height:clamp(3rem,6.6vh,4.25rem);font-size:clamp(1.5rem,3.5vh,2.1rem)}}.sudoku-cell--sweep-legal{background:#06917a2e;box-shadow:inset 0 0 0 2px #06917a8c;animation:cell-sweep-legal .42s ease-out}@keyframes cell-sweep-legal{0%{background:#06917a8c}to{background:#06917a2e}}.sudoku-cell--disturbed{position:relative}.sudoku-cell--disturbed:after{content:"";position:absolute;inset:0;pointer-events:none;background:var(--disturbed-wash);animation:cell-disturbed 2.4s ease-in-out infinite}@keyframes cell-disturbed{0%,to{opacity:.5}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.sudoku-cell--disturbed:after{animation:none;opacity:.85}}.sudoku-cell--certified-wrong{background:var(--danger-bg);box-shadow:inset 0 0 0 3px var(--danger);animation:cell-certified .52s ease-out}.sudoku-cell--certified-wrong .sudoku-cell__value{color:var(--danger);text-decoration:line-through;text-decoration-thickness:2px}@keyframes cell-certified{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.sudoku-cell--mistake{background:var(--danger-bg);box-shadow:inset 0 0 0 2px var(--danger)}.sudoku-cell--mistake .sudoku-cell__value{color:var(--danger-text-on-tint);font-weight:700;text-decoration:line-through;text-decoration-thickness:2px}.sudoku-cell--owned,.sudoku-cell--rival{position:relative}.sudoku-cell--owned .sudoku-cell__value,.sudoku-cell--rival .sudoku-cell__value{font-weight:700}.sudoku-cell--race-seat-1{background:var(--race-seat-1-tint);box-shadow:inset 3px 0 0 var(--race-seat-1)}.sudoku-cell--race-seat-1 .sudoku-cell__value{color:var(--race-seat-1)}.sudoku-cell--race-seat-2{background:var(--race-seat-2-tint);box-shadow:inset -3px 0 0 var(--race-seat-2)}.sudoku-cell--race-seat-2 .sudoku-cell__value{color:var(--race-seat-2)}.sudoku-cell--race-seat-3{background:var(--race-seat-3-tint);box-shadow:inset 0 3px 0 var(--race-seat-3)}.sudoku-cell--race-seat-3 .sudoku-cell__value{color:var(--race-seat-3)}.sudoku-cell--race-seat-4{background:var(--race-seat-4-tint);box-shadow:inset 0 -3px 0 var(--race-seat-4)}.sudoku-cell--race-seat-4 .sudoku-cell__value{color:var(--race-seat-4)}.sudoku-cell--provisional{background:var(--danger-bg);box-shadow:inset 0 0 0 2px var(--danger);outline:2px dashed var(--danger);outline-offset:-5px}.sudoku-cell--provisional .sudoku-cell__value,.sudoku-cell--entry.sudoku-cell--provisional .sudoku-cell__value{color:var(--danger);font-style:italic;font-weight:600;opacity:.85}.fx{position:fixed;inset:0;z-index:50;pointer-events:none;overflow:hidden}.fx-vignette{position:absolute;inset:0;box-shadow:inset 0 0 90px 12px #c1121f66;animation:fx-vignette-breathe 1s ease-in-out infinite alternate}@keyframes fx-vignette-breathe{0%{box-shadow:inset 0 0 70px 8px #c1121f38}to{box-shadow:inset 0 0 110px 18px #c1121f80}}.fx-telegraph{position:absolute;inset:0;box-shadow:inset 0 0 70px 12px rgba(var(--fx-color),.45);animation:fx-telegraph-pulse .32s ease-in-out infinite alternate}@keyframes fx-telegraph-pulse{0%{box-shadow:inset 0 0 40px 4px rgba(var(--fx-color),.25)}to{box-shadow:inset 0 0 90px 16px rgba(var(--fx-color),.7)}}.fx-burst__flare{position:absolute;inset:0}.fx-burst--hit .fx-burst__flare{animation:fx-burst-flare 1.1s ease-out forwards,fx-burst-shake .26s ease-in-out}.fx-burst--cast .fx-burst__flare,.fx-burst--self .fx-burst__flare,.fx-burst--failed .fx-burst__flare,.fx-burst--blocked .fx-burst__flare{animation:fx-burst-flare-soft .9s ease-out forwards}@keyframes fx-burst-flare{0%{box-shadow:inset 0 0 rgba(var(--fx-color),.95);background:rgba(var(--fx-color),.18)}35%{box-shadow:inset 0 0 150px 40px rgba(var(--fx-color),.85)}to{box-shadow:inset 0 0 150px 40px rgba(var(--fx-color),0);background:rgba(var(--fx-color),0)}}@keyframes fx-burst-flare-soft{0%{box-shadow:inset 0 0 60px 10px rgba(var(--fx-color),.5)}to{box-shadow:inset 0 0 60px 10px rgba(var(--fx-color),0)}}@keyframes fx-burst-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px,2px)}50%{transform:translate(4px,-3px)}75%{transform:translate(-3px,-1px)}}.fx-burst__label{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem 1.4rem;border-radius:10px;background:var(--ink);box-shadow:0 0 0 3px rgba(var(--fx-color),.6);color:#fff;text-align:center;white-space:nowrap;animation:fx-burst-label 1.1s ease-out forwards}.fx-burst__ability{font-size:1.15rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--fx-color));filter:brightness(1.6)}.fx-burst__detail{font-size:.78rem;font-weight:600;opacity:.85}@keyframes fx-burst-label{0%{opacity:0;transform:translate(-50%,14px) scale(.9)}12%{opacity:1;transform:translate(-50%) scale(1)}75%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,8px) scale(.98)}}.shape-grid{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);width:var(--shape-grid-size, 4rem);height:var(--shape-grid-size, 4rem);flex:0 0 auto;aspect-ratio:1 / 1;border:1px solid var(--board-box);border-radius:3px;overflow:hidden;background:var(--surface)}.shape-cell{min-width:0;min-height:0}.shape-cell--clue{background:color-mix(in srgb,var(--text-soft) 28%,transparent)}.shape-cell--empty{background:transparent}.shape-cell--filled{background:rgba(var(--shape-accent, 74, 78, 105),.85)}.shape-cell--box-left{box-shadow:inset 1px 0 0 var(--board-box)}.shape-cell--box-top{box-shadow:inset 0 1px 0 var(--board-box)}.shape-cell--box-left.shape-cell--box-top{box-shadow:inset 1px 0 0 var(--board-box),inset 0 1px 0 var(--board-box)}.tutorial{position:relative;width:100%;gap:.75rem}.tutorial__topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.tutorial__stage{width:100%;padding-bottom:15rem}.tutorial .practice{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.practice__flash{min-height:1.4em;margin:0;font-size:.85rem;color:var(--text-muted);text-align:center}.spotlight{position:fixed;inset:0;z-index:30;pointer-events:none}.spotlight__hole{position:fixed;border-radius:14px;box-shadow:0 0 0 100vmax #0a0c189e;outline:2px solid var(--accent);outline-offset:2px;transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease}:root[data-theme=dark] .spotlight__hole,:root:not([data-theme=light]) .spotlight__hole{box-shadow:0 0 0 100vmax #04050cb8}.tutorial-dialogue{position:fixed;left:0;right:0;z-index:40;display:flex;flex-direction:column;gap:.6rem;width:min(46rem,calc(100% - 1.5rem));margin:0 auto;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px #0a0c1840}.tutorial-dialogue--bottom{bottom:.75rem}.tutorial-dialogue--top{top:.75rem}.tutorial-dialogue__balloon{display:flex;align-items:flex-start;gap:.75rem}.tutorial-dialogue__portrait{flex:0 0 auto}.tutorial-dialogue__body{display:flex;flex-direction:column;gap:.35rem;min-width:0}.tutorial-dialogue__who{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.tutorial-dialogue__say{margin:0;font-size:.95rem;line-height:1.45;color:var(--text)}.tutorial-task{margin:.15rem 0 0;padding:.45rem .6rem;font-size:.9rem;line-height:1.4;color:var(--text);background:var(--accent-tint);border-left:3px solid var(--accent);border-radius:0 8px 8px 0}.tutorial-task--done{color:var(--pill-good-text);background:var(--pill-good-bg);border-left-color:var(--success)}.tutorial-dialogue__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.tutorial-dialogue__count{margin-right:auto;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--text-muted)}.tutorial-dialogue .primary-button,.tutorial-dialogue .secondary-button{padding:.5rem .9rem;font-size:.9rem}.tutorial-handoff{display:flex;flex-direction:column;gap:.4rem;padding-top:.2rem;border-top:1px solid var(--border)}.tutorial-handoff .hint-text{margin:0}.tutorial-handoff__name{display:flex;flex-direction:column;gap:.25rem}.tutorial-index{display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:34rem}.tutorial-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--character-accent, var(--accent));border-radius:14px;cursor:pointer}.tutorial-card:hover{border-color:var(--accent);border-left-color:var(--character-accent, var(--accent))}.tutorial-card__text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.tutorial-card__name{font-size:1.05rem;font-weight:700}.tutorial-card__blurb{font-size:.85rem;line-height:1.4;color:var(--text-soft)}.tutorial-card__host{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--character-accent-text, var(--accent-text))}@media(min-width:900px){.page.tutorial{display:grid;grid-template-columns:minmax(0,1fr) 23rem;grid-template-areas:"top top" "stage talk";align-items:start;gap:1rem 1.5rem;max-width:68rem;margin:0 auto}.tutorial__topbar{grid-area:top}.tutorial__stage{grid-area:stage;padding-bottom:0}.tutorial-dialogue,.tutorial-dialogue--top,.tutorial-dialogue--bottom{grid-area:talk;position:sticky;top:1rem;bottom:auto;left:auto;right:auto;width:auto;margin:0}}@media(max-width:899px){.tutorial__stage [data-tour]{scroll-margin-top:4rem;scroll-margin-bottom:16rem}}@media(max-width:520px){.tutorial__stage{padding-bottom:17rem}.tutorial-dialogue{padding:.7rem .8rem}.tutorial-dialogue__say{font-size:.9rem}.tutorial-dialogue__actions{justify-content:flex-end}}:root{color-scheme:light;--bg: #f4f5fa;--surface: #ffffff;--surface-2: #eef0f7;--surface-3: #f7f7fa;--ink: #1a1a2e;--ink-text: #ffffff;--text: #1a1a2e;--text-soft: #4a4e69;--text-muted: #5f6773;--text-disabled: #c9cbd8;--border: #c9cbd8;--track: #e6e7f0;--accent: #4361ee;--accent-text: #3448c4;--danger: #c1121f;--danger-bg: #ffe3e3;--success: #1f7a6d;--success-fill: #1f7a6d;--warn-bg: #fff3cd;--warn-text: #7a5b00;--warn-fill: #e07a5f;--warn-pulse: #ffd97d;--accent-disabled: #a9b0e0;--accent-tint: #e8eaff;--danger-text-on-tint: #8b1116;--turn-yours: #12783f;--turn-theirs: #8b93a7;--race-seat-1: #3448c4;--race-seat-1-tint: #e5e8ff;--race-seat-2: #a4530b;--race-seat-2-tint: #fdeedb;--race-seat-3: #8e2a9c;--race-seat-3-tint: #f9e6fc;--race-seat-4: #0f6f63;--race-seat-4-tint: #dcf2ef;--pill-good-bg: #d8f3dc;--pill-good-text: #1b4332;--pill-info-bg: #cdeafe;--pill-info-text: #023e8a;--fog-a: #d8dae6;--fog-b: #c9cbd8;--lock-bg: #e6dcf5;--lock-edge: #7209b7;--disturbed-wash: rgba(193, 18, 31, .11);--board-line: #1a1a2e;--board-box: #1a1a2e;--cell-bg: #ffffff;--cell-clue-bg: #eef0f7;--cell-readonly-bg: #f7f7fa;--cell-peer: #eef1fd;--cell-peer-clue: #e5e8f5;--cell-same: #d7f2ee;--cell-same-clue: #cfeae5;--cell-selected: #dbe2ff;--cell-selected-clue: #ccd6fb}:root[data-theme=dark]{color-scheme:dark;--bg: #12121c;--surface: #1e1e2e;--surface-2: #272738;--surface-3: #191924;--ink: #35354e;--ink-text: #f2f2fa;--text: #e9e9f2;--text-soft: #c3c6d8;--text-muted: #9ba0b5;--text-disabled: #4c4c63;--border: #3c3c52;--track: #2c2c3e;--accent: #4361ee;--accent-text: #9aabff;--danger: #ff7a80;--danger-bg: #3d1d21;--success: #4ecdc4;--success-fill: #1a6b60;--warn-bg: #3a3116;--warn-text: #ffd97d;--warn-fill: #b8563a;--warn-pulse: #7a6320;--accent-disabled: #35386a;--accent-tint: #262b52;--danger-text-on-tint: #ffb3b3;--turn-yours: #4ade80;--turn-theirs: #5b6478;--race-seat-1: #9aabff;--race-seat-1-tint: #232848;--race-seat-2: #f0a35e;--race-seat-2-tint: #3a2a15;--race-seat-3: #e59bf2;--race-seat-3-tint: #33203c;--race-seat-4: #5fd3c4;--race-seat-4-tint: #12332f;--pill-good-bg: #16352a;--pill-good-text: #7ee0a8;--pill-info-bg: #16293f;--pill-info-text: #93c8ff;--fog-a: #2e3145;--fog-b: #3a3d55;--lock-bg: #2c2140;--lock-edge: #a26bdd;--disturbed-wash: rgba(255, 107, 107, .14);--board-line: #303046;--board-box: #6f6f96;--cell-bg: #1b1b28;--cell-clue-bg: #262636;--cell-readonly-bg: #171722;--cell-peer: #22263f;--cell-peer-clue: #2a2e48;--cell-same: #14332f;--cell-same-clue: #1b3a35;--cell-selected: #2f3868;--cell-selected-clue: #384174}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.page{min-height:100vh;min-height:100dvh;padding:max(2rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;gap:1.25rem}.page--centered{justify-content:center}h1{margin:0}.badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;letter-spacing:.05em;font-size:.85rem}.badge--mode{background:var(--accent)}.badge--bot{background:var(--text-muted);font-size:.7rem;padding:.15rem .5rem;margin-left:.4rem;vertical-align:middle}.timer{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.timer--warn,.timer--critical{color:var(--danger)}.timer--elapsed{color:var(--text-soft)}.timer__face{display:inline-block}.timer--critical .timer__face{animation:timer-beat .9s ease-out}@keyframes timer-beat{0%{transform:scale(1.22)}to{transform:scale(1)}}.player-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;width:var(--board-width, min(90vw, 480px))}.player-header__tags{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.player-header__aside{display:flex;justify-content:flex-end}.player-header__clock{display:flex;flex-direction:column;align-items:center;gap:.25rem}.player-header .timer{font-size:clamp(1.6rem,min(8.4vw,5vh),2.8rem);letter-spacing:-.02em;line-height:1.05}.player-header__clock .progress-meter{font-size:clamp(.75rem,1.7vh,.95rem)}.player-header__clock .progress-bar{width:clamp(4rem,20vw,7rem);height:clamp(.4rem,.9vh,.6rem)}.status-text{color:var(--text-soft)}.hint-text{margin:0;max-width:22rem;text-align:center;font-size:.85rem;line-height:1.4;color:var(--text-muted)}.field-label{margin:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft)}.error-text{color:var(--danger);font-weight:600}.home{gap:1.75rem}.home__hero{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center}.home__lockup{width:clamp(96px,26vw,124px);height:auto;flex-shrink:0}.home__title{display:flex;align-items:center;justify-content:center;gap:.4em;font-size:clamp(2rem,8vw,3rem);letter-spacing:-.02em}.home__tagline{margin:0;color:var(--text-soft);font-size:1rem}.home__actions{display:flex;flex-direction:column;gap:.75rem;width:min(90vw,380px)}.home__action{display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1.1rem;text-align:left;font-family:inherit;border:2px solid transparent;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer;transition:transform .11s ease-out}.home__action:hover{transform:translateY(-2px)}.home__action-name{font-size:1.05rem;font-weight:700}.home__action-blurb{font-size:.8rem;line-height:1.35;opacity:.85}.home__action--secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.home__action--secondary .home__action-blurb{color:var(--text-muted);opacity:1}.home__name{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:min(90vw,380px)}.home__name input{width:100%;text-align:center}.home__action:disabled{cursor:not-allowed;opacity:.55}.home__action:disabled:hover{transform:none}.join-form{display:flex;flex-direction:column;gap:.5rem;width:min(90vw,320px)}.join-form input{padding:.6rem .8rem;font-size:1rem;border:1px solid var(--border);border-radius:6px}.join-form button,.primary-button{padding:.7rem 1.2rem;font-size:1rem;font-weight:600;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.primary-button:disabled{background:var(--accent-disabled);cursor:not-allowed}.finish-button{padding:.9rem 2rem;font-size:1.1rem;font-weight:700;border:none;border-radius:8px;background:var(--success-fill);color:#fff;cursor:pointer}.player-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center}.pencil-toggle{padding:.7rem 1rem;font-size:.95rem;font-weight:600;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-soft);cursor:pointer}.pencil-toggle--active{border-color:var(--accent-text);background:var(--accent-tint);color:var(--accent-text)}.pencil-toggle--forced{cursor:default}.input-mode-toggle{padding:.7rem 1rem;font-size:.95rem;font-weight:600;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-soft);cursor:pointer}.input-mode-toggle--active{border-color:var(--accent-text);background:var(--accent-tint);color:var(--accent-text)}.concede-button{padding:.7rem 1rem;font-size:.95rem;font-weight:600;border:2px solid var(--danger);border-radius:8px;background:var(--surface);color:var(--danger);cursor:pointer}.undo-button{padding:.7rem 1rem;font-size:.95rem;font-weight:600;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-soft);cursor:pointer}.undo-button:disabled{color:var(--text-disabled);cursor:not-allowed}.secondary-button{padding:.6rem 1rem;font-size:.9rem;font-weight:600;border:2px solid var(--ink);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}.check-solutions{display:flex;flex-direction:column;align-items:center;gap:.5rem}.host-controls{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.close-room-button{padding:.5rem .9rem;font-size:.85rem;font-weight:600;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-soft);cursor:pointer}.close-room-button:hover{border-color:var(--danger);color:var(--danger)}.close-room-button--quiet{padding:clamp(.3rem,.8vh,.5rem) clamp(.5rem,1.2vh,.75rem);font-size:clamp(.7rem,1.6vh,.9rem);border-color:transparent;background:none;color:var(--text-muted)}.close-room-button--quiet:hover{border-color:var(--danger);background:var(--surface)}.room-exit-controls{display:flex;align-items:center;justify-content:flex-end;gap:.15rem;flex-wrap:wrap}.room-exit-controls button{white-space:nowrap}.lobby-actions{display:flex;align-items:center;gap:.75rem}.add-bot{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;gap:.5rem}.add-bot__select{padding:.6rem .7rem;font-size:.9rem;font-weight:600;font-family:inherit;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}.add-bot__blurb{grid-column:1 / -1;margin:0;max-width:26rem;font-size:.8rem;line-height:1.35;text-align:center;color:var(--text-muted)}.check-solutions__results{display:flex;gap:1.5rem;font-weight:600;color:var(--text-soft)}.create-form{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:1.75rem 2rem;border-radius:12px;background:var(--surface);box-shadow:0 2px 12px #00000014}.create-field{display:flex;flex-direction:column;align-items:center;gap:.6rem}.option-picker{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.option-button{padding:.6rem 1.2rem;border:2px solid var(--ink);border-radius:6px;background:var(--surface);text-transform:capitalize;cursor:pointer;font-weight:600}.option-button--active{background:var(--ink);color:#fff}.host-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.4rem 1.2rem;text-align:center}.host-header h1{font-size:1.4rem}.host-header .status-text{margin:0;font-size:.95rem}.room-code{font-family:monospace;letter-spacing:.15em;background:var(--ink);color:#fff;padding:.1em .4em;border-radius:4px}.host-panels{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center}.host-panels--count-2{--grid-max-width: min(52vh, 560px)}.host-panels--count-3{--grid-max-width: min(40vh, 420px)}.host-panels--count-4{--grid-max-width: min(30vh, 330px)}.host-panels--count-5{--grid-max-width: min(26vh, 280px)}.host-panels--count-6{--grid-max-width: min(24vh, 250px)}.player-panel{display:flex;flex-direction:column;align-items:center;gap:.5rem}.player-panel__header{display:flex;align-items:center;gap:1rem;justify-content:space-between;width:100%}.player-panel__name{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:clamp(1rem,2.1vh,1.6rem)}.player-panel .timer{font-size:clamp(1.5rem,3.4vh,2.6rem)}.status-pill{padding:.15rem .6rem;border-radius:999px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;background:var(--track)}.status-pill--playing{background:var(--pill-good-bg);color:var(--pill-good-text)}.status-pill--finished{background:var(--pill-info-bg);color:var(--pill-info-text)}.status-pill--timeout,.status-pill--conceded{background:var(--danger-bg);color:var(--danger)}.host-announce-slot{display:flex;align-items:center;justify-content:center;min-height:4.5rem;width:100%}.host-announce{display:flex;align-items:center;gap:1rem;padding:.6rem 1.6rem;border-radius:12px;background:var(--ink);color:#fff;box-shadow:0 0 0 4px rgba(var(--fx-color),.55),0 8px 30px rgba(var(--fx-color),.35);animation:host-announce 2.6s ease-out forwards}.host-announce__who{font-size:1.5rem;font-weight:700}.host-announce__ability,.host-announce__arrow{color:rgb(var(--fx-color));filter:brightness(1.7)}.host-announce__ability{font-size:1.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.host-announce .portrait{color:rgb(var(--fx-color));filter:brightness(1.7)}.host-announce--failed,.host-announce--blocked{opacity:.82}.host-announce--failed .host-announce__ability,.host-announce--blocked .host-announce__ability{text-decoration:line-through;text-decoration-thickness:3px}@keyframes host-announce{0%{opacity:0;transform:scale(.82)}8%{opacity:1;transform:scale(1.06)}14%{transform:scale(1)}85%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.result-banner{text-align:center;padding:1.5rem;border-radius:12px;background:var(--surface);box-shadow:0 2px 12px #00000014;animation:relay-penalty-in .26s ease-out}.result-banner h2,.outcome h2{animation:result-pop .52s cubic-bezier(.22,1.3,.36,1)}@keyframes result-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.host-decision{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.host-decision button{padding:.6rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);cursor:pointer}.outcome{text-align:center}.standings{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:1rem 0}.standings__title{margin:0;font-size:1rem;color:var(--text-soft)}.standings__list{list-style:none;margin:0;padding:0;width:min(100%,26rem);display:flex;flex-direction:column;gap:.25rem;text-align:left}.standings__row{display:grid;grid-template-columns:2.5rem 1fr auto;align-items:baseline;gap:.6rem;padding:.4rem .6rem;border-radius:8px;background:var(--surface)}.standings__row--you{background:var(--accent-tint);font-weight:600}.standings__rank{color:var(--text-muted);font-variant-numeric:tabular-nums}.standings__row--you .standings__rank{color:var(--accent-text)}.standings__who{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem;min-width:0}.standings__name{overflow-wrap:anywhere}.standings__note{font-size:.8rem;font-weight:400;color:var(--text-muted)}.standings__time{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.standings__caption{margin:0;font-size:.8rem;color:var(--text-muted)}.opponent-boards{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding-top:.5rem;border-top:1px solid var(--border)}.opponent-boards__title{margin:0;font-size:1rem;color:var(--text-soft)}.opponent-boards__thumbs{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center}.opponent-thumb{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem .5rem;border:2px solid transparent;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f;color:inherit;font:inherit;cursor:pointer}.opponent-thumb:hover{border-color:var(--border)}.opponent-thumb--open{border-color:var(--accent-text);background:var(--accent-tint)}.opponent-thumb .shape-grid{--shape-grid-size: 4.5rem}.opponent-thumb__name{font-weight:700;font-size:.85rem;max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-thumb__count{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.opponent-boards .player-panel{--grid-max-width: 300px}.relay-host__countdown{display:flex;flex-direction:column;align-items:center;gap:.1rem;margin:0}.relay-host__first{font-size:1.15rem;font-weight:800}.relay-host__count{font-size:clamp(2.5rem,9vh,5rem);font-weight:800;line-height:1;color:var(--accent-text);font-variant-numeric:tabular-nums}.relay-host{display:flex;flex-direction:column;align-items:center;gap:1.25rem;--grid-max-width: 460px}.relay-header,.relay-host .relay-scoreboard{width:min(90vw,480px)}.relay-header{display:flex;flex-direction:column;align-items:center;gap:.75rem}.relay-header__tags{display:flex;gap:.5rem}.relay-scoreboard{display:flex;flex-direction:column;gap:.5rem;width:100%}.relay-seat{display:grid;grid-template-columns:1rem 1fr auto;grid-template-areas:"turn name timer" ".    stats stats";align-items:center;column-gap:.6rem;row-gap:.1rem;padding:.6rem .9rem;border:2px solid transparent;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.relay-seat--active{border-color:var(--accent-text);background:var(--accent-tint);animation:relay-seat-active 1.8s ease-in-out infinite}@keyframes relay-seat-active{0%,to{box-shadow:0 1px 4px #0000000f}50%{box-shadow:0 1px 4px #0000000f,0 0 0 6px #4361ee29}}.relay-seat__turn{grid-area:turn;color:var(--accent-text);font-size:.8rem}.relay-seat__name{grid-area:name;font-weight:700}.relay-seat__you{font-weight:400;color:var(--text-muted)}.relay-seat .timer{grid-area:timer;font-size:clamp(1.35rem,2.9vh,1.75rem)}.relay-seat__stats{grid-area:stats;font-size:clamp(.78rem,1.6vh,.95rem);color:var(--text-muted)}.relay-seat__escalation{color:var(--danger);font-weight:700}.relay-seat__passes{color:var(--text-muted)}.relay-seat__passes--out{color:var(--warn-text);font-weight:700}.relay-scoreboard--compact{gap:.35rem}.relay-scoreboard--compact .relay-seat{grid-template-areas:"turn name timer";padding:.3rem .7rem;column-gap:.5rem}.relay-scoreboard--compact .relay-seat__name{display:flex;align-items:baseline;gap:.4rem;min-width:0}.relay-scoreboard--compact .relay-seat__stats{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relay-scoreboard--compact .relay-seat .timer{font-size:clamp(1.1rem,2.4vh,1.5rem)}.relay-status{display:flex;align-items:center;gap:.75rem;min-height:1.6rem;flex-wrap:wrap;justify-content:center}.relay-turn{font-weight:600;font-size:clamp(.95rem,2vh,1.15rem)}.relay-turn--yours{color:var(--success)}.relay-turn--theirs{color:var(--text-muted)}.relay-penalty{padding:.3rem .75rem;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-weight:700;font-size:clamp(.9rem,1.9vh,1.1rem);animation:relay-penalty-in .18s ease-out}@keyframes relay-penalty-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.turn-bars{position:fixed;inset:0;z-index:45;pointer-events:none}.turn-bars__edge{position:absolute;left:0;right:0;height:6px;background:var(--turn-theirs);transition:background-color .2s ease-out,height .2s ease-out}.turn-bars__edge--top{top:0}.turn-bars__edge--bottom{bottom:0}.turn-bars--yours .turn-bars__edge{height:10px;background:var(--turn-yours)}.turn-bars--arriving .turn-bars__edge{animation:turn-bar-arrive .66s ease-out 2}@keyframes turn-bar-arrive{0%,to{height:10px;filter:none}50%{height:20px;filter:brightness(1.3)}}.relay-countdown{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:1rem;width:max-content;max-width:min(96vw,34rem);padding:.5rem 1rem .6rem;border:2px solid var(--turn-yours);border-top:none;border-radius:0 0 14px 14px;background:var(--surface);box-shadow:0 6px 18px #00000038;pointer-events:none;animation:relay-countdown-in .22s ease-out}.relay-countdown__text{min-width:0}.relay-countdown__who{margin:0;font-size:clamp(1rem,2.4vh,1.25rem);font-weight:600}.relay-countdown__who strong{font-weight:800}.relay-countdown__you{color:var(--text-muted);font-weight:600}.relay-countdown__note{margin:.1rem 0 0;color:var(--text-muted);font-size:clamp(.78rem,1.7vh,.92rem)}.relay-countdown__count{margin:0;font-size:clamp(2.4rem,7vh,3.6rem);font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent-text);animation:relay-count-in .22s ease-out}.relay-countdown--go .relay-countdown__count{color:var(--turn-yours)}@keyframes relay-countdown-in{0%{transform:translate(-50%,-100%)}to{transform:translate(-50%)}}@keyframes relay-count-in{0%{opacity:.2;transform:scale(1.35)}to{opacity:1;transform:none}}.race-host{display:flex;flex-direction:column;align-items:center;gap:1.25rem;--grid-max-width: 460px}.race-header,.race-host .race-scoreboard{width:min(90vw,480px)}.race-header{display:flex;flex-direction:column;align-items:center;gap:.6rem}.race-header__tags{display:flex;align-items:center;gap:.5rem}.race-clock .timer{font-size:clamp(.9rem,2vh,1.1rem);font-weight:600;color:var(--text-muted)}.race-scoreboard{display:flex;flex-direction:column;gap:.4rem;width:100%}.race-split{display:flex;height:.6rem;border-radius:999px;overflow:hidden;background:var(--track)}.race-split__part{transition:flex-grow .26s ease-out;min-width:0}.race-split__part--seat-1{background:var(--race-seat-1)}.race-split__part--seat-2{background:var(--race-seat-2)}.race-split__part--seat-3{background:var(--race-seat-3)}.race-split__part--seat-4{background:var(--race-seat-4)}.race-split__part--open{background:transparent}.race-seat{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.45rem .9rem;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f;border-left:4px solid transparent}.race-seat--seat-1{border-left-color:var(--race-seat-1)}.race-seat--seat-2{border-left-color:var(--race-seat-2)}.race-seat--seat-3{border-left-color:var(--race-seat-3)}.race-seat--seat-4{border-left-color:var(--race-seat-4)}.race-seat__name{font-weight:700}.race-seat__you,.race-seat__done{font-weight:400;color:var(--text-muted)}.race-seat__tally{display:flex;align-items:baseline;gap:.4rem;white-space:nowrap}.race-seat__score{font-size:clamp(1.5rem,3.1vh,1.9rem);font-weight:700;font-variant-numeric:tabular-nums}.race-seat__unit{font-size:clamp(.78rem,1.6vh,.95rem);color:var(--text-muted)}.race-seat__mistakes{font-size:clamp(.78rem,1.6vh,.95rem);color:var(--danger);font-weight:600}.race-scoreboard--crowded .race-seat{padding:.25rem .7rem}.race-scoreboard--crowded .race-seat__score{font-size:1.15rem}.race-scoreboard--crowded .race-seat__name{font-size:.9rem}.race-scoreboard--compact{gap:.35rem}.race-tally{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem .45rem}.race-chip{display:inline-flex;align-items:baseline;gap:.3rem;padding:.12rem .5rem .12rem .4rem;border-radius:999px;background:var(--surface);border-left:4px solid transparent;font-size:clamp(.78rem,1.7vh,.92rem);line-height:1.5;white-space:nowrap}.race-chip--seat-1{border-left-color:var(--race-seat-1)}.race-chip--seat-2{border-left-color:var(--race-seat-2)}.race-chip--seat-3{border-left-color:var(--race-seat-3)}.race-chip--seat-4{border-left-color:var(--race-seat-4)}.race-chip--you{font-weight:700}.race-chip__you{font-weight:400;color:var(--text-muted)}.race-chip__score{font-weight:700;font-size:clamp(.95rem,2.1vh,1.15rem);font-variant-numeric:tabular-nums}.race-chip__mistakes{color:var(--danger);font-weight:600;font-size:.8em}.race-chip__done{color:var(--text-muted);font-size:.8em;text-transform:uppercase;letter-spacing:.04em}.race-status{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-height:1.9rem;text-align:center}.race-lead{font-weight:600;font-size:clamp(.95rem,2vh,1.15rem);color:var(--text-muted)}.race-lead--ahead{color:var(--success)}.race-lead--behind{color:var(--warn-text)}.race-lead__against{font-weight:400;color:var(--text-muted)}.race-private{padding:.2rem .7rem;border-radius:999px;background:var(--danger-bg);color:var(--danger);font-weight:600;font-size:clamp(.82rem,1.8vh,1rem)}.pass-button{display:inline-flex;align-items:baseline;gap:.45rem;padding:.9rem 1.6rem;font-size:1.05rem;font-weight:700;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer}.pass-button:disabled{color:var(--text-disabled);cursor:not-allowed}.pass-button--spent{border-style:dashed;color:var(--text-muted);font-weight:600;cursor:default}.pass-button__hint{font-size:.85rem;font-weight:600;opacity:.8}.pass-button__count{font-size:.85rem;font-weight:600;color:var(--text-muted)}.skirmish-hud,.skirmish-hud__them,.character-card,.player-panel,.host-announce,.tutorial-card,.logo__mark{--character-accent-text: color-mix(in srgb, var(--character-accent, currentColor) 62%, var(--text))}.logo__mark{color:var(--character-accent-text)}.skirmish-hud{display:flex;flex-direction:column;align-items:center;gap:.55rem;width:var(--board-width, min(94vw, 520px))}.skirmish-hud__bars{display:flex;flex-direction:row;align-items:center;gap:.5rem;width:100%}.skirmish-hud__bars-stack{display:flex;flex-direction:column;gap:.3rem;flex:1 1 auto;min-width:0}.skirmish-hud .shape-grid{--shape-grid-size: 4.25rem}.skirmish-hud__self,.skirmish-hud__them{display:flex;align-items:center;gap:.5rem}.skirmish-hud__self{padding:.25rem .5rem .25rem .35rem;border-left:3px solid var(--character-accent);border-radius:4px;background:color-mix(in srgb,var(--character-accent) 8%,transparent)}.skirmish-hud__them{opacity:.8;padding:0 .5rem 0 .6rem}.skirmish-hud__who{display:flex;flex-direction:column;justify-content:center;gap:.05rem;width:6.5rem;flex:none;min-width:0;line-height:1.1}.skirmish-hud__who-name{font-size:clamp(.8rem,1.7vh,1rem);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skirmish-hud__who-character{font-size:clamp(.62rem,1.3vh,.78rem);font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--character-accent-text)}.energy-bar{position:relative;flex:1;height:.85rem;border-radius:999px;background:var(--track);overflow:hidden;box-shadow:inset 0 1px 2px #1a1a2e1f}.energy-bar--compact{height:.45rem}.energy-bar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--character-accent) 65%,white),var(--character-accent));transition:width .3s linear}.energy-bar__notch{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#1a1a2e40}.energy-bar__notch--passed{background:#ffffffbf}.energy-bar--full .energy-bar__fill{animation:energy-full 1.4s ease-in-out infinite alternate}@keyframes energy-full{0%{box-shadow:inset 0 0 #fff0}to{box-shadow:inset 0 0 12px 2px #ffffffa6}}.skirmish-hud__effects{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.skirmish-effect{padding:.2rem .6rem;border-radius:999px;font-size:clamp(.75rem,1.6vh,.92rem);font-weight:700}.skirmish-effect--bad{background:var(--danger-bg);color:var(--danger)}.skirmish-effect--good{background:var(--pill-good-bg);color:var(--pill-good-text)}.skirmish-hud__abilities{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.skirmish-ability-button{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .9rem;font-size:.95rem;font-weight:700;border:none;border-radius:8px;background:var(--character-accent);color:#fff;cursor:pointer;transition:transform .11s ease-out,box-shadow .2s ease-out}.skirmish-ability-button__tier{font-size:.65rem;font-weight:800;letter-spacing:.06em;padding:.1rem .35rem;border-radius:4px;background:#ffffff38}.skirmish-ability-button__cost{font-size:.8rem;font-weight:700;padding:.05rem .4rem;border-radius:999px;background:#0003}.skirmish-ability-button__standing{font-size:.72rem;font-weight:600;opacity:.75;font-variant-numeric:tabular-nums}.skirmish-ability-button--armed{box-shadow:0 2px color-mix(in srgb,var(--character-accent) 55%,black),0 5px 14px color-mix(in srgb,var(--character-accent) 35%,transparent)}.skirmish-ability-button--armed:active{transform:translateY(2px);box-shadow:0 0 color-mix(in srgb,var(--character-accent) 55%,black)}.skirmish-ability-button--ultimate{background:linear-gradient(135deg,var(--character-accent),color-mix(in srgb,var(--character-accent) 55%,black));letter-spacing:.03em}.skirmish-ability-button--pending{outline:3px solid color-mix(in srgb,var(--character-accent) 45%,white);outline-offset:2px}.skirmish-ability-button--just-armed{animation:ability-armed .7s cubic-bezier(.22,1.2,.36,1)}@keyframes ability-armed{0%{transform:scale(1);box-shadow:0 0 color-mix(in srgb,var(--character-accent) 70%,transparent)}35%{transform:scale(1.08)}to{transform:scale(1);box-shadow:0 0 0 16px color-mix(in srgb,var(--character-accent) 0%,transparent)}}.skirmish-ability-button:disabled{background:transparent;color:var(--text-muted);box-shadow:inset 0 0 0 2px var(--border);cursor:not-allowed}.skirmish-ability-button:disabled .skirmish-ability-button__tier,.skirmish-ability-button:disabled .skirmish-ability-button__cost{background:var(--track);color:var(--text-muted)}.skirmish-validate-button{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .9rem;font-size:.95rem;font-weight:700;font-family:inherit;border:none;border-radius:8px;background:transparent;color:var(--success);box-shadow:inset 0 0 0 2px var(--success);cursor:pointer;transition:transform .11s ease-out}.skirmish-validate-button:active:not(:disabled){transform:translateY(2px)}.skirmish-validate-button__charges{font-size:.8rem;font-weight:700;padding:.05rem .4rem;border-radius:999px;background:color-mix(in srgb,var(--success) 18%,transparent)}.skirmish-validate-button--spent,.skirmish-validate-button:disabled{color:var(--text-muted);box-shadow:inset 0 0 0 2px var(--border);cursor:not-allowed}.skirmish-validate-button:disabled .skirmish-validate-button__charges{background:var(--track);color:var(--text-muted)}.arg-picker{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.6rem .9rem;border-radius:10px;background:var(--surface-3);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--character-accent) 30%,transparent)}.arg-picker__prompt{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;color:var(--text-soft)}.arg-picker__cancel{border:none;background:none;font-size:1.1rem;line-height:1;cursor:pointer;color:var(--text-muted)}.arg-picker__digits{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:center}.arg-picker__key{width:2.2rem;height:2.2rem;border:none;border-radius:6px;background:var(--surface);font-size:1.05rem;font-weight:700;color:var(--text);cursor:pointer;box-shadow:0 1px 3px #1a1a2e2e}.arg-picker__key:hover,.arg-picker__box:hover{background:var(--character-accent);color:#fff}.arg-picker__boxes{display:grid;grid-template-columns:repeat(3,1.7rem);grid-template-rows:repeat(3,1.7rem);gap:3px}.arg-picker__box{border:none;border-radius:4px;background:var(--surface);cursor:pointer;box-shadow:0 1px 3px #1a1a2e2e}.skirmish-hud__incoming{display:flex;flex-direction:column;align-items:center;gap:.3rem}.skirmish-hud__incoming-banner{padding:.35rem .9rem;border-radius:999px;background:var(--warn-bg);color:var(--warn-text);font-weight:700;font-size:.85rem;animation:relay-penalty-in .18s ease-out,incoming-throb .42s ease-in-out infinite alternate}@keyframes incoming-throb{0%{background:var(--warn-bg)}to{background:var(--warn-pulse)}}.character-select{width:min(96vw,900px)}.character-select__title{margin:0 0 .15rem;font-size:1.05rem}.character-select__hint{margin:0 0 .7rem;font-size:.85rem;color:var(--text-muted)}.character-select__row{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;width:100%;margin-bottom:.7rem}.character-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem .3rem .4rem;border:2px solid var(--border);border-radius:999px;background:var(--surface);color:inherit;font:inherit;font-weight:600;cursor:pointer}.character-tab:disabled{cursor:not-allowed;opacity:.6}.character-tab--selected{border-color:var(--character-accent);background:var(--surface-2)}.character-tab__name{font-size:.9rem}.character-select__grid--single{grid-template-columns:minmax(0,1fr);max-width:30rem;margin:0 auto}.character-select__toggle{display:block;margin:.7rem auto 0;padding:.35rem .9rem;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.character-select__toggle:hover{color:var(--text)}.character-select__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6rem}.character-card{display:flex;flex-direction:column;gap:.45rem;padding:.75rem;text-align:left;border:2px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .14s ease-out,box-shadow .2s ease-out,transform .11s ease-out}.character-card:hover:not(:disabled){transform:translateY(-2px)}.character-card--selected{border-color:var(--character-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--character-accent) 22%,transparent),0 8px 20px #1a1a2e1a}.character-card:disabled{cursor:not-allowed;opacity:.6}.character-card__head{display:flex;align-items:center;gap:.6rem}.character-card__naming{display:flex;flex-direction:column}.character-card__name{font-size:1.1rem;font-weight:800;color:var(--character-accent-text)}.character-card__title{font-size:.78rem;color:var(--text-muted)}.character-card__wants{margin:0;font-size:.9rem;font-weight:600;color:var(--text)}.character-card__passive{margin:0;font-size:.78rem;line-height:1.35;color:var(--text-soft)}.character-card__passive-name{display:block;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;color:var(--character-accent-text)}.character-card__kit{display:flex;flex-direction:column;gap:.3rem;margin:0;padding:.5rem 0 0;list-style:none;border-top:1px solid var(--border)}.character-card__ability{display:grid;grid-template-columns:1.9rem 1fr auto;gap:.1rem .4rem;align-items:baseline;font-size:.8rem}.character-card__tier{grid-row:span 2;justify-self:start;align-self:center;padding:.1rem .3rem;border-radius:4px;font-size:.6rem;font-weight:800;letter-spacing:.05em;color:#fff;background:var(--character-accent)}.character-card__ability-name{font-weight:700;color:var(--text)}.character-card__cost{font-size:.7rem;font-weight:700;color:var(--text-muted)}.character-card__ability-blurb{grid-column:2 / span 2;font-size:.72rem;line-height:1.3;color:var(--text-muted)}.lobby-seat__character,.player-panel__character{font-size:clamp(.7rem,1.4vh,1rem);font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--character-accent-text)}.ready-up{display:flex;flex-direction:column;align-items:center;gap:.75rem}.ready-up__count{color:var(--text-soft)}.ready-up__toggle{padding:.7rem 1.4rem;font-size:1rem;font-weight:700;border:2px solid var(--success);border-radius:8px;background:var(--surface);color:var(--success);cursor:pointer}.ready-up__toggle--ready{background:var(--success-fill);color:#fff}.ready-up__toggle:disabled{border-color:var(--accent-disabled);color:var(--accent-disabled);background:var(--surface);cursor:not-allowed}.ready-up__toggle--pending:disabled{border-color:var(--success);background:var(--success-fill);color:#fff;cursor:progress;animation:ready-pulse .9s ease-in-out infinite}@keyframes ready-pulse{0%,to{opacity:1}50%{opacity:.55}}.text-link{color:var(--accent-text);font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}a.primary-button,a.secondary-button{text-decoration:none;display:inline-block}.room-code-input{text-transform:uppercase;letter-spacing:.15em;font-family:monospace}.join-form button:disabled{background:var(--accent-disabled);cursor:not-allowed}.room-code-bar{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem 1.25rem;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.room-code-bar__row{display:flex;align-items:center;gap:.75rem}.room-code-bar .room-code{font-size:1.35rem}.room-code-bar__url{font-size:.75rem;color:var(--text-muted);-webkit-user-select:all;user-select:all;word-break:break-all}.outcome__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1rem}.opponent-strip{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;width:min(90vw,640px)}.opponent-chip{display:flex;flex-direction:column;gap:.3rem;min-width:11rem;padding:.5rem .75rem;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.opponent-chip__row{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.opponent-chip__name{font-weight:700;font-size:.95rem}.opponent-chip .timer{font-size:1.1rem}.opponent-chip__offline{font-size:.75rem;font-weight:600;color:var(--danger)}.opponent-strip--compact{width:min(96vw,1100px);gap:.4rem}.opponent-strip--compact .opponent-chip{flex-direction:row;align-items:center;flex-wrap:wrap;gap:.5rem;min-width:0;padding:.3rem .65rem}.opponent-strip--compact .opponent-chip__row{gap:.4rem;justify-content:flex-start}.opponent-strip--compact .opponent-chip__name{font-size:.85rem}.opponent-strip--compact .opponent-chip .timer{font-size:.95rem}.progress-meter{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--text-muted)}.progress-bar{display:block;width:4rem;height:.4rem;border-radius:999px;background:var(--track);overflow:hidden}.opponent-chip__gap{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted)}.opponent-chip__gap--ahead{color:var(--warn-text)}.opponent-chip__gap--behind{color:var(--success)}.progress-bar__fill{display:block;height:100%;background:var(--accent);transition:width .26s ease-out}.lobby-seat__remove{flex:none;margin-left:auto;width:1.6rem;height:1.6rem;padding:0;border:1px solid transparent;border-radius:999px;background:none;color:var(--text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.lobby-seat__remove:hover,.lobby-seat__remove:focus-visible{border-color:var(--danger);color:var(--danger)}.player-panel__meta{display:flex;align-items:center;gap:.5rem}.lobby-seats{display:flex;flex-direction:column;gap:.4rem;width:min(90vw,360px)}.lobby-seat{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .85rem;border-radius:8px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.lobby-seat--open{background:transparent;box-shadow:none;border:1px dashed var(--border);color:var(--text-muted)}.lobby-seat__name{display:inline-flex;align-items:center;gap:.4rem;font-weight:600}.lobby-seat__ready{font-size:.8rem;font-weight:700;color:var(--text-muted)}.lobby-seat__ready--yes{color:var(--success)}.mode-rules{width:min(90vw,420px);padding:.6rem .9rem;border-radius:8px;background:var(--surface);box-shadow:0 1px 4px #0000000f;font-size:.85rem;color:var(--text-soft)}.mode-rules summary{cursor:pointer;font-weight:700;color:var(--text)}.mode-rules ul{margin:.6rem 0 0;padding-left:1.1rem;line-height:1.5}.mode-rules__abilities{margin-top:.4rem;list-style:none;padding-left:0}.install-hint{display:flex;align-items:center;gap:.6rem;width:min(100%,28rem);padding:.6rem .9rem;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text-soft);font-size:.85rem;line-height:1.35;text-align:left}.install-hint__text{flex:1 1 auto;min-width:0}.install-hint__action{flex:0 0 auto;padding:.4rem .9rem;border:none;border-radius:999px;background:var(--accent);color:#fff;font-family:inherit;font-weight:700;font-size:.85rem;cursor:pointer}.install-hint__dismiss{flex:0 0 auto;border:none;background:transparent;color:var(--text-muted);font-size:1.2rem;line-height:1;cursor:pointer}.update-banner{position:fixed;z-index:50;left:50%;transform:translate(-50%);bottom:max(.75rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.6rem;max-width:min(92vw,30rem);padding:.5rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.85rem;font-weight:600;box-shadow:0 4px 16px #0000002e}.update-banner__apply{padding:.35rem .75rem;border:none;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:.8rem;font-family:inherit;cursor:pointer}.update-banner__dismiss{border:none;background:transparent;color:var(--text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.banner{margin:0;padding:.4rem 1rem;border-radius:999px;font-weight:600;font-size:.9rem}.banner--warn{background:var(--warn-bg);color:var(--warn-text)}.banner--error{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center;border-radius:12px;background:var(--danger-bg);color:var(--danger-text-on-tint)}.pause-veil{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.pause-veil__panel{display:flex;flex-direction:column;align-items:center;gap:.75rem;max-width:min(90vw,26rem);padding:1.5rem;border:2px solid var(--border);border-radius:16px;background:var(--surface);text-align:center}.pause-veil__title{margin:0;font-size:1.5rem}.pause-veil .timer{font-size:clamp(2rem,9vh,3rem);color:var(--text)}.error-text__dismiss{margin-left:.5rem;border:none;background:transparent;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer}.player-page{--grid-max-width: 720px;--board-width: min(94vw, var(--grid-max-width))}.player-page--live{height:100dvh;overflow-y:auto;--live-gutter: clamp(.5rem, 2vh, 2rem);padding-top:max(var(--live-gutter),env(safe-area-inset-top));padding-bottom:max(var(--live-gutter),env(safe-area-inset-bottom));gap:clamp(.4rem,1.6vh,1.25rem)}.player-page--live>*{flex-shrink:0}.player-page--live>.sudoku-board{flex:1 1 0;width:var(--board-width);justify-content:center}.player-page.player-page--lobby{--grid-max-width: 360px}@media(min-width:768px)and (min-aspect-ratio:4/5){.player-page{--grid-max-width: min(720px, calc(100vw - 18rem) )}}@media(max-width:640px){.page{padding:max(.75rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));gap:.6rem}.player-header{width:100%;gap:.5rem}.player-header .badge,.relay-header__tags .badge,.race-header__tags .badge{font-size:clamp(.7rem,1.6vh,.9rem);padding:clamp(.2rem,.5vh,.35rem) clamp(.5rem,1.2vh,.8rem)}.host-controls .hint-text{display:none}.opponent-strip{width:100%;gap:.4rem}.opponent-chip{flex:1 1 auto;min-width:0;padding:.35rem .5rem}.opponent-strip--compact .opponent-chip{flex:1 1 auto;min-width:6.5rem}.opponent-strip--compact .opponent-chip__row{gap:.35rem}.opponent-strip--compact .progress-bar{width:2rem;flex:0 0 auto}.opponent-strip--compact .opponent-chip__name{min-width:0;overflow:hidden;text-overflow:ellipsis}.opponent-strip--compact .progress-meter__count{display:none}.skirmish-hud{width:100%;gap:.35rem}.skirmish-hud .shape-grid{--shape-grid-size: 3.4rem}.skirmish-hud__who{width:clamp(4.5rem,12vh,6rem)}.player-page--skirmish .opponent-strip{display:none}.relay-header{width:100%;gap:.4rem}.relay-status{font-size:clamp(.8rem,1.8vh,1rem);line-height:1.25}.skirmish-hud__abilities{flex-wrap:nowrap;width:100%;gap:.3rem}.skirmish-ability-button{flex:1 1 0;justify-content:center;min-width:0;padding:clamp(.5rem,1.2vh,.8rem) .35rem;font-size:clamp(.8rem,1.8vh,1rem)}.skirmish-ability-button__tier{display:none}.skirmish-validate-button{flex:0 0 auto;padding:clamp(.5rem,1.2vh,.8rem) clamp(.5rem,1.2vh,.8rem);font-size:clamp(.9rem,2vh,1.15rem)}.skirmish-validate-button .control-label{display:none}.player-controls{width:100%;gap:.4rem;flex-wrap:nowrap;align-items:stretch}.player-controls button,.player-controls .pencil-toggle,.player-controls .input-mode-toggle{flex:1 1 0;min-width:0;padding:clamp(.6rem,1.4vh,.95rem) .2rem;font-size:clamp(.75rem,1.95vh,1rem);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-controls .control-label{display:none}.player-controls .pencil-toggle,.player-controls .input-mode-toggle,.player-controls .undo-button{flex:0 0 auto;padding-left:clamp(.7rem,1.6vh,1rem);padding-right:clamp(.7rem,1.6vh,1rem);font-size:clamp(1rem,2.5vh,1.45rem)}.player-controls .pass-button__hint{display:none}.player-page>.sudoku-board{width:100%}.number-pad{grid-template-columns:repeat(5,1fr);gap:.3rem;width:100%}.number-pad__key{padding:.4rem 0}.number-pad__remaining{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.link-button{padding:0;border:none;background:none;font:inherit;font-weight:600;color:var(--accent-text);cursor:pointer;text-decoration:none}.link-button:hover{text-decoration:underline}.text-input,.auth__form input{padding:.6rem .8rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px}.text-input--wanted{border-color:var(--accent-text);box-shadow:0 0 0 3px var(--accent-tint)}.home__topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;width:min(90vw,380px)}.home__account{margin-left:auto}.assists-toggle,.guides-toggle{padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);font-size:.8rem;font-weight:600;color:var(--text-muted);cursor:pointer}.assists-toggle--on,.guides-toggle--on{border-color:var(--ink);background:var(--ink);color:var(--ink-text)}[data-guides=off] .guide-text{display:none}.theme-toggle{display:flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2)}.theme-toggle__option{position:relative;display:flex}.theme-toggle__option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.theme-toggle__option span{display:block;padding:.3rem .7rem;border-radius:999px;font-size:.8rem;font-weight:600;color:var(--text-muted);cursor:pointer}.theme-toggle__option input:checked+span{background:var(--ink);color:var(--ink-text)}.theme-toggle__option input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}.home__presence{margin:0;font-size:.85rem;color:var(--text-muted)}.auth__header{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.auth__blurb{margin:0;max-width:34ch;color:var(--text-soft);font-size:.95rem;line-height:1.4}.auth__form{display:flex;flex-direction:column;gap:.5rem;width:min(90vw,340px);padding:1.5rem;border-radius:12px;background:var(--surface);box-shadow:0 2px 12px #00000014}.auth__form label{font-weight:600;font-size:.9rem}.auth__form button[type=submit]{margin-top:.5rem;padding:.7rem 1.2rem;font-size:1rem;font-weight:600;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer}.auth__form button[type=submit]:disabled{background:var(--accent-disabled);cursor:not-allowed}.auth__hint{margin:0;font-size:.8rem;color:var(--text-muted)}.auth__alternatives{display:flex;flex-direction:column;align-items:center;gap:.6rem}.searching{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.searching__pulse{width:3rem;height:3rem;margin-bottom:.5rem;border-radius:50%;background:var(--accent);animation:searching-pulse 1.4s ease-in-out infinite}@keyframes searching-pulse{0%,to{transform:scale(.85);opacity:.55}50%{transform:scale(1);opacity:1}}.searching__title{margin:0;font-size:1.4rem}.searching__detail{margin:0;font-weight:600;color:var(--text-soft)}.searching__elapsed{margin:0;font-variant-numeric:tabular-nums;color:var(--text-muted)}.searching__offer{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1rem 1.25rem;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f;text-align:center}.outcome__solo-time{margin:.5rem 0 0;font-size:1.15rem;font-variant-numeric:tabular-nums}.outcome__rematch-note,.outcome__record{margin:.5rem 0 0;font-weight:600;color:var(--accent-text)}.home__quiet-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem 1.25rem;margin-top:.25rem}.home__support{margin-top:1.5rem;font-size:.85rem;color:var(--text-muted);text-align:center}.home__support a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}.home__support a:hover{color:var(--accent-text)}.records{justify-content:flex-start}.records__header{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.records__blurb{margin:0;max-width:30rem;color:var(--text-soft);line-height:1.45}.records__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));align-items:start;gap:.75rem;width:min(100%,46rem)}.records__difficulty{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 1rem;border-radius:10px;background:var(--surface);box-shadow:0 1px 4px #0000000f}.records__difficulty-name{margin:0;font-size:1rem;color:var(--text-soft)}.records__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.records__row{display:grid;grid-template-columns:1.5rem auto 1fr;align-items:baseline;gap:.6rem;padding:.35rem .5rem;border-radius:8px;background:var(--surface-2)}.records__row--best{background:var(--accent-tint)}.records__place{color:var(--text-muted);font-variant-numeric:tabular-nums}.records__row--best .records__place{color:var(--accent-text)}.records__time{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.records__assisted{margin-left:.1rem;color:var(--text-muted);font-weight:600}.records__row--best .records__assisted{color:var(--accent-text)}.records__legend{margin:0;max-width:32rem;color:var(--text-soft);font-size:.9rem;line-height:1.45;text-align:center}.records__date{color:var(--text-muted);font-size:.85rem;text-align:right;white-space:nowrap}.records__none{margin:0;color:var(--text-muted);font-size:.9rem}.records__empty{margin:0;max-width:26rem;text-align:center;color:var(--text-soft);line-height:1.45}.records__signed-out{display:flex;flex-direction:column;align-items:center;gap:1rem}.records__manage{display:flex;flex-direction:column;align-items:center;gap:.5rem}.records__warning{margin:0;max-width:26rem;text-align:center;color:var(--danger);font-weight:600}.records__confirm{display:flex;align-items:center;gap:1rem}.quick-actions{position:sticky;bottom:0;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;margin:0 -2rem -1.75rem;padding:.75rem 2rem max(1rem,env(safe-area-inset-bottom));width:calc(100% + 4rem);border-radius:0 0 12px 12px;background:var(--surface);box-shadow:0 -10px 12px -10px #00000040}.open-searches{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%;padding-bottom:1rem;border-bottom:1px solid var(--border)}.open-searches__title{margin:0;font-weight:700}.open-searches__list{display:flex;flex-direction:column;gap:.4rem;width:100%}.open-search{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.6rem .85rem;font-family:inherit;text-align:left;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .11s ease-out}.open-search:hover:not(:disabled){border-color:var(--accent)}.open-search:disabled{cursor:progress;opacity:.6}.open-search__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.open-search__match{font-weight:600;font-size:.9rem}.open-search__wait{font-size:.78rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.open-search__join{flex:none;font-weight:700;font-size:.85rem;color:var(--accent-text)}.searching+.open-searches{width:min(90vw,380px);padding-bottom:0;border-bottom:none}.badge--offline{background:var(--warn-bg);color:var(--warn-text)}.option-button__stock{margin-left:.5rem;padding:.05rem .4rem;border-radius:999px;border:1px solid currentColor;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;opacity:.75}.solo-difficulty{margin-top:1.5rem}.solo-setup{gap:1rem}.solo-setup__blurb{max-width:28rem;text-align:center}.solo-rules{margin:0;padding-left:1.25rem;max-width:30rem;color:var(--text-soft);line-height:1.5;text-align:left}.solo-resume{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:min(90vw,28rem);padding:1rem;border:2px solid var(--border);border-radius:12px;background:var(--surface-2);text-align:center}.solo-resume__title{margin:0;font-size:1.05rem}.solo-empty{gap:1rem}.records__pending{margin:0;max-width:32rem;padding:.5rem 1rem;border-radius:12px;background:var(--warn-bg);color:var(--warn-text);text-align:center;font-weight:600;line-height:1.4}
