:root{--bg-0: #080d0b;--bg-1: #0d1513;--bg-2: #132019;--bg-3: #1b2b23;--bg-4: #243a2f;--panel: rgba(12, 20, 17, .94);--glass: rgba(9, 15, 13, .64);--glass-strong: rgba(9, 15, 13, .9);--line: rgba(217, 182, 119, .14);--line-2: rgba(217, 182, 119, .3);--line-3: rgba(217, 182, 119, .55);--glass-edge: rgba(217, 182, 119, .3);--brass: #d9b677;--brass-hi: #f0d59c;--brass-lo: #9c7c45;--brass-ink: #12190f;--text: #eee6d2;--text-2: #b8c2b2;--text-3: #7e8a80;--ember: #e2683a;--ember-hi: #f38a58;--ember-lo: #a4421c;--ok: #8fbf7a;--ok-lo: #3f6a33;--danger: #e2614f;--teal: #7fb3a8;--night: var(--bg-0);--paper: var(--text);--ink: var(--text);--ink-2: var(--text-2);--ink-3: var(--text-3);--rust: var(--ember);--rust-hi: var(--ember-hi);--rust-lo: var(--ember-lo);--sage: var(--ok);--paper-3: var(--line-2);--paper-edge: var(--line-2);--radius: 10px;--radius-sm: 6px;--radius-lg: 18px;--shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 18px 48px rgba(0, 0, 0, .5);--font-ui: "Segoe UI Variable Text", "Segoe UI", -apple-system, BlinkMacSystemFont, "SF Pro Text", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Segoe UI Variable Display", "Segoe UI", -apple-system, BlinkMacSystemFont, "SF Pro Display", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "Cascadia Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--gutter: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--touch: 44px;--type-xs: 11px;--type-sm: 13px;--type-md: 15px;--type-lg: 18px;--ease: cubic-bezier(.2, .8, .2, 1);--safe-t: max(10px, env(safe-area-inset-top));--safe-r: max(10px, env(safe-area-inset-right));--safe-b: max(10px, env(safe-area-inset-bottom));--safe-l: max(10px, env(safe-area-inset-left));--corners: linear-gradient(var(--brass), var(--brass)) top left / 12px 1px no-repeat, linear-gradient(var(--brass), var(--brass)) top left / 1px 12px no-repeat, linear-gradient(var(--brass), var(--brass)) top right / 12px 1px no-repeat, linear-gradient(var(--brass), var(--brass)) top right / 1px 12px no-repeat, linear-gradient(var(--brass), var(--brass)) bottom left / 12px 1px no-repeat, linear-gradient(var(--brass), var(--brass)) bottom left / 1px 12px no-repeat, linear-gradient(var(--brass), var(--brass)) bottom right / 12px 1px no-repeat, linear-gradient(var(--brass), var(--brass)) bottom right / 1px 12px no-repeat;color-scheme:dark;font-family:var(--font-ui);color:var(--text);background:var(--bg-0);font-synthesis:none;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}html,body,#game{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg-0);overscroll-behavior:none}#game{height:100dvh;-webkit-text-size-adjust:100%;text-size-adjust:100%;font-variant-numeric:tabular-nums}#game{touch-action:none}.screens,.card-body,.match-info,.ws-drawer-scroll,.ws-popup,.ws-parts,.ws-slot-list,.ws-panel{touch-action:pan-x pan-y}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--brass-hi);outline-offset:3px}::selection{background:transparent}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hit-feedback{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 42%,rgba(155,25,8,.52) 100%);box-shadow:inset 0 0 28px 3px #ff4c189e;will-change:opacity}*{scrollbar-width:thin;scrollbar-color:var(--brass-lo) transparent}.paper{color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--corners),linear-gradient(180deg,rgba(255,255,255,.025),transparent 120px),var(--panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.eyebrow{display:flex;align-items:center;gap:8px;font:600 10px/1.2 var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}.eyebrow:before{content:"";width:14px;height:1px;background:currentColor;flex:0 0 auto}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:var(--radius-sm);font:600 13px/1 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--text);border:1px solid var(--line-2);background:linear-gradient(180deg,#ffffff0b,#ffffff03);transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .08s,box-shadow .18s var(--ease)}.btn:hover:not(:disabled){border-color:var(--line-3);background:var(--bg-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4}.btn-primary{color:var(--brass-ink);border-color:var(--brass-hi);text-shadow:0 1px 0 rgba(255,240,200,.35);background:linear-gradient(180deg,#eed39a,var(--brass) 55%,#c69f5c);box-shadow:inset 0 1px #fff8e199,0 6px 22px #d9b67729}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#f5dfae,#e0c084 55%,#cfa964);border-color:#fff0c8;box-shadow:inset 0 1px #fff8e1b3,0 8px 28px #d9b67747}.btn-quiet{border-color:transparent;background:transparent;color:var(--text-2)}.btn-quiet:hover:not(:disabled){color:var(--text);background:#ffffff0a;border-color:var(--line)}.btn-danger{color:var(--danger);border-color:#e2614f73;background:#e2614f0d}.btn-danger:hover:not(:disabled){background:#e2614f24;border-color:var(--danger)}.btn-badge{font:600 9px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;padding:4px 6px;border-radius:3px;color:var(--brass);border:1px solid var(--line-2);background:transparent;text-shadow:none}.menu-list{display:grid;gap:6px}.menu-item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;width:100%;min-height:58px;padding:0 18px 0 16px;text-align:left;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff08,#ffffff01);transition:background .2s var(--ease),border-color .2s var(--ease),transform .08s}.menu-item:before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--brass);transform:scaleY(0);transition:transform .2s var(--ease)}.menu-item:hover:not(:disabled),.menu-item:focus-visible{border-color:var(--line-2);background:linear-gradient(90deg,#d9b6771a,#d9b67705)}.menu-item:hover:not(:disabled):before,.menu-item:focus-visible:before{transform:scaleY(1)}.menu-item:active:not(:disabled){transform:translateY(1px)}.menu-item:disabled{opacity:.45}.mi-index{font:600 11px/1 var(--font-mono);letter-spacing:.08em;color:var(--text-3);width:20px}.mi-text{display:grid;gap:4px;min-width:0}.mi-label{font:600 17px/1.1 var(--font-display);letter-spacing:.01em}.mi-hint{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mi-chevron{width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);color:var(--text-3);transition:transform .2s var(--ease),color .2s}.menu-item:hover:not(:disabled) .mi-chevron{transform:translate(3px) rotate(45deg);color:var(--brass)}.menu-item-primary{color:var(--brass-ink);border-color:var(--brass-hi);background:linear-gradient(180deg,#eed39a,var(--brass) 60%,#c69f5c);box-shadow:inset 0 1px #fff8e199,0 8px 26px #d9b67733}.menu-item-primary:hover:not(:disabled),.menu-item-primary:focus-visible{background:linear-gradient(180deg,#f6e1b2,#e3c387 60%,#cfa964);border-color:#fff0c8}.menu-item-primary:before{display:none}.menu-item-primary .mi-index,.menu-item-primary .mi-hint,.menu-item-primary .mi-chevron,.menu-item-primary:hover .mi-chevron{color:#12190f9e}.menu-item-danger .mi-label{color:var(--danger)}.menu-item-danger:before{background:var(--danger)}.menu-item .btn-badge{justify-self:end}.field{display:grid;gap:8px;margin:0 0 16px;min-width:0}.field-label{font:600 10px/1.2 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3)}.field-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.field-value,output{font:600 12px/1 var(--font-mono);color:var(--brass-hi)}.field-hint{display:block;font-size:12px;line-height:1.5;color:var(--text-3);margin:0}.field-hint.center,.center{text-align:center}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--radius-sm);background:var(--bg-0);border:1px solid var(--line)}.seg{position:relative;flex:1 1 auto;min-height:38px;padding:6px 12px;border:0;border-radius:4px;background:transparent;color:var(--text-2);font-weight:600;font-size:13px;transition:background .18s var(--ease),color .18s}.seg:hover:not(:disabled):not([aria-checked=true]){color:var(--text);background:#ffffff08}.seg[aria-checked=true]{color:var(--brass-hi);background:var(--bg-3);box-shadow:inset 0 0 0 1px var(--line-2),inset 0 -2px 0 var(--brass)}.seg:disabled{opacity:.35}.select,.text-input{width:100%;min-height:42px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg-0);color:var(--text);font-size:14px;transition:border-color .18s,box-shadow .18s}.select{appearance:none;padding-right:36px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23d9b677' stroke-width='1.5'/%3E%3C/svg%3E") right 14px center / 10px 6px no-repeat,var(--bg-0)}.select option{background:var(--bg-1);color:var(--text)}.select:hover:not(:disabled),.text-input:hover{border-color:var(--line-3)}.select:focus,.text-input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px #d9b67729}.select:disabled{opacity:.4}textarea.text-input{resize:vertical;font:12px/1.5 var(--font-mono);min-height:90px}.range{--fill: 50%;width:100%;height:28px;margin:0;cursor:pointer;touch-action:pan-y;background:transparent;appearance:none;-webkit-appearance:none;accent-color:var(--brass)}.range::-webkit-slider-runnable-track{height:4px;border-radius:99px;background:linear-gradient(90deg,var(--brass) var(--fill),rgba(217,182,119,.18) var(--fill))}.range::-moz-range-track{height:4px;border-radius:99px;background:#d9b6772e}.range::-moz-range-progress{height:4px;border-radius:99px;background:var(--brass)}.range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fbe6b8,var(--brass) 70%);border:3px solid var(--bg-1);box-shadow:0 0 0 1px var(--brass-hi),0 2px 6px #00000080}.range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--brass);border:3px solid var(--bg-1);box-shadow:0 0 0 1px var(--brass-hi)}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--brass-hi),0 0 0 5px #d9b67740}.range:disabled{opacity:.35;cursor:default}.switch-field{position:relative;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;cursor:pointer;padding:10px 0;margin:0;border-bottom:1px solid var(--line)}.switch-input{position:absolute;opacity:0;right:0;top:50%;transform:translateY(-50%);width:42px;height:24px;margin:0;z-index:1;cursor:pointer}.switch{order:2;position:relative;width:42px;height:24px;border-radius:99px;background:var(--bg-0);border:1px solid var(--line-2);transition:background .2s var(--ease),border-color .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text-3);transition:transform .2s var(--ease),background .2s}.switch-input:checked+.switch{background:#d9b67738;border-color:var(--brass)}.switch-input:checked+.switch:after{transform:translate(18px);background:var(--brass-hi);box-shadow:0 0 10px #f0d59c80}.switch-input:focus-visible+.switch{outline:2px solid var(--brass-hi);outline-offset:3px}.switch-text{display:grid;gap:3px}.switch-text .field-label{text-transform:none;letter-spacing:0;font:600 14px/1.2 var(--font-ui);color:var(--text)}.notice{margin:0 0 14px;padding:10px 14px;border-radius:4px;border-left:2px solid var(--brass);background:#d9b6770f;color:var(--text-2);font-size:13px;line-height:1.5}.notice.error{border-left-color:var(--danger);background:#e2614f14;color:#f2b4a8}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}kbd{display:inline-block;min-width:22px;padding:2px 6px;margin-right:3px;border-radius:3px;font:600 10px/1.5 var(--font-mono);text-align:center;color:var(--text-2);background:var(--bg-2);border:1px solid var(--line-2);border-bottom-width:2px}.canvas-host{position:absolute;inset:0}.canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.canvas-host:focus-visible{outline:none}.world-label{position:absolute;top:0;left:0;pointer-events:none;white-space:nowrap;font:600 10px/1 var(--font-mono);letter-spacing:.14em;color:var(--text);background:#090f0dc7;border:1px solid var(--line-3);border-radius:3px;padding:5px 8px;box-shadow:0 4px 14px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.world-label.enemy{color:#ffcfb6;border-color:#e2683abf}.world-label.damaged:after{content:"";position:absolute;left:0;bottom:-4px;width:var(--hull);height:3px;background:#d8ae66}.world-label.critical{color:#ff9b70;border-color:#d75c38}.world-label.critical:after{background:#f06e41}.world-label.wreck{color:#a9a39c;border-color:#625b53;background:#171512d9}.screens{position:absolute;inset:0;z-index:10;display:grid;place-items:center;overflow:auto;padding:max(var(--gutter),env(safe-area-inset-top)) max(var(--gutter),env(safe-area-inset-right)) max(var(--gutter),env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left));background:radial-gradient(80% 60% at 50% -10%,rgba(217,182,119,.16),transparent 62%),radial-gradient(60% 50% at 85% 110%,rgba(127,179,168,.1),transparent 70%),radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.55)),repeating-linear-gradient(0deg,transparent 0 47px,rgba(148,178,167,.045) 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,rgba(148,178,167,.045) 47px 48px),linear-gradient(180deg,#0c1512,var(--bg-0))}.screens.over-match{background:radial-gradient(120% 90% at 50% 40%,#05090859,#050908c7);backdrop-filter:blur(6px) saturate(.8);-webkit-backdrop-filter:blur(6px) saturate(.8)}.screen-card{width:min(600px,100%);max-height:calc(100dvh - 2 * var(--gutter));display:flex;flex-direction:column;overflow:hidden;animation:card-in .32s var(--ease)}.screen-card.card-wide{width:min(960px,100%)}.screen-card.card-narrow{width:min(420px,100%)}.card-head{position:relative;padding:24px 28px 18px}.card-head:after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:1px;background:linear-gradient(90deg,var(--brass) 0 48px,var(--line) 48px)}.card-title{margin:10px 0 0;font:600 30px/1.1 var(--font-display);letter-spacing:-.015em;color:var(--text)}.card-subtitle{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--text-2)}.card-body{padding:20px 28px;overflow:auto;overscroll-behavior:contain;min-height:0}.card-actions{display:flex;justify-content:space-between;gap:10px;padding:16px 28px 22px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(0,0,0,.12),transparent)}.card-actions .btn{min-width:132px}.card-actions:has(>.btn:nth-child(3)){flex-wrap:wrap}.card-actions:has(>.btn:nth-child(3)) .btn{min-width:0;flex:1 1 0}.card-actions:has(>.btn:nth-child(3)) .btn[data-primary]{flex:1 1 100%;order:-1}.card-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}.card-columns.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card-columns .card-section+.card-section{margin-top:0}.stack{display:grid;align-content:start}.card-section{margin:0 0 14px}.section-title{display:flex;align-items:center;gap:12px;margin:0 0 14px;font:600 11px/1.2 var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}.section-title:after{content:"";flex:1 1 auto;height:1px;background:var(--line)}.card-section p{font-size:14px;line-height:1.6;color:var(--text-2);margin:0 0 10px}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 20px;border-bottom:1px solid var(--line)}.tab{position:relative;padding:12px 14px;border:0;background:transparent;color:var(--text-3);font:600 12px/1 var(--font-ui);letter-spacing:.14em;text-transform:uppercase;display:inline-flex;gap:6px;align-items:baseline;transition:color .18s}.tab:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--brass);transform:scaleX(0);transition:transform .22s var(--ease)}.tab:hover,.tab[aria-selected=true]{color:var(--text)}.tab[aria-selected=true]:after{transform:scaleX(1)}.tab-note{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;margin:0 0 16px;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--line)}.stat{margin:0;padding:12px 14px;background:var(--bg-1)}.stat dt{font:600 9px/1.2 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3)}.stat dd{margin:8px 0 0;font:600 22px/1 var(--font-display);color:var(--text);white-space:nowrap}.menu-stack{display:grid;gap:6px;margin-bottom:14px}.screens.screen-title{place-items:stretch;padding:0}.title-screen{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"hero ." "menu build";gap:28px 48px;width:100%;min-height:100%;padding:clamp(28px,6vh,72px) clamp(24px,6vw,96px)}.title-hero{grid-area:hero;display:grid;grid-template-columns:100px minmax(0,330px);grid-template-areas:"emblem wordmark" ". name" ". tagline";gap:10px 18px}.title-emblem{grid-area:emblem;align-self:center;width:100px;height:100px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.title-head{display:contents}.wordmark{grid-area:wordmark;margin:0;line-height:1;min-width:0}.wordmark img{display:block;width:330px;max-width:100%;height:auto}.title-name{grid-area:name;margin:-3px 0 0;color:#d8cdb4;font:800 14px/1.3 var(--font-display);letter-spacing:.15em;text-transform:uppercase;text-align:center;text-shadow:0 1px #6d7163,0 2px 2px #060b08}.tagline{margin:0;font-size:14px;line-height:1.5;letter-spacing:.045em;color:var(--text-2);max-width:34ch}.title-head .tagline{grid-area:tagline;width:100%;max-width:none;text-align:center;font-size:12px;letter-spacing:.08em}.title-menu{grid-area:menu;align-self:start;display:grid;gap:6px;width:100%;max-width:460px}.title-menu a.menu-item{text-decoration:none}#title-donate .mi-label{color:var(--brass-hi)}.title-build{grid-area:build;justify-self:end;align-self:end;display:grid;gap:10px;width:min(360px,100%);padding:18px 20px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--corners),var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.title-build-name{font:600 20px/1.15 var(--font-display);color:var(--text)}.title-build-kit{font-size:13px;line-height:1.5;color:var(--text-2)}.title-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding-top:10px;border-top:1px solid var(--line);font:500 11px/1.3 var(--font-mono);letter-spacing:.04em;color:var(--text-3)}.lamp{width:7px;height:7px;border-radius:50%;background:#4f4a3a;box-shadow:0 0 0 2px #d9b6771f}.lamp.lit{background:var(--ok);box-shadow:0 0 0 2px #8fbf7a33,0 0 10px #8fbf7acc}.title-record{margin-left:auto}.title-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:var(--text-2);font:12px/1.5 var(--font-ui)}.title-footer a{color:var(--brass-hi);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.title-footer a:hover{color:var(--text);text-decoration:underline}.title-footer a:focus-visible{outline:2px solid var(--brass-hi);outline-offset:4px;border-radius:4px}.seed-row{display:flex;gap:6px}.brain-hint{margin:-8px 0 16px}.seed-row .btn{min-width:48px;padding:0 14px}.build-line{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:6px 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;color:var(--text-2);background:#ffffff04}.meter{display:block;height:4px;border-radius:99px;background:#d9b67724;overflow:hidden}.meter>span{display:block;height:100%;background:linear-gradient(90deg,var(--brass-lo),var(--brass));border-radius:inherit}.settings-body{min-height:200px}.settings-tabs{flex-shrink:0}.settings-protected{margin:0 0 22px;padding:10px 12px;border-left:2px solid var(--brass);background:#aa965f0f;color:var(--text-2);font-size:12px;line-height:1.6}.preset-hint,.profile-explainer{color:var(--text-2);font-size:13px;line-height:1.6}.binding-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.binding-keys{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:5px}.binding-key{min-width:42px;padding:8px 10px;font:12px var(--font-mono)}.binding-key.is-listening{color:var(--brass);outline:2px solid var(--brass)}.binding-fixed{color:var(--text-2);font-size:11px;padding:0 5px}.binding-list{margin-bottom:18px}.binding-status{min-height:3em;line-height:1.6}#set-tier .seg{padding-inline:9px}@media(max-width:600px){.settings-tabs .tab{padding-inline:6px;font-size:11px;letter-spacing:.06em}.binding-row>.field-label{font-size:12px}}.settings-body>.field-hint{margin:-6px 0 16px}.profile-json{margin:6px 0}.world-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.world{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);background:#ffffff04;border:1px solid var(--line);color:var(--text-2)}.world-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:600 11px/1 var(--font-mono);border:1px solid var(--line-2);color:var(--brass)}.world-name{font:600 16px/1.2 var(--font-display);color:var(--text)}table.keys{width:100%;border-collapse:collapse;font-size:13px;color:var(--text-2)}table.keys td{padding:6px 0;vertical-align:top;border-bottom:1px solid var(--line)}table.keys td:first-child{white-space:nowrap;padding-right:12px}#help table.keys th{text-align:left}#help table.keys td:first-child{width:36%;white-space:normal}.help-keycaps{display:flex;flex-wrap:wrap;gap:3px}.help-keycaps kbd{margin:0;white-space:nowrap}.results-medal{position:relative;display:grid;place-items:center;width:84px;height:84px;margin:4px auto 18px;border-radius:50%;font-size:30px;color:var(--brass-hi);border:1px solid var(--brass);background:radial-gradient(circle,rgba(217,182,119,.16),transparent 70%);box-shadow:0 0 0 6px #d9b6770f,0 0 0 7px var(--line-2),0 0 40px #d9b67738}.outcome-loss .results-medal,.outcome-forfeit .results-medal{color:var(--text-2);border-color:var(--line-3);background:none;box-shadow:0 0 0 6px #ffffff05,0 0 0 7px var(--line)}.results-card .card-head,.pause-card .card-head{text-align:center}.results-card .card-head:after,.pause-card .card-head:after{left:28px;right:28px;background:linear-gradient(90deg,var(--line),var(--brass) 50%,var(--line))}.results-card .eyebrow,.pause-card .eyebrow{justify-content:center}.results-card .eyebrow:after,.pause-card .eyebrow:after{content:"";width:14px;height:1px;background:currentColor}.sheet-handle{display:none}details.collapsible>summary{list-style:none;cursor:pointer;min-height:40px;margin-bottom:10px}details.collapsible>summary::-webkit-details-marker{display:none}details.collapsible>summary:after{content:"";flex:1 1 auto;height:1px;background:var(--line)}details.collapsible>summary:before{content:"";order:3;width:6px;height:6px;border-right:1.5px solid var(--text-3);border-bottom:1.5px solid var(--text-3);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s var(--ease)}details.collapsible:not([open])>summary:before{transform:rotate(-45deg)}details.collapsible>summary:hover{color:var(--brass-hi)}@keyframes sheet-in{0%{transform:translateY(32px);opacity:0}to{transform:none;opacity:1}}@keyframes card-in{0%{transform:scale(.985);opacity:0}to{transform:none;opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:600px){.screens:not(.screen-title):not(.screen-workshop){place-items:end stretch;padding:var(--safe-t) 0 0;overflow:hidden}.screens .screen-card{width:100%;max-height:calc(100dvh - var(--safe-t) - 8px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;animation:sheet-in .3s var(--ease);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:linear-gradient(90deg,var(--brass),var(--brass)) top center / 48px 1px no-repeat,linear-gradient(180deg,rgba(255,255,255,.03),transparent 120px),var(--panel)}.screens .screen-card.is-dragging{animation:none;transition:none}.screens .screen-card:not(.is-dragging){transition:transform .2s var(--ease)}.sheet-handle{display:grid;place-items:center;flex:0 0 auto;width:100%;height:24px;margin:0;padding:0;border:0;background:transparent;touch-action:none}.sheet-handle:before{content:"";width:36px;height:4px;border-radius:99px;background:var(--line-3)}div.sheet-handle{height:12px}div.sheet-handle:before{display:none}.card-head{padding:6px 20px 16px;touch-action:none}.card-head:after{left:20px;right:20px}.card-body{padding:16px 20px}.card-actions{padding:12px 20px max(14px,env(safe-area-inset-bottom))}.card-actions .btn{min-width:0;flex:1 1 0}.card-actions .btn[data-primary]{flex:2 1 0;min-height:52px}.results-card .card-actions{flex-direction:column}.results-card .card-actions .btn{flex:auto;white-space:normal}.results-card .card-actions .btn[data-primary]{flex:auto;order:-1}.card-title{font-size:26px}.screens.over-match{background:linear-gradient(180deg,transparent 0 22%,rgba(5,9,8,.72));-webkit-backdrop-filter:none;backdrop-filter:none}.title-screen{display:flex;flex-direction:column;gap:18px;padding:calc(var(--safe-t) + 18px) 18px calc(var(--safe-b) + 10px)}.title-hero{grid-template-columns:64px minmax(0,1fr);gap:8px 16px}.title-emblem{width:64px;height:64px}.title-name{font-size:10px;letter-spacing:.14em}.tagline{font-size:12px;letter-spacing:.02em}.title-footer{width:100%;gap:4px 12px}.title-build{order:3;margin-top:auto;width:100%;justify-self:stretch;padding:14px 16px}.title-menu{order:4;max-width:none}.menu-item{min-height:54px}.text-input,.select{font-size:16px;min-height:44px}.seg{min-height:44px}}.loading{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:var(--gutter);background:radial-gradient(70% 55% at 50% 45%,rgba(217,182,119,.1),transparent 70%),var(--bg-0)}.loading-inner{width:min(440px,100%);padding:30px 28px 26px;text-align:center}.loading-inner .eyebrow{justify-content:center}.loading-inner .eyebrow:after{content:"";width:14px;height:1px;background:currentColor}.loading-inner h2{margin:12px 0 10px;font:600 24px/1.2 var(--font-display);color:var(--text)}.loading-inner p{margin:0;font:500 12px/1.6 var(--font-mono);color:var(--text-3);overflow-wrap:anywhere}.loading-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.orbit{position:relative;width:52px;height:52px;margin:0 auto 18px;border-radius:50%;border:1px solid var(--line-2);animation:spin 1.8s linear infinite}.orbit:before{content:"";position:absolute;inset:9px;border-radius:50%;border:1px dashed var(--line)}.orbit span{position:absolute;top:-4px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--brass-hi);box-shadow:0 0 10px var(--brass)}.loading.error .orbit{animation:none;border-color:var(--danger)}.loading.error .orbit span{background:var(--danger);box-shadow:0 0 10px var(--danger)}.loading.error .eyebrow{color:var(--danger)}.toast{position:absolute;z-index:30;left:50%;top:calc(var(--safe-t) + 56px);max-width:min(460px,calc(100vw - 2 * var(--gutter)));transform:translate(-50%,-6px);opacity:0;pointer-events:none;padding:10px 16px;border-radius:var(--radius-sm);font-size:var(--type-sm);line-height:1.45;text-align:center;color:var(--text);background:var(--glass-strong);border:1px solid var(--line-2);box-shadow:0 10px 30px #0006;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .25s var(--ease),transform .25s var(--ease)}.toast.visible{opacity:1;transform:translate(-50%)}#game:not([data-screen=match]) .toast{top:auto;bottom:calc(var(--safe-b) + 12px)}.game-shell{position:absolute;inset:0;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}.game-shell button,.game-shell input,.game-shell label,.game-shell .paper,.game-shell .match-info{pointer-events:auto}.game-shell kbd{margin:0 0 0 6px;padding:1px 5px;min-width:0;font-size:9px;line-height:1.4;letter-spacing:.06em;color:var(--text-3);background:#ffffff0a;border:1px solid var(--line-2)}#game[data-input=touch] .game-shell kbd{display:none}.hud-top{position:absolute;top:var(--safe-t);left:var(--safe-l);right:var(--safe-r);display:flex;align-items:center;gap:var(--space-2)}.hud-chip,.hud-round{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch);padding:0 14px;border-radius:99px;border:1px solid var(--glass-edge);background:var(--glass);color:var(--text);font:600 var(--type-sm)/1 var(--font-ui);box-shadow:0 6px 18px #0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;touch-action:manipulation;transition:background .18s var(--ease),border-color .18s var(--ease)}.hud-round{justify-content:center;width:var(--touch);padding:0;font-size:17px;position:relative}button.hud-chip:hover:not(:disabled),.hud-round:hover:not(:disabled){border-color:var(--line-3)}button.hud-chip:active:not(:disabled),.hud-round:active:not(:disabled){transform:translateY(1px);background:var(--glass-strong);border-color:var(--brass-hi)}.hud-chip:disabled,.hud-round:disabled{opacity:.4}.hud-round[aria-expanded=true],.hud-chip[aria-expanded=true]{border-color:var(--brass-hi);color:var(--brass-hi)}.glyph-menu{width:15px;height:1.5px;border-radius:1px;background:currentColor;box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}.roster{flex:0 0 auto;gap:12px}.roster-pip{display:grid;grid-template-columns:8px auto;grid-template-rows:auto 3px;column-gap:6px;row-gap:4px;align-items:center}.roster-swatch{width:8px;height:8px;border-radius:2px;box-shadow:0 0 0 1px #0006}.roster-pip .roster-hp{font:600 12px/1 var(--font-mono);color:var(--text)}.roster-bar{grid-column:1 / 3;height:3px;border-radius:99px;background:#ffffff1f;overflow:hidden}.roster-pip .roster-bar{width:38px}.roster-fill{display:block;height:100%;background:var(--ok);transition:width .25s var(--ease)}.roster-pip:not(.ally):not(.self) .roster-fill,.roster-row:not(.ally):not(.self) .roster-fill{background:var(--ember-hi)}.roster-pip.active .roster-swatch{outline:1.5px solid var(--brass-hi);outline-offset:2px}.roster-pip.destroyed,.roster-row.destroyed{opacity:.4}.roster-pip.stale .roster-hp,.roster-row.stale .roster-hp{color:var(--text-3)}.phase-chip{margin-inline:auto;min-width:0;flex:0 1 auto;gap:10px}.banner-turn{font:600 10px/1 var(--font-mono);letter-spacing:.1em;color:var(--text-3)}.banner-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--brass-hi);overflow:hidden;text-overflow:ellipsis}.phase-chip.own-turn{border-color:#f38a58b3;box-shadow:0 0 0 1px #e2683a40,0 0 22px #e2683a2e,0 6px 18px #0000004d}.phase-chip.own-turn .banner-tag{color:#ffd7c0}.aim-timer,.move-left{font:600 12px/1 var(--font-mono);color:var(--text)}.aim-timer.urgent{padding:4px 7px;border-radius:99px;color:#fff;background:var(--danger)}.phase-meter{display:block;width:52px;height:3px;border-radius:99px;background:#ffffff24;overflow:hidden}.phase-meter>span{display:block;height:100%;background:linear-gradient(90deg,var(--ember-lo),var(--ember-hi))}.wind-chip .meta-icon{color:var(--brass)}.match-info{position:absolute;top:calc(var(--safe-t) + var(--touch) + 8px);left:var(--safe-l);width:min(360px,calc(100% - var(--safe-l) - var(--safe-r)));max-height:calc(100dvh - var(--safe-t) - var(--safe-b) - 70px);overflow:auto;overscroll-behavior:contain;padding:16px 18px;border-radius:var(--radius);border:1px solid var(--line-2);background:var(--corners),var(--glass-strong);color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 44px #00000080;animation:card-in .22s var(--ease)}.info-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.info-title{margin:8px 0 0;font:600 20px/1.2 var(--font-display)}.info-detail{margin:6px 0 14px;font-size:var(--type-sm);line-height:1.5;color:var(--text-2)}.info-roster{display:grid;gap:10px;padding:12px 0;margin-bottom:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.roster-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;grid-template-rows:auto 3px;column-gap:10px;row-gap:6px;align-items:center;font-size:var(--type-sm)}.roster-row .roster-swatch{width:10px;height:10px}.roster-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-row .roster-hp{font:600 12px/1 var(--font-mono)}.roster-row .roster-bar{grid-column:2 / 4;height:3px}.roster-row.active .roster-name:before{content:"▸ ";color:var(--ember-hi)}.roster-row.destroyed .roster-name{text-decoration:line-through}.info-facts{margin:0 0 8px;display:grid;gap:8px;font-size:var(--type-sm)}.info-facts div{display:flex;justify-content:space-between;gap:12px}.info-facts dt{font:600 10px/1.4 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}.info-facts dd{margin:0;font-weight:600;text-align:right}.hud-bottom{position:absolute;left:var(--safe-l);right:var(--safe-r);bottom:var(--safe-b);display:flex;align-items:flex-end;gap:12px;pointer-events:none}.hud-dock{margin-left:auto;display:grid;justify-items:end;gap:8px;pointer-events:none}.dock-face{display:grid;gap:8px;align-items:center;pointer-events:none}.dock-face>*{pointer-events:auto}.ammo-cycle{grid-area:ammo;justify-self:stretch;justify-content:center}.ammo-cycle .ammo-name{font-family:var(--font-mono);letter-spacing:.16em}.ammo-cycle .ammo-count{font:600 12px/1 var(--font-mono);color:var(--text-3)}.aim-readout{grid-area:read;display:flex;gap:12px;justify-content:center;font:600 11px/1 var(--font-mono);letter-spacing:.06em;color:var(--text-3)}.aim-readout span{white-space:nowrap}.aim-readout b{color:var(--text);font-weight:600}#fine-aim-toggle{grid-area:tog;font-size:13px}#camera{grid-area:cam}.target-cycle{grid-area:target;display:flex;flex-direction:column;justify-content:center;gap:1px}.target-caption{font:600 8px/1 var(--font-ui);text-transform:uppercase;letter-spacing:.02em}.scan-btn{grid-area:scan}.scan-btn .charge{position:absolute;bottom:-7px;padding:1px 5px;border-radius:99px;font:600 9px/1.3 var(--font-mono);color:var(--text-2);background:var(--bg-0);border:1px solid var(--line-2)}.power-field{grid-area:power;display:grid;gap:4px;touch-action:none}.power-range{touch-action:none}.fire-btn{grid-area:fire;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,196,160,.7);color:#fff4ea;font:700 15px/1 var(--font-ui);letter-spacing:.22em;text-transform:uppercase;text-shadow:0 1px 2px rgba(80,20,4,.5);background:radial-gradient(circle at 50% 30%,var(--ember-hi),var(--ember) 58%,var(--ember-lo));box-shadow:inset 0 1px #ffdcbe8c,0 0 0 4px #e2683a29,0 10px 26px #00000073;touch-action:manipulation;transition:filter .15s,transform .08s,box-shadow .2s var(--ease)}.fire-btn:hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 1px #ffdcbe8c,0 0 0 5px #e2683a3d,0 10px 30px #00000073}.fire-btn:active:not(:disabled){transform:translateY(1px) scale(.98);filter:brightness(1.1)}.fire-btn:disabled{filter:grayscale(.85) brightness(.7);opacity:.6;box-shadow:0 8px 20px #00000059}.hold-btn{border-color:#c8ebb499;background:radial-gradient(circle at 50% 30%,#a8d494,var(--ok) 58%,var(--ok-lo));box-shadow:inset 0 1px #e6ffd280,0 0 0 4px #8fbf7a29,0 10px 26px #00000073;text-shadow:0 1px 2px rgba(20,50,10,.5)}.fine-aim{width:min(320px,calc(100vw - var(--safe-l) - var(--safe-r)));padding:14px 16px;animation:card-in .2s var(--ease)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font:600 10px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}.panel-head>:first-child{color:var(--brass)}.munitions{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:12px}.ammo-chip{display:grid;gap:4px;justify-items:center;align-content:center;min-height:var(--touch);padding:4px 2px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-0);color:var(--text-2);transition:border-color .18s,background .18s}.ammo-chip:hover:not(:disabled){border-color:var(--line-3)}.ammo-chip[aria-checked=true]{border-color:var(--brass);color:var(--brass-hi);background:var(--bg-3);box-shadow:inset 0 -2px 0 var(--brass)}.ammo-chip:disabled{opacity:.35}.ammo-name{font:600 11px/1 var(--font-mono);letter-spacing:.12em}.ammo-chip .ammo-count{font:600 10px/1 var(--font-mono);color:var(--text-3)}.aim-field{display:grid;gap:2px;margin:0 0 6px}#game:not([data-input=touch]) .dock-face{width:312px;padding:14px 16px;grid-template-columns:auto auto auto 1fr auto;grid-template-areas:"ammo ammo read read tog" "power power power power power" "cam scan target fire fire";pointer-events:auto;color:var(--text);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--corners),var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}#game:not([data-input=touch]) .dock-face .hud-chip,#game:not([data-input=touch]) .dock-face .hud-round{min-height:40px;background:var(--bg-0);border-color:var(--line-2);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#game:not([data-input=touch]) .dock-face .hud-round{width:40px}#game:not([data-input=touch]) .ammo-cycle{justify-self:start}#game:not([data-input=touch]) .scan-btn{width:auto;padding:0 12px;gap:6px}#game:not([data-input=touch]) .scan-btn .charge{position:static;border:0;background:transparent;font-size:11px}#game:not([data-input=touch]) .fire-btn{min-height:46px;border-radius:var(--radius-sm);box-shadow:inset 0 1px #ffdcbe8c,0 6px 18px #e2683a33}#game:not([data-input=touch]) .hud-dock[data-primary=none] .dock-face{width:auto;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#game:not([data-input=touch]) .hud-dock[data-primary=none] .dock-face .hud-round{width:var(--touch);min-height:var(--touch);background:var(--glass)}#game{--pad: clamp(96px, 26vmin, 124px);--pad-gap: 14px;--slot: var(--touch);--slot-gap: 12px;--slot-inset: calc((var(--pad) - 2 * var(--slot) - var(--slot-gap)) / 2);--slot-row: calc(var(--pad-gap) + var(--pad) + 12px)}.stick-zone{position:absolute;left:calc(var(--safe-l) + var(--pad-gap) - 18px);bottom:calc(var(--safe-b) + var(--pad-gap) - 18px);width:calc(var(--pad) + 36px);height:calc(var(--pad) + 36px);display:grid;place-items:center;pointer-events:auto;touch-action:none}.stick-base{position:relative;width:var(--pad);height:var(--pad);border-radius:50%;border:1px solid var(--glass-edge);background:radial-gradient(circle,#090f0d33 30%,#090f0d8c);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 26px #0006,inset 0 0 0 6px #d9b6770a}.stick-base:before{content:"";position:absolute;inset:24%;border-radius:50%;border:1px dashed rgba(217,182,119,.22)}.stick-base:after{content:"";position:absolute;inset:6px;border-radius:50%;background:linear-gradient(var(--line-3),var(--line-3)) top center / 1px 6px no-repeat,linear-gradient(var(--line-3),var(--line-3)) bottom center / 1px 6px no-repeat,linear-gradient(var(--line-3),var(--line-3)) left center / 6px 1px no-repeat,linear-gradient(var(--line-3),var(--line-3)) right center / 6px 1px no-repeat}.stick-knob{position:absolute;z-index:1;left:28%;top:28%;width:44%;height:44%;border-radius:50%;border:1px solid rgba(240,213,156,.8);background:radial-gradient(circle at 40% 34%,#f3dca8,var(--brass) 55%,var(--brass-lo));box-shadow:0 6px 16px #00000080,inset 0 1px #fffae699;transition:transform .14s var(--ease)}.stick-zone.is-active .stick-knob{transition:none}.stick-zone.is-active .stick-base{border-color:var(--line-3)}#game[data-input=touch] .hud-bottom{top:0}#game[data-input=touch] .hud-dock,#game[data-input=touch] .dock-face{display:contents}#game[data-input=touch] .dock-face>*{position:absolute}#game[data-input=touch] .fire-btn{right:var(--pad-gap);bottom:var(--pad-gap);width:var(--pad);height:var(--pad);border-radius:50%;padding:0;font-size:14px}#game[data-input=touch] .fire-btn:after{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(255,230,210,.3);pointer-events:none}#game[data-input=touch] #scan{right:calc(var(--pad-gap) + var(--slot-inset));bottom:var(--slot-row)}#game[data-input=touch] #munition-cycle{right:calc(var(--pad-gap) + var(--slot-inset) + var(--slot) + var(--slot-gap));bottom:var(--slot-row)}#game[data-input=touch] #target-cycle{right:calc(var(--pad-gap) + var(--slot-inset) + 2 * (var(--slot) + var(--slot-gap)));bottom:var(--slot-row)}#game[data-input=touch] #camera{left:calc(var(--pad-gap) + var(--slot-inset));bottom:var(--slot-row)}#game[data-input=touch] #fine-aim-toggle{left:calc(var(--pad-gap) + var(--slot-inset) + var(--slot) + var(--slot-gap));bottom:var(--slot-row)}#game[data-input=touch] .ammo-cycle{width:var(--slot);padding:0;justify-content:center;border-radius:50%;gap:0}#game[data-input=touch] .ammo-cycle .ammo-name{font-size:11px;letter-spacing:.08em}#game[data-input=touch] .ammo-cycle .ammo-count{position:absolute;bottom:-7px;padding:1px 5px;border-radius:99px;font-size:9px;color:var(--text-2);background:var(--bg-0);border:1px solid var(--line-2)}#game[data-input=touch] .aim-readout{display:none}#game[data-input=touch] .power-field{left:calc(var(--pad-gap) + var(--pad) + 14px);right:calc(var(--pad-gap) + var(--pad) + 14px);bottom:calc(var(--pad-gap) + var(--pad) / 2 - 26px);margin-inline:auto;max-width:300px;height:52px;padding:6px 12px 4px;display:grid;grid-template-rows:auto 1fr;gap:0;border-radius:12px;background:var(--glass);border:1px solid var(--glass-edge);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#game[data-input=touch] .power-field .field-label{font-size:9px}#game[data-input=touch] .power-field output{font-size:11px}#game[data-input=touch] .power-range{height:26px}#game[data-input=touch] .fine-aim{position:absolute;left:var(--pad-gap);bottom:calc(var(--slot-row) + var(--slot) + 14px)}#game[data-input=touch] .fine-aim .range{height:36px}#game[data-input=touch] .dev-bar{margin-left:calc(var(--pad) + 2 * var(--pad-gap));margin-bottom:calc(var(--pad) + var(--slot) + 40px)}@media(max-height:480px){#game{--pad: clamp(88px, 24vmin, 104px);--pad-gap: 12px}}.drag-guide{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.drag-guide line{stroke:var(--text);stroke-width:2;stroke-dasharray:6 6;stroke-linecap:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}.drag-guide circle{fill:#e2683a2e;stroke:var(--ember-hi);stroke-width:2}.drag-guide text{fill:var(--text);font:600 12px var(--font-mono);paint-order:stroke;stroke:#050908d9;stroke-width:3px}.dev-bar{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px;pointer-events:auto;font:10px/1.6 var(--font-mono);color:#9fb2b8}.dev-buttons{display:flex;flex-wrap:wrap;gap:5px}.dev-buttons button{min-height:30px;padding:5px 9px;border-radius:5px;border:1px solid #41575f;background:#101e29e8;color:#cfdde0;font:10px var(--font-mono)}.telemetry{padding:4px 8px;border-radius:5px;background:#101e29e8;border:1px solid #41575f;text-align:right}@media(max-height:800px)and (min-width:901px){.title-screen{gap:16px 32px;padding:20px 32px}.title-hero{grid-template-columns:76px minmax(0,260px);gap:8px 16px}.title-emblem{width:76px;height:76px}.wordmark img{width:260px}.title-menu .menu-item{min-height:54px;padding:8px 18px}}@media(max-width:900px){.card-columns.three{grid-template-columns:repeat(2,minmax(0,1fr))}.title-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"hero" "menu" "build"}.title-build{justify-self:start}}@media(max-width:760px){.card-columns.three{grid-template-columns:minmax(0,1fr)}:root{--gutter: 10px}.card-columns{grid-template-columns:minmax(0,1fr)}.dev-bar{order:-1}.telemetry{text-align:left}}@media(max-height:560px)and (min-width:601px){.title-screen{grid-template-columns:minmax(0,420px) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"hero build" "menu build";gap:16px 32px;padding:20px 32px}.title-build{align-self:end}.title-emblem{width:60px;height:60px}.title-hero{grid-template-columns:60px minmax(0,260px);grid-template-areas:"emblem wordmark" ". name";gap:6px 16px}.wordmark img{width:260px}.tagline{display:none}.menu-item{min-height:46px}.mi-hint{display:none}}@media(max-width:480px){.hud-top{gap:6px}.hud-chip{padding:0 11px}.banner-turn{display:none}.roster{gap:9px}.roster-pip .roster-bar{width:30px}.phase-chip{gap:6px}.banner-tag{letter-spacing:.12em}.phase-chip:has(.move-left:not([hidden])) .banner-tag{display:none}}@media(max-width:400px){.wind-chip.is-calm #wind{display:none}.wind-chip.is-calm{width:var(--touch);justify-content:center;padding:0}}@media(max-height:480px){.match-info{max-height:calc(100dvh - var(--safe-t) - var(--safe-b) - 60px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;transition:none!important}}.card-actions>:only-child{margin-left:auto}.menu-item-primary:focus-visible{outline:1px solid rgba(240,213,156,.55);outline-offset:4px}#game:not([data-input=touch]) #camera kbd{display:none}#game:not([data-input=touch]) .dock-face .scan-btn{width:auto;min-width:84px;padding:0 12px;gap:6px}.title-art{display:block;position:absolute;left:61%;top:49%;width:max(118vw,125vh);height:auto;transform:translate(-50%,-50%);pointer-events:none}.title-art-svg{display:block;width:100%;height:auto;overflow:visible}.title-screen{position:relative}.title-art-clip{position:absolute;inset:0;overflow:hidden;pointer-events:none}.title-art-clip:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,13,11,.82),rgba(8,13,11,.42) 33%,transparent 64%)}.title-screen>:not(.title-art-clip){position:relative;z-index:1}.tactical-orbit{fill:none;stroke:#bba675;stroke-width:.65;stroke-dasharray:3 5}.tactical-orbit.rear{opacity:.17}.tactical-orbit.front{opacity:.4}.tactical-orbit[data-orbit=heavy]{stroke:#9eae89;stroke-dasharray:1 4}.tactical-orbit[data-orbit=explosive]{stroke:#9eae89;stroke-dasharray:none;opacity:.18}.tactical-track-tag{stroke:#c0b38b;stroke-width:.55;fill:#d2c098;font-family:var(--font-mono)}.tactical-track-tag text{stroke:none}.tactical-target-ring,.tactical-target-sweep,.tactical-target-wave{fill:none;stroke:#e1a46c}.tactical-target-ring{stroke-width:.8;stroke-dasharray:3 3;opacity:.75}.tactical-target-sweep{stroke-width:1.5;opacity:.8}.tactical-target-wave{stroke-width:1}.tactical-target-leader{stroke:#c09b69;stroke-width:.6}.tactical-target-label,.tactical-target-state{font-family:var(--font-mono);fill:#d7bb8b}.tactical-target-state{fill:#97a183}@media(min-width:601px)and (max-width:1100px){.title-art{left:69%;width:max(135vw,116vh);opacity:.85}}@media(max-width:600px){.title-art{left:66%;top:33%;width:max(185vw,95vh);opacity:.72}.title-art-clip:after{background:linear-gradient(180deg,rgba(8,13,11,.4),transparent 30%,rgba(8,13,11,.76) 65%)}}@media(max-height:560px)and (min-width:601px){.title-art{width:130vw;left:67%;top:42%;opacity:.65}}.screens.screen-title{overflow-x:hidden}.results-card .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid .stat:last-child:nth-child(odd){grid-column:1 / -1}.fire-btn kbd{color:#fff4ead9;border-color:#fff4ea66;background:#3c100433}.stick-needle{position:absolute;inset:0;border-radius:50%;pointer-events:none;transition:transform .08s linear}.stick-needle:before{content:"";position:absolute;left:50%;top:3px;width:0;height:0;margin-left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid var(--brass-hi);filter:drop-shadow(0 0 4px rgba(240,213,156,.6))}.trajectory-readout,.trajectory-target,.trajectory-leader{position:absolute;top:0;left:0;pointer-events:none}.trajectory-readout{width:156px;height:42px;box-sizing:border-box;padding:5px 9px;border:1px solid #7affd6;border-radius:6px;color:#eefff8;background:#09221fed;box-shadow:0 2px 5px #0008;font-family:var(--font-mono)}.trajectory-readout>span{display:block;font-size:9px;line-height:12px;font-weight:700;letter-spacing:.12em;color:#95f7d8}.trajectory-readout>strong{display:block;font-size:13px;line-height:16px;font-weight:700;white-space:nowrap}.trajectory-target{width:18px;height:18px;margin:-9px;box-sizing:border-box;border:2px solid #caffef;border-radius:50%;box-shadow:0 0 0 2px #071b18d9,inset 0 0 0 1px #071b18d9}.trajectory-target:before,.trajectory-target:after{content:"";position:absolute;background:#caffef;box-shadow:0 0 0 1px #071b18b0}.trajectory-target:before{width:2px;height:24px;left:6px;top:-5px}.trajectory-target:after{height:2px;width:24px;top:6px;left:-5px}.trajectory-target[data-kind=flight-limit]{border-style:dashed;opacity:.65}.trajectory-target[data-kind=flight-limit]:before,.trajectory-target[data-kind=flight-limit]:after{display:none}.trajectory-target[data-occluded=true]{border-style:dashed;opacity:.55}.trajectory-target[data-occluded=true]:before,.trajectory-target[data-occluded=true]:after{display:none}.trajectory-leader{height:1px;background:#95f7d8bb;transform-origin:0 50%;box-shadow:0 1px 1px #000a}.trajectory-leader[data-occluded=true]{background:repeating-linear-gradient(90deg,#95f7d877 0 3px,transparent 3px 7px)}.requested-aim-target,.requested-aim-status{position:absolute;top:0;left:0;pointer-events:none}.requested-aim-target{width:28px;height:28px;color:#ffe3a3;filter:drop-shadow(0 1px 1px #071b18);background:linear-gradient(currentColor,currentColor) left top / 8px 2px,linear-gradient(currentColor,currentColor) left top / 2px 8px,linear-gradient(currentColor,currentColor) right top / 8px 2px,linear-gradient(currentColor,currentColor) right top / 2px 8px,linear-gradient(currentColor,currentColor) left bottom / 8px 2px,linear-gradient(currentColor,currentColor) left bottom / 2px 8px,linear-gradient(currentColor,currentColor) right bottom / 8px 2px,linear-gradient(currentColor,currentColor) right bottom / 2px 8px;background-repeat:no-repeat}.requested-aim-target[data-status=reachable]{color:#effff8;opacity:.85}.requested-aim-target[data-status=solving]{opacity:.6}.requested-aim-target[data-status=blocked],.requested-aim-target[data-status=out-of-range]{color:#ffb58c}.requested-aim-target[data-kind=tank]{color:#effff8;opacity:1}.requested-aim-status{box-sizing:border-box;width:156px;padding:6px 7px;border:1px solid #ddaa79;border-radius:4px;background:#21180bef;color:#ffe6bb;font:700 10px/14px var(--font-mono);box-shadow:0 2px 4px #0008}.campaign-hud{position:absolute;inset:0;pointer-events:none;z-index:2}.campaign-hud[hidden]{display:none}.ch-objectives{position:absolute;top:74px;left:16px;margin:0;padding:0;list-style:none;display:grid;gap:6px;max-width:min(360px,60vw)}.ch-objective{display:flex;gap:10px;align-items:baseline;padding:7px 12px 7px 10px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--line);font:600 13px/1.3 var(--font-ui);color:var(--text);text-shadow:0 1px 2px rgba(0,0,0,.6);animation:ch-in .35s ease-out}.ch-objective .ch-check{flex:none;width:14px;height:14px;border-radius:3px;border:1.5px solid var(--brass);display:grid;place-items:center;font:700 10px/1 var(--font-mono);color:var(--brass-hi);transform:translateY(2px)}.ch-objective.done{color:var(--text-3)}.ch-objective.done .ch-check{background:var(--ok-lo);border-color:var(--ok);color:var(--text)}.ch-objective.failed{color:var(--danger)}.ch-objective.failed .ch-check{border-color:var(--danger);color:var(--danger)}.ch-bottom{position:absolute;left:50%;bottom:212px;transform:translate(-50%);display:grid;justify-items:center;gap:8px;width:min(620px,calc(100vw - 32px))}.ch-radio{display:flex;flex-direction:column;gap:4px;padding:10px 16px 12px;border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line-2);box-shadow:0 10px 30px #00000059;width:100%}.ch-radio.fresh{animation:ch-in .3s ease-out}.ch-speaker{font:600 10px/1.2 var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}.ch-speaker:before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);animation:ch-blink 1.2s steps(2) infinite}.ch-line{font:500 15px/1.4 var(--font-ui);color:var(--text)}.ch-hint{padding:6px 12px;border-radius:999px;background:#d9b67729;border:1px solid var(--line-2);font:500 12px/1.35 var(--font-ui);color:var(--brass-hi);text-align:center}.ch-banner{position:absolute;top:18%;left:50%;transform:translate(-50%,-8px);text-align:center;opacity:0;transition:opacity .5s,transform .5s}.ch-banner.show{opacity:1;transform:translate(-50%)}.ch-banner-sub{font:600 11px/1.2 var(--font-mono);letter-spacing:.32em;text-transform:uppercase;color:var(--brass)}.ch-banner-title{margin-top:6px;font:700 clamp(30px,5vw,52px)/1 var(--font-display);letter-spacing:.04em;color:var(--text);text-shadow:0 2px 18px rgba(0,0,0,.65)}.ch-marker{position:absolute;top:0;left:0;display:grid;justify-items:center;gap:2px;margin:-11px 0 0 -40px;width:80px}.ch-marker[hidden]{display:none}.ch-diamond{width:14px;height:14px;transform:rotate(45deg);border:2px solid var(--brass-hi);background:#d9b67740;box-shadow:0 0 10px #f0d59c8c;animation:ch-pulse 1.6s ease-in-out infinite}.ch-marker.edge .ch-diamond{border-color:var(--ember-hi);background:#e2683a4d}.ch-marker-label{font:600 10px/1.1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text);text-shadow:0 1px 3px #000;white-space:nowrap}.ch-marker-range{font:600 10px/1 var(--font-mono);color:var(--brass-hi);text-shadow:0 1px 3px #000}.ch-gun{position:absolute;right:16px;bottom:214px;display:grid;gap:6px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--line);min-width:168px}.ch-gauge{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px}.ch-gauge-label{font:600 9px/1 var(--font-mono);letter-spacing:.16em;color:var(--text-3)}.ch-bar{position:relative;height:6px;border-radius:3px;background:#ffffff14;overflow:hidden}.ch-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--brass);border-radius:3px}.ch-bar.ready .ch-fill{background:var(--ok);box-shadow:0 0 8px var(--ok)}.heat .ch-fill{background:var(--teal)}.heat .ch-bar.hot .ch-fill{background:var(--danger)}.ch-gun-text{font:600 10px/1 var(--font-mono);color:var(--text-2);min-width:34px;text-align:right}@keyframes ch-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ch-blink{50%{opacity:.35}}@keyframes ch-pulse{50%{box-shadow:0 0 2px #f0d59c33}}@media(max-width:720px){.ch-objectives{top:64px;left:12px;max-width:62vw}.ch-objective{font-size:12px;padding:5px 10px 5px 8px}.ch-bottom{bottom:176px}.ch-line{font-size:13px}.ch-gun{right:12px;bottom:auto;top:64px;min-width:132px}}.ch-abilities{position:absolute;right:16px;bottom:270px;display:flex;flex-wrap:wrap;gap:4px;max-width:220px;pointer-events:auto}.ch-abilities .btn{font-size:10px;min-height:30px;padding:6px 9px}.ch-ending{pointer-events:auto;position:absolute;left:50%;top:38%;transform:translate(-50%,-30%);background:#111e26ed;border:1px solid #bda16c;padding:30px;width:min(500px,90vw);text-align:center;box-shadow:0 20px 80px #000a}.ch-ending[hidden]{display:none}.ch-ending .btn{margin:8px}@media(max-width:720px){.ch-abilities{right:10px;bottom:250px;max-width:180px}}.ch-radio-overlay{position:fixed;z-index:80;pointer-events:none}.ch-radio .btn{pointer-events:auto;align-self:flex-end;font-size:10px;min-height:24px;padding:3px 8px}.ch-radio[hidden],.ch-hint[hidden]{display:none}.ch-posts{position:absolute;top:78px;right:16px;display:grid;gap:6px;width:190px;padding:10px;background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--radius-sm);pointer-events:auto}.ch-posts[hidden]{display:none}.ch-posts label{display:grid;grid-template-columns:68px 1fr;align-items:center;gap:4px;font:600 11px var(--font-ui)}.ch-posts select{width:100%;min-height:28px;color:var(--text);background:#182125;border:1px solid var(--line-2);border-radius:4px}.ch-detection{position:absolute;top:66px;left:50%;transform:translate(-50%);width:240px;padding:8px 12px;border:1px solid var(--line-2);border-radius:6px;text-align:center;font:600 11px var(--font-mono);background:linear-gradient(90deg,#a94825bb var(--detection),#142029dd var(--detection))}.ch-detection[hidden]{display:none}@media(max-width:720px){.ch-posts{top:125px;right:10px;width:165px}.ch-posts label{grid-template-columns:58px 1fr}}.hud-edge-dock{position:absolute;pointer-events:none;z-index:25;max-width:min(340px,calc(100vw - 24px))}.dock-tab{pointer-events:auto;touch-action:none;border:1px solid var(--line-2);border-radius:18px;padding:9px 12px;min-height:36px;background:var(--glass-strong,#142029ed);color:var(--text);font:600 11px var(--font-ui)}.dock-tab.unread{color:var(--teal,#80dfca);border-color:currentColor;box-shadow:0 0 0 2px #80dfca30}.dock-content{pointer-events:auto;margin-top:6px;padding:10px;border:1px solid var(--line-2);border-radius:10px;background:var(--glass-strong,#142029ed);max-height:min(45vh,340px);overflow:auto;overscroll-behavior:contain}.dock-content[hidden]{display:none}.dock-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px;font:600 12px var(--font-ui);touch-action:none}.dock-head button{min-width:32px;min-height:32px;background:none;border:1px solid var(--line);border-radius:6px;color:inherit}.dock-objectives{top:64px;left:12px}.dock-actions{right:12px;bottom:265px;text-align:right}.dock-objectives .ch-objectives{position:static;max-width:none;padding:0}.dock-actions .ch-abilities{position:static;max-width:none;display:grid;grid-template-columns:1fr 1fr;text-align:left}.dock-actions .ch-abilities .btn{min-height:40px}.dock-chat{position:fixed;left:12px;bottom:12px;z-index:95}#game[data-screen=match] .dock-chat,#game[data-screen=pause] .dock-chat{bottom:210px}.chat-log{margin:0;padding:0;list-style:none;max-height:220px;overflow:auto;font:13px/1.4 var(--font-ui);text-align:left}.chat-log li{margin:0 0 8px;overflow-wrap:anywhere}.chat-log strong{color:var(--sender,var(--teal))}.chat-form{display:flex;gap:6px;margin-top:10px}.chat-form input{width:100%;min-width:0}[data-camera-drag]{touch-action:none}@media(max-width:720px){#hud .hud-top{gap:5px;padding:8px}#hud #roster{max-width:106px;min-height:38px;padding:6px 9px;gap:5px}#hud #roster .roster-pip:not(.self){display:none}#hud #roster:after{content:"☰";font-size:11px;opacity:.65}#hud #banner{min-width:0;padding:6px 9px;min-height:38px}#hud #wind-chip.is-calm{display:none}#hud #pause-open{width:40px;height:40px;min-width:40px}.dock-objectives{top:55px;left:8px}.dock-actions{right:8px;bottom:210px}.dock-tab{min-height:38px;padding:8px 10px}.ch-gun{top:56px!important;right:8px!important;min-width:92px!important;width:116px;padding:6px!important;gap:4px!important}.ch-gauge{gap:4px;grid-template-columns:20px 1fr auto}.ch-gauge-label,.ch-gun-text{font-size:8px}.ch-bottom{max-width:calc(100vw - 20px)}.ch-hint{max-height:44px;overflow:auto;font-size:11px;padding:6px 10px}#game[data-screen=match] .dock-chat{bottom:210px;left:8px}.dock-chat .dock-content{width:min(320px,calc(100vw - 32px))}}.orrery-card{max-width:980px}.crew-panel{margin:20px 0;padding:14px;border:1px solid var(--line)}.crew-panel summary{cursor:pointer;color:var(--brass-hi);font-weight:600}.crew-panel h3{text-transform:capitalize;margin:16px 0 8px}.crew-branches{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.crew-branches .btn{width:100%;height:auto;white-space:normal;text-align:left;margin:3px 0}.crew-gadgets{display:flex;flex-wrap:wrap;gap:6px}@media(max-width:720px){.crew-branches{grid-template-columns:1fr}}.orrery-worlds{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:20px 8px 26px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at center,#ad7e3220,transparent 65%)}.orrery-world{display:grid;justify-items:center;gap:10px;width:108px;height:auto;padding:8px;font-size:11px;white-space:normal}.orrery-world:before{content:"";display:block;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#e4d1a5,#649386 35%,#293e48 78%);box-shadow:0 0 0 6px #b78b3922,0 0 0 7px #cda75260}.orrery-world.planet-1:before{filter:sepia(.8)}.orrery-world.planet-2:before{filter:hue-rotate(40deg)}.orrery-world.planet-3:before{filter:saturate(.25) brightness(1.3)}.orrery-world.planet-4:before{filter:sepia(1) saturate(4) hue-rotate(325deg)}.orrery-world:disabled{opacity:.35}.orrery-chapter{margin-top:24px}.orrery-chapter .menu-item{min-height:80px}.orrery-chapter .mi-hint{white-space:normal}@media(max-width:600px){.orrery-worlds{gap:4px}.orrery-world{width:88px}}@media(prefers-reduced-motion:reduce){.title-art *,.ch-diamond{animation:none!important}}.orrery-operation{display:grid}.orrery-listen{justify-self:end;font-size:10px;padding:4px 12px;min-height:26px;margin-bottom:8px}.screens.screen-workshop{display:block;padding:0;overflow:hidden;background:#101513}.ws{--ws-brass:#d9b677;--ws-cream:#eee5cf;--ws-muted:#a9b4aa;position:absolute;inset:0;color:var(--ws-cream);font-family:var(--font-ui)}.ws-viewport,.ws-overlay{position:absolute;inset:0}.ws-viewport{overflow:hidden;outline-offset:-3px}.ws-viewport canvas{display:block;width:100%;height:100%;touch-action:none}.ws-overlay{pointer-events:none}.ws-overlay button,.ws-overlay input,.ws-overlay label,.ws-panel,.ws-actionbar{pointer-events:auto}.ws button{font-family:var(--font-ui);cursor:pointer}.ws button:focus-visible,.ws input:focus-visible{outline:2px solid var(--ws-brass);outline-offset:3px}.ws button:disabled{cursor:default;opacity:.45}.ws-header{position:absolute;inset:18px 20px auto;display:flex;align-items:center;gap:14px;pointer-events:none;text-shadow:0 2px 12px #000c}.ws h1{margin:0;font:25px/1.2 var(--font-display);letter-spacing:-.02em}.ws-current-build{color:#c4ccc0;font-size:11px}.ws-leave{margin-left:auto}.ws-control{min-height:34px;padding:7px 12px;color:#e0e5d8;border:1px solid #a3b6a544;background:#12201de0;border-radius:5px;font-size:11px;white-space:nowrap}.ws-control:hover{border-color:#d9b677aa;background:#344236e8}.ws-control[aria-expanded=true]{border-color:var(--ws-brass);color:var(--ws-brass)}.ws-overall{position:absolute;top:75px;right:20px;width:223px;padding:12px 14px;border:1px solid #b3c1b02c;border-radius:6px;background:#12201bd4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 6px 28px #0002}.ws-overall-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;color:#c9d3c4;font-size:10px}.ws-overall-title strong{color:var(--ws-brass);font:10px var(--font-mono)}.ws-overall-stats{margin:0;display:grid;gap:7px}.ws-overall-stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ws-overall-stats dt{color:#aebcab;font-size:10px}.ws-overall-stats dd{margin:0;font:10px var(--font-mono)}.ws-panel{position:absolute;border:1px solid #bdc6af40;border-radius:7px;background:#111d19ee;box-shadow:0 12px 45px #0006;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);overflow:hidden}.ws-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:14px;border-bottom:1px solid #d9b67724}.ws h2{margin:0;font:19px/1.2 var(--font-display)}.ws-close{font:21px/1 var(--font-ui);padding:3px 8px;min-height:29px;background:transparent;border-color:transparent}.ws-catalog{top:74px;left:20px;bottom:158px;width:302px;display:flex;flex-direction:column}.ws-slot-list{display:flex;flex-wrap:wrap;gap:4px;padding:9px 11px;border-bottom:1px solid #d9b67724}.ws-slot{border:1px solid transparent;background:transparent;color:#bec9b8;font-size:10px;padding:7px 9px;border-radius:4px}.ws-slot[aria-pressed=true]{color:var(--ws-brass);background:#d9b67713;border-color:#d9b67765}.ws-slot:hover{background:#d9b67718}.ws-drawer-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#867750 #14201b}.ws-catalog-heading{padding:12px 13px 4px}.ws-catalog-heading h3{margin:0 0 4px;font:17px var(--font-display)}.ws-catalog-heading p{margin:0;color:var(--ws-muted);font-size:10px}.ws-parts{padding:0 10px 11px}.ws-part{display:block;width:100%;margin-top:8px;padding:0 0 10px;text-align:left;border:1px solid #b8bfa430;border-radius:4px;color:#dce2d1;background:#16241dbb;overflow:hidden}.ws-part.is-selected{border-color:#d9b677c9;background:#c5a56c15}.ws-part:hover:not(:disabled){border-color:#d9b677a0}.ws-part-drawing{display:block;position:relative;height:71px;background:linear-gradient(#8fa69909,#8fa69902),repeating-linear-gradient(0deg,transparent,transparent 13px,#94b2a70c 14px),repeating-linear-gradient(90deg,transparent,transparent 13px,#94b2a70c 14px)}.ws-part-preview{display:block;width:100%;height:71px;object-fit:contain}.ws-part-tag{position:absolute;top:7px;left:9px;color:#a9b3a5;font:7px var(--font-mono);letter-spacing:.06em}.ws-part.is-selected .ws-part-tag{color:var(--ws-brass)}.ws-part.status-over-budget .ws-part-tag{color:#e99977}.ws-part.status-locked .ws-part-tag{color:#edc180}.ws-sandbox-design{margin:12px;padding:12px;border:1px solid #d9b67740;border-radius:4px}.ws-sandbox-design>strong{font:16px var(--font-display);color:var(--ws-brass)}.ws-sandbox-design .ws-note{margin:8px 0}.ws-sandbox-design .ws-control{width:100%}.ws-part-title{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 10px 4px}.ws-part-title strong{font:15px/1.2 var(--font-display)}.ws-part-cost{color:var(--ws-brass);font:9px var(--font-mono)}.ws-part-description{display:block;padding:0 10px;color:#adb9a7;font-size:10px;line-height:1.45}.ws-comparison{border-top:1px solid #d9b67730;padding:12px}.ws-stat-heading{display:flex;justify-content:space-between;margin-bottom:8px;color:var(--ws-muted);font-size:10px}.ws-stat-heading>span:last-child{color:var(--ws-brass)}.ws-stats{margin:0}.ws-stat{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #b5c8a516}.ws-stat dt{color:#b9c5b4;font-size:10px}.ws-stat dd{display:flex;align-items:center;gap:6px;margin:0;font:9px var(--font-mono)}.ws-stat-after{color:var(--ws-brass)}.ws-stat small{font:8px var(--font-mono)}.ws-stat.change-better small{color:#a8d6ad}.ws-stat.change-worse small{color:#e59a78}.ws-popup{bottom:100px;left:20px;width:286px;max-height:calc(100% - 180px);overflow-y:auto}.ws-builds{display:grid;gap:6px;padding:12px}.ws-build{display:flex;align-items:center;gap:10px;width:100%;padding:11px 10px;color:#d4decc;background:#14241d99;border:1px solid #a9b99735;border-radius:4px;text-align:left}.ws-build.is-active{border-color:#d9b67799;background:#d9b67714}.ws-build-number{color:var(--ws-brass);font:10px var(--font-mono)}.ws-build strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px}.ws-build small{color:#a3b39b;font-size:9px}.ws-name-label{display:block;margin:3px 13px 5px;color:var(--ws-muted);font-size:10px}.ws-name-input{display:block;width:calc(100% - 26px);margin:0 13px;padding:8px;color:#e6e5d5;border:1px solid #aabc9945;border-radius:4px;background:#1b2c2199;font:15px var(--font-display)}.ws-note{margin:11px 13px 14px;color:#acbaa4;font-size:10px;line-height:1.5}.ws-finish{padding:12px;display:grid;gap:7px}.ws-paint{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid #b2c2a837;border-radius:4px;color:#dae4d1;background:transparent;text-align:left;font-size:12px}.ws-paint[aria-pressed=true]{border-color:#d9b677a0;background:#d9b67711}.ws-control.is-sandbox{color:#f2cf80;border-color:#e5b65e;background:#55401eef}.ws-paint-panel{width:304px}.ws-paint-controls{display:grid;gap:10px;padding:0 13px 12px}.ws-paint-controls label{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#c2ceba;font-size:11px}.ws-paint-controls select{min-width:0;max-width:190px;padding:5px;color:#e8e4cf;background:#203329;border:1px solid #9bab804f;border-radius:3px}.ws-paint-controls input[type=color]{width:42px;height:27px;padding:1px;border:1px solid #9bab8060;background:#14251a}.ws-palette-colors{display:flex;justify-content:space-between;gap:6px}.ws-palette-colors label{display:grid;gap:4px;font-size:9px}.ws-paint-controls .ws-brush-slider{display:grid;grid-template-columns:1fr auto;gap:3px}.ws-brush-slider input{grid-column:1/-1;width:100%;accent-color:var(--ws-brass)}.ws-brush-slider output{font:10px var(--font-mono);color:var(--ws-brass)}.ws-paint-actions{display:flex;flex-wrap:wrap;gap:6px}.ws-control[aria-pressed=true]{border-color:#c6ac74}.ws-armor{margin:0 12px 12px;padding-top:10px;border-top:1px solid #d9b67740}.ws-armor .ws-note{margin:8px 0 0}.ws-test-badge{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:35;display:flex;align-items:center;gap:9px;padding:5px 8px;border:1px solid #be9b54;border-radius:5px;color:#e6cb8a;background:#172119eb;font:9px var(--font-ui);pointer-events:auto}.ws-swatch{width:24px;height:24px;border-radius:50%;border:2px solid #1b281e;outline:1px solid #acbb9577}.ws-swatch-sage{background:#739269}.ws-swatch-ochre{background:#b59047}.ws-options{display:grid;gap:13px;padding:16px 14px 4px}.ws-options label{display:flex;align-items:center;gap:9px;color:#d1dccb;font-size:12px}.ws-options input{width:15px;height:15px;margin:0;accent-color:var(--ws-brass)}.ws-actionbar{position:absolute;bottom:99px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 40px);border:1px solid #d9b67770;border-radius:6px;padding:10px 12px;background:#142019ef;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 5px 20px #0005}.ws-preview-copy{display:grid;gap:4px;min-width:175px}.ws-preview-copy strong{font:15px var(--font-display)}.ws-preview-copy span{font-size:9px;color:#b8c4ae}.ws-preview-copy .ws-install-error{color:#ffbb94;max-width:390px;font-size:11px}.ws-install{color:#172016;background:#d6b575;border-color:#e4c588;font-weight:700;min-height:36px}.ws-install:hover:not(:disabled){color:#10180f;background:#e5c887}.ws-footer{position:absolute;left:20px;right:20px;bottom:17px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px 18px;align-items:center}.ws-tools,.ws-camera-controls{display:flex;gap:5px;align-items:center}.ws-camera-controls .ws-control{font-size:10px;min-height:31px;padding:6px 10px}.ws-camera-controls #workshop-presentation{margin-left:7px;color:#cbb786;background:#142019aa}.ws-service-status{flex-basis:100%;display:flex;align-items:center;gap:8px;color:#cedac2;text-shadow:0 1px 7px #000;font:9px/1.4 var(--font-mono);min-width:0}.ws-status-copy{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ws-status-dot{width:5px;height:5px;flex:0 0 auto;background:#a9c48e;border-radius:50%;box-shadow:0 0 8px #7db27099}.ws-status-dot.is-busy{background:#e0bc6f}.ws-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:17px 23px;border:1px solid #d9b67777;border-radius:5px;color:var(--ws-brass);background:#17211ce8;font:15px var(--font-display);text-align:center}.ws.is-presentation .ws-panel,.ws.is-presentation .ws-overall,.ws.is-presentation .ws-header h1,.ws.is-presentation .ws-current-build,.ws.is-presentation .ws-actionbar,.ws.is-presentation .ws-tools,.ws.is-presentation .ws-service-status{display:none}.ws.is-presentation .ws-footer{justify-content:flex-end}@media(max-width:1000px){.ws-overall{width:190px}.ws-catalog{width:278px}.ws-footer{gap:7px}.ws-control{padding:7px 9px}.ws-camera-controls .ws-control{padding:6px 8px}}@media(max-width:700px){.ws:not(.is-presentation):has(.ws-catalog) .ws-viewport{bottom:calc(44vh + 109px)}.ws:not(.is-presentation):has(.ws-catalog) .ws-overall{display:none}.ws-header{top:12px;left:12px;right:12px;gap:10px}.ws h1{font-size:21px}.ws-current-build{font-size:9px;max-width:115px;overflow:hidden;text-overflow:ellipsis}.ws-header .ws-control{min-height:30px;font-size:10px}.ws-overall{top:57px;left:12px;right:12px;width:auto;padding:8px 10px;background:#12201bbb}.ws-overall-title{margin-bottom:6px;font-size:9px}.ws-overall-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 9px}.ws-overall-stats>div{display:grid;gap:2px}.ws-overall-stats dt{font-size:8px}.ws-overall-stats dd{font-size:9px}.ws-footer{left:10px;right:10px;bottom:10px;justify-content:center;gap:6px}.ws-tools{justify-content:center;width:100%}.ws-tools .ws-control{min-height:31px;padding:6px 12px;font-size:10px}.ws-camera-controls{gap:3px;justify-content:center;width:100%}.ws-camera-controls .ws-control{min-height:28px;padding:4px 8px;font-size:9px}.ws-camera-controls #workshop-presentation{margin-left:2px}.ws-service-status{justify-content:center;font-size:8px}.ws-catalog,.ws-popup{inset:auto 10px 109px;width:auto;max-height:44vh;border-radius:9px}.ws-catalog{height:44vh}.ws-panel-head{padding:8px 10px}.ws h2{font-size:16px}.ws-slot-list{flex-wrap:nowrap;overflow-x:auto;padding:6px 8px;flex-shrink:0;gap:2px}.ws-slot{padding:6px 7px;font-size:9px;white-space:nowrap}.ws-catalog-heading{padding:8px 10px 0}.ws-catalog-heading h3{font-size:14px}.ws-catalog-heading p{display:none}.ws-parts{display:flex;gap:6px;overflow-x:auto;padding:3px 8px 9px;scroll-snap-type:x mandatory}.ws-part{flex:0 0 145px;scroll-snap-align:start;margin-top:5px;padding-bottom:7px}.ws-part-drawing,.ws-part-preview{height:55px}.ws-part-title strong{font-size:12px}.ws-part-title{padding:5px 7px}.ws-part-cost{font-size:8px}.ws-part-tag{top:5px;left:6px;font-size:6px}.ws-part-description{font-size:8px;padding:0 7px}.ws-comparison{padding:8px 10px}.ws-stats{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.ws-stat{display:block}.ws-stat dd{margin-top:3px}.ws-actionbar{bottom:109px;left:10px;right:10px;max-width:none;transform:none;flex-wrap:wrap;justify-content:flex-end;gap:6px;padding:8px}.ws-preview-copy{flex:1;min-width:130px}.ws-preview-copy strong{font-size:13px}.ws-preview-copy span{font-size:8px}.ws-catalog:has(~.ws-actionbar){bottom:181px;max-height:38vh;height:38vh}.ws-actionbar .ws-control{min-height:32px;padding:6px 8px;font-size:10px}.ws.is-presentation .ws-footer .ws-camera-controls{justify-content:center}}@media(prefers-reduced-motion:reduce){.ws *{transition:none!important}}.reduced-motion .ws *{transition:none!important}.ws-lift-controls{position:absolute;z-index:2;width:0;height:0}.ws-lift-controls[hidden]{display:none}.ws-lift-controls button{position:absolute;width:34px;height:34px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:none!important;color:transparent;box-shadow:none!important;outline:0!important;touch-action:none;cursor:pointer}.ws-lift-controls button:disabled{cursor:default}.ws.is-presentation .ws-lift-controls{display:none}@media(max-width:700px){.ws-lift-controls button{width:38px;height:38px}}#build-cost.is-over-budget,.ws-over-budget{color:#e99977}.ws-overall #workshop-reset-build{margin-top:6px}.ws.is-compact .ws-viewport{bottom:var(--ws-view-bottom, 172px)}.ws.is-compact.is-presentation .ws-viewport{bottom:0}.ws-bar{position:absolute;top:var(--safe-t);left:var(--safe-l);right:var(--safe-r);display:flex;align-items:center;gap:8px}.ws-round{width:44px;min-height:44px;padding:0;border-radius:50%;font-size:18px;line-height:1}.ws-build-pick{flex:1 1 auto;min-width:0;min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;border-radius:10px;text-align:left}.ws-bar-title{font:700 9px/1 var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--ws-muted)}.ws-build-pick strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;font:16px/1.1 var(--font-display);color:var(--ws-cream)}.ws-budget{position:absolute;top:calc(var(--safe-t) + 52px);left:var(--safe-l);right:var(--safe-r);display:grid;gap:5px;padding:7px 10px;border:1px solid #b3c1b02c;border-radius:8px;background:#12201bc4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ws-budget-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:#c9d3c4;font-size:11px}.ws-budget-row strong{color:var(--ws-brass);font:700 12px var(--font-mono)}.ws-budget-meter{height:5px;background:#ffffff1a;box-shadow:none}.ws-budget-meter>span{background:linear-gradient(90deg,#8fb08a,var(--ws-brass))}.ws-budget-meter.is-over-budget>span{background:#e99977}.ws-budget .ws-note{margin:2px 0 0;font-size:11px}.ws-budget #workshop-reset-build{min-height:40px}.ws-sheet{left:0;right:0;bottom:0;height:var(--sheet-drag, var(--ws-sheet, 172px));display:flex;flex-direction:column;border-radius:16px 16px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);transition:height .2s ease-out}.ws-sheet.is-dragging{transition:none}.ws-sheet-handle{flex:0 0 auto;display:grid;place-items:center;width:100%;height:24px;padding:0;border:0;background:transparent;touch-action:none;cursor:grab}.ws-sheet-handle:before{content:"";width:42px;height:4px;border-radius:99px;background:#d9b67799}.ws-sheet .ws-slot-list{flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:2px 10px 8px;scrollbar-width:none}.ws-sheet .ws-slot{min-height:44px;padding:0 13px;font-size:12px;white-space:nowrap}.ws-sheet .ws-drawer-scroll{flex:1 1 auto;min-height:0}.ws-sheet[data-snap=peek] .ws-drawer-scroll{display:none}.ws-sheet-actions{flex:0 0 auto;display:grid;gap:7px;padding:8px 12px 10px;border-top:1px solid #d9b67724;background:#111d19}.ws-sheet-actions .ws-service-status{font-size:10px}.ws-sheet-actions .ws-preview-copy{min-width:0}.ws-sheet-actions .ws-preview-copy span{font-size:11px}.ws-sheet-buttons{display:flex;justify-content:flex-end;gap:8px}.ws-sheet-buttons .ws-control{min-height:48px;padding:0 16px;font-size:13px}.ws-sheet-buttons .ws-install{flex:1 1 auto}.ws.is-compact .ws-popup{inset:auto 0 0;width:auto;max-height:74dvh;border-radius:16px 16px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}.ws.is-compact .ws-close{min-width:44px;min-height:44px}.ws.is-compact .ws-note{font-size:12px}.ws.is-compact .ws-name-input{font-size:16px;min-height:44px}.ws.is-compact .ws-build{min-height:48px}.ws.is-compact .ws-options label{min-height:44px;font-size:14px}.ws.is-compact .ws-options input{width:20px;height:20px}.ws.is-compact .ws-paint-controls label{font-size:12px;min-height:36px}.ws.is-compact .ws-paint-controls .ws-control{min-height:44px}.ws-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.ws-more-views{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 14px}.ws-more-grid .ws-control,.ws-more-views .ws-control{min-height:44px;font-size:12px}.ws-present-exit{position:absolute;right:var(--safe-r);bottom:var(--safe-b);pointer-events:auto}.ws-present-exit .ws-control{min-height:44px;padding:0 16px}.ws.is-compact.is-presentation .ws-bar,.ws.is-compact.is-presentation .ws-budget{display:none}.ws.is-compact .ws-part{flex-basis:168px}.ws.is-compact .ws-part-title strong{font-size:14px}.ws.is-compact .ws-part-cost{font-size:10px}.ws.is-compact .ws-part-tag{font-size:9px}.ws.is-compact .ws-part-description{font-size:11px}.ws.is-compact .ws-catalog-heading h3{font-size:15px}.ws.is-compact .ws-stat dt,.ws.is-compact .ws-stat dd,.ws.is-compact .ws-stat-heading{font-size:11px}.ws.is-compact .ws-overall-stats{grid-template-columns:1fr 1fr;gap:6px 14px}.ws.is-compact .ws-overall-stats dt,.ws.is-compact .ws-overall-stats dd{font-size:11px}@media(max-width:700px){.ws-lift-controls button{width:44px;height:44px}}.ws.is-compact .ws-parts{align-items:flex-start}.ws.is-compact .ws-part{display:flex;flex-direction:column;justify-content:flex-start}.ws.is-compact .ws-part-drawing,.ws.is-compact .ws-part-preview{height:64px}.ws{--ws-brass: var(--brass);--ws-cream: var(--text);--ws-muted: var(--text-2);font-family:var(--font-ui)}.ws h1,.ws h2,.ws h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.ws .ws-control{border-radius:var(--radius-sm);border-color:var(--line-2);background:#090f0dd1;color:var(--text);font:600 11px/1 var(--font-ui);letter-spacing:.1em;text-transform:uppercase;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s}.ws .ws-control:hover:not(:disabled){border-color:var(--line-3);background:var(--bg-3)}.ws .ws-control[aria-expanded=true],.ws .ws-control[aria-pressed=true]{border-color:var(--brass);color:var(--brass-hi)}.ws .ws-round{border-radius:50%;font-size:17px;letter-spacing:0;text-transform:none}.ws .ws-build-pick{text-transform:none;letter-spacing:0}.ws .ws-close{border-color:transparent;background:transparent;font-size:20px;letter-spacing:0}.ws .ws-install,.ws .ws-control.ws-install{color:var(--brass-ink);border-color:var(--brass-hi);background:linear-gradient(180deg,#eed39a,var(--brass) 55%,#c69f5c);box-shadow:inset 0 1px #fff8e199,0 6px 20px #d9b67729}.ws .ws-install:hover:not(:disabled){background:linear-gradient(180deg,#f5dfae,#e0c084 55%,#cfa964)}.ws .ws-install:disabled{opacity:.5;color:#12190fb3}.ws .ws-control.is-sandbox{color:var(--brass-hi);border-color:var(--brass);background:#d9b67724}.ws .ws-panel{border-color:var(--line-2);border-radius:var(--radius);background:var(--corners),linear-gradient(180deg,rgba(255,255,255,.025),transparent 120px),var(--panel)}.ws .ws-panel-head{border-bottom-color:var(--line)}.ws .ws-overall,.ws .ws-budget,.ws .ws-actionbar{border-color:var(--line-2);background:var(--glass-strong)}.ws .ws-actionbar{background:var(--corners),var(--panel)}.ws .ws-overall-title,.ws .ws-budget-row>span,.ws .ws-bar-title,.ws .ws-stat-heading{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:9px;color:var(--text-3)}.ws .ws-slot{border-radius:4px;color:var(--text-2);font-weight:600;letter-spacing:.06em}.ws .ws-slot[aria-pressed=true]{color:var(--brass-hi);background:var(--bg-3);border-color:var(--line-2);box-shadow:inset 0 -2px 0 var(--brass)}.ws .ws-part{border-color:var(--line);border-radius:var(--radius-sm);background:#090f0db3;transition:border-color .18s var(--ease),background .18s}.ws .ws-part:hover:not(:disabled){border-color:var(--line-3)}.ws .ws-part.is-selected{border-color:var(--brass);background:#d9b67712;box-shadow:inset 0 -2px 0 var(--brass)}.ws .ws-part-title strong{font-family:var(--font-display);font-weight:600}.ws .ws-part-tag{font-family:var(--font-mono);letter-spacing:.14em}.ws .ws-build.is-active{border-color:var(--brass);background:#d9b67714}.ws .ws-name-input{border-color:var(--line-2);background:var(--bg-0);font-family:var(--font-display)}.ws .ws-name-input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px #d9b67729}.ws .ws-sheet-actions{background:transparent;border-top-color:var(--line)}.ws .ws-sheet{background:linear-gradient(90deg,var(--brass),var(--brass)) top center / 48px 1px no-repeat,linear-gradient(180deg,rgba(255,255,255,.03),transparent 120px),var(--panel)}.ws .ws-sheet-handle:before{background:var(--line-3)}.ws .ws-loading{font-family:var(--font-display);border-color:var(--line-2);background:var(--corners),var(--panel)}.ws-test-badge{border-color:var(--line-2);background:var(--glass-strong);color:var(--brass-hi);font:600 10px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.ws .ws-overall{width:252px}.ws .ws-overall-title{gap:10px}.ws .ws-overall-title>*{white-space:nowrap}.ws-paint-confirm{position:fixed;inset:0;margin:auto;width:min(32rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:1.3rem;color:#e9e4d6;z-index:100}.ws-paint-confirm::backdrop{background:#000000b3}.ws-paint-confirm .ws-paint-actions{flex-wrap:wrap}.ws-paint-save-state{margin:.25rem 0 .8rem;font-size:.8rem;font-weight:700;color:#bdd4ab}.ws-paint-save-state.is-unsaved,.ws-paint-save-error{color:#ffd58a}.online-screen.card-wide{width:min(760px,100%)}.online-screen .card-head{padding-bottom:14px}.online-screen .card-title{margin-top:6px}.online-identity{display:flex;align-items:center;gap:24px;margin-bottom:16px}.online-identity .field{flex:1;margin:0}.online-status{flex:1;font-size:12px;color:var(--text-2);line-height:1.5}.online-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.online-choices>.field{grid-column:1 / -1;margin:0}.online-choice.btn{min-height:112px;text-align:left;justify-content:start;padding:18px;border:1px solid var(--line-2);border-radius:10px;background:#ffffff06;white-space:normal}.online-choice strong{display:block;color:var(--text);font:600 20px var(--font-display)}.online-choice small{display:block;margin-top:8px;color:var(--text-2);font:12px/1.5 var(--font-ui);letter-spacing:normal;text-transform:none}.online-choice:hover{border-color:var(--brass);background:#d6b4680f}.online-fields{display:grid;grid-template-columns:2fr 1fr;gap:16px}.online-intro,.online-empty{color:var(--text-2);font-size:14px;line-height:1.6}.online-form>.field-hint{margin-top:-2px;margin-bottom:18px}.online-footer{width:100%;display:grid;gap:10px}.online-footer>.btn{width:100%;min-height:48px}.online-action-hint{margin:0;color:var(--text-2);font:13px/1.5 var(--font-ui);text-align:center}.online-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px}.online-screen .online-tools .btn{min-width:0;padding:9px 12px;min-height:40px;font-size:11px}.online-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.online-filters>*{flex:1;min-width:140px}.online-room h3{font:600 24px var(--font-display);margin:0 0 8px;overflow-wrap:anywhere}.online-mode-label{color:var(--text-2);font-size:13px}.online-invite{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--brass);border-radius:10px;padding:14px 18px;margin:18px 0 10px;background:#19342c40}.online-invite small{display:block;color:var(--text-2);font:10px var(--font-mono);letter-spacing:.16em}#online-room-code{display:block;font:600 26px var(--font-mono);letter-spacing:.16em;-webkit-user-select:text;user-select:text}.online-slots{list-style:none;padding:0;display:grid;gap:8px}.online-slots li{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px}.online-slots strong{overflow-wrap:anywhere;min-width:0}.online-slots small{font-size:11px;color:var(--teal)}.online-slots .empty{color:var(--text-3);border-style:dashed}.online-seat{border:1px solid var(--line);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font:12px var(--font-mono)}.server-list{display:grid;gap:8px}.server-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:center;border:1px solid var(--line);padding:12px;border-radius:8px}.server-row small{display:block;font-size:11px;color:var(--text-3);margin-top:5px}.server-row strong{overflow-wrap:anywhere}.server-ping{font:600 11px var(--font-mono);color:var(--teal);white-space:nowrap}.server-slots{font:600 12px var(--font-mono)}.online-presence{position:fixed;right:12px;bottom:12px;z-index:90;max-width:min(430px,calc(100vw - 24px));display:flex;gap:8px;align-items:center;padding:9px 12px;border:1px solid var(--line-2);border-radius:12px;background:var(--glass-strong);color:var(--text);font:12px var(--font-ui)}.online-presence[hidden],#game[data-screen=online] .online-presence,#game[data-screen=results] .online-presence{display:none}#game[data-screen=online] .dock-chat,#game[data-screen=results] .dock-chat{top:max(10px,env(safe-area-inset-top));bottom:auto;left:auto;right:10px}#game[data-screen=match] .online-presence{top:106px;bottom:auto;right:8px;max-width:min(280px,calc(100vw - 24px));padding:5px 8px;font-size:11px}#game[data-screen=match] .online-presence button:last-child{display:none}.online-presence button{color:inherit;border:1px solid var(--line);background:none;border-radius:6px;padding:6px}.chat-mute{font-size:9px;min-height:24px;padding:2px 5px;margin-left:8px}@media(max-width:600px){.online-identity{display:block;margin-bottom:12px}.online-status{margin:8px 0 12px}.online-choices{grid-template-columns:1fr;gap:8px}.online-choice.btn{min-height:78px;padding:13px 16px}.online-choice strong{font-size:19px}.online-choice small{margin-top:4px}.online-fields{grid-template-columns:1fr;gap:0}.online-invite{padding:12px;flex-wrap:wrap}.online-screen .card-actions{padding-top:10px}.online-tools{gap:4px}.online-screen .online-tools .btn{padding:8px;font-size:10px}.server-row{grid-template-columns:1fr auto;gap:8px}.server-row .server-slots{grid-column:2;grid-row:1}.online-presence{bottom:8px;font-size:11px}}
