:root{--font: "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;--ink: #f4efe3;--ink-2: rgba(244, 239, 227, .66);--ink-3: rgba(244, 239, 227, .4);--panel: rgba(21, 26, 18, .84);--panel-2: rgba(35, 42, 30, .9);--line: rgba(255, 246, 222, .14);--line-strong: rgba(255, 246, 222, .3);--accent: #e9c23c;--accent-ink: #2a2107;--water: #7fc4ec;--danger: #d9553f;--ok: #7ab85a;--team-red: #c9463a;--team-blue: #3c6fd1;--team-green: #4f9c3f;--team-yellow: #e4b93a;--team-stray: #b85c25;--radius: 14px;--radius-sm: 9px;--shadow: 0 10px 30px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .06)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);background:#2f3a26;color:var(--ink);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}#game-canvas{display:block;position:fixed;top:0;right:0;bottom:0;left:0}button,input{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#ffffff0f;color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.01em;transition:transform .12s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover{background:#ffffff1f;border-color:#fff6de80;transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:linear-gradient(180deg,#f2cf58,var(--accent));color:var(--accent-ink);border-color:#00000040;box-shadow:0 6px 16px #e9c23c47,inset 0 1px #ffffff73;font-size:17px;padding:14px 24px}.btn-primary:hover{background:linear-gradient(180deg,#f7d86a,#eec84a);border-color:#0000004d}.btn-icon{padding:10px 14px;font-size:14px}.input{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#0000004d;color:var(--ink);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--ink-3)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #e9c23c33}.label{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}.swatch{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.55);box-shadow:0 0 0 1px #0006;flex:none}.team-red{--team: var(--team-red)}.team-blue{--team: var(--team-blue)}.team-green{--team: var(--team-green)}.team-yellow{--team: var(--team-yellow)}.team-stray{--team: var(--team-stray)}.swatch{background:var(--team, #8b8b8b)}.team-text{color:var(--team, var(--ink))}#loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#2f3a26;z-index:3000;transition:opacity .4s}#loading.hidden{opacity:0;pointer-events:none}#loading .paw{font-size:40px;animation:bob 1.2s ease-in-out infinite}#loading .text{color:var(--ink-2);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:12px}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(ellipse at center,#0a100840,#0a1008b3);animation:fade-in .35s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.menu-card{width:100%;max-width:560px;max-height:100%;overflow-y:auto;padding:28px 30px 26px;display:flex;flex-direction:column;gap:22px;animation:rise .4s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.menu-brand{text-align:center}.menu-title{font-size:56px;font-weight:900;letter-spacing:-.02em;line-height:1;color:var(--accent);text-shadow:0 3px 0 rgba(0,0,0,.35),0 10px 30px rgba(233,194,60,.25)}.menu-title small{font-size:.55em;color:var(--ink);font-weight:800;letter-spacing:0}.menu-tagline{margin-top:8px;color:var(--ink-2);font-size:15px;font-weight:600}.menu-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column}.breed-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.breed-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffff0a;transition:background .15s,border-color .15s,transform .12s}.breed-card:hover{background:#ffffff17;transform:translateY(-2px)}.breed-card.selected{background:#e9c23c24;border-color:var(--accent);box-shadow:0 0 0 3px #e9c23c2e}.breed-card canvas{width:64px;height:64px;display:block}.breed-card .name{font-size:12px;font-weight:800}.breed-desc{min-height:20px;text-align:center;font-size:13px;color:var(--ink-2);margin-top:10px}.menu-actions{display:flex;flex-direction:column;gap:10px}.menu-private{display:flex;gap:10px}.menu-private .input{flex:1;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.menu-divider{display:flex;align-items:center;gap:12px;color:var(--ink-3);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.menu-divider:before,.menu-divider:after{content:"";flex:1;height:1px;background:var(--line)}.menu-help{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:12.5px;color:var(--ink-2);line-height:1.45}.menu-help b{color:var(--ink);font-weight:800}body:not(.in-game) .hud-timer,body:not(.in-game) .hud-scores,body:not(.in-game) .killfeed{display:none}.hud-timer{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:100;padding:10px 18px 12px;min-width:190px;text-align:center;pointer-events:none}.hud-timer .state{font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.hud-timer .state.countdown{color:var(--accent);animation:blink 1s ease-in-out infinite}.hud-timer .state.playing{color:var(--ok)}.hud-timer .state.ended{color:var(--danger)}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}.hud-timer .time{font-size:34px;font-weight:900;line-height:1.05;letter-spacing:.02em;font-variant-numeric:tabular-nums;margin:2px 0}.hud-timer .time.warning{color:var(--accent)}.hud-timer .time.critical{color:var(--danger);animation:pulse .6s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.hud-timer .round{font-size:11.5px;color:var(--ink-2);font-weight:700}.hud-timer .bar{height:4px;margin-top:8px;border-radius:2px;background:#ffffff1f;overflow:hidden}.hud-timer .bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ok),var(--accent) 70%,var(--danger));transition:width .5s linear}.hud-scores{position:fixed;top:16px;right:16px;z-index:100;padding:10px 12px;min-width:110px;pointer-events:none;transition:min-width .25s ease}.hud-scores.expanded{min-width:260px;padding:14px 16px}.hud-scores .head{display:none;justify-content:space-between;align-items:baseline;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line)}.hud-scores.expanded .head{display:flex}.hud-scores .head b{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hud-scores .head span{font-size:10px;color:var(--ink-3);font-weight:700}.hud-scores .rows{display:flex;flex-direction:column;gap:6px}.hud-scores .row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;transition:background .3s;border-radius:6px}.hud-scores.expanded .row{padding:6px 8px;background:#ffffff0a}.hud-scores .row.mine{background:#e9c23c1f}.hud-scores .name{font-size:13px;font-weight:800;display:none}.hud-scores.expanded .name{display:block}.hud-scores .players{font-size:11px;color:var(--ink-3);font-weight:700;display:none}.hud-scores.expanded .players{display:block}.hud-scores .score{font-size:16px;font-weight:900;font-variant-numeric:tabular-nums;text-align:right}.hud-scores .row.highlight{background:#e9c23c4d}.hud-scores .empty{font-size:12px;color:var(--ink-3);font-weight:700}.hud-scores .hint{font-size:10px;color:var(--ink-3);font-weight:700;margin-top:8px;text-align:right}.hud-scores.expanded .hint{display:none}.hud-actions{position:fixed;bottom:16px;right:16px;display:flex;gap:8px;z-index:100}.hud-actions .btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--panel)}.hud-hint{position:fixed;top:16px;left:16px;z-index:100;padding:12px 14px;max-width:260px;font-size:12.5px;line-height:1.5;color:var(--ink-2);pointer-events:none;display:none}.hud-hint.visible{display:block;animation:fade-in .3s}.hud-hint b{color:var(--ink);font-weight:800}.hud-hint .row{display:flex;gap:8px;align-items:baseline}.hud-hint kbd{display:inline-block;min-width:22px;padding:1px 6px;border-radius:5px;border:1px solid var(--line-strong);background:#ffffff14;font-family:inherit;font-size:11px;font-weight:800;color:var(--ink);text-align:center}.hud-hint .sep{height:1px;background:var(--line);margin:8px 0}.killfeed{position:fixed;bottom:16px;left:16px;display:flex;flex-direction:column-reverse;gap:6px;z-index:90;pointer-events:none}.killfeed .entry{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;font-weight:700;animation:slide-in .25s cubic-bezier(.2,.8,.2,1);transition:opacity .4s}.killfeed .entry.fading{opacity:0}.killfeed .icon{font-size:14px;opacity:.85}@keyframes slide-in{0%{transform:translate(-24px);opacity:0}to{transform:none;opacity:1}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;display:flex;align-items:center;justify-content:center;padding:20px;background:#080c0699;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .25s}.modal.hidden{display:none}.modal-card{width:100%;max-width:440px;padding:24px 26px;display:flex;flex-direction:column;gap:18px;animation:rise .3s cubic-bezier(.2,.8,.2,1)}.modal-title{font-size:20px;font-weight:900;letter-spacing:-.01em}.modal-text{margin:0;color:var(--ink-2);font-size:15px;line-height:1.45}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-actions .btn{flex:1}.btn-danger{background:linear-gradient(180deg,#e8694f,var(--danger));color:#fff;border-color:#00000040;box-shadow:0 6px 16px #d9553f47,inset 0 1px #ffffff40}.btn-danger:hover{background:linear-gradient(180deg,#f07a60,#e0604a);border-color:#0000004d}.segmented{display:flex;flex-direction:column;gap:8px}.segmented .opt{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:#ffffff0a;text-align:left;transition:background .15s,border-color .15s}.segmented .opt:hover{background:#ffffff17}.segmented .opt.active{border-color:var(--accent);background:#e9c23c24}.segmented .opt .ico{font-size:20px;width:28px;text-align:center}.segmented .opt .t{font-weight:800;font-size:14px}.segmented .opt .d{font-size:12px;color:var(--ink-2);margin-top:2px}.end-card{max-width:520px;text-align:center}.end-kicker{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.end-title{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1.1}.end-title .team-text{text-shadow:0 2px 0 rgba(0,0,0,.3)}.end-sub{color:var(--ink-2);font-size:14px;font-weight:600}.end-score{display:inline-flex;flex-direction:column;align-items:center;padding:12px 28px;border-radius:var(--radius-sm);background:var(--team, var(--panel-2));color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.35);margin:4px auto 0}.end-score b{font-size:38px;font-weight:900;line-height:1}.end-score span{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;opacity:.85;margin-top:4px}.standings{display:flex;flex-direction:column;gap:6px}.standing{display:grid;grid-template-columns:28px auto 1fr auto auto;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--radius-sm);background:#ffffff0d;text-align:left}.standing .rank{font-weight:900;color:var(--ink-2);text-align:center}.standing .name{font-weight:800}.standing .players{font-size:12px;color:var(--ink-3);font-weight:700}.standing .pts{font-weight:900;font-variant-numeric:tabular-nums}.end-next{font-size:13px;color:var(--ink-2);font-weight:700}.end-next b{color:var(--accent);font-size:18px;font-weight:900}@media (max-width: 700px),(max-height: 520px){.hud-timer{top:8px;padding:6px 12px 8px;min-width:130px}.hud-timer .time{font-size:24px}.hud-timer .round{display:none}.hud-scores{top:8px;right:8px;padding:6px 8px;min-width:70px}.hud-scores .score{font-size:13px}.hud-scores .hint{display:none}.hud-actions{bottom:8px;right:8px}.hud-actions .btn{padding:8px 10px;font-size:12px}.hud-actions .btn .txt{display:none}.killfeed{bottom:8px;left:8px}.killfeed .entry{font-size:11px;padding:5px 9px}.hud-hint{display:none!important}.menu{padding:10px}.menu-card{padding:20px 16px;gap:16px}.menu-title{font-size:40px}.menu-fields{grid-template-columns:1fr}.breed-grid{grid-template-columns:repeat(5,1fr);gap:5px}.breed-card canvas{width:46px;height:46px}.breed-card .name{font-size:10px}.menu-help{display:none}}.screen-pairing{position:fixed;right:18px;bottom:18px;z-index:40;width:232px;padding:14px;text-align:center;display:flex;flex-direction:column;gap:10px}.screen-pairing-title{font-weight:900;font-size:17px}.screen-pairing-qr{background:#fff;border-radius:var(--radius-sm);padding:8px;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.screen-pairing-qr svg{width:100%;height:100%;display:block}.screen-pairing-url{font-size:11px;color:var(--ink-2);word-break:break-all;font-variant-numeric:tabular-nums}.screen-pairing-hint{font-size:12px;color:var(--ink-3);font-weight:600}body.screen-mode #info{display:none}
