:root{--sky:#a9dcff;--sky-2:#dff3ff;--field:#6fbf4a;--field-deep:#4d9a36;--field-2:#5fae44;--green-light:#34b24a;--cream:#fff6e3;--cream-2:#f7e8c8;--wood:#8a5a2b;--wood-dark:#5a3818;--wood-light:#c99d5f;--ink:#3b2a14;--muted:#8a7558;--accent:#ff9f1c;--accent-dark:#d97d00;--green:#2a9d3f;--green-dark:#1f7a30;--gold:#f6c646;--danger:#e63946;--shadow:0 12px 30px #281e0a40;--radius:18px;--display:"Fredoka", "Segoe UI", system-ui, sans-serif;--body:"Nunito", "Segoe UI", system-ui, sans-serif;--player-color:#e63946;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--body);color:var(--ink)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:radial-gradient(circle at 82% 12%, #ffec96f2 0 48px, #ffec9659 52px 70px, transparent 72px), radial-gradient(ellipse 60% 18% at 15% 44%, var(--field-deep) 0 60%, transparent 61%), radial-gradient(ellipse 70% 20% at 80% 46%, var(--field-2) 0 60%, transparent 61%), linear-gradient(180deg, var(--sky) 0%, var(--sky-2) 40%, var(--field) 40.3%, var(--field-2) 100%);background-attachment:fixed}#app{min-height:100vh;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:16px;display:flex}.hidden{display:none!important}h2{font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;color:var(--wood);align-items:center;gap:8px;margin:0 0 10px;font-size:15px;font-weight:600;display:flex}h2:after{content:"";background:linear-gradient(90deg, var(--wood-light), transparent);opacity:.6;border-radius:2px;flex:1;height:2px}.option-btn,.start-btn{font:inherit;cursor:pointer;color:var(--ink);box-shadow:inset 0 0 0 2px var(--wood-light), 0 3px 0 var(--wood-light);background:#fff;border:0;border-radius:12px;padding:7px 14px;font-weight:800;transition:transform 80ms,box-shadow 80ms,background .15s}.option-btn:hover{box-shadow:inset 0 0 0 2px var(--wood-light), 0 5px 0 var(--wood-light), 0 8px 14px #0000001f;transform:translateY(-2px)rotate(-1.5deg)}.option-btn.active:hover{box-shadow:inset 0 0 0 2px var(--accent-dark), 0 5px 0 var(--accent-dark), 0 8px 14px #0000001f}.start-btn:hover{animation:.5s ease-in-out wobble;transform:translateY(-2px)scale(1.03)}@keyframes wobble{0%{transform:translateY(-2px)scale(1.03)rotate(0)}25%{transform:translateY(-2px)scale(1.05)rotate(-2deg)}50%{transform:translateY(-2px)scale(1.05)rotate(2deg)}75%{transform:translateY(-2px)scale(1.04)rotate(-1deg)}to{transform:translateY(-2px)scale(1.03)rotate(0)}}@keyframes breathe{0%{transform:scale(1)}to{transform:scale(1.025)}}@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.12)rotate(-1.5deg)}70%{transform:scale(.97)rotate(1deg)}to{transform:scale(1)}}@keyframes pop-in{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)scale(1.08)}40%{transform:rotate(10deg)scale(1.08)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}}@keyframes float-y{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.option-btn:active,.start-btn:active{box-shadow:inset 0 0 0 2px var(--wood-light), 0 1px 0 var(--wood-light);transform:translateY(2px)}.option-btn.active{background:var(--accent);color:#fff;box-shadow:inset 0 0 0 2px var(--accent-dark), 0 3px 0 var(--accent-dark);text-shadow:0 1px #0003}.start-btn{font-family:var(--display);letter-spacing:.02em;background:linear-gradient(180deg, var(--green-light), var(--green));color:#fff;box-shadow:inset 0 0 0 2px var(--green-dark), 0 5px 0 var(--green-dark), 0 10px 20px #0003;text-shadow:0 1px #00000040;border-radius:16px;align-self:flex-start;padding:12px 28px;font-size:22px;font-weight:600;animation:1.6s ease-in-out infinite alternate breathe}.start-btn:active{box-shadow:inset 0 0 0 2px var(--green-dark), 0 2px 0 var(--green-dark)}.start-btn:disabled{opacity:.5;cursor:default;transform:none}.option-btn:focus-visible,.start-btn:focus-visible,.text-input:focus-visible{outline:3px solid var(--sky);outline-offset:2px}.text-input{font:inherit;color:var(--ink);width:160px;box-shadow:inset 0 0 0 2px var(--wood-light), inset 0 3px 0 #0000000f;background:#fff;border:0;border-radius:12px;padding:7px 12px;font-weight:700}.text-input::placeholder{color:var(--muted);font-weight:600}.text-input.seconds{text-align:center;font-variant-numeric:tabular-nums;width:72px;padding-inline:6px}.text-input.seconds.active{background:var(--accent);color:#fff;box-shadow:inset 0 0 0 2px var(--accent-dark)}.text-input.code{text-transform:uppercase;letter-spacing:.25em;width:96px;font-family:var(--display);font-weight:600}.screen{background:var(--cream);color:var(--ink);border-radius:var(--radius);width:min(100%,1180px);box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 7px var(--wood-light), var(--shadow);padding:26px 30px 28px;animation:.35s cubic-bezier(.2,.9,.3,1.2) both pop-in;position:relative}.title{font-family:var(--display);letter-spacing:.01em;color:var(--green-dark);text-shadow:0 2px #fff,0 4px #00000014;text-wrap:balance;align-items:center;gap:14px;margin:0;font-size:48px;font-weight:700;line-height:1.05;display:flex}.title:before{content:"🚜";background:radial-gradient(circle at 35% 30%, #fff, var(--cream-2));width:64px;height:64px;box-shadow:inset 0 0 0 3px var(--wood-light), 0 4px 0 var(--wood);text-shadow:none;border-radius:50%;place-items:center;font-size:40px;transition:transform .2s;display:inline-grid}.title:hover:before{animation:.7s ease-in-out wiggle}.subtitle{color:var(--muted);margin:6px 0 22px;font-weight:700}.menu-columns{grid-template-columns:1.1fr 1.4fr .9fr;align-items:start;gap:26px;display:grid}@media (max-width:1000px){.menu-columns{grid-template-columns:1fr 1fr}.menu-columns>.board-sign{grid-column:1/-1}}@media (max-width:760px){.menu-columns{grid-template-columns:1fr}.title{font-size:36px}}.menu-col{flex-direction:column;gap:16px;min-width:0;display:flex}.option-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.option-label{width:60px;color:var(--wood);font-weight:800}.control-row{border-left:6px solid var(--player-color);background:#ffffff8c;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:6px 10px;transition:transform .15s,background .15s,box-shadow .15s;display:flex}.control-row:hover{background:#fff;transform:translate(4px);box-shadow:0 4px 10px #00000014}.control-row:hover kbd{box-shadow:inset 0 0 0 1px var(--wood-light), 0 0 0 var(--wood-light);transform:translateY(2px)}.control-name{color:var(--player-color);flex:none;width:84px;font-weight:900}.control-keys{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-weight:700;display:flex}kbd{font-family:var(--display);color:var(--ink);box-shadow:inset 0 0 0 1px var(--wood-light), 0 2px 0 var(--wood-light);white-space:nowrap;background:linear-gradient(#fff,#efe5cf);border-radius:6px;padding:2px 7px;font-size:12px;font-weight:600;transition:transform .1s,box-shadow .1s}.rules ul{flex-direction:column;gap:6px;margin:0;padding-left:0;font-weight:600;line-height:1.45;list-style:none;display:flex}.rules li{padding-left:22px;transition:transform .15s;position:relative}.rules li:hover{transform:translate(3px)}.rules li:before{content:"🌱";font-size:13px;transition:transform .2s;position:absolute;top:1px;left:0}.rules li:hover:before{transform:scale(1.3)rotate(-10deg)}table{border-collapse:separate;border-spacing:0 4px;width:100%}td,th{text-align:left;padding:4px 8px;font-size:14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:0;font-size:12px;font-weight:800}tbody tr{background:#ffffff8c;transition:transform .15s,background .15s}tbody tr:hover{background:#fff;transform:translate(4px)}tbody tr:hover td.emoji span{animation:.6s ease-in-out wiggle}tbody td:first-child{border-radius:10px 0 0 10px}tbody td:last-child{border-radius:0 10px 10px 0}td.emoji{width:40px;font-size:20px}td.emoji span{width:32px;height:32px;box-shadow:inset 0 0 0 2px var(--cream-2);background:#fff;border-radius:50%;place-items:center;transition:transform .2s;display:inline-grid}.muted{color:var(--muted);margin:0}.small{font-size:13px}.online{border-top:3px dashed var(--wood-light);padding-top:14px}.error{color:var(--danger);min-height:1.2em;margin:0;font-weight:800}.room-code{font-family:var(--display);letter-spacing:.3em;color:var(--green-dark);text-shadow:0 2px #fff,0 4px #0000001a;min-height:1.2em;padding:10px 0 12px .3em;font-size:60px;font-weight:700}.lobby-players{margin:8px 0 16px}.stage{--hud-height:68px;--gap:8px;--frame:12px;--board-width:min(100%, calc((100dvh - 16px - var(--hud-height) - var(--gap) - var(--frame)) * 896 / 616));align-items:center;gap:var(--gap);width:100%;height:calc(100vh - 16px);flex-direction:column;height:calc(100dvh - 16px);margin:-8px 0;display:flex}.board{width:var(--board-width);background:linear-gradient(#7ec850, #7ec850) padding-box, linear-gradient(180deg, var(--wood-light), var(--wood) 40%, var(--wood-dark)) border-box;height:auto;box-shadow:0 0 0 2px var(--wood-dark), var(--shadow);border:6px solid #0000;border-radius:14px;display:block}.hud{height:var(--hud-height);width:var(--board-width);justify-content:space-between;align-items:center;gap:12px;display:flex}.hud-players{flex-wrap:wrap;gap:8px;display:flex}.player-card{transform-origin:50%;transition:transform .15s}.player-card:hover{transform:translateY(-2px)rotate(-1deg)}.player-card.bump{animation:.4s cubic-bezier(.3,1.4,.5,1) bump}.player-card{background:var(--cream);color:var(--ink);min-width:150px;box-shadow:inset 0 0 0 2px #fff, inset 0 0 0 4px var(--player-color), 0 4px 0 #00000026;border-radius:14px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:6px 14px 6px 8px;display:grid}.player-avatar{background:var(--player-color);color:#fff;width:34px;height:34px;font-family:var(--display);border-radius:50%;grid-row:1/span 2;place-items:center;font-size:16px;font-weight:700;display:grid;box-shadow:inset 0 -3px #0003}.player-name{color:var(--player-color);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:11px;font-weight:900;line-height:1.1;overflow:hidden}.player-belege{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.player-buildings{color:var(--muted);grid-column:2;font-size:11px;font-weight:700}.hud-timer{font-family:var(--display);font-variant-numeric:tabular-nums;background:linear-gradient(180deg, var(--wood-light), var(--wood));color:#fff6e3;text-shadow:0 2px #00000059;box-shadow:inset 0 0 0 2px var(--wood-dark), inset 0 2px 0 #ffffff40, 0 4px 0 var(--wood-dark);border-radius:14px;padding:0 20px;font-size:38px;font-weight:700;line-height:1.45}.hud-timer.tick{animation:.25s ease-out tick}@keyframes tick{0%{transform:scale(1)}40%{transform:scale(1.06)translateY(-1px)}to{transform:scale(1)}}.hud-timer.urgent{background:linear-gradient(180deg, #ff6b6b, var(--danger));animation:.5s infinite alternate pulse;box-shadow:inset 0 0 0 2px #9b1c26,0 4px #9b1c26}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.06)}}.board-sign{background:repeating-linear-gradient(180deg, transparent 0 34px, #00000014 34px 36px), linear-gradient(180deg, var(--wood-light), var(--wood) 30%, var(--wood-dark));color:#fff3dc;box-shadow:inset 0 0 0 3px var(--wood-dark), inset 0 5px 0 #ffffff26, 0 8px 20px #0000004d;border-radius:14px;padding:16px 16px 14px;position:relative}.board-sign:before,.board-sign:after{content:"";background:radial-gradient(circle at 35% 35%,#ddd,#666);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;box-shadow:0 1px #00000080}.board-sign:before{left:10px}.board-sign:after{right:10px}.sign-head{text-align:center;margin-bottom:12px}.sign-title{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);text-shadow:0 2px #00000073;font-size:26px;font-weight:700}.sign-title:before{content:"🏆 "}.sign-sub{letter-spacing:.12em;text-transform:uppercase;color:#fff3dcbf;font-size:12px;font-weight:800}.sign-foot{text-align:center;color:#fff3dc99;margin:12px 0 0;font-size:11px;font-weight:700}.highscore-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.highscore-list li{background:#0000002e;border-radius:10px;align-items:center;gap:10px;padding:5px 10px;transition:transform .15s,background .15s;display:flex;position:relative}.highscore-list li:hover{background:#ffffff1f;transform:translate(4px)scale(1.02)}.highscore-list li:hover .hs-rank{animation:.6s ease-in-out wiggle}.sign-title:before{animation:1.4s ease-in-out infinite alternate float-y;display:inline-block}.board-sign{transition:transform .2s}.board-sign:hover{transform:rotate(-.6deg)}.highscore-list li.podium{background:linear-gradient(90deg,#ffffff24,#ffffff0a);border:1px solid #ffffff2e;padding:8px 12px}.highscore-list li.p1{background:linear-gradient(90deg,#f6c64659,#f6c64614);border-color:#f6c64699}.highscore-list li.p2{background:linear-gradient(90deg,#dcdce64d,#dcdce60f);border-color:#dcdce680}.highscore-list li.p3{background:linear-gradient(90deg,#cd7f3259,#cd7f3214);border-color:#cd7f3299}.highscore-list li.highlight{outline:2px solid var(--gold);outline-offset:1px;animation:1.2s ease-in-out infinite alternate glow}@keyframes glow{0%{box-shadow:0 0 #f6c64600}to{box-shadow:0 0 14px #f6c646cc}}.hs-rank{text-align:center;font-variant-numeric:tabular-nums;color:#fff3dccc;width:28px;font-weight:900}.podium .hs-rank{font-size:22px}.hs-main{flex-direction:column;min-width:0;display:flex}.hs-score{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.podium .hs-score{font-size:20px}.p1 .hs-score{color:var(--gold)}.hs-meta{color:#fff3dca6;font-size:11px;font-weight:700}.hs-new{letter-spacing:.1em;background:var(--gold);color:#3b2a14;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:900}.hs-empty{text-align:center;color:#fff3dcbf;padding:18px 8px;font-size:13px;font-weight:700}.hs-empty p{margin:6px 0 0}.hs-empty-icon{opacity:.5;filter:grayscale();font-size:40px}.end .highscore-list li{background:#0000000f}.end .hs-rank,.end .hs-meta,.end .hs-empty{color:var(--muted)}.end .hs-score{color:var(--ink)}.end .p1 .hs-score{color:#a66d00}.option-row.houses{align-items:center}.house-btn{cursor:pointer;width:50px;height:50px;box-shadow:inset 0 0 0 2px var(--wood-light), 0 3px 0 var(--wood-light);background:#fff;border:0;border-radius:12px;place-items:center;padding:1px;transition:transform 80ms,box-shadow 80ms,filter .15s;display:grid;position:relative}.house-btn canvas{pointer-events:none;border-radius:9px}.house-btn:hover{transform:translateY(-2px)rotate(-2deg)}.house-btn.active{box-shadow:inset 0 0 0 3px var(--accent), 0 3px 0 var(--accent-dark)}.house-btn.locked{cursor:not-allowed;filter:grayscale()brightness(.8)}.house-btn.locked:hover{transform:none}.house-lock{filter:none;background:var(--cream);border-radius:50%;padding:1px;font-size:14px;line-height:1;position:absolute;bottom:-4px;right:-4px}.house-name{margin-left:4px;font-weight:800}.lobby-house{text-align:center;width:26px;font-size:18px}.unlock-banner{border:2px solid var(--gold);background:linear-gradient(90deg,#f6c64659,#f6c6461a);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding:10px 14px;animation:.6s cubic-bezier(.3,1.4,.5,1) .4s both bump;display:flex}.unlock-title{font-family:var(--display);color:#8a6d00;font-weight:700}.unlock-chip{box-shadow:inset 0 0 0 2px var(--gold);background:#fff;border-radius:10px;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-weight:800;display:inline-flex}.unlock-chip canvas{border-radius:7px}.team-toggle{gap:4px;margin-left:auto;display:inline-flex}.team-btn{font:inherit;color:var(--ink);cursor:pointer;box-shadow:inset 0 0 0 2px var(--cream-2);background:#fff;border:0;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800;transition:transform 80ms,background .15s}.team-btn:hover{transform:translateY(-1px)}.team-btn.active{background:var(--team-color);color:#fff;text-shadow:0 1px #0003;box-shadow:inset 0 0 0 2px #00000026}.team-chip{background:var(--team-color);color:#fff;text-shadow:0 1px #0003;border-radius:999px;margin-left:auto;padding:2px 9px;font-size:12px;font-weight:800}.team-group{background:color-mix(in srgb, var(--team-color) 22%, transparent);box-shadow:inset 0 0 0 2px var(--team-color);border-radius:14px;flex-direction:column;gap:4px;padding:4px 6px 6px;display:flex}.team-head{font-family:var(--display);color:#fff;text-shadow:0 1px #00000059;justify-content:space-between;align-items:center;gap:10px;padding:0 6px;font-size:13px;font-weight:700;display:flex}.team-score{font-variant-numeric:tabular-nums;font-size:15px}.team-cards{flex-wrap:wrap;gap:6px;display:flex}.ranking.teams td.score{font-size:24px}.feature-toggle{cursor:pointer;box-shadow:inset 0 0 0 2px var(--wood-light), 0 3px 0 var(--wood-light);-webkit-user-select:none;user-select:none;background:#fff;border-radius:12px;align-items:center;gap:8px;padding:6px 12px 6px 8px;font-weight:800;transition:transform 80ms,background .15s;display:inline-flex}.feature-toggle:hover{transform:translateY(-2px)rotate(-1deg)}.feature-toggle input{opacity:0;width:0;height:0;position:absolute}.feature-box{background:var(--cream-2);width:18px;height:18px;box-shadow:inset 0 0 0 2px var(--wood-light);border-radius:6px;place-items:center;transition:background .15s;display:grid}.feature-box:after{content:"";border-bottom:3px solid #fff;border-left:3px solid #fff;width:10px;height:6px;transition:transform .15s cubic-bezier(.3,1.5,.5,1);transform:rotate(-45deg)translate(1px,-1px)scale(0)}.feature-toggle input:checked~.feature-box{background:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-dark)}.feature-toggle input:checked~.feature-box:after{transform:rotate(-45deg)translate(1px,-1px)scale(1)}.feature-toggle input:focus-visible~.feature-box{outline:3px solid var(--sky);outline-offset:2px}.plain-list{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-weight:600;line-height:1.45;display:flex}.player-contract{border-top:2px dashed var(--cream-2);flex-direction:column;grid-column:1/-1;gap:3px;margin-top:4px;padding-top:4px;display:flex}.contract-text{white-space:nowrap;font-size:11px;font-weight:800}.contract-bar{background:#0000001f;border-radius:3px;height:5px;overflow:hidden}.contract-bar span{background:var(--green);height:100%;transition:width .2s linear;display:block}.tutorial{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e28148c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.tutorial-card{background:var(--cream);color:var(--ink);border-radius:var(--radius);width:min(100%,760px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 7px var(--wood-light), var(--shadow);flex-direction:column;gap:12px;padding:18px 22px 20px;animation:.3s cubic-bezier(.2,.9,.3,1.2) both pop-in;display:flex;overflow:auto}.tutorial-head{align-items:center;gap:12px;display:flex}.tutorial-head h2{flex:1;margin:0}.tutorial-head h2:after{display:none}.tutorial-counter{font-family:var(--display);color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.tutorial-scene{object-fit:contain;background:linear-gradient(#7ec850, #7ec850) padding-box, linear-gradient(180deg, var(--wood-light), var(--wood) 40%, var(--wood-dark)) border-box;width:100%;height:auto;max-height:46vh;box-shadow:0 0 0 2px var(--wood-dark);border:4px solid #0000;border-radius:12px;display:block}.tutorial-title{font-family:var(--display);color:var(--green-dark);text-wrap:balance;margin:4px 0 0;font-size:26px;font-weight:700}.tutorial-body{flex-direction:column;gap:8px;max-width:65ch;font-weight:600;line-height:1.5;display:flex}.tutorial-body p{margin:0}.tutorial-keys{color:var(--muted);flex-wrap:wrap;gap:6px 18px;display:flex}.tutorial-keys kbd{margin-right:3px}.tutorial-nav{align-items:center;gap:12px;margin-top:4px;display:flex}.tutorial-dots{flex-wrap:wrap;flex:1;justify-content:center;gap:6px;display:flex}.tutorial-dot{background:var(--wood-light);cursor:pointer;border:0;border-radius:50%;width:12px;height:12px;padding:0;transition:transform .15s,background .15s}.tutorial-dot:hover{transform:scale(1.3)}.tutorial-dot.active{background:var(--accent);transform:scale(1.35)}.tutorial-next{padding:9px 20px;font-size:18px;animation:none}.option-btn:disabled{opacity:.45;cursor:default;transform:none}@media (max-width:600px){.tutorial-card{padding:14px}.tutorial-head h2{font-size:13px}}.end{overflow:hidden}.end .winner{font-family:var(--display);text-transform:none;letter-spacing:0;box-shadow:inset 0 0 0 2px var(--gold), 0 4px 0 var(--wood-light);background:#fff;border-radius:999px;margin:8px 0 18px;padding:8px 18px;font-size:30px;font-weight:700;animation:.6s cubic-bezier(.3,1.4,.5,1) .2s both bump;display:inline-flex}.end .winner:after{display:none}.ranking td{padding:8px 12px;font-size:18px}.ranking td.rank{width:44px;font-size:22px;font-weight:900}.ranking td.name{color:var(--player-color);font-weight:900}.ranking td.score{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.ranking td.meta{color:var(--muted);font-size:14px;font-weight:700}.ranking tr{border-left:6px solid var(--player-color);animation:.4s cubic-bezier(.2,.9,.3,1.2) both pop-in}.ranking tr:nth-child(2){animation-delay:.1s}.ranking tr:nth-child(3){animation-delay:.2s}.ranking tr:nth-child(4){animation-delay:.3s}.ranking td:first-child{box-shadow:inset 6px 0 0 var(--player-color)}.end-buttons{flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px;display:flex}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{opacity:.9;border-radius:2px;width:10px;height:14px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{0%{transform:translateY(0)rotate(0)}to{opacity:.6;transform:translateY(110vh)rotate(720deg)}}.room-code{transition:transform .2s}.room-code:hover{transform:scale(1.04)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.bot-rows{flex-direction:column;gap:6px;display:flex}.control-row.bot-row .control-name:after{content:""}.control-row.bot-row{background-image:repeating-linear-gradient(135deg,#0000 0 10px,#00000008 10px 20px)}.ranking tr.bot .name{opacity:.85}.player-card.bot .player-avatar{font-size:1.05em}.hud-side{align-items:center;gap:10px;display:flex}.sound-btn{font:inherit;border:3px solid var(--wood-dark,#6b4a2b);background:var(--cream,#fff6e4);cursor:pointer;border-radius:50%;width:42px;height:42px;font-size:1.25rem;line-height:1;transition:transform .12s,box-shadow .12s;box-shadow:0 3px #00000040}.sound-btn:hover{transform:translateY(-2px)rotate(-6deg);box-shadow:0 5px #00000040}.sound-btn:active{transform:translateY(1px);box-shadow:0 1px #00000040}.sound-btn[aria-pressed=false]{opacity:.7}.screen.menu{position:relative}.menu-sound{z-index:2;position:absolute;top:18px;right:18px}.start-row{margin:4px 0 2px}.more-toggle{font:inherit;color:var(--green-dark,#2a6a2f);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;padding:4px 0;font-size:14px;font-weight:800;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.more-toggle:hover{color:var(--accent,#e08a00)}.more-options{border-left:4px dashed var(--wood-light,#d9b98a);flex-direction:column;gap:14px;padding:12px 0 2px 14px;display:flex}.link-btn{font:inherit;color:var(--green-dark,#2a6a2f);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px 2px;font-size:14px;font-weight:800;text-decoration:underline}.link-btn:hover{color:var(--accent,#e08a00)}.teaser ul{margin-bottom:10px}.online.menu-card{border-top:none;padding-top:0}.feature-help{width:20px;height:20px;color:inherit;font:inherit;opacity:.55;cursor:help;background:0 0;border:2px solid;border-radius:50%;margin-left:2px;padding:0;font-size:12px;font-weight:900;line-height:1}.feature-help:hover{opacity:1;color:var(--accent,#e08a00)}.tutorial-body .buildings{margin-top:6px}.tutorial-body .buildings table{font-size:13px}.stage{position:relative}.hud-banner{top:calc(var(--hud-height) + 10px);z-index:5;max-width:min(92%,720px);font-family:var(--display);color:#fff6e3;text-align:center;text-shadow:0 2px #00000059;pointer-events:none;border-radius:14px;padding:8px 18px;font-size:18px;font-weight:700;line-height:1.25;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 6px #00000040,0 10px 24px #00000040}.hud-banner.warn{background:linear-gradient(#ff9b2f,#e8630a);border:3px solid #8a3a00;animation:.45s infinite alternate banner-pulse}.hud-banner.active{font-size:15px;font-family:var(--body,inherit);background:linear-gradient(#5a4030,#3a2a1c);border:3px solid #1f140b;font-weight:800}.hud-banner.pop{animation:.35s ease-out banner-pop,.45s .35s infinite alternate banner-pulse}@keyframes banner-pop{0%{opacity:0;transform:translate(-50%)scale(.6)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes banner-pulse{0%{transform:translate(-50%)scale(1)}to{transform:translate(-50%)scale(1.04)}}.attract{z-index:60;cursor:none;-webkit-user-select:none;user-select:none;background:#1d2b17;position:fixed;inset:0;overflow:hidden}.attract-stage{transform-origin:50%;animation:36s ease-in-out infinite alternate attract-pan;position:absolute;inset:0}.attract-canvas{filter:saturate(1.08);display:block;position:absolute}@keyframes attract-pan{0%{transform:scale(1.08)translate(-2.5%,-1.5%)}50%{transform:scale(1.16)translate(1.5%,2%)}to{transform:scale(1.1)translate(2.5%,-2%)}}.attract-shade{pointer-events:none;background:radial-gradient(at 50% 38%,#0000 20%,#00000059 75%),linear-gradient(#140c048c 0%,#140c0400 32% 70%,#140c04b3 100%);position:absolute;inset:0}.attract-title{text-align:center;pointer-events:none;position:absolute;top:9vh;left:0;right:0}.attract-row{justify-content:center;align-items:center;gap:clamp(10px,2.5vw,36px);animation:5s ease-in-out infinite alternate attract-sway;display:flex;transform:rotate(-2.5deg)}@keyframes attract-sway{0%{transform:rotate(-2.5deg)translateY(0)}to{transform:rotate(1.5deg)translateY(-8px)}}.attract-word{font-family:var(--display);letter-spacing:.01em;color:#ffd94d;-webkit-text-stroke:2px #4a250a;paint-order:stroke fill;text-shadow:0 3px #e19a2b,0 6px #a85f12,0 9px #6f3b0b,0 12px #4a250a,0 18px 30px #0000008c;margin:0;font-size:clamp(54px,11.5vw,170px);font-weight:700;line-height:1;display:inline-flex}.attract-word span{animation:2.6s ease-in-out infinite attract-letter;animation-delay:calc(var(--i) * 90ms);display:inline-block}@keyframes attract-letter{0%,60%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-14px)rotate(-3deg)}}.attract-emoji{filter:drop-shadow(0 10px 14px #00000080);font-size:clamp(40px,8vw,120px);animation:1.4s ease-in-out infinite attract-bounce}.attract-emoji.right{animation-delay:.7s}@keyframes attract-bounce{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-18px)rotate(6deg)}}.attract-tagline{color:#fff4d6;font-family:var(--display);letter-spacing:.04em;background:#281808c7;border:3px solid #e19a2b;border-radius:999px;margin:clamp(10px,2vh,26px) auto 0;padding:8px 22px;font-size:clamp(16px,2.4vw,30px);font-weight:700;display:inline-block;box-shadow:0 6px #00000059}.attract-ticker{color:#ffe9b8;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#140c0499;border-radius:12px;max-width:92vw;padding:8px 18px;font-size:clamp(13px,1.6vw,20px);font-weight:800;position:absolute;bottom:13vh;left:50%;overflow:hidden;transform:translate(-50%)}.attract-prompt{text-align:center;color:#fff;font-family:var(--display);text-shadow:0 3px #00000080;pointer-events:none;font-size:clamp(18px,2.8vw,36px);font-weight:700;animation:1.6s ease-in-out infinite attract-blink;position:absolute;bottom:5vh;left:0;right:0}.attract-prompt .muted{color:#ffe9b8;font-size:.65em;font-weight:600}.attract-key{color:#4a250a;background:#ffd94d;border-radius:10px;padding:4px 16px;display:inline-block;box-shadow:0 5px #a85f12}@keyframes attract-blink{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.attract-stage,.attract-row,.attract-word span,.attract-emoji,.attract-prompt{animation:none}}.sign-tabs{justify-content:center;gap:6px;margin:2px 0 10px;display:flex}.sign-tab{font:inherit;color:#ffe9b8;cursor:pointer;background:#0000002e;border:2px solid #ffffff59;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;transition:transform .12s,background .12s}.sign-tab:hover{background:#0000004d;transform:translateY(-1px)}.sign-tab.active{color:#4a250a;background:#ffd94d;border-color:#a85f12}.global-box{margin-top:18px}.global-box h2{margin-bottom:6px}.name-input{flex:140px;min-width:0;max-width:240px}.name-row{margin:8px 0 10px}.sign-foot.warn{color:#ffd94d;font-weight:800}body.portal{--field:#6a8ff0;--field-deep:#4466c8;--field-2:#557be0;--green:#2a66d0;--green-dark:#1c479d;--green-light:#3f86ee}body.portal .title{position:relative}body.portal .title:before{content:"👦";filter:sepia()saturate(4.5)hue-rotate(-14deg)brightness(1.12)contrast(1.05);background:radial-gradient(circle at 35% 28%,#fffbe0,#ffd94d 55%,#c8901a);animation:1.8s ease-in-out infinite alternate gold-glow;box-shadow:inset 0 0 0 3px #b8860b,0 4px #8a6408,0 0 18px 6px #ffcd3cbf}body.portal .title:hover:before{animation:.7s ease-in-out wiggle,1.8s ease-in-out infinite alternate gold-glow}body.portal .title:after{content:"✨";text-shadow:none;pointer-events:none;font-size:22px;animation:1.4s ease-in-out infinite gold-twinkle;position:absolute;top:-8px;left:44px}@keyframes gold-glow{0%{box-shadow:inset 0 0 0 3px #b8860b,0 4px #8a6408,0 0 10px 2px #ffcd3c80}to{box-shadow:inset 0 0 0 3px #b8860b,0 4px #8a6408,0 0 24px 10px #ffd750f2}}@keyframes gold-twinkle{0%,to{opacity:.4;transform:scale(.6)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(20deg)}}.attract-emoji.gold{filter:sepia()saturate(4.5)hue-rotate(-14deg)brightness(1.15)contrast(1.05)drop-shadow(0 0 16px #ffcd3cf2)drop-shadow(0 10px 14px #00000080)}@media (prefers-reduced-motion:reduce){body.portal .title:before,body.portal .title:after{animation:none}}.attract.pointer{cursor:default}.attract-toggle{font:inherit;color:#ffe9b8;cursor:pointer;white-space:pre;background:#140c0499;border:2px solid #ffe9b899;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:800;transition:transform .12s,background .12s;position:absolute;top:16px;right:18px}.attract-toggle:hover{background:#140c04cc;transform:translateY(-1px)scale(1.03)}.attract-toggle.on{color:#fff;background:linear-gradient(#3f86ee,#2a66d0);border-color:#cfe0ff}.hud-kaiju{font-family:var(--display);color:#ffe3c2;white-space:nowrap;background:linear-gradient(#4a2a2a,#2a1414);border:2px solid #1a0a0a;border-radius:999px;padding:6px 12px;font-size:16px;font-weight:700;box-shadow:0 3px #0000004d}.kaiju-table .kaiju-name{white-space:nowrap;font-weight:800}.kaiju-table td{vertical-align:top;font-size:13px}.kaiju-table .kaiju-attack{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:700}.hud-kaiju{align-items:center;gap:6px;padding:2px 12px 2px 6px;display:flex}.hud-kaiju canvas,.kaiju-table canvas{display:block}.kaiju-table .kaiju-icon{width:48px;padding:2px 4px}.kaiju-table .kaiju-secret td{color:#e6d4f2;background:#2a1830}.kaiju-table .kaiju-secret .muted{color:#c9a7e0;font-style:italic}.kaiju-table .kaiju-secret .kaiju-attack{color:#9d7fb5;letter-spacing:.08em}.kaiju-table .kaiju-secret canvas{filter:drop-shadow(0 0 5px #c94dffd9);animation:2.4s ease-in-out infinite alternate secret-pulse}@keyframes secret-pulse{0%{filter:drop-shadow(0 0 3px #c94dff80)}to{filter:drop-shadow(0 0 9px #c94dff)}}
