:root{--color-paper: oklch(14% .012 25);--color-paper-raised: oklch(18% .014 25);--color-paper-high: oklch(22% .016 25);--color-ink: oklch(94% .008 75);--color-ink-muted: oklch(75% .012 48);--color-ink-faint: oklch(57% .012 40);--color-rule: oklch(31% .016 28);--color-rule-strong: oklch(43% .022 31);--color-accent: oklch(64% .17 32);--color-accent-hover: oklch(70% .16 34);--color-accent-ink: oklch(16% .012 25);--color-focus: oklch(77% .15 34);--color-sidebar: oklch(12% .012 265);--color-sidebar-raised: oklch(16% .016 265);--color-sidebar-hover: oklch(20% .022 265);--color-sidebar-border: oklch(28% .02 265);--color-sidebar-ink: oklch(87% .01 75);--color-sidebar-muted: oklch(61% .015 265);--color-board-accent: oklch(74% .12 84);--color-board-accent-hover: oklch(80% .12 84);--color-board-accent-ink: oklch(17% .018 80);--color-sidebar-danger: oklch(66% .14 27);--color-sidebar-danger-bg: oklch(21% .045 27);--color-sidebar-success: oklch(71% .14 145);--font-display: "Kanit", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.953rem;--text-2xl: 2.441rem;--text-3xl: 3.052rem;--text-display: clamp(2.7rem, 5vw + 1rem, 5.25rem);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--rule: 1px;--radius-tight: 6px;--radius-panel: 10px;--shadow-panel: 0 var(--space-xs) var(--space-xl) oklch(7% .008 25 / 35%);--shadow-sidebar: -1rem 0 2.5rem oklch(5% .01 265 / 28%);--z-base: 1;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-modal: 400;--z-toast: 500;--z-tooltip: 600}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:clip}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#0a0a0f;color:#ddd;overflow:hidden;overflow-x:clip;height:100vh}#root{height:100vh}.app{width:100vw;height:100vh;position:relative;display:flex}.game-board-section{flex:1;height:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1a1a24,#0a0a0f);position:relative}.start-screen{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:var(--space-lg);width:100%;min-height:100dvh;padding:clamp(var(--space-md),4vw,var(--space-3xl));overflow-y:auto;color:var(--color-ink);background-color:var(--color-paper);font-family:var(--font-body)}.start-screen:before{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;content:"";background-image:url(./tile_texture-BtQqYjlr.jpg);background-size:cover;background-position:center;opacity:.14;pointer-events:none}.start-screen-nav,.start-workbench,.start-credits{position:relative;z-index:var(--z-base)}.start-screen-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-width:0}.start-brand{display:inline-flex;align-items:baseline;flex:1 1 auto;min-width:0;gap:var(--space-sm)}.start-brand-mark{color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-md);font-weight:900;line-height:1}.start-brand-name{overflow:hidden;color:var(--color-ink-muted);font-size:var(--text-sm);font-weight:500;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.start-language{flex:0 1 auto;width:min(44vw,15rem);min-width:0}.start-screen .language-picker{min-height:44px;min-width:0;width:100%;max-width:100%;border:var(--rule) solid var(--color-rule-strong);border-radius:var(--radius-tight);padding:var(--space-xs) var(--space-sm);color:var(--color-ink);background:var(--color-paper-raised);font-family:var(--font-body);font-size:var(--text-sm);transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out)}.start-screen .language-picker:focus-visible,.start-action:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.start-workbench{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:var(--space-xl);width:min(100%,80rem);margin-inline:auto}.start-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.start-kicker{margin-bottom:var(--space-sm);color:var(--color-accent);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.start-title{max-width:16ch;min-width:0;color:var(--color-ink);font-family:var(--font-display);font-size:clamp(2rem,2.2vw + 1rem,3.25rem);font-style:normal;font-weight:700;letter-spacing:0;line-height:1.05;overflow-wrap:anywhere}.start-description{max-width:58ch;margin-top:var(--space-lg);color:var(--color-ink-muted);font-size:var(--text-base);line-height:1.6}.start-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-sm);width:min(100%,30rem);margin-top:var(--space-xl)}.start-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:48px;width:100%;border:var(--rule) solid var(--color-rule-strong);border-radius:var(--radius-tight);padding:var(--space-sm) var(--space-md);color:var(--color-ink);background:var(--color-paper-raised);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:600;text-align:start;transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out);white-space:nowrap}.start-action:active{transform:translateY(1px)}.start-screen .language-picker:disabled,.start-action:disabled{cursor:not-allowed;opacity:.55}.start-action-primary{border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.start-action-example{color:var(--color-ink-muted);background:transparent}.start-action-arrow{flex:0 0 auto;color:currentColor;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;line-height:1}.start-map-figure{display:block;min-width:0;margin:0;border:var(--rule) solid var(--color-rule-strong);border-radius:var(--radius-panel);background-color:var(--color-paper-raised);overflow:clip;box-shadow:var(--shadow-panel)}.start-map-image{display:block;width:100%;height:auto}.start-credits{max-width:80rem;width:100%;margin-inline:auto;border-top:var(--rule) solid var(--color-rule);padding-top:var(--space-md);color:var(--color-ink-faint);font-size:var(--text-sm);line-height:1.5}.start-reveal{opacity:0;transform:translateY(8px);animation:start-reveal var(--dur-long) var(--ease-out) forwards;animation-delay:calc(var(--start-order) * 60ms)}@keyframes start-reveal{to{opacity:1;transform:translateY(0)}}.start-file-input{display:none}.example-map-picker-overlay{position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-md);background:#010000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.example-map-picker{width:min(100%,38rem);border:var(--rule) solid var(--color-rule-strong);border-radius:var(--radius-panel);padding:var(--space-lg);color:var(--color-ink);background:var(--color-paper-raised);box-shadow:var(--shadow-panel);animation:modalAppear var(--dur-short) var(--ease-out)}.example-map-picker-header{margin-bottom:var(--space-lg)}.example-map-picker-header h2{color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);line-height:1.15}.example-map-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.example-map-option,.example-map-picker-cancel{border:var(--rule) solid var(--color-rule-strong);border-radius:var(--radius-tight);color:var(--color-ink);background:var(--color-paper-high);font:inherit;font-weight:700;cursor:pointer}.example-map-option{min-height:4.5rem;padding:var(--space-md);font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:.035em;line-height:1.2;text-align:left;transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out)}.example-map-picker-cancel{width:100%;min-height:2.75rem;margin-top:var(--space-lg);padding:var(--space-xs) var(--space-md);color:var(--color-ink-muted);background:transparent}.example-map-option:focus-visible,.example-map-picker-cancel:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(hover:hover)and (pointer:fine){.example-map-option:hover{border-color:var(--color-accent);color:var(--color-accent-hover);background:var(--color-paper-high)}.example-map-picker-cancel:hover{border-color:var(--color-rule-strong);color:var(--color-ink);background:var(--color-paper-high)}}@media(max-width:32rem){.example-map-picker{padding:var(--space-md)}.example-map-options{grid-template-columns:minmax(0,1fr)}}@media(hover:hover)and (pointer:fine){.start-screen .language-picker:hover,.start-action-secondary:hover,.start-action-example:hover{border-color:var(--color-accent);background:var(--color-paper-high)}.start-action-primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.start-action:hover .start-action-arrow{transform:translate(var(--space-2xs))}.start-action-arrow{transition:transform var(--dur-micro) var(--ease-out)}}@media(min-width:40rem){.start-screen{gap:var(--space-xl)}.start-map-image{aspect-ratio:1.175;object-fit:cover}}@media(max-width:32rem){.start-brand-name{display:none}}@media(min-width:60rem){.start-screen{gap:var(--space-md);padding-block:var(--space-lg)}.start-workbench{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(var(--space-xl),6vw,var(--space-3xl))}.start-title{max-width:16ch}.start-description{margin-top:var(--space-md)}.start-actions{margin-top:var(--space-lg)}.start-map-figure{justify-self:end;width:min(100%,32rem)}}@media(prefers-reduced-motion:reduce){.start-reveal{animation-duration:.15s;animation-delay:0ms}.start-action,.start-screen .language-picker,.start-action-arrow{transition-duration:.15s}}.language-picker{min-height:32px;max-width:100%;border:1px solid #353544;border-radius:5px;padding:5px 8px;color:#d4d4da;background:#171722;cursor:pointer;font-family:inherit;font-size:.8rem}.language-picker:hover{border-color:#53536b;background:#1c1c29}.language-picker:focus-visible{outline:2px solid #c9a84c;outline-offset:2px}.sidebar{width:230px;min-width:230px;height:100vh;background:#111118;border-left:1px solid #2a2a3a;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;z-index:50;flex-shrink:0;order:1}.sidebar-section{padding:10px 12px;border-bottom:1px solid #1e1e2e}.sidebar-section:last-child{border-bottom:none}.sidebar-heading{font-family:Kanit,sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#6a6a8a;margin:0 0 6px}.sidebar-actions{display:flex;flex-direction:column;gap:1px}.sidebar-btn{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;background:transparent;border:1px solid transparent;border-radius:5px;color:#ccc;font-size:12px;font-family:inherit;cursor:pointer;transition:all .12s;text-align:left}.sidebar-btn:hover:not(:disabled){background:#1a1a2e;border-color:#2a2a4a;color:#fff}.sidebar-btn:disabled{opacity:.4;cursor:not-allowed}.sidebar-btn-icon{width:16px;text-align:center;font-size:12px;flex-shrink:0}.sidebar-btn-danger{color:#a55}.sidebar-btn-danger:hover:not(:disabled){background:#2a1515;border-color:#3a2020;color:#c55}.sidebar-btn-primary{background:linear-gradient(180deg,#1a2a3a,#121828);border-color:#2a3a5a;color:#8ab4f8;font-weight:600}.sidebar-btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#2a3a5a,#1a2838);border-color:#3a4a6a;color:#acf}.sidebar-sep{height:1px;background:#1e1e2e;margin:2px 0}.language-picker-sidebar{width:100%}.sidebar-instructions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.sidebar-instructions li{display:flex;align-items:flex-start;gap:6px;font-size:11px;color:#888;line-height:1.35}.sidebar-instruction-icon{flex-shrink:0;width:14px;text-align:center;font-size:11px;margin-top:1px}.sidebar-stats{display:flex;flex-direction:column;gap:2px}.sidebar-stat-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;background:#ffffff05}.sidebar-stat-icon{width:16px;height:16px;object-fit:contain;flex-shrink:0}.sidebar-stat-icon-text{width:16px;text-align:center;font-size:12px;flex-shrink:0}.sidebar-stat-label{flex:1;min-width:0;font-size:11px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-stat-value{font-family:Kanit,sans-serif;font-size:12px;font-weight:600;min-width:32px;text-align:right}.sidebar-stat-limit-controls{display:flex;gap:2px;flex-shrink:0}.sidebar-stat-limit-btn{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid #333;border-radius:3px;background:#1a1a2a;color:#ddd;font:600 13px/1 Kanit,sans-serif;cursor:pointer}.sidebar-stat-limit-btn:hover:not(:disabled){background:#2a2a4a;border-color:#555;color:#fff}.sidebar-stat-limit-btn:disabled{opacity:.25;cursor:not-allowed}.stat-ok{color:#4aba6a}.stat-warn{color:#c55}.sidebar-stat-sep{height:1px;background:#1e1e2e;margin:2px 0}.sidebar-spawn-label{flex:1;font-size:11px;color:#aaa;text-transform:uppercase;font-weight:600;letter-spacing:.3px}.sidebar-spawn-label.stat-warn{color:#c55}.sidebar-spawn-icon{width:18px;height:18px;object-fit:contain;flex-shrink:0}.sidebar-spawn-check{color:#4aba6a;font-weight:700;font-size:11px;flex-shrink:0}.sidebar-spawn-x{color:#c55;font-weight:700;font-size:11px;flex-shrink:0}.sidebar{width:17rem;min-width:17rem;background:var(--color-sidebar);border-left:var(--rule) solid var(--color-sidebar-border);box-shadow:var(--shadow-sidebar);overflow-x:clip}.sidebar-section{padding:var(--space-md);border-bottom:var(--rule) solid var(--color-sidebar-border)}.sidebar-heading{display:block;margin:0 0 var(--space-sm);color:var(--color-sidebar-muted);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;line-height:1.2}.sidebar-action-group{display:grid;gap:var(--space-2xs)}.sidebar-field-label{display:block;margin-bottom:var(--space-xs);color:var(--color-sidebar-muted);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;line-height:1.2}.sidebar-text-input{width:100%;border:var(--rule) solid var(--color-sidebar-border);border-radius:var(--radius-tight);padding:var(--space-sm) var(--space-md);color:var(--color-sidebar-ink);background:var(--color-sidebar-raised);font:600 var(--text-sm)/1.25 var(--font-display)}.sidebar-text-input:focus{outline:2px solid rgba(196,34,35,.45);outline-offset:2px}.sidebar-download-section,.sidebar-tool-section{padding-block:var(--space-sm)}.sidebar-btn-tool{color:var(--color-sidebar-muted)}.sidebar-btn{min-height:2.375rem;gap:var(--space-sm);border:var(--rule) solid transparent;border-radius:var(--radius-tight);padding:var(--space-sm) var(--space-md);color:var(--color-sidebar-ink);background:transparent;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;line-height:1.2;transition:border-color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out);white-space:nowrap}.sidebar-btn:active:not(:disabled),.sidebar-stat-limit-btn:active:not(:disabled){transform:translateY(1px)}.sidebar-btn:focus-visible,.sidebar-stat-limit-btn:focus-visible,.sidebar .language-picker:focus-visible,.sidebar-help-summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sidebar-btn:disabled{color:var(--color-sidebar-muted)}.sidebar-btn-icon{display:grid;place-items:center;width:1rem;height:1rem;color:var(--color-sidebar-muted);flex:0 0 auto}.sidebar-btn-icon svg{width:1rem;height:1rem;stroke-width:1.8}.sidebar-btn-primary{border-color:var(--color-board-accent);color:var(--color-board-accent-ink);background:var(--color-board-accent);font-weight:700}.sidebar-btn-primary .sidebar-btn-icon,.sidebar-btn-download .sidebar-btn-icon,.sidebar-btn-danger .sidebar-btn-icon,.sidebar-btn-verification-active .sidebar-btn-icon{color:currentColor}.sidebar-btn-download{border-color:var(--color-sidebar-border);color:var(--color-board-accent);background:var(--color-sidebar-raised);font-weight:600}.sidebar-btn-danger{color:var(--color-sidebar-danger)}.sidebar-btn-verification-active{border-color:var(--color-board-accent);color:var(--color-board-accent);background:var(--color-sidebar-raised)}@media(hover:hover)and (pointer:fine){.sidebar-btn:hover:not(:disabled){border-color:var(--color-sidebar-border);color:var(--color-sidebar-ink);background:var(--color-sidebar-hover)}.sidebar-btn-primary:hover:not(:disabled){border-color:var(--color-board-accent-hover);color:var(--color-board-accent-ink);background:var(--color-board-accent-hover)}.sidebar-btn-download:hover:not(:disabled){border-color:var(--color-board-accent);color:var(--color-board-accent-hover)}.sidebar-btn-danger:hover:not(:disabled){border-color:var(--color-sidebar-danger);color:var(--color-sidebar-danger);background:var(--color-sidebar-danger-bg)}.sidebar-btn-verification-active:hover:not(:disabled){border-color:var(--color-board-accent-hover);color:var(--color-board-accent-hover)}}.sidebar .language-picker{min-height:2.375rem;width:100%;border:var(--rule) solid var(--color-sidebar-border);border-radius:var(--radius-tight);padding:var(--space-xs) var(--space-sm);color:var(--color-sidebar-ink);background:var(--color-sidebar-raised);font-family:var(--font-body);font-size:var(--text-sm)}@media(hover:hover)and (pointer:fine){.sidebar .language-picker:hover{border-color:var(--color-board-accent);background:var(--color-sidebar-hover)}}.sidebar-stats{gap:0;overflow:clip;border:var(--rule) solid var(--color-sidebar-border);border-radius:var(--radius-tight);background:var(--color-sidebar-raised)}.sidebar-stat-row{min-height:2.375rem;gap:var(--space-xs);border-radius:0;border-bottom:var(--rule) solid var(--color-sidebar-border);padding:var(--space-xs) var(--space-sm);background:transparent}.sidebar-stat-row:last-child{border-bottom:0}.sidebar-stat-icon,.sidebar-spawn-icon{width:1.125rem;height:1.125rem}.sidebar-stat-icon-text{display:grid;place-items:center;width:1.125rem;height:1.125rem;color:var(--color-sidebar-muted)}.sidebar-stat-icon-text svg{width:1rem;height:1rem;stroke-width:1.7}.sidebar-stat-label,.sidebar-spawn-label{color:var(--color-sidebar-ink);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.2}.sidebar-stat-value{min-width:2.5rem;color:var(--color-sidebar-muted);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700}.sidebar-stat-limit-controls{gap:var(--space-3xs)}.sidebar-stat-limit-btn{width:1.625rem;height:1.625rem;border:var(--rule) solid var(--color-sidebar-border);border-radius:var(--radius-tight);color:var(--color-sidebar-ink);background:var(--color-sidebar);font-family:var(--font-body);transition:border-color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.sidebar-stat-limit-btn svg{width:.875rem;height:.875rem;stroke-width:2}@media(hover:hover)and (pointer:fine){.sidebar-stat-limit-btn:hover:not(:disabled){border-color:var(--color-board-accent);color:var(--color-board-accent);background:var(--color-sidebar-hover)}}.sidebar-stat-limit-btn:disabled{color:var(--color-sidebar-muted)}.sidebar-stat-sep{display:none}.stat-ok,.sidebar-spawn-check{color:var(--color-sidebar-success)}.stat-warn,.sidebar-spawn-label.stat-warn,.sidebar-spawn-x{color:var(--color-sidebar-danger)}.sidebar-spawns{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-xs)}.sidebar-spawn{display:grid;place-items:center;min-width:0;aspect-ratio:1;border:2px solid var(--color-sidebar-border);border-radius:var(--radius-tight);background:var(--color-sidebar-raised)}.sidebar-spawn-missing{border-color:var(--color-sidebar-danger)}.sidebar-spawn-icon{object-fit:contain}.sidebar-help-section{padding-block:var(--space-sm)}.sidebar-help-summary{display:flex;align-items:center;justify-content:space-between;min-height:2rem;gap:var(--space-sm);cursor:pointer;list-style:none}.sidebar-help-summary::-webkit-details-marker{display:none}.sidebar-help-summary .sidebar-heading{margin:0}.sidebar-help-summary>svg{width:1rem;height:1rem;color:var(--color-sidebar-muted);transition:transform var(--dur-micro) var(--ease-out)}.sidebar-help[open] .sidebar-help-summary>svg{transform:rotate(180deg)}.sidebar-instructions{gap:var(--space-sm);margin:var(--space-sm) 0 var(--space-xs);padding:var(--space-sm) 0 0;border-top:var(--rule) solid var(--color-sidebar-border)}.sidebar-instructions li{gap:var(--space-sm);color:var(--color-sidebar-muted);font-family:var(--font-body);font-size:var(--text-sm)}.sidebar-instruction-icon{display:grid;place-items:center;width:1rem;height:1rem;color:var(--color-sidebar-muted)}.sidebar-instruction-icon svg{width:.875rem;height:.875rem;stroke-width:1.8}@media(prefers-reduced-motion:reduce){.sidebar-btn,.sidebar-stat-limit-btn,.sidebar-help-summary>svg{transition-duration:.15s}}.game-board-view{width:100%;height:100%;min-width:0;min-height:0;display:flex;flex-direction:column}.board-view-toolbar{min-height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 14px;background:#111117;border-bottom:1px solid #30303a}.board-zoom-controls{display:flex;align-items:center;gap:7px;min-width:0}.board-view-options{display:flex;align-items:center;gap:12px}.board-zoom-icon-btn,.board-zoom-mode-btn{height:32px;border:1px solid #3a3a45;border-radius:4px;background:#202028;color:#ddd;font:inherit;cursor:pointer}.board-zoom-icon-btn{width:32px;flex:0 0 32px;font-size:20px;line-height:1}.board-zoom-mode-btn{min-width:52px;padding:0 10px;font-size:12px;font-weight:650}.board-zoom-icon-btn:hover,.board-zoom-mode-btn:hover,.board-zoom-mode-btn.active{color:#fff;background:#30303a;border-color:#c9a84c}.board-zoom-slider{width:150px;accent-color:#c9a84c}.board-zoom-output{width:48px;flex:0 0 48px;color:#c9a84c;font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.board-calibrate-btn{height:32px;padding:0 10px;border:1px solid #c9a84c;border-radius:4px;background:#202028;color:#c9a84c;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.board-calibrate-btn:hover{color:#fff;background:#30303a}.board-calibrate-btn.calibrated{border-color:#4aba6a;color:#d3f7dc;background:#1b4227}.board-calibrate-btn.calibrated:hover{border-color:#74d28c;color:#fff;background:#285f39}.board-top-bar-toggle,.board-guides-toggle{min-height:32px;display:flex;align-items:center;gap:7px;color:#aaa;font-size:12px;cursor:pointer;white-space:nowrap}.board-top-bar-toggle input,.board-guides-toggle input{accent-color:#c9a84c}.game-board-viewport{flex:1;min-width:0;min-height:0;overflow:auto;scrollbar-gutter:stable}.game-board-scroll-inner{width:max-content;height:max-content;min-width:100%;min-height:100%;display:grid;place-items:center;padding:24px}.game-board-scale-shell{position:relative;flex:none;overflow:hidden;border-radius:6px;box-shadow:0 4px 30px #0009}.game-board-container{position:relative;background:#2a2218;overflow:hidden}.game-board-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:0}.game-board-top-bar{position:absolute;top:0;left:0;width:100%;display:block;object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:1}.game-board-map-name{position:absolute;line-height:1;font-family:Kanit,sans-serif;font-weight:600;letter-spacing:0;text-transform:uppercase;color:#b4b4b4;text-shadow:0 .45px .8px rgba(0,0,0,.65);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:3}.game-board-no-bg{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#222,#222 25%,#1a1a1a 0%,#1a1a1a 50%) 0 0 / 3.4px 3.4px;color:#555;font-size:2.4px;font-family:Kanit,sans-serif;text-align:center;padding:7px;pointer-events:none}.board-guides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;width:100%;height:100%;overflow:visible;pointer-events:none}.board-guides line,.board-guides rect{vector-effect:non-scaling-stroke}.board-reserved-area{fill:#b437371a}.board-reserved-boundary{stroke:#dc5a50e6;stroke-width:1px;stroke-dasharray:7 5}.board-safe-area{fill:none;stroke:#5ad291d9;stroke-width:1px;stroke-dasharray:6 4}.board-fold-guide{stroke:#c9a84ce6;stroke-width:1px;stroke-dasharray:9 5 2 5}.board-scale-ruler{fill:#fff;stroke:#ffffffe6;stroke-width:1px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:4px}.board-scale-ruler text{stroke:none;letter-spacing:0}.game-board-container.connecting,.connecting .room-tile{cursor:crosshair}.connecting .room-tile:hover{outline:.25px solid #c9a84c;outline-offset:.2px}.room-connection-active,.room-connection-active .room-tile{cursor:crosshair}.connect-tooltip{position:fixed;z-index:10000;pointer-events:none;background:#14141eeb;border:1px solid #c9a84c;border-radius:6px;padding:6px 10px;font-size:12px;color:#c9a84c;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px #00000080}.room-tile{position:absolute;z-index:2;cursor:grab;-webkit-user-select:none;user-select:none;isolation:isolate;overflow:visible;background:transparent}.room-tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;clip-path:polygon(.8% 1.4%,4% .3%,8% 1%,12% .2%,17% 1.1%,22% .4%,28% 1%,35% .1%,42% .8%,50% .2%,58% 1%,66% .2%,74% .9%,82% .2%,89% 1.1%,95% .3%,99.2% 1.5%,99.8% 6%,99.2% 12%,100% 19%,99.3% 27%,99.9% 35%,99.2% 44%,100% 53%,99.3% 62%,99.9% 72%,99.2% 81%,100% 90%,99% 98.5%,95% 99.4%,89% 98.8%,82% 99.7%,75% 98.9%,68% 99.6%,60% 98.8%,52% 99.7%,45% 99%,37% 99.6%,30% 98.8%,23% 99.7%,16% 98.8%,10% 99.6%,4% 98.9%,.8% 97.7%,.2% 92%,.8% 85%,0% 77%,.7% 69%,.1% 61%,.8% 53%,0% 44%,.7% 36%,.1% 27%,.8% 19%,.1% 10%)}.room-tile:before{background:var(--room-dark-color);filter:drop-shadow(.25px .35px 1.35px rgba(0,0,0,.72))}.room-tile-frame{position:absolute;inset:var(--room-frame-inset);z-index:1;display:flex;flex-direction:column;gap:0;overflow:hidden;padding:var(--room-frame-thickness);background:var(--room-color)}.room-tile:active{cursor:grabbing}.room-tile.dragging{opacity:.85;z-index:10}.room-tile.dragging:before{filter:drop-shadow(.5px .7px 2px rgba(0,0,0,.9))}.room-tile.connection-preview:after{content:"";position:absolute;top:-.9px;right:-.9px;bottom:-.9px;left:-.9px;z-index:3;pointer-events:none;border:.45px solid rgba(205,211,220,.8);box-shadow:0 0 3px #c6ceda9e}.room-header{flex-shrink:0;display:flex;align-items:center;position:relative;isolation:isolate;overflow:hidden;background:var(--room-color)}.room-header-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;display:block;object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none}.initial-placement-icon{flex-shrink:0;position:relative;z-index:1}.room-header-content{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;z-index:1}.room-name{font-family:Kanit,sans-serif;font-weight:700;color:var(--room-text-color);text-transform:uppercase;letter-spacing:0;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;padding-top:.1px;text-shadow:var(--room-text-shadow)}.room-name-input{font-family:Kanit,sans-serif;font-weight:700;color:var(--room-text-color);text-shadow:var(--room-text-shadow);text-transform:uppercase;letter-spacing:0;line-height:1.35;background:#ffffff1a;border:.1px solid #c9a84c;border-radius:.25px;outline:none;padding:.1px .35px 0;width:100%;display:block}.room-prop-tiles{display:flex;flex-wrap:wrap}.prop-tile-group{display:flex;align-items:center}.prop-tile-icon{display:inline-block;object-fit:contain}.room-image-frame{position:relative;flex:1;min-height:0;padding:var(--room-image-frame-thickness);overflow:hidden;background:var(--room-dark-color)}.room-image-container{position:relative;width:100%;height:100%;overflow:hidden;background:#171719}.room-image{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.room-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#1a1a1d;color:#555;font-size:1.2px}.path-overlay{position:absolute;top:0;left:0;z-index:1}.path-group{cursor:pointer}.path-group:hover polyline:last-of-type{filter:brightness(1.3) drop-shadow(0 0 .8px rgba(255,255,255,.7))}.room-connection-preview-line{filter:drop-shadow(0 0 .8px rgba(226,230,236,.48))}.path-movement-icon{cursor:grab}.path-movement-icon:active{cursor:grabbing}.path-movement-icon.destination-preview .path-destination-preview-highlight{filter:drop-shadow(0 0 1.5px rgba(226,230,236,.82))}.ctx-menu{background:#1a1a2e;border:1px solid #3a3a5a;border-radius:8px;padding:4px 0;min-width:200px;box-shadow:0 8px 32px #000000b3;font-size:13px;-webkit-user-select:none;user-select:none}.ctx-item{padding:8px 16px;cursor:pointer;transition:background .1s;color:#ddd}.ctx-item:hover{background:#2a2a4a}.ctx-disabled{opacity:.35;cursor:not-allowed}.ctx-disabled:hover{background:transparent}.ctx-danger{color:#c55}.ctx-danger:hover{background:#2a1515}.ctx-sep{height:1px;background:#2a2a3a;margin:4px 8px}.ctx-custom{padding:4px 12px}.ctx-prop-tile-row{display:flex;align-items:center;gap:6px;padding:3px 0}.ctx-prop-tile-icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.ctx-prop-tile-label{flex:1;font-size:12px;color:#aaa}.ctx-prop-tile-count{font-size:13px;font-weight:600;width:20px;text-align:center;font-family:Kanit,sans-serif}.ctx-prop-tile-btn{width:22px;height:22px;border:1px solid #333;background:#1a1a2a;color:#ddd;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0}.ctx-prop-tile-btn:hover:not(:disabled){background:#2a2a4a;border-color:#555}.ctx-prop-tile-btn:disabled{opacity:.25;cursor:not-allowed}.ctx-colors{display:flex;gap:8px;padding:6px 0;justify-content:center}.ctx-color-btn{width:36px;height:36px;border-radius:6px;border:2px solid rgba(255,255,255,.15);cursor:pointer;transition:all .1s}.ctx-color-btn:hover{border-color:#fff;transform:scale(1.15)}.ctx-initial-placement-options{display:flex;gap:4px;flex-wrap:wrap;max-width:200px}.ctx-initial-placement-option{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:2px;border:2px solid transparent;border-radius:4px;transition:all .1s}.ctx-initial-placement-option:hover{border-color:#ffffff4d}.ctx-initial-placement-option:has(input:checked){border-color:#c9a84c;background:#c9a84c26}.ctx-initial-placement-option.ctx-initial-placement-used{opacity:.4}.ctx-initial-placement-option input[type=radio]{display:none}.ctx-initial-placement-icon{width:28px;height:28px;object-fit:contain}.ctx-control-heading{margin-bottom:7px;color:#92929f;font-size:11px;font-weight:600;letter-spacing:0;text-transform:uppercase}.room-color-control{width:208px;padding:2px 0 4px}.room-color-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:9px}.room-color-preset{width:32px;height:26px;padding:0;border:3px solid rgba(28,28,32,.72);border-radius:4px;cursor:pointer;transition:border-color .1s,outline-color .1s,transform .1s}.room-color-preset:hover{transform:translateY(-1px)}.room-color-preset.active{outline:2px solid #c9a84c;outline-offset:2px}.room-color-preset:focus-visible{outline:2px solid #f0d778;outline-offset:2px}.room-color-control .react-colorful{width:100%;height:132px;margin-bottom:8px}.room-color-control .react-colorful__saturation{border-radius:5px 5px 0 0}.room-color-control .react-colorful__hue{height:18px;border-radius:0 0 5px 5px}.room-color-control .react-colorful__pointer{width:18px;height:18px}.room-color-value{display:flex;align-items:center;gap:7px}.room-color-value-swatch{width:30px;height:30px;flex-shrink:0;border:3px solid rgba(28,28,32,.72);border-radius:4px}.room-color-value-input{width:100%;min-width:0;height:30px;box-sizing:border-box;border:1px solid #3c3c51;border-radius:4px;outline:none;background:#11111c;color:#ededf2;font-family:Consolas,monospace;font-size:12px;letter-spacing:0;padding:0 8px;text-transform:uppercase}.room-color-value-input:focus{border-color:#c9a84c;box-shadow:0 0 0 1px #c9a84c}.ctx-breakable-wall-toggle{display:flex;gap:8px}.ctx-breakable-wall-btn{flex:1;padding:8px 16px;background:#1a1a2a;border:2px solid #333;border-radius:6px;color:#888;font-family:Kanit,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.ctx-breakable-wall-btn:hover:not(.disabled){background:#2a2a4a;border-color:#555;color:#ddd}.ctx-breakable-wall-btn.active{background:#2a3a2a;border-color:#4a8;color:#8c8}.ctx-breakable-wall-btn.disabled{opacity:.4;cursor:not-allowed}.validation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.validation-modal{background:linear-gradient(180deg,#1a1a2e,#12121c);border:2px solid #cc5555;border-radius:12px;padding:24px;min-width:320px;max-width:480px;box-shadow:0 16px 48px #000c;animation:modalAppear .2s ease-out}@keyframes modalAppear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.validation-modal-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #333}.validation-modal-icon{font-size:28px}.validation-modal-header h2{margin:0;font-family:Kanit,sans-serif;font-size:20px;font-weight:600;color:#c55}.validation-modal-content{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.validation-error-item{background:#cc55551a;border-left:3px solid #cc5555;padding:12px 14px;border-radius:0 6px 6px 0;font-size:14px;color:#ddd;line-height:1.4;transition:background .15s ease}.validation-error-item:hover{background:#cc555526}.validation-error-message{font-weight:500;color:#eee}.validation-error-description{margin-top:8px;font-size:13px;color:#aaa;line-height:1.5}.validation-modal-close{width:100%;padding:12px 20px;background:linear-gradient(180deg,#2a2a4a,#1a1a2e);border:1px solid #444;border-radius:8px;color:#fff;font-family:Kanit,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.validation-modal-close:hover{background:linear-gradient(180deg,#3a3a5a,#2a2a3e);border-color:#555}.image-placement-overlay{padding:16px}.image-placement-modal{width:min(640px,calc(100vw - 32px));max-width:640px;max-height:calc(100vh - 32px);border-color:#c9a84c;padding:20px;overflow-y:auto}.image-placement-modal .validation-modal-header{margin-bottom:14px;padding-bottom:12px}.image-placement-modal .validation-modal-header h2{color:#c9a84c}.image-placement-preview{position:relative;width:min(100%,560px);margin:0 auto;overflow:hidden;background:#09090d;outline:1px solid #4b4b58;border-radius:6px;cursor:grab;touch-action:none}.image-placement-preview.is-dragging{cursor:grabbing}.image-placement-preview-frame{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.image-placement-preview-image{display:block;pointer-events:none}.image-placement-preview-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,transparent 33.2%,rgba(255,255,255,.34) 33.3%,transparent 33.5%),linear-gradient(to right,transparent 66.5%,rgba(255,255,255,.34) 66.7%,transparent 66.8%),linear-gradient(to bottom,transparent 33.2%,rgba(255,255,255,.34) 33.3%,transparent 33.5%),linear-gradient(to bottom,transparent 66.5%,rgba(255,255,255,.34) 66.7%,transparent 66.8%)}.image-placement-pan-hint{position:absolute;right:8px;bottom:8px;padding:4px 7px;border-radius:4px;background:#000000a8;color:#f2f2f2;font-size:12px;pointer-events:none}.image-placement-controls{display:flex;align-items:end;gap:16px;margin-top:15px}.image-placement-zoom{flex:1;color:#dedee5;font-size:13px;font-weight:600}.image-placement-zoom>div{display:flex;align-items:center;gap:10px;margin-top:5px}.image-placement-zoom input{flex:1;accent-color:#c9a84c}.image-placement-zoom output{min-width:40px;color:#c9a84c;font-variant-numeric:tabular-nums;text-align:right}.image-placement-reset,.image-placement-cancel,.image-placement-apply{min-height:36px;border-radius:6px;padding:8px 13px;color:#eee;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.image-placement-reset,.image-placement-cancel{border:1px solid #444;background:#20202a}.image-placement-reset:hover,.image-placement-cancel:hover{border-color:#666;background:#2b2b38}.image-placement-description{margin:13px 0 16px;color:#aaaab5;font-size:12px;line-height:1.45}.image-placement-actions{display:flex;justify-content:end;gap:8px}.image-placement-apply{border:1px solid #d8b955;background:#c9a84c;color:#16130b}.image-placement-apply:hover{border-color:#f0d274;background:#dbb955}@media(max-height:640px){.image-placement-modal{padding:14px}.image-placement-description{margin:8px 0 10px}}.screen-calibration-modal{width:min(620px,calc(100vw - 32px));max-width:620px;border-color:#c9a84c}.screen-calibration-modal .validation-modal-header h2{color:#c9a84c}.screen-calibration-prompt{color:#bbb;font-size:13px;line-height:1.5}.screen-calibration-ruler-scroll{overflow-x:auto;padding:8px 2px 4px}.screen-calibration-ruler{position:relative;height:58px;min-width:1px}.screen-calibration-ruler-label{position:absolute;top:0;left:50%;transform:translate(-50%);color:#ddd;font-size:12px;white-space:nowrap}.screen-calibration-ruler-line{position:absolute;left:0;right:0;bottom:12px;height:1px;background:#fff}.screen-calibration-ruler-tick{position:absolute;bottom:7px;width:1px;height:11px;background:#fff;transform:translate(-.5px)}.screen-calibration-ruler-tick.major{bottom:4px;height:17px}.screen-calibration-input-label{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#ddd;font-size:13px}.screen-calibration-input-wrap{display:flex;align-items:center;gap:7px;color:#999}.screen-calibration-input-wrap input{width:100px;height:36px;border:1px solid #444;border-radius:4px;background:#0d0d14;color:#fff;padding:0 9px;font:inherit;font-variant-numeric:tabular-nums}.screen-calibration-actions{display:grid;grid-template-columns:auto 1fr 1fr;gap:8px}.screen-calibration-actions button{min-height:40px;border-radius:4px;padding:0 14px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.screen-calibration-actions .validation-modal-close{padding:0 14px}.screen-calibration-reset{border:1px solid #444;background:#181820;color:#aaa}.screen-calibration-apply{border:1px solid #c9a84c;background:#c9a84c;color:#111}.screen-calibration-apply:disabled{opacity:.45;cursor:not-allowed}.import-modal{border-color:#58c;min-width:400px}.import-modal .validation-modal-header h2{color:#58c}.import-textarea{width:100%;min-height:150px;padding:12px;background:#0a0a12;border:1px solid #333;border-radius:6px;color:#ddd;font-family:monospace;font-size:12px;resize:vertical;box-sizing:border-box}.import-textarea:focus{outline:none;border-color:#58c}.import-textarea::placeholder{color:#666}.import-error{background:#cc55551a;border-left:3px solid #cc5555;padding:10px 14px;border-radius:0 6px 6px 0;font-size:14px;color:#c55}.import-modal-buttons{display:flex;gap:12px}.import-modal-buttons .validation-modal-close{flex:1}.import-cancel{background:linear-gradient(180deg,#2a2a3a,#1a1a22)}.import-confirm{background:linear-gradient(180deg,#2a4a6a,#1a2a3e);border-color:#58c}.import-confirm:hover{background:linear-gradient(180deg,#3a5a7a,#2a3a4e);border-color:#69d}.import-confirm:disabled{opacity:.5;cursor:not-allowed}.format-modal{border-color:#58c}.format-modal-header h2{color:#8ab4f8!important}.format-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.format-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;background:linear-gradient(180deg,#1a2a3a,#121828);border:2px solid #2a3a5a;border-radius:8px;cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;width:100%}.format-option:hover{background:linear-gradient(180deg,#2a3a5a,#1a2838);border-color:#58c;box-shadow:0 4px 16px #5588cc26}.format-option:focus-visible{outline:2px solid #8ab4f8;outline-offset:2px}.format-option-label{font-family:Kanit,sans-serif;font-size:15px;font-weight:600;color:#8ab4f8}.format-option-desc{font-size:12px;color:#888;line-height:1.4}.success-modal{border-color:#4a6}.success-modal .validation-modal-header{background:linear-gradient(180deg,#1a3a2a,#152520);border-bottom-color:#364}.success-modal .validation-modal-close{background:linear-gradient(180deg,#2a5a4a,#1a3a2e);border-color:#4a6}.success-modal .validation-modal-close:hover{background:linear-gradient(180deg,#3a6a5a,#2a4a3e);border-color:#5b7}.success-message{text-align:center;font-size:15px;color:#ddd;margin:0;padding:8px 0}.port-handle{opacity:.7;transition:opacity .15s ease}.port-handle:hover{opacity:1}.port-handle-circle{filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.path-group:hover .port-handle{opacity:1}.ctx-path-type-options{display:flex;gap:6px;flex-wrap:wrap}.ctx-path-type-btn{width:48px;height:48px;padding:4px;border:3px solid transparent;border-radius:8px;background:#1a1a1f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.ctx-path-type-btn:hover{background:#252530;transform:scale(1.05)}.ctx-path-type-active{outline:2px solid #fff;outline-offset:2px;background:#252530}.ctx-path-type-btn img{width:38px;height:38px;object-fit:contain}.verification-active,.verification-active .room-tile{cursor:crosshair}.verification-overlay{position:absolute;z-index:20;display:flex;align-items:center;justify-content:center;background:#0a0a0fc7;border-radius:.5px;pointer-events:all;cursor:crosshair;transition:background .15s}.verification-overlay:hover{background:#0a0a0f99}.verification-values{display:grid;grid-template-columns:20px 20px;align-items:center;justify-content:center;gap:6px}.verification-source{background:#c9a84c40;box-shadow:inset 0 0 0 .25px #c9a84c99}.verification-source:hover{background:#c9a84c2e}.verification-unreachable{background:#b4282880}.verification-unreachable:hover{background:#b4282859}.verification-distance{font-family:Kanit,sans-serif;font-weight:800;color:#fff;text-shadow:0 .35px 1.35px rgba(0,0,0,.8),0 .1px .25px rgba(0,0,0,.9);line-height:1;font-size:17px;width:20px;text-align:center}.verification-source .verification-distance{color:#c9a84c}.verification-unreachable .verification-distance{color:#c44;font-size:13.5px}.verification-wall-distance{position:relative;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.verification-wall-distance-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:20px;height:20px;overflow:visible;pointer-events:none}.verification-wall-distance-outline{fill:none;stroke:#000;stroke-width:2.35px;stroke-linejoin:round}.verification-wall-distance-border{fill:#1a1a1a;stroke:#b8b8c0;stroke-width:1.35px;stroke-linejoin:round}.verification-wall-distance-value{position:relative;z-index:1;font-family:Kanit,sans-serif;font-weight:800;color:#fff;text-shadow:0 .35px 1.35px rgba(0,0,0,.8),0 .1px .25px rgba(0,0,0,.9);line-height:1;font-size:12.7px}.verification-wall-distance-unreachable .verification-wall-distance-value{color:#c44;font-size:10.5px}.verification-source .verification-wall-distance-value{color:#c9a84c}.verification-hint-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:100;background:#14141eeb;border:1px solid #c9a84c;border-radius:8px;padding:10px 20px;font-size:14px;color:#c9a84c;font-weight:500;white-space:nowrap;box-shadow:0 4px 20px #00000080;animation:modalAppear .2s ease-out;pointer-events:none}@media(max-width:720px){.app{flex-direction:column}.game-board-section{width:100%;height:55vh;min-height:0;flex:0 0 55vh}.sidebar{order:1;width:100%;min-width:0;height:45vh;flex:0 0 45vh;border-top:var(--rule) solid var(--color-sidebar-border);border-left:0}.board-view-toolbar{min-height:76px;align-items:stretch;flex-direction:column;justify-content:center;gap:4px;padding:5px 8px}.board-zoom-controls{width:100%;gap:5px}.board-zoom-slider{width:auto;min-width:48px;flex:1 1 auto}.board-zoom-output{width:40px;flex-basis:40px}.board-zoom-mode-btn{min-width:44px;padding:0 7px}.board-guides-toggle,.board-top-bar-toggle{min-height:24px}.board-view-options{width:100%;justify-content:flex-end;gap:10px}.game-board-scroll-inner{padding:14px}.screen-calibration-modal{min-width:0;padding:18px}.screen-calibration-input-label{align-items:flex-start;flex-direction:column;gap:7px}.screen-calibration-actions{grid-template-columns:1fr 1fr}.screen-calibration-reset{grid-column:1 / -1}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0a0a0f}::-webkit-scrollbar-thumb{background:#333;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555}
