.ui-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ui-spacer{margin-left:auto}.ui-grid{gap:var(--space-3);display:grid}.ui-grid--2{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.ui-grid--3{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.ui-stack{gap:var(--space-4);flex-direction:column;display:flex}.ui-field{flex-direction:column;min-width:0;display:flex}.ui-label{margin:0 0 var(--space-2);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-faint);font-weight:700;display:block}.ui-input,.ui-area,.ui-select{width:100%;padding:var(--space-3);border:var(--border-width) solid var(--c-border);background:var(--c-surface);color:var(--c-text);font-family:var(--font-mono);font-size:var(--step--1);font-variant-numeric:tabular-nums;border-radius:0}.ui-input:focus-visible,.ui-area:focus-visible,.ui-select:focus-visible{border-color:var(--c-accent);box-shadow:var(--shadow-sm);outline:none}.ui-area{resize:vertical;line-height:var(--leading-snug)}.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.5rem;padding:0 var(--space-4);border:var(--border-width) solid var(--c-border);background:var(--c-surface);color:var(--c-text);font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:box-shadow var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);border-radius:0;font-weight:700;display:inline-flex}.ui-btn:hover:not(:disabled){border-color:var(--c-accent);color:var(--c-accent);box-shadow:var(--shadow-sm);transform:translate(-1px,-1px)}.ui-btn:active:not(:disabled){box-shadow:none;transform:none}.ui-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.ui-btn--primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-contrast)}.ui-btn--primary:hover:not(:disabled){color:var(--c-accent-contrast);border-color:var(--c-accent-hover);box-shadow:var(--shadow-ink-2)}.ui-btn--ghost{background:0 0}.ui-btn--sm{min-height:2rem;padding:0 var(--space-3);font-size:var(--step--2)}.ui-panel{padding:var(--space-4);border:var(--border-width) solid var(--c-border);background:var(--c-surface);border-radius:0}.ui-panel--flat{background:var(--c-bg-subtle)}.ui-note{padding:var(--space-3) var(--space-4);border-left:var(--ink-bar-width) solid var(--c-text-faint);background:var(--c-bg-subtle);font-size:var(--step--1);color:var(--c-text-muted);margin:0}.ui-note--err{border-left-color:var(--c-accent);color:var(--c-text)}.ui-note--ok{border-left-color:var(--c-ink-2)}.ui-empty{padding:var(--space-6);border:var(--border-hair) dashed var(--c-border);color:var(--c-text-faint);font-size:var(--step--1);text-align:center;margin:0}.ui-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ui-faint{color:var(--c-text-faint)}.ui-stats{gap:var(--space-5);flex-wrap:wrap;display:flex}.ui-stat{flex-direction:column;gap:2px;display:flex}.ui-stat .k{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-faint);font-weight:700}.ui-stat .v{font-family:var(--font-mono);font-size:var(--step-2);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.ui-stat .v.is-accent{color:var(--c-accent)}.ui-tabs{border-bottom:var(--border-width) solid var(--c-border);flex-wrap:wrap;display:flex}.ui-tab{min-height:2.25rem;margin-bottom:calc(var(--border-width) * -1);padding:0 var(--space-4);border:0;border-bottom:var(--border-width) solid transparent;color:var(--c-text-muted);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;font-weight:700}.ui-tab:hover{color:var(--c-accent)}.ui-tab.is-on{color:var(--c-text);border-bottom-color:var(--c-accent)}.ui-table{border-collapse:collapse;width:100%;font-size:var(--step--1)}.ui-table th,.ui-table td{padding:var(--space-2) var(--space-3);border-bottom:var(--border-hair) solid var(--c-border);text-align:left}.ui-table th{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-faint);font-weight:700}.ui-check{align-items:center;gap:var(--space-2);font-size:var(--step--1);color:var(--c-text-muted);cursor:pointer;display:inline-flex}.ui-check input{width:1.05rem;height:1.05rem;accent-color:var(--c-accent)}.ui-overlay{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--c-bg);opacity:.95;text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.ui-overlay-title{font-size:var(--step-2);margin:0;font-weight:800}.ui-overlay-sub{color:var(--c-text-muted);font-size:var(--step--1);margin:0}.tgomoku{align-items:center;gap:var(--space-4);flex-direction:column;width:100%;display:flex}.tgomoku .hud{align-items:center;gap:var(--space-3);flex-wrap:wrap;width:min(100%,34rem);display:flex}.tgomoku .turn{font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-faint);margin:0}.tgomoku .turn.is-over{color:var(--c-accent)}.tgomoku .board-wrap{gap:var(--space-3);flex-direction:column;width:min(100%,34rem);display:flex}.tgomoku .board{--board:100%;--line:color-mix(in oklab, var(--c-border) 70%, transparent);width:var(--board);aspect-ratio:1;border:var(--border-width) solid var(--c-border);background:var(--c-bg-subtle);position:relative}.tgomoku .board .grid-lines{background-image:linear-gradient(to right, transparent 50%, var(--line) 50%, var(--line) calc(50% + 1px), transparent calc(50% + 1px)), linear-gradient(to bottom, transparent 50%, var(--line) 50%, var(--line) calc(50% + 1px), transparent calc(50% + 1px));pointer-events:none;background-size:6.66667% 6.66667%;position:absolute;inset:0}.tgomoku .board .points{grid-template-rows:repeat(15,1fr);grid-template-columns:repeat(15,1fr);display:grid;position:absolute;inset:0}.tgomoku .pt{cursor:pointer;background:0 0;border:0;padding:0;position:relative}.tgomoku .pt:after{content:"";transition:background 90ms var(--ease);background:0 0;border-radius:50%;position:absolute;inset:14%}.tgomoku .pt.is-star:before{content:"";background:var(--c-border);z-index:1;border-radius:50%;position:absolute;inset:43%}.tgomoku .pt[data-who="1"]:after{background:var(--c-text)}.tgomoku .pt[data-who="2"]:after{background:var(--c-surface);border:var(--border-hair) solid var(--c-text)}.tgomoku .pt:not([data-who]):hover:after,.tgomoku .pt:not([data-who]):focus-visible:after{background:color-mix(in oklab, var(--c-text) 22%, transparent)}.tgomoku .pt.is-win:after{background:var(--c-accent)}.tgomoku .pt.is-last[data-who]:after{box-shadow:inset 0 0 0 3px var(--c-accent)}@media (prefers-reduced-motion:reduce){.tgomoku .pt:after{transition:none}}@media (hover:none){.tgomoku .pt:hover:after{background:inherit}}.tgomoku .levels{align-items:center;gap:var(--space-3);flex-wrap:wrap;width:min(100%,34rem);display:flex}.tgomoku .levels .level-btns{gap:var(--space-2);flex-wrap:wrap;display:flex}.tgomoku .levels .ui-btn.is-on{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.tgomoku .levels .tree-btn{margin-inline-start:auto}.tgomoku .notes{border:var(--border-width) solid var(--c-border);border-left-width:8px;border-left-color:var(--c-accent);background:var(--c-surface);box-shadow:var(--shadow-ink);flex-direction:column;height:5.5rem;display:flex}.tgomoku .notes .note-bar{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-bottom:var(--border-hair) solid var(--c-border);display:flex}.tgomoku .notes .note-bar .pos{font-size:var(--step--1);color:var(--c-text-faint)}.tgomoku .notes .note-body{padding:var(--space-2) var(--space-3);font-size:var(--step--1);color:var(--c-text);flex:1;margin:0;line-height:1.5;overflow-y:auto}.tgomoku .notes .note-body .note-ply{background:var(--c-bg-subtle);color:var(--c-text-faint);font-size:var(--step--2,.72rem);margin-inline-end:var(--space-2);padding:0 4px;display:inline-block}.tgomoku .notes[data-cat=terrible],.tgomoku .notes[data-cat=victory]{background:color-mix(in oklab, var(--c-accent) 12%, var(--c-surface));border-left-width:12px}.tgomoku .notes[data-cat=bad],.tgomoku .notes[data-cat=defeat],.tgomoku .notes[data-cat=comeback]{border-left-width:10px}.tgomoku .notes[data-cat=excellent],.tgomoku .notes[data-cat=good]{border-left-color:var(--c-ink-2);background:color-mix(in oklab, var(--c-ink-2) 10%, var(--c-surface))}.tgomoku .ai-info{font-size:var(--step--1);letter-spacing:.04em;color:var(--c-text-faint);text-align:center;margin:0}.tool-tree{--tt-w:500px;z-index:60;width:min(var(--tt-w), 100vw - 24px);max-height:min(72vh,44rem);box-shadow:var(--shadow-md);position:fixed;overflow-y:auto}.tool-tree .tt-head{z-index:1;align-items:flex-start;gap:var(--space-2);cursor:grab;touch-action:none;user-select:none;background:var(--c-bg-subtle);border-bottom:var(--border-hair) solid var(--c-border);display:flex;position:sticky;top:0}.tool-tree .tt-head:active{cursor:grabbing}.tool-tree .tt-head .tt-ident{flex:1;min-width:0}.tool-tree .tt-head .tt-title{font-size:var(--step-0,1rem);margin:0}.tool-tree .tt-head .tt-sub{margin:var(--space-1) 0 0;font-size:var(--step--1);color:var(--c-text-faint)}.tool-tree .tt-head .tt-expand{flex:none}.tool-tree .tt-head .tt-close{border:var(--border-hair) solid var(--c-border);background:var(--c-surface);width:1.75rem;height:1.75rem;color:var(--c-text);cursor:pointer;flex:none;place-items:center;padding:0;font-size:1.15rem;line-height:1;display:grid}.tool-tree .tt-head .tt-close:hover,.tool-tree .tt-head .tt-close:focus-visible{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-contrast)}.tool-tree .tt-empty,.tool-tree .tt-analysing,.tool-tree .tt-sure{margin:var(--space-3) 0 0;font-size:var(--step--1)}.tool-tree .tt-sure{color:var(--c-accent)}.tool-tree .tt-steps{margin:var(--space-3) 0 0;flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.tool-tree .tt-row{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);color:var(--c-text);font-size:var(--step--1);text-align:start;cursor:pointer;background:0 0;border:0;border-left:4px solid #0000;flex-wrap:nowrap;display:flex}.tool-tree .tt-row:hover,.tool-tree .tt-row:focus-visible{background:var(--c-bg-subtle)}.tool-tree .tt-row .tt-depth{min-width:3.2rem;font-size:var(--step--2,.72rem);color:var(--c-text-faint);text-transform:uppercase;white-space:nowrap;flex:none}.tool-tree .tt-row .tt-move{white-space:nowrap;flex:none;min-width:3rem;font-weight:700}.tool-tree .tt-row .tt-score{min-width:5rem;font-size:var(--step--2,.72rem);white-space:nowrap;flex:none}.tool-tree .tt-row .tt-score.is-plus{color:var(--c-ink-2)}.tool-tree .tt-row .tt-nodes,.tool-tree .tt-row .tt-cost{font-size:var(--step--2,.72rem);color:var(--c-text-faint);white-space:nowrap;flex:none}.tool-tree .tt-row .tt-cost{margin-inline-start:auto}.tool-tree .tt-row .tt-conf{border:var(--border-hair) solid var(--c-border);background:var(--c-bg-subtle);flex:none;justify-content:flex-end;align-items:center;width:4.4rem;height:1.25rem;padding-inline-end:2px;display:inline-flex;position:relative}.tool-tree .tt-row .tt-conf .tt-conf-fill{background:color-mix(in oklab, var(--c-accent) 55%, transparent);position:absolute;inset-block:0;inset-inline-start:0}.tool-tree .tt-row .tt-conf b{font-size:var(--step--2,.72rem);position:relative}.tool-tree .tt-step.is-open .tt-row{border-left-color:var(--c-accent);background:var(--c-bg-subtle)}.tool-tree .tt-detail{padding:var(--space-2) var(--space-3);border-left:4px solid var(--c-accent);background:var(--c-bg-subtle)}.tool-tree .tt-detail .tt-pv-label{margin:0 0 var(--space-1);font-size:var(--step--2,.72rem);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-faint)}.tool-tree .tt-detail .tt-pv{gap:var(--space-2);font-size:var(--step--1);flex-wrap:wrap;margin:0;display:flex}.tool-tree .tt-detail .tt-pv .tt-pv-move{border:var(--border-hair) solid var(--c-border);padding:0 4px}.tool-tree .tt-detail .tt-pv .tt-pv-move.is-mine{background:var(--c-text);color:var(--c-bg)}.tool-tree .tt-aborted{margin:var(--space-3) 0 0}.tool-tree .tt-graph{margin-block-start:var(--space-3);overflow-x:auto}.tool-tree .tt-graph .tt-legend{gap:var(--space-3);font-size:var(--step--2,.72rem);text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-faint);margin-block-end:var(--space-2);display:flex}.tool-tree .tt-graph .tt-legend .lg:before{content:"";border:var(--border-hair) solid var(--c-text);vertical-align:-1px;width:10px;height:10px;margin-inline-end:4px;display:inline-block}.tool-tree .tt-graph .tt-legend .lg--root:before{background:var(--c-bg-subtle)}.tool-tree .tt-graph .tt-legend .lg--mine:before{background:var(--c-text)}.tool-tree .tt-graph .tt-legend .lg--theirs:before{background:var(--c-surface)}.tool-tree .tt-graph svg{max-width:none;display:block}.tool-tree .tt-graph .links path{stroke:var(--c-border);stroke-width:2px}.tool-tree .tt-graph .links path.is-main{stroke:var(--c-accent);stroke-width:3px}.tool-tree .tt-graph .tt-node rect{fill:var(--c-surface);stroke:var(--c-text);stroke-width:2px}.tool-tree .tt-graph .tt-node .nd-move{font-family:var(--font-mono);fill:var(--c-text);font-size:12px}.tool-tree .tt-graph .tt-node .nd-score{font-family:var(--font-mono);fill:var(--c-text-faint);font-size:11px}.tool-tree .tt-graph .tt-node.d0 rect{fill:var(--c-bg-subtle)}.tool-tree .tt-graph .tt-node.is-main rect{fill:var(--c-text)}.tool-tree .tt-graph .tt-node.is-main .nd-move{fill:var(--c-bg)}.tool-tree .tt-graph .tt-node.is-main .nd-score{fill:color-mix(in oklab, var(--c-bg) 70%, transparent)}.tool-tree .tt-graph .tt-node.is-pruned rect{stroke-dasharray:4 3}.tgomoku .fairness{align-items:center;gap:var(--space-3);flex-wrap:wrap;width:min(100%,34rem);display:flex}.tgomoku .fairness .level-btns{gap:var(--space-2);display:flex}.tgomoku .fairness .ui-btn.is-on{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.tgomoku .fairness .fair-hint{border:var(--border-hair) solid var(--c-border);width:1.4rem;height:1.4rem;font-size:var(--step--1);color:var(--c-text-faint);cursor:help;border-radius:50%;place-items:center;display:grid}.tgomoku .fairness .fair-count{background:var(--c-accent);color:var(--c-accent-contrast);font-size:var(--step--1);margin-inline-start:auto;padding:0 6px}.tgomoku .pt.is-forbidden{border:var(--border-hair) dashed var(--c-accent);cursor:not-allowed;margin:26%}.tgomoku .pt.is-forbidden:not([data-who]):hover:after,.tgomoku .pt.is-forbidden:not([data-who]):focus-visible:after{background:0 0}.taunt-burst{z-index:200;padding:var(--space-5);background:color-mix(in oklab, var(--c-bg) 78%, transparent);cursor:pointer;animation:tb-in .2s var(--ease);place-items:center;display:grid;position:fixed;inset:0}.taunt-burst.is-leaving{animation:tb-out .18s var(--ease) forwards}.taunt-burst .tb-canvas{pointer-events:none;position:absolute;inset:0}.taunt-burst .tb-card{max-width:min(100%,34rem);padding:var(--space-4) var(--space-5);background:var(--c-surface);border:var(--border-width) solid var(--c-text);box-shadow:8px 8px 0 var(--c-accent);text-align:center;animation:tb-pop .32s var(--ease);position:relative}.taunt-burst .tb-text{color:var(--c-text);text-shadow:var(--overprint) var(--overprint) 0 var(--c-accent);margin:0;font-size:clamp(1.5rem,4vw,2.4rem);font-weight:700;line-height:1.25}.taunt-burst .tb-hint{margin:var(--space-3) 0 0;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-faint)}.taunt-burst.is-win .tb-card{border-color:var(--c-accent);box-shadow:8px 8px 0 var(--c-ink-2)}.taunt-burst.is-lose .tb-card{border-color:var(--c-ink-2);background:color-mix(in oklab, var(--c-ink-2) 10%, var(--c-surface));box-shadow:8px 8px 0 var(--c-ink-2)}.taunt-burst.is-draw .tb-card{border-color:var(--c-text-faint);box-shadow:8px 8px 0 var(--c-text-faint)}@keyframes tb-in{0%{opacity:0}to{opacity:1}}@keyframes tb-out{0%{opacity:1}to{opacity:0}}@keyframes tb-pop{0%{transform:translateY(10px)scale(.96)}to{transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.tgomoku .notes{box-shadow:none}.taunt-burst,.taunt-burst .tb-card{animation:none}}
