:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f2ef;--surface:#fff;--surface-2:#f6f5f2;--line:#e7e4de;--line-strong:#d5d1c9;--text:#1b1a18;--muted:#736f68;--faint:#a39e95;--accent:#2c7a57;--accent-hover:#24674a;--accent-soft:#e3f1e9;--on-accent:#fff;--danger:#c0392b;--cell-light:#ecdcbf;--cell-mid:#d2b38c;--cell-dark:#b48a61;--mark-last:#facc156b;--mark-selected:#3ca06999;--radius:12px;--shadow:0 1px 2px #14120f0f, 0 8px 28px #14120f17;--font:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121110;--surface:#1b1a18;--surface-2:#242320;--line:#2f2d29;--line-strong:#45423c;--text:#eeece7;--muted:#a19c93;--faint:#706c64;--accent:#5aad84;--accent-hover:#6cbd95;--accent-soft:#1d2e25;--on-accent:#0c1610;--danger:#e26d60;--cell-light:#cdbb9b;--cell-mid:#a98c6b;--cell-dark:#8a6646;--mark-last:#facc155c;--mark-selected:#54ba829e;--shadow:0 1px 2px #00000059, 0 8px 28px #0006}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121110;--surface:#1b1a18;--surface-2:#242320;--line:#2f2d29;--line-strong:#45423c;--text:#eeece7;--muted:#a19c93;--faint:#706c64;--accent:#5aad84;--accent-hover:#6cbd95;--accent-soft:#1d2e25;--on-accent:#0c1610;--danger:#e26d60;--cell-light:#cdbb9b;--cell-mid:#a98c6b;--cell-dark:#8a6646;--mark-last:#facc155c;--mark-selected:#54ba829e;--shadow:0 1px 2px #00000059, 0 8px 28px #0006}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}h1,h2,h3,p,ul,ol{margin:0}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{display:inline-flex}.muted{color:var(--muted)}.btn{border:1px solid var(--line-strong);background:var(--surface);height:36px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:550;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.btn.primary:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{border-color:var(--danger);background:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:default}.btn.block{width:100%}.btn.grow{flex:1}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:none;place-items:center;transition:background .12s,color .12s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:36px;color:var(--text);font:inherit;border-radius:8px;padding:0 10px}textarea.input{resize:vertical;height:auto;padding:8px 10px}.input:focus-visible{outline-offset:0;border-color:var(--accent)}.field{gap:5px;min-width:0;display:grid}.field-label{color:var(--muted);font-size:12.5px}.stack{gap:14px;display:grid}.actions{justify-content:flex-end;gap:8px;display:flex}.form-error{min-height:0;color:var(--danger);font-size:13px}.form-error:empty{display:none}.segmented{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:grid}.segmented button{height:30px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px;font-weight:550}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000001a}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);height:30px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:0 11px;font-size:13px}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.switches{gap:10px;display:grid}.switch{cursor:pointer;align-items:center;gap:10px;display:flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{background:var(--line-strong);border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(14px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.notice{background:var(--surface-2);border-radius:9px;gap:4px;padding:10px 12px;font-size:13px;display:grid}.notice.warn{background:color-mix(in srgb, #f5b942 18%, var(--surface))}.notice.error{background:color-mix(in srgb, var(--danger) 13%, var(--surface))}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;height:56px;padding:0 20px;display:flex}.brand{color:inherit;letter-spacing:-.01em;align-items:center;gap:10px;font-size:16px;font-weight:650;text-decoration:none;display:flex}.topnav{align-items:center;gap:6px;display:flex}.stage{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;max-width:1200px;margin:0 auto;padding:24px 20px;display:grid}.board-area{justify-content:center;min-width:0;display:flex}.board-frame{width:100%;max-width:calc((100vh - 104px) * var(--aspect,1));position:relative}.board{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;height:auto;display:block}.board.square{box-shadow:var(--shadow);border-radius:8px}.board.hex,.board.cut{box-shadow:none;filter:drop-shadow(0 6px 14px #14120f29);border-radius:0}.board.sketch{width:auto;max-width:100%;height:100%;box-shadow:none;filter:none;cursor:pointer;border-radius:4px}.board.sketch .cell.ghost{fill:#0000;stroke:var(--line-strong);stroke-width:3px;stroke-dasharray:8 8}.cell.t0{fill:var(--cell-light)}.cell.t1{fill:var(--cell-dark)}.cell.t2{fill:var(--cell-mid)}.label{font:600 15px var(--font);pointer-events:none}.label.on-dark{fill:var(--cell-light)}.label.on-light{fill:var(--cell-dark)}.mark{pointer-events:none}.mark.last{fill:var(--mark-last)}.mark.selected{fill:var(--mark-selected)}.hint{fill:#161c164d;cursor:pointer}.hint.ring{fill:none;stroke:#161c1659;stroke-width:7px}.piece.movable{cursor:pointer}.p-shadow{fill:#00000042}.piece.white .p-base{fill:#f7f2e8;stroke:#b5a892;stroke-width:2px}.piece.white .p-ring{fill:none;stroke:#3c2d1429;stroke-width:3px}.piece.black .p-base{fill:#2e2b28;stroke:#0e0d0c;stroke-width:2px}.piece.black .p-ring{fill:none;stroke:#ffffff26;stroke-width:3px}.p-mark{font:700 34px var(--font);pointer-events:none}.piece.white .p-mark{fill:#5b4a2c}.piece.black .p-mark{fill:#e9dcc0}.p-crown{fill:#e0ae35;stroke:#28190073;stroke-width:1.5px;stroke-linejoin:round}.board.thumb{width:auto;max-width:100%;height:100%;box-shadow:none;filter:none;pointer-events:none;border-radius:4px}.result{background:var(--surface);text-align:center;border-radius:16px;justify-items:center;gap:4px;min-width:230px;padding:26px 28px 22px;animation:.22s ease-out pop;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0000004d}.result-title{letter-spacing:-.01em;font-size:20px;font-weight:650}.result-reason{color:var(--muted);margin-bottom:14px}.result-close{width:30px;height:30px;position:absolute;top:6px;right:6px}@keyframes pop{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-height:440px;max-height:calc(100vh - 104px);display:flex;overflow:hidden}.game-head{border-bottom:1px solid var(--line);padding:14px 10px 12px 16px}.game-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.game-title h1{letter-spacing:-.01em;font-size:18px;font-weight:650;line-height:1.25}.game-meta{color:var(--muted);flex-wrap:wrap;gap:4px 12px;padding-right:6px;font-size:13px;display:flex}.invite{border-bottom:1px solid var(--line);background:var(--accent-soft);gap:8px;padding:12px 16px;display:grid}.player{color:var(--muted);align-items:center;gap:10px;padding:11px 16px;transition:background .15s;display:flex}.player.active{background:var(--surface-2);color:var(--text)}.disc{background:#f7f2e8;border:1px solid #b5a892;border-radius:50%;flex:none;width:14px;height:14px}.disc.black{border-color:var(--faint);background:#2e2b28}.player-name{font-weight:600}.player-level{color:var(--faint);font-size:13px}.player-count{font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.dots{gap:3px;display:inline-flex}.dots i{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s infinite both blink}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.moves{border-block:1px solid var(--line);font-variant-numeric:tabular-nums;flex:1;min-height:96px;padding:8px 16px;list-style:none;overflow-y:auto}.moves li{grid-template-columns:34px 1fr 1fr;padding:3px 0;display:grid}.move-no{color:var(--faint)}.move{overflow-wrap:anywhere}.move.last{font-weight:650}.controls{border-top:1px solid var(--line);gap:6px;padding:12px 16px;display:flex}.dialog{background:var(--surface);width:min(92vw,560px);max-height:min(90vh,920px);color:var(--text);border:0;border-radius:16px;padding:0;overflow:hidden;box-shadow:0 24px 70px #0000004d}.dialog[open]{flex-direction:column;animation:.18s ease-out rise;display:flex}.dialog.size-s{width:min(92vw,380px)}.dialog.size-l{width:min(94vw,1020px)}.dialog::backdrop{background:#0f0e0c7a}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 10px 12px 20px;display:flex}.dialog-head h2{font-size:16px;font-weight:650}.dialog-body{padding:20px;overflow-y:auto}.lead{margin-bottom:6px;font-size:15px}.rules{gap:10px;margin:16px 0 20px;padding-left:18px;line-height:1.5;display:grid}.library-section+.library-section{margin-top:26px}.library-section h3,.form-section h3{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:600}.cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:12px;transition:border-color .12s,box-shadow .12s;position:relative;overflow:hidden}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.card.current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.card-main{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.card-thumb{background:var(--surface-2);place-items:center;height:148px;padding:14px;display:grid}.card-text{padding:10px 12px 12px}.card-name{font-weight:650}.card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.card-author{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;overflow:hidden}.card-actions{background:var(--surface);border-radius:9px;gap:2px;display:flex;position:absolute;top:6px;right:6px;box-shadow:0 1px 4px #00000029}.card-actions .icon-btn{width:30px;height:30px}.dialog-body.editor{grid-template-columns:minmax(0,1fr) 280px;padding:0;display:grid;overflow:hidden}.editor-form{align-content:start;gap:24px;padding:20px;display:grid;overflow-y:auto}.editor-form.busy .form-section{opacity:.5;pointer-events:none}.editor-side{border-left:1px solid var(--line);background:var(--surface-2);align-content:start;gap:10px;padding:20px;display:grid;overflow-y:auto}.editor-preview{place-items:center;height:240px;display:grid}.editor-preview:empty{display:none}.editor-name{overflow-wrap:anywhere;font-size:16px;font-weight:650}.editor-side .stack{gap:8px;margin-top:8px}.ai-bar{gap:8px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.field.wide,.switches.wide{grid-column:1/-1}.home{gap:56px;max-width:1080px;margin:0 auto;padding:56px 20px 72px;display:grid}.hero{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:center;gap:48px;display:grid}.hero h1{letter-spacing:-.025em;font-size:clamp(30px,4.4vw,46px);font-weight:700;line-height:1.1}.hero p{max-width:34em;color:var(--muted);margin-top:16px;font-size:17px;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.btn.large{border-radius:11px;height:44px;padding:0 22px;font-size:15px}.hero-board{place-items:center;height:360px;display:grid}.hero-board .board{filter:drop-shadow(0 14px 28px #14120f33)}.features{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.feature{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px}.feature-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:9px;place-items:center;margin-bottom:12px;display:grid}.feature h3{font-size:15px;font-weight:650}.feature p{color:var(--muted);margin-top:4px;font-size:13.5px}.showcase-head{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.showcase-head h2{letter-spacing:-.01em;font-size:20px;font-weight:650}.prompt-box{gap:10px;display:grid}.input.prompt{font-size:15px;line-height:1.45}.prompt-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.prompt-examples{gap:6px;display:grid}.prompt-examples:empty{display:none}.example{border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:9px;padding:9px 12px}.example:hover{border-color:var(--line-strong)}.link.manual{color:var(--muted);justify-self:start}.link.danger{color:var(--danger)}.btn.add-piece{justify-self:start}.wide{grid-column:1/-1}.dialog-body.editor.compact{grid-template-columns:1fr}.dialog-body.editor.compact .editor-side{display:none}@media (max-width:900px){.stage{grid-template-columns:1fr;gap:12px;padding:12px}.board-frame{max-width:min(100%, calc((100vh - 180px) * var(--aspect,1)))}.panel{min-height:0;max-height:none}.moves{max-height:168px}.dialog-body.editor{grid-template-columns:1fr;overflow-y:auto}.editor-form,.editor-side{overflow:visible}.editor-side{border-bottom:1px solid var(--line);border-left:0;order:-1}.editor-preview{height:260px}.home{gap:36px;padding:28px 16px 48px}.hero{grid-template-columns:1fr;gap:20px}.hero-board{order:-1;height:260px}.features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.topbar{padding:0 12px}.features{grid-template-columns:1fr}.topnav .btn{padding:0 10px}.topnav .btn span:not(.icon){display:none}.form-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
