:root{--font:"Fredoka", "Nunito", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--glass:#0e14268c;--glass-strong:#0e1426c7;--line:#ffffff29;--text:#fff8ea;--muted:#fff8eab3;--accent:#8bd450;--accent-2:#ffd166;--good:#5ee27a;--bad:#ff6b6b;--danger:#ff5a5f;--radius:18px}*{box-sizing:border-box}html,body{height:100%;font-family:var(--font);color:var(--text);-webkit-user-select:none;user-select:none;background:#0b1020;margin:0;overflow:hidden}#stage{touch-action:none;outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.hud-top,.hud-bottom,.banner,.menu .screen>*{zoom:var(--ui-scale,1)}button,input{color:inherit;font-family:inherit}button{cursor:pointer;border:1px solid var(--line);background:#ffffff14;border-radius:999px;padding:10px 18px;font-size:15px;font-weight:600;transition:transform .12s,background .2s,box-shadow .2s,border-color .2s}button:hover{background:#ffffff29;transform:translateY(-1px)}button:active{transform:translateY(1px)scale(.98)}button.primary{color:#11240a;background:linear-gradient(#a5e36b,#5fb13a);border-color:#ffffff59;box-shadow:0 6px 24px #78d25059,inset 0 1px #ffffff80}button.primary:hover{background:linear-gradient(#b6ef7c,#6cc045)}button.glass{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.big{min-width:300px;padding:16px 28px;font-size:20px;line-height:1.2}button small{opacity:.7;font-size:12px;font-weight:500;display:block}button.icon{padding:4px 10px;font-size:13px}.panel{pointer-events:auto;background:var(--glass-strong);-webkit-backdrop-filter:blur(18px)saturate(1.3);backdrop-filter:blur(18px)saturate(1.3);border:1px solid var(--line);width:min(760px, calc(94vw / var(--ui-scale,1)));max-height:calc(92vh / var(--ui-scale,1));border-radius:26px;padding:26px 30px;animation:.28s cubic-bezier(.2,1.4,.4,1) pop;overflow:auto;box-shadow:0 30px 80px #00000073}.panel.wide{width:min(1120px, calc(96vw / var(--ui-scale,1)))}.panel.narrow{width:min(420px, calc(92vw / var(--ui-scale,1)));text-align:center}.panel h2{letter-spacing:.5px;margin:0;font-size:30px}.panel-head{grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:18px;display:grid}.panel-head>:first-child{justify-self:start}.panel-foot{z-index:2;background:linear-gradient(to top, var(--glass-strong) 72%, #0000);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;align-items:center;gap:16px;margin:22px -30px -26px;padding:14px 30px 22px;display:flex;position:sticky;bottom:-26px}.lead{color:var(--muted);font-size:16px;line-height:1.5}.stack{flex-direction:column;gap:10px;margin-top:20px;display:flex}.pause-setting{margin-top:18px}@keyframes pop{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.menu .screen{justify-content:safe center;align-items:safe center;padding:20px;display:flex;position:fixed;inset:0;overflow:auto}.menu .screen.dim{pointer-events:auto;background:#05081273}.menu .title-screen{background:radial-gradient(#0000 30%,#0508148c 100%);flex-direction:column;gap:38px}.logo{text-align:center;filter:drop-shadow(0 10px 30px #00000073)}.logo-garlic{font-size:84px;animation:2.4s ease-in-out infinite bob}.logo h1{letter-spacing:1px;flex-direction:column;margin:0;font-size:clamp(56px,9vw,112px);font-weight:700;line-height:.9;display:flex}.logo h1 span:first-child{color:#fff4dc;-webkit-text-stroke:2px #50325a99}.logo h1 span:last-child{color:#0000;background:linear-gradient(#c6f28a,#5db33a);-webkit-background-clip:text;background-clip:text}.tagline{color:var(--text);opacity:.9;margin:14px 0 0;font-size:20px}.title-buttons{pointer-events:auto;flex-direction:column;gap:12px;display:flex}.version{opacity:.65;font-size:13px;position:fixed;bottom:14px;right:18px}@keyframes bob{50%{transform:translateY(-10px)rotate(-6deg)}}.teams-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.team-card{border-radius:var(--radius);background:linear-gradient(160deg, color-mix(in srgb, var(--team) 26%, transparent), #ffffff0a);border:1px solid color-mix(in srgb, var(--team) 55%, transparent);padding:14px;position:relative}.team-card.add{background:#ffffff08;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:220px;font-size:34px;display:flex}.team-card.add span{font-size:15px}.team-top{align-items:center;gap:8px;display:flex}.team-dot{background:var(--team);width:14px;height:14px;box-shadow:0 0 12px var(--team);border-radius:50%;flex:none}.team-name{border:none;border-bottom:1px dashed var(--line);background:0 0;outline:none;flex:1;min-width:0;padding:4px 2px;font-size:19px;font-weight:600}.swatches{gap:6px;margin:10px 0 4px;display:flex}.swatch{background:var(--c);border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.swatch.on{box-shadow:0 0 0 2px var(--c);border-color:#fff}.field-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:12px 0 6px;font-size:12px;display:block}.seg{background:#00000040;border-radius:14px;flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.seg button{background:0 0;border:none;border-radius:11px;padding:6px 10px;font-size:13px}.seg button.on{background:var(--accent-2);color:#3a2600}.buddies{align-items:flex-start;gap:10px;display:flex}.stepper{flex:none;align-items:center;gap:8px;display:inline-flex}.stepper button{width:30px;height:30px;padding:0}.stepper span{text-align:center;width:14px;font-size:18px;font-weight:700}.buddy-names{flex-wrap:wrap;gap:4px;font-size:12px;display:flex}.buddy-names span{background:#00000040;border-radius:999px;padding:3px 7px}.options{flex-wrap:wrap;gap:26px;margin-top:8px;display:flex}.seed{gap:6px;display:flex}.seed input{border:1px solid var(--line);background:#00000040;border-radius:12px;outline:none;width:190px;padding:9px 12px;font-size:16px}.seed button{padding:8px 14px;font-size:18px}.themes{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.theme-card{border-radius:var(--radius);background:radial-gradient(ellipse 70% 40% at 50% 100%, var(--ground) 60%, transparent 61%), radial-gradient(ellipse 90% 30% at 50% 108%, var(--rock) 70%, transparent 71%), linear-gradient(180deg, var(--sky1), var(--sky2));text-shadow:0 1px 4px #0009;border:2px solid #0000;justify-content:center;align-items:flex-end;height:92px;padding:10px;display:flex}.theme-card.on{box-shadow:0 0 0 3px var(--accent);border-color:#fff}.help-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.keys{border-collapse:collapse;width:100%}.keys td{border-bottom:1px solid #ffffff0f;padding:6px 4px}kbd{text-align:center;background:#ffffff24;border-bottom:2px solid #00000059;border-radius:7px;min-width:26px;margin:0 2px;padding:2px 7px;font-family:inherit;font-size:13px;display:inline-block}.weapon-row{gap:12px;margin-bottom:12px;display:flex}.weapon-row p{color:var(--muted);margin:2px 0 0;font-size:14px}.weapon-row small{color:var(--accent-2);margin-left:6px}.weapon-icon{font-size:30px}.victory .trophy{font-size:80px;animation:2s ease-in-out infinite bob}.victory h2{color:var(--team);filter:brightness(1.3)}.hud.hidden{display:none}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #00000040}.hud-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;display:grid;position:fixed;top:14px;left:16px;right:16px}.turn-card{justify-self:start;align-items:center;gap:12px;padding:10px 18px 10px 10px;display:flex}.turn-stripe{background:var(--team,#fff);width:8px;box-shadow:0 0 14px var(--team,#fff);border-radius:8px;align-self:stretch}.turn-team,.turn-buddy{overflow-wrap:anywhere}.turn-team{font-size:20px;font-weight:700}.turn-buddy{color:var(--muted);font-size:14px}.timer{border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:7px 12px 8px;display:flex}.timer-ring{place-items:center;width:62px;height:62px;display:grid;position:relative}.timer svg{position:absolute;inset:0;transform:rotate(-90deg)}.timer circle{fill:none;stroke-width:5px}.timer .track{stroke:#ffffff1f}.timer .progress{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .2s linear}.timer.retreat .progress{stroke:var(--accent-2)}.timer.urgent .progress{stroke:var(--danger)}.timer-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;line-height:1}.timer.urgent .timer-value{color:var(--danger);animation:.5s ease-in-out infinite alternate pulse}.timer-caption{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:10px}@keyframes pulse{to{transform:scale(1.18)}}.hud-right{flex-direction:column;justify-self:end;align-items:flex-end;gap:8px;display:flex}.wind{width:220px;padding:10px 16px}.hud-menu{pointer-events:auto;gap:6px;padding:6px;display:flex}.hud-button{font:inherit;color:var(--text);cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;padding:6px 12px;font-size:13px;font-weight:600;transition:background .15s,transform .15s}.hud-button:hover{background:#ffffff2e;transform:translateY(-1px)}.hud-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.approach{width:220px;padding:10px 16px}.approach-arrow{letter-spacing:.5px;white-space:nowrap;font-size:15px;font-weight:700}.wind-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin-bottom:6px;font-size:12px}.wind-bar{background:#00000059;border-radius:999px;height:12px;position:relative;overflow:hidden}.wind-mid{background:#ffffff80;width:2px;position:absolute;top:0;bottom:0;left:50%}.wind-fill{background:linear-gradient(90deg,#6fd3ff,#c7f0ff);border-radius:0 999px 999px 0;transition:width .4s,left .4s;position:absolute;top:0;bottom:0}.wind-fill.left{background:linear-gradient(270deg,#6fd3ff,#c7f0ff);border-radius:999px 0 0 999px}.hud-bottom{grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;display:grid;position:fixed;bottom:14px;left:16px;right:16px}.team-bars{flex-direction:column;justify-self:start;gap:6px;min-width:230px;padding:10px 14px;display:flex}.team-bar{opacity:.8;grid-template-columns:96px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.team-bar.active{opacity:1;font-weight:700}.team-bar.out{opacity:.35;text-decoration:line-through}.team-bar-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.team-bar-track{background:#00000059;border-radius:999px;height:10px;overflow:hidden}.team-bar-fill{background:var(--team);height:100%;box-shadow:0 0 10px var(--team);border-radius:999px;transition:width .6s}.weapons{pointer-events:auto;max-width:min(880px, calc((100vw - 32px) / var(--ui-scale,1)));flex-direction:column;gap:4px;padding:6px 8px 8px;display:flex}.weapon-caption{white-space:nowrap;align-items:baseline;gap:10px;padding:0 4px;font-size:14px;display:flex;overflow:hidden}.weapon-blurb{color:var(--muted);text-overflow:ellipsis;font-size:13px;overflow:hidden}.slots{grid-template-columns:repeat(var(--slot-columns,11), auto);grid-auto-rows:auto;justify-content:center;gap:3px;display:grid}.slot{background:#ffffff0d;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:44px;height:50px;padding:4px 2px 2px;display:flex;position:relative}.slot.on{border-color:var(--accent-2);background:linear-gradient(#ffd16659,#ffd1661f);box-shadow:0 0 18px #ffd16659}.slot.empty{opacity:.35}.slot-key{opacity:.6;font-size:12px;position:absolute;top:2px;left:5px}.slot-icon{font-size:22px;line-height:1.1}.slot-ammo{color:var(--accent-2);font-size:12px}.hint{color:var(--muted);text-align:right;justify-self:end;max-width:260px;padding:10px 14px;font-size:13px}.labels>*{transform-origin:0 0;will-change:transform;position:fixed;top:0;left:0}.tag{text-shadow:0 1px 3px #000c;flex-direction:column;align-items:center;font-size:12px;font-weight:600;transition:opacity .2s;display:flex}.tag-hp{background:var(--team);color:#fff;border:1px solid #ffffff80;border-radius:999px;margin-top:2px;padding:1px 8px;font-weight:700;box-shadow:0 2px 8px #00000059}.tag.active .tag-name{color:var(--accent-2);font-size:14px}.fuse{color:#fff;text-shadow:0 0 6px #ff5a00,0 1px 3px #000;font-size:18px;font-weight:700}.floater{color:#fff;-webkit-text-stroke:1.5px var(--team);text-shadow:0 3px 10px #0009;font-size:26px;font-weight:800}.banner{text-align:center;opacity:0;transition:opacity .3s,transform .3s;position:fixed;top:22%;left:50%;transform:translate(-50%,-20px)}.banner.show{opacity:1;transform:translate(-50%)}.banner-title{color:#fff;-webkit-text-stroke:2px color-mix(in srgb, var(--team) 80%, black);text-shadow:0 6px 24px #00000080;font-size:46px;font-weight:700}.banner-sub{text-shadow:0 2px 8px #000000b3;font-size:20px}@media (max-width:1150px){.hint,.weapon-blurb{display:none}.hud-bottom{grid-template-columns:1fr}.team-bars{min-width:200px}.weapons{justify-self:center}}@media (max-width:900px){.help-grid,.themes{grid-template-columns:1fr}}@media (max-width:1400px){html[data-text-size=large] .hint,html[data-text-size=large] .weapon-blurb{display:none}html[data-text-size=large] .hud-bottom{grid-template-columns:1fr}html[data-text-size=large] .weapons{justify-self:center}}@media (max-width:1600px){html[data-text-size=huge] .hint,html[data-text-size=huge] .weapon-blurb{display:none}html[data-text-size=huge] .hud-bottom{grid-template-columns:1fr}html[data-text-size=huge] .weapons{justify-self:center}}.about-facts{margin:0 0 18px;padding-left:20px;line-height:1.7}.about a,.fine a{color:var(--accent-2)}.licenses{border-collapse:collapse;width:100%;font-size:14px}.licenses th,.licenses td{text-align:left;border-bottom:1px solid var(--line);padding:6px 8px}.licenses th{color:var(--muted);font-weight:600}.fine{color:var(--muted);margin-top:16px;font-size:13px}.map-field{flex-wrap:wrap;flex:100%;align-items:flex-end;gap:18px;display:flex}.seed-field{flex:none}.preview-field{flex:260px;min-width:220px}.map-preview{background:#00000040;border:1px solid #ffffff2e;border-radius:10px;width:100%;max-width:384px;height:auto;margin-top:4px;display:block}.gravity{text-align:center;padding:6px 10px}.gravity-value{font-size:15px;font-weight:600}@media (prefers-reduced-motion:reduce){.hud *,.menu *,.banner,.floater{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.stats-panel h3{margin:22px 0 10px;font-size:18px}.stats-table{border-collapse:collapse;width:100%;font-size:14px}.stats-table th{border-bottom:1px solid var(--line);color:var(--muted);text-align:right;padding:6px 8px;font-weight:600}.stats-table th:first-child,.stats-table td:first-child{text-align:left}.stats-table td{text-align:right;font-variant-numeric:tabular-nums;border-bottom:1px solid #ffffff0f;padding:6px 8px}.stats-table tr.out td{color:var(--muted)}.stats-dot{background:var(--team,#fff);border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.awards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.award{border:1px solid var(--line);background:#ffffff0d;border-radius:14px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.award-icon{font-size:22px;line-height:1.1}.award-who{color:var(--accent-2);font-weight:600}.award small{color:var(--muted)}.stats-table td.good,.tally b.good{color:var(--good)}.stats-table td.bad,.tally b.bad{color:var(--bad)}.stats-split{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start;gap:18px;display:grid}.award.good{background:#5ee27a14;border-color:#5ee27a73}.award.bad{background:#ff5a5a14;border-color:#ff5a5a73}.award.good .award-who{color:var(--good)}.award.bad .award-who{color:var(--bad)}.tally{margin:0;padding:0;list-style:none}.tally li{border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:5px 2px;font-size:14px;display:flex}.tally .use-icon{font-size:17px}.tally .use-name{color:var(--muted);flex:1}.tally b{font-variant-numeric:tabular-nums}.buddy-name{align-items:center;gap:4px;display:flex}.buddy-name input{border:1px solid var(--line);background:#00000038;border-radius:9px;outline:none;width:100%;min-width:0;padding:3px 7px;font-size:13px}.buddy-name input:focus{border-color:var(--team,var(--accent))}.faction-names{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:12px 0;display:grid}.faction-names label{gap:6px;display:grid}.faction-names input{border:1px solid var(--line);width:100%;min-width:0;color:var(--text);font:inherit;background:#0d1528;border-radius:8px;padding:8px 10px}.faction-names input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
