*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #061826;--card: #0a2436;--board: #0a2436;--border: #123347;--teal: #2dd4d4;--blue: #5b9bff;--amber: #ffd23f;--coral: #ff6f91;--mint: #6fffb0;--text: #d4f4f4;--muted: #5b8a9a;--danger: #ff5d4e}html{height:100%}body{display:flex;flex-direction:column;min-height:100vh;background:var(--bg);color:var(--text);font-family:Sora,sans-serif;overflow-x:hidden}.screen{display:none;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;padding:28px 20px;text-align:center;gap:16px}.screen.active{display:flex}.back{position:fixed;top:16px;left:16px;background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:8px 14px;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none;z-index:10}.title-main{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:clamp(2.2rem,10vw,3.2rem);color:var(--text);letter-spacing:.5px;line-height:1}.title-main .hl{color:var(--teal)}.title-sub{font-size:.9rem;color:var(--muted);max-width:320px;line-height:1.5}.btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 28px;border-radius:12px;border:none;font-family:Sora,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s;width:100%;max-width:320px;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.95)}.btn-go{background:var(--teal);color:#03161c;box-shadow:0 4px 20px #2dd4d440}.btn-ghost{background:transparent;color:var(--muted);border:1.5px solid var(--border)}.input-field{width:100%;max-width:320px;padding:15px 18px;border-radius:12px;border:1.5px solid var(--border);background:var(--card);color:var(--text);font-family:Sora,sans-serif;font-weight:600;font-size:1.4rem;text-align:center;outline:none;letter-spacing:4px;-webkit-appearance:none}.input-field:focus{border-color:var(--teal)}.code-big{font-family:Sora,sans-serif;font-weight:700;font-size:3rem;color:var(--teal);letter-spacing:6px}.label{font-size:.65rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.hud-row{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:360px;gap:12px}.hud-block{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.hud-block.them{align-items:flex-end}.hud-label{font-size:.6rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.hud-score{font-family:Sora,sans-serif;font-weight:700;font-size:1.1rem;color:var(--text)}.opp-meter{width:70px;height:8px;background:#ffffff14;border-radius:99px;overflow:hidden}.opp-meter-fill{width:0%;height:100%;background:var(--teal);transition:width .4s,background .4s}.opp-meter-fill.danger{background:var(--danger)}.board-wrap{width:100%;max-width:320px;position:relative}.board{width:100%;aspect-ratio:7 / 9;background:var(--board);border-radius:16px;border:2px solid var(--border);display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(9,1fr);gap:3px;padding:6px;position:relative;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}.board-col{position:relative;cursor:pointer}.grid-cell{position:absolute;border-radius:4px;border:1px solid rgba(255,255,255,.05);background:#ffffff05;pointer-events:none;z-index:0}.tile{position:absolute;border-radius:6px;transition:top .18s ease-in;z-index:1}.tile.clearing{animation:tile-clear-sequence 1s cubic-bezier(.25,.8,.25,1) forwards;z-index:5;box-shadow:0 0 16px #fffc,inset 0 0 8px #fff9;border:2px solid rgba(255,255,255,.9)}@keyframes tile-clear-sequence{0%{transform:scale(1) rotate(0);filter:brightness(1)}20%{transform:scale(1.15) rotate(-4deg);filter:brightness(1.6) contrast(1.2)}40%{transform:scale(.95) rotate(4deg);filter:brightness(1.2)}60%{transform:scale(1.12) rotate(-2deg);filter:brightness(1.6) contrast(1.2)}75%{transform:scale(1.05) rotate(0);filter:brightness(1.8);opacity:1}to{transform:scale(0) rotate(15deg);filter:brightness(2.5);opacity:0}}.t-c0{background:var(--teal)}.t-c1{background:var(--blue)}.t-c2{background:var(--amber)}.t-c3{background:var(--coral)}.t-c4{background:var(--mint)}.survivor-countdown{position:fixed;bottom:70px;left:50%;transform:translate(-50%);background:var(--card);border:1.5px solid var(--teal);border-radius:14px;padding:10px 20px;font-size:.88rem;font-weight:700;color:var(--teal);text-align:center;z-index:30;pointer-events:none;display:none}.danger-row-marker{position:absolute;left:6px;right:6px;height:2px;background:repeating-linear-gradient(90deg,var(--danger) 0 6px,transparent 6px 12px);opacity:.55;z-index:2;pointer-events:none}.queue-row{display:flex;align-items:center;gap:12px;margin-top:2px}.queue-label{font-size:.62rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.queue-cur{width:38px;height:38px;border-radius:10px;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--teal)}.queue-next{width:26px;height:26px;border-radius:8px;opacity:.85}.tide-bar-wrap{width:100%;max-width:320px}.tide-bar{width:100%;height:5px;background:#ffffff14;border-radius:99px;overflow:hidden}.tide-bar-fill{width:0%;height:100%;background:var(--danger);transition:width .1s linear}.tide-bar-label{font-size:.6rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;text-align:left}.reveal-row{display:flex;gap:12px;width:100%;max-width:320px}.reveal-card{flex:1;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:16px 10px}.reveal-card.winner{border-color:var(--teal)}.reveal-card-name{font-size:.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.reveal-card-score{font-family:Sora,sans-serif;font-weight:700;font-size:1.3rem;color:var(--text)}.reveal-card.winner .reveal-card-score{color:var(--teal)}.reveal-card-sub{font-size:.68rem;color:var(--muted);margin-top:4px}.reveal-verdict{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:1.4rem;color:var(--text);margin-top:4px}.reveal-verdict .hl{color:var(--teal)}.reveal-verdict .hl-lose{color:var(--danger)}.winner-big{font-family:"Baloo 2",sans-serif;font-weight:700;font-size:2rem;color:var(--teal);line-height:1.2}.score-row{display:flex;gap:12px;width:100%;max-width:320px;margin:4px 0}.score-card{flex:1;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:14px 8px}.score-card-name{font-size:.62rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.score-card-num{font-family:Sora,sans-serif;font-weight:700;font-size:1.5rem;color:var(--text)}.disconnect-banner{display:none;position:fixed;top:0;left:0;right:0;z-index:50;background:var(--danger);color:#fff;font-size:.82rem;font-weight:700;padding:10px 16px;align-items:center;justify-content:center;gap:10px;text-align:center}.disconnect-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top:2px solid #fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.wait-msg{font-size:.82rem;color:var(--muted);min-height:18px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--danger);color:#fff;font-size:.82rem;font-weight:700;padding:10px 20px;border-radius:99px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}.toast.show{opacity:1}.toast.success{background:var(--mint);color:#03161c}.settings-wrap select{width:100%;padding:10px 32px 10px 12px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);font-family:Sora,sans-serif;font-size:.85rem;font-weight:600;outline:none;cursor:pointer;transition:border-color .15s;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg fill='%232dd4d4' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");background-repeat:no-repeat;background-position:right 8px center;background-size:20px}.settings-wrap select:focus{border-color:var(--teal)}@media (max-width: 768px){.back{top:12px!important;left:12px!important;padding:6px 12px!important;font-size:.8rem!important}.screen{padding-top:75px!important}}[data-joining=true] .screen{display:none!important}[data-joining=true] #screen-loading{display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:100vh}.joining-spinner{border:3.5px solid rgba(45,212,212,.15);border-top:3.5px solid var(--teal, #2dd4d4);border-radius:50%;width:44px;height:44px;animation:joining-spin .8s linear infinite;margin-bottom:20px}@keyframes joining-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
