:root{color-scheme:dark;--bg: #0b1020;--bg-raised: #16213a;--line: #2a3a58;--ink: #f2f5ff;--ink-dim: #a8b3cf;--accent: #4f9dff;--accent-2: #ff7043;--ok: #5cd67a;--warn: #f2c14e;--bad: #e5544b;--radius: 14px;--tap: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);font-family:Inter,Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%;height:100dvh;margin:0;background:var(--bg);color:var(--ink);overscroll-behavior:none}body{-webkit-user-select:none;user-select:none;touch-action:manipulation}button,input,select{font:inherit;color:inherit}button{min-height:var(--tap);min-width:var(--tap);padding:0 20px;border-radius:var(--radius);border:1px solid #2b3a58;background:linear-gradient(180deg,#1d2b47,#16213a);cursor:pointer}button.primary{border-color:transparent;background:linear-gradient(180deg,#4f9dff,#2f6fe0);color:#04101f;font-weight:700}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:not-allowed}.screen{min-height:100%;padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));display:flex;flex-direction:column;gap:16px}.screen--center{align-items:center;justify-content:center;text-align:center}.card{background:var(--bg-raised);border:1px solid #24324c;border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row a{display:inline-flex;align-items:center;min-height:var(--tap);min-width:var(--tap);padding:0 12px;border-radius:var(--radius);border:1px solid #2b3a58;color:var(--accent);text-decoration:none}.grow{flex:1 1 auto}.muted{color:var(--ink-dim)}.field-error{margin:0;color:var(--bad);font-size:.85rem}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--bad)}h1{font-size:1.6rem;margin:0}h1:focus,h1:focus-visible{outline:none}h2{font-size:1.1rem;margin:0}input[type=text],select{min-height:48px;border-radius:10px;border:1px solid #2b3a58;background:#101a2e;padding:0 12px;width:100%}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid #202d47}.me{color:var(--accent);font-weight:700}.badge{font-size:.75rem;padding:2px 8px;border-radius:999px;background:#1f3152;color:var(--ink-dim)}.leaderboard__you{position:sticky;bottom:calc(8px + var(--safe-bottom));display:flex;gap:8px;align-items:baseline;justify-content:flex-end;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised)}.match{position:absolute;inset:0;background:var(--bg)}.match__canvas{position:absolute;inset:0}.match__hud{position:absolute;inset:0;pointer-events:none}.match__hud>*{pointer-events:none}.match__hud button,.match__hud a,.match__hud input,.match__hud select,.match__hud [role=button],.match__hud .match__player,.match__hud .match__power,.match__hud .match__actions,.match__hud .match__loadout,.match__hud .match__pad{pointer-events:auto}.match__weather-banner{position:absolute;left:50%;top:25%;transform:translate(-50%);padding:10px 16px;border-radius:12px;border:1px solid var(--accent);background:#101a2eeb;color:var(--ink);font-size:.95rem;pointer-events:auto;animation:weather-banner 1.5s ease-out}@keyframes weather-banner{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.match__top{position:absolute;left:0;right:0;top:0;height:44px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:0 calc(10px + var(--safe-right)) 0 calc(10px + var(--safe-left));background:linear-gradient(180deg,#0b1220e6,#0b122000);pointer-events:none}.match__top-left{display:flex;align-items:flex-start;justify-content:flex-start;min-width:0}.match__top-right{display:flex;align-items:center;justify-content:flex-end;gap:6px}.match__roster{display:flex;flex-direction:column;gap:1px;padding:5px 9px;border-radius:8px;background:#262c3a6b;color:var(--ink);font-size:.66rem;line-height:1.35;min-width:132px;min-height:44px;justify-content:center;pointer-events:auto;cursor:pointer}.match__player{position:relative;display:flex;align-items:baseline;gap:6px;padding:0;border:0;background:none;white-space:nowrap}.match__player-name{max-width:7ch;overflow:hidden;text-overflow:ellipsis;font-weight:600}.match__delay{font-variant-numeric:tabular-nums;opacity:.75;margin-left:auto}.match__chat-toast{position:absolute;top:calc(100% + 6px);left:0;max-width:220px;padding:4px 8px;border-radius:8px;background:#101a2ef2;border:1px solid var(--accent);color:var(--text);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:52}.match__chat-toast--emote{font-style:italic;border-color:#6b7a99}.match__player--active{color:#fff;font-weight:700}.match__player-hp{font-variant-numeric:tabular-nums;opacity:.9}.match__clock{font-variant-numeric:tabular-nums;font-size:1.4rem;padding:6px 14px;border-radius:999px;background:#101a2ee6;border:1px solid #24324c}.match__pad--on-mobile{right:auto;bottom:auto}.match__power.match__power--on-ring{transform:translate(-50%,-100%);bottom:auto;min-width:60px;padding:3px 8px}.match__angle{min-width:44px;padding:4px 8px;border-radius:var(--radius);border:1px solid #2b3a58;font-variant-numeric:tabular-nums;text-align:center}.match__hint{position:absolute;left:50%;bottom:calc(76px + var(--safe-bottom));transform:translate(-50%);max-width:70%;padding:5px 12px;border-radius:999px;background:#0b1220e6;border:1px solid var(--line);color:var(--ink-dim);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.match__power{position:absolute;left:calc(8px + var(--safe-left));bottom:calc(40px + var(--safe-bottom));display:flex;gap:8px;align-items:center;z-index:2}.match__power-value{font-size:1rem;font-variant-numeric:tabular-nums;min-width:52px;text-align:center;padding:3px 8px;border-radius:8px;background:#101a2ee6;border:1px solid #24324c}.match__bottom{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:center;gap:8px;padding:0 calc(8px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(8px + var(--safe-left));background:linear-gradient(180deg,#0b122099,#0b1220f5);border-top:1px solid rgba(120,160,220,.16)}.match__row{display:contents}.match__row{display:flex;align-items:center;min-width:0}.match__row--controls{gap:10px}.match__row--state{justify-content:flex-end;gap:10px;padding-top:4px;border-top:1px solid rgba(120,160,220,.1)}.match__stats{min-width:0;flex-shrink:1}.match__turnline{font-size:.66rem;line-height:1.15;color:var(--ink-dim);max-width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-tray{position:relative}.item-tray__toggle{min-width:60px;min-height:60px;border-radius:12px;background:#16213aeb}.item-tray__list{position:absolute;bottom:calc(100% + 8px);left:0;margin:0;padding:8px;list-style:none;width:232px;max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:6px;border-radius:12px;background:#101a2ef5;border:1px solid #24324c}.item-tray__list button{display:flex;gap:8px;align-items:center;justify-content:flex-start;width:100%;min-height:44px;font-size:.8rem}.match__chat{position:absolute;left:50%;bottom:calc(76px + var(--safe-bottom));transform:translate(-50%);display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:14px;background:#0b1220f5;border:1px solid var(--line);pointer-events:auto;z-index:4}.match__phrases{display:grid;grid-template-columns:repeat(6,minmax(52px,1fr));gap:4px}.match__phrases button{min-width:60px;min-height:60px;padding:4px 8px;font-size:.7rem;border-radius:10px;background:#16213aeb}.chat-bubble{position:absolute;left:50%;transform:translate(-50%);top:calc(96px + var(--safe-top));padding:6px 14px;border-radius:999px;background:#101a2ef2;border:1px solid #24324c;font-size:.85rem}.ruler{position:absolute;left:0;right:0;bottom:0;height:34px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 4px calc(4px + var(--safe-bottom));font-size:.65rem;color:var(--ink-dim);pointer-events:none;background:linear-gradient(180deg,#0b122000,#0b1220d9)}.match__aid>span{pointer-events:none}.match__aid{width:44px;height:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #2b3b58;background:#16213aeb;color:var(--ink-dim);font-size:.9rem;pointer-events:auto}.match__aid--on{border-color:var(--accent);color:var(--ink)}.ruler__tick{font-variant-numeric:tabular-nums;opacity:.7}.ruler__tick--major{opacity:1;color:var(--ink);font-weight:700;min-width:2.2em;text-align:center}.wind{display:flex;align-items:center;justify-content:center;padding:0;background:none;border:0}.wind__dial{width:64px;height:64px;overflow:visible}.wind__value{fill:#fff;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#060a14b3;font-size:1.1rem;text-align:center;padding:24px}.orientation-gate{min-height:100%;display:flex;flex-direction:column}.orientation-gate>div:first-child{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.overlay--screen{position:fixed;z-index:50}.overlay--rotate{flex-direction:column;gap:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.prompt{position:fixed;left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right));bottom:calc(12px + var(--safe-bottom));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-raised);box-shadow:0 8px 24px #00000059}.prompt p{margin:0}.shell{flex:1 1 auto;min-height:100%;display:flex;flex-direction:column}.shell__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(8px + var(--safe-top)) calc(12px + var(--safe-right)) 8px calc(12px + var(--safe-left));border-bottom:1px solid #1c2942;background:#101a2ed9}.shell__title{font-weight:700;letter-spacing:.02em}.shell__locale{min-width:60px;min-height:60px;padding:0;font-weight:700}.shell__body{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.shell--bare .shell__body{min-height:100%}.shell--bare{height:100%}.shell__body>.screen{flex:1 1 auto}.settings__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.settings__field{display:flex;flex-direction:column;gap:6px}.loadout__pages{display:flex;flex-direction:column;gap:10px}.loadout__page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:8px}.loadout__cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-width:60px;min-height:60px;padding:8px;text-align:left;border-radius:12px;background:#16213aeb}.loadout__cell--picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.loadout__cell-name{font-size:.8rem}.loadout__cell-meta{font-size:.7rem;color:var(--ink-dim)}.mobile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.mobile-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-height:56px;padding:8px;text-align:left;border-radius:12px;background:#16213aeb}.mobile-cell--picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.mobile__tints{display:flex;gap:4px}.mobile__tint{width:10px;height:10px;border-radius:50%}.mobile__tint--a{background:var(--accent)}.mobile__tint--b{background:var(--accent-2)}.mobile__name{font-size:.8rem}.mobile__stat{font-size:.7rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}.map-preview{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:var(--radius);background:#16213a99}.map-preview__name{font-weight:600}.map-preview__gimmicks{display:flex;flex-wrap:wrap;gap:6px}.banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 22px;border-radius:var(--radius);background:#101a2ef2;border:1px solid var(--accent);font-weight:600}.page-header{display:flex;align-items:center;gap:12px}.page-header a{color:var(--accent);text-decoration:none}.lobby__avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff1f;font-size:.75rem;font-variant-numeric:tabular-nums}@media(orientation:landscape)and (max-height:520px){.screen{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:8px;padding:calc(8px + var(--safe-top)) calc(8px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(8px + var(--safe-left))}.screen>header,.screen>h1,.screen>.row:first-of-type{grid-column:1 / -1}.card{padding:10px;gap:8px}.screen>header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px}.screen>header h1{font-size:1rem}.menu__tagline{display:none}.screen>header>.row{margin-left:auto}.screen>header>.row a,.screen>header>.row .badge{font-size:.78rem}h1{font-size:1.1rem}h2{font-size:.9rem}.muted{font-size:.78rem}.screen table,.screen ul{max-height:44vh;overflow-y:auto}}.match__wind{display:flex;align-items:center;justify-content:center}.weapon-strip{display:flex;gap:4px;align-items:center}.match__power-value{display:flex;flex-direction:column;align-items:center;line-height:1.05}.match__power-angle{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.match__power-number{font-size:.62rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}.match__zone{display:flex;align-items:center;gap:8px;min-width:0}.match__zone--move{padding-right:14px;border-right:1px solid rgba(120,160,220,.16)}.match__zone--shoot{justify-content:flex-start}.match__pad{display:flex;align-items:center;gap:8px;pointer-events:auto}.match__pad button,.weapon-strip__slot,.match__skip{position:relative;isolation:isolate;border:0;background:none;color:var(--ink)}.match__pad button:before,.weapon-strip__slot:before,.match__skip:before{content:"";position:absolute;z-index:-1;inset:50% 0 auto;height:var(--bar-chip, 28px);transform:translateY(-50%);border-radius:10px;border:1px solid var(--chip-border, #2b3b58);background:var(--chip-bg, rgba(22, 33, 58, .92))}.match__pad button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:1rem;border-radius:10px}.match__loadout{display:flex;align-items:center;gap:8px;min-width:0}.weapon-strip{display:flex;align-items:center;gap:6px}.weapon-strip__slot{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:10px;color:var(--ink-dim)}.weapon-strip__slot--active{--chip-bg: var(--accent);--chip-border: var(--accent);color:#08101f;font-weight:700}.weapon-strip__key{font-size:.8rem;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}.match__actions{display:flex;align-items:center;gap:6px}.match__skip{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:10px;color:var(--ink);font-size:1rem}.match__stats{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.match__tray{display:flex;align-items:center;gap:3px}.match__tray-cell{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:28px;min-width:41px;padding:0 4px;border-radius:8px;border:1px solid #24324c;background:#101a2ed9;color:var(--ink-dim);font-size:.68rem;font-variant-numeric:tabular-nums}.match__tray-cell:first-child{border-color:#3d5478;background:#1c2c48f2;color:var(--ink)}.match__tray-kind svg{display:block;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.match__tray-heading{opacity:.85;font-size:.95rem;line-height:1}.match__tray-value{font-weight:600}.match__teams{display:flex;align-items:center;gap:6px}.match__team{display:inline-flex;align-items:center;height:28px;padding:0 8px;border-radius:8px;border:1px solid #24324c;background:#101a2ed9;font-size:.72rem;font-variant-numeric:tabular-nums}.match__team--a{color:#7fb0ff}.match__team--b{color:#ffab8f}.match__gold{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border-radius:8px;border:1px solid #3a3423;background:#101a2ed9;color:#f0c65a;font-size:.72rem;font-variant-numeric:tabular-nums}.match__top .match__round,.match__top .match__clock,.match__top .match__aid,.match__top button,.match__top a{height:44px;min-height:44px;display:inline-flex;align-items:center}.match__top{height:48px}.match__wind{height:64px;align-self:center;overflow:visible}.match__top-right .match__clock{font-size:.9rem;font-weight:700;min-width:42px;text-align:right}.item-wheel{position:absolute;inset:0;z-index:6}.item-wheel__scrim{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#060a1247;cursor:default}.item-wheel__arc{position:absolute;inset:0;pointer-events:none}.item-wheel__slot{position:absolute;width:44px;height:44px;margin:0;padding:0;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid #2b3b58;background:#121c30f0;color:var(--ink);font-size:.7rem;font-weight:700;pointer-events:auto;box-shadow:0 2px 10px #00000073}.item-wheel__slot--empty{border-style:dashed;border-color:#24324c;background:#0e16268c}.item-wheel__slot--spent{opacity:.42}.item-wheel__glyph{letter-spacing:.02em}.item-wheel__qty{position:absolute;right:-2px;bottom:-2px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--accent);color:#08111f;font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center}
