:root{--board:#DCB35C;--board-dark:#B8963E;--line:#3D2914;--stone-black:#1a1a1a;--stone-white:#FDF5E6;--stone-black-transparent:rgba(0, 0, 0, 0.9);--stone-white-transparent:rgba(253, 245, 230, 0.9)}body{min-height:100vh;overflow-x:hidden;user-select:none;-webkit-user-select:none}.board-container{position:relative;padding:24px;background:linear-gradient(145deg,var(--board) 0,var(--board-dark) 100%);border-radius:8px;touch-action:none;box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 0 4px var(--board-dark),inset 0 2px 4px rgba(255,255,255,.1)}.board-container::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.08;border-radius:8px;pointer-events:none}.board-container.paper{background:#fff}.board-container.wood{background:linear-gradient(145deg,#dcb35c 0,#b8963e 100%)}.goban{display:grid;gap:0;width:min(70vmin,450px);height:min(70vmin,450px);position:relative;touch-action:none}.grid-lines{position:absolute;inset:0;pointer-events:none;overflow:visible}.coordinate-text{text-anchor:middle;dominant-baseline:central;fill:var(--muted);font-size:3px;font-weight:700;font-family:inherit}.grid-lines svg{width:100%;height:100%;overflow:visible}.intersection{position:relative;cursor:pointer;z-index:1;display:flex;align-items:center;justify-content:center;transition:transform .1s ease}.intersection:hover{transform:scale(1.05)}.stone{width:90%;height:90%;border-radius:50%;position:absolute;z-index:2;transition:all .2s cubic-bezier(.34, 1.56, .64, 1);transform:scale(0)}.stone.placed{transform:scale(1)}.stone.black.traditional{background:radial-gradient(ellipse at 35% 30%,#4a4a4a 0,#1a1a1a 50%,#0a0a0a 100%);box-shadow:2px 3px 8px rgba(0,0,0,.6),inset -2px -2px 6px rgba(0,0,0,.8),inset 3px 3px 8px rgba(100,100,100,.3)}.stone.white.traditional{background:radial-gradient(ellipse at 35% 30%,#fff 0,#e8e4dc 40%,#c8c4bc 100%);box-shadow:2px 3px 8px rgba(0,0,0,.4),inset -2px -2px 6px rgba(150,140,120,.3),inset 2px 2px 8px rgba(255,255,255,.8)}.stone.black.newspaper{background:#000;box-shadow:none}.stone.white.newspaper{background:#fff;border:2.5px solid var(--line);box-shadow:none}.stone.black.custom{box-shadow:2px 3px 8px rgba(0,0,0,.5)}.stone.white.custom{box-shadow:2px 3px 8px rgba(0,0,0,.3)}.stone.black{background:var(--stone-black);box-shadow:2px 3px 8px rgba(0,0,0,.6),inset -2px -2px 6px rgba(0,0,0,.8),inset 3px 3px 8px rgba(100,100,100,.3)}.stone.white{background:var(--stone-white);box-shadow:2px 3px 8px rgba(0,0,0,.4),inset -2px -2px 6px rgba(150,140,120,.3),inset 2px 2px 8px rgba(255,255,255,.8)}.stone.last-move::after{content:'';position:absolute;width:66%;height:66%;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);border:2px solid transparent}.stone.black.last-move::after{border-color:rgba(255,255,255,.8)}.stone.white.last-move::after{border-color:rgba(0,0,0,.7)}.preview{width:80%;height:80%;border-radius:50%;position:absolute;opacity:0;transition:opacity .15s ease;pointer-events:none}.preview.pending{width:90%;height:90%;opacity:.5;transition:opacity .2s ease}.atari-face{position:absolute;width:80%;height:80%;top:10%;left:10%;pointer-events:none;z-index:3}.liberty-marker{position:absolute;width:90%;height:90%;top:5%;left:5%;pointer-events:none;z-index:0}.illegal-marker{position:absolute;width:80%;height:80%;top:10%;left:10%;pointer-events:none;z-index:4;animation:illegal-fade 2s ease-out forwards}@keyframes illegal-fade{0%,70%{opacity:1}100%{opacity:0}}.liberty-v{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}.liberty-v.black:not(.custom){stroke:#000000}.liberty-v.white:not(.custom){stroke:#ffffff}.board-container.wood .liberty-v.white:not(.custom),.board-container:not(.paper) .liberty-v.white:not(.custom){stroke:#ffffff}.board-container.paper .liberty-v.white:not(.custom){stroke:gray}.liberty-v.black.custom{stroke:var(--stone-black)}.liberty-v.white.custom{stroke:var(--stone-white)}.liberty-arrow-line{fill:none;stroke-width:6;stroke-linecap:round}.liberty-arrow-line.black:not(.custom){stroke:#000000}.liberty-arrow-line.white:not(.custom){stroke:#ffffff}.board-container.paper .liberty-arrow-line.white:not(.custom){stroke:gray}.liberty-arrow-line.black.custom{stroke:var(--stone-black)}.liberty-arrow-line.white.custom{stroke:var(--stone-white)}@keyframes blink-capture{0%{opacity:1;transform:scale(1)}12%{opacity:0}24%{opacity:1;transform:scale(1)}36%{opacity:0}48%{opacity:1;transform:scale(1)}60%{opacity:0}72%{opacity:1;transform:scale(1)}86%{opacity:1;transform:scale(.9)}100%{opacity:0;transform:scale(0)}}.stone.blink-capture{animation:blink-capture .9s ease-in-out forwards}@media (hover:hover){.intersection:hover .preview{opacity:.5}}.preview.black{background:radial-gradient(circle,#333 0,#111 100%)}.preview.white{background:radial-gradient(circle,#fff 0,#ddd 100%)}.preview.black.newspaper{background:#000}.preview.white.newspaper{background:#fff;border:2.5px solid var(--line)}.preview.black.custom{background:var(--stone-black)}.preview.white.custom{background:var(--stone-white)}.board-container.paper .preview.white:not(.newspaper){border:2px solid rgba(61,41,20,.5)}.preview.clear{border:3px dashed rgba(196,149,106,.8);background:0 0}.branch-preview{width:85%;height:85%;border-radius:50%;position:absolute;pointer-events:none;z-index:3;opacity:0;transition:opacity .2s ease}.branch-preview.visible{opacity:.55}.branch-preview.black{border:2.5px dashed #1a1a1a;background:0 0}.branch-preview.white{border:2.5px dashed #fdf5e6;background:0 0}.light-theme .branch-preview.white{border-color:#6b563d}.hoshi{position:absolute;width:8px;height:8px;background:var(--line);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.btn{padding:10px 20px;border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:6px;font-family:'Space Grotesk',sans-serif;font-weight:600;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;font-size:.9rem}.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 0,rgba(255,255,255,.05) 100%);opacity:0;transition:opacity .2s}.btn:hover::before{opacity:1}.btn:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.3)}.btn:active{transform:translateY(0)}.btn:disabled{background:#3d352b!important;border-color:#2a241e!important;color:#8b7355!important;opacity:.7!important;cursor:not-allowed!important;pointer-events:none!important;box-shadow:none!important;transform:none!important}.light-theme .btn:disabled{background:#e5e0d5!important;border-color:#dbcdb7!important;color:#998c7a!important}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,var(--accent) 0,#a67b4a 100%);border-color:var(--accent);color:var(--bg)}.btn-danger{border-color:#8b4040;color:#e57373}.btn-danger:hover{border-color:#ef4444;background:#ef4444;color:#fff}.light-theme .btn-danger{border-color:#ef4444;color:#dc2626}.light-theme .btn-danger:hover{border-color:#dc2626;background:#dc2626;color:#fff}#shareSgfBtn{display:flex;align-items:center;justify-content:center}#shareSgfBtn:hover{border-color:var(--accent);color:var(--accent)}#shareSgfBtn.copied{border-color:#4ade80;color:#4ade80}.share-option{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:0 0;border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:.95rem;cursor:pointer;transition:all .15s}.share-option:hover{border-color:var(--accent);color:var(--accent);background:rgba(139,92,246,.1)}.share-option svg{flex-shrink:0;opacity:.8}.tool-btn-icon{width:28px;height:28px;border-radius:50%;display:inline-block;transition:all .2s ease}.tool-btn-icon.black{background:#000;box-shadow:none}.tool-btn-icon.white{background:#fff;box-shadow:none}.tool-btn-icon.split{background:linear-gradient(90deg,#000 50%,#fff 50%);box-shadow:none}.info-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;position:relative;overflow:hidden}.info-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}@media (min-width:1024px){.info-card{padding:10px}}.turn-indicator{display:flex;align-items:center;gap:10px}.tool-indicator{display:flex;align-items:center;gap:10px}.tool-stone,.turn-stone{width:24px;height:24px;border-radius:50%;transition:all .3s cubic-bezier(.34, 1.56, .64, 1)}@media (min-width:1024px){.tool-stone,.turn-stone{width:20px;height:20px}}.tool-stone.black,.turn-stone.black{background:radial-gradient(ellipse at 35% 30%,#4a4a4a 0,#0a0a0a 100%);box-shadow:1px 2px 4px rgba(0,0,0,.5)}.tool-stone.white,.turn-stone.white{background:radial-gradient(ellipse at 35% 30%,#fff 0,#c8c4bc 100%);box-shadow:1px 2px 4px rgba(0,0,0,.3)}.tool-stone.black.newspaper,.turn-stone.black.newspaper{background:#000;box-shadow:none}.tool-stone.white.newspaper,.turn-stone.white.newspaper{background:#fff;border:2.5px solid var(--line);box-shadow:none}.tool-stone.black.custom,.turn-stone.black.custom{background:var(--stone-black)}.tool-stone.white.custom,.turn-stone.white.custom{background:var(--stone-white)}.tool-stone.active,.turn-stone.active{animation:pulse 1.5s ease-in-out infinite}.tool-stone.clear{border:2px dashed rgba(196,149,106,.8);background:0 0}@keyframes pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(196,149,106,.4)}50%{transform:scale(1.1);box-shadow:0 0 0 8px rgba(196,149,106,0)}}.captured-container{display:flex;gap:8px;flex-wrap:wrap;min-height:32px;padding:8px;background:rgba(0,0,0,.2);border-radius:6px}.captured-stone{width:20px;height:20px;border-radius:50%;animation:captureIn .3s ease-out}@keyframes captureIn{from{transform:scale(0) rotate(180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.captured-stone.black{background:radial-gradient(ellipse at 35% 30%,#4a4a4a 0,#0a0a0a 100%)}.captured-stone.white{background:radial-gradient(ellipse at 35% 30%,#fff 0,#c8c4bc 100%)}.captured-stone.black.newspaper{background:#000;box-shadow:none}.captured-stone.white.newspaper{background:#fff;border:2.5px solid var(--line);box-shadow:none}.captured-stone.black.custom{background:var(--stone-black)}.captured-stone.white.custom{background:var(--stone-white)}.territory-marker{position:absolute;border-radius:0;pointer-events:none;z-index:1;opacity:.9;animation:territoryIn .4s ease-out}.territory-marker.small{width:25%;height:25%}.territory-marker.large{width:50%;height:50%}.territory-marker.black{background:var(--stone-black-transparent)}.territory-marker.white{background:var(--stone-white-transparent)}.territory-marker.white.newspaper{border:1.25px solid var(--line)}@keyframes territoryIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:.4}}.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:24px;transition:background .3s ease}.toggle-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:var(--fg);border-radius:50%;transition:transform .3s cubic-bezier(.34, 1.56, .64, 1)}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider::before{transform:translateX(20px)}.score-display{display:grid;grid-template-columns:1fr 1fr;gap:12px}.score-item{text-align:center;padding:12px;background:rgba(0,0,0,.2);border-radius:6px}.score-value{font-size:1.75rem;font-weight:700;color:var(--accent)}.board-style-btn,.color-btn,.handicap-btn,.size-btn,.stone-style-btn,.win-condition-btn{background:var(--card);border:2px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center}.board-style-btn:hover,.color-btn:hover,.handicap-btn:hover,.size-btn:hover,.stone-style-btn:hover,.win-condition-btn:hover{border-color:var(--accent);transform:translateY(-2px)}.board-style-btn.active,.color-btn.active,.handicap-btn.active,.size-btn.active,.stone-style-btn.active,.win-condition-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(196,149,106,.3)}.style-preview{display:flex;align-items:center;justify-content:center}@media (min-width:1024px){.goban{width:65vh;height:65vh;max-width:600px;max-height:600px}}@media (max-width:1023px) and (min-width:769px){.goban{width:min(60vh,450px);height:min(60vh,450px)}.goban.large-board{width:calc(100vw - 112px);height:calc(100vw - 112px)}}.nav-btn{padding:6px 4px;text-align:center;line-height:1;min-width:0;display:flex;align-items:center;justify-content:center}.nav-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.3)}.nav-btn:active{transform:translateY(0)}.nav-btn svg{width:20px;height:20px;fill:currentColor}.nav-square-btn{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.nav-square-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.3)}.nav-square-btn:active{transform:translateY(0)}.nav-square-btn svg{width:20px;height:20px;fill:currentColor}.zen-active{border-color:var(--accent)!important;background:rgba(196,149,106,.15)!important;transform:scale(.95)!important;box-shadow:inset 0 2px 4px rgba(0,0,0,.2)!important}@media (max-width:768px){.goban{width:min(85vmin,400px);height:min(85vmin,400px)}.goban.large-board{width:calc(100vw - 80px);height:calc(100vw - 80px)}}.toggle-4state{position:relative;width:56px;height:24px;flex-shrink:0;background:var(--border);border-radius:24px;border:none;cursor:pointer;padding:0;transition:background .3s ease}.toggle-4state[data-state="1"]{background:color-mix(in srgb,var(--accent) 40%,var(--border))}.toggle-4state[data-state="2"]{background:color-mix(in srgb,var(--accent) 70%,var(--border))}.toggle-4state[data-state="3"]{background:var(--accent)}.toggle-4state-knob{position:absolute;top:3px;left:3px;height:18px;width:18px;border-radius:50%;transition:transform .3s cubic-bezier(.4, 0, .2, 1);box-shadow:0 2px 4px rgba(0,0,0,.2)}.toggle-4state[data-state="0"] .toggle-4state-knob{background:0 0;border:2px solid var(--fg);transform:translateX(0)}.toggle-4state[data-state="1"] .toggle-4state-knob{background:#fff;border:none;transform:translateX(11px)}.toggle-4state[data-state="2"] .toggle-4state-knob{background:#000;border:none;transform:translateX(22px)}.toggle-4state[data-state="3"] .toggle-4state-knob{background:linear-gradient(90deg,#fff 50%,#000 50%);border:none;transform:translateX(32px)}html.zen-mode .goban{width:min(72vmin,500px)!important;height:min(72vmin,500px)!important;max-width:none!important;max-height:none!important}@media (min-width:1024px){html.zen-mode .goban{width:min(70vh,calc(100vw - 288px - 384px - 180px))!important;height:min(70vh,calc(100vw - 288px - 384px - 180px))!important;max-width:none!important;max-height:none!important}}@media (orientation:landscape) and (max-width:1023px){html.zen-mode .goban{width:min(78vh,78vw)!important;height:min(78vh,78vw)!important;max-width:none!important;max-height:none!important}}@media (orientation:landscape) and (min-width:1024px){html.zen-mode .goban{width:min(80vh,calc(100vw - 288px - 384px - 140px))!important;height:min(80vh,calc(100vw - 288px - 384px - 140px))!important;max-width:none!important;max-height:none!important}}@media (max-width:768px){html.zen-mode .goban{width:min(85vmin,calc(100vw - 80px))!important;height:min(85vmin,calc(100vw - 80px))!important;max-width:none!important;max-height:none!important}}html.zen-mode .zen-turn-card{grid-column:1/-1}.move-tree-container{overflow-x:auto;overflow-y:auto;max-height:260px;min-height:120px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--card)}.move-tree-container::-webkit-scrollbar{width:6px;height:6px}.move-tree-container::-webkit-scrollbar-track{background:var(--card)}.move-tree-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.move-tree-container::-webkit-scrollbar-thumb:hover{background:var(--accent)}.tree-toggle-btn{padding:2px 6px;min-width:auto;opacity:.6;line-height:1}.tree-toggle-btn:hover{opacity:1}.move-tree-node{cursor:pointer}.move-tree-node:hover{filter:brightness(1.3)}.move-tree-node.current{filter:drop-shadow(0 0 4px var(--accent))}.move-tree-edge{stroke:var(--muted);stroke-width:1.5;fill:none;opacity:.5}.move-tree-edge.active{stroke:var(--accent);stroke-width:2.5;opacity:1}.move-tree-label{font-size:8px;text-anchor:middle;pointer-events:none;user-select:none}