:root{--bg:#0a0d16;--fg:#e6ecf7;--muted:#8a9bb8;--accent:#ffd24a;--panel:#1c2640;--edge:#8ba3d8;--font-ui:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:var(--font-ui)}a{color:inherit}.home{min-height:100dvh;display:grid;place-content:center;grid-gap:1.5rem;gap:1.5rem;padding:24px 16px;text-align:center}.home h1{margin:0;color:var(--accent);font-size:clamp(2rem,8vw,3.5rem);line-height:1.05;text-shadow:0 4px 0 #3a1a00}.home p{margin:0;color:var(--muted);max-width:46ch}.home nav{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn{display:inline-block;padding:12px 22px;background:var(--panel);border:2px solid var(--edge);border-radius:6px;text-decoration:none;font-size:1.1rem}.btn:focus-visible,.btn:hover{background:#2b3a66}.btn.primary{background:var(--accent);color:#2a1600;border-color:#b8860b;font-weight:700}.game-root{position:fixed;inset:0;background:#05060e}.game-host{position:absolute;inset:0;touch-action:none}.game-host canvas{display:block}.rotate-prompt{display:none;position:absolute;inset:0;z-index:10;background:rgba(5,6,14,.96);place-content:center;text-align:center;padding:24px;font-size:1.2rem}@media (pointer:coarse) and (orientation:portrait){.rotate-prompt{display:grid}}.page{max-width:720px;margin:0 auto;padding:24px 16px}.page h1{color:var(--accent)}.alt-link{color:var(--muted);font-size:.9rem;justify-self:center;text-underline-offset:3px}.alt-link:focus-visible,.alt-link:hover{color:var(--fg)}.g3d-root{overflow:hidden;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.g3d-host canvas{width:100%;height:100%}.g3d-floats{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.g3d-float{position:absolute;left:0;top:0;font-weight:700;font-size:15px;white-space:nowrap;will-change:transform,opacity;text-shadow:0 2px 0 #000,0 0 6px rgba(0,0,0,.8)}.g3d-fade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .9s ease;z-index:8}.g3d-fade.on{opacity:1}.g3d-screen{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow-y:auto;justify-content:safe center;background:radial-gradient(ellipse at center,rgba(5,6,14,.15) 0,rgba(5,6,14,.55) 60%,rgba(5,6,14,.9) 100%)}.g3d-title{margin:0;color:var(--accent);font-size:clamp(2rem,7vw,3.8rem);line-height:1.02;letter-spacing:.02em;text-shadow:0 5px 0 #3a1a00,0 0 28px rgba(255,160,40,.35)}.g3d-title-kicker{display:block;margin-bottom:.12em;font-size:.42em;letter-spacing:.32em;color:#f2f2ea;text-shadow:0 3px 0 #3a1a00}.g3d-sub{margin:0;color:#b8c8e0;font-size:.95rem;text-shadow:0 2px 4px #000}.g3d-buttons{display:flex;flex-direction:column;gap:10px;min-width:min(340px,100%)}.g3d-btn{font:inherit;font-size:1.15rem;color:#fff;cursor:pointer;padding:12px 22px;background:rgba(28,38,64,.94);border:2px solid var(--edge);border-radius:8px;box-shadow:0 4px 0 rgba(0,0,0,.5)}.g3d-btn:focus-visible,.g3d-btn:hover{background:rgba(58,80,136,.92)}.g3d-btn.primary{background:var(--accent);color:#2a1600;border-color:#b8860b;font-weight:700}.g3d-btn.primary:focus-visible,.g3d-btn.primary:hover{background:#ffe07a}.g3d-btn:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.5)}.g3d-help{margin:0;color:#8a9bb8;font-size:.78rem;line-height:1.6;text-shadow:0 1px 3px #000;max-width:70ch}.g3d-menu .g3d-help{position:absolute;bottom:18px;left:16px;right:16px;margin:0 auto}.g3d-h2{margin:0;color:var(--accent);font-size:1.9rem;text-shadow:0 3px 0 #3a1a00}.g3d-back{position:absolute;top:16px;left:16px;font:inherit;color:#b8c8e0;background:rgba(10,13,22,.6);border:1px solid var(--edge);border-radius:6px;padding:8px 12px;cursor:pointer}.g3d-back:focus-visible,.g3d-back:hover{color:#fff;background:rgba(43,58,102,.8)}.g3d-cards{gap:16px;flex-wrap:wrap;max-width:900px}.g3d-card,.g3d-cards{display:flex;justify-content:center}.g3d-card{font:inherit;color:#fff;cursor:pointer;text-align:center;width:min(260px,100%);min-height:190px;flex-direction:column;align-items:center;gap:10px;padding:18px 14px;background:rgba(20,28,50,.92);border:2px solid var(--edge);border-radius:10px;transition:transform .12s ease,border-color .12s ease,background .12s ease}.g3d-card:focus-visible,.g3d-card:hover{transform:translateY(-4px);border-color:var(--accent);background:rgba(43,58,102,.85)}.g3d-card-num{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#2a1600;font-weight:700}.g3d-card-name{font-size:1.15rem;font-weight:700}.g3d-card-blurb{font-size:.8rem;color:#9fb4d0;line-height:1.45}@media (max-height:480px),(max-width:700px){.g3d-cards{flex-direction:column;flex-wrap:nowrap;align-items:center;gap:10px}.g3d-card{width:min(420px,100%);min-height:0;flex-direction:row;text-align:left;padding:10px 14px}.g3d-card-blurb{display:none}.g3d-screen{gap:12px}}.g3d-over{background:rgba(5,6,14,.78)}.g3d-dead{margin:0;color:#e03a30;font-size:clamp(2.2rem,7vw,3.4rem);text-shadow:0 4px 0 #3a0000,0 0 30px rgba(255,30,20,.35)}.g3d-stats{display:grid;grid-template-columns:auto auto;grid-gap:6px 22px;gap:6px 22px;margin:0;font-size:1.15rem}.g3d-stats dt{color:#9fb4d0;text-align:right}.g3d-stats dd{margin:0;text-align:left;font-weight:700}.g3d-icon{font:inherit;font-size:18px;line-height:1;color:#fff;cursor:pointer;width:40px;height:40px;display:grid;place-items:center;background:rgba(10,13,22,.55);border:1px solid rgba(255,255,255,.18);border-radius:8px}.g3d-icon:hover{background:rgba(43,58,102,.8)}.g3d-mute-float{position:absolute;top:10px;right:10px;z-index:6}.g3d-hud{position:absolute;inset:0;z-index:4;pointer-events:none;text-shadow:0 2px 0 #000,0 0 4px #000}.g3d-hud button{pointer-events:auto}.g3d-pcard{position:absolute;top:10px;width:190px;padding:7px 10px 8px;border-radius:8px;background:rgba(8,10,20,.55);border:1px solid rgba(255,255,255,.1);border-left:4px solid #5aa0ff}.g3d-pcard.left{left:10px}.g3d-pcard.right{right:110px}.g3d-pcard.down{opacity:.7;border-left-color:#a03030}.g3d-pname{font-weight:700;font-size:14px}.g3d-hp{margin:5px 0;height:10px;background:rgba(0,0,0,.7);border-radius:3px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.g3d-hpfill{height:100%;background:linear-gradient(#6ade6a,#3aa03a);transition:width .12s linear}.g3d-hpfill.low{background:linear-gradient(#ff5a4a,#c02020)}.g3d-weapon{font-size:13px;color:#e6ecf7}.g3d-ammo{color:var(--accent);font-weight:700}.g3d-center{position:absolute;top:8px;left:50%;transform:translateX(-50%);text-align:center;white-space:pre}.g3d-score{font-size:22px;font-weight:700}.g3d-wave{margin-top:2px;font-size:14px;color:var(--accent)}.g3d-combo{margin-top:4px;font-size:22px;font-weight:700;color:var(--accent);animation:g3d-pop .25s ease-out}.g3d-corner{top:10px;right:10px;gap:6px}.g3d-corner,.g3d-unlocks{position:absolute;display:flex}.g3d-unlocks{bottom:8px;left:50%;transform:translateX(-50%);gap:10px;flex-wrap:nowrap;font-size:11px;color:rgba(255,255,255,.45);white-space:nowrap}.g3d-unlocks .on{color:#fff}.g3d-toast{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:700;white-space:nowrap;animation:g3d-toast 1.6s ease forwards}.g3d-pause{position:absolute;inset:0;display:grid;place-content:center;text-align:center;grid-gap:8px;gap:8px;font-size:16px;background:rgba(5,6,14,.55)}.g3d-pause-title{font-size:40px;font-weight:700;letter-spacing:.1em}@keyframes g3d-pop{0%{transform:scale(1.5)}to{transform:scale(1)}}@keyframes g3d-toast{0%{opacity:0;transform:translate(-50%,-30%) scale(.9)}10%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}to{opacity:0}}@media (max-height:420px),(max-width:640px){.g3d-pcard{width:150px;padding:5px 8px 6px}.g3d-pcard.right{right:100px}.g3d-score{font-size:18px}.g3d-wave{font-size:12px}.g3d-toast{font-size:20px}.g3d-center{top:4px}}.g3d-touch{position:absolute;inset:0;z-index:3;touch-action:none}.g3d-knob,.g3d-stick,.g3d-tbtn{position:absolute;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}.g3d-stick{border:3px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12)}.g3d-knob{width:48px;height:48px;background:rgba(255,255,255,.4)}.g3d-knob.aim{width:40px;height:40px;background:rgba(255,210,74,.75);box-shadow:0 0 0 2px rgba(0,0,0,.4)}.g3d-tbtn{display:grid;place-items:center;color:#fff;font-weight:700;font-size:15px;text-shadow:0 1px 2px #000}.g3d-tbtn.fire{background:rgba(208,48,48,.4)}.g3d-tbtn.swap{background:rgba(48,112,208,.4);font-size:13px}.g3d-tbtn.on.fire{background:rgba(208,48,48,.7)}.g3d-tbtn.on.swap{background:rgba(48,112,208,.7)}@media (max-height:480px){.g3d-title{font-size:clamp(1.6rem,11vh,3rem)}.g3d-menu .g3d-help{position:static}.g3d-btn{padding:8px 18px;font-size:1rem}.g3d-buttons{gap:8px}.g3d-stats{font-size:1rem;gap:2px 18px}}@media (max-height:520px) and (orientation:landscape){.g3d-menu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;grid-column-gap:clamp(16px,4vw,48px);column-gap:clamp(16px,4vw,48px);grid-row-gap:8px;row-gap:8px;align-content:center;align-items:center}.g3d-menu .g3d-title{grid-column:1;grid-row:2;font-size:clamp(1.5rem,9vh,2.4rem)}.g3d-menu .g3d-sub{grid-column:1;grid-row:3;font-size:.85rem}.g3d-menu .g3d-soundhint{grid-column:1;grid-row:4}.g3d-menu .g3d-menu-foot{grid-column:1;grid-row:4;justify-content:center;margin-top:0}.g3d-menu .g3d-soundhint+.g3d-menu-foot{grid-row:5;align-self:start}.g3d-menu .g3d-buttons{grid-column:2;grid-row:1/6;align-self:center;min-width:0;gap:8px;margin-right:56px}.g3d-menu .g3d-btn{padding:10px 16px;min-height:44px}}.g3d-keycap{display:inline-grid;place-items:center;min-width:1.5em;height:1.5em;margin-right:.7em;padding:0 .3em;border:1px solid;border-radius:4px;font-size:.8em;opacity:.7}.g3d-btn small{opacity:.7;font-weight:400}.g3d-btn:disabled{opacity:.45;cursor:not-allowed}.g3d-btn:disabled:hover{background:inherit}.g3d-btn.slim{padding:8px 18px;min-width:0}.g3d-menu-foot{display:flex;align-items:center;gap:18px;margin-top:4px}.g3d-link{color:var(--muted);font-size:.85rem;text-underline-offset:3px;text-shadow:0 1px 3px #000}.g3d-link:focus-visible,.g3d-link:hover{color:var(--fg)}.lang-switch{display:inline-flex;border:2px solid var(--edge);border-radius:8px;overflow:hidden;background:rgba(20,28,50,.8)}.lang-switch button{font:inherit;color:var(--muted);background:transparent;border:0;padding:6px 14px;cursor:pointer;font-weight:700}.lang-switch button.on{background:var(--accent);color:#2a1600}.lang-switch button:focus-visible,.lang-switch button:not(.on):hover{background:rgba(58,80,136,.9);color:#fff}.page-lang{position:absolute;top:14px;right:14px}.g3d-panel{width:min(560px,100%);padding:18px 20px;background:rgba(14,20,38,.86);border:2px solid var(--edge);border-radius:10px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);text-align:left}.g3d-settings{display:flex;flex-direction:column;gap:14px}.g3d-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.g3d-row.end{justify-content:flex-end;margin-top:4px}.g3d-row input[type=range]{flex:1 1;min-width:120px;accent-color:var(--accent)}.g3d-row output{min-width:3.2em;text-align:right;color:#b8c8e0}.g3d-row select{padding:6px 10px}.g3d-chip,.g3d-row select{font:inherit;color:var(--fg);background:#1c2640;border:2px solid var(--edge);border-radius:6px}.g3d-chip{padding:6px 14px;cursor:pointer}.g3d-chip.on{background:#2f6a3c;border-color:#58b070}.g3d-chip:focus-visible,.g3d-chip:hover{border-color:var(--accent)}.g3d-note{margin:0;color:#8a9bb8;font-size:.8rem;line-height:1.5}.g3d-scroll{justify-content:flex-start;overflow-y:auto;padding-top:64px;padding-bottom:32px}.g3d-doc h3{margin:16px 0 6px;color:var(--accent);font-size:1rem}.g3d-doc h3:first-child{margin-top:0}.g3d-doc li,.g3d-doc p{margin:4px 0;font-size:.9rem;line-height:1.55;color:#d4def0}.g3d-doc ul{margin:0;padding-left:1.2em}.g3d-doc.center{text-align:center}.g3d-keys{width:100%;border-collapse:collapse;font-size:.85rem}.g3d-keys td,.g3d-keys th{padding:5px 8px;border-bottom:1px solid #2b3a66;text-align:left}.g3d-keys th{color:var(--accent)}.g3d-weapons{list-style:none;margin:0;padding:0}.g3d-weapons li{display:flex;justify-content:space-between;border-bottom:1px solid #243251;padding:3px 0}.g3d-heroes{max-width:960px;gap:12px}.g3d-char{width:200px;min-height:0;padding:12px 10px;gap:6px;justify-content:flex-start}.g3d-char:not(:disabled):focus-visible,.g3d-char:not(:disabled):hover{border-color:var(--accent-hero,var(--accent))}.g3d-char.taken{opacity:.4;cursor:not-allowed}.g3d-figure{position:relative;width:48px;height:66px;display:block;margin:2px 0}.g3d-figure .head{position:absolute;left:12px;top:0;width:24px;height:22px;border-radius:5px;background:var(--skin);box-shadow:inset 0 8px 0 var(--hair)}.g3d-figure.covered .head{box-shadow:inset 0 0 0 5px var(--hair)}.g3d-figure .body{position:absolute;left:5px;top:24px;width:38px;height:40px;border-radius:5px;background:linear-gradient(var(--top) 68%,var(--bottom) 68%)}@media (max-height:480px),(max-width:700px){.g3d-char{width:calc(50% - 8px);min-width:140px}.g3d-char .g3d-card-blurb{display:block;font-size:.72rem}}@media (min-width:641px) and (max-width:900px){.g3d-pcard{width:172px}.g3d-pcard.right{right:100px}}.g3d-pause{pointer-events:auto;flex-direction:column;gap:14px}.g3d-pause-actions{display:flex;flex-direction:column;gap:10px;min-width:min(260px,80vw);margin-top:8px}.g3d-pause-hint{color:#9fb4d0;font-size:.85rem}.g3d-confirm{background:rgba(0,0,0,.72);z-index:7}.g3d-confirm-box{width:min(460px,calc(100vw - 32px));padding:22px;text-align:center;background:#141c32;border:2px solid #b8503a;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.6);text-shadow:none}.g3d-confirm-box h2{margin:0 0 10px;color:#ffb09a;font-size:1.3rem}.g3d-confirm-box p{margin:0 0 18px;color:#d4def0;line-height:1.5;font-size:.95rem}.g3d-confirm-actions{display:flex;flex-direction:column;gap:10px}.g3d-btn.danger{background:#8a2a22;border-color:#d0584a;color:#fff}.g3d-btn.danger:focus-visible,.g3d-btn.danger:hover{background:#a8352c}.g3d-ingame>.g3d-screen{background:rgba(5,6,14,.94)}.g3d-lobby,.g3d-online{gap:12px;width:min(620px,100%)}.g3d-field,.g3d-lobby,.g3d-online{display:flex;flex-direction:column}.g3d-field{gap:4px;font-size:.85rem;color:#b8c8e0}.g3d-field.inline{flex-direction:row;align-items:center;gap:10px}.g3d-field input{font:inherit;font-size:1rem;color:var(--fg);background:#101830;border:2px solid var(--edge);border-radius:6px;padding:8px 10px;min-width:0}.g3d-field input:focus-visible{border-color:var(--accent)}.g3d-field input[aria-invalid=true]{border-color:#d0584a}.g3d-code{width:5.5em;text-align:center;letter-spacing:.3em;font-weight:700;text-transform:uppercase}.g3d-join{gap:10px}.g3d-error,.g3d-note.bad{color:#ff9a8a}.g3d-error{margin:0;font-size:.9rem}.g3d-row.center{justify-content:center}.g3d-panel h3{margin:6px 0 0;color:var(--accent);font-size:1rem}.g3d-rooms{display:flex;flex-direction:column;gap:6px;border-top:1px solid #2b3a66;padding-top:10px}.g3d-rooms .g3d-row{margin:0}.g3d-roomrow{display:flex;align-items:center;gap:10px;padding:6px 8px;background:rgba(28,38,64,.7);border-radius:6px}.g3d-roomcode{font-weight:700;letter-spacing:.2em;color:var(--accent)}.g3d-roominfo{flex:1 1;font-size:.82rem;color:#b8c8e0;text-align:left;min-width:0;overflow-wrap:anywhere}.g3d-chip:disabled{opacity:.45;cursor:not-allowed}.g3d-codebox{display:flex;flex-direction:column;align-items:center;gap:4px;padding-bottom:8px;border-bottom:1px solid #2b3a66}.g3d-bigcode{font-size:2.6rem;letter-spacing:.35em;padding-left:.35em;color:var(--accent);text-shadow:0 3px 0 #3a1a00}.g3d-seats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.g3d-seats li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(28,38,64,.7);border-radius:6px;min-height:40px}.g3d-seats li.empty{justify-content:center;border:1px dashed var(--edge);background:transparent}.g3d-seatdot{width:12px;height:12px;border-radius:50%;flex:none}.g3d-seatname{flex:1 1;text-align:left;font-weight:700;overflow-wrap:anywhere}.g3d-seathero{color:#9fb4d0;font-size:.82rem}.g3d-seattag{font-size:.78rem;padding:2px 8px;border-radius:99px;background:#243251;color:#d4def0}.g3d-heropick{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));grid-gap:8px;gap:8px}.g3d-heroopt{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font:inherit;font-size:.72rem;color:var(--fg);background:rgba(28,38,64,.7);border:2px solid var(--edge);border-radius:8px;cursor:pointer}.g3d-heroopt:focus-visible,.g3d-heroopt:hover:not(:disabled){border-color:var(--accent-hero,var(--accent))}.g3d-heroopt.on{border-color:var(--accent-hero,var(--accent));background:rgba(58,80,136,.8)}.g3d-heroopt:disabled{opacity:.35;cursor:not-allowed}.g3d-figure.sm{width:28px;height:38px;margin:0}.g3d-figure.sm .head{left:7px;width:14px;height:13px;border-radius:3px;box-shadow:inset 0 5px 0 var(--hair)}.g3d-figure.sm.covered .head{box-shadow:inset 0 0 0 3px var(--hair)}.g3d-figure.sm .body{left:3px;top:14px;width:22px;height:23px;border-radius:3px}.g3d-conn{position:absolute;top:56px;left:50%;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:12px;padding:8px 16px;background:rgba(120,70,20,.92);border:2px solid #d08a3a;border-radius:8px;font-size:.9rem;text-shadow:none}.g3d-conn.dead{background:rgba(110,30,24,.95);border-color:#d0584a}.g3d-level{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:2px;animation:g3d-pop .35s ease-out}.g3d-level>span{font-size:.85rem;color:var(--accent);font-weight:700}.g3d-xp{width:130px;height:6px;background:rgba(0,0,0,.6);border:1px solid #8a9bb8;border-radius:3px;overflow:hidden}.g3d-xpfill{height:100%;background:var(--accent);transition:width .25s ease-out}.g3d-unlocks span.cur{color:var(--accent);border-bottom:2px solid var(--accent)}.g3d-upgrades{list-style:none;margin:0;padding:0;width:min(1000px,100%);text-align:left;column-count:3;column-gap:14px}.g3d-upgrades li{display:flex;gap:10px;page-break-inside:avoid;break-inside:avoid;padding:5px 8px;font-size:.82rem;border:1px solid #2b3a66;background:rgba(14,20,38,.82);color:#8a9bb8;margin-bottom:-1px}.g3d-upgrades .lv{min-width:2.2em;text-align:right;color:#b8c8e0;font-weight:700}.g3d-upgrades li.weapon .tx{color:#6fd08a;font-weight:700}.g3d-upgrades li.reached{color:var(--fg);background:rgba(40,60,110,.9)}.g3d-upgrades li.reached .lv{color:var(--accent)}@media (max-width:900px){.g3d-upgrades{column-count:2}}@media (max-width:560px){.g3d-upgrades{column-count:1}}.g3d-soundhint{margin:0;color:#b8c8e0;text-shadow:0 1px 3px #000}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.g3d-field input:focus-visible{outline-offset:0}.g3d-back,.g3d-btn.slim,.g3d-chip,.g3d-icon,.g3d-roomrow .g3d-chip,.lang-switch button{min-height:44px;min-width:44px}.g3d-icon{width:44px;height:44px}input::placeholder{color:var(--muted);opacity:1}.btn,.g3d-back,.g3d-bigcode,.g3d-btn,.g3d-chip,.g3d-code,.g3d-conn,.g3d-dead,.g3d-hud,.g3d-keycap,.g3d-keys,.g3d-roomcode,.g3d-stats,.g3d-title,.g3d-upgrades,.g3d-weapons,.lang-switch,h1,h2,h3{font-family:var(--font-mono)}.g3d-field input{font-family:var(--font-ui)}.g3d-code{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.board-page{max-width:760px;display:flex;flex-direction:column;gap:14px;align-items:stretch;padding-top:64px}.board-page h1{margin:0;text-align:center}.board-filters{display:flex;flex-direction:column;gap:10px;align-items:center}.board-filters .g3d-row{justify-content:center;gap:8px}.board{width:100%;min-height:120px}.board-table{width:100%;border-collapse:collapse;font-size:.95rem}.board-table td,.board-table th{padding:8px 10px;text-align:left;border-bottom:1px solid #2b3a66}.board-table th{color:var(--accent);font-family:var(--font-mono)}.board-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.board-table .rank{width:3em;color:var(--accent);font-weight:700;font-family:var(--font-mono)}.board-table .name{overflow-wrap:anywhere}.board-page .btn{align-self:center}.g3d-submit{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(520px,100%)}.g3d-submit h3{margin:0;color:var(--accent);font-size:1rem}.g3d-submitted{margin:0;font-weight:700;color:#6fd08a}@media (max-height:520px) and (orientation:landscape){.g3d-screen{gap:10px}.g3d-h2{font-size:1.4rem}.g3d-cards{flex-direction:row;flex-wrap:wrap;align-items:stretch}.g3d-heroes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;width:min(100%,720px)}.g3d-char{width:auto;min-width:0;flex-direction:row;gap:8px;padding:6px 10px;text-align:left;position:relative}.g3d-char .g3d-card-num{width:24px;height:24px;font-size:.8rem;flex:none}.g3d-char .g3d-figure{transform:scale(.6);margin:-13px -9px;flex:none}.g3d-char .g3d-card-name{font-size:.95rem;line-height:1.15}.g3d-char .g3d-card-blurb{display:none}.g3d-maps .g3d-cards{flex-wrap:nowrap;gap:10px;width:min(100%,760px)}.g3d-maps .g3d-card{flex:1 1;width:auto;min-width:0;flex-direction:column;text-align:center;padding:10px}.g3d-help{font-size:.72rem}}.g3d-hud,.g3d-touch{inset:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.g3d-mute-float{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}.g3d-back{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left))}