*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}:root{--bg: #0f1216;--panel: rgba(30, 34, 42, .72);--panel-solid: #1c212b;--panel-border: rgba(255, 255, 255, .08);--muted: rgba(240, 240, 240, .64);--text: rgba(240, 240, 240, .96);--shadow: 0 18px 50px rgba(0, 0, 0, .35);--green: #81b64c;--green-2: #92c75d;--danger: #d13a3a}body{background:radial-gradient(1000px 500px at 20% -10%,rgba(129,182,76,.18),transparent 60%),radial-gradient(900px 450px at 110% 0%,rgba(81,143,55,.12),transparent 55%),radial-gradient(700px 450px at 50% 110%,rgba(209,58,58,.12),transparent 55%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;min-height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;outline:none;font-family:inherit;font-size:clamp(.75rem,2vw,.9rem);font-weight:500;transition:all .15s ease}.review-page-container{display:flex;flex-direction:column;min-height:100dvh;padding:clamp(.4rem,2vw,1rem);width:100%;gap:clamp(.4rem,1.5vw,1rem);overflow-x:hidden}.app-shell{position:relative}.review-main{display:grid;grid-template-columns:1fr;gap:clamp(.4rem,1.5vw,1rem);flex:1;min-height:0;min-width:0}.board-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(.3rem,1vw,.6rem);min-width:0;min-height:0;width:100%;flex:1}.board-area{display:grid;grid-template-columns:clamp(28px,6vw,40px) 1fr;gap:clamp(.15rem,.6vw,.5rem);width:100%;max-width:100%;min-width:0;overflow-x:hidden;min-height:0;align-items:stretch;flex:1}.board-position-wrapper{width:100%;position:relative;height:100%;min-height:0}.board-area>.evalbar-left,.board-area>.responsive-chess-host{align-self:stretch;min-height:0}.evalbar-left{height:100%;min-height:0;display:flex;align-items:stretch}.player-banner{display:flex;align-items:center;justify-content:space-between;width:100%;padding:clamp(.2rem,.8vw,.4rem) clamp(.5rem,1.5vw,.8rem);background:linear-gradient(135deg,#28303899,#1e222a66);border-radius:clamp(6px,1vw,10px);border:1px solid rgba(255,255,255,.07);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 2px 12px #00000026,inset 0 1px #ffffff0a}.player-name{font-weight:650;font-size:clamp(.72rem,1.8vw,.85rem);color:#f0f0f0eb;letter-spacing:.01em}.player-elo{font-size:clamp(.62rem,1.5vw,.72rem);color:#b4d28cb3;font-weight:500;letter-spacing:.02em}.chessboard-card{background:#272522;padding:clamp(.2rem,.8vw,.5rem);border-radius:clamp(8px,1vw,10px);border:1px solid #3a3733;box-shadow:0 4px 24px #0000004d}.chessboard-container{width:100%}.evalbar{position:relative;width:100%;height:100%;border-radius:6px;overflow:hidden;background:#272522;display:flex;flex-direction:column}.evalbar-fill{width:100%}.evalbar-fill-white{background:linear-gradient(0deg,#f0f0f0,#d4d4d4);border-radius:0 0 6px 6px}.evalbar-fill-black{background:linear-gradient(180deg,#1a1a1a,#333);border-radius:6px 6px 0 0}.evalbar-label{position:absolute;left:50%;z-index:3;font-size:clamp(11px,2.5vw,13px);font-weight:700;letter-spacing:.2px;font-family:SF Mono,Fira Code,monospace;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.8);pointer-events:none;transform:translate(-50%,-50%)}.evalbar-card{background:#272522;border-radius:10px;border:1px solid #3a3733;overflow:hidden}.evalbar-card-header{padding:.5rem .75rem;font-size:.72rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #3a3733}.evalbar-card-body{padding:.5rem}.board-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.25rem 0}.review-controls-card{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.3rem .5rem;width:100%;max-width:200px;background:#ffffff0a;border-radius:28px;border:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.control-btn{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3c414bcc,#282d37e6);color:#f0f0f0;width:clamp(36px,8vw,42px);height:clamp(36px,8vw,42px);border-radius:50%;font-size:.9rem;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 8px #0003,inset 0 1px #ffffff0f;transition:all .2s ease;position:relative;overflow:hidden;min-width:44px;min-height:44px}.control-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,#81b64c26,#64a0320d);opacity:0;transition:opacity .2s ease}.control-btn:hover:not(:disabled):before{opacity:1}.control-btn:hover:not(:disabled){background:linear-gradient(135deg,#464e5ce6,#323a48f2);border-color:#81b64c4d;box-shadow:0 4px 16px #0000004d,0 0 12px #81b64c1a,inset 0 1px #ffffff1a;transform:translateY(-1px)}.control-btn:active:not(:disabled){transform:translateY(0) scale(.95)}.control-btn:disabled{opacity:.2;cursor:default;filter:grayscale(.8)}.control-btn svg{width:clamp(16px,3.5vw,20px);height:clamp(16px,3.5vw,20px);stroke:#f0f0f0;position:relative;z-index:1}.control-btn svg[fill=currentColor]{fill:#f0f0f0}.review-controls-card .control-btn:nth-child(2){background:linear-gradient(135deg,#81b64c40,#64a03226);border-color:#81b64c33;width:clamp(40px,9vw,46px);height:clamp(40px,9vw,46px);min-width:48px;min-height:48px}.review-controls-card .control-btn:nth-child(2):hover:not(:disabled){background:linear-gradient(135deg,#81b64c66,#64a03240);border-color:#81b64c66;box-shadow:0 4px 20px #0000004d,0 0 16px #81b64c26}.swap-btn{background:linear-gradient(135deg,#3c414bcc,#282d37e6);color:#f0f0f0;width:clamp(36px,8vw,42px);height:clamp(36px,8vw,42px);border-radius:50%;font-size:.9rem;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 8px #0003,inset 0 1px #ffffff0f;transition:all .2s ease;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;min-width:44px;min-height:44px}.swap-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,#81b64c26,#64a0320d);opacity:0;transition:opacity .2s ease}.swap-btn:hover:before{opacity:1}.swap-btn:hover{background:linear-gradient(135deg,#464e5ce6,#323a48f2);border-color:#81b64c4d;box-shadow:0 4px 16px #0000004d,0 0 12px #81b64c1a,inset 0 1px #ffffff1a;transform:translateY(-1px)}.swap-btn:active{transform:translateY(0) scale(.95)}.swap-btn svg{width:clamp(16px,3.5vw,20px);height:clamp(16px,3.5vw,20px);stroke:#f0f0f0;position:relative;z-index:1}.analysis-panel{display:flex;flex-direction:column;gap:0;overflow-y:auto;min-height:0;max-height:50vh;background:linear-gradient(135deg,#81b64c0d,#1a1c20fa 60%);border-radius:12px;border:1px solid rgba(129,182,76,.12);box-shadow:0 4px 24px #81b64c0a,inset 0 1px #81b64c0f}.analysis-panel::-webkit-scrollbar{width:4px}.analysis-panel::-webkit-scrollbar-track{background:transparent}.analysis-panel::-webkit-scrollbar-thumb{background:#81b64c33;border-radius:2px}.pgn-toggle-bar{display:flex;align-items:center;justify-content:space-between;padding:.5rem .85rem;border-bottom:1px solid rgba(129,182,76,.1);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:clamp(.6rem,1.5vw,.65rem);font-weight:700;color:#81b64c99;text-transform:uppercase;letter-spacing:.8px;transition:background .15s ease}.pgn-toggle-bar:hover{background:#81b64c0a}.pgn-toggle-arrow{font-size:.65rem;transition:transform .2s ease;color:#81b64c66}.pgn-toggle-arrow.open{transform:rotate(180deg)}.pgn-collapsible{padding:.85rem;display:flex;flex-direction:column;gap:.6rem}.pgn-textarea{width:100%;min-height:60px;background:#0000004d;border:1px solid rgba(129,182,76,.12);border-radius:8px;color:#f0f0f0e6;padding:.55rem .7rem;font-family:inherit;font-size:clamp(.72rem,1.8vw,.78rem);resize:vertical;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.pgn-textarea:focus{border-color:#81b64c66;box-shadow:0 0 0 2px #81b64c14}.pgn-textarea::placeholder{color:#f0f0f033}.pgn-error-message{font-size:clamp(.68rem,1.6vw,.72rem);color:#d13a3a;font-weight:500;padding:.3rem .5rem;background:#d13a3a14;border-left:3px solid #d13a3a;border-radius:4px}.pgn-btn-group{display:flex;gap:.5rem}.pgn-action-btn{display:flex;align-items:center;justify-content:center;padding:clamp(.4rem,1vw,.5rem) clamp(.7rem,2vw,.85rem);border-radius:8px;font-size:clamp(.7rem,1.8vw,.75rem);font-weight:600;flex:1;background:linear-gradient(135deg,#6ba83d,#81b64c);color:#fff;transition:opacity .15s ease,transform .1s ease;min-height:40px}.pgn-action-btn:hover{opacity:.9}.pgn-action-btn:active{transform:scale(.98)}.pgn-action-btn.reset-free-btn{background:#ffffff0f;color:#f0f0f080;border:1px solid rgba(255,255,255,.06)}.pgn-action-btn.reset-free-btn:hover{background:#ffffff1a;color:#f0f0f0cc}.opening-name-display{padding:.5rem .75rem 0;font-size:clamp(11px,2.5vw,12px);color:#f0f0f0b3;font-style:italic;background:#1a1c20;border-radius:10px 10px 0 0;border:1px solid rgba(255,255,255,.06);border-bottom:none}.coach-display{padding:.25rem .75rem .5rem;font-size:clamp(11px,2.5vw,13px);background:#1a1c20;border:1px solid rgba(255,255,255,.06);border-top:none;border-bottom:none}.coach-label{color:#f0f0f080;font-size:clamp(10px,2vw,11px);text-transform:uppercase;letter-spacing:.5px}.coach-move{color:var(--green);font-weight:600;font-size:clamp(12px,2.8vw,14px)}.movelist-container{display:flex;flex-direction:column;background:linear-gradient(135deg,#81b64c14,#1a1c20f2 60%);border-radius:12px;border:1px solid rgba(129,182,76,.15);box-shadow:0 4px 20px #81b64c0f,inset 0 1px #81b64c14;overflow:hidden}.movelist-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;font-size:clamp(.6rem,1.5vw,.65rem);font-weight:700;color:#81b64c99;letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid rgba(129,182,76,.1)}.movelist-count{font-size:clamp(.55rem,1.3vw,.6rem);color:#81b64c59;font-weight:600}.movelist-scroll{overflow-y:auto;max-height:clamp(150px,30vh,260px);padding:.25rem 0}.movelist-empty{padding:1.5rem;text-align:center;color:#f0f0f059;font-size:clamp(.72rem,1.8vw,.8rem)}.movelist-row{display:grid;grid-template-columns:clamp(26px,5vw,32px) minmax(0,1fr) minmax(0,1fr);gap:0;padding:.2rem 0;transition:background .1s ease;cursor:default;min-width:0}.movelist-row:hover{background:#ffffff08}.movelist-row.active{background:#81b64c14;border-left:3px solid #81b64c}.movelist-num{display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;font-size:clamp(.65rem,1.6vw,.72rem);color:#f0f0f059;font-weight:500;font-variant-numeric:tabular-nums}.movelist-move{display:flex;align-items:center;gap:.35rem;padding:clamp(.2rem,.5vw,.25rem) clamp(.35rem,1vw,.5rem);border-radius:4px;cursor:pointer;transition:background .1s ease;position:relative;min-height:32px;min-width:0;width:100%}.movelist-move:hover{background:#ffffff0f}.movelist-move.active-move{background:#81b64c26;font-weight:600}.movelist-class-icon{font-size:clamp(.7rem,1.6vw,.75rem);width:clamp(14px,3vw,16px);flex-shrink:0;text-align:center;display:inline-flex;align-items:center;justify-content:center}.movelist-class-img{display:block;width:clamp(14px,3vw,16px);height:clamp(14px,3vw,16px)}.movelist-san{font-size:clamp(.78rem,1.8vw,.85rem);color:#f0f0f0;font-weight:500;font-variant-numeric:tabular-nums}.movelist-eval{font-size:clamp(.58rem,1.3vw,.62rem);font-weight:500;opacity:.5;margin-left:auto}.movelist-eval.neg{color:#d13a3a}.movelist-eval.pos{color:#81b64c}.accuracy-card{margin-top:.5rem;background:linear-gradient(135deg,#81b64c14,#1a1c20f2 60%);border-radius:12px;border:1px solid rgba(129,182,76,.15);padding:clamp(.6rem,1.5vw,.85rem);box-shadow:0 4px 20px #81b64c0f,inset 0 1px #81b64c14}.accuracy-header{font-size:clamp(.6rem,1.5vw,.65rem);font-weight:700;color:#81b64c99;text-transform:uppercase;letter-spacing:.8px;margin-bottom:.65rem}.accuracy-rows{display:flex;flex-direction:column;gap:.6rem}.accuracy-row{display:grid;grid-template-columns:clamp(36px,8vw,44px) 1fr clamp(40px,8vw,50px) clamp(48px,10vw,60px);align-items:center;gap:clamp(.3rem,.8vw,.5rem)}.accuracy-label{font-size:clamp(.7rem,1.6vw,.75rem);font-weight:600;color:#f0f0f0b3}.accuracy-bar-track{height:clamp(4px,1vw,6px);background:#ffffff0f;border-radius:3px;overflow:hidden}.accuracy-bar-fill{display:block;height:100%;border-radius:3px;transition:width .6s cubic-bezier(.22,1,.36,1);box-shadow:0 0 8px #81b64c4d}.accuracy-row.excellent .accuracy-bar-fill{background:linear-gradient(90deg,#6ba83d,#81b64c)}.accuracy-row.good .accuracy-bar-fill{background:linear-gradient(90deg,#5a9a30,#6ba83d)}.accuracy-row.average .accuracy-bar-fill{background:linear-gradient(90deg,#b8942a,#d4a84b)}.accuracy-row.poor .accuracy-bar-fill{background:linear-gradient(90deg,#b82a2a,#d13a3a)}.accuracy-value{font-size:clamp(.78rem,1.8vw,.85rem);font-weight:700;color:#f0f0f0f2;font-variant-numeric:tabular-nums}.accuracy-grade{font-size:clamp(.58rem,1.3vw,.62rem);font-weight:600;text-align:right}.accuracy-grade.excellent{color:#81b64c}.accuracy-grade.good{color:#6ba83d}.accuracy-grade.average{color:#d4a84b}.accuracy-grade.poor{color:#d13a3a}.move-badge-img{display:block;width:clamp(24px,5vw,28px);height:clamp(24px,5vw,28px);animation:badgeIn .25s ease-out both;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}@keyframes badgeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.estimated-elo-card{margin-top:.5rem;background:linear-gradient(135deg,#81b64c14,#1a1c20f2 60%);border-radius:12px;border:1px solid rgba(129,182,76,.15);padding:clamp(.6rem,1.5vw,.75rem) clamp(.7rem,1.8vw,.85rem);box-shadow:0 4px 20px #81b64c0f,inset 0 1px #81b64c14}.estimated-elo-header{font-size:clamp(.6rem,1.5vw,.65rem);font-weight:700;color:#81b64c99;text-transform:uppercase;letter-spacing:.8px;margin-bottom:.5rem}.estimated-elo-rows{display:flex;flex-direction:column;gap:.35rem}.estimated-elo-row{display:flex;align-items:center;justify-content:space-between;font-size:clamp(.75rem,1.8vw,.82rem);padding:.15rem 0}.estimated-elo-name{color:#f0f0f0a6;font-weight:500;font-size:clamp(.72rem,1.6vw,.78rem);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimated-elo-value{font-weight:700;font-size:clamp(.9rem,2.2vw,1.05rem);color:#f0f0f0f2;font-variant-numeric:tabular-nums}.classification-summary{margin-top:.5rem;background:linear-gradient(135deg,#81b64c14,#1a1c20f2 60%);border-radius:12px;border:1px solid rgba(129,182,76,.15);padding:clamp(.6rem,1.5vw,.75rem) clamp(.7rem,1.8vw,.85rem);box-shadow:0 4px 20px #81b64c0f,inset 0 1px #81b64c14;overflow-x:auto}.classification-summary-header{display:flex;align-items:center;justify-content:space-between;font-size:clamp(.6rem,1.5vw,.65rem);font-weight:700;color:#81b64c99;text-transform:uppercase;letter-spacing:.8px;margin-bottom:.55rem}.classification-summary-total{font-size:clamp(.55rem,1.3vw,.6rem);color:#81b64c59;font-weight:600}.classification-summary-table{display:flex;flex-direction:column}.classification-summary-row{display:grid;grid-template-columns:clamp(80px,20vw,110px) minmax(0,1fr) minmax(0,1fr);align-items:center;padding:.25rem 0;font-size:clamp(.72rem,1.8vw,.82rem);column-gap:clamp(.35rem,1vw,.55rem);min-width:0}.classification-summary-row-header{font-size:clamp(.55rem,1.3vw,.6rem);color:#81b64c59;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(129,182,76,.1);padding-bottom:.3rem;margin-bottom:.15rem}.classification-summary-type{display:flex;align-items:center;gap:.35rem;color:#f0f0f0b3;white-space:nowrap;min-width:0;overflow:hidden}.classification-summary-icon{font-size:clamp(.72rem,1.8vw,.8rem);width:clamp(16px,3.5vw,18px);text-align:center;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.classification-summary-img{display:block;width:clamp(18px,4vw,20px);height:clamp(18px,4vw,20px)}.classification-summary-label{font-size:clamp(.72rem,1.8vw,.8rem);font-weight:600}.classification-summary-count{text-align:left;font-weight:700;color:#f0f0f0f2;font-size:clamp(.78rem,1.8vw,.85rem);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.analysis-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0a0c10eb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:loadFadeIn .4s ease-out}@keyframes loadFadeIn{0%{opacity:0}to{opacity:1}}.loading-bg-glow{position:absolute;width:min(80vw,700px);height:min(80vw,700px);border-radius:50%;background:radial-gradient(circle at center,rgba(129,182,76,.07),transparent 65%);pointer-events:none;animation:glowPulse 4s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.loading-content{display:flex;flex-direction:column;align-items:center;gap:clamp(1rem,4vw,2rem);position:relative;z-index:1;padding:1rem;width:100%;max-width:400px}.loading-board-ring{position:relative;width:clamp(80px,20vw,120px);height:clamp(80px,20vw,120px);display:flex;align-items:center;justify-content:center}.loading-ring-svg{position:absolute;width:100%;height:100%;transform:rotate(0)}.loading-mini-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:1px;z-index:1;border-radius:4px;overflow:hidden;box-shadow:0 0 20px #81b64c26;width:clamp(72px,18vw,96px);height:clamp(72px,18vw,96px)}.loading-square{border-radius:1px;background:#f0f0f014;transition:background .3s ease}.loading-square.dark{background:#f0f0f026}.loading-square.center{animation:sqGlow 2.4s ease-in-out infinite}@keyframes sqGlow{0%,to{background:#81b64c0d}50%{background:#81b64c4d}}.loading-stage-area{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:340px}.loading-stage-indicator{display:flex;align-items:center;gap:0;flex-wrap:wrap;justify-content:center}.loading-stage-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .65rem;border-radius:8px;transition:all .3s ease;opacity:.35}.loading-stage-item.active{opacity:1;background:#81b64c14}.loading-stage-item.done{opacity:.6}.loading-stage-dot{width:clamp(10px,2.5vw,12px);height:clamp(10px,2.5vw,12px);display:flex;align-items:center;justify-content:center;flex-shrink:0}.loading-dot-pulse{width:clamp(6px,1.5vw,8px);height:clamp(6px,1.5vw,8px);border-radius:50%;background:#81b64c;animation:dotPulse 1.2s ease-in-out infinite;box-shadow:0 0 6px #81b64c80}@keyframes dotPulse{0%,to{transform:scale(.8);opacity:.6}50%{transform:scale(1.2);opacity:1}}.loading-dot-empty{width:clamp(6px,1.5vw,8px);height:clamp(6px,1.5vw,8px);border-radius:50%;background:#ffffff1a}.loading-stage-label{font-size:clamp(.72rem,1.8vw,.78rem);font-weight:600;color:#f0f0f0e6;white-space:nowrap;letter-spacing:.01em}.loading-stage-desc{font-size:clamp(.65rem,1.5vw,.7rem);color:#f0f0f073;font-weight:400;text-align:center;min-height:1.2em}.loading-stage-count{color:#f0f0f04d}.loading-engine-panel{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:.75rem 1rem;width:100%;max-width:340px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:.5rem}.loading-engine-row{display:flex;justify-content:space-between;gap:1rem}.loading-engine-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1}.loading-engine-label{font-size:clamp(.55rem,1.3vw,.6rem);text-transform:uppercase;letter-spacing:.06em;color:#f0f0f059;font-weight:600}.loading-engine-value{font-size:clamp(.78rem,1.8vw,.85rem);font-weight:700;color:#f0f0f0e6;font-family:SF Mono,Fira Code,monospace;font-variant-numeric:tabular-nums}.loading-engine-value.eval-pos{color:#81b64c}.loading-engine-value.eval-neg{color:#d13a3a}.loading-engine-line{display:flex;flex-direction:column;align-items:center;gap:.15rem;border-top:1px solid rgba(255,255,255,.04);padding-top:.5rem}.loading-engine-pv{font-size:clamp(.62rem,1.5vw,.68rem);color:#f0f0f080;font-family:SF Mono,Fira Code,monospace;letter-spacing:.02em;animation:pvFade 3.5s ease-in-out infinite;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pvFade{0%,to{opacity:.4}50%{opacity:.8}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:clamp(.5rem,1.5vw,.7rem) clamp(.75rem,2vw,1.25rem);background:linear-gradient(180deg,#ffffff0f,#ffffff05);border-radius:14px;border:1px solid var(--panel-border);box-shadow:0 10px 30px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-logo{display:flex;align-items:center;gap:.5rem}.logo-icon{font-size:clamp(1.1rem,3vw,1.3rem)}.app-header h1{font-size:clamp(.9rem,2.5vw,1.1rem);font-weight:750;color:var(--text);letter-spacing:-.02em}.overview-container{display:flex;flex-direction:column;min-height:0}.overview-section{padding:clamp(.75rem,2vw,1rem) clamp(.85rem,2.5vw,1.25rem);border-bottom:1px solid #3a3733}.overview-section:last-child{border-bottom:none}.overview-action{padding:clamp(.75rem,2vw,1rem) clamp(.85rem,2.5vw,1.25rem) clamp(.85rem,2.5vw,1.25rem)}.accuracy-rings{display:flex;justify-content:center;align-items:center;gap:clamp(1rem,4vw,2.5rem);padding:.5rem 0;flex-wrap:wrap}.accuracy-ring-wrapper{display:flex;flex-direction:column;align-items:center}.class-table{width:100%;border-collapse:collapse}.class-table thead th{font-size:clamp(.6rem,1.5vw,.65rem);font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;text-align:right;padding-bottom:.6rem}.class-th-player{width:clamp(34px,8vw,40px);text-align:center!important}.class-table tbody tr{border-bottom:1px solid transparent}.class-table tbody tr:last-child{border-bottom:none}.class-table tbody td{padding:.25rem 0;font-size:clamp(.72rem,1.8vw,.8rem)}.class-label-cell{display:flex;align-items:center;gap:.35rem;color:#f0f0f0}.class-dot{width:clamp(6px,1.5vw,8px);height:clamp(6px,1.5vw,8px);border-radius:50%;flex-shrink:0}.class-sym{font-size:clamp(.7rem,1.6vw,.75rem);font-weight:700;min-width:1.2em}.class-name{font-size:clamp(.72rem,1.6vw,.78rem);font-weight:500}.class-count{text-align:center;font-weight:600;color:#f0f0f0;font-size:clamp(.75rem,1.8vw,.82rem)}.start-review-btn{width:100%;padding:clamp(.6rem,1.5vw,.75rem);border-radius:6px;background:#81b64c;color:#fff;font-size:clamp(.82rem,2vw,.9rem);font-weight:700;letter-spacing:.02em;transition:background .15s ease}.start-review-btn:hover{background:#92c75d}.coach-review{display:flex;flex-direction:column;min-height:0}.coach-callout{display:flex;gap:.65rem;padding:.75rem 1rem;background:#00000026;border-bottom:1px solid #3a3733;align-items:flex-start}.coach-avatar{flex-shrink:0;width:clamp(32px,7vw,36px);height:clamp(32px,7vw,36px);border-radius:50%;background:#3a3733;display:flex;align-items:center;justify-content:center;font-size:clamp(.85rem,2vw,1rem)}.coach-text{flex:1;min-width:0}.coach-name{font-size:clamp(.65rem,1.5vw,.7rem);font-weight:600;color:#81b64c;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem}.coach-text p{font-size:clamp(.72rem,1.6vw,.78rem);line-height:1.35;color:#f0f0f0;margin:0}.coach-class-badge{display:inline-block;margin-top:.3rem;padding:.1rem .5rem;border-radius:9999px;font-size:clamp(.55rem,1.3vw,.6rem);font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.03em}.overview-loading{display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,4vw,2.5rem) clamp(1rem,3vw,1.5rem);color:#888;font-size:clamp(.78rem,1.8vw,.85rem);font-weight:500}.coach-engine-card{border-bottom:1px solid #3a3733}.coach-card-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid #3a3733}.coach-card-header h3{font-size:clamp(.65rem,1.5vw,.72rem);font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em}.coach-loading{font-size:clamp(.6rem,1.3vw,.65rem);color:#888;font-weight:500;animation:pulse 1.2s infinite ease-in-out}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.coach-card-body{display:flex;flex-direction:column;gap:.2rem;padding:clamp(.5rem,1.2vw,.6rem) clamp(.75rem,2vw,1rem)}.coach-row{display:flex;align-items:center;justify-content:space-between;padding:.15rem 0}.coach-label{font-size:clamp(.65rem,1.5vw,.72rem);color:#888;font-weight:500}.coach-value{font-size:clamp(.72rem,1.6vw,.78rem);color:#f0f0f0;font-weight:600;font-family:SF Mono,Fira Code,monospace}.eval-positive{color:#81b64c}.eval-negative{color:#d13a3a}.coach-pv-row{flex-direction:column;align-items:flex-start;gap:.15rem;border-top:1px solid #3a3733;padding-top:.35rem;margin-top:.15rem}.coach-pv{font-size:clamp(.65rem,1.5vw,.72rem);color:#888;font-weight:400;line-height:1.3;word-break:break-all}.coach-empty{display:flex;align-items:center;justify-content:center;padding:.75rem;color:#888;font-size:clamp(.72rem,1.6vw,.78rem)}.coach-moves-card{flex:1;display:flex;flex-direction:column;min-height:0}.coach-moves-scroll{display:flex;flex-wrap:wrap;gap:.15rem;padding:.5rem .75rem;overflow-y:auto}.coach-move-entry{display:inline-flex;align-items:center;gap:.08rem;padding:.2rem .35rem;cursor:pointer;border-radius:4px;font-size:clamp(.75rem,1.8vw,.82rem);font-weight:500;color:#f0f0f0;transition:background .12s ease;-webkit-user-select:none;user-select:none;border-left:3px solid transparent}.coach-move-entry:hover{background:#ffffff0a}.coach-move-entry.active{background:#ffffff0f;font-weight:600}.coach-move-round{color:#888;font-size:clamp(.62rem,1.4vw,.68rem);font-weight:400;margin-right:.05rem}.coach-move-san{font-size:clamp(.75rem,1.8vw,.82rem)}.coach-hint{color:#888;font-size:clamp(.72rem,1.6vw,.78rem);padding:.25rem .5rem}.coach-moves-meta{display:flex;justify-content:flex-end;padding:.25rem .75rem .5rem;border-top:1px solid #3a3733}.coach-move-count{font-size:clamp(.58rem,1.3vw,.62rem);color:#888;font-weight:600}.coach-position{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.4rem .75rem;border-top:1px solid #3a3733;font-size:clamp(.65rem,1.5vw,.72rem);color:#888}@keyframes phaseIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.phase-animate{animation:phaseIn .25s ease-out}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#3a3733;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4a4743}@media (min-width: 768px){.review-page-container{height:100vh;overflow:hidden}.review-main{grid-template-columns:minmax(340px,1fr) minmax(280px,340px);gap:1rem}.board-area{grid-template-columns:32px 1fr;max-width:min(100%,calc(100vh - 140px));gap:.5rem}.analysis-panel{max-height:none}.evalbar{min-height:200px}.movelist-scroll{max-height:260px}}@media (min-width: 1024px){.review-main{grid-template-columns:minmax(380px,1fr) 320px;gap:1.25rem}.board-area{max-width:min(100%,calc(100vh - 150px))}.seo-hero-title{font-size:clamp(1.5rem,2.5vw,2rem)}.seo-hero-subtitle{font-size:clamp(.9rem,1.4vw,1.05rem)}.seo-content-title,.seo-faq-title{font-size:clamp(1.15rem,1.8vw,1.35rem)}}@media (min-width: 1440px){.review-main{grid-template-columns:minmax(460px,560px) 380px;gap:1.5rem;justify-content:center}.board-area{max-width:min(100%,calc(100vh - 160px))}.analysis-panel{max-width:380px}}.seo-page{max-width:1200px;margin:0 auto;padding:0 clamp(.5rem,2vw,1rem)}.seo-hero{text-align:center;padding:clamp(1.5rem,4vw,2.5rem) clamp(.75rem,2vw,1rem) clamp(1rem,2vw,1.5rem)}.seo-hero-title{font-size:clamp(1.2rem,4vw,2rem);font-weight:800;margin:0 0 .75rem;line-height:1.15;letter-spacing:-.02em;background:linear-gradient(135deg,#f0f0f0,#a8d874,#7cba3a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 40px rgba(124,186,58,.15)}.seo-hero-subtitle{font-size:clamp(.85rem,2.5vw,1.05rem);color:#f0f0f0a6;max-width:700px;margin:0 auto;line-height:1.55;font-weight:400;letter-spacing:.01em}.seo-hero-cta{display:inline-block;margin-top:1.25rem;padding:clamp(.6rem,1.5vw,.75rem) clamp(1.5rem,4vw,2rem);background:linear-gradient(135deg,#6aab38,#4c8a28);color:#fff;border-radius:12px;font-weight:650;font-size:clamp(.85rem,2vw,.95rem);text-decoration:none;letter-spacing:.01em;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #4a8a2840,inset 0 1px #ffffff1f;transition:all .2s ease}.seo-hero-cta:hover{transform:translateY(-2px);box-shadow:0 8px 30px #4a8a2859,inset 0 1px #ffffff26;background:linear-gradient(135deg,#78c040,#4c8a28)}.seo-hero-cta:active{transform:translateY(0)}.seo-tool-section{margin:0 -1rem}.seo-content{padding:clamp(1.5rem,3vw,2rem) clamp(.75rem,2vw,1rem);border-top:1px solid rgba(255,255,255,.06)}.seo-content-title{font-size:clamp(1.05rem,2.5vw,1.35rem);font-weight:700;margin:0 0 1rem;line-height:1.3;letter-spacing:-.01em;background:linear-gradient(135deg,#e8e8e8,#b8d898);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.seo-content-body p{font-size:clamp(.85rem,2vw,.92rem);line-height:1.7;color:#dcdcdcc7;margin:0 0 1rem;letter-spacing:.01em}.seo-content-body p:last-child{margin-bottom:0}.seo-faq{padding:clamp(1.5rem,3vw,2rem) clamp(.75rem,2vw,1rem);border-top:1px solid rgba(255,255,255,.06)}.seo-faq-title{font-size:clamp(1.05rem,2.5vw,1.35rem);font-weight:700;margin:0 0 1.25rem;line-height:1.3;letter-spacing:-.01em;background:linear-gradient(135deg,#e8e8e8,#b8d898);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.seo-faq-list{max-width:min(100%,800px);margin:0 auto}.seo-faq-item{border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:.6rem;overflow:hidden;background:#ffffff08}.seo-faq-question{padding:clamp(.7rem,1.5vw,.85rem) clamp(.75rem,2vw,1rem);font-size:clamp(.85rem,2vw,.92rem);font-weight:500;color:#d0d0d0;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;justify-content:space-between}.seo-faq-question::-webkit-details-marker{display:none}.seo-faq-question:after{content:"+";font-size:1.1rem;color:#fff6;transition:transform .2s}.seo-faq-item[open] .seo-faq-question:after{transform:rotate(45deg)}.seo-faq-answer{padding:0 clamp(.75rem,2vw,1rem) clamp(.7rem,1.5vw,.85rem);font-size:clamp(.82rem,1.8vw,.88rem);line-height:1.6;color:#dcdcdcb3}.seo-faq-answer p{margin:0}.seo-footer{border-top:1px solid rgba(255,255,255,.06);padding:clamp(1.5rem,4vw,2.5rem) clamp(.75rem,2vw,1rem) clamp(1rem,2vw,1.5rem);margin-top:1rem}.seo-footer-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(1rem,3vw,2rem);max-width:min(100%,900px);margin:0 auto}.seo-footer-col h3{font-size:clamp(.78rem,1.8vw,.85rem);font-weight:600;color:silver;margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.05em}.seo-footer-col ul{list-style:none;padding:0;margin:0}.seo-footer-col li{margin-bottom:.35rem}.seo-footer-col a{color:#b4b4f0b3;text-decoration:none;font-size:clamp(.78rem,1.8vw,.85rem);transition:color .15s}.seo-footer-col a:hover{color:#b4b4f0}.seo-footer-col p{font-size:clamp(.75rem,1.7vw,.82rem);color:#c8c8c880;line-height:1.5;margin:0}.seo-footer-bottom{text-align:center;margin-top:clamp(1.5rem,3vw,2rem);padding-top:1rem;border-top:1px solid rgba(255,255,255,.04)}.seo-footer-bottom p{font-size:clamp(.72rem,1.6vw,.78rem);color:#c8c8c859;margin:0}.blog-page .blog-back{display:inline-block;font-size:clamp(.78rem,1.8vw,.85rem);color:#b4b4f0b3;text-decoration:none;margin-bottom:1rem}.blog-page .blog-back:hover{color:#b4b4f0}.blog-article{max-width:min(100%,720px);margin:2rem auto;padding:0 1rem}.blog-title{font-size:clamp(1.25rem,4vw,1.65rem);font-weight:800;line-height:1.2;margin:0 0 .5rem;letter-spacing:-.02em;background:linear-gradient(135deg,#f0f0f0,#a8d874);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.blog-meta{font-size:clamp(.75rem,1.7vw,.82rem);color:#c8c8c873;margin-bottom:1.5rem}.blog-meta time{margin-right:.75rem}.blog-content h2{font-size:clamp(1.05rem,2.5vw,1.2rem);font-weight:700;margin:1.75rem 0 .75rem;letter-spacing:-.01em;background:linear-gradient(135deg,#e8e8e8,#b8d898);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.blog-content p{font-size:clamp(.88rem,2vw,.95rem);line-height:1.7;color:#dcdcdccc;margin:0 0 1rem}.blog-content ul{margin:0 0 1rem;padding-left:1.25rem}.blog-content li{font-size:clamp(.85rem,1.8vw,.92rem);line-height:1.6;color:#dcdcdcbf;margin-bottom:.35rem}.blog-cta{text-align:center;margin-top:2.5rem;padding:1.5rem;border-top:1px solid rgba(255,255,255,.06)}.blog-cta p{font-size:clamp(.9rem,2vw,1rem);color:#f0f0f0b3;margin:0 0 .75rem}.blog-cta .seo-hero-cta{margin-top:0}.blog-index{max-width:min(100%,720px);margin:2rem auto;padding:0 1rem}.blog-index-header h1{font-size:clamp(1.25rem,4vw,1.65rem);font-weight:700;color:#f0f0f0;margin:.5rem 0}.blog-index-header p{font-size:clamp(.88rem,2vw,.95rem);color:#dcdcdc99;margin:0 0 1.5rem}.blog-card{border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:1.25rem;margin-bottom:1rem;background:#ffffff05;transition:border-color .15s}.blog-card:hover{border-color:#ffffff1f}.blog-card h2{font-size:clamp(.95rem,2.2vw,1.1rem);font-weight:600;margin:0 0 .35rem}.blog-card h2 a{color:#d0d0d0;text-decoration:none}.blog-card h2 a:hover{color:#f0f0f0}.blog-card-meta{font-size:clamp(.72rem,1.6vw,.78rem);color:#c8c8c866;margin:0 0 .6rem}.blog-card p{font-size:clamp(.82rem,1.8vw,.9rem);line-height:1.5;color:#dcdcdca6;margin:0 0 .6rem}.blog-read-more{font-size:clamp(.78rem,1.8vw,.85rem);color:#b4b4f0b3;text-decoration:none}.blog-read-more:hover{color:#b4b4f0}
