:root{--text:#9aa0ae;--text-h:#f4f5f7;--bg:#101218;--bg-2:#171a22;--border:#2a2e3a;--cell:#1d212c;--accent:#7c6cff;--accent-bg:#7c6cff29;--accent-border:#7c6cff80;--shadow:#00000059 0 12px 28px -8px, #0003 0 4px 10px -4px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);letter-spacing:.18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;overflow:hidden}body{overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;height:100%;margin:0;overflow:hidden}#root{box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;height:100%;min-height:100dvh;margin:0;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{letter-spacing:-.8px;margin:0;font-size:28px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}h2{letter-spacing:-.3px;margin:0;font-size:22px;line-height:118%}p{margin:0}button{font:inherit;cursor:pointer}.app{background:var(--bg);height:100%;min-height:100dvh;position:relative;overflow:hidden}.hud{top:env(safe-area-inset-top,0px);left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);z-index:3;box-sizing:border-box;pointer-events:none;background:linear-gradient(#101218b8 0%,#10121800 100%);justify-content:space-between;align-items:center;gap:12px;width:auto;margin:0;padding:8px 10px;display:flex;position:absolute}.hud>*{pointer-events:auto}.modes{gap:4px;display:flex}.modes a{color:var(--text);border:1px solid #0000;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:600;text-decoration:none}.modes a:hover{color:var(--text-h)}.modes a.active{color:var(--text-h);background:var(--accent-bg);border-color:var(--accent-border)}.level-chip{color:var(--text);border:1px solid var(--border);background:#171a22d1;border-radius:999px;flex-shrink:0;align-items:center;gap:2px;padding:2px;font-size:13px;display:flex}.level-picker{align-items:center;display:flex}.level-picker select{font:inherit;color:var(--text-h);text-align:center;background:0 0;border:none;max-width:3.6rem;padding:4px 2px;font-weight:600}.level-step{width:36px;height:36px;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:999px;font-size:20px;line-height:1}.level-step:hover:not(:disabled){background:var(--accent-bg)}.level-step:disabled{opacity:.35;cursor:default}.level-step:focus-visible,.level-picker select:focus-visible,.modes a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar{left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:3;box-sizing:border-box;align-items:center;gap:8px;width:auto;margin:0;padding:0;display:flex;position:absolute;transform:translate(-50%)}.ghost,.primary{border:1px solid #0000;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;transition:border-color .15s,background .15s,opacity .15s}.ghost{color:var(--text-h);border-color:var(--border);background:#171a22d1}.ghost:hover:not(:disabled){border-color:var(--accent-border)}.ghost:disabled{opacity:.38;cursor:default}.primary{color:#fff;background:var(--accent);min-width:140px}.primary:hover{filter:brightness(1.08)}.ghost:focus-visible,.primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.board-frame{justify-content:center;align-items:center;min-height:0;padding:0;display:flex;position:absolute;inset:0;container-type:size}.board{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;max-width:none;height:100%;max-height:none;display:block}.board-freeform{aspect-ratio:auto;width:100%;height:100%}.board-bg{fill:var(--bg)}.board-cell{fill:var(--cell)}.join-glow,.join-glow-ring,.join-glow-dot{transform-box:fill-box;transform-origin:50%;pointer-events:none}.join-glow{animation:.72s ease-out join-glow-fill}.join-glow-ring{animation:.72s ease-out join-glow-ring}.join-glow-dot{animation:.55s ease-out join-glow-dot}@keyframes join-glow-fill{0%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}@keyframes join-glow-ring{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}@keyframes join-glow-dot{0%{transform:scale(1)}32%{transform:scale(1.42)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.join-glow,.join-glow-ring,.join-glow-dot{animation-duration:.01ms;animation-iteration-count:1}}.overlay{z-index:4;background:#0a0c128c;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.overlay-card{text-align:center;background:var(--bg-2);border:1px solid var(--border);box-sizing:border-box;border-radius:16px;flex-direction:column;align-items:center;gap:10px;max-width:min(320px,100%);padding:22px 26px 20px;display:flex}.overlay-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:12px}.overlay-card h2{margin-bottom:8px}@media (width<=640px){.hud{gap:8px;padding:6px 8px}.modes a{align-items:center;min-height:40px;padding:8px 12px;font-size:13px;display:inline-flex}.level-step{width:40px;height:40px}.ghost,.primary{min-height:44px;padding:10px 16px}.primary{min-width:0}}@media (height<=500px) and (orientation:landscape){.hud{padding:4px 8px}.modes a{min-height:36px;padding:6px 10px}.ghost,.primary{min-height:40px;padding:8px 14px}.toolbar{bottom:calc(6px + env(safe-area-inset-bottom,0px))}}
