:root{--surface-page: #f1f4f8;--surface-elevated: #ffffff;--surface-muted: #e8edf3;--border-subtle: #e2e8f0;--border-strong: #cbd5e1;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 14px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 40px rgba(15, 23, 42, .1);--content-max: 1200px;--brand-primary: #1a4a6e;--brand-primary-hover: #143d5c;--brand-accent: #0d9488;--brand-accent-soft: rgba(13, 148, 136, .12);--link-color: #0b5cab;--link-hover-color: #084a8f;--font-family-base: "Newsreader", "Source Serif 4", Georgia, "Times New Roman", serif;--font-family-heading: var(--font-family-base);--font-family-serif: "Newsreader", "Source Serif 4", Georgia, "Times New Roman", serif;--font-family-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--accent-editorial: #7a1f1f;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.3;--line-height-normal: 1.55;--line-height-relaxed: 1.7;--letter-spacing-tight: -.02em;--letter-spacing-normal: .01em;--letter-spacing-wide: .04em;--heading-line-height: 1.25;--heading-letter-spacing: -.025em;--text-primary: #1a1a1a;--text-secondary: #4a5568;--text-muted: #718096;--text-light: #a0aec0;--status-win: #16a34a;--status-win-soft: rgba(22, 163, 74, .12);--status-loss: #dc2626;--status-loss-soft: rgba(220, 38, 38, .12);--status-draw: #64748b;--status-draw-soft: rgba(100, 116, 139, .14);--status-live: #dc3545;--status-live-soft: rgba(220, 53, 69, .12);--rating-chip-bullet: #b45309;--rating-chip-bullet-soft: rgba(180, 83, 9, .12);--rating-chip-blitz: #1d4ed8;--rating-chip-blitz-soft: rgba(29, 78, 216, .12);--rating-chip-rapid: #15803d;--rating-chip-rapid-soft: rgba(21, 128, 61, .12);--rating-chip-daily: #7c3aed;--rating-chip-daily-soft: rgba(124, 58, 237, .12);--board-light-color: #f0d9b5;--board-dark-color: #b58863;--board-highlight-color: rgba(155, 199, 0, .42);--board-highlight-border: rgba(155, 199, 0, .8);--arrow-color-start: rgba(255, 170, 0, .85);--arrow-color-end: rgba(255, 100, 0, .9);--arrow-color: rgba(255, 140, 0, .87);--arrow-stroke-width: 5;--arrow-marker-size: 10;--focus-ring-color: var(--brand-primary);--focus-ring-width: 2px;--focus-ring-offset: 2px;--piece-white-king: "\2654";--piece-white-queen: "\2655";--piece-white-rook: "\2656";--piece-white-bishop: "\2657";--piece-white-knight: "\2658";--piece-white-pawn: "\2659";--piece-black-king: "\265a";--piece-black-queen: "\265b";--piece-black-rook: "\265c";--piece-black-bishop: "\265d";--piece-black-knight: "\265e";--piece-black-pawn: "\265f"}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;min-height:100%}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:9999;padding:.5rem 1rem;background:var(--brand-primary);color:#fff;font-weight:var(--font-weight-semibold);text-decoration:none;border-radius:var(--radius-sm)}.skip-link:focus{left:.75rem;top:.75rem;width:auto;height:auto;overflow:visible;outline:2px solid #fff;outline-offset:2px}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:500;line-height:var(--line-height-normal);color:var(--text-primary);overflow-x:auto;background-color:var(--surface-page);margin-bottom:80px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main a:not(.btn):not(.nav-link):not(.profile-nav-item):not(.profile-box):not(.live-stream-badge):not(.live-badge-link){color:var(--link-color)}main a:not(.btn):not(.nav-link):not(.profile-nav-item):not(.profile-box):not(.live-stream-badge):hover{color:var(--link-hover-color)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:600;line-height:var(--heading-line-height);letter-spacing:var(--heading-letter-spacing);color:var(--text-primary);margin-top:0}h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}@media (min-width: 768px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}}.breadcrumb{font-size:.8rem;--bs-breadcrumb-divider-color: var(--border-strong);--bs-breadcrumb-item-active-color: var(--text-muted);padding:.25rem .75rem;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.breadcrumb-item a{color:var(--text-muted);text-decoration:none}.breadcrumb-item a:hover{color:var(--text-secondary)}.app-main{margin-top:.25rem}.btn:focus,.btn:active:focus,.btn-link.nav-link:focus,.form-control:focus,.form-check-input:focus{box-shadow:0 0 0 var(--focus-ring-offset) #fff,0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color)}.btn,.nav-link,.form-label,.profile-nav-item,.year-filter-btn,.rating-chip-label{letter-spacing:.015em}h1,h2,h3{letter-spacing:-.03em}:focus-visible{outline:none;box-shadow:0 0 0 var(--focus-ring-offset) #fff,0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color);border-radius:var(--radius-sm)}.profile-nav-item:focus-visible,.rating-chip:focus-visible,.report-issue-link:focus-visible,.live-stream-badge:focus-visible{box-shadow:0 0 0 var(--focus-ring-offset) #fff,0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-color);transform:none}@media (max-width: 575.98px){body{margin-bottom:100px}}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:var(--bs-secondary-color);text-align:end;letter-spacing:.02em}.form-floating>.form-control-plaintext:focus::placeholder,.form-floating>.form-control:focus::placeholder{text-align:start}.live-badge{position:absolute;top:10px;right:10px;background-color:#e00;color:#fff;padding:3px 8px;border-radius:4px;font-size:12px;font-weight:700}.player-profile{max-width:900px;margin:auto;padding:20px}.profile-content{margin:0 auto;max-width:900px}@media (max-width: 600px){.profile-content{max-width:100%}}.header{display:flex;align-items:center;background:#f3f3f3;padding:15px;border-radius:8px;gap:20px}.avatar{width:120px;height:120px;border-radius:50%;border:3px solid #ddd}.player-info{flex-grow:1}.player-info h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 .5rem;letter-spacing:var(--heading-letter-spacing)}.player-info p{margin:5px 0;font-size:16px}.bio,.stats{margin-top:10px;background:#fff;padding:5px;border-radius:8px;border:1px solid #ddd}.stats ul{list-style:none;padding:0}.stats li{padding:5px 0}@media (max-width: 600px){.header{flex-direction:column;text-align:center}.avatar{width:100px;height:100px}}.profile-nav{display:flex;gap:.25rem;margin:.75rem 0 1rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid var(--border-subtle);padding-bottom:.25rem}.profile-nav::-webkit-scrollbar{display:none}.profile-nav-item{position:relative;display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-sm);white-space:nowrap;scroll-snap-align:start;transition:color .15s ease,background-color .15s ease;letter-spacing:.02em}.profile-nav-item:hover{color:var(--brand-primary);background-color:var(--surface-muted);text-decoration:none}.profile-nav-item:focus-visible{color:var(--brand-primary);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--focus-ring-color)}.profile-nav-item.active{color:var(--brand-primary);font-weight:var(--font-weight-semibold);border-bottom:3px solid var(--brand-primary);margin-bottom:-3px;border-radius:0}.profile-nav-item i{font-size:1rem;color:var(--brand-accent)}.profile-nav-item.active i{color:var(--brand-primary)}@media (max-width: 575.98px){.profile-nav{flex-wrap:wrap;overflow-x:visible;scroll-snap-type:none;-webkit-overflow-scrolling:auto;border-bottom:none;padding-bottom:0;gap:.125rem;margin:.5rem 0 .75rem}.profile-nav-item{padding:.35rem .6rem;font-size:.8rem;flex:1 1 auto;justify-content:center}.profile-nav-item.active{margin-bottom:0;border-bottom:none;border-radius:var(--radius-sm);background-color:var(--brand-primary);color:#fff}.profile-nav-item.active i{color:#fff}}.coach-badge-dot{position:absolute;top:-3px;right:-3px;width:10px;height:10px;background:var(--status-loss);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #fff}.profile-nav-item.active .coach-badge-dot{background:#fff}#bio{padding:.5rem .25rem;font-family:var(--font-family-serif);font-size:1.1rem;line-height:1.65;color:var(--text-primary);max-width:68ch;margin:0 auto}#bio p{margin:0 0 1rem}#bio>p:first-of-type:first-letter,#bio>div:first-of-type>p:first-of-type:first-letter{float:left;font-family:var(--font-family-serif);font-size:3.6rem;line-height:.9;font-weight:var(--font-weight-semibold);color:var(--accent-editorial);padding:.35rem .6rem 0 0}#bio h2,#bio h3{font-family:var(--font-family-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.14em;color:var(--accent-editorial);margin:1.75rem 0 .5rem;padding-top:.85rem;border-top:1px solid var(--border-subtle)}#bio h2:first-child,#bio h3:first-child{margin-top:0;padding-top:0;border-top:none}#bio ul,#bio ol{padding-left:1.25rem;margin:0 0 1rem}#coach{margin:0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background-color:var(--surface-muted);padding:.85rem}.content-toc{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.content-toc-toggle{display:contents;background:none;border:none;padding:0;cursor:default;width:100%;text-align:left}.content-toc-chevron{display:none}.content-toc-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.content-toc-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem}.content-toc-list li{margin:0}.content-toc-list a{display:inline-block;padding:.2rem 0;font-size:var(--font-size-sm);color:var(--text-secondary);text-decoration:none;border-bottom:1px dotted var(--text-light);transition:color .15s ease,border-color .15s ease}.content-toc-list a:hover{color:var(--text-primary);border-bottom-color:var(--text-primary)}.content-toc-list .content-toc-h3{padding-left:1rem;font-size:var(--font-size-xs)}#bio .section,#bio>div>.section,#coach .section,#term-definition .section{margin-bottom:.25rem}#coach h2,#term-definition h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-top:1.75rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0;scroll-margin-top:1rem}#coach h2:first-child,#term-definition h2:first-child{margin-top:0}#coach h3,#term-definition h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-top:1.25rem;margin-bottom:.5rem;padding-left:.75rem;border-left:3px solid #e2e8f0;scroll-margin-top:1rem}#bio h4{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-top:1rem;margin-bottom:.35rem}#bio p,#coach p,#term-definition p{margin-bottom:.75rem;line-height:var(--line-height-relaxed)}#bio ul,#bio ol,#coach ul,#coach ol,#term-definition ul,#term-definition ol{margin-bottom:.75rem;padding-left:1.25rem}#bio li,#coach li,#term-definition li{margin-bottom:.35rem;line-height:var(--line-height-normal)}@media (max-width: 575.98px){#bio,#coach{padding:.5rem}.content-toc{padding:.75rem 1rem}.content-toc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;-webkit-tap-highlight-color:transparent}.content-toc-title{margin-bottom:0}.content-toc-chevron{display:block;font-size:var(--font-size-sm);color:var(--text-muted);transition:transform .25s ease}.content-toc-expanded .content-toc-chevron{transform:rotate(180deg)}.content-toc-list{flex-direction:column;gap:.15rem;max-height:0;overflow:hidden;transition:max-height .3s ease,margin-top .3s ease;margin-top:0}.content-toc-expanded .content-toc-list{max-height:500px;margin-top:.5rem}#coach h2,#term-definition h2{font-size:var(--font-size-lg);margin-top:1.25rem}#coach h3,#term-definition h3{font-size:var(--font-size-base);margin-top:1rem}}@media (min-width: 768px){#bio,#coach{padding:1.25rem}#coach h2,#term-definition h2{font-size:var(--font-size-2xl)}#coach h3,#term-definition h3{font-size:var(--font-size-xl)}}.chart-container{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:.75rem .5rem;margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease}.chart-container:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.chart-container svg{width:100%;height:auto;min-width:220px;font-family:var(--font-family-base)}.chart-container svg text{user-select:none}.donut-chart-item{width:140px;flex-shrink:0}.donut-svg{width:100%;height:auto;font-family:var(--font-family-base)}.donut-legend-text{font-size:.8rem;color:var(--text-muted);margin-top:2px}@media (max-width: 575.98px){.donut-chart-item{width:110px}.chart-container{padding:8px 4px}.chart-container svg{min-width:280px}}.simple-chessboard{position:relative;display:grid;grid-template-columns:20px repeat(8,40px);grid-template-rows:repeat(8,40px) 20px;border:1px solid #333;width:340px}.simple-chessboard .square{width:40px;height:40px;display:flex;align-items:center;justify-content:center;position:relative}.simple-chessboard .square .piece{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.simple-chessboard .square .piece svg{width:100%;height:100%;align-items:center;justify-content:center;filter:drop-shadow(2px 2px 2px rgba(0,0,0,.5))}.simple-chessboard .coord{display:flex;align-items:center;justify-content:center;font-size:12px;user-select:none}.simple-chessboard .light{background-color:var(--board-light-color)}.simple-chessboard .dark{background-color:var(--board-dark-color)}.simple-chessboard .highlight{background-color:var(--board-highlight-color);box-shadow:inset 0 0 8px 2px var(--board-highlight-border);position:relative}.simple-chessboard .highlight:after{content:"";position:absolute;inset:0;border:2px solid var(--board-highlight-border);pointer-events:none;border-radius:2px}.arrow-overlay{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}.chess-viewer{display:flex;gap:1rem;align-items:flex-start}.chess-viewer .move-panel{max-height:340px;overflow-y:auto}.chess-viewer .move-list{list-style:decimal;padding-left:1.2rem}.chess-viewer .move-list button{background:none;border:none;padding:0;cursor:pointer}.chess-viewer .move-list button.current{font-weight:700}.chess-viewer .viewer-controls{margin-top:.5rem;display:flex;gap:.5rem}.arrow-overlay .arrow-line{stroke:var(--arrow-color);stroke-width:var(--arrow-stroke-width, 5);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.arrow-overlay .arrow-head{fill:var(--arrow-color);filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.loading{margin-top:.5rem}.online-indicator{display:inline-block;width:14px;height:14px;margin-right:6px;background-color:var(--status-win);border-radius:50%}.coach-portrait{max-width:96px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.live-streamer-badge{font-size:.75rem;padding:.25rem .4rem;margin-left:.25rem;vertical-align:middle}.profile-header-compact{display:flex;flex-direction:column;gap:.75rem}.profile-header-top{display:flex;align-items:flex-start;gap:1rem}.profile-header-avatar{width:64px;height:64px;border-radius:50%;border:2px solid var(--border-subtle);object-fit:cover;flex-shrink:0}.profile-header-info{flex:1;min-width:0}.profile-eyebrow{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.16em;color:var(--accent-editorial);margin-bottom:.25rem;display:flex;align-items:center}.profile-eyebrow i{font-size:.85em;margin-right:.35rem;flex-shrink:0}.profile-header-name{font-family:var(--font-family-serif);font-size:var(--font-size-3xl);font-weight:600;letter-spacing:-.025em;margin:0 0 .35rem;line-height:1.05;display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;overflow-wrap:anywhere}.profile-header-title-badge{display:inline-block;background:var(--surface-muted);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1;padding:.15rem .45rem;border-radius:var(--radius-sm);text-decoration:none;border:1px solid var(--border-subtle)}.profile-header-title-badge:hover{background:var(--brand-accent-soft);color:var(--brand-primary-hover);border-color:var(--brand-accent)}.profile-header-meta{display:flex;flex-wrap:wrap;align-items:center;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:.2rem}.profile-header-meta>*:not(:last-child):after{content:"\b7";margin:0 .35rem;color:var(--text-light)}.profile-header-meta a{color:var(--text-secondary);text-decoration:none;border-bottom:1px dotted var(--text-light)}.profile-header-meta a:hover{color:var(--text-primary)}.profile-header-wow{font-size:.65rem;color:var(--status-win)}.profile-header-record-detail{display:flex;flex-wrap:wrap;gap:.4rem;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.profile-record-wins{color:var(--status-win)}.profile-record-losses{color:var(--status-loss)}.profile-record-draws{color:var(--status-draw)}.profile-header-ratings{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem;padding-top:.85rem;border-top:1px solid var(--border-subtle)}.rating-chip{display:flex;flex-direction:column;gap:.3rem;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-top:3px solid var(--chip-accent, var(--border-strong));border-radius:var(--radius-md);padding:.45rem .65rem;min-width:120px;flex:1 1 120px;max-width:170px;box-shadow:var(--shadow-sm)}.rating-chip-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rating-chip-top .rating-chip-value{font-size:1.05rem;font-weight:var(--font-weight-bold);text-align:right;white-space:nowrap;line-height:1.1;color:var(--text-primary)}.rating-chip-header{display:flex;align-items:center;gap:.4rem}.rating-chip-icon{font-size:var(--font-size-sm);color:var(--chip-accent, var(--text-secondary))}.rating-chip-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.rating-chip-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight)}.rating-chip-record{display:inline-flex;gap:.35rem;font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;font-weight:var(--font-weight-semibold)}.rating-chip-record-win{color:var(--status-win)}.rating-chip-record-loss{color:var(--status-loss)}.rating-chip-record-draw{color:var(--status-draw)}.rating-chip-bullet{--chip-accent: var(--rating-chip-bullet);background:linear-gradient(180deg,var(--rating-chip-bullet-soft),transparent 38%),var(--surface-elevated)}.rating-chip-blitz{--chip-accent: var(--rating-chip-blitz);background:linear-gradient(180deg,var(--rating-chip-blitz-soft),transparent 38%),var(--surface-elevated)}.rating-chip-rapid{--chip-accent: var(--rating-chip-rapid);background:linear-gradient(180deg,var(--rating-chip-rapid-soft),transparent 38%),var(--surface-elevated)}.rating-chip-daily{--chip-accent: var(--rating-chip-daily);background:linear-gradient(180deg,var(--rating-chip-daily-soft),transparent 38%),var(--surface-elevated)}@media (max-width: 575.98px){.profile-header-top{flex-wrap:wrap}.profile-header-avatar{width:48px;height:48px}.profile-header-name{font-size:1.6rem}.profile-header-record{flex-direction:row;gap:.5rem;width:100%;margin-left:0;margin-top:.5rem;padding:.4rem .6rem;min-width:unset}.profile-header-record-percentage{font-size:1.1rem}.profile-header-ratings{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.rating-chip{max-width:none;min-width:0;padding:.4rem .55rem;gap:.2rem}.rating-chip-value{font-size:var(--font-size-base)}.rating-chip-top{gap:.35rem}}.year-filter-container{margin-bottom:.75rem}.year-filter-label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.year-filter-buttons{display:flex;flex-wrap:wrap;gap:.35rem}.year-filter-btn{padding:.25rem .6rem;font-size:.8rem;border:1px solid var(--border-subtle);background:var(--surface-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.year-filter-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.year-filter-btn.active{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.live-stream-badge{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--status-live),#9f1239);color:#fff;font-size:.85rem;font-weight:600;padding:.45rem 1rem;border-radius:var(--radius-md);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 2px 8px color-mix(in srgb,var(--status-live) 30%,transparent)}.live-stream-badge:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--status-live) 45%,transparent);color:#fff;text-decoration:none}.live-stream-badge:active{transform:translateY(0);box-shadow:0 1px 4px #dc35454d}.live-stream-dot{width:8px;height:8px;background:#fff;border-radius:50%;flex-shrink:0;animation:live-pulse 1.5s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;box-shadow:0 0 #fff9}50%{opacity:.4;box-shadow:0 0 0 4px #fff0}}.live-stream-label{background:#fff3;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.05em;line-height:1}.live-stream-text{font-weight:500}.live-stream-icon{font-size:.7rem;opacity:.7}.report-issue-link{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--font-size-xs);color:var(--text-muted);text-decoration:none;padding:.2rem .5rem;border-radius:var(--radius-sm);transition:color .15s ease,background-color .15s ease;margin-top:.5rem}.report-issue-link:hover,.report-issue-link:focus-visible{color:var(--status-loss);background-color:var(--status-loss-soft);text-decoration:none}.report-issue-link i{font-size:.85em}.ratings-overview-grid{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.rating-overview-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1rem 1.25rem;min-width:180px;flex:1 1 200px;max-width:260px;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;display:flex;flex-direction:column;gap:.625rem;position:relative;overflow:hidden}.rating-overview-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-color);opacity:.65}.rating-overview-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.rating-overview-card.elite{border-color:#d97706;border-width:2px;background:linear-gradient(160deg,#fffaf0 0%,var(--surface-elevated) 60%)}.rating-overview-card.advanced{border-color:#2563eb;border-width:2px;background:linear-gradient(160deg,#eff6ff 0%,var(--surface-elevated) 60%)}.rating-overview-card.intermediate{border-color:var(--status-win);border-width:2px;background:linear-gradient(160deg,#f0fdf4 0%,var(--surface-elevated) 60%)}.rating-overview-card.beginner{border-color:var(--status-draw);border-width:1.5px}.rating-overview-header{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.rating-overview-icon{font-size:1.5rem;color:var(--accent-color);opacity:.9}.rating-overview-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.rating-overview-body{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.rating-overview-current,.rating-overview-peak{display:flex;flex-direction:column;gap:.1rem}.rating-overview-current-label,.rating-overview-peak-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;font-weight:var(--font-weight-medium)}.rating-overview-current-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2}.rating-overview-peak-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2}.rating-overview-peak-date{font-size:.7rem;color:var(--text-muted)}.rating-overview-trends{display:flex;gap:1rem;padding-top:.5rem;border-top:1px solid var(--border-subtle)}.rating-change-item{display:flex;flex-direction:column;gap:.1rem}.change-period{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;font-weight:var(--font-weight-medium)}.change-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:.15rem}.change-value.positive{color:var(--status-win)}.change-value.negative{color:var(--status-loss)}.change-value i{font-size:.75rem}@media (max-width: 575.98px){.ratings-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.rating-overview-card{max-width:none;min-width:0;padding:.75rem 1rem}.rating-overview-icon,.rating-overview-current-value{font-size:1.25rem}.rating-overview-peak-value{font-size:1.1rem}}.monthly-chart-container{margin-bottom:.75rem}.monthly-chart-container:last-child{margin-bottom:0}.monthly-rating-chart{min-width:400px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);background:var(--surface-elevated);transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.monthly-rating-chart:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}.donut-charts-row{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:flex-start;margin-top:1rem;padding:1rem;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.donut-chart-item{display:flex;flex-direction:column;align-items:center;width:130px}.donut-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:.25rem;font-size:.7rem;color:var(--text-muted)}.donut-legend-item{display:flex;align-items:center;gap:.2rem}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}@media (max-width: 575.98px){.donut-charts-row{gap:1rem;padding:.75rem;justify-content:center}.donut-chart-item{width:100px}.donut-legend{font-size:.65rem}}.activity-chart-container{margin-top:1rem}.activity-chart{min-width:320px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);background:var(--surface-elevated);transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.activity-chart:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}.rating-chart{min-width:420px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle);background:var(--surface-elevated);transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.rating-chart:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}.monthly-rating-chart text,.activity-chart text,.rating-chart text{font-family:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.monthly-rating-chart line,.activity-chart line,.rating-chart line{shape-rendering:crispEdges}#rating h2 i,#peak-ratings h2 i,#rating-trends h2 i,#monthly-rating h2 i,#win-loss-draw h2 i,#games-activity h2 i{margin-right:.5rem;color:var(--text-muted)}.openings-win{color:var(--status-win)}.openings-loss{color:var(--status-loss)}.openings-draw{color:var(--status-draw)}.openings-progress{height:10px;border-radius:999px;overflow:hidden;background:var(--surface-muted);box-shadow:inset 0 1px 2px #0000000f}.openings-progress>div{height:100%;transition:width .25s ease}.openings-progress-win{background:var(--status-win)}.openings-progress-draw{background:var(--status-draw)}.openings-progress-loss{background:var(--status-loss)}.openings-name-cell{max-width:180px}.table-hover tbody tr:hover .openings-progress{box-shadow:0 0 0 1px var(--border-strong);transition:box-shadow .1s ease}.openings-filter-group{display:inline-flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle)}.openings-filter-group .filter-btn{padding:4px 12px;font-size:.85rem;border:none;background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;border-right:1px solid var(--border-subtle);transition:background .15s,color .15s}.openings-filter-group .filter-btn:last-child{border-right:none}.openings-filter-group .filter-btn:hover{background:var(--surface-muted)}.openings-filter-group .filter-btn.active{background:var(--brand-primary);color:#fff}.insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;align-items:start}.insight-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.insight-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.insight-card h2{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-subtle);letter-spacing:-.01em}.insight-card ul{list-style:none;padding:0;margin:0}.insight-card li{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--border-subtle);font-size:.9rem;gap:1rem}.insight-card li:last-child{border-bottom:none}.insight-card li strong{color:var(--text-primary);flex-shrink:0}.insight-metric{font-weight:700;color:var(--brand-primary);background:var(--surface-muted);padding:.1rem .5rem;border-radius:var(--radius-sm);font-size:.95rem;white-space:nowrap}.insight-metric.positive{color:var(--status-win);background:var(--status-win-soft)}.insight-metric.negative{color:var(--status-loss);background:var(--status-loss-soft)}.insight-page-header{margin-bottom:1.5rem}.insight-page-header h1{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.insight-page-header p{max-width:60ch;margin-left:auto;margin-right:auto}@media (max-width: 767.98px){.insight-grid{grid-template-columns:1fr}.insight-table{display:block;overflow-x:auto;white-space:nowrap}}.insight-table{width:100%;border-collapse:collapse}.insight-table th,.insight-table td{padding:.45rem .6rem;border-bottom:1px solid var(--border-subtle);text-align:left;font-size:.85rem}.insight-table th{font-weight:600;color:var(--text-secondary);background:var(--surface-muted)}.insight-table tbody tr:nth-child(2n){background:var(--surface-muted)}.insight-table tbody tr:hover{background:var(--brand-accent-soft)}.interim-stats-container h1{color:var(--text-primary);text-align:center}.interim-stats-container .section{margin-bottom:1.25rem}.interim-stats-container p{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--text-primary);max-width:70ch;margin-left:auto;margin-right:auto;margin-bottom:.9rem}.interim-stats-container h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--brand-primary);margin:1.1rem 0 .5rem;letter-spacing:-.01em}.interim-stats-container ul{list-style:none;max-width:70ch;margin-left:auto;margin-right:auto;padding-left:1.1rem;margin-bottom:.9rem}.interim-stats-container li{margin-bottom:.4rem;line-height:var(--line-height-relaxed)}.profile-bio-shell{padding:1.25rem 1rem}@media (min-width: 768px){.profile-bio-shell{padding:1.5rem 1.75rem}}.profile-page-container{max-width:1000px}.profile-page-container.profile-page-wide{max-width:1200px}.profile-header-section{padding:.875rem;margin-bottom:.75rem}.profile-content-shell{padding:.625rem}.profile-bio-shell{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.profile-bio-shell:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.profile-header-card{position:relative;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}.profile-header-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.profile-header-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent-editorial);border-radius:var(--radius-lg) var(--radius-lg) 0 0}@media (max-width: 575.98px){.profile-header-section{padding:.75rem}.profile-content-shell{padding:.5rem}}.floating-share-btn{position:fixed;top:5.5rem;right:1rem;width:3rem;height:3rem;border-radius:50%;background-color:var(--brand-primary);color:#fff;border:none;box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1040;transition:background-color .2s ease,box-shadow .2s ease,transform .15s ease}.floating-share-btn:hover{background-color:var(--brand-primary-hover);box-shadow:var(--shadow-lg);transform:scale(1.04);color:#fff}.floating-share-btn:active{transform:scale(.97)}.floating-share-btn:focus-visible{outline:2px solid var(--brand-accent);outline-offset:3px}@media (max-width: 768px){.floating-share-btn{top:4.75rem;right:.75rem;width:2.875rem;height:2.875rem}}.admin-pill-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;margin-bottom:.5rem;scrollbar-width:thin}.admin-pill-nav .nav{flex-wrap:nowrap;min-width:min-content}.admin-pill-nav .nav-link{white-space:nowrap;border-radius:var(--radius-md)}.profile-box-sm{border:1px solid #ccc;padding:10px;margin:10px;display:inline-block;width:150px;text-align:center;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.profile-box-sm:hover{transform:scale(1.05);box-shadow:0 4px 8px #0003}.profile-picture-sm{width:50px;height:50px;border-radius:50%}.profile-title-sm{margin-top:5px}.profile-username-sm{color:var(--text-secondary);margin-top:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.profile-username-sm:after{content:attr(data-username);display:block;font-size:var(--font-size-xs);visibility:hidden;height:0}:root{--light-square: #f0d9b5;--dark-square: #b58863;--arrow-color: rgba(255, 140, 0, .87)}.pgn-viewer{display:flex;flex-direction:column;align-items:start;gap:.5rem}.pgn-viewer:not([style*=aspect-ratio]){background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.75rem;width:100%;max-width:500px}.pgn-viewer chess-board{width:100%;max-width:600px;aspect-ratio:1/1;--light-color: var(--light-square);--dark-color: var(--dark-square)}.pgn-viewer .controls{display:flex;flex-wrap:wrap;gap:.5rem}.pgn-viewer .viewer-controls{justify-content:center;padding:.5rem;background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.pgn-viewer .controls .btn{min-width:2.5rem}.pgn-viewer .viewer-control-btn{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .85rem;font-weight:600;box-shadow:0 2px 4px #00000014;transition:transform 80ms ease,box-shadow 80ms ease,background-color 80ms ease}.pgn-viewer .viewer-control-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #0000001f}.pgn-viewer .viewer-control-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--focus-ring-color)}.pgn-viewer .viewer-control-btn:disabled{opacity:.55;box-shadow:none;transform:none}.pgn-viewer .viewer-control-text{font-size:.85rem}.pgn-viewer .arrow-overlay line{stroke:var(--arrow-color);stroke-width:var(--arrow-stroke-width, 5);marker-end:url(#arrowhead);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.final-position{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.final-position-board{width:100%;max-width:1000px;aspect-ratio:1/1;--light-color: var(--light-square);--dark-color: var(--dark-square);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}:root{--game-win-color: var(--status-win);--game-win-bg: var(--status-win-soft);--game-loss-color: var(--status-loss);--game-loss-bg: var(--status-loss-soft);--game-draw-color: var(--status-draw);--game-draw-bg: var(--status-draw-soft);--time-bullet-color: #dc3545;--time-blitz-color: #f59e0b;--time-rapid-color: #198754;--time-daily-color: #0ea5e9;--card-shadow: var(--shadow-sm);--card-shadow-hover: var(--shadow-md);--card-radius: var(--radius-lg);--card-border: 1px solid var(--border-subtle)}.games-list{display:flex;flex-direction:column;gap:.625rem}.game-card{background:var(--surface-elevated);border-radius:var(--card-radius);box-shadow:var(--card-shadow);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;border-left:5px solid;border:var(--card-border);border-left-width:5px}.game-card:hover{transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}.game-card.border-success{border-left-color:var(--game-win-color)}.game-card.border-danger{border-left-color:var(--game-loss-color)}.game-card.border-secondary{border-left-color:var(--game-draw-color)}.game-card-link{display:flex;align-items:stretch;text-decoration:none;color:inherit;min-height:88px}.game-card-link:hover{color:inherit;text-decoration:none}.game-outcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.875rem;min-width:72px;gap:.375rem}.game-outcome i{font-size:1.375rem}.game-outcome .outcome-text{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.75px}.game-outcome .piece-color{margin-top:.25rem}.game-outcome .piece-color i{font-size:.875rem}.piece-white{color:#f8f9fa;-webkit-text-stroke:1.5px #495057;text-shadow:0 1px 2px rgba(0,0,0,.2)}.piece-black{color:#343a40;text-shadow:0 1px 2px rgba(0,0,0,.1)}.outcome-success{background:linear-gradient(135deg,var(--game-win-bg) 0%,rgba(25,135,84,.03) 100%);color:var(--game-win-color)}.outcome-danger{background:linear-gradient(135deg,var(--game-loss-bg) 0%,rgba(220,53,69,.03) 100%);color:var(--game-loss-color)}.outcome-secondary{background:linear-gradient(135deg,var(--game-draw-bg) 0%,rgba(108,117,125,.03) 100%);color:var(--game-draw-color)}.game-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:.75rem 1rem;gap:.4rem;min-width:0;border-left:1px solid var(--border-subtle)}.game-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.opponent-info{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.opponent-name{font-weight:600;font-size:1rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-rating{font-size:.75rem;color:var(--text-secondary);background:var(--surface-muted);padding:.2rem .6rem;border-radius:2rem;border:1px solid var(--border-subtle);white-space:nowrap;font-weight:500}.game-date{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:.25rem}.game-date i{font-size:.7rem;opacity:.7}.game-details{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.time-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:.375rem;font-size:.7rem;font-weight:600;white-space:nowrap;letter-spacing:.25px}.time-badge i{font-size:.65rem}.time-bullet{background:linear-gradient(135deg,var(--time-bullet-color) 0%,#c82333 100%);color:#fff}.time-blitz{background:linear-gradient(135deg,var(--time-blitz-color) 0%,#d97706 100%);color:#fff}.time-rapid{background:linear-gradient(135deg,var(--time-rapid-color) 0%,#157347 100%);color:#fff}.time-daily{background:linear-gradient(135deg,var(--time-daily-color) 0%,#0284c7 100%);color:#fff}.time-unknown{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff}.eco-badge{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.65rem;font-weight:700;background:var(--surface-muted);color:var(--text-secondary);padding:.2rem .45rem;border-radius:.25rem;letter-spacing:.5px}.opening-name{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.game-termination{font-size:.7rem;color:var(--text-light);display:flex;align-items:center;gap:.25rem}.game-termination i{font-size:.6rem}.game-arrow{display:flex;align-items:center;justify-content:center;padding:0 1rem;color:var(--border-strong);font-size:1.25rem;transition:color .2s ease,transform .2s ease}.game-card:hover .game-arrow{color:var(--brand-primary);transform:translate(4px)}.rivalry-header{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);border-radius:var(--card-radius);padding:1.75rem 1.5rem;text-align:center;color:#fff;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000026}.rivalry-header:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;pointer-events:none}.rivalry-players{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap;position:relative;z-index:1}.player-side{display:flex;flex-direction:column;align-items:center;gap:.375rem}.player-name{font-size:1.375rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.player-title{font-size:.7rem;background:linear-gradient(135deg,#ffc107,#ff9800);color:#1a1a2e;padding:.2rem .6rem;border-radius:.25rem;font-weight:700;letter-spacing:.5px;box-shadow:0 2px 8px #ffc1074d}.vs-badge{font-size:1.75rem;font-weight:800;color:#fff6;background:#ffffff14;padding:.5rem 1.25rem;border-radius:.5rem;letter-spacing:2px;border:1px solid rgba(255,255,255,.1)}.player-name-link{text-decoration:none;transition:transform .2s ease;display:inline-block}.player-name-link:hover{transform:scale(1.05)}.player-name-link:hover .player-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.stats-card{background:var(--surface-elevated);border-radius:var(--card-radius);box-shadow:var(--card-shadow);overflow:hidden;border:var(--card-border)}.stats-header{background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-primary-hover) 100%);color:#fff;padding:.875rem 1.25rem;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:.5rem}.stats-header i{font-size:1rem;opacity:.9}.stats-body{padding:1.5rem}.record-bar-container{text-align:center}.record-bar{display:flex;height:3rem;border-radius:.5rem;overflow:hidden;background:var(--surface-muted);box-shadow:inset 0 2px 4px #00000014}.record-segment{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;transition:width .6s cubic-bezier(.4,0,.2,1);min-width:0;position:relative}.record-segment span{text-shadow:0 1px 3px rgba(0,0,0,.3);font-size:.95rem}.win-segment{background:linear-gradient(135deg,#198754,#20c997)}.draw-segment{background:linear-gradient(135deg,#6c757d,#adb5bd)}.loss-segment{background:linear-gradient(135deg,#dc3545,#e85d6a)}.record-legend{display:flex;justify-content:center;gap:1.75rem;margin-top:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary);font-weight:500}.legend-color{width:14px;height:14px;border-radius:4px;box-shadow:0 1px 3px #00000026}.win-color{background:linear-gradient(135deg,#198754,#20c997)}.draw-color{background:linear-gradient(135deg,#6c757d,#adb5bd)}.loss-color{background:linear-gradient(135deg,#dc3545,#e85d6a)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem}.stat-item{display:flex;align-items:center;gap:.875rem;padding:1rem;background:var(--surface-muted);border-radius:.625rem;border:1px solid var(--border-subtle);transition:transform .2s ease,box-shadow .2s ease}.stat-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.stat-item.stat-highlight{background:linear-gradient(135deg,var(--surface-muted) 0%,var(--surface-page) 100%)}.stat-icon{width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;background:var(--surface-elevated);border-radius:.5rem;color:var(--brand-primary);font-size:1.125rem;box-shadow:0 2px 8px #00000014;border:1px solid var(--border-subtle)}.stat-content{flex:1;min-width:0}.stat-value{font-size:1.625rem;font-weight:700;line-height:1.2;color:var(--text-primary)}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.75px;font-weight:600;margin-top:.125rem}.streak-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.streak-item{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;border-radius:.625rem;border-left:5px solid;transition:transform .2s ease}.streak-item:hover{transform:translate(4px)}.streak-item i{font-size:1.5rem}.streak-win{background:linear-gradient(135deg,#19875414,#19875408);border-left-color:var(--game-win-color)}.streak-win i{color:var(--game-win-color)}.streak-loss{background:linear-gradient(135deg,#dc354514,#dc354508);border-left-color:var(--game-loss-color)}.streak-loss i{color:var(--game-loss-color)}.streak-content{display:flex;flex-direction:column;gap:.125rem}.streak-value{font-size:1.375rem;font-weight:700}.streak-win .streak-value{color:var(--game-win-color)}.streak-loss .streak-value{color:var(--game-loss-color)}.streak-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.player-card .player-row{transition:background-color .2s ease}.player-card .player-row:hover{background-color:#00000005}.winner-highlight{background-color:#1987540f;border-left:3px solid var(--game-win-color)}.avatar-img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--border-subtle);box-shadow:0 2px 8px #0000001a}.avatar-placeholder{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--surface-muted) 0%,var(--surface-page) 100%);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:1.25rem;border:2px solid var(--border-subtle)}.piece-icon{font-size:1.25rem;width:28px;display:flex;align-items:center;justify-content:center}.time-class-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.75px;padding:.25rem .625rem;border-radius:.375rem}.time-class-bullet{background:linear-gradient(135deg,var(--time-bullet-color) 0%,#c82333 100%);color:#fff}.time-class-blitz{background:linear-gradient(135deg,var(--time-blitz-color) 0%,#d97706 100%);color:#fff}.time-class-rapid{background:linear-gradient(135deg,var(--time-rapid-color) 0%,#157347 100%);color:#fff}.time-class-daily{background:linear-gradient(135deg,var(--time-daily-color) 0%,#0284c7 100%);color:#fff}.time-class-unknown{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff}.opening-name-detail{font-size:.95rem;line-height:1.5;color:var(--text-secondary)}.move-list-container{display:flex;flex-wrap:wrap;gap:.25rem 1rem;max-height:280px;overflow-y:auto;padding:.75rem;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.85rem;background:var(--surface-page);border-radius:.5rem;border:1px solid var(--border-subtle)}.move-pair{white-space:nowrap}.move-number{min-width:2rem;text-align:right;color:var(--text-light);font-weight:500}.move-item{cursor:pointer;padding:.2rem .5rem;border-radius:.25rem;transition:background-color .15s ease,color .15s ease}.move-item:hover{background-color:var(--surface-muted)}.move-item.active{background-color:var(--brand-primary);color:#fff;font-weight:600}.move-white,.move-black{min-width:3.5rem}.move-counter{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8rem}.btn-outline-primary:disabled,.btn-outline-secondary:disabled{opacity:.5;cursor:not-allowed}.card-header h6{font-weight:600}.card-header .bi{color:var(--text-muted)}.d-grid.gap-2 .btn{text-align:left;display:flex;align-items:center}.d-grid.gap-2 .btn i{min-width:1.5rem}#flipBoardBtn,#autoPlayBtn{transition:transform .2s ease,background-color .2s ease}#flipBoardBtn:hover:not(:disabled),#autoPlayBtn:hover:not(:disabled){transform:scale(1.08)}#autoPlayBtn.playing{background-color:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}.player-row .text-success,.player-row .text-danger{font-weight:600;font-size:.75rem}.card-footer .bi-keyboard{font-size:1rem}.bi-trophy-fill{animation:trophy-pulse 2.5s ease-in-out infinite}@keyframes trophy-pulse{0%,to{filter:drop-shadow(0 0 3px rgba(255,193,7,.4))}50%{filter:drop-shadow(0 0 8px rgba(255,193,7,.7))}}.move-list-container::-webkit-scrollbar{width:6px}.move-list-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.move-list-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.move-list-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.player-row a{color:inherit;transition:color .2s ease}.player-row a:hover{color:var(--brand-primary)}@media (max-width: 767.98px){.rivalry-header{padding:1.25rem 1rem}.rivalry-players{gap:1.25rem}.player-name{font-size:1.125rem}.vs-badge{font-size:1.375rem;padding:.375rem .875rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1.375rem}.streak-stats{grid-template-columns:1fr}.game-card-link{min-height:80px}.game-outcome{min-width:60px;padding:.625rem}.game-outcome i{font-size:1.125rem}.game-outcome .outcome-text{font-size:.6rem}.game-content{padding:.625rem .875rem}.opponent-name{font-size:.95rem}.game-date{display:none}.opening-name{max-width:180px}.game-arrow{padding:0 .625rem}.player-card .player-row{padding:.75rem!important}.avatar-img,.avatar-placeholder{width:36px;height:36px;font-size:1rem}.piece-icon{font-size:1rem;width:22px}.move-list-container{max-height:200px;font-size:.8rem}}@media (max-width: 575.98px){.rivalry-players{flex-direction:column;gap:.75rem}.vs-badge{font-size:1.125rem;padding:.3rem .625rem}.player-name{font-size:1rem}.stats-body{padding:1rem}.stats-grid{grid-template-columns:1fr;gap:.75rem}.stat-item{justify-content:flex-start;padding:.875rem}.stat-icon{width:2.5rem;height:2.5rem;font-size:1rem}.stat-value{font-size:1.25rem}.record-bar{height:2.5rem}.record-legend{gap:1rem}.legend-item{font-size:.75rem}.streak-item{padding:.75rem 1rem}.streak-item i{font-size:1.25rem}.streak-value{font-size:1.125rem}.game-outcome{min-width:52px;padding:.5rem}.game-outcome .outcome-text{display:none}.game-outcome .piece-color{margin-top:.375rem}.opponent-rating,.time-badge .time-text{display:none}.time-badge{padding:.25rem .375rem}.time-badge i{font-size:.8rem}.opening-name{max-width:100px;font-size:.75rem}.game-termination{display:none}.game-arrow{padding:0 .5rem;font-size:1rem}.btn-group .btn{padding:.25rem .5rem;font-size:.8rem}.badge.fs-6{font-size:.875rem!important}.move-list-container{font-size:.75rem;padding:.5rem}.move-number{min-width:1.5rem}.move-white,.move-black{min-width:2.75rem}.move-item{padding:.15rem .35rem}}.games-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.games-section-header h5,.games-section-header h6{margin-bottom:0;font-weight:600}.games-count-badge{font-size:.8rem;font-weight:600;padding:.35rem .75rem;border-radius:2rem}.games-empty-state{text-align:center;padding:3rem 1.5rem;background:var(--surface-muted);border-radius:var(--card-radius);border:1px dashed var(--border-subtle)}.games-empty-state i{font-size:3rem;color:var(--text-light);margin-bottom:1rem}.games-empty-state p{color:var(--text-secondary);margin-bottom:0}:root{--stats-win-color: var(--status-win);--stats-win-bg: var(--status-win-soft);--stats-loss-color: var(--status-loss);--stats-loss-bg: var(--status-loss-soft);--stats-draw-color: var(--status-draw);--stats-draw-bg: var(--status-draw-soft);--stats-card-bg: var(--surface-elevated);--stats-card-border: var(--border-subtle);--stats-card-shadow: var(--shadow-sm);--stats-card-shadow-hover: var(--shadow-md);--stats-card-radius: var(--radius-lg);--stats-section-gap: 2rem}.stats-container{display:flex;flex-direction:column;gap:var(--stats-section-gap);padding:1.5rem 0}.stats-container h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem;letter-spacing:-.01em}.stats-container h2:after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--stats-card-border) 0%,transparent 100%);margin-left:1rem}.stats-section{background:var(--stats-card-bg);border-radius:var(--stats-card-radius);padding:1.5rem;border:1px solid var(--stats-card-border);box-shadow:var(--stats-card-shadow)}.donut-charts-grid{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:flex-start}.donut-chart-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--surface-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;min-width:160px;box-shadow:var(--shadow-sm)}.donut-chart-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.donut-svg{width:140px;height:168px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.08))}.donut-svg circle{transition:stroke-dasharray .4s ease,stroke-dashoffset .4s ease,opacity .2s ease}.donut-svg circle:hover{opacity:.85;cursor:pointer}.donut-bg-circle{stroke:var(--border-subtle)}.donut-win-circle{stroke:var(--stats-win-color)}.donut-loss-circle{stroke:var(--stats-loss-color)}.donut-draw-circle{stroke:var(--stats-draw-color)}.donut-center-total{font-size:1rem;font-weight:700;fill:var(--text-primary)}.donut-center-label{font-size:.625rem;fill:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.donut-time-control{font-size:.8125rem;font-weight:600;fill:var(--text-secondary);text-transform:capitalize}.donut-legend{display:flex;gap:.85rem;margin-top:.85rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);justify-content:center}.donut-legend-win{color:var(--stats-win-color);font-weight:700}.donut-legend-loss{color:var(--stats-loss-color);font-weight:700}.donut-legend-draw{color:var(--stats-draw-color);font-weight:700}.donut-legend span span{font-weight:600;opacity:.75;letter-spacing:.5px}.stats-legend{display:flex;gap:1.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--stats-card-border);font-size:.8rem;color:var(--text-secondary);font-weight:600}.stats-legend-item{display:flex;align-items:center;gap:.5rem}.stats-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--surface-elevated);box-shadow:0 0 0 1px var(--border-subtle)}.stats-legend-dot.win{background:var(--stats-win-color)}.stats-legend-dot.loss{background:var(--stats-loss-color)}.stats-legend-dot.draw{background:var(--stats-draw-color)}.stats-table-wrapper{overflow-x:auto;margin:0 -.5rem;padding:0 .5rem}.stats-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}.stats-table thead{position:sticky;top:0;z-index:1}.stats-table thead th{background:linear-gradient(135deg,var(--surface-muted) 0%,var(--surface-page) 100%);padding:.875rem 1rem;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:2px solid var(--stats-card-border);white-space:nowrap}.stats-table thead th:first-child{border-top-left-radius:8px}.stats-table thead th:last-child{border-top-right-radius:8px}.stats-table tbody tr{transition:background-color .15s ease}.stats-table tbody tr:hover{background-color:var(--surface-muted)}.stats-table tbody td{padding:.875rem 1rem;border-bottom:1px solid var(--surface-muted);vertical-align:middle}.stats-table tbody tr:last-child td{border-bottom:none}.stats-table tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.stats-table tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.stats-year{font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.stats-record{display:inline-flex;gap:.25rem;font-variant-numeric:tabular-nums;font-weight:500}.stats-record-win{color:var(--stats-win-color);font-weight:600}.stats-record-loss{color:var(--stats-loss-color);font-weight:600}.stats-record-draw{color:var(--text-muted);font-weight:600}.stats-record-separator{color:var(--text-light)}.stats-moves{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.streaks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.streak-card{display:flex;align-items:stretch;background:var(--stats-card-bg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--stats-card-border);transition:transform .2s ease,box-shadow .2s ease}.streak-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.streak-icon-area{display:flex;align-items:center;justify-content:center;width:60px;font-size:1.5rem}.streak-card.winning .streak-icon-area{background:linear-gradient(135deg,var(--stats-win-bg) 0%,rgba(34,197,94,.05) 100%);color:var(--stats-win-color)}.streak-card.losing .streak-icon-area{background:linear-gradient(135deg,var(--stats-loss-bg) 0%,rgba(239,68,68,.05) 100%);color:var(--stats-loss-color)}.streak-content-area{flex:1;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem}.streak-type{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.streak-values{display:flex;gap:2rem}.streak-stat{display:flex;flex-direction:column}.streak-label{font-size:.7rem;color:var(--text-muted);margin-bottom:.125rem}.streak-value{font-size:1.5rem;font-weight:700;line-height:1}.streak-card.winning .streak-value{color:var(--stats-win-color)}.streak-card.losing .streak-value{color:var(--stats-loss-color)}.stats-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;margin-top:.5rem;border-top:1px solid var(--stats-card-border)}.stats-timestamp{font-size:.75rem;color:var(--text-muted)}.stats-back-link{font-size:.85rem;color:var(--text-secondary);text-decoration:none;transition:color .15s ease}.stats-back-link:hover{color:var(--brand-primary)}@media (max-width: 767.98px){.stats-container{gap:1.5rem;padding:1rem 0}.stats-section{padding:1.25rem;border-radius:10px}.donut-charts-grid{gap:1rem;justify-content:center}.donut-chart-card{padding:1rem;min-width:140px}.donut-svg{width:120px;height:148px}.donut-center-total{font-size:14px}.donut-legend{gap:.5rem;font-size:.75rem}.stats-legend{flex-wrap:wrap;gap:1rem}.stats-table{font-size:.85rem}.stats-table thead th,.stats-table tbody td{padding:.75rem .625rem}.streaks-grid{grid-template-columns:1fr}.streak-values{gap:1.5rem}.streak-value{font-size:1.25rem}}@media (max-width: 575.98px){.stats-container h2{font-size:1.1rem}.stats-container h2:after{display:none}.donut-charts-grid{flex-direction:column;align-items:stretch}.donut-chart-card{flex-direction:row;gap:1rem;padding:1rem;min-width:unset}.donut-svg{width:100px;height:128px}.donut-center-total{font-size:12px}.donut-center-label{font-size:8px}.donut-time-control{font-size:11px}.donut-legend{flex-direction:column;gap:.25rem;margin-top:0;font-size:.8rem}.streak-icon-area{width:50px;font-size:1.25rem}.streak-content-area{padding:.875rem 1rem}.stats-footer{flex-direction:column;gap:.75rem;align-items:flex-start}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stats-section{animation:fadeInUp .3s ease forwards}.stats-section:nth-child(1){animation-delay:0s}.stats-section:nth-child(2){animation-delay:.1s}.stats-section:nth-child(3){animation-delay:.2s}
