:root{--m-bg:#080a0f;--m-panel:#0e121ae6;--m-panel-hover:#1a2230f5;--m-border:#fff3;--m-accent:#e8742a;--m-accent-text:#ff9a4d;--m-text:#f0f4f8;--m-muted:#b4bec9;--m-heading:"Bahnschrift", "Oswald", "Arial Narrow", "Roboto Condensed", Impact, sans-serif;--m-body:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--m-cut:polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));--m-cut-sm:polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px))}#menu-art{z-index:0;background:var(--m-bg);pointer-events:none;display:none;position:fixed;inset:0;overflow:hidden}body:not([data-screen=playing]):not([data-screen=paused]) #menu-art{display:block}#menu-art .art-layer{opacity:0;will-change:opacity;contain:strict;transition:opacity 1.5s ease-in-out;position:absolute;inset:0}#menu-art .art-layer[data-active=yes]{opacity:1}#menu-art .menu-art-svg{width:100%;height:100%;position:absolute;inset:0}#menu-art .art-scrim{background:linear-gradient(105deg,#06080dd1 0%,#06080da8 38%,#06080d4d 68%,#0405088c 100%),radial-gradient(circle at 60%,#0000 45%,#030407b3 100%);position:absolute;inset:0}#menu-art .art-grain{opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}#menu{z-index:1;color:var(--m-text);font-family:var(--m-body);background:0 0;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;padding:clamp(1rem,2.4vw,2.4rem);font-size:15px;line-height:1.4;display:none;position:fixed;inset:0;overflow-y:auto}body[data-screen=menu] #menu,body[data-screen=join] #menu,body[data-screen=host] #menu,body[data-screen=dev] #menu{display:grid}#menu *{box-sizing:border-box}.menu-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;display:flex}.menu-title{font:900 clamp(1.7rem, 2.6vw, 2.8rem) / 1.1 var(--m-heading);letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 25px #e8742a66,0 4px 18px #000c;align-items:center;gap:.75rem;margin:0;display:flex}.menu-title:before{content:"";background:var(--m-accent);width:5px;height:1.1em;box-shadow:0 0 12px #e8742a80}.menu-callsign{background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut-sm);flex-direction:column;padding:.45rem .9rem;display:flex}.menu-callsign .label{font:700 .7rem var(--m-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--m-muted)}.menu-callsign b{font-weight:700}.menu-stage{align-items:center;min-height:0;margin-left:clamp(0px,50vw - 750px,18vw);display:flex}.level{width:min(clamp(800px,36vw,1150px),100%);display:none}body[data-screen=menu] #level-main,body[data-screen=dev] #level-main,body[data-screen=join] #level-join,body[data-screen=host] #level-host{display:block}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.tile{min-width:0;color:var(--m-text);font:inherit;text-align:left;background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut);cursor:pointer;border:0;flex-direction:column;justify-content:space-between;gap:.6rem;margin:0;padding:1.1rem 1.3rem;text-decoration:none;display:flex;position:relative}.tile:hover{background:var(--m-panel-hover);box-shadow:inset 0 0 0 1px #fff6}.tile:focus-visible,.menu-button:focus-visible,.art-dot:focus-visible,.dev-btn:focus-visible,#join-code:focus-visible,.switch:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent);outline:none}.tile.primary{box-shadow:inset 4px 0 0 var(--m-accent), inset 0 0 0 1px #e8742a8c;background:linear-gradient(135deg,#202a3cf5,#121824f0)}.tile.primary:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent)}.tile.big{min-height:11rem}.tile.small{min-height:5.5rem}.tile .row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.tile h2,.tile h3{font:800 clamp(1.3rem, 2.2vw, 2rem) / 1.1 var(--m-heading);letter-spacing:.1em;text-transform:uppercase;margin:0}.tile.small h2{font-size:clamp(1rem,1.5vw,1.25rem)}.tile .icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.85;flex:none;width:2.6rem;height:2.6rem}.tile.primary .icon{color:var(--m-accent-text)}.tile.small .icon{width:1.5rem;height:1.5rem}.tile .last{font-weight:700;display:block}.tile .hint{color:var(--m-accent-text);font-weight:600;display:block}.tile .quiet{color:var(--m-muted);display:block}.tile .last:empty{display:none}.join-head{align-items:center;gap:1.25rem;margin-bottom:1rem;display:flex}.join-head h2{font:800 clamp(1.4rem, 2.2vw, 2rem) var(--m-heading);letter-spacing:.14em;text-transform:uppercase;margin:0}.menu-button{color:var(--m-text);font:700 .95rem var(--m-heading);letter-spacing:.08em;text-transform:uppercase;background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut-sm);cursor:pointer;border:0;align-items:center;gap:.5rem;margin:0;padding:.6rem 1rem;display:inline-flex}.menu-button:hover{background:var(--m-panel-hover)}.menu-button.go{color:#14100c;background:var(--m-accent);box-shadow:none}.menu-button.go:hover{background:#ff8533}.menu-button.go:focus-visible{box-shadow:inset 0 0 0 3px #14100c,inset 0 0 0 5px #fff}kbd{background:#ffffff1f;border:1px solid #ffffff59;border-radius:3px;padding:.1rem .4rem;font:800 .7rem/1 monospace}.join-cards{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:14px;display:grid}.join-cards .tile[hidden]{display:none}.join-cards:has(#rejoin-game[hidden]){grid-template-columns:minmax(0,1fr)}.code-card label{color:var(--m-muted);font:700 .8rem var(--m-heading);letter-spacing:.14em;text-transform:uppercase}.code-card .field{flex-wrap:wrap;gap:.6rem;display:flex}#join-code{min-width:0;color:var(--m-text);letter-spacing:.25em;text-transform:uppercase;box-shadow:inset 0 0 0 1px var(--m-border);background:#0000008c;border:0;flex:10rem;padding:.7rem .9rem;font:700 1.1rem monospace}#join-code::placeholder{color:var(--m-muted);letter-spacing:.1em}.menu-foot{color:var(--m-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1.5rem;font-size:.8rem;display:flex}.menu-foot .engine{flex:14rem}.dots{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.dots[hidden]{display:none}.art-dot{color:var(--m-muted);font:700 .75rem var(--m-heading);letter-spacing:.06em;clip-path:var(--m-cut-sm);cursor:pointer;background:#ffffff0f;border:0;align-items:center;gap:.35rem;padding:.3rem .6rem;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff38}.art-dot:before{content:"";border:1.5px solid;border-radius:50%;width:.5rem;height:.5rem}.art-dot[aria-current=true]{color:#14100c;background:var(--m-accent);box-shadow:none;font-weight:900}.art-dot[aria-current=true]:before{background:currentColor}.art-dot[aria-current=true]:focus-visible{box-shadow:inset 0 0 0 3px #14100c,inset 0 0 0 5px #fff}.menu-foot .keys{flex-wrap:wrap;gap:.3rem 1rem;margin:0;display:flex}.dev-btn{color:var(--m-muted);font:800 .75rem var(--m-heading);letter-spacing:.14em;clip-path:var(--m-cut-sm);cursor:pointer;background:#0a0d13b3;border:0;padding:.35rem .8rem;box-shadow:inset 0 0 0 1px #ffffff2e}.dev-btn:hover{color:var(--m-text)}#dev-drawer{z-index:3;width:min(26rem,100%);box-shadow:inset 1px 0 0 var(--m-border);background:#0a0d13f7;flex-direction:column;gap:1rem;padding:1.2rem;display:none;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}body[data-screen=dev] #dev-drawer{display:flex}#dev-drawer header{justify-content:space-between;align-items:center;gap:1rem;display:flex}#dev-drawer h2{color:var(--m-accent-text);font:800 1.15rem var(--m-heading);letter-spacing:.12em;text-transform:uppercase;margin:0}#dev-maps{flex-direction:column;gap:8px;display:flex}#dev-maps button{color:var(--m-text);font:700 .95rem var(--m-heading);letter-spacing:.04em;text-align:left;background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut-sm);cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem 1rem;display:flex}#dev-maps button:hover{background:var(--m-panel-hover)}#dev-maps button:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent);outline:none}#dev-maps button small{color:var(--m-muted);font:400 .78rem var(--m-body);letter-spacing:0;margin:.15rem 0 0;display:block}#dev-maps .tag{color:var(--m-accent-text);font:800 .65rem var(--m-heading);letter-spacing:.1em;box-shadow:inset 0 0 0 1px var(--m-accent);flex:none;padding:.1rem .4rem}.dev-switch{background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.dev-switch small{color:var(--m-muted);font-size:.78rem;display:block}.switch{min-width:4.2rem;color:var(--m-text);font:800 .8rem var(--m-heading);letter-spacing:.1em;box-shadow:inset 0 0 0 1px var(--m-border);cursor:pointer;background:#ffffff14;border:0;flex:none;padding:.4rem .8rem}.switch[aria-checked=true]{color:#14100c;background:var(--m-accent);box-shadow:none}.switch[aria-checked=true]:focus-visible{box-shadow:inset 0 0 0 3px #14100c,inset 0 0 0 5px #fff}@media (max-width:640px){.tiles,.join-cards{grid-template-columns:minmax(0,1fr)}.tile.big{min-height:8.5rem}.menu-stage{align-items:flex-start;margin-left:0}.menu-foot{flex-direction:column;align-items:flex-start}.menu-foot .engine{flex:none}}@media (prefers-reduced-motion:reduce){#menu-art .art-layer{transition:none}}body #pause,body #room,body #lobby,body #naming,body #loading{color:var(--m-text);font-family:var(--m-body);background:#06080de0;font-size:15px;line-height:1.45}body #room,body #lobby,body #naming,body #loading{background:#06080d99}body #loading{background:#06080de6}body #room .panel,body #naming .panel,body #lobby .panel,body #loading .panel{background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut);border:0;border-radius:0;max-width:min(36rem,94vw);padding:1.6rem 2rem}body #room .panel,body #lobby .panel{min-width:min(28rem,94vw)}body #room h2,body #lobby h2,body #pause h2,body #loading h2,body #endmatch h2{font-family:var(--m-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--m-text);font-weight:800}body #endmatch{color:var(--m-text);font-family:var(--m-body);border-bottom:1px solid var(--m-border)}body #endmatch .score{color:var(--m-accent-text);font-family:var(--m-heading)}body #room .map,body #room .waiting{color:var(--m-muted);opacity:1}body #room li{white-space:pre-wrap;background:#ffffff0a;border-left:3px solid #0000;margin-bottom:4px}body #room li[data-you=yes]{border-left-color:var(--m-accent);background:#e8742a24;font-weight:700}body #room li[data-ready=yes]{color:var(--m-text)}body #room button,body #lobby button,body #naming button,body #pause button{color:var(--m-text);font:700 .95rem var(--m-heading);letter-spacing:.08em;text-transform:uppercase;text-align:left;box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut-sm);cursor:pointer;background:#ffffff14;border:0;border-radius:0;padding:.65rem 1.1rem}body #room button:hover,body #lobby button:hover,body #naming button:hover,body #pause button:hover{background:var(--m-panel-hover);color:var(--m-text)}body #room button:focus-visible,body #lobby button:focus-visible,body #naming button:focus-visible,body #pause button:focus-visible{background:var(--m-panel-hover);box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent);outline:none}body #room #room-action,body #lobby #lobby-play,body #naming #naming-save,body #pause #pause-resume{color:#14100c;background:var(--m-accent);box-shadow:none}body #room #room-action:hover,body #lobby #lobby-play:hover,body #naming #naming-save:hover,body #pause #pause-resume:hover{color:#14100c;background:#ff8533}body #room #room-action:focus-visible,body #lobby #lobby-play:focus-visible,body #naming #naming-save:focus-visible,body #pause #pause-resume:focus-visible{color:#14100c;background:#ff8533;box-shadow:inset 0 0 0 3px #14100c,inset 0 0 0 5px #fff}body #pause small{color:var(--m-muted);font:400 .8rem var(--m-body);letter-spacing:0;text-transform:none;margin-top:.3rem;display:block}body #pause .why{max-width:34rem;color:var(--m-muted);text-align:center}body #naming input{color:var(--m-text);box-shadow:inset 0 0 0 1px var(--m-border);background:#0000008c;border:0}body #naming input:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent);outline:none}@media (max-width:640px){body #room .panel,body #lobby .panel,body #naming .panel{width:94vw;min-width:0;padding:1.1rem}}#level-host{width:min(clamp(800px,44vw,1250px),100%)}.host-setup{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;display:grid}.host-group h3{color:var(--m-muted);font:700 .8rem var(--m-heading);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .5rem}#host-maps,#host-modes{flex-direction:column;gap:8px;display:flex}#host-maps{max-height:min(52vh,34rem);padding:3px;overflow-y:auto}.option{color:var(--m-text);font:700 .95rem var(--m-heading);letter-spacing:.04em;text-align:left;background:var(--m-panel);box-shadow:inset 0 0 0 1px var(--m-border);clip-path:var(--m-cut-sm);cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:.8rem;margin:0;padding:.7rem 1rem;display:flex}.option:hover{background:var(--m-panel-hover)}.option small{color:var(--m-muted);font:400 .78rem var(--m-body);letter-spacing:0;margin-top:.15rem;display:block}.option[aria-checked=true]{box-shadow:inset 4px 0 0 var(--m-accent), inset 0 0 0 1px #e8742a99;background:linear-gradient(135deg,#202a3cf5,#121824f0);font-weight:900}.option[aria-checked=true]:after{content:"✓";color:var(--m-accent-text);font:900 1.1rem var(--m-body);flex:none}.option[aria-disabled=true]{cursor:not-allowed;color:var(--m-muted);background:#0e121a99}.option[aria-disabled=true]:hover{background:#0e121a99}.option:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--m-accent);outline:none}.option .tag{color:var(--m-accent-text);font:800 .65rem var(--m-heading);letter-spacing:.1em;box-shadow:inset 0 0 0 1px var(--m-accent);flex:none;padding:.1rem .4rem}.host-note{min-height:1.4em;color:var(--m-accent-text);margin:.6rem 0 0;font-weight:600}.host-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;margin-top:1rem;display:flex}.host-summary{font:800 clamp(1rem, 1.6vw, 1.3rem) var(--m-heading);letter-spacing:.08em;text-transform:uppercase}#host-game{padding:.8rem 1.6rem;font-size:1.05rem}@media (max-width:640px){.host-setup{grid-template-columns:minmax(0,1fr)}#host-maps{max-height:40vh}}
