:root{--leo-blue: #2b4f6a;--leo-cream: #f7f0e4;--leo-gold: #e9b569;--leo-navy: #2a4862;--leo-mid: #3a5c78;--leo-sage: #6fa98d;--leo-rust: #d4614f;--bg: var(--leo-blue);--bg-raised: var(--leo-mid);--bg-panel: var(--leo-navy);--border: #4a6e8c;--text: var(--leo-cream);--text-dim: #a9bccd;--accent: var(--leo-gold);--green: var(--leo-sage);--red: var(--leo-rust);--on-accent: #23384a;--text-2xs: 11px;--text-xs: 12.5px;--text-sm: 14px;--text-md: 15px;--text-base: 16px;--text-lg: 18px;--text-xl: 21px;--text-2xl: 30px;--text-ribbon: 19px;--control-h: 40px;--bar-h: 42px;--control-h-sm: 34px;--control-px: 16px;--control-radius: 10px;--control-ring: 0 0 0 3px rgba(233, 181, 105, .35);--font-system-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-system-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--font-body: var(--font-system-sans);--font-mono: var(--font-system-mono)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono)}.app{display:flex;flex-direction:column;height:100%}.auto-btn,.mute-btn,.nav-btn,.back-btn,.branch-btn,.ghost-btn,.save-btn,.send-btn,.explore-btn,.start-btn,.style-clear,.file-btn,.shell-tab,.review-banner button{font-family:var(--font-body);font-weight:500;border-radius:var(--control-radius);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .08s ease}.auto-btn:focus-visible,.mute-btn:focus-visible,.nav-btn:focus-visible,.back-btn:focus-visible,.branch-btn:focus-visible,.ghost-btn:focus-visible,.save-btn:focus-visible,.send-btn:focus-visible,.explore-btn:focus-visible,.start-btn:focus-visible,.seg:focus-visible,.shell-tab:focus-visible,.choice-opt:focus-visible{outline:none;box-shadow:var(--control-ring)}.auto-btn:active:not(:disabled),.mute-btn:active:not(:disabled),.nav-btn:active:not(:disabled),.branch-btn:active:not(:disabled),.ghost-btn:active:not(:disabled),.save-btn:active:not(:disabled),.explore-btn:active:not(:disabled),.start-btn:active:not(:disabled){transform:translateY(1px)}.landing{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(ellipse 70% 50% at 50% -10%,rgba(233,181,105,.1),transparent),var(--bg)}.landing-card{width:100%;max-width:480px;display:flex;flex-direction:column;gap:22px}.landing-brand{text-align:center;margin-bottom:6px}.landing-logo{display:block;width:190px;max-width:60%;height:auto;border-radius:22%;margin:0 auto 14px;box-shadow:0 10px 30px #1a2c3c73}.name-input{background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:11px 13px;font-family:var(--font-body);font-size:var(--text-lg);outline:none;width:100%}.name-input:focus{border-color:var(--accent)}.name-input::placeholder{color:var(--text-dim)}.landing-legal{text-align:center;font-size:var(--text-xs);color:var(--text-dim);opacity:.7;margin:14px 0 0}.landing-sub{color:var(--text-dim);font-size:var(--text-base);margin:0}.opt-group{display:flex;flex-direction:column;gap:8px}.opt-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim)}.opt-label .elo-value{font-family:var(--font-mono);color:var(--accent);font-size:var(--text-base);margin-left:6px}.opt-label .elo-headline{color:var(--accent);font-size:var(--text-lg);margin-left:6px}.seg-control.seg-4 .seg{padding:9px 6px;font-size:var(--text-md)}.seg-control.seg-5 .seg{padding:9px 2px;font-size:var(--text-sm);min-width:0}.level-elo-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.elo-entry{width:80px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 8px;font-family:var(--font-mono);font-size:var(--text-md);outline:none}.elo-entry:focus{border-color:var(--accent)}.opt-hint{font-size:var(--text-sm);color:var(--text-dim)}.opt-elo input[type=range]{width:100%;accent-color:var(--accent);height:28px}.start-btn{margin-top:10px;min-height:54px;background:linear-gradient(180deg,#f0c684,var(--accent));border:none;border-radius:14px;color:var(--on-accent);font-size:var(--text-xl);font-weight:700;letter-spacing:.01em;padding:16px;box-shadow:0 2px 10px #e9b56947}.start-btn:hover{background:linear-gradient(180deg,#f2cb8f,#dfa856);box-shadow:0 4px 16px #e9b56961}.start-btn:hover{background:var(--leo-gold)}.start-btn:active{transform:scale(.985)}.seg-control{display:flex;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;overflow:hidden;padding:3px;gap:3px}.seg{flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-h);background:transparent;border:none;color:var(--text-dim);padding:10px 14px;cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:500;border-radius:9px;transition:background .15s,color .15s}.seg.active{background:var(--leo-cream);color:var(--on-accent);font-weight:600}.seg:not(.active):hover{color:var(--text)}.game-header{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg-raised)}.header-logo{height:38px;width:38px;border-radius:22%;object-fit:cover;cursor:pointer;flex:0 0 auto}.back-btn{min-height:var(--control-h);font-size:var(--text-ribbon);background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 12px;cursor:pointer;font-family:var(--font-body);font-size:var(--text-md);white-space:nowrap;transition:border-color .15s}.back-btn:hover{border-color:var(--accent)}.header-opening{flex:1;text-align:center;font-family:var(--font-body);font-size:var(--text-ribbon);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right{flex-wrap:wrap;justify-content:flex-end;display:flex;align-items:center;gap:8px}.header-nav{display:flex;gap:4px;margin-left:2px}.header-nav .nav-btn{width:38px;height:32px}.auto-btn,.mute-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-h);background:var(--bg-panel);border:1px solid var(--border);color:var(--text);padding:0 16px;font-size:var(--text-ribbon);white-space:nowrap}.auto-btn:hover:not(:disabled),.mute-btn:hover:not(:disabled){background:var(--bg-raised);border-color:var(--accent)}.auto-btn:hover,.mute-btn:hover{border-color:var(--accent)}.auto-btn.manual{border-color:var(--accent);color:var(--accent)}.game-main{flex:1;min-height:0;display:grid;grid-template-columns:auto 400px;align-content:start;justify-content:center;gap:18px;padding:14px 16px 18px;overflow-y:auto}.board-col{display:flex;flex-direction:column;gap:10px;width:min(680px,max(320px,calc(100vh - 300px)),calc(100vw - 460px));flex:0 0 auto}.game-main.no-chat{grid-template-columns:auto}.game-main.no-chat .board-col{width:min(680px,calc(100vh - 300px),92vw)}.chat-side{min-width:0;min-height:0;display:flex}.chat-side .chat-panel{flex:1}.board-wrap{position:relative;width:100%}.board-wrap.branching{margin:12px 0}.turn-indicator{display:flex;align-items:center;justify-content:center;gap:8px;min-height:var(--bar-h);border-radius:8px;padding:7px 12px;font-size:var(--text-md);font-weight:500;letter-spacing:.02em;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);transition:background .2s,color .2s,border-color .2s}.turn-indicator .turn-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.turn-indicator.you{color:#1a1408;background:var(--green);border-color:var(--green)}.turn-indicator.wait{color:var(--accent);border-color:#e9b56980}.turn-indicator.wait .turn-dot{animation:turn-pulse 1.2s ease-in-out infinite}.turn-indicator.over{color:var(--text-dim)}@keyframes turn-pulse{0%,to{opacity:.35}50%{opacity:1}}.ask-leo{display:flex;gap:8px}.review-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#e9b56924;border:1px solid var(--accent);border-radius:8px;padding:7px 12px;font-size:var(--text-sm);color:var(--text)}.review-banner button{min-height:var(--control-h-sm);background:var(--accent);border:none;color:var(--on-accent);font-size:var(--text-sm);font-weight:600;padding:0 14px;white-space:nowrap}.eval-bar{position:relative;width:100%;height:26px;background:var(--leo-navy);border:1px solid var(--border);border-radius:8px;overflow:hidden}.eval-bar-white{height:100%;background:var(--leo-cream);transition:width .5s ease}.eval-bar-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:#fff;background:#00120cd1;border-radius:999px;padding:1px 8px;line-height:1.2;white-space:nowrap;pointer-events:none}.arrow-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.badge-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:7}.badge-svg{width:100%;height:100%;overflow:visible}.board-badge{transform-box:fill-box;transform-origin:center;animation:badge-pop .35s cubic-bezier(.3,1.6,.5,1) both}.board-badge .badge-disc{stroke:#fff;stroke-width:3;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.board-badge g,.board-badge rect,.board-badge path,.board-badge circle:not(.badge-disc){fill:#fff;stroke:#fff}.board-badge .badge-hole{stroke:none}.board-badge.pin .badge-disc,.board-badge.pin .badge-hole{fill:#c9a227}.board-badge.fork .badge-disc{fill:#3f8f6b}.board-badge.fork path{fill:none}.board-badge.mate .badge-disc,.board-badge.mate .badge-hole{fill:#b23a2e}.board-badge.hanging .badge-disc{fill:#d9662b}@keyframes badge-pop{0%{opacity:0;transform:scale(.3)}}@media(prefers-reduced-motion:reduce){.board-badge{animation:none}}.arrow-svg{width:100%;height:100%;pointer-events:none}.arrow-tooltip{position:absolute;transform:translate(-50%,-100%);background:var(--leo-navy);border:1px solid var(--border);color:var(--text);padding:7px 10px;border-radius:8px;pointer-events:none;z-index:10;max-width:240px;display:flex;flex-direction:column;gap:4px}.arrow-tooltip-row{display:flex;align-items:center;gap:8px}.arrow-tooltip-head{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent);white-space:nowrap;flex:1}.tip-audio{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--bg-panel);color:var(--accent);cursor:pointer;flex:0 0 auto;padding:0;pointer-events:auto}.tip-audio:hover{border-color:var(--accent)}.arrow-tooltip-detail{font-family:var(--font-body);font-size:var(--text-md);line-height:1.4;color:var(--text)}.thinking-pill,.gameover-pill{position:absolute;top:10px;left:50%;transform:translate(-50%);background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;padding:4px 14px;font-size:var(--text-sm);color:var(--text-dim);white-space:nowrap;z-index:6;opacity:.95}.gameover-pill{color:var(--accent);border-color:var(--accent)}.suggest-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.suggest-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase}.suggest-chip{display:inline-flex;align-items:center;gap:7px;background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:6px 11px 6px 13px;cursor:pointer;font-family:var(--font-mono);font-size:var(--text-md);color:var(--text);transition:border-color .15s}.suggest-chip.best{border-color:#3d90eba6}.suggest-chip.alt{border-color:#6fa98d80}.suggest-chip:hover:not(:disabled){border-color:var(--accent)}.suggest-chip:disabled{opacity:.5;cursor:default}.suggest-san{font-weight:500}.suggest-chip.best .suggest-san{color:#8fc6e8}.suggest-chip.alt .suggest-san{color:#8fcfa6}.suggest-eval{color:var(--text-dim);font-size:var(--text-xs)}.suggest-q{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700}.pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.explain-pop{position:fixed;transform:translate(-50%,-100%);z-index:50;width:260px;background:var(--leo-navy);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;box-shadow:0 12px 36px #0009}.explain-pop-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.explain-pop-san{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:#8fc6e8}.explain-pop-eval{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-dim);flex:1}.explain-pop-close{background:none;border:none;color:var(--text-dim);font-size:var(--text-xl);cursor:pointer;padding:0 2px;line-height:1}.explain-pop-close:hover{color:var(--text)}.explain-pop-text{margin:0 0 10px;font-size:var(--text-base);line-height:1.45}.explain-pop-more{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--accent);font-family:var(--font-body);font-size:var(--text-md);padding:7px;cursor:pointer;transition:border-color .15s}.explain-pop-more:hover:not(:disabled){border-color:var(--accent)}.explain-pop-more:disabled{opacity:.5;cursor:default}.board-foot{display:flex;justify-content:center}.nav-btns{display:flex;gap:10px}.nav-btn{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);width:64px;height:var(--control-h);font-size:var(--text-xl)}.nav-btn:hover:not(:disabled){background:var(--bg-raised);border-color:var(--accent)}.nav-btn:hover:not(:disabled){border-color:var(--accent)}.nav-btn:disabled{opacity:.35;cursor:default}.move-list{flex:1;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--font-mono);font-size:var(--text-md);line-height:1.9;max-height:96px;overflow-y:auto}.move-list-empty{color:var(--text-dim)}.move-row{margin-right:12px;white-space:nowrap}.move-num{color:var(--text-dim);margin-right:4px}.move-san{margin-right:6px;padding:1px 4px;border-radius:4px}.move-san.current{background:var(--accent);color:var(--on-accent);font-weight:600}.chat-panel{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.chat-scroll{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:9px}.chat-empty{color:var(--text-dim);font-size:var(--text-md);line-height:1.5;padding:8px}.chat-msg{border-radius:10px;padding:8px 11px;font-size:var(--text-md);line-height:1.45;max-width:95%;white-space:pre-wrap;word-break:break-word}.chat-msg.clickable{cursor:pointer}.chat-msg.clickable:hover{outline:1px solid var(--border)}.chat-msg.active{outline:2px solid var(--accent);outline-offset:0}.chat-msg.assistant{background:var(--bg-raised);border:1px solid var(--border);align-self:flex-start}.chat-msg.assistant.mover-w{background:var(--leo-cream);border-color:#e3d9c6;color:var(--on-accent)}.chat-msg.assistant.mover-b{background:#1d3346;border-color:#16283a;color:var(--leo-cream)}.chat-msg.user{background:var(--leo-mid);align-self:flex-end}.chat-tag{display:block;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--accent);margin-bottom:3px;letter-spacing:.04em}.mover-w .chat-tag{color:#8a6230}.mover-b .chat-tag{color:var(--leo-gold)}.fade-in{animation:fade-in .5s ease both}@keyframes fade-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.thinking-dots{display:inline-flex;gap:4px;align-items:center;height:14px}.thinking-dots span{width:5px;height:5px;border-radius:50%;background:var(--text-dim);animation:dot-pulse 1.2s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dot-pulse{0%,60%,to{opacity:.3;transform:scale(.85)}30%{opacity:1;transform:scale(1)}}.chat-input-row{display:flex;gap:8px;padding:8px 10px;border-top:1px solid var(--border)}.chat-input{flex:1;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-family:var(--font-body);font-size:var(--text-base);outline:none;min-width:0}.chat-input:focus{border-color:var(--accent)}.send-btn{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 14px;cursor:pointer;font-family:var(--font-body);font-size:var(--text-md);transition:border-color .15s}.send-btn:hover:not(:disabled){border-color:var(--accent)}.send-btn:disabled{opacity:.45;cursor:default}.mic-btn{position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;cursor:pointer;touch-action:none;transition:border-color .15s}.mic-btn:hover{border-color:var(--accent)}.mic-btn.recording{border-color:var(--red);color:var(--red)}.rec-dot{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--red);animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.45}}.board-wrap.branching:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:16px;border:6px solid var(--accent);box-shadow:0 0 34px 10px #e9b56980,inset 0 0 26px #e9b56938;pointer-events:none;z-index:7;animation:branch-glow 2.2s ease-in-out infinite}@keyframes branch-glow{0%,to{opacity:.78;box-shadow:0 0 26px 6px #e9b5696b,inset 0 0 22px #e9b5692e}50%{opacity:1;box-shadow:0 0 44px 14px #e9b5699e,inset 0 0 30px #e9b56942}}.branch-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#e9b56921;border:1px solid var(--accent);border-radius:9px;padding:7px 10px;font-size:var(--text-sm)}.branch-flag{font-size:var(--text-2xs);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.branch-crumbs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;flex:1;min-width:0}.branch-crumb-wrap{display:inline-flex;align-items:center;gap:2px}.branch-sep{color:var(--text-dim);padding:0 3px}.branch-crumb{background:none;border:none;border-radius:6px;color:var(--text);font-size:var(--text-sm);padding:3px 6px;cursor:pointer}.branch-crumb:hover:not(:disabled){background:#e9b56938}.branch-crumb.current{color:var(--accent);font-weight:600;cursor:default}.branch-crumb:disabled{cursor:default}.branch-actions{display:flex;gap:6px}.branch-btn{display:inline-flex;align-items:center;min-height:var(--control-h-sm);background:var(--bg-panel);border:1px solid var(--border);color:var(--text);font-size:var(--text-sm);padding:0 13px;white-space:nowrap}.branch-btn:hover:not(:disabled){border-color:var(--accent)}.branch-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.branch-btn:disabled{opacity:.45;cursor:default}.branch-bar.busy .branch-btn,.branch-bar.busy .branch-crumb{opacity:.5}.turn-indicator.branch{color:var(--accent);border-color:var(--accent);background:#e9b5691f}.turn-indicator.branch .turn-dot{animation:turn-pulse 1.6s ease-in-out infinite}.explore-btn{display:flex;align-items:baseline;justify-content:center;gap:8px;width:100%;min-height:var(--control-h);background:#6fa98d24;border:1px solid var(--green);color:var(--text);font-size:var(--text-md);font-weight:600;padding:10px 14px}.explore-btn:hover:not(:disabled){background:#6fa98d42}.explore-btn:disabled{opacity:.45;cursor:default}.explore-hint{font-size:var(--text-xs);color:var(--text-dim)}.choice-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.choice-svg{width:100%;height:100%;pointer-events:none}.choice-arrow-san{font-family:var(--font-mono);font-size:34px;font-weight:600;paint-order:stroke;stroke:#0d1b338c;stroke-width:4px}.choice-card{background:linear-gradient(180deg,#e9b56929,#16294a80);border:1px solid var(--accent);border-radius:12px;padding:11px 12px 10px;display:flex;flex-direction:column;gap:9px;animation:fade-in .5s ease both}.choice-card.resolved{border-color:var(--border);background:#16294a80}.choice-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.choice-card-tag{font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.choice-card-ply{font-size:var(--text-2xs);color:var(--text-dim)}.choice-card-headline{margin:0;font-size:var(--text-base);font-weight:600;line-height:1.35}.choice-card-options{display:flex;flex-direction:column;gap:6px}.choice-opt{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:9px;text-align:left;background:var(--bg-raised);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:9px;color:var(--text);font-family:var(--font-body);font-size:var(--text-md);padding:12px 13px;cursor:pointer;transition:border-color .15s,transform .1s,background .15s}.choice-opt.opt-1{border-left-color:var(--green)}.choice-reveal:hover:not(:disabled){border-color:var(--accent);transform:translate(2px)}.choice-opt{cursor:default}.choice-reveal{cursor:pointer}.choice-opt:disabled{cursor:default}.choice-opt-san{font-size:var(--text-md);font-weight:600;color:var(--accent)}.choice-opt.opt-1 .choice-opt-san{color:var(--green)}.choice-opt-gloss{color:var(--text);line-height:1.4}.choice-opt-cue{font-size:var(--text-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.choice-opt.previewed .choice-opt-cue{color:var(--green)}.choice-opt.picked{border-color:var(--accent);background:#e9b56933}.choice-card-question{margin:0;font-size:var(--text-sm);line-height:1.45;color:var(--text)}.choice-card-question.settled{color:var(--text-dim);font-style:italic}.opt-label .opt-flag{margin-left:8px;font-size:var(--text-2xs);color:var(--accent);letter-spacing:.04em;text-transform:none}.opt-override{color:var(--accent);font-style:normal}.style-portrait{display:flex;flex-direction:column;gap:10px;background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:12px;padding:12px 14px}.style-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.style-tag{font-size:var(--text-2xs);letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}.style-count{font-size:var(--text-2xs);color:var(--text-dim)}.style-headline{margin:0;font-size:var(--text-base);font-weight:600;line-height:1.4}.style-traits{display:flex;flex-direction:column;gap:10px}.style-trait-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.style-trait-label{font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim)}.style-trait-count{font-size:var(--text-xs);color:var(--text-dim)}.style-bar{height:7px;border-radius:999px;background:var(--green);overflow:hidden}.style-bar-a{display:block;height:100%;background:var(--accent)}.style-poles{display:flex;justify-content:space-between;gap:10px;margin-top:4px}.style-poles .pole{font-size:var(--text-xs);color:var(--text-dim)}.style-poles .pole:last-child{text-align:right}.style-poles .pole.active{color:var(--text);font-weight:600}.style-lines{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:6px}.style-lines li{font-size:var(--text-sm);line-height:1.45;color:var(--text)}.style-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.style-source{font-size:var(--text-xs);color:var(--text-dim)}.style-clear{background:none;border:1px solid var(--border);border-radius:7px;color:var(--text-dim);font-family:var(--font-body);font-size:var(--text-xs);padding:3px 9px;cursor:pointer}.style-clear:hover{border-color:var(--accent);color:var(--accent)}.shell{min-height:100%;display:flex;flex-direction:column}.shell-tabs{display:flex;gap:4px;padding:10px 16px 0;border-bottom:1px solid var(--border);background:var(--bg-panel);position:sticky;top:0;z-index:20}.shell-tab{background:none;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;color:var(--text-dim);font-size:var(--text-ribbon);font-weight:500;padding:12px 22px;cursor:pointer}.shell-tab:hover{color:var(--text)}.shell-tab.active{background:var(--bg);border-color:var(--border);color:var(--accent);margin-bottom:-1px;padding-bottom:10px}.doc-page{width:min(820px,100%);margin:0 auto;padding:26px 20px 60px}.doc-head{margin-bottom:28px}.doc-head h1{margin:0 0 6px;font-size:var(--text-2xl);letter-spacing:-.01em}.doc-strap{margin:0 0 6px;font-size:var(--text-lg);color:var(--text);line-height:1.5}.doc-updated{margin:0;font-size:var(--text-xs);color:var(--text-dim)}.doc-section{margin-bottom:26px}.doc-section h2{margin:0 0 10px;font-size:var(--text-md);letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.doc-section p{margin:0 0 11px;font-size:var(--text-base);line-height:1.62}.doc-items{margin:14px 0 0;display:flex;flex-direction:column;gap:12px}.doc-item{background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:9px;padding:11px 13px}.doc-item dt{font-weight:600;font-size:var(--text-md);margin-bottom:4px}.doc-item dd{margin:0;font-size:var(--text-md);line-height:1.55;color:var(--text)}.doc-foot{margin-top:32px;padding-top:14px;border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-dim);line-height:1.5}.doc-loading{color:var(--text-dim);font-size:var(--text-base)}.research-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:18px}.research-bar .who{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-dim)}.research-bar input{width:110px;background:var(--bg-raised);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:var(--font-body);font-size:var(--text-md);padding:5px 8px;outline:none}.research-bar input:focus{border-color:var(--accent)}.form-spacer{flex:1}.research-source{font-size:var(--text-xs);color:var(--text-dim)}.ghost-btn{display:inline-flex;align-items:center;min-height:var(--control-h-sm);background:none;border:1px solid var(--border);color:var(--text);font-size:var(--text-sm);padding:0 14px;white-space:nowrap}.ghost-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ghost-btn:disabled{opacity:.4;cursor:default}.area-card{border:1px solid var(--border);border-radius:11px;background:var(--bg-panel);margin-bottom:12px;overflow:hidden}.area-card.priority-first{border-color:#e9b56999}.area-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;color:var(--text);font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;text-align:left;padding:13px 14px;cursor:pointer}.area-head:hover{background:#ffffff08}.area-caret{color:var(--text-dim);font-size:var(--text-sm)}.area-title{flex:1}.area-flag{font-size:var(--text-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border-radius:999px;padding:2px 8px}.area-meta{font-size:var(--text-xs);color:var(--text-dim);font-weight:400}.area-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}.area-decision,.area-purpose,.area-output{margin:0;font-size:var(--text-md);line-height:1.55}.area-decision strong,.area-output strong{color:var(--accent);font-weight:600}.area-purpose{color:var(--text)}.area-prompts{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.area-prompts li{font-size:var(--text-md);line-height:1.5;color:var(--text-dim)}.entry-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.entry{background:var(--bg-raised);border:1px solid var(--border);border-radius:9px;padding:9px 11px}.entry-head{display:flex;align-items:center;gap:8px}.entry-kind{font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 7px;background:var(--border);color:var(--text)}.entry-kind.kind-transcript{background:var(--leo-mid)}.entry-kind.kind-link{background:var(--leo-blue)}.entry-title{flex:1;font-size:var(--text-md);font-weight:600}.entry-when{font-size:var(--text-2xs);color:var(--text-dim)}.entry-del{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--text-sm);padding:2px 4px}.entry-del:hover{color:var(--red)}.entry-url{display:block;margin-top:5px;font-size:var(--text-sm);color:#8fc6e8;word-break:break-all}.entry-body{margin:7px 0 0;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow-y:auto;color:var(--text)}.entry-more{background:none;border:none;color:var(--accent);font-family:var(--font-body);font-size:var(--text-xs);padding:4px 0 0;cursor:pointer}.entry-form{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--border);padding-top:12px;margin-top:4px}.form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.entry-form input[type=text],.entry-form input[type=url],.entry-form textarea,.entry-form select{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-body);font-size:var(--text-md);padding:8px 10px;outline:none;width:100%}.entry-form select{width:auto;min-width:118px}.entry-form input[type=text]{flex:1;min-width:160px}.entry-form textarea{resize:vertical;line-height:1.5;min-height:90px}.entry-form input:focus,.entry-form textarea:focus,.entry-form select:focus{border-color:var(--accent)}.file-btn{display:inline-block;border:1px dashed var(--border);border-radius:8px;color:var(--text-dim);font-size:var(--text-sm);padding:7px 11px;cursor:pointer}.file-btn:hover{border-color:var(--accent);color:var(--accent)}.file-btn input[type=file]{display:none}.file-name{font-size:var(--text-xs);color:var(--green)}.save-btn{min-height:var(--control-h);background:var(--accent);border:none;color:var(--on-accent);font-size:var(--text-md);font-weight:600;padding:0 20px}.save-btn:hover:not(:disabled){background:#f0c684}.save-btn:disabled{opacity:.5;cursor:default}.form-status{margin:0;font-size:var(--text-sm);color:var(--green);line-height:1.45}.doc-page.wide{width:min(1100px,100%)}.games-layout{display:flex;gap:18px;align-items:flex-start}.game-list{list-style:none;margin:0;padding:0;width:220px;flex:0 0 auto;display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow-y:auto}.game-pick{display:grid;gap:2px;width:100%;text-align:left;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font-body);padding:10px 12px;cursor:pointer}.game-pick:hover{border-color:var(--accent)}.game-pick.active{border-color:var(--accent);background:#e9b56924}.game-pick-id{font-size:var(--text-xs);color:var(--accent)}.game-pick-when{font-size:var(--text-sm)}.game-pick-meta{font-size:var(--text-2xs);color:var(--text-dim)}.game-detail{flex:1;min-width:0}.game-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.game-filters{flex:1;min-width:260px}.ply-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ply{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:baseline;padding:7px 0;border-top:1px solid rgba(58,86,128,.4)}.ply-move{display:flex;gap:6px;font-size:var(--text-sm)}.ply-num{color:var(--text-dim)}.ply-san{font-weight:600;color:var(--accent)}.ply-silent{color:var(--text-dim)}.ply-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.ply-lines.loose{margin-bottom:14px}.ply-line{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:baseline;font-size:var(--text-md);line-height:1.5}.ply-kind{font-size:var(--text-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;padding:2px 8px;white-space:nowrap}.ply-line.kind-swing .ply-kind{color:var(--accent);border-color:#e9b56999}.ply-line.kind-choice .ply-kind,.ply-line.kind-resolution .ply-kind{color:var(--green);border-color:#6fa98d99}.ply-why{grid-column:2;font-size:var(--text-2xs);color:var(--text-dim)}.game-note{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-dim);background:var(--bg-panel);border-left:3px solid var(--border);border-radius:6px;padding:8px 10px;line-height:1.5}.move-note{display:flex;align-items:center;gap:10px;min-height:var(--bar-h);padding:7px 12px;border:1px dashed var(--border);border-radius:8px;background:var(--bg-panel);font-size:var(--text-sm);line-height:1.4;transition:border-color .15s,background .15s}.move-note.filled{border-style:solid;border-color:var(--accent)}.move-note-head{font-weight:600;color:var(--accent);white-space:nowrap}.move-note-detail{flex:1;min-width:0;color:var(--text)}.move-note-idle{color:var(--text-dim)}.move-note-spacer{flex:1}.move-note-detail+.move-note-spacer{flex:0}.move-note-audio{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer}.move-note-audio:hover{border-color:var(--accent);color:var(--accent)}@keyframes square-pick{0%{box-shadow:inset 0 0 0 2px #e9b56980}to{box-shadow:inset 0 0 0 5px #e9b569e6}}@keyframes leo-ref-pulse{0%,to{background-color:#5cc45c6b;box-shadow:inset 0 0 0 3px #2e962ebf}50%{background-color:#5cc45cc7;box-shadow:inset 0 0 0 6px #2e962e}}@media(prefers-reduced-motion:reduce){[data-square]>div{animation:none!important}}.menu-wrap{position:relative;flex:0 0 auto}.menu-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-h);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--control-radius);color:var(--text);font-family:var(--font-body);font-size:var(--text-ribbon);padding:0 14px;cursor:pointer}.menu-btn:hover,.menu-btn[aria-expanded=true]{background:var(--bg-raised);border-color:var(--accent);color:var(--accent)}.menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:min(330px,calc(100vw - 24px));display:flex;flex-direction:column;gap:14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:0 16px 40px #14222e80}.menu-row{display:flex;flex-direction:column;gap:7px}.menu-label{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm);font-weight:600}.menu-hint{font-size:var(--text-xs);font-weight:400;color:var(--text-dim)}.menu-seg .seg{min-height:36px;font-size:var(--text-sm)}.menu-newgame{min-height:var(--control-h);background:var(--accent);border:none;border-radius:var(--control-radius);color:var(--on-accent);font-family:var(--font-body);font-size:var(--text-md);font-weight:600;cursor:pointer}.menu-newgame:hover{background:#f0c684}.turn-icon{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:0 4px;font-size:var(--text-sm);color:var(--text-dim);white-space:nowrap}.turn-disc{width:19px;height:19px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 1px #f7f0e459}.turn-disc.white{background:var(--leo-cream)}.turn-disc.black{background:#101822}.turn-icon.state-you .turn-disc{box-shadow:0 0 0 3px var(--green)}.turn-icon.state-you .turn-icon-label{color:var(--green)}.turn-icon.state-wait .turn-disc,.turn-icon.state-branch .turn-disc{animation:turn-ring 1.4s ease-in-out infinite}@keyframes turn-ring{0%,to{box-shadow:0 0 0 1px #f7f0e459}50%{box-shadow:0 0 0 4px #e9b569bf}}.turn-icon.state-wait .turn-icon-label,.turn-icon.state-branch .turn-icon-label{color:var(--accent)}.turn-icon.state-over{opacity:.7}.ask-btn{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-h);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--control-radius);color:var(--text);font-family:var(--font-body);font-size:var(--text-ribbon);padding:0 14px;cursor:pointer}.ask-btn:hover{background:var(--bg-raised);border-color:var(--accent);color:var(--accent)}.ask-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;background:#14222e9e}.ask-dialog{width:min(520px,100%);display:flex;flex-direction:column;gap:12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 22px 60px #101a2499}.ask-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--text-md);font-weight:600}.ask-close{background:none;border:none;color:var(--text-dim);font-size:var(--text-lg);cursor:pointer;padding:2px 6px}.ask-close:hover{color:var(--accent)}.ask-field{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;color:var(--text);font-family:var(--font-body);font-size:var(--text-md);line-height:1.5;padding:11px 12px;resize:vertical;outline:none}.ask-field:focus{border-color:var(--accent)}.ask-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ask-mic{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:var(--control-h);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--control-radius);color:var(--text);font-family:var(--font-body);font-size:var(--text-sm);padding:0 13px;cursor:pointer;touch-action:none}.ask-mic.recording{border-color:var(--red);color:var(--red)}.ask-nomic{font-size:var(--text-xs);color:var(--text-dim)}.chat-panel.compact{display:flex;flex-direction:column;gap:8px;padding:10px 11px;overflow:hidden}.compact-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.compact-tag{display:block;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--accent);margin-bottom:4px}.compact-text{margin:0;font-size:var(--text-md);line-height:1.5;color:var(--text)}.compact-text.mine{color:var(--accent);font-style:italic}.compact-nav{display:flex;align-items:center;gap:8px;flex:0 0 auto}.compact-nav button{min-width:42px;min-height:34px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:var(--text-sm);cursor:pointer}.compact-nav button:disabled{opacity:.35;cursor:default}.compact-count{font-size:var(--text-2xs);color:var(--text-dim)}.compact-latest{margin-left:auto;padding:0 11px;color:var(--accent)!important;border-color:var(--accent)!important}.gate-checking{min-height:100vh;background:var(--bg)}.gate-card{max-width:420px}.gate-error{margin-top:8px;font-size:var(--text-sm);color:var(--red)}.rate-notice{position:fixed;top:0;left:0;right:0;z-index:60;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;text-align:center;font-size:var(--text-sm);color:var(--on-accent);background:var(--accent);box-shadow:0 2px 10px #00000040}@media(max-width:860px){.games-layout{flex-direction:column}.game-list{width:100%;flex-direction:row;max-height:none;overflow-x:auto}.game-pick{min-width:150px}}@media(max-width:860px){.app{height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.game-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(120px,1fr);justify-items:center;align-content:stretch;padding:10px 12px 12px;overflow:hidden}.board-col{width:min(560px,100%);gap:8px}.chat-side{width:min(560px,100%);min-height:0}.move-note{display:none}.material-bar{min-height:0}}@media(max-width:600px){.game-header{justify-content:space-between;padding:7px 10px;gap:4px}.header-right{display:contents}.header-opening{display:none}.header-logo{height:42px;width:42px}.ask-btn,.mute-btn,.menu-btn,.nav-btn{min-width:46px;min-height:44px;width:auto;padding:0 9px;justify-content:center}.ask-btn svg,.menu-btn svg{width:24px;height:24px}.mute-btn{font-size:22px}.nav-btn{font-size:20px}.header-nav{display:contents}.turn-disc{width:26px;height:26px}}@media(max-width:600px){.doc-page{padding:18px 14px 50px}.shell-tab{padding:9px 13px}}@media(max-width:600px){.menu-btn-label{display:none}.menu-btn{padding:0 11px}}@media(max-width:600px){.ask-btn-label{display:none}.ask-btn{padding:0 11px}.turn-icon{padding:0}}@media(max-width:480px){.game-header{padding:8px 10px;gap:8px}.header-opening{display:none}}.menu-test{min-height:36px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-body);font-size:var(--text-sm);padding:0 12px;cursor:pointer}.menu-test:hover{border-color:var(--accent);color:var(--accent)}.menu-diag{font-size:var(--text-2xs);color:var(--text-dim);line-height:1.5;word-break:break-word}.captured-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}.captured-side{display:inline-flex;flex:0 1 auto;align-items:center;gap:7px;min-width:0}.captured-glyphs{font-size:26px;line-height:1.15;letter-spacing:-1px;border-radius:7px;padding:0 6px}.captured-glyphs:empty{display:none}.captured-side.white .captured-glyphs{color:var(--leo-cream);background:#10182259;text-shadow:0 0 2px rgba(0,0,0,.45)}.captured-side.black .captured-glyphs{color:#101822;background:var(--leo-cream)}.captured-edge{font-size:var(--text-sm);font-weight:600;color:var(--accent)}.engine-overlay{position:fixed;left:8px;bottom:8px;z-index:50;display:flex;gap:10px;padding:4px 8px;border-radius:6px;background:#000000b8;color:#e8e8e8;font:11px/1.4 var(--font-mono);pointer-events:none}.more-options-btn{align-self:center;margin:4px 0 2px;padding:6px 14px;border:1px solid var(--line, rgba(255, 255, 255, .18));border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.9em;cursor:pointer;opacity:.85}.more-options-btn:hover,.more-options-btn.open{opacity:1}.setup-leo-btn{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 14px;border-radius:12px;border-color:var(--accent);text-align:left;opacity:1}.setup-leo-title{font-weight:700;font-size:1.05em;color:var(--accent)}.setup-leo-for{font-weight:600}.setup-leo-reset{border:0;padding:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.setup-leo-summary{font-size:.88em;opacity:.75}.setup-leo-intro{margin:0}.setup-leo-sub{margin:6px 0 -4px;font-size:.82em;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.more-options{display:flex;flex-direction:column;gap:inherit}.coach-controls{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}.ctl-group{display:grid;gap:8px}.ctl-group.advice{grid-template-columns:repeat(4,1fr)}.ctl-group.mine{grid-template-columns:1fr 1fr}.coach-ctl{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:inherit;font:inherit;font-weight:600;cursor:pointer}.coach-ctl.advice{flex-direction:column;gap:3px;min-height:58px;padding:7px 4px 6px;border-color:#c9a2278c;background:#c9a22724}.coach-ctl.advice .ctl-label{font-size:.92em;line-height:1.1;white-space:nowrap}.coach-ctl.mine{min-height:40px;padding:6px 10px;background:transparent;border-color:#ffffff38;font-weight:500;font-size:.92em}.ctl-icon{flex:none;width:22px;height:22px}.coach-ctl.advice .ctl-icon{width:28px;height:28px}.coach-ctl:hover:not(:disabled){background:#ffffff1f}.coach-ctl.advice:hover:not(:disabled){background:#c9a2273d}.coach-ctl:disabled{opacity:.45;cursor:default}.coach-ctl.back{background:#c9a227;border-color:#c9a227;color:#1a1a1a;font-weight:600}.coach-ctl.back:hover:not(:disabled){background:#d8b23a}.question-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.question-chip{min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid rgba(201,162,39,.55);background:#c9a2271a;color:inherit;font:inherit;font-size:.92em;cursor:pointer}.question-chip.ask-else{border-style:dashed;background:transparent}.question-chip:disabled{opacity:.5}.sandbox-banner{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:8px;align-items:baseline;max-width:calc(100% - 16px);padding:6px 12px;border-radius:999px;background:#c9a227;color:#1a1a1a;font-size:.88em;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-list.navigable .move-san{cursor:pointer}.move-list.navigable .move-san.ahead{opacity:.5}@media(max-width:420px){.coach-ctl.advice .ctl-label{font-size:.88em}.controls-hint{font-size:.82em;line-height:1.35}.coach-ctl.advice{padding:6px 2px 5px}}.ask-else-label{display:block;margin:10px 0 4px;font-size:.85em;opacity:.75}.ask-pending{display:flex;align-items:center;gap:10px;flex:1;font-size:.9em}.ask-cancel{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.3);background:transparent;color:inherit;cursor:pointer}.landing-logo.coach-avatar{width:140px;height:140px;border-radius:50%}.landing-coach-name{margin:8px 0 0;font-size:1.6rem}.landing-powered{margin:2px 0 0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.dev-metrics{max-width:980px;margin:0 auto;padding:24px 16px 48px}.dev-metrics h1{margin:0 0 12px}.dev-metrics h2{margin:28px 0 8px;font-size:1.1rem}.dev-metrics table{width:100%;border-collapse:collapse;margin:8px 0 16px;font-size:.9em}.dev-metrics th,.dev-metrics td{text-align:left;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.1)}.dev-metrics .ok{color:#8fd19e}.dev-metrics .warn{color:#f0c36b}.landing-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}.review-card{background:linear-gradient(180deg,#e9b56924,#16294a8c);border:1px solid var(--accent);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;animation:fade-in .5s ease both}.review-head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.review-result{font-size:var(--text-sm);letter-spacing:0;text-transform:none;color:var(--text);font-weight:600}.review-progress{font-size:var(--text-sm);color:var(--text-dim)}.review-bar{margin-top:8px;height:4px;border-radius:2px;background:#ffffff1f;overflow:hidden}.review-bar span{display:block;height:100%;background:var(--accent);transition:width .3s ease}.review-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-stat-label{font-size:var(--text-2xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.review-acc{font-size:1.5em;font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}.review-counts{font-size:var(--text-2xs);color:var(--text-dim)}.review-graph{width:100%;height:72px;cursor:pointer;background:#00000026;border-radius:6px}.review-graph-mid{stroke:#ffffff40;stroke-width:1}.review-graph-area{fill:#f7f0e42e}.review-graph-line{fill:none;stroke:var(--leo-cream);stroke-width:1.5;vector-effect:non-scaling-stroke}.review-graph-dot.mine{fill:var(--red)}.review-graph-dot.mine.k-strong,.review-graph-dot.k-punished{fill:var(--green)}.review-graph-dot.theirs,.review-graph-dot.k-turning-point{fill:var(--accent)}.review-moments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.review-moment{width:100%;text-align:left;display:flex;gap:8px;align-items:baseline;background:#00000029;border:1px solid var(--border);border-radius:8px;padding:7px 9px;color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer}.review-moment:hover{border-color:var(--accent)}.review-tag{flex:none;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:999px;background:#d4614f40;color:#f3c2b9}.review-moment.k-strong .review-tag,.review-moment.k-punished .review-tag{background:#6fa98d40;color:#c4e6d4}.review-moment.k-turning-point .review-tag{background:#e9b56938;color:var(--accent)}.review-debrief{font-size:var(--text-md, var(--text-sm));line-height:1.45;color:var(--text)}.review-debrief-who{color:var(--accent);font-weight:600}.review-muted{color:var(--text-dim)}.gameover-pill .review-open{margin-left:8px;background:var(--accent);color:var(--on-accent);border:0;border-radius:999px;padding:2px 10px;font:inherit;font-weight:600;cursor:pointer;pointer-events:auto}.review-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow-y:auto;padding:calc(52px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px));background:#16294af7}.review-sheet-close{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:16px;cursor:pointer}.review-reopen{width:100%;background:#e9b56924;border:1px solid var(--accent);border-radius:10px;color:var(--text);font:inherit;font-size:var(--text-sm);padding:10px 12px;cursor:pointer}.quiet-wrap{position:relative;display:inline-flex}.quiet-btn{gap:7px}.quiet-btn .quiet-label{font-size:var(--text-sm)}.quiet-btn.on{border-color:var(--accent);background:#e9b56929}.quiet-hint{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:max-content;max-width:220px;background:var(--leo-cream);color:var(--on-accent);border-radius:10px;padding:8px 11px;font-size:var(--text-sm);line-height:1.35;box-shadow:0 6px 18px #0000004d;animation:fade-in .4s ease both;cursor:pointer}.quiet-hint:before{content:"";position:absolute;top:-6px;right:18px;border:6px solid transparent;border-top:0;border-bottom-color:var(--leo-cream)}@media(max-width:720px){.quiet-btn .quiet-label{display:none}.quiet-btn{min-width:var(--control-h);padding-inline:0}.quiet-btn .speaker-icon{width:24px;height:24px}}.voice-lab{max-width:1100px;margin:0 auto;padding:24px 16px 48px;color:var(--text)}.voice-lab h1{font-size:1.6em;margin:0 0 6px}.vl-intro,.vl-foot,.vl-note{color:var(--text-dim);font-size:var(--text-sm)}.vl-rater{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:var(--text-sm)}.vl-rater input,.vl-comment,.vl-admin input,.vl-admin textarea{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 9px;font:inherit;font-size:var(--text-sm);width:100%;box-sizing:border-box}.vl-rater input{max-width:280px}.vl-error{background:#d4614f33;border:1px solid var(--red);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:var(--text-sm)}.vl-admin{margin:12px 0;display:grid;gap:6px}.vl-admin label{display:grid;gap:4px;font-size:var(--text-sm)}.vl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:14px}.vl-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;gap:10px}.vl-card header{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.vl-label{color:var(--accent);font-size:var(--text-sm)}.vl-ttfa{margin-left:auto;font-size:var(--text-2xs);color:var(--text-dim)}.vl-ttfa.slow{color:var(--red)}.vl-lines{display:grid;gap:5px}.vl-line{text-align:left;background:#00000026;border:1px solid var(--border);border-radius:7px;color:var(--text);padding:6px 8px;font:inherit;font-size:var(--text-sm);cursor:pointer}.vl-line.playing{border-color:var(--accent)}.vl-scores{display:grid;gap:6px;font-size:var(--text-sm)}.vl-scores>div{display:flex;justify-content:space-between;align-items:center}.vl-stars{display:inline-flex;gap:3px}.vl-stars button{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font:inherit;font-size:12px}.vl-stars button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.vl-actions{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}.vl-results table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.vl-results th,.vl-results td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}.vl-results{overflow-x:auto}.vl-comments{color:var(--text-dim);max-width:320px}.resign-row{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:6px 0 2px;font-size:var(--text-sm);color:var(--text-dim)}.resign-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:var(--control-radius);padding:5px 12px;font:inherit;font-size:var(--text-sm);cursor:pointer}.resign-btn:hover{border-color:var(--red);color:var(--text)}.resign-yes{background:var(--red);border:0;color:#fff;border-radius:var(--control-radius);padding:6px 14px;font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.resign-row .ghost-btn{padding:5px 12px;font-size:var(--text-sm)}.controls-hint{margin:2px 0 6px;font-size:var(--text-sm);color:var(--text-dim);line-height:1.4}.controls-hint strong{color:var(--text);font-weight:600}.move-san.tried{color:var(--accent);font-style:italic}.opening-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:.8em;color:var(--accent);letter-spacing:.02em;opacity:.9}.coach-ctl.glow{border-color:var(--accent);background:#e9b56938;animation:next-glow 1.6s ease-in-out infinite}@keyframes next-glow{0%,to{box-shadow:0 0 #e9b5698c}50%{box-shadow:0 0 14px 3px #e9b5698c}}@media(prefers-reduced-motion:reduce){.coach-ctl.glow{animation:none}}.review-ref{display:inline-block;margin:0 2px;padding:0 7px;border-radius:999px;border:1px solid var(--accent);background:#e9b56929;color:var(--accent);font:inherit;font-size:.85em;font-family:var(--font-mono, inherit);line-height:1.5;cursor:pointer;vertical-align:baseline}.review-ref:hover{background:#e9b5694d}.review-back{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--accent);border:none;border-radius:12px;color:var(--on-accent);font:inherit;font-size:var(--text-md);font-weight:600;padding:12px 14px;box-shadow:0 6px 20px #00000059;cursor:pointer}.review-replay{display:inline-block;margin-top:10px;background:transparent;border:1px solid var(--accent);border-radius:999px;color:var(--text);font:inherit;font-size:var(--text-sm);padding:6px 14px;cursor:pointer}.review-back:focus-visible,.review-replay:focus-visible{outline:none;box-shadow:var(--control-ring)}.review-replay+.review-replay{margin-left:8px}.replay-panel{display:grid;gap:10px;background:var(--bg-panel);border:1px solid var(--accent);border-radius:10px;padding:12px 14px}.replay-head{display:flex;align-items:center;gap:10px}.replay-title{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700}.replay-count{font-size:var(--text-sm);color:var(--text-dim);font-variant-numeric:tabular-nums}.replay-exit{margin-left:auto;min-height:var(--control-h-sm);background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:var(--text-sm);padding:0 12px}.replay-move{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.replay-san{font-size:var(--text-lg);font-weight:700}.replay-who{font-size:var(--text-sm);color:var(--text-dim)}.replay-tag{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;padding:1px 7px;border-radius:999px;background:#d4614f38;color:#f3b3a8}.replay-tag.k-strong,.replay-tag.k-punished{background:#6fa98d40;color:#c4e6d4}.replay-tag.k-turning-point{background:#e9b56938;color:var(--accent)}.replay-said p,.replay-answers p{margin:0 0 6px;font-size:var(--text-md);line-height:1.45}.replay-answers{border-left:3px solid var(--accent);padding-left:10px}.replay-quiet{color:var(--text-dim);font-style:italic}.replay-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.replay-step{min-height:44px;background:var(--accent);border:none;border-radius:8px;color:var(--on-accent);font-size:var(--text-base);font-weight:700}.replay-step:disabled{opacity:.4}.replay-questions{display:flex;flex-wrap:wrap;gap:8px}.replay-questions button{min-height:var(--control-h-sm);background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:var(--text-sm);padding:0 14px}.replay-questions button:first-child{border-color:var(--accent)}.replay-questions button:disabled{opacity:.5}.replay-panel button:focus-visible{outline:none;box-shadow:var(--control-ring)}.menu-end{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-end-ask{grid-column:1 / -1;font-weight:600}.menu-end-btn{min-height:var(--control-h);border-radius:10px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.menu-end-btn.resign{border-color:var(--red);color:#f3b3a8}.menu-end-btn:focus-visible{outline:none;box-shadow:var(--control-ring)}.board-wrap{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.choice-opt-actions{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:2px}.choice-opt-actions button,.choice-both{min-height:36px;border-radius:8px;border:1px solid var(--border);background:#ffffff0f;color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.choice-opt-actions button.play{border-color:var(--accent);background:#e9b56929}.choice-opt-actions button:disabled,.choice-both:disabled{opacity:.45;cursor:default}.choice-opt-actions button:focus-visible,.choice-both:focus-visible{outline:none;box-shadow:var(--control-ring)}.choice-both{width:100%;margin-top:6px}.choice-popup-anchor{position:relative;width:100%;height:0;z-index:30}.choice-popup{position:absolute;top:4px;left:0;right:0;overflow-y:auto;border-radius:14px;background:var(--bg-panel);box-shadow:0 10px 30px #00000073;animation:fade-in .25s ease both}.choice-popup .choice-card{padding-right:40px;border-radius:14px}.choice-popup .choice-opt{padding:9px 11px}.choice-popup-close{position:absolute;top:6px;right:6px;z-index:1;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:#00000040;color:var(--text);font:inherit;cursor:pointer}.choice-popup-answer{margin:0;padding:12px 44px 10px 14px;border-bottom:1px solid var(--border);font-size:var(--text-sm);line-height:1.45}.choice-popup .choice-card{gap:6px;padding:9px 40px 9px 10px}.choice-popup .choice-card-headline{font-size:var(--text-sm)}.choice-popup .choice-card-question{display:none}.choice-popup .choice-opt{padding:7px 9px;gap:2px 8px;font-size:var(--text-sm)}.choice-popup .choice-opt-gloss{font-size:13px;line-height:1.3}.choice-popup .choice-opt-actions button,.choice-popup .choice-both{min-height:32px;font-size:13px}.choice-popup .choice-both{margin-top:0}.choice-popup.answered .choice-card-headline{display:none}.profile-head{text-align:center}.profile-title{margin:0 0 4px;font-size:var(--text-lg);font-weight:600}.profile-cancel{min-height:44px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.landing-privacy{margin:6px 0 0;text-align:center;font-size:var(--text-xs);color:var(--text-dim);line-height:1.4}.move-san .fig{font-size:1.25em;line-height:1;margin-right:1px;vertical-align:-.04em}.move-list.strip{flex:none;width:100%;max-height:none;padding:2px 2px 4px;border:none;background:transparent;font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.move-list.strip::-webkit-scrollbar{display:none}.move-list.strip .move-row{margin-right:10px}.move-list.strip .move-num{margin-right:3px}.move-list.strip .move-san{margin-right:4px;padding:2px 6px;border-radius:6px}@media(max-width:600px){.board-wrap,.board-wrap.branching{margin:0 -12px;width:calc(100% + 24px)}.board-wrap.branching:after{top:0;right:0;bottom:0;left:0;border-radius:0;border-width:5px}}.ask-dialog .ask-else-label{margin:6px 0 -8px}.ask-dialog .question-chips{margin:0}.coach-ctl{transition:transform .08s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.coach-ctl:active:not(:disabled){transform:scale(.95)}.coach-ctl.advice:active:not(:disabled){background:#c9a22766}.coach-ctl.advice.working,.coach-ctl.advice.working:hover:not(:disabled){background:#c9a227;border-color:#e3c25a;color:#1a1a1a;animation:ctl-working 1.4s ease-in-out infinite}@keyframes ctl-working{0%,to{box-shadow:0 0 #e3c25a99;filter:brightness(1)}50%{box-shadow:0 0 12px 3px #e3c25a8c;filter:brightness(1.12)}}@media(prefers-reduced-motion:reduce){.coach-ctl.advice.working{animation:none}.coach-ctl:active:not(:disabled){transform:none}}.review-sections{display:flex;flex-direction:column;gap:10px;margin-top:6px}.review-section{padding-left:10px;border-left:3px solid rgba(201,162,39,.55)}.review-section[data-section="Next game"]{border-left-color:var(--accent)}.review-section-title{margin:0 0 2px;font-size:.78em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.review-section p{margin:0}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.tour-scrim{position:absolute;top:0;right:0;bottom:0;left:0}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#080e16a8;animation:tour-fade .25s ease}.tour-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 3px var(--accent),0 0 18px 4px #e9b56973,0 0 0 9999px #080e16a8;padding:0;background:transparent;border:0;cursor:pointer;transition:top .35s ease,left .35s ease,width .35s ease,height .35s ease;animation:tour-ring 1.8s ease-in-out infinite}@keyframes tour-ring{0%,to{box-shadow:0 0 0 3px var(--accent),0 0 10px 2px #e9b56959,0 0 0 9999px #080e16a8}50%{box-shadow:0 0 0 3px var(--accent),0 0 22px 6px #e9b56999,0 0 0 9999px #080e16a8}}.tour-pop{position:fixed;padding:14px 16px 12px;border-radius:14px;background:var(--bg-panel);border:1px solid var(--accent);box-shadow:0 18px 50px #00000080;color:var(--text);transition:top .35s ease,left .35s ease;animation:tour-pop-in .3s ease}@keyframes tour-pop-in{0%{opacity:0;transform:translateY(6px)}}@keyframes tour-fade{0%{opacity:0}}.tour-head{display:flex;align-items:center;gap:10px}.tour-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}.tour-title{flex:1;margin:0;font-size:1.08em;color:var(--accent)}.tour-title-btn{border:0;background:transparent;color:inherit;font:inherit;padding:0;text-align:left;cursor:pointer}.tour-x{border:0;background:transparent;color:inherit;font-size:1.05em;opacity:.7;cursor:pointer;padding:4px 6px}.tour-text{margin:8px 0 0;animation:tour-fade .2s ease;line-height:1.45}.tour-foot{margin-top:10px;display:flex;align-items:center;gap:8px}.tour-count{flex:1;font-size:.85em;opacity:.65}.tour-skip,.tour-back,.tour-next{min-height:40px;padding:8px 14px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}.tour-skip{border:0;background:transparent;color:inherit;opacity:.75}.tour-back{border:1px solid rgba(255,255,255,.25);background:transparent;color:inherit}.tour-next{border:1px solid var(--accent);background:var(--accent);color:#1a1a1a}@media(prefers-reduced-motion:reduce){.tour-hole,.tour-pop,.tour-dim{animation:none;transition:none}}.tour-offer{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:30;width:min(340px,calc(100% - 16px));display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:14px;background:var(--bg-panel);border:1px solid var(--accent);box-shadow:0 12px 34px #00000073;color:var(--text);animation:tour-pop-in .3s ease}.tour-offer-text{line-height:1.4}.tour-offer-btns{display:flex;gap:8px;justify-content:flex-end}.tour-btn{margin-top:8px;min-height:48px;width:100%;border-radius:var(--control-radius, 10px);border:1px solid var(--accent);background:transparent;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.tour-btn:hover{background:#e9b5691f}
