:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#27231e;font-synthesis:none;--ink:#27231e;--muted:#756e64;--paper:#f8f5ee;--paper-deep:#eee9df;--line:#d8d0c3;--wood:#c9995d;--wood-light:#d9ad70;--accent:#8b3f2f;--accent-dark:#6f3024;--shadow:0 18px 50px #382c1f1f;background:#eeeae2;font-family:SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,label{font:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline-offset:3px;outline:3px solid #8b3f2f47}label:has(+input:focus-visible){outline-offset:3px;outline:3px solid #8b3f2f47}.app-shell{min-height:100vh;padding:clamp(12px,1.5vw,24px)}.game-panel{grid-template-columns:minmax(210px,.72fr) minmax(460px,2.3fr) minmax(250px,.9fr);gap:clamp(12px,1.4vw,22px);width:min(100%,1580px);min-height:calc(100vh - clamp(24px,3vw,48px));margin:0 auto;display:grid}.control-rail,.log-rail,.board-frame{box-shadow:var(--shadow);background:#f8f5eef0;border:1px solid #5e503f29}.control-rail,.log-rail{border-radius:20px;padding:clamp(18px,2vw,30px)}.control-rail{flex-direction:column;min-width:0;display:flex}.brand-block{padding:4px 2px clamp(24px,4vh,46px)}.brand-kicker,.log-heading p{color:var(--accent);letter-spacing:.2em;margin:0 0 8px;font-size:11px;font-weight:750}h1,h2,p{margin-top:0}h1{letter-spacing:.08em;margin-bottom:10px;font-family:Songti SC,STSong,serif;font-size:clamp(32px,3vw,48px);font-weight:700;line-height:1}.brand-block>p:last-child{color:var(--muted);letter-spacing:.08em;margin:0;font-size:13px}.actions{gap:10px;display:grid}.mode-control,.difficulty-control{min-width:0;position:relative}.difficulty-control[hidden],.mode-menu[hidden],.ai-debug-panel[hidden],.replay-panel[hidden],.result-overlay[hidden]{display:none}.mode-button,.reset-button,.import-button{border:1px solid var(--line);width:100%;min-height:62px;color:var(--ink);cursor:pointer;text-align:left;background:#fffdf8;border-radius:12px;align-content:center;justify-items:start;gap:3px;padding:10px 16px;transition:transform .14s,border-color .14s,box-shadow .14s,background .14s;display:grid}.mode-button{grid-template-columns:minmax(0,1fr) auto;column-gap:10px}.mode-button .button-eyebrow,.mode-button>span:nth-child(2){grid-column:1}.mode-button>span:nth-child(2){white-space:nowrap;min-width:0}.button-choice-hint{color:var(--accent);background:var(--paper-deep);letter-spacing:.04em;white-space:nowrap;border:1px solid #d2c7b8;border-radius:999px;grid-area:1/2/3;align-self:center;padding:5px 8px;font-size:9px;font-weight:750;transition:border-color .14s,color .14s,background .14s}.choice-hint-open{display:none}.mode-button:hover .button-choice-hint,.mode-button[aria-expanded=true] .button-choice-hint{border-color:var(--accent);color:#fffaf2;background:var(--accent)}.mode-button[aria-expanded=true] .choice-hint-default{display:none}.mode-button[aria-expanded=true] .choice-hint-open{display:inline}.mode-button:hover,.import-button:hover{background:#fff;border-color:#b8aa98;transform:translateY(-1px);box-shadow:0 10px 22px #3a2d1f1a}.mode-button[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px #8b3f2f1a}.reset-button{border-color:var(--accent);color:#fffaf2;background:var(--accent)}.reset-button:hover{border-color:var(--accent-dark);background:var(--accent-dark);transform:translateY(-1px);box-shadow:0 10px 24px #6f302438}.button-eyebrow{color:var(--muted);letter-spacing:.12em;font-size:10px;font-weight:700}.reset-button .button-eyebrow{color:#fffaf2a6}.mode-button>span:nth-child(2),.reset-button>span:last-child,.import-button>span:last-child{letter-spacing:.04em;font-size:15px;font-weight:700}.record-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.mode-menu{z-index:20;border:1px solid var(--line);background:#fffdf8;border-radius:12px;width:100%;padding:6px;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 16px 34px #2e251b2e}.mode-option,.difficulty-option{width:100%;min-height:40px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;padding:0 12px}.mode-option:hover,.difficulty-option:hover{background:var(--paper-deep)}.mode-option[aria-checked=true],.difficulty-option[aria-checked=true]{color:#fffaf2;background:var(--ink)}.replay-zone{min-height:210px;margin-top:auto;padding-top:clamp(24px,5vh,54px)}.replay-empty,.replay-panel{background:#eee9df8c;border:1px dashed #c9beaf;border-radius:14px;min-height:190px;padding:18px}.replay-panel:not([hidden])+.replay-empty{display:none}.replay-empty{text-align:center;place-content:center;display:grid}.replay-empty span{color:var(--ink);font-family:Songti SC,STSong,serif;font-size:20px;font-weight:700}.replay-empty p,.log-empty p{max-width:190px;color:var(--muted);margin:10px auto 0;font-size:12px;line-height:1.7}.replay-info,.ai-debug-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.replay-info span,.ai-debug-header span{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;font-size:11px;line-height:1.5}.replay-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.replay-controls button{border:1px solid var(--line);min-height:36px;color:var(--ink);cursor:pointer;background:#fffdf8;border-radius:8px;font-size:12px}.replay-controls button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.replay-controls button:disabled{cursor:default;opacity:.38}.board-stage{flex-direction:column;justify-content:center;align-items:center;min-width:0;display:flex}.turn-status{background:#f8f5eef5;border:1px solid #5e503f29;border-radius:999px;align-items:center;gap:10px;min-height:42px;margin-bottom:12px;padding:0 18px;display:inline-flex;box-shadow:0 8px 20px #382c1f17}.turn-status p{color:var(--ink);letter-spacing:.06em;margin:0;font-size:14px;font-weight:750}.turn-dot{background:var(--ink);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #27231e1a}.board-stage:has(.board[data-turn=white]) .turn-dot{background:#fff;border:1px solid #aaa296}.board-frame{aspect-ratio:1;border-radius:22px;place-items:center;width:100%;max-width:min(100%,100vh - 110px);padding:clamp(12px,2vw,24px);display:grid}.board-wrap{--board-gutter:clamp(20px, 2.7vw, 42px);width:100%;padding:var(--board-gutter);background:var(--wood);border:1px solid #4e2d1473;border-radius:8px;position:relative;box-shadow:inset 0 0 0 5px #ffe7c21f,0 14px 32px #3d2a182e}.board-coordinates{inset:var(--board-gutter);z-index:3;color:#472b18c7;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(8px,.72vw,11px);font-weight:750;line-height:1;position:absolute}.board-coordinate{text-align:center;min-width:14px;display:block;position:absolute}.board-coordinate-column{bottom:calc(6px - var(--board-gutter));transform:translate(-50%)}.board-coordinate-row{left:calc(7px - var(--board-gutter));transform:translate(-50%,-50%)}.board{aspect-ratio:1;background:linear-gradient(#6f4a2c 1px, transparent 1px), linear-gradient(90deg, #6f4a2c 1px, transparent 1px), var(--wood-light);background-position:0 0;background-size:7.14286% 7.14286%;border:1px solid #583b24;width:100%;position:relative}.cell{z-index:1;aspect-ratio:1;cursor:pointer;background:0 0;border:0;width:7.14286%;padding:0;position:absolute;transform:translate(-50%,-50%)}.cell:disabled{cursor:default}.board[data-turn=black] .cell:not(:disabled):hover:after,.board[data-turn=white] .cell:not(:disabled):hover:after{content:"";border-radius:50%;position:absolute;inset:20%}.board[data-turn=black] .cell:not(:disabled):hover:after{background:#10121640}.board[data-turn=white] .cell:not(:disabled):hover:after{background:#fff9;border:1px solid #6e645859}.stone{z-index:2;aspect-ratio:1;border-radius:50%;width:78%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset -4px -5px 9px #00000038,0 3px 7px #1a120c47}.stone-black{background:radial-gradient(circle at 35% 30%,#4d4b48,#171512 68%)}.stone-white{background:radial-gradient(circle at 35% 30%,#fff,#ddd8ce 72%);border:1px solid #6e665c47}.stone-with-step{-webkit-user-select:none;user-select:none;place-items:center;font-size:clamp(8px,1vw,14px);font-weight:750;line-height:1;display:grid}.stone-black.stone-with-step{color:#ffffffeb}.stone-white.stone-with-step{color:#25211d}.stone-latest:after{content:"";pointer-events:none;border:2px solid #9c3528;border-radius:50%;animation:1.5s ease-in-out infinite latest-stone-pulse;position:absolute;inset:-22%}@keyframes latest-stone-pulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.05)}}.star-point{z-index:0;pointer-events:none;background:#4c321f;border-radius:50%;width:7px;height:7px;position:absolute;transform:translate(-50%,-50%)}.log-rail{flex-direction:column;min-width:0;display:flex;overflow:hidden}.log-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:18px;display:flex}.log-heading p{margin-bottom:5px}.log-heading h2{letter-spacing:.06em;margin:0;font-family:Songti SC,STSong,serif;font-size:24px}.live-badge{color:var(--accent);background:#8b3f2f0f;border:1px solid #8b3f2f3d;border-radius:999px;flex:none;padding:5px 9px;font-size:10px;font-weight:750}.ai-debug-panel{border:1px solid var(--line);background:#fffdf8;border-radius:14px;flex-direction:column;height:240px;min-height:240px;margin-top:18px;padding:16px;display:flex}.move-log-panel{border:1px solid var(--line);background:#fffdf8;border-radius:14px;margin-top:18px;padding:16px}.move-log-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.move-log-header strong{font-size:13px}.move-log-header span{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:10px}.move-logs{scrollbar-width:thin;scrollbar-color:#c7bcac transparent;gap:7px;max-height:min(32vh,280px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.move-log-item{background:var(--paper-deep);border-radius:9px;grid-template-columns:auto auto 1fr;align-items:center;gap:6px;min-height:42px;padding:7px 9px;display:grid}.move-log-sequence{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.move-log-side{white-space:nowrap;border:1px solid #c9c0b4;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:750}.move-log-black{border-color:var(--ink);color:#fffaf2;background:var(--ink)}.move-log-white{color:var(--ink);background:#fff}.move-log-coordinate{letter-spacing:.04em;justify-self:end;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.move-log-detail{color:var(--muted);text-align:right;grid-column:1/-1;font-size:10px}.move-log-empty{min-height:54px;color:var(--muted);place-items:center;font-size:11px;display:grid}.ai-debug-header strong,.replay-info strong{font-size:13px}.ai-debug-logs{color:#655e55;flex:1;gap:8px;min-height:0;margin:0;padding:0 0 0 18px;font-size:12px;line-height:1.55;display:grid;overflow:auto}.log-empty{text-align:center;flex:1;place-content:center;min-height:180px;display:grid}.ai-debug-panel:not([hidden])+.log-empty{display:none}.result-overlay{z-index:50;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1f1b179e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-dialog{width:min(100%,390px);color:var(--ink);background:var(--paper);text-align:center;border:1px solid #ffffff80;border-radius:20px;padding:34px;position:relative;box-shadow:0 28px 80px #14110e59}.result-label{color:var(--accent);letter-spacing:.16em;margin-bottom:8px;font-size:11px;font-weight:750}.result-dialog h2{margin:0;font-family:Songti SC,STSong,serif;font-size:38px}.result-actions{gap:9px;margin-top:26px;display:grid}.play-again,.secondary-action{cursor:pointer;border-radius:10px;min-height:46px;padding:0 20px;font-weight:700}.play-again{border:1px solid var(--accent);color:#fffaf2;background:var(--accent)}.secondary-action{border:1px solid var(--line);color:var(--ink);background:#fffdf8}.play-again:hover{background:var(--accent-dark)}.secondary-action:hover{background:#fff;border-color:#b7aa99}.result-close{min-width:48px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 8px;font-size:12px;position:absolute;top:12px;right:12px}.result-close:hover{color:var(--ink);background:var(--paper-deep)}@media (max-width:1180px){.game-panel{grid-template-columns:minmax(190px,.7fr) minmax(430px,2fr)}.log-rail{grid-column:1/-1;min-height:210px}.ai-debug-panel{height:180px;min-height:180px}.move-logs{max-height:180px}}@media (max-width:760px){.app-shell{padding:10px}.game-panel{flex-direction:column;gap:10px;min-height:auto;display:flex}.board-stage{order:1}.control-rail{order:2}.log-rail{order:3}.control-rail,.log-rail,.board-frame{border-radius:16px}.board-frame{max-width:100%;padding:10px}.board-wrap{--board-gutter:clamp(20px, 7vw, 30px)}.turn-status{min-height:38px;margin:4px 0 9px}.control-rail,.log-rail{padding:18px}.brand-block{padding:0 0 18px}h1{font-size:34px}.actions{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-button,.reset-button,.import-button{min-height:58px}.replay-zone{min-height:0;padding-top:18px}.replay-empty,.replay-panel{min-height:130px}.replay-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.log-rail{min-height:190px}.ai-debug-panel{height:200px;min-height:200px}.move-logs{max-height:230px}}@media (max-width:420px){.app-shell,.board-frame{padding:6px}.board-wrap{--board-gutter:19px;border-radius:6px}.board-coordinates{font-size:7px}.board-coordinate-column{bottom:calc(5px - var(--board-gutter))}.board-coordinate-row{left:calc(6px - var(--board-gutter))}.turn-status p{font-size:13px}.control-rail,.log-rail{padding:15px}.mode-button,.reset-button,.import-button{min-height:56px;padding:9px 12px}.mode-button>span:nth-child(2),.reset-button>span:last-child,.import-button>span:last-child{font-size:14px}.button-choice-hint{padding:4px 6px;font-size:8px}.result-dialog{padding:30px 20px 22px}.result-dialog h2{font-size:32px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
