:root{color:#f8fafc;font-synthesis:none;--panel:#111827;--panel2:#0f172a;--border:#273244;--muted:#94a3b8;--accent:#f8fafc;background:#080b12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top,#141b2b 0,#080b12 55%);min-width:320px}button,input{font:inherit}button{cursor:pointer}.primary,.secondary{border:1px solid var(--border);border-radius:12px;min-height:44px;padding:0 16px;font-weight:800}.primary{color:#0f172a;background:#f8fafc}.secondary{color:#f8fafc;background:#162033}.secondary.active{outline:2px solid #22c55e}.error{color:#fca5a5;margin:10px 0 0}.muted{color:var(--muted)}.landing-shell{text-align:center;width:min(92vw,560px);margin:0 auto;padding:64px 0 44px}.brand-lockup{letter-spacing:.18em;align-items:center;gap:10px;font-size:14px;font-weight:900;display:inline-flex}.brand-mark{font-size:28px}.hero-title{letter-spacing:-.05em;margin:34px 0 16px;font-size:clamp(38px,7vw,70px);line-height:.95}.hero-copy{color:var(--muted);font-size:18px;line-height:1.55}.landing-card{border:1px solid var(--border);text-align:left;background:#111827db;border-radius:20px;margin-top:30px;padding:20px}.landing-card label{color:#cbd5e1;gap:8px;font-size:14px;font-weight:700;display:grid}.landing-card input{border:1px solid var(--border);color:#fff;background:#080b12;border-radius:12px;width:100%;min-height:48px;padding:0 14px;font-size:16px}.landing-card>.primary{width:100%;margin-top:14px}.divider{color:#64748b;text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.join-row{grid-template-columns:1fr auto;gap:10px;display:grid}.apogee-link{color:#94a3b8;margin-top:22px;font-size:13px;text-decoration:none;display:inline-block}.modal-backdrop{z-index:50;background:#020617e0;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#0f172a;border:1px solid #334155;border-radius:22px;width:min(620px,100%);padding:26px;box-shadow:0 30px 80px #00000073}.modal-card h1{margin:8px 0 16px;font-size:clamp(28px,6vw,44px)}.eyebrow{color:#94a3b8;letter-spacing:.16em;font-size:12px;font-weight:900}.tutorial-grid{gap:12px;margin:20px 0 24px;display:grid}.tutorial-grid>div{background:#111827;border-radius:14px;grid-template-columns:36px 1fr;align-items:center;gap:12px;padding:12px;display:grid}.tutorial-grid b{color:#0f172a;background:#fff;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.power-row{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.power-pill{background:#1d4ed8;border-radius:999px;padding:9px 13px;font-weight:800}.power-pill.rare{background:#6d28d9}.install-tip{color:#cbd5e1;background:#111827;border-radius:12px;margin-top:14px;padding:12px;font-size:14px}.loading{color:#cbd5e1;place-items:center;min-height:60vh;display:grid}.game-shell{max-width:1500px;margin:0 auto;padding:10px}.orientation-hint{text-align:center;color:#cbd5e1;border:1px solid var(--border);background:#111827;border-radius:10px;margin-bottom:8px;padding:8px;font-size:12px;display:none}.game-header{border:1px solid var(--border);background:#0f172aeb;border-radius:16px;grid-template-columns:160px 1fr 120px;align-items:center;gap:10px;min-height:64px;padding:10px 16px;display:grid}.room-label{color:#64748b;letter-spacing:.14em;font-size:10px;font-weight:900;display:block}.room-code{letter-spacing:.16em;font-size:24px}.phase-title{text-align:center;font-weight:800}.timer{text-align:right;font-size:24px;font-weight:900}.game-layout{grid-template-columns:minmax(160px,220px) minmax(0,1fr) minmax(190px,250px);gap:10px;margin-top:10px;display:grid}.power-panel,.players-panel{border:1px solid var(--border);background:#0f172ae6;border-radius:16px;min-width:0;padding:14px}.panel-title{color:#64748b;letter-spacing:.14em;margin-bottom:12px;font-size:11px;font-weight:900}.empty-power{color:#64748b;text-align:center;border:1px dashed #334155;border-radius:12px;padding:18px 10px}.power-button{color:#fff;border:0;border-radius:14px;width:100%;min-height:90px;font-weight:900}.power-button span{font-size:28px;display:block}.power-button.speed{background:#1d4ed8}.power-button.phase{background:#6d28d9}.panel-note{color:#64748b;margin-top:10px;font-size:12px;line-height:1.45}.board-wrap{border:1px solid var(--border);background:#0b1020;border-radius:16px;min-width:0;min-height:560px;position:relative;overflow:hidden}.game-canvas{touch-action:manipulation;width:100%;height:560px;display:block}.player-row{border-bottom:1px solid #1e293b;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:9px 0;font-size:14px;display:grid}.player-row.dead{opacity:.38;text-decoration:line-through}.player-dot{color:#fff}.player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wins{white-space:nowrap}.lobby-actions{gap:8px;margin-top:14px;display:grid}.link-button{color:#94a3b8;background:0 0;border:0;width:100%;margin-top:12px;padding:10px}.center-overlay,.selector-overlay{text-align:center;pointer-events:none;background:#02061794;align-content:center;place-items:center;display:grid;position:absolute;inset:0}.center-overlay strong{font-size:clamp(54px,10vw,120px);line-height:1}.center-overlay span{letter-spacing:.12em;margin-top:10px;font-weight:900}.center-overlay.compact strong{font-size:30px}.selector-overlay{pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#020617f0;padding:20px}.selector-title{letter-spacing:-.03em;font-size:clamp(24px,5vw,54px);font-weight:1000}.selector-sub{color:#cbd5e1;margin:8px 0 18px;font-weight:700}.color-buttons{grid-template-columns:repeat(3,minmax(90px,140px));gap:10px;display:grid}.color-button{color:#fff;text-shadow:0 1px 2px #00000073;border:2px solid #ffffff40;border-radius:14px;min-height:62px;font-weight:900}.color-button.red{background:#ef4444}.color-button.orange{background:#f97316}.color-button.yellow{color:#111827;text-shadow:none;background:#eab308}.color-button.green{background:#22c55e}.color-button.blue{background:#3b82f6}.color-button.violet{background:#8b5cf6}.drop-banner{letter-spacing:.08em;background:#020617e6;border:1px solid #475569;border-radius:999px;padding:10px 16px;font-weight:1000;position:absolute;top:14px;left:50%;transform:translate(-50%)}.drop-banner span{color:#fca5a5;margin-left:8px}.spectator-badge{letter-spacing:.12em;background:#020617d9;border:1px solid #475569;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:900;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.error-toast{z-index:40;background:#7f1d1d;border:1px solid #ef4444;border-radius:12px;padding:10px 14px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@media (width<=760px) and (orientation:portrait){.orientation-hint{display:block}.game-header{grid-template-columns:90px 1fr 72px;padding:8px 10px}.room-code,.timer{font-size:18px}.phase-title{font-size:13px}.game-layout{grid-template-columns:1fr}.board-wrap{order:1;min-height:390px}.game-canvas{height:390px}.power-panel{order:2;grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.power-panel .panel-title,.power-panel .panel-note{display:none}.power-button{min-height:58px}.players-panel{order:3}.color-buttons{grid-template-columns:repeat(2,minmax(110px,1fr))}}@media (height<=540px) and (orientation:landscape){.game-shell{padding:6px}.game-header{min-height:48px;padding:6px 12px}.room-code,.timer{font-size:18px}.game-layout{grid-template-columns:150px minmax(0,1fr) 180px;gap:6px;margin-top:6px}.power-panel,.players-panel{padding:10px}.board-wrap{min-height:calc(100vh - 66px)}.game-canvas{height:calc(100vh - 66px)}}.brand-mark{border-radius:8px;width:30px;height:30px;display:block}button:disabled{cursor:not-allowed;opacity:.5}.connection-banner{color:#fde68a;text-align:center;background:#78350f4d;border:1px solid #92400e;border-radius:10px;margin-top:8px;padding:8px 12px;font-size:13px;font-weight:800}.player-row.offline{opacity:.55}.error-screen{text-align:center;padding:32px}.error-screen h1{margin-bottom:8px}.error-screen p{color:#cbd5e1;margin-bottom:22px}.link-as-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.success-toast{background:#14532d;border-color:#22c55e}
