@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/anton-latin-400-normal-Byf51wtH.woff2) format("woff2"),url(/assets/anton-latin-400-normal-AUNGEG_V.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/rajdhani-latin-500-normal-ByNUCHrt.woff2) format("woff2"),url(/assets/rajdhani-latin-500-normal-DfvNI-Td.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/rajdhani-latin-600-normal-CXCVEoA9.woff2) format("woff2"),url(/assets/rajdhani-latin-600-normal-Dx02qI2_.woff) format("woff")}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/rajdhani-latin-700-normal-BPDUZo87.woff2) format("woff2"),url(/assets/rajdhani-latin-700-normal-e0Uj8ZlN.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff) format("woff")}.active-games{width:100%;text-align:left}.open-seat-invite{grid-column:1 / -1;flex-wrap:wrap}.active-game{display:flex;flex-direction:column;gap:6px;width:100%;margin-bottom:10px;text-align:left}.active-game span{font-size:.9rem}:root{color-scheme:dark;font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none;font-size:15px;--bg: #0a1420;--panel: #0f1f2b;--panel-raised: #132a3a;--line: #223a4c;--line-bright: #3a5a70;--ink: #e6eef5;--muted: #94a3b8;--cyan: #00d4ff;--cyan-soft: #3baed4;--red: #ff1e3a;--red-dark: #b3122a;--green: #22c58b;--warn: #f2b531;--paper: var(--panel);--paper-raised: var(--panel-raised);--gold: var(--red);--gold-bright: #ff5a70;--dark: #05080c;--hero: "Anton", Impact, sans-serif;--display: "Rajdhani", "Segoe UI", sans-serif;--sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--glow-red: 0 0 24px #ff1e3a59}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;background-color:var(--bg);background-image:radial-gradient(circle at 70% -10%,#00d4ff17,transparent 42%),linear-gradient(180deg,var(--bg),var(--panel) 55%,var(--bg));background-attachment:fixed}::selection{background:var(--red);color:#fff}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:default}button:hover:not(:disabled){filter:brightness(1.12)}a:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}main{max-width:1180px;margin:auto;padding:0 max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom));min-height:100dvh}header{position:sticky;top:0;z-index:8;min-height:72px;padding-top:env(safe-area-inset-top);gap:12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0a1420d6;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}header:after{content:"";position:absolute;left:0;bottom:-2px;width:48px;height:3px;background:var(--red);box-shadow:var(--glow-red)}.wordmark{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none;color:inherit}.wordmark .brand-copy{display:grid;gap:4px}.brand-copy strong{width:max-content;font-family:var(--hero);font-size:30px;font-weight:400;line-height:1;letter-spacing:.1em;background-image:linear-gradient(90deg,transparent 0 55%,var(--red) 82%,var(--red-dark)),repeating-linear-gradient(117deg,#e3fbff 0 2px,#9fd9e8 2px 4px,#bdeef8 4px 10px),linear-gradient(#fff5,#0006);background-blend-mode:normal,normal,multiply;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#cdf3fb}.wordmark .brand-copy>span{display:block;font:400 10px/1.2 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--cyan-soft)}.brand-copy b{font-weight:500;letter-spacing:.22em;color:var(--red);margin-left:4px}.wordmark .brand-tile{flex:none;width:40px;height:46px;background:none}.brand-tile polygon{fill:#101010;stroke:var(--cyan-soft);stroke-width:2}.brand-tile .insect-art{transform:scale(1.18)}.connection{display:flex;align-items:center;gap:6px;font:500 11px/1.2 var(--mono);letter-spacing:.08em;color:var(--warn)}.connected{color:var(--green)}.connection-dot{width:6px;height:6px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px #f2b53126;flex-shrink:0}.connected .connection-dot{background:var(--green);box-shadow:0 0 0 3px #22c58b26}.connection-idle{margin:0 12px;color:var(--muted);font-size:11px}.header-actions{display:flex;align-items:center;gap:7px}.header-actions button.leave{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin:0;padding:7px 16px;font-size:13px}.header-actions button.leave svg{width:19px;height:19px;flex-shrink:0}.welcome{padding:clamp(42px,8vh,84px) 0;max-width:470px;margin:auto}.eyebrow{display:flex;align-items:center;gap:10px;font:400 10px/1.4 var(--mono);letter-spacing:.26em;color:var(--cyan-soft)}.eyebrow:before{content:"";flex:none;width:24px;height:3px;background:var(--red);box-shadow:var(--glow-red)}h1{width:fit-content;max-width:100%;font-family:var(--hero);font-size:clamp(34px,9.5vw,54px);font-weight:400;line-height:1.02;letter-spacing:.01em;text-transform:uppercase;margin:18px 0 22px;background-image:linear-gradient(90deg,transparent 0 55%,var(--red) 88%,var(--red-dark)),repeating-linear-gradient(117deg,#e3fbff 0 2px,#9fd9e8 2px 4px,#bdeef8 4px 10px),linear-gradient(#fff5,#0006);background-blend-mode:normal,normal,multiply;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#cdf3fb}h2{font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:0}p{line-height:1.6}.welcome>p:not(.eyebrow),.welcome-intro>p{max-width:390px;color:var(--muted);font-size:16px}.welcome-intro{padding:16px 20px;background:linear-gradient(135deg,#00d4ff12,#0f1f2bb3 60%);border:1px solid var(--line);border-radius:6px}.welcome-intro>p{margin:0}.welcome-intro>.welcome-facts{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.entry-actions{display:grid;gap:12px;margin-top:18px}.entry-actions .active-games>h2{margin-top:0}.entry-actions button{text-align:left;display:flex;justify-content:space-between}.welcome form{background:var(--panel);padding:clamp(20px,5vw,30px);border:1px solid var(--line);border-top:3px solid var(--red);border-radius:6px;margin-top:26px;box-shadow:0 22px 60px #0005}input:not([type=checkbox]),select{display:block;width:100%;padding:13px;border:1px solid var(--line-bright);border-radius:2px;background:var(--bg);color:var(--ink);margin:8px 0 16px;font-size:16px}input:not([type=checkbox]):hover,select:hover{border-color:var(--cyan-soft)}input:not([type=checkbox]):focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-color:var(--cyan)}input::placeholder{color:#6b7f93}input.code-input{font-family:var(--mono);font-size:24px;font-weight:700;letter-spacing:.2em}label{display:block;margin:12px 0}input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:10px;accent-color:var(--red)}fieldset{border:1px solid var(--line);border-radius:4px;padding:16px;margin:20px 0}legend{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan-soft);padding:0 8px}small,.muted{color:var(--muted);font-size:12px}footer{text-align:center;font:400 10px/1.6 var(--mono);letter-spacing:.08em;color:var(--muted);padding:24px 12px}.lobby{padding:28px 0 42px;max-width:520px;margin:auto}.room-code{display:inline-block;margin:10px 0 22px;font-family:var(--hero);font-size:clamp(42px,13vw,64px);font-weight:400;letter-spacing:.16em;font-variant-numeric:tabular-nums;color:var(--cyan);text-shadow:0 0 28px #00d4ff40}.row{display:flex;gap:8px;align-items:center;justify-content:space-between}.row button{flex:1;min-width:0}.wrap{flex-wrap:wrap}.players>div{display:flex;align-items:center;gap:12px;padding:17px 4px;border-bottom:1px solid var(--line)}.players>div>span:last-child{margin-left:auto;font-size:12px;flex-shrink:0}.colour-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:25px;border-radius:0;border:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);flex-shrink:0}.colour-dot svg{width:65%;height:65%;fill:currentColor}.colour-0{background:#fff;color:#111}.colour-1{background:#101010;color:#fff}.colour-neutral{background:#b9bec2;color:#444}.opponent{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot copy view" "dot meta view";column-gap:10px;align-items:center;padding:0 0 0 12px;font-size:13px;border-bottom:1px solid var(--line)}.opponent>.colour-dot{grid-area:dot}.opponent>.player-copy{grid-area:copy;padding-top:10px}.opponent>.player-meta{grid-area:meta;padding-bottom:10px}.opponent>button.inline-view{grid-area:view;align-self:stretch;margin:0;padding:0 14px;border:0;border-left:1px solid var(--line);border-radius:0;font-size:12px}.opponent>button.inline-view:focus-visible{outline-offset:-3px}.player-copy{display:grid;gap:1px;line-height:1.15;min-width:0}.player-copy strong{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:.02em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-copy small{color:var(--cyan-soft);font:500 9px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.player-meta{min-width:0;margin-top:2px;font-size:11px;line-height:1.35;color:var(--muted)}.presence-online{color:var(--green);font-weight:700}.match-header{position:relative;z-index:2;margin:10px 0 0;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.match-result-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;background:#22c58b1f;border-bottom:2px solid var(--green)}.match-result-banner strong{font-family:var(--display);font-size:clamp(22px,4vw,30px);font-weight:700;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}.match-result-banner p{margin:5px 0 0;font-size:12px;color:var(--muted)}.match-result-banner button{flex-shrink:0}.result-announcement{margin:18px 0;padding:26px 16px;border:1px solid var(--line);border-radius:6px;background:var(--panel);text-align:center}.result-announcement.victory{background:radial-gradient(ellipse at top,#00d4ff26,var(--panel) 70%);border-color:var(--cyan-soft)}.result-announcement h2{margin:12px 0;font-family:var(--hero);font-size:clamp(32px,7vw,48px);font-weight:400;line-height:1.1;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:anywhere}.result-emblem{width:64px;height:64px;fill:none;stroke:var(--cyan);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.match-announcement{display:flex;align-items:center;gap:12px;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--panel-raised)}.opponent-reserve{padding-bottom:12px}.opponent-reserve ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:10px 6px;margin:12px 0 2px;padding:0;list-style:none}.opponent-reserve li{display:grid;justify-items:center;gap:4px;font-size:10px}.opponent-reserve li.depleted{opacity:.45}.opponent-reserve-icon{width:30px;height:34px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.match-announcement>div{display:grid;gap:3px}.match-announcement span{font-size:13px}.turn{display:grid;gap:2px;border-radius:0;padding:10px 12px 10px 36px;background:var(--panel);font-weight:400;position:relative}.turn:before{content:"";position:absolute;left:13px;top:50%;width:10px;height:12px;transform:translateY(-50%);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--line-bright)}.turn.yours{background:linear-gradient(90deg,#ff1e3a26,var(--panel) 80%)}.turn.yours:before{background:var(--red);box-shadow:0 0 0 5px #ff1e3a30}.turn-kicker{color:var(--cyan-soft);font:500 9px/1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase}.turn strong{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:.02em;line-height:1.2;overflow-wrap:anywhere}.turn small{display:block;font-weight:400;font-size:11px;margin-top:2px}.queen-alert{margin:0;padding:7px 12px;border-left:3px solid var(--red);border-radius:0 4px 4px 0;background:#ff1e3a1f;font-size:11px;font-weight:600;color:#ffb3bc}.board-wrap{position:relative;margin:0;border:1px solid var(--line-bright);border-radius:6px;background:radial-gradient(circle at 50% 42%,#132a3a 0,#0a1420 78%);overflow:hidden;box-shadow:inset 0 0 60px #00000040}.board{display:block;width:100%;height:clamp(260px,39dvh,460px);touch-action:none;-webkit-user-select:none;user-select:none}.board-caption{position:absolute;left:16px;top:14px;color:var(--cyan-soft);font:500 9px/1.2 var(--mono);letter-spacing:.22em;pointer-events:none}.board-wrap.your-turn{border-color:var(--red);box-shadow:0 0 0 1px #ff1e3a99,0 0 24px 2px #ff1e3a44,inset 0 0 24px #ff1e3a1a}.your-turn .board-caption{top:0;left:0;margin:0;color:#fff;background:var(--red-dark);border:0;border-radius:0 0 4px;padding:4px 8px}.board-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:90%;color:var(--muted)}.board-empty>span{display:block;font-size:64px;color:var(--line-bright);line-height:1}.board-empty p{font-size:12px}.tile{cursor:pointer;color:#0a1420}.tile.dark{color:#e6eef5}.tile polygon{fill:#fff;stroke:#a6a6a6;stroke-width:1.5;filter:drop-shadow(0 3px 2px #00000066)}.tile.dark polygon{fill:#101010;stroke:#6f8ba0}.tile.neutral>polygon{fill:#b9bec2;stroke:#71787e}.tile.empty>polygon{fill:#00d4ff1f;stroke:var(--cyan-soft);stroke-width:2;filter:none}.destination{fill:var(--cyan)}.climb-ring{fill:none;stroke:var(--cyan);stroke-width:3;stroke-dasharray:4 3}.tile.legal polygon,.tile.legal.light polygon,.tile.legal.dark>polygon,.tile.neutral.legal>polygon{stroke:var(--cyan);stroke-width:3;stroke-dasharray:5 3}.tile.liftable>polygon,.tile.liftable.dark>polygon{stroke:var(--cyan);stroke-width:3;stroke-dasharray:2 3}.tile.selected polygon,.tile.selected>polygon,.tile.neutral.selected>polygon{stroke:var(--red);stroke-width:4;stroke-dasharray:none;filter:drop-shadow(0 0 6px #ff1e3a99)}.tile.lifted>polygon{stroke:var(--red);stroke-width:4;stroke-dasharray:none}.lift-mark{fill:none;stroke:var(--red);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.tile.dark .lift-mark{stroke:#ff6b7d}.insect-art{image-rendering:auto}.tile.dark .insect-art,.colour-1 .insect-art{filter:invert(1)}.tile[role=button]:focus,.tile[role=button]:focus-visible{outline:none}.tile[role=button]:focus>polygon{stroke:var(--cyan);stroke-width:4;stroke-dasharray:none}.stack-preview{--preview-face: #fff}.stack-preview.dark{--preview-face: #101010}.stack-preview>polygon{fill:var(--preview-face);stroke:var(--cyan-soft);stroke-width:3;stroke-dasharray:none}.stack-preview.light .insect-art{filter:none}.stack-preview.dark .insect-art{filter:invert(1)}.move-highlight polygon,.move-highlight .move-trail{fill:none;stroke:var(--warn);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.move-highlight .move-origin{stroke-dasharray:5 4}button{--tile-shape: polygon( 14px 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 14px 100%, 0 50% );--tile-edge: #ff4d63;--tile-face: linear-gradient(145deg, #e01a35, #8f0f22);position:relative;isolation:isolate;background:transparent;border:0;border-radius:0;min-height:48px;padding:13px 23px;color:#fff;cursor:pointer;font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.1em;line-height:1.25;text-transform:uppercase}button:before,button:after{content:"";position:absolute;pointer-events:none;clip-path:var(--tile-shape)}button:before{inset:0;z-index:-2;background:var(--tile-edge)}button:after{inset:1.5px 1.5px 3px;z-index:-1;background:var(--tile-face)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:none;--tile-edge: var(--cyan)}button:focus-visible:after{inset:3px}button.secondary,button.text-button,.zoom button,button.fit{--tile-edge: var(--line-bright);--tile-face: linear-gradient(145deg, #16324a, #0f1f2b);background:transparent;border:0;color:var(--ink)}button.text-button{--tile-edge: var(--line);--tile-face: var(--panel);padding:10px 19px}button.secondary:hover:not(:disabled),button.text-button:hover:not(:disabled),.zoom button:hover:not(:disabled),button.fit:hover:not(:disabled){--tile-edge: var(--cyan-soft)}button.danger{--tile-edge: var(--red-dark);--tile-face: linear-gradient(145deg, #4a0f19, #2a0a10);display:block;margin-top:20px}button.leave{margin-top:10px;font-size:13px}.entry-actions button{padding:18px 28px;min-height:62px;font-size:18px}.entry-actions .local-play-link{justify-self:center;min-height:44px;padding:8px 4px;color:var(--muted);font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;text-decoration:underline;text-underline-offset:3px}.entry-actions .local-play-link:before,.entry-actions .local-play-link:after{display:none}.entry-actions .local-play-link:hover:not(:disabled){color:var(--cyan)}.entry-actions .local-play-link:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.entry-form form>button[type=submit],.entry-form form>button:not([type]),.lobby>button{width:100%}.entry-form form>.text-button{margin-top:10px}.zoom button{min-width:46px;min-height:46px;padding:10px 16px;font-size:18px}.notice button{min-width:44px;min-height:44px;padding:8px 16px}.fit{position:absolute;left:12px;bottom:10px;min-height:38px;padding:8px 12px;font-size:12px}.zoom{position:absolute;right:12px;bottom:10px;display:flex;gap:5px}button.inline-view{display:inline-block;min-height:0;padding:2px 5px;border:1px solid var(--line-bright);border-radius:4px;background:var(--panel-raised);color:var(--cyan);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;line-height:1.3;vertical-align:baseline;white-space:nowrap}button.inline-view[aria-pressed=true]{background:#f2b53126;border-color:var(--warn);color:#ffd989}button.inline-view:before,button.inline-view:after{content:none}button.inline-view:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}nav{display:flex;gap:6px;padding-bottom:10px}nav button{flex:1;padding:9px;font-size:13px}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#f2b5311f;border:1px solid #f2b53166;border-radius:4px;color:#f7d98a;padding:10px;font-size:13px;margin:10px 0;overflow-wrap:anywhere}.notice button{margin-left:auto}.game{display:grid;gap:10px;padding-bottom:5px}@media(min-width:650px){.board-wrap{border-radius:6px;margin:0}.game{max-width:720px;margin:auto}.welcome{padding-top:60px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,opacity .15s}.tile polygon{transition:stroke .15s,fill .15s}}@media(max-width:360px){main{padding-left:10px;padding-right:10px}.connection{max-width:112px;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.opponent{font-size:12px}.header-actions{gap:3px}.header-actions button.leave{padding-inline:13px}}.reserve{display:grid;gap:0;width:100%;max-width:350px;margin-inline:auto;padding:6px 0 12px;overflow:visible;container-type:inline-size}button.reserve-tile{--tile-shape: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);--tile-edge: #a6a6a6;--tile-face: #fff;width:calc(100% - 3px);min-width:0;min-height:0;height:auto;aspect-ratio:.866;clip-path:var(--tile-shape);padding:0;display:flex;align-items:center;justify-content:center;background:none;color:#111;border:0;border-radius:0}button.reserve-tile.colour-1{--tile-edge: #6f8ba0;--tile-face: #101010;color:#fff}.reserve-tile.reserve-second-row{margin-top:-26%}.reserve-tile svg{display:block;width:64%;height:auto;aspect-ratio:1;margin:-16% 0 0;transform:translateY(-5px);overflow:visible}.reserve-tile span{position:absolute;top:59%;left:0;right:0;font-family:var(--sans);font-size:clamp(10px,3.2cqw,12px);font-weight:600;line-height:1;letter-spacing:-.03em;text-align:center;text-transform:none;white-space:nowrap}.reserve-tile.unavailable{opacity:1}.reserve-tile.unavailable .insect-art{opacity:.65}.reserve-tile.unavailable span{opacity:1}button.reserve-tile.available,button.reserve-tile.colour-1.available{--tile-edge: var(--cyan-soft)}button.reserve-tile.active,button.reserve-tile:focus,button.reserve-tile:focus-visible{--tile-edge: var(--red);outline:none}button.reserve-tile.active:after,button.reserve-tile:focus:after{inset:3px 3px 5px}button.reserve-tile:disabled{opacity:.35}.reserve-count{position:absolute;left:0;right:0;top:79%;text-align:center;font-family:var(--mono);font-size:9px;line-height:1;font-weight:700;letter-spacing:0;opacity:.8}.player-dock{margin:0;padding:11px 12px 4px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.dock-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:7px;padding:0 2px 3px;color:var(--muted);font-size:10px}.dock-heading>div{display:flex;align-items:center;gap:8px}.dock-heading .colour-dot{width:15px;height:17px}.dock-heading strong{color:var(--ink);font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:.04em}.dock-heading>p{flex-basis:100%;margin:0;font-size:12px}.dock-heading>span{font-size:11px}.match-header{margin-top:10px}.game .board{height:clamp(260px,39dvh,460px)}.game-tools{display:flex;flex-direction:column;gap:10px;min-width:0}.inspection{display:flex;flex-direction:column;justify-content:center;margin:0;padding:0 2px;min-height:42px;border:0;border-radius:4px;color:var(--muted);box-shadow:none}.inspection.has-selection{padding:10px 12px;background:var(--panel);border:1px solid var(--line-bright);border-top:3px solid var(--red);color:var(--ink)}.inspection p{font-size:12px;margin:4px 0}.inspection small{display:block}.inspection .row{gap:10px}.inspection .row .text-button{flex:0 0 auto;min-width:max-content;white-space:nowrap;padding:10px 15px;font-size:13px;min-height:44px}.selection-title{display:flex;align-items:center;gap:9px;min-width:0}.selection-title strong{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.04em}.selection-title small{font-size:11px;margin-top:3px}.selection-icon{flex:0 0 34px;width:34px;height:40px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.inspection .action-hint{font-weight:600;color:var(--cyan);margin:7px 0;font-size:13px}.piece-details{order:2;border-top:1px solid var(--line);margin-top:8px}.piece-details summary{cursor:pointer;padding:12px 0;font-size:12px;color:var(--muted)}.piece-details summary:hover{color:var(--cyan)}.piece-details summary:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.piece-details p{padding-bottom:8px;line-height:1.6}.idle-hint strong{display:block;font-size:13px;color:var(--ink)}.inspection:empty{display:none}.player-dock>.idle-hint{border-top:1px solid var(--line);padding:10px 2px}.idle-hint p{color:var(--muted);font-size:12px;margin:3px 0 0}.inspection .wrap button{flex-basis:120px;font-size:13px}.last-action{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;min-height:0;padding:0 0 0 12px;background:var(--panel);border:1px solid var(--line);border-radius:4px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.last-action span{padding-block:10px;color:var(--cyan-soft);font:500 9px/1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase}.last-action strong{padding-block:10px;color:var(--ink);font-weight:500}.last-action>button.inline-view{align-self:stretch;margin:0;padding:0 14px;border:0;border-left:1px solid var(--line);border-radius:0 3px 3px 0;font-size:12px}.last-action>button.inline-view:focus-visible{outline-offset:-3px}.game-tools nav{padding:0}.game-tools nav button{font-size:13px;padding-inline:12px;min-width:0}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:20;padding:13px 20px;background:var(--panel-raised);border:1px solid var(--line-bright);border-top:3px solid var(--red);color:var(--ink);border-radius:4px;box-shadow:0 8px 30px #0006;white-space:nowrap;font-size:13px}.welcome-facts{display:flex;flex-wrap:wrap;gap:8px 16px;font:400 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.welcome-facts span+span:before{content:"·";margin-right:16px;color:var(--red)}.welcome.entry-form{padding-top:22px}.welcome:not(.entry-form){padding-top:28px}.entry-form>.eyebrow,.entry-form>h1,.entry-form>.welcome-intro,.entry-form>p{display:none}.entry-form form{margin-top:0}.entry-form form>h2{margin-top:0;font-size:30px}.players{padding:0 14px;background:var(--panel);border:1px solid var(--line);border-radius:6px}.players>div:last-child{border:0}.players strong{min-width:0;overflow-wrap:anywhere}.player-ready{margin:-8px -10px -8px auto;flex-shrink:0;min-height:36px;padding:6px 10px;font-size:13px}.sheet{position:fixed;inset:max(12px,env(safe-area-inset-top)) 0 auto;width:min(calc(100% - 24px),580px);max-width:100%;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));margin:0 auto;padding:0;border:1px solid var(--line-bright);border-top:3px solid var(--red);border-radius:6px;background:var(--panel);color:var(--ink);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-bright) var(--bg);scrollbar-gutter:stable;box-shadow:0 24px 64px #0008}.sheet::-webkit-scrollbar{width:8px}.sheet::-webkit-scrollbar-track{background:var(--bg);border-radius:8px;margin-block:20px}.sheet::-webkit-scrollbar-thumb{background:var(--line-bright);border:2px solid var(--bg);border-radius:8px}.sheet::-webkit-scrollbar-thumb:hover{background:var(--cyan-soft)}.sheet::backdrop{background:#050a10cc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sheet-content{padding:0 24px max(24px,env(safe-area-inset-bottom));background:var(--panel)}.sheet-heading{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--panel);padding:14px 0;border-bottom:1px solid var(--line)}.sheet-heading button{min-height:44px;font-size:13px;padding:10px 18px}.sheet h2{font-size:28px;margin-top:22px}.sheet p{font-size:14px;line-height:1.65}.guide-piece{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);padding:10px 0}.guide-piece svg{width:52px;height:60px;flex-shrink:0;background:#fff;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.guide-piece p{margin:0;font-size:13px}.guide-piece strong{display:block;font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.04em;margin-bottom:3px}.move-history{padding-left:30px}.move-history li{padding:12px 0 12px 8px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}.move-history li::marker{color:var(--cyan);font-family:var(--mono);font-variant-numeric:tabular-nums}.table-reference{padding:12px;background:var(--panel-raised);border:1px solid var(--line);border-radius:4px}.playing>footer{padding:18px 4px 0}@media(max-width:849px){.player-dock{padding-block:8px 3px}.player-dock .dock-heading{margin-bottom:4px;gap:4px}.player-dock .reserve{width:80%;max-width:280px;padding-block:4px 8px}.game .board{height:calc(clamp(260px,39dvh,460px) + 40px)}}@media(min-width:850px){.playing .game{max-width:none;grid-template-columns:minmax(0,1fr) minmax(272px,304px);grid-template-rows:auto auto 1fr;column-gap:24px;align-items:start}.game .match-header{grid-column:1;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;border:0;border-radius:0;background:transparent;overflow:visible}.game .match-header>.opponent,.game .match-header>.turn{border:1px solid var(--line);border-radius:6px;overflow:hidden}.game .match-header>.opponent{background:var(--panel)}.game .opponent{grid-column:1;grid-row:1}.game .match-header:has(.match-result-banner) .opponent,.game .match-header:has(.match-result-banner) .turn{grid-row:2}.game .match-result-banner{grid-column:1 / -1;grid-row:1;border:1px solid var(--line);border-radius:6px}.game .turn{grid-column:2;grid-row:1;border-left:1px solid var(--line)}.game .queen-alert{grid-column:1;grid-row:2}.game>.last-action{grid-column:1;grid-row:3}.game .board-wrap{grid-column:1;grid-row:4}.game .board{height:clamp(420px,69dvh,760px)}.game-tools{grid-column:2;grid-row:1 / span 4;padding-top:10px;position:sticky;top:calc(82px + env(safe-area-inset-top))}.game-tools .reserve{max-width:none}.game-tools .inspection{order:0}.game-tools .player-dock{order:1}.game-tools nav{order:3}.game-tools .notice{order:4}}@media(max-width:560px){.header-actions .connection-idle{display:none}.header-actions button.leave{width:44px;padding:10px}.header-actions button.leave>span{display:none}}@media(max-width:380px){.wordmark .brand-tile{display:none}.brand-copy strong{font-size:26px}.header-actions .connection{font-size:11px;max-width:none}}@media(prefers-reduced-motion:no-preference){.sheet[open]{animation:sheet-arrive .18s ease-out}@keyframes sheet-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}}.army-editor{display:grid;gap:.45rem;min-width:0}.army-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.army-editor .army-options label{margin:0;font-size:.8rem}.army-editor .army-options select{margin:.2rem 0 0;padding:.5rem;min-height:44px}.army-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem .5rem;font-size:.8rem}.army-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.35rem}.army-editor .quantity{display:grid;grid-template-columns:40px minmax(0,1fr) 5.5rem;align-items:center;gap:0 .2rem;padding:.2rem;border:1px solid var(--line);border-radius:4px;background:var(--panel-raised);text-align:left}.army-tile-art{width:40px;height:46px;color:#111;filter:drop-shadow(0 3px 2px #0006)}.army-tile-art>polygon{fill:#fff;stroke:#c5c5bf;stroke-width:1.5}.not-included .army-tile-art{opacity:.4}.army-editor .quantity .fixed-quantity{grid-column:3;justify-content:center;min-height:2rem;display:flex;align-items:center;font-weight:700}.army-editor .army-piece-name{margin:0;font-size:.75rem;line-height:1.15}.army-editor .army-piece-name small{font-size:.6rem;font-weight:400}.quantity>.quantity-clicker{grid-column:3;justify-content:center;display:flex;align-items:center;flex-shrink:0}.quantity-clicker output{min-width:1.5rem;text-align:center;font-family:var(--mono);font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.army-editor .quantity-clicker button{width:2rem;min-width:2rem;height:2rem;min-height:2rem;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);box-shadow:none;font-family:var(--sans);font-size:1.1rem;letter-spacing:0;line-height:1}.army-editor .quantity-clicker button:hover:not(:disabled){background:var(--line)}.army-editor .quantity-clicker button:disabled{opacity:.25}.army-editor .quantity-clicker button:before,.army-editor .quantity-clicker button:after{content:none}.army-editor small{display:block}.army-help{font-size:.8rem}.army-help summary{cursor:pointer;padding:.35rem 0}.local-save-status{padding:.35rem 1rem;font-size:.8rem;text-align:center;overflow-wrap:anywhere}.theme-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-top:20px;text-align:center}.theme-preview-pair{display:flex;justify-content:center;gap:4px;margin-top:6px}.theme-preview-pair svg{width:54px;background:transparent}.theme-preview-pair polygon{fill:#fff;stroke:#a6a6a6}.theme-preview-pair .colour-1 polygon{fill:#101010;stroke:#6f8ba0}.sync-settings{margin-top:24px;padding-top:8px;border-top:1px solid var(--line)}.sync-settings h2{font-size:22px;margin-top:16px}.sync-link{display:grid;gap:10px}.sync-link input{margin:0;font-family:var(--mono);font-size:12px;letter-spacing:0}
