:root{color:var(--text);background:var(--background);font-synthesis:none;--background:#e9e0cb;--surface:#fffaf0;--surface-strong:#f5ead4;--text:#172f33;--muted-text:#5b6c6d;--border:#8c9b91;--water:#20788a;--water-deep:#155667;--grid-line:#b5e2df;--ship:#203f46;--selected:#e3ac3e;--valid-preview:#69b579;--invalid-preview:#d85d55;--miss:#e9f3ee;--hit:#ed755f;--sunk:#732f34;--focus:#ffb000;--success:#267b4c;--danger:#a62f34;--shadow:0 18px 50px #162f3329;font-family:Inter,Aptos,Segoe UI,system-ui,sans-serif}:root[data-theme=dark]{--background:#071f29;--surface:#102f38;--surface-strong:#173d45;--text:#f3ead6;--muted-text:#b9cbc6;--border:#557078;--water:#14586d;--water-deep:#0b3d4d;--grid-line:#66a4aa;--ship:#e2bd6c;--selected:#ffd166;--valid-preview:#62c886;--invalid-preview:#ff786f;--miss:#b9d8d7;--hit:#ff765d;--sunk:#b94650;--focus:#ffd166;--success:#75d39a;--danger:#ff8b82;--shadow:0 20px 60px #00000052}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--surface) 55%, transparent), transparent 42%), var(--background);min-width:320px;min-height:100dvh;overflow-x:hidden}button,select,input{font:inherit}button{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.app-shell{min-height:100dvh;padding-bottom:calc(3.5rem + env(safe-area-inset-bottom))}.app-header{min-height:68px;padding:max(.7rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .7rem max(1rem, env(safe-area-inset-left));border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:4;align-items:center;gap:.75rem;display:flex;position:relative}.brand-mark{border:1px solid var(--border);width:38px;height:38px;color:var(--water);border-radius:50%;place-items:center;font-size:1.35rem;display:grid}.brand-copy{line-height:1.1;display:grid}.brand-copy strong{font-family:Georgia,Times New Roman,serif;font-size:1.2rem}.brand-copy span{color:var(--muted-text);margin-top:.25rem;font-size:.72rem}.header-controls{gap:.5rem;display:flex}.header-controls select,.icon-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;min-width:44px;min-height:44px}.header-controls select{padding:0 .6rem}.menu-screen{gap:1rem;width:min(1120px,100% - 2rem);margin:0 auto;padding:clamp(2rem,8vw,6rem) 0;display:grid}.hero-card{text-align:center;border:1px solid var(--border);background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 94%, transparent), color-mix(in srgb, var(--surface-strong) 80%, transparent));min-height:500px;box-shadow:var(--shadow);border-radius:32px;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex;position:relative;overflow:hidden}.hero-card:before{content:"";opacity:.18;background-image:repeating-radial-gradient(circle at center, var(--water) 0 1px, transparent 2px 46px);pointer-events:none;position:absolute;inset:0}.hero-card>*{position:relative}.compass{border:1px solid var(--border);width:110px;height:110px;color:var(--water);border-radius:50%;place-items:center;display:grid;position:relative}.compass span{font-size:.7rem;position:absolute;top:8px}.compass i{background:linear-gradient(var(--hit) 50%, var(--water-deep) 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:2px;height:55px;display:block;transform:rotate(32deg)}.eyebrow{color:var(--muted-text);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700}.hero-card h1,.placement-heading h1,.confirmed-card h1{letter-spacing:-.05em;margin:.25rem 0;font:clamp(3.5rem,12vw,7rem)/.9 Georgia,Times New Roman,serif}.hero-tagline{color:var(--muted-text);max-width:32rem;font-size:clamp(1rem,3vw,1.35rem)}.primary-action{background:var(--text);min-height:50px;color:var(--surface);cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:1.2rem;padding:.8rem 1.25rem;font-weight:700;display:inline-flex}.primary-action:hover:not(:disabled){transform:translateY(-1px)}.primary-action:disabled{opacity:.42;cursor:not-allowed}.primary-action.compact{min-height:44px;font-size:.9rem}.future-card{border:1px dashed var(--border);border-radius:20px;padding:1.2rem 1.5rem}.future-card h2{margin:0 0 1rem;font:1.1rem Georgia,Times New Roman,serif}.future-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.future-grid div{color:var(--muted-text);align-items:center;gap:.75rem;display:flex}.future-grid span{font-size:1.5rem}.future-grid p{margin:0;font-size:.88rem}.statistics-panel{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow);border-radius:24px;gap:1rem;padding:1.2rem;display:grid}.statistics-heading h2,.hall-of-fame h2{margin:.1rem 0;font:clamp(1.8rem,5vw,3rem) Georgia,Times New Roman,serif}.statistics-section{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--surface-strong) 42%, transparent);border-radius:16px;gap:.65rem;padding:.85rem;display:grid}.statistics-section h3,.hall-board h3{margin:0;font:1.05rem Georgia,Times New Roman,serif}.statistics-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.55rem;display:grid}.stat-card,.difficulty-stat-card,.hall-board{border:1px solid color-mix(in srgb, var(--border) 60%, transparent);background:var(--surface);border-radius:12px;gap:.25rem;min-width:0;padding:.75rem;display:grid}.stat-card span,.difficulty-stat-card span,.hall-board p{color:var(--muted-text);font-size:.82rem}.stat-card strong{font-size:1.35rem}.difficulty-stat-grid,.hall-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;display:grid}.difficulty-stat-card h4{margin:0 0 .25rem}.hall-of-fame{gap:.75rem;padding-top:.5rem;display:grid}.hall-board ol{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.hall-board li{justify-content:space-between;gap:.75rem;display:flex}.achievements-screen{gap:1rem;width:min(1120px,100% - 2rem);margin:0 auto;padding:clamp(1.2rem,4vw,3rem) 0;display:grid}.achievements-hero,.achievement-category{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow);border-radius:22px;padding:1rem}.achievements-hero h1{margin:.1rem 0;font:clamp(2.4rem,7vw,4.5rem) Georgia,Times New Roman,serif}.achievements-hero p:last-child{color:var(--muted-text)}.achievement-category h2{margin:0 0 .8rem;font:1.25rem Georgia,Times New Roman,serif}.achievement-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.75rem;display:grid}.achievement-card{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:var(--surface);border-radius:14px;grid-template-columns:42px 1fr;align-items:start;gap:.75rem;padding:.9rem;display:grid}.achievement-card h3,.achievement-card p{margin:0}.achievement-card p{color:var(--muted-text);font-size:.88rem}.achievement-card strong{background:color-mix(in srgb, var(--border) 18%, transparent);border-radius:999px;width:fit-content;margin-top:.55rem;padding:.2rem .5rem;font-size:.75rem;display:inline-flex}.achievement-medal{border:1px solid var(--border);border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.4rem;display:grid}.achievement-card.is-unlocked{border-color:var(--success);background:color-mix(in srgb, var(--success) 9%, var(--surface))}.achievement-card.is-unlocked .achievement-medal{border-color:var(--success);color:var(--success)}.achievement-card.is-unlocked strong{background:color-mix(in srgb, var(--success) 18%, transparent)}.achievement-card.is-locked{opacity:.74}.placement-screen{width:min(1240px,100% - 2rem);margin:0 auto;padding:clamp(1.2rem,3vw,2.5rem) 0}.placement-heading{grid-template-columns:auto 1fr;align-items:start;gap:1rem;margin-bottom:1.5rem;display:grid}.placement-heading h1{font-size:clamp(2.3rem,6vw,4rem)}.placement-heading p{color:var(--muted-text);max-width:46rem;margin:.35rem 0}.text-button{cursor:pointer;text-underline-offset:4px;background:0 0;border:0;min-height:44px;text-decoration:underline}.placement-layout{grid-template-columns:minmax(520px,1fr) minmax(280px,360px);align-items:start;gap:clamp(1rem,3vw,2rem);display:grid}.board-panel,.control-card{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 93%, transparent);box-shadow:var(--shadow);border-radius:22px}.board-panel{padding:clamp(.5rem,2vw,1.2rem)}.placement-controls{gap:.8rem;display:grid}.control-card{padding:1rem}.control-card h2{margin:0 0 .8rem;font:1.1rem Georgia,Times New Roman,serif}.board-wrap{width:100%;overflow:hidden;container-type:inline-size}.board-grid{--cell:min(8.1cqw, 48px);grid-template-columns:24px repeat(var(--columns), var(--cell));grid-template-rows:24px repeat(10, var(--cell));-webkit-user-select:none;user-select:none;justify-content:center;display:grid}.board-row{display:contents}.axis-label{color:var(--muted-text);place-items:center;font-size:clamp(.65rem,2cqw,.8rem);font-weight:700;display:grid}.board-cell{width:var(--cell);height:var(--cell);border:0;border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);background:var(--water);color:#fff;cursor:crosshair;min-width:0;padding:0;position:relative}.board-cell:nth-child(2){border-left:1px solid var(--grid-line)}.board-row:nth-of-type(2) .board-cell{border-top:1px solid var(--grid-line)}.board-cell:hover{filter:brightness(1.12);z-index:1}.board-cell span{font-size:calc(var(--cell) * .48)}.cell-ship{background:color-mix(in srgb, var(--ship) 86%, var(--water));color:var(--surface)}.cell-valid-preview{background:var(--valid-preview)}.cell-invalid-preview{background:var(--invalid-preview);background-image:linear-gradient(45deg, transparent 43%, color-mix(in srgb, var(--danger) 80%, transparent) 44% 56%, transparent 57%)}.cell-selected{outline:3px solid var(--selected);outline-offset:-3px}.cell-miss{background:var(--water);color:var(--miss)}.cell-hit{background:var(--hit)}.cell-sunk{background:var(--sunk)}.preview-bar{background:var(--surface-strong);min-height:68px;color:var(--muted-text);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.8rem;padding:.65rem;display:flex}.preview-bar.is-valid{border-left:5px solid var(--success)}.preview-bar.is-invalid{border-left:5px solid var(--danger)}.preview-bar>span:nth-child(2){margin-right:auto}.fleet-list{gap:.45rem;display:grid}.ship-choice{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:94px 1fr 24px;align-items:center;gap:.6rem;width:100%;min-height:54px;padding:.5rem;display:grid}.ship-choice.selected{border-color:var(--selected);background:color-mix(in srgb, var(--selected) 12%, transparent)}.ship-choice strong,.ship-choice small{display:block}.ship-choice small{color:var(--muted-text);margin-top:.15rem}.ship-choice i{color:var(--success);font-style:normal}.ship-silhouette{color:var(--ship);letter-spacing:-2px;white-space:nowrap;font-size:.9rem}.rule-option{cursor:pointer;align-items:flex-start;gap:.7rem;min-height:56px;padding:.45rem 0;display:flex}.rule-option input{width:20px;height:20px;accent-color:var(--water)}.rule-option strong,.rule-option small{display:block}.rule-option small{color:var(--muted-text);margin-top:.2rem}.action-card{gap:.7rem;display:grid}.orientation-toggle,.action-row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.orientation-toggle button,.action-row button,.action-card>button:not(.primary-action){border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;min-height:44px}.orientation-toggle button[aria-pressed=true]{border-color:var(--selected);background:color-mix(in srgb, var(--selected) 20%, var(--surface))}.notice{color:var(--muted-text);margin:0;font-size:.86rem}.confirmed-screen{place-items:center;min-height:calc(100dvh - 140px);padding:2rem;display:grid}.confirmed-card{text-align:center;border:1px solid var(--border);background:var(--surface);max-width:580px;box-shadow:var(--shadow);border-radius:28px;padding:3rem}.confirmed-card>span{background:var(--success);width:70px;height:70px;color:var(--surface);border-radius:50%;place-items:center;margin:auto;font-size:2rem;display:grid}.confirmed-card h1{font-size:clamp(2.2rem,7vw,4rem)}.confirmed-card p{color:var(--muted-text)}.sound-settings{z-index:6;margin-left:auto;position:relative}.sound-settings-trigger{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;place-items:center;min-height:44px;padding:0 .75rem;font-weight:700;display:grid}.sound-settings-portal{z-index:40;pointer-events:none;position:fixed;inset:0}.sound-settings-backdrop{pointer-events:auto;background:0 0;border:0;width:100%;height:100%;padding:0;position:fixed;inset:0}.sound-settings-panel{overscroll-behavior:contain;border:1px solid var(--border);background:var(--surface);width:min(320px,100vw - 1rem);box-shadow:var(--shadow);pointer-events:auto;isolation:isolate;border-radius:14px;gap:.8rem;padding:.8rem;display:grid;position:fixed;overflow-y:auto}.sound-settings label{gap:.35rem;font-size:.82rem;display:grid}.sound-range span{justify-content:space-between;gap:.75rem;display:flex}.sound-range input[type=range]{width:100%;min-height:44px;accent-color:var(--selected);touch-action:none;margin:0}.sound-toggle-row{justify-content:space-between;align-items:center;gap:.8rem;min-height:48px;font-weight:700;display:flex}.sound-switch{border:1px solid var(--border);background:var(--border);cursor:pointer;border-radius:999px;flex:none;width:58px;height:34px;padding:3px}.sound-switch-thumb{background:var(--surface);border-radius:50%;width:26px;height:26px;display:block;transform:translate(0);box-shadow:0 2px 5px #00000047}.sound-switch[aria-checked=true]{background:var(--success);border-color:var(--success)}.sound-switch[aria-checked=true] .sound-switch-thumb{transform:translate(24px)}@media (width<=820px){.placement-layout{grid-template-columns:1fr}.placement-controls{grid-template-columns:1fr 1fr}.action-card{grid-column:1/-1}.board-grid{--cell:min(8.45cqw, 48px)}}@media (width<=560px){.app-header{min-height:60px}.brand-copy span{display:none}.menu-screen,.placement-screen{width:min(100% - 1rem,1240px)}.menu-screen{padding-top:1rem}.hero-card{border-radius:22px;min-height:470px;padding:1rem}.future-grid,.placement-controls,.placement-heading{grid-template-columns:1fr}.placement-heading .text-button{justify-self:start}.board-panel{padding:.35rem}.board-grid{--cell:min(8.4cqw, 40px);grid-template-columns:20px repeat(var(--columns), var(--cell));grid-template-rows:20px repeat(10, var(--cell))}.preview-bar{align-items:stretch}.preview-bar>*{width:100%}.preview-bar .text-button{text-align:left}.action-card{grid-column:auto}.sound-settings{font-size:.85rem}}@media (height<=450px) and (orientation:landscape){.app-header{min-height:52px;padding-top:.35rem;padding-bottom:.35rem;position:static}.placement-screen{padding:.6rem 0}.placement-heading{margin-bottom:.6rem}.placement-heading p:not(.eyebrow){display:none}.placement-layout{grid-template-columns:minmax(430px,1.2fr) minmax(280px,.8fr);align-items:start}.placement-controls{grid-template-columns:1fr}.board-grid{--cell:min(7.3cqw, 29px);grid-template-columns:20px repeat(var(--columns), var(--cell));grid-template-rows:20px repeat(10, var(--cell))}.preview-bar{min-height:50px;margin-top:.35rem}.control-card{padding:.65rem}.fleet-list{grid-template-columns:1fr 1fr}.ship-choice{grid-template-columns:1fr 18px;min-height:42px}.ship-silhouette{display:none}}@media (prefers-reduced-motion:no-preference){button,.board-cell{transition:transform .15s,filter .15s,background-color .18s}.sound-switch-thumb{transition:transform .18s}}.difficulty-field{text-align:left;gap:.35rem;width:min(280px,100%);margin:1rem 0;font-weight:700;display:grid}.difficulty-field select{border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);border-radius:12px;padding:0 .8rem}.board-cell:disabled{cursor:default}.board-cell:disabled:hover{filter:none}.board-cell.cell-miss{background-image:radial-gradient(circle, var(--miss) 0 15%, transparent 17%)}.board-cell.cell-hit{background-image:linear-gradient(45deg,#0000 42%,#ffffffe0 43% 57%,#0000 58%),linear-gradient(-45deg,#0000 42%,#ffffffe0 43% 57%,#0000 58%)}.board-cell.cell-sunk{background-image:repeating-linear-gradient(135deg,#0000 0 7px,#ffffff3d 7px 10px)}.opponent-board.is-inactive .cell-unknown{opacity:.62;cursor:not-allowed}.local-battle-screen{width:min(1240px,100% - 2rem);margin:0 auto;padding:clamp(1rem,3vw,2rem) 0}.battle-status{border:1px solid var(--border);background:var(--surface);border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem;display:flex}.battle-status.is-finished{border-color:var(--success);background:color-mix(in srgb, var(--success) 8%, var(--surface))}.battle-status h1{margin:.1rem 0;font:clamp(1.8rem,5vw,3rem) Georgia,Times New Roman,serif}.battle-status p{color:var(--muted-text);margin:.25rem 0}.opponent-fleet-status{margin-left:auto}.opponent-fleet-status h2{text-align:center;margin:0 0 .45rem;font:1rem Georgia,Times New Roman,serif}.opponent-fleet-status ul{flex-wrap:wrap;justify-content:center;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.opponent-fleet-item{border:1px solid var(--border);background:color-mix(in srgb, var(--water) 8%, var(--surface));border-radius:10px;justify-items:center;gap:.15rem;min-width:92px;padding:.35rem .45rem;display:grid}.opponent-fleet-item strong,.opponent-fleet-item small{text-align:center;font-size:.68rem;display:block}.opponent-fleet-item small{color:var(--muted-text)}.opponent-ship-shape{justify-content:center;align-items:center;gap:2px;min-height:12px;display:flex;position:relative}.opponent-ship-shape i{background:var(--ship);border-radius:3px;width:10px;height:8px;display:block}.opponent-fleet-item.is-sunk{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.opponent-fleet-item.is-sunk .opponent-ship-shape i{background:var(--danger)}.opponent-fleet-item.is-sunk small{color:var(--danger);font-weight:700}.opponent-ship-shape b{color:var(--danger);text-shadow:0 0 2px var(--surface);font:700 2rem/1 sans-serif;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-52%)}.turn-indicator{border:1px solid;border-radius:999px;padding:.3rem .65rem;font-weight:800;display:inline-flex}.last-shot{min-height:1.4em}.battle-boards{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.battle-boards h2{text-align:center;margin:.2rem 0 .8rem;font:1.25rem Georgia,Times New Roman,serif}.battle-error{border-left:5px solid var(--danger);background:var(--surface);color:var(--danger);padding:.75rem}.online-battle-screen .battle-status{align-items:stretch}.online-sync-status{font-size:.82rem}.online-rematch-actions{align-content:center;gap:.55rem;min-width:min(100%,220px);display:grid}.online-rematch-actions .next-phase-note{margin:0}.online-battle-panels{grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr);gap:1rem;margin-top:1rem;display:grid}.online-timeline{min-height:0}.online-timeline-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.online-timeline-header h2{margin:0}.online-fleet-panel ul,.online-timeline ol{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.online-timeline ol{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:clamp(220px,34vh,420px);padding-right:.25rem;overflow-y:auto}.online-timeline ol:focus{outline:2px solid var(--selected);outline-offset:3px}.online-fleet-panel li,.online-timeline li{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--water) 5%, var(--surface));border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .65rem;display:flex}.online-fleet-panel span,.online-timeline span,.online-timeline small{color:var(--muted-text)}.online-timeline em{color:var(--text);font-style:normal;font-weight:900}@media (width<=820px){.battle-boards{grid-template-columns:1fr}.local-battle-screen{width:min(100% - 1rem,1240px)}.battle-status{flex-direction:column;align-items:stretch}.opponent-fleet-status{width:100%;margin-left:0}.opponent-fleet-status ul{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));display:grid}.online-battle-panels{grid-template-columns:1fr}.online-timeline ol{max-height:clamp(190px,32vh,340px)}.online-timeline li{flex-direction:column;align-items:flex-start}}@media (height<=450px) and (orientation:landscape){.online-timeline ol{max-height:180px}.battle-boards{grid-template-columns:1fr 1fr}.local-battle-screen{padding:.5rem 0}.battle-status{grid-template-columns:minmax(180px,.7fr) minmax(420px,1.3fr);margin-bottom:.5rem;padding:.5rem 1rem;display:grid}.battle-status h1{font-size:1.5rem}.opponent-fleet-status{width:auto;margin-left:0}.opponent-fleet-status h2{margin-bottom:.2rem}.opponent-fleet-status ul{flex-wrap:nowrap;display:flex}.opponent-fleet-item{min-width:72px;padding:.2rem}.battle-boards .board-panel{padding:.25rem}}@media (hover:hover) and (pointer:fine){.ship-choice:hover{border-color:color-mix(in srgb, var(--selected) 55%, var(--border));background:color-mix(in srgb, var(--selected) 6%, transparent)}}.secondary-action{border:1px solid var(--selected);min-height:48px;color:var(--text);cursor:pointer;background:0 0;border-radius:12px;padding:.75rem 1rem;font-weight:800}.secondary-action:disabled{opacity:.55;cursor:not-allowed}.online-screen{width:min(100% - 1rem,760px);min-height:calc(100dvh - 76px);padding:clamp(1rem, 4vw, 3rem) 0 max(5rem, env(safe-area-inset-bottom));margin:0 auto}.online-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;gap:1rem;padding:clamp(1rem,4vw,2rem);display:grid}.online-card h1{margin:0;font:clamp(2rem,7vw,3.6rem) Georgia,Times New Roman,serif}.online-card>p{color:var(--muted-text);margin:0}.online-choice,.online-form{gap:.8rem;display:grid}.online-form label{gap:.4rem;font-weight:800;display:grid}.online-form input{border:1px solid var(--border);background:var(--surface);width:100%;min-height:50px;color:var(--text);font:inherit;border-radius:12px;padding:.65rem .8rem}.online-form input[name=joinCode]{text-transform:uppercase;letter-spacing:.18em;font-weight:900}.online-error{border-left:5px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--danger);border-radius:8px;padding:.8rem 1rem}.online-error p{margin:0 0 .5rem}.online-error p:last-child{margin-bottom:0}.lobby-card{text-align:center}.lobby-status{min-height:1.5em;font-size:1.15rem;font-weight:800;color:var(--text)!important}.join-code-panel{border:1px dashed var(--selected);background:color-mix(in srgb, var(--selected) 7%, var(--surface));border-radius:18px;justify-items:center;gap:.65rem;padding:1rem;display:grid}.join-code-panel strong{letter-spacing:.16em;overflow-wrap:anywhere;max-width:100%;font:900 clamp(1.65rem,10vw,3.1rem)/1 monospace}.join-code-panel button{min-height:44px}.lobby-players{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.lobby-players article{border:1px solid var(--border);border-radius:16px;gap:.3rem;min-width:0;padding:1rem;display:grid}.lobby-players span{color:var(--muted-text);font-size:.82rem}.lobby-players strong{overflow-wrap:anywhere}.next-phase-note{background:color-mix(in srgb, var(--success) 10%, var(--surface));border-radius:12px;padding:.8rem;color:var(--text)!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=480px){.online-screen{width:min(100% - 1rem,760px);padding-top:.75rem}.online-card{border-radius:18px}.lobby-players{grid-template-columns:1fr}.join-code-panel strong{letter-spacing:.1em}}
