.home-page{flex:1;background:var(--bg-page)}.hero{padding:1.5rem 1rem;min-height:20vh;text-align:center;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,var(--accent-glow) 0%,transparent 70%)}.hero-title{font-size:1.6rem;font-weight:700;color:var(--accent);margin-bottom:.5rem}.hero-subtitle{font-size:.95rem;color:var(--text-secondary);margin-bottom:.3rem}.hero-desc{font-size:.75rem;color:var(--text-muted);margin:0 0 1.5rem;line-height:1.4}.hero-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 32px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);border-radius:8px;font-size:1rem;text-decoration:none;transition:all .2s}.hero-btn-icon{font-size:1.1rem;line-height:1;transform:translateY(-1px)}.hero-btn:hover{background:var(--accent-hover-bg);border-color:var(--accent-hover-border)}.hero-photo-link{display:flex;width:fit-content;align-items:center;gap:5px;margin:14px auto 0;font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.hero-photo-link svg{width:15px;height:15px}.hero-photo-link:hover{color:#38b2ace6;text-decoration:underline}.rhymes{padding:0 1rem 1.5rem}.rhymes-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.rhyme-card{display:flex;align-items:baseline;gap:6px;padding:.6rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;transition:background .2s;min-width:0}.rhyme-card:hover{background:var(--card-hover)}.rhyme-phrase{font-size:.85rem;color:var(--accent);white-space:nowrap;flex-shrink:0;font-weight:700}.rhyme-meaning{font-size:.75rem;color:var(--text-secondary);margin:0;line-height:1.4;flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-word}.home-page:not(.lang-zh) .rhyme-card{flex-direction:column;align-items:flex-start;gap:3px}.home-page:not(.lang-zh) .rhyme-phrase{white-space:normal}.pwa-install{display:flex;justify-content:center;padding:0 1rem 1.5rem}.pwa-install-wrap{position:relative;display:inline-flex}.pwa-install-hint{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:max-content;max-width:min(420px,calc(100vw - 24px));padding:8px 14px;background:var(--bg-panel);border:1px solid var(--panel-border);border-radius:8px;font-size:.8rem;line-height:1.5;color:var(--text-primary);text-align:center;box-shadow:0 4px 14px #0006;pointer-events:none;animation:pwa-hint-in .2s ease}@keyframes pwa-hint-in{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}.pwa-install-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:var(--card-bg);color:var(--text-secondary);border:1px solid var(--card-border);border-radius:8px;font-size:.85rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.pwa-install-btn svg{width:15px;height:15px}.pwa-install-btn:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border);box-shadow:0 2px 10px var(--accent-glow)}@media(min-width:480px){.hero{padding:2.5rem 1.5rem}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.rhymes-grid{gap:.6rem}.rhyme-card{padding:.7rem}.rhyme-phrase{font-size:.9rem}.rhyme-meaning{font-size:.8rem}}@media(min-width:768px){.hero{padding:3rem 1.5rem;min-height:35vh}.hero-title{font-size:2.4rem}.hero-subtitle{font-size:1.1rem}.rhymes{padding:0 1.5rem 2.5rem;max-width:700px;margin:0 auto}.pwa-install{padding:0 1.5rem 2.5rem}.rhymes-grid{grid-template-columns:1fr 1fr;gap:.7rem}.rhyme-card{padding:.8rem}.rhyme-phrase{font-size:.95rem}.rhyme-meaning{font-size:.82rem}.theme-picker{padding:0 1.5rem 2.5rem}}@media(min-width:1024px){.hero{padding:4rem 2rem;min-height:40vh}.hero-title{font-size:3rem}.hero-subtitle{font-size:1.2rem}.rhymes{padding:0 2rem 3rem;max-width:960px}.pwa-install{padding:0 2rem 3rem}.rhymes-grid{gap:.8rem}.rhyme-card{padding:.9rem 1rem;gap:10px}.rhyme-phrase{font-size:1rem}.rhyme-meaning{font-size:.85rem}.theme-picker{padding:0 2rem 3rem}}.culture-scroll{flex:1;overflow-y:auto;display:flex;justify-content:center;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track);width:100%}.culture-scroll::-webkit-scrollbar{width:4px}.culture-scroll::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.culture-scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.culture-container{max-width:1000px;width:100%;padding:40px 24px 60px}.culture-back{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:14px;margin-bottom:24px;transition:color .2s}.culture-back:hover{color:var(--accent)}.culture-back svg{width:20px;height:20px}.culture-header{text-align:center;margin-bottom:32px}.culture-header h1{font-size:36px;font-weight:500;color:var(--accent);margin:0 0 6px;letter-spacing:6px}.culture-header .subtitle{font-size:16px;color:var(--text-secondary);margin:0;letter-spacing:4px}.culture-header .version{display:inline-block;margin-top:10px;padding:3px 14px;background:var(--card-bg);border-radius:12px;font-size:12px;color:var(--text-muted)}.culture-intro{font-size:15px;line-height:2;color:var(--text-primary);text-align:justify;margin-bottom:36px;padding:0 4px}.lang-zh .culture-intro,.lang-zh .culture-card>p,.lang-zh .culture-core-box>p,.lang-zh .culture-kill-card>p{text-indent:2em}.culture-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:28px 32px;margin-bottom:22px;transition:border-color .2s}.culture-card:hover{border-color:var(--border-strong)}.culture-card h2{font-size:20px;font-weight:500;color:var(--accent);margin:0 0 16px;display:flex;align-items:center;gap:10px;letter-spacing:2px}.culture-card h2 .icon{font-size:24px;opacity:.8}.culture-card h3{font-size:16px;font-weight:500;color:var(--text-primary);margin:22px 0 10px}.culture-card h3:first-of-type{margin-top:0}.culture-card p{font-size:14.5px;line-height:1.9;color:var(--text-primary);margin:0 0 14px}.culture-card p:last-child{margin-bottom:0}.culture-card ul,.culture-card ol{margin:8px 0 14px;padding-left:24px;font-size:14px;line-height:1.9;color:var(--text-primary)}.culture-card li{margin-bottom:4px}.culture-card li strong{color:var(--text-primary)}.culture-quote{background:var(--card-bg);border-left:4px solid var(--accent-border);border-radius:0 8px 8px 0;padding:14px 20px;margin:16px 0 18px;font-style:italic;color:var(--text-secondary);font-size:14.5px;line-height:1.8}.culture-quote strong{font-style:normal;color:var(--accent)}.culture-table{width:100%;border-collapse:collapse;margin:14px 0 10px;font-size:13.5px}.culture-table th{background:var(--panel-bg);color:var(--text-secondary);font-weight:500;padding:10px 12px;text-align:left;border-bottom:1px solid var(--card-border)}.culture-table td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:top}.culture-table tr:last-child td{border-bottom:none}.culture-table tr:hover td{background:var(--bg-hover)}.culture-table .piece-name{font-weight:600;color:var(--accent);white-space:nowrap;font-size:14px}.culture-kill-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 8px}.culture-kill-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;padding:18px 20px;transition:background .2s,border-color .2s}.culture-kill-card:hover{background:var(--panel-bg);border-color:var(--accent-border)}.culture-kill-card h4{font-size:18px;font-weight:500;color:var(--accent);margin:0 0 8px;letter-spacing:2px}.culture-kill-card p{font-size:13.5px;line-height:1.8;color:var(--text-primary);margin:0}.culture-kill-card p strong{color:var(--text-primary)}.culture-core-box{background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:14px;padding:24px 28px;margin:16px 0 10px}.culture-core-box p{font-size:15px;line-height:2;margin-bottom:10px}.culture-core-box p:last-child{margin-bottom:0}.culture-core-box .highlight{color:var(--accent);font-weight:500}.culture-core-verse{font-size:22px;font-weight:500;color:var(--accent);text-align:center;letter-spacing:6px;margin:12px 0 10px;padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.culture-footer{text-align:right;margin-top:32px;color:var(--text-muted);font-size:13px;border-top:1px solid var(--border);padding-top:18px;letter-spacing:2px}@media(max-width:700px){.culture-container{padding:20px 12px 48px}.culture-header h1{font-size:26px;letter-spacing:4px}.culture-card{padding:20px 16px}.culture-kill-grid{grid-template-columns:1fr}.culture-table{font-size:12px}.culture-table th,.culture-table td{padding:6px 8px}.culture-core-verse{font-size:18px;letter-spacing:4px}}@media(max-width:480px){.culture-header h1{font-size:22px;letter-spacing:2px}.culture-card h2{font-size:17px}.culture-core-box{padding:16px 14px}}.about-scroll{flex:1;overflow-y:auto;display:flex;justify-content:center;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.about-scroll::-webkit-scrollbar{width:4px}.about-scroll::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.about-scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.container{max-width:1000px;width:100%;padding:40px 24px 60px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:14px;margin-bottom:24px;transition:color .2s}.back-link:hover{color:var(--accent)}.back-link svg{width:20px;height:20px}.header{text-align:center;margin-bottom:40px}.header h1{font-size:32px;font-weight:500;color:var(--accent);margin:0 0 8px;letter-spacing:4px}.header .subtitle{font-size:15px;color:var(--text-secondary);margin:0}.header .version{display:inline-block;margin-top:10px;padding:3px 12px;background:var(--panel-bg);border-radius:12px;font-size:12px;color:var(--text-muted)}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:28px 32px;margin-bottom:20px}.card h2{font-size:18px;font-weight:500;color:var(--accent);margin:0 0 16px;display:flex;align-items:center;gap:8px}.card h2 svg{width:22px;height:22px;opacity:.7}.card h3{font-size:15px;font-weight:500;color:var(--text-primary);margin:20px 0 10px}.card h3:first-of-type{margin-top:0}.card p{font-size:14px;line-height:1.8;color:var(--text-primary);margin:0 0 12px}.card p:last-child{margin-bottom:0}.lang-zh .card>p{text-indent:2em}.ack-list{list-style:none!important;padding-left:0!important;display:flex;flex-direction:column;gap:10px}.ack-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.ack-list a{color:var(--blue);font-weight:600;text-decoration:none;white-space:nowrap}.ack-list a:hover{text-decoration:underline}.ack-list span{color:var(--text-secondary);font-size:13px}.card ul,.card ol{margin:8px 0 12px;padding-left:22px;font-size:14px;line-height:1.9;color:var(--text-primary)}.card li{margin-bottom:4px}.card li strong{color:var(--text-primary)}.card .ios-share-ico{width:1.1em;height:1.1em;vertical-align:-.15em;margin:0 1px}.level-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.level-table th{background:var(--panel-bg);color:var(--text-secondary);font-weight:500;padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.level-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-primary)}.level-table tr:last-child td{border-bottom:none}.level-table tr:hover td{background:var(--bg-hover)}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.feature-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:14px 16px;transition:background .2s}.feature-item:hover{background:var(--panel-bg)}.feature-item .feature-title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.feature-item .feature-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.step-list{counter-reset:step;list-style:none;padding:0;margin:12px 0}.step-list li{counter-increment:step;padding:10px 0 10px 36px;position:relative;font-size:14px;line-height:1.7;color:var(--text-primary);border-bottom:1px solid var(--border)}.step-list li:last-child{border-bottom:none}.step-list li:before{content:counter(step);position:absolute;left:0;top:10px;width:24px;height:24px;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--accent)}.tag{display:inline-block;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:500;margin-right:4px}.tag-engine{background:#48bb7826;color:#48bb78}.tag-tip{background:#4299e126;color:#63b3ed}.tag-hotkey{background:#ed893626;color:#ed8936}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.engine-note{background:var(--card-bg);border-left:3px solid rgba(72,187,120,.4);border-radius:0 6px 6px 0;padding:12px 16px;margin:12px 0;font-size:13px;color:var(--text-secondary);line-height:1.6}.engine-note strong{color:var(--text-primary)}@media(max-width:600px){.container{padding:20px 16px 48px}.header h1{font-size:24px}.card{padding:20px 16px}.feature-grid{grid-template-columns:1fr}.level-table{font-size:12px}.level-table th,.level-table td{padding:6px 8px}}.button-list{list-style:none;padding:0;margin:0}.button-list li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--text-secondary);line-height:1.5}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--panel-bg);border-radius:6px;flex-shrink:0;position:relative}.btn-icon svg{width:16px;height:16px;color:var(--text-secondary)}.btn-icon.voice-icon svg{color:#e53e3e}.ai-badge-sm{position:absolute;top:-2px;right:-2px;font-size:7px;font-weight:700;background:#4a9eff;color:#fff;border-radius:3px;padding:0 3px;line-height:1.4;pointer-events:none}.button-list li:nth-child(3) .btn-icon{width:24px;height:24px}.button-list li:nth-child(3) .btn-icon svg{width:14px;height:14px}.button-list li:nth-child(7) .btn-icon,.button-list li:nth-child(8) .btn-icon{position:relative}@media(max-width:600px){.button-list li{flex-wrap:wrap;gap:4px}}.replay-page{flex:1;min-height:0;display:flex;flex-direction:column}.replay-page .layout{flex:1;min-height:0}.replay-page .nav-btn{width:36px;height:36px}.replay-page .nav-btn svg{width:20px;height:20px}.replay-page .moves-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.replay-page .moves-list{flex:1;min-height:0;overflow-y:auto}.replay-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.replay-header .header-actions{display:flex;align-items:center;gap:8px}.export-pgn-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#a0aec0;cursor:pointer;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:all .2s}.export-pgn-btn:hover:not(:disabled){background:#ffffff24;border-color:#fff3;color:beige}.export-pgn-btn:disabled{opacity:.4;cursor:not-allowed}.export-pgn-btn svg{width:18px;height:18px}.moves-header-extra{margin-left:auto;display:inline-flex;align-items:center}.moves-header-extra .export-pgn-btn{width:24px;height:24px}.moves-header-extra .export-pgn-btn svg{width:16px;height:16px}.replay-result-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:4px;font-size:12px;font-weight:500;vertical-align:middle}.replay-result-tag.result-red{background:#f4433626;border:1px solid rgba(244,67,54,.35);color:#f87171}.replay-result-tag.result-black{background:#78828c26;border:1px solid rgba(120,130,140,.35);color:#a0aec0}.replay-result-tag.result-draw{background:#9e9e9e26;border:1px solid rgba(158,158,158,.35);color:#9e9e9e}.replay-page .nav-btn.study-active{background:#63b3ed59;color:#63b3ed;box-shadow:0 0 12px #63b3ed80;border-color:#63b3ed}.replay-page .nav-btn.playing{background:#63b3ed40;color:#63b3ed;box-shadow:0 0 8px #63b3ed4d}.replay-page .study-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;max-width:60%;z-index:10;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));pointer-events:none;animation:replayStudyResultIn .3s ease}@keyframes replayStudyResultIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.replay-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:#e2e8f0}.replay-error .error-icon{font-size:48px;margin-bottom:16px}.replay-error .error-text{font-size:18px;margin-bottom:24px}.replay-error .back-btn{padding:12px 32px;background:#4299e1;color:#fff;border:none;border-radius:6px;font-size:16px;cursor:pointer;transition:background .2s}.replay-error .back-btn:hover{background:#3182ce}.replay-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:#e2e8f0;font-size:18px}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;top:0;right:0;bottom:0;left:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translate(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}*{box-sizing:border-box;margin:0;padding:0}.records-scroll{flex:1;overflow-y:auto;display:flex;justify-content:center;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track);width:100%}.records-scroll::-webkit-scrollbar{width:4px}.records-scroll::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.records-scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.records-container{max-width:900px;width:100%;padding:40px 24px 60px}.records-header{text-align:center;margin-bottom:32px}.records-header h1{font-size:36px;font-weight:500;color:var(--accent);margin:0;letter-spacing:6px}.photo-import-entry{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:10px 22px;border-radius:999px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.photo-import-entry svg{width:18px;height:18px;color:#38b2ac}.photo-import-entry:hover{border-color:#38b2ac73;background:#38b2ac1f;box-shadow:0 4px 14px #0000002e}.trend-chart{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;padding:16px 18px 10px;margin-bottom:20px}.trend-title{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 10px;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.trend-stats{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;font-size:12px;color:var(--text-muted)}.trend-stat{white-space:nowrap}.trend-empty{text-align:center;padding:32px 0 20px;color:var(--text-secondary);font-size:14px}.filter-bar{display:flex;gap:24px;margin-bottom:24px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:10px}.filter-group label{color:var(--text-secondary);font-size:14px}.filter-group select{background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--accent);border-radius:4px;padding:6px 10px;font-size:13px;cursor:pointer;outline:none;transition:border-color .2s}.filter-group select option{background:var(--bg-panel);color:var(--accent)}.filter-group select:hover{border-color:var(--border-strong)}.records-list{display:flex;flex-direction:column;gap:8px}.record-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:6px;padding:10px 16px;display:flex;align-items:center;gap:16px;transition:border-color .2s;font-size:13px}.record-item:hover{border-color:var(--border-strong)}.record-col{flex-shrink:0}.record-col.time{flex:1;min-width:120px;color:var(--text-secondary);font-size:12px}.record-col.result{min-width:80px;font-weight:500;color:var(--accent)}.record-col.moves{min-width:70px;color:var(--text-muted)}.record-col.level{min-width:80px;color:var(--text-muted)}.record-col.action{margin-left:auto;display:flex;align-items:center;gap:8px}.btn-replay{background:#4caf5026;border:1px solid rgba(76,175,80,.3);border-radius:6px;padding:6px 14px;font-size:12px;color:#4caf50;cursor:pointer;transition:all .2s}.btn-replay:hover{background:#4caf5040;border-color:#4caf5080}.btn-analyze{background:#2196f326;border:1px solid rgba(33,150,243,.3);border-radius:6px;padding:6px 14px;font-size:12px;color:#2196f3;cursor:pointer;transition:all .2s}.btn-analyze:hover{background:#2196f340;border-color:#2196f380;box-shadow:0 2px 8px #2196f340}.btn-delete{background:none;border:none;border-radius:6px;padding:6px;cursor:pointer;color:var(--text-secondary);opacity:.35;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-delete svg{width:16px;height:16px}.btn-delete:hover{opacity:1;color:#f44336;background:#f443361f;box-shadow:0 2px 8px #f4433640}.confirm-modal{min-width:320px}.confirm-modal .confirm-text{margin:-8px 0 24px;font-size:14px;color:var(--text-secondary);text-align:center}.confirm-actions{display:flex;gap:12px;justify-content:center}.btn-cancel,.btn-confirm-delete{border-radius:8px;padding:8px 24px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancel{background:transparent;border:1px solid var(--btn-border);color:var(--text-primary)}.btn-cancel:hover{background:var(--bg-active)}.btn-confirm-delete{background:#f4433626;border:1px solid rgba(244,67,54,.4);color:#f44336}.btn-confirm-delete:hover{background:#f4433647;box-shadow:0 2px 10px #f443364d}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:24px;padding:16px 0}.page-btn{background:var(--card-bg);border:1px solid var(--btn-border);border-radius:6px;padding:8px 16px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:all .2s}.page-btn:hover:not(:disabled){background:var(--btn-bg);border-color:var(--btn-border)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:var(--text-secondary);font-size:13px;padding:0 8px}.records-empty,.records-loading{text-align:center;padding:80px 24px;color:var(--text-secondary);font-size:16px}@media(max-width:700px){.records-container{padding:20px 12px 48px}.records-header h1{font-size:26px;letter-spacing:4px}.filter-bar{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;gap:8px}.filter-group{flex:1;min-width:0;gap:6px}.filter-group label{flex-shrink:0;font-size:13px}.filter-group select{flex:1;min-width:0;padding:6px 8px;font-size:13px}.record-item{padding:10px 12px;gap:10px}.record-col.time{display:none}.record-col.result{min-width:64px}.record-col.moves{min-width:56px}.record-col.level{min-width:64px}}@media(max-width:480px){.records-header h1{font-size:22px;letter-spacing:2px}.record-item{padding:8px 10px;gap:8px;font-size:12px}.record-col.result{min-width:56px}.record-col.moves{min-width:48px}.record-col.level{min-width:56px}.btn-replay{padding:5px 10px;font-size:12px}}:root,[data-theme=dark]{--bg-page: #262b2d;--bg-nav: rgba(30, 35, 37, .98);--bg-hover: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .08);--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .08);--card-hover: rgba(255, 255, 255, .1);--qr-ink: #2b3a47;--text-primary: #e8e8e8;--text-secondary: #a0aec0;--text-muted: #718096;--accent: #f5f5dc;--accent-soft: rgba(245, 245, 220, .15);--accent-border: rgba(245, 245, 220, .3);--accent-hover-bg: rgba(245, 245, 220, .25);--accent-hover-border: rgba(245, 245, 220, .5);--accent-glow: rgba(245, 245, 220, .08);--accent-dim: rgba(245, 245, 220, .6);--bg-panel: #343d3f;--panel-border: rgba(255, 255, 255, .1);--panel-bg: rgba(255, 255, 255, .08);--bg-active: rgba(255, 255, 255, .12);--bg-active-strong: rgba(255, 255, 255, .14);--btn-bg: rgba(255, 255, 255, .1);--btn-border: rgba(255, 255, 255, .2);--border-strong: rgba(255, 255, 255, .15);--modal-bg: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);--popover-bg: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);--scroll-thumb: rgba(245, 245, 220, .3);--scroll-track: rgba(0, 0, 0, .1);--blue: #63b3ed;--photo-grid-line: rgba(245, 245, 220, .2);--board-shadow: 0 0 0 1px rgba(255, 255, 255, .07), 0 3px 10px rgba(0, 0, 0, .5), 0 14px 36px rgba(0, 0, 0, .65)}[data-theme=scroll]{--bg-page: #e8ddbd;--bg-nav: #d5c79f;--bg-hover: rgba(120, 80, 20, .13);--border: rgba(120, 80, 20, .2);--card-bg: rgba(120, 80, 20, .1);--card-border: rgba(120, 80, 20, .2);--card-hover: rgba(120, 80, 20, .18);--qr-ink: #3b2a12;--text-primary: #2c1c06;--text-secondary: #6b4a22;--text-muted: #8d6d44;--accent: #8a4a10;--accent-soft: rgba(138, 74, 16, .15);--accent-border: rgba(138, 74, 16, .38);--accent-hover-bg: rgba(138, 74, 16, .2);--accent-hover-border: rgba(138, 74, 16, .58);--accent-glow: rgba(140, 80, 20, .09);--accent-dim: rgba(138, 74, 16, .68);--bg-panel: #d9cca5;--panel-border: rgba(120, 80, 20, .18);--panel-bg: rgba(120, 80, 20, .1);--bg-active: rgba(120, 80, 20, .15);--bg-active-strong: rgba(120, 80, 20, .19);--btn-bg: rgba(120, 80, 20, .13);--btn-border: rgba(120, 80, 20, .3);--border-strong: rgba(120, 80, 20, .26);--modal-bg: linear-gradient(135deg, #ddd0a8 0%, #d5c79f 100%);--popover-bg: linear-gradient(135deg, #ddd0a8 0%, #d5c79f 100%);--scroll-thumb: rgba(138, 74, 16, .4);--scroll-track: rgba(120, 80, 20, .1);--blue: #2a6f9e;--photo-grid-line: rgba(120, 80, 20, .32);--board-shadow: 0 0 0 1px rgba(120, 80, 20, .25), 0 3px 10px rgba(0, 0, 0, .3), 0 14px 36px rgba(0, 0, 0, .4)}[data-theme=green]{--bg-page: #464f4d;--bg-nav: #3f4846;--bg-hover: rgba(200, 220, 215, .1);--border: rgba(200, 220, 215, .14);--card-bg: rgba(200, 220, 215, .08);--card-border: rgba(200, 220, 215, .14);--card-hover: rgba(200, 220, 215, .16);--qr-ink: #1e352c;--text-primary: #f0f5f3;--text-secondary: #bcd0cc;--text-muted: #90a8a4;--accent: #c8e0d8;--accent-soft: rgba(200, 220, 215, .15);--accent-border: rgba(200, 220, 215, .32);--accent-hover-bg: rgba(200, 220, 215, .22);--accent-hover-border: rgba(200, 220, 215, .5);--accent-glow: rgba(200, 220, 215, .09);--accent-dim: rgba(200, 220, 215, .6);--bg-panel: #566260;--panel-border: rgba(200, 220, 215, .12);--panel-bg: rgba(200, 220, 215, .08);--bg-active: rgba(200, 220, 215, .13);--bg-active-strong: rgba(200, 220, 215, .17);--btn-bg: rgba(200, 220, 215, .12);--btn-border: rgba(200, 220, 215, .25);--border-strong: rgba(200, 220, 215, .2);--photo-grid-line: rgba(200, 220, 215, .22);--modal-bg: linear-gradient(135deg, #525e5c 0%, #414a48 100%);--popover-bg: linear-gradient(135deg, #566260 0%, #46504e 100%);--scroll-thumb: rgba(200, 220, 215, .3);--scroll-track: rgba(0, 0, 0, .15);--blue: #63b3ed;--board-shadow: 0 0 0 1px rgba(200, 220, 215, .08), 0 3px 10px rgba(0, 0, 0, .45), 0 14px 36px rgba(0, 0, 0, .6)}html,body{margin:0;padding:0;height:100%}#root{height:100%}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg-page);font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;color:var(--text-primary);overflow:hidden}body{position:relative;align-items:center;justify-content:center}.app{width:100%;height:100%;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden}.navbar{flex-shrink:0;background:var(--bg-nav);border-bottom:1px solid var(--border);padding:0 16px}.navbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:44px}.navbar-links{display:flex;gap:4px}.nav-link{color:var(--text-secondary);text-decoration:none;font-size:14px;padding:6px 14px;border-radius:6px;transition:all .2s}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent);background:var(--accent-soft)}.navbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.navbar-lang-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;height:32px;padding:0 8px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:13px;font-weight:500;transition:all .2s}.navbar-tool-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;height:32px;width:32px;padding:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.navbar-tool-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.navbar-tool-btn svg{width:16px;height:16px}.navbar-lang-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.navbar-lang-btn svg{width:16px;height:16px}.home-qr-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem}.home-qr-dialog{background:var(--bg-nav);border:1px solid var(--card-border);border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 12px 40px #0006}.home-qr-head{display:flex;align-items:center;justify-content:space-between;width:100%}.home-qr-head strong{color:var(--text-primary);font-size:15px}.home-qr-card{background:#fff;border-radius:12px;padding:10px}.home-qr-card svg{display:block;width:200px;height:200px}.home-qr-card svg path{stroke:var(--qr-ink, #1a1a1a)}.home-qr-url{font-size:13px;color:var(--text-secondary);letter-spacing:.02em}.footer-bar{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:12px;color:var(--text-muted);z-index:0}.footer-bar a{color:inherit;text-decoration:none}.footer-bar a:hover{color:var(--text-secondary)}.footer-ico{width:14px;height:14px;vertical-align:middle;margin-right:3px}.footer-sep{width:0;height:0}.footer-icp{display:inline-flex;align-items:center;gap:6px;width:100%;justify-content:center;flex-wrap:nowrap;white-space:nowrap}@media(max-width:600px){.footer-icp{font-size:11px}}.memory-info,.loadtime-info{font-family:Courier New,monospace}.layout{display:flex;width:100%;flex:1;min-height:0;align-items:stretch;justify-content:stretch}.board-area{flex:1;min-height:0;display:flex;justify-content:center;padding-top:16px}.board-wrap{position:relative;max-width:720px;max-height:calc(100vh - 96px);border-radius:8px;cursor:pointer;overflow:hidden;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}#chess{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 96px);object-fit:contain;background:transparent;user-select:none;-webkit-user-select:none;border-radius:8px;touch-action:none!important;-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;outline:none!important}.game-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;animation:resultIn .3s ease;filter:drop-shadow(0 6px 18px rgba(0,0,0,.55));pointer-events:none}.result-badge{display:inline-block;user-select:none;-webkit-user-select:none}.result-badge svg{display:block}@keyframes resultIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.panel-right{width:280px;min-width:280px;flex:0 0 280px;display:flex;flex-direction:column;gap:12px;padding:16px 12px;background:var(--bg-panel);border-left:1px solid var(--panel-border);min-height:0;overflow:hidden}.player-cards{display:flex;gap:8px}.player-card{flex:1;background:var(--panel-bg);border-radius:8px;padding:10px 8px;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:6px;border:2px solid transparent}.player-card.active{background:#60a5fa2e;border-color:#60a5fa73}.player-card.clickable{cursor:pointer}.player-card.clickable:hover{background:var(--bg-active-strong)}.player-name{font-size:14px;font-weight:600;color:var(--text-primary);text-align:center}.piece-icon{background-image:url(/img/%E7%BB%8F%E5%85%B8%E6%9C%A8%E6%A3%8B%E5%AD%90.png);background-repeat:no-repeat;background-size:1092px 78px;width:78px;height:78px}.style-jade .piece-icon{background-image:url(/img/%E7%BB%8F%E5%85%B8%E7%8E%89%E6%A3%8B%E5%AD%90.png)}.style-icon .piece-icon{background-image:url(/img/%E7%BB%8F%E5%85%B8%E5%9B%BE%E6%A0%87%E6%A3%8B%E5%AD%90.png)}.style-pine .piece-icon{background-image:url(/img/%E9%9D%92%E6%B5%B7%E8%BD%AF%E7%8E%89%E6%A3%8B%E5%AD%90.png)}.piece-icon.red-king{background-position:-234px 0}.piece-icon.black-king{background-position:-780px 0}.player-info{text-align:center}.player-status{font-size:11px;color:var(--text-secondary)}.player-card.active .player-status{color:var(--text-secondary)}.level-panel{background:var(--panel-bg);border-radius:8px;padding:12px}.level-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.engine-toggle-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.engine-toggle-btn svg{width:18px;height:18px}.engine-toggle-btn:hover{color:var(--accent);transform:scale(1.1)}.engine-toggle-btn.active{color:var(--blue)}.engine-toggle-btn:not(.active){opacity:.5}.level-panel label{font-size:13px;color:var(--text-secondary)}.level-rank{font-size:12px;color:var(--accent)}.level-control{display:flex;align-items:center;gap:12px}#level{width:100%;height:6px;background:var(--btn-bg);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}#level::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;box-shadow:0 0 6px var(--scroll-thumb)}#level::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:50%;border:none}#levelVal{font-size:14px;font-weight:500;color:var(--accent);min-width:20px;text-align:center}.match-status{background:var(--panel-bg);border-radius:8px;padding:12px}.status-text{font-size:14px;color:var(--text-primary);line-height:1.6;white-space:pre-line}.thinking-dots{display:inline-flex;width:20px;overflow:hidden;vertical-align:bottom;margin-left:2px}.thinking-dots i{font-style:normal;animation:dotPop 1.2s infinite;opacity:.15}.thinking-dots i:nth-child(2){animation-delay:.2s}.thinking-dots i:nth-child(3){animation-delay:.4s}@keyframes dotPop{0%,60%,to{opacity:.15}30%{opacity:1}}.review-nav{background:var(--panel-bg);border-radius:8px;padding:12px}.nav-buttons{display:flex;gap:8px;justify-content:center;margin-bottom:6px}.nav-buttons:last-of-type{margin-bottom:0}.nav-btn{width:44px;height:44px;border-radius:8px;background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:8px}.nav-btn svg{width:24px;height:24px}.nav-btn:hover:not([disabled]){background:var(--accent-soft);border-color:var(--accent-border)}.nav-btn[disabled]{opacity:.4;cursor:not-allowed}.nav-btn.nav-move:hover:not([disabled]){background:#4299e126;border-color:#4299e159}.nav-btn#varToggle:hover:not([disabled]){background:#48bb7826;border-color:#48bb7859}.nav-btn#regret:hover:not([disabled]){background:#ed893626;border-color:#ed893659}.nav-btn#btnResign:hover:not([disabled]){background:#e53e3e26;border-color:#e53e3e59}.nav-btn#btnAnalyze{position:relative}.nav-btn#btnAnalyze:hover:not([disabled]){background:#9f7aea26;border-color:#9f7aea59}.nav-btn#styleToggle:hover:not([disabled]){background:#4fd1c526;border-color:#4fd1c559}.nav-btn#newGame:hover:not([disabled]){background:#64c86426;border-color:#64c86459}.nav-btn.active-var{color:#48bb78}.analysis-result{background:var(--card-bg);border-radius:6px;padding:10px;margin-top:8px;font-size:13px;line-height:1.6;color:var(--text-secondary)}.moves-panel{background:var(--panel-bg);border-radius:8px;padding:12px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.moves-header{font-size:13px;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:4px}.voice-toggle{display:inline-flex;align-items:center;cursor:pointer;color:var(--text-muted);transition:color .2s;line-height:0}.voice-toggle:hover{color:var(--text-secondary)}.voice-toggle.active{color:var(--blue)}.voice-toggle svg{width:16px;height:16px}.moves-list{list-style:none;padding:0;margin:0;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.moves-list::-webkit-scrollbar{width:4px}.moves-list::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.moves-list::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.moves-list li{padding:4px 8px;cursor:pointer;border-radius:4px;transition:background .2s;font-size:13px;display:flex;align-items:center;gap:6px}.moves-list li:hover{background:var(--accent-glow)}.moves-list li.active{background:var(--accent-soft)}.moves-list .move-num{color:var(--text-secondary);min-width:24px}.moves-list .red-move{color:#9a6050;padding:2px 6px;border-radius:4px;cursor:pointer;transition:background .2s}.moves-list .red-move:hover,.moves-list .black-move:hover{background:var(--accent-glow)}.moves-list .red-move.active,.moves-list .black-move.active{background:var(--accent-soft)}.moves-list .black-move{color:var(--text-secondary);padding:2px 6px;border-radius:4px;cursor:pointer;transition:background .2s}.analysis-panel{background:var(--panel-bg);border-radius:8px;padding:12px}.analysis-panel label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.eval-bar{height:8px;background:linear-gradient(90deg,#4a5568,#4a5568);border-radius:4px;position:relative;overflow:hidden}.eval-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#c53030,#e53e3e);border-radius:4px;transition:width .3s ease}.eval-score{font-size:14px;font-weight:500;color:var(--accent);margin-top:6px}.best-move{font-size:13px;color:var(--text-secondary);margin-top:8px}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:none;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal.show{display:flex}.modal-content{background:var(--modal-bg);border-radius:16px;padding:32px;border:1px solid var(--accent-border);box-shadow:0 20px 60px #00000080;animation:modalIn .3s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-content h3{margin:0 0 24px;font-size:20px;color:var(--accent);text-align:center;font-weight:500}.side-choices{display:flex;gap:16px;justify-content:center}.side-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 28px;background:var(--panel-bg);border:2px solid var(--btn-border);border-radius:12px;cursor:pointer;transition:all .3s ease;font-family:inherit}.side-btn:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000004d}.side-btn.red{border-color:#c8505066}.side-btn.red:hover{background:#c8505026;border-color:#c8505099}.side-btn.black{border-color:#64646466}.side-btn.black:hover{background:#64646426;border-color:#96969699}.side-icon{width:78px;height:78px}.side-icon.piece-icon{width:78px;height:78px;background-size:1092px 78px}.side-icon.piece-icon.red-king{background-position:-234px 0}.side-icon.piece-icon.black-king{background-position:-780px 0}.side-text{font-size:14px;color:var(--text-primary)}.player-card{position:relative}.player-stats-popover{width:max-content;min-width:240px;padding:8px 12px;background:var(--popover-bg);border:1px solid var(--accent-border);border-radius:10px;box-shadow:0 8px 24px #00000080;z-index:1000;pointer-events:auto;white-space:nowrap;animation:popoverIn .15s ease;transform:translate(-50%)}@keyframes popoverIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.player-stats-popover .stats-row{display:flex;gap:4px;font-size:12px;color:var(--text-primary);justify-content:space-between}.player-stats-popover .stats-summary{padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--border)}.player-stats-popover .stats-detail{flex-wrap:wrap;row-gap:2px}.player-stats-popover .stat-item{display:inline-flex;align-items:center;gap:3px}.player-stats-popover .stat-item .dot{display:inline-block;width:8px;height:8px;border-radius:50%}.player-stats-popover .stat-item.win .dot{background:#48bb78}.player-stats-popover .stat-item.draw .dot{background:#a0aec0}.player-stats-popover .stat-item.loss .dot{background:#fc8181}.game-end-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;padding:24px 32px}.game-end-img{width:200px;height:auto;border-radius:8px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.5))}.game-end-buttons{display:flex;gap:16px;justify-content:center}.game-end-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--btn-bg);border:2px solid var(--btn-border);border-radius:8px;cursor:pointer;transition:all .3s ease;font-family:inherit;font-size:14px;color:var(--text-primary)}.game-end-btn svg{width:20px;height:20px}.game-end-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px #0000004d}.review-btn:hover{background:#3498db33;border-color:#3498db80}.newgame-btn:hover{background:#2ecc7133;border-color:#2ecc7180}.resign-content{text-align:center;padding:32px 40px}.resign-content h3{margin-bottom:8px}.resign-hint{color:var(--accent-dim);font-size:14px;margin:0 0 28px}.resign-buttons{display:flex;gap:16px;justify-content:center}.resign-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border:2px solid var(--btn-border);border-radius:10px;cursor:pointer;font-size:16px;color:var(--accent);background:var(--panel-bg);transition:all .3s ease;white-space:nowrap;flex-shrink:0}.resign-btn svg{width:22px;height:22px}.resign-yes{border-color:#e74c3c66;background:#e74c3c26}.resign-yes:hover{background:#e74c3c4d;border-color:#e74c3cb3;transform:translateY(-2px);box-shadow:0 8px 16px #e74c3c33}.resign-no{border-color:var(--border-strong)}.resign-no:hover{background:var(--bg-active);border-color:var(--btn-border);transform:translateY(-2px);box-shadow:0 8px 16px #0000004d}@media(max-width:900px){.layout{flex-direction:column}.board-area{flex:0 0 auto;min-height:0;max-height:60vh;padding:0}.board-wrap,#chess{max-height:60vh}.panel-right{width:100%;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;border-left:none;border-top:1px solid var(--panel-border);padding:8px 8px 24px;gap:6px;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.panel-right::-webkit-scrollbar{width:4px}.panel-right::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.panel-right::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.player-card .piece-icon{display:none}.status-text{font-size:13px}.level-panel{padding:8px}.level-panel .level-header{margin-bottom:4px}.level-panel label{font-size:12px}.level-rank{font-size:11px}.level-control{gap:6px}.engine-toggle-btn svg{width:14px;height:14px}#level{height:4px}#level::-webkit-slider-thumb{width:12px;height:12px}#level::-moz-range-thumb{width:12px;height:12px}#levelVal{font-size:12px;min-width:16px}.moves-panel{flex:1;min-height:0;padding:8px}}@media(max-width:550px){.player-card{flex-direction:row;gap:8px;padding:6px 10px;align-items:center}.player-name{font-size:12px}.player-info{flex:1;text-align:left}.player-status{font-size:11px}.btn{padding:8px 12px;font-size:13px}.panel-right{padding:6px 4px;gap:4px}.nav-btn{width:36px;height:36px;padding:6px}.nav-btn svg{width:20px;height:20px}.level-panel,.match-status,.review-nav,.moves-panel,.analysis-panel{padding:6px}.resign-content{padding:24px 16px}.resign-hint{margin:0 0 20px}.resign-buttons{gap:12px}.resign-btn{padding:10px 18px;font-size:14px;gap:6px;flex:1;min-width:0}.resign-btn svg{width:18px;height:18px}.moves-list li{font-size:12px;padding:2px 6px}}.footer-sep{display:inline}@media(max-width:600px){.navbar{padding:0 8px}.navbar-inner{height:36px;gap:4px}.navbar-links{gap:1px;min-width:0;overflow-x:auto;scrollbar-width:none}.navbar-links::-webkit-scrollbar{display:none}.nav-link{font-size:13px;padding:4px 5px;white-space:nowrap;flex-shrink:0}.navbar-lang-btn{height:28px;padding:0 6px;font-size:12px}.navbar-tool-btn{height:28px;width:28px}.navbar-lang-btn svg{width:14px;height:14px}}.btn-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center}.share-icon-btn-corner{position:absolute;top:0;right:0;width:28px;height:28px;padding:4px;background:#3498dbe6;border:1px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;z-index:10}.share-icon-btn-corner:hover{background:#3498db;transform:scale(1.1)}.share-icon-btn-corner svg{width:18px;height:18px;color:#fff}.photo-import-content{position:relative;width:min(640px,94vw);max-height:96vh;max-height:96dvh;overflow-y:auto;padding:20px 28px}.photo-import-content h3{margin:0 0 16px}.photo-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.photo-close:hover{background:var(--bg-hover);color:var(--text-primary)}.photo-close svg{width:20px;height:20px}.photo-upload-area{border:2px dashed var(--btn-border);border-radius:12px;padding:44px 20px;text-align:center;cursor:pointer;color:var(--text-secondary);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.photo-upload-area:hover{border-color:var(--accent-border);background:var(--accent-soft);box-shadow:0 4px 16px #00000026}.photo-upload-area svg{width:44px;height:44px;opacity:.7;margin-bottom:10px}.photo-upload-text{font-size:15px;color:var(--text-primary);margin-bottom:6px}.photo-upload-sub{font-size:13px;color:var(--text-muted)}.photo-error{margin-top:12px;padding:10px 14px;border-radius:8px;background:#e53e3e1f;border:1px solid rgba(229,62,62,.35);color:#fc8181;font-size:13px;text-align:center}.photo-uploading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 0;color:var(--text-secondary)}.photo-spinner{width:36px;height:36px;border:3px solid var(--btn-border);border-top-color:var(--accent);border-radius:50%;animation:photoSpin .8s linear infinite}@keyframes photoSpin{to{transform:rotate(360deg)}}.photo-hint{font-size:13px;color:var(--text-secondary);text-align:center;margin-bottom:10px}.photo-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:0;background:var(--card-bg);border:1px solid var(--panel-border);border-radius:8px;padding:8px;position:relative}.photo-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease;touch-action:manipulation}.photo-cell:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--photo-grid-line);pointer-events:none}.photo-cell:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--photo-grid-line);pointer-events:none}.photo-cell:nth-child(9n+1):before{left:50%}.photo-cell:nth-child(9n):before{right:50%}.photo-cell:nth-child(-n+9):after{top:50%}.photo-cell:nth-child(n+82):after{bottom:50%}.photo-cell:nth-child(n+37):nth-child(-n+45):after{bottom:50%}.photo-cell:nth-child(n+46):nth-child(-n+54):after{top:50%}.photo-cell.river-gap{margin-bottom:18px}.photo-grid:after{content:"楚 河  ·  汉 界";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--photo-grid-line);font-size:13px;font-weight:700;letter-spacing:2px;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-diag:before,.photo-diag:after{content:"";position:absolute;left:50%;top:50%;width:282.843%;height:1px;background:var(--photo-grid-line);pointer-events:none}.photo-diag:before{transform:translate(-50%,-50%) rotate(45deg)}.photo-diag:after{transform:translate(-50%,-50%) rotate(-45deg)}.photo-cell:hover{background:var(--bg-hover)}.photo-cell.low-conf{box-shadow:inset 0 0 0 2px #f6ad55d9}.photo-cell.selected{outline:2px solid var(--blue);z-index:1}.photo-piece{position:absolute;top:7%;right:7%;bottom:7%;left:7%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(15px,3.4vw,21px);font-weight:700;line-height:1;background:linear-gradient(145deg,#fffdf5,#f4eeda 55%,#e2d8bc);border:1px solid rgba(120,90,40,.28);box-shadow:inset 0 1px #ffffffd9,inset 0 -2px 4px #785a2838,0 2px 4px #00000047;-webkit-user-select:none;user-select:none}.photo-piece.red{color:#c0392b}.photo-piece.black{color:#2d2d2d}.photo-piece.sprite{background-color:transparent;background-size:1400% 100%;background-repeat:no-repeat;border:none;box-shadow:none}.photo-unknown{position:relative;color:#f6ad55;font-weight:700;font-size:14px}.photo-palette-block{margin-top:12px}.photo-palette-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.photo-palette{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.palette-btn{width:36px;height:36px;border-radius:50%;border:1px solid rgba(120,90,40,.28);background:linear-gradient(145deg,#fffdf5,#f4eeda 55%,#e2d8bc);box-shadow:inset 0 1px #ffffffd9,inset 0 -2px 3px #785a2838;font-size:18px;font-weight:700;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:box-shadow .15s ease;touch-action:manipulation}.palette-btn:hover{box-shadow:inset 0 1px #ffffffd9,inset 0 -2px 3px #785a2838,0 3px 8px #0000004d}.palette-btn.red{color:#c0392b}.palette-btn.black{color:#2d2d2d}.palette-btn.erase{background:var(--btn-bg);border:1px dashed var(--btn-border);color:var(--text-secondary);font-size:20px;font-weight:400}.palette-btn.sprite{background-color:transparent;background-size:1400% 100%;background-repeat:no-repeat;border:none;box-shadow:none}.palette-btn.sprite:hover{box-shadow:none;filter:brightness(1.08)}.palette-btn.erase:hover{color:#fc8181}.photo-warning{margin-top:10px;text-align:center;font-size:13px;color:#f6ad55}.photo-footer{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.photo-btn{padding:10px 20px;border-radius:10px;font-size:14px;font-family:inherit;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;touch-action:manipulation}.photo-crop{display:flex;flex-direction:column;gap:12px;align-items:center}.photo-crop-stage{max-width:100%;border-radius:8px;overflow:hidden;background:#0000004d}.photo-crop-stage img{display:block;max-width:100%;max-height:46dvh;width:auto}.photo-crop-hint{font-size:13px;color:var(--text-secondary);text-align:center}.photo-crop-actions{display:flex;gap:10px;width:100%}.photo-crop-actions .photo-btn{flex:1}@media(max-width:600px){.photo-crop-stage img{max-height:40dvh}}.photo-btn.secondary{background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--text-primary)}.photo-btn.secondary:hover{border-color:var(--accent-border);background:var(--accent-soft)}.photo-btn.primary{background:#48bb78d9;border:1px solid rgba(72,187,120,.9);color:#fff}.photo-btn.primary:hover:not([disabled]){background:#48bb78;box-shadow:0 4px 14px #48bb7859}.photo-btn.primary[disabled]{opacity:.4;cursor:not-allowed}@media(max-width:600px){.photo-import-content{width:96vw;padding:16px 12px 18px}.photo-import-content h3{margin:0 12px 12px;font-size:17px}.photo-close{top:8px;right:8px;width:40px;height:40px}.photo-upload-area{padding:28px 12px;border-radius:10px}.photo-upload-area svg{width:38px;height:38px}.photo-upload-text{font-size:14px}.photo-upload-sub{font-size:12px}.photo-grid{padding:4px}.photo-grid:after{font-size:11px;letter-spacing:1px}.photo-cell.river-gap{margin-bottom:12px}.photo-cell.selected{transform:scale(1.12);z-index:2}.palette-btn{width:40px;height:40px;font-size:16px}.photo-footer{gap:10px}.photo-btn{flex:1;padding:12px 0;font-size:15px}}.ancient-panel{display:flex;flex-direction:column;gap:8px;padding:12px 10px}.study-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;max-width:60%;z-index:10;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));pointer-events:none;animation:studyResultIn .3s ease}@keyframes studyResultIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.ancient-header{display:flex;align-items:center;gap:10px;padding-bottom:4px;border-bottom:1px solid var(--panel-border)}.back-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;font-size:13px;padding:4px 8px;border-radius:6px;transition:all .2s}.back-btn svg{width:18px;height:18px}.back-btn:hover{background:var(--btn-bg);color:var(--text-primary)}.ancient-title{font-size:15px;font-weight:600;color:var(--accent)}.header-style-btn{margin-left:auto;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;transition:all .2s}.header-style-btn svg{width:18px;height:18px}.header-style-btn:hover{background:var(--btn-bg);color:var(--text-primary)}.book-select{background:var(--btn-bg);border:1px solid var(--btn-border);color:var(--accent);border-radius:4px;padding:2px 4px;font-size:13px;cursor:pointer;outline:none;flex-shrink:0}.book-select option{background:var(--bg-panel);color:var(--accent)}.game-info-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--panel-bg);border-radius:8px;font-size:12px}.game-title{font-weight:600;color:var(--accent);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.game-list{background:var(--panel-bg);border-radius:8px;padding:4px;max-height:140px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}.game-list::-webkit-scrollbar{width:4px}.game-list::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:2px}.game-list::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:2px}.game-item{padding:3px 8px;cursor:pointer;border-radius:4px;font-size:12px;color:var(--text-secondary);transition:background .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-item:hover{background:var(--accent-glow)}.game-item.active{background:var(--accent-soft);color:var(--accent)}.ancient-panel .moves-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0}.ancient-panel .moves-header{padding:10px 12px 0}.ancient-panel .moves-list{flex:1;overflow-y:auto;min-height:0;padding:4px 12px 10px}.ancient-panel .review-nav{padding:8px}.ancient-panel .nav-btn{width:36px;height:36px}.ancient-panel .nav-btn svg{width:20px;height:20px}.ancient-panel .nav-btn.playing{background:#63b3ed40;color:var(--blue);box-shadow:0 0 8px #63b3ed4d}.ancient-panel .nav-btn.study-active{background:#63b3ed59;color:var(--blue);box-shadow:0 0 12px #63b3ed80;border-color:var(--blue)}.ancient-panel #btnAnalyze{position:relative}.ai-badge{position:absolute;top:-3px;right:-3px;font-size:9px;font-weight:700;background:#4a9eff;color:#fff;border-radius:4px;padding:0 4px;line-height:1.5;pointer-events:none;box-shadow:0 1px 3px #0000004d}.analysis-result{font-size:12px;line-height:1.5;color:var(--text-secondary);margin-top:6px;padding:6px 8px;background:var(--card-bg);border-radius:6px;word-break:break-all}.ancient-panel .match-status{padding:6px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.ancient-panel .status-text{font-size:12px;flex-shrink:0}.ancient-panel .status-analysis{font-size:12px;color:var(--text-secondary);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ancient-home-btn{position:fixed;top:12px;left:12px;z-index:100;width:40px;height:40px;border-radius:50%;background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 8px #0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ancient-home-btn:hover{background:var(--bg-panel);border-color:var(--accent-border);transform:scale(1.08);box-shadow:0 4px 16px #0006}.ancient-home-btn svg{width:22px;height:22px}@media(max-width:900px){.ancient-panel{padding:6px;gap:4px}.ancient-header{gap:6px;padding-bottom:2px}.back-btn{font-size:12px;padding:2px 6px}.back-btn svg{width:16px;height:16px}.ancient-title{font-size:13px}.header-style-btn{width:28px;height:28px}.header-style-btn svg{width:16px;height:16px}.game-info-bar{padding:4px 6px;gap:4px;font-size:11px}.book-select,.game-select{font-size:11px;padding:1px 3px}.game-list{max-height:90px;padding:2px}.game-item{font-size:11px;padding:2px 6px}.ancient-panel .match-status{padding:4px 6px;gap:4px}.ancient-panel .status-text,.ancient-panel .status-analysis{font-size:11px}.ancient-panel .review-nav{padding:4px}.ancient-panel .nav-btn{width:36px;height:36px}.ancient-panel .nav-btn svg{width:20px;height:20px}.ancient-panel .moves-panel{padding:0}.ancient-panel .moves-header{font-size:12px;padding:6px 8px 0}.ancient-panel .moves-list{min-height:0;padding:2px 4px 4px}}@media(min-width:1024px){.game-list{max-height:220px}}
