:root{color-scheme:dark;--board-light:#f0d9b5;--board-dark:#b58863;--board-selected:#ff6b6b;--board-highlight:#4ecdc4;--color-brand:#8b5cf6;--color-brand-light:#a78bfa;--color-brand-dark:#7c3aed;--color-success:#22c55e;--color-success-dark:#15803d;--color-error:#ef4444;--color-warning:#f59e0b;--color-warning-dark:#d97706;--color-muted:#9ca3af;--bg-primary:#0b1220;--bg-secondary:#0b1324;--bg-surface:rgba(17,24,39,.7);--bg-panel:rgba(15,23,42,.9);--text-primary:#f8fafc;--text-secondary:#e5e7eb;--text-muted:#94a3b8;--border-subtle:rgba(148,163,184,.15);--border-light:rgba(148,163,184,.2);--border-medium:rgba(148,163,184,.35);--shadow-sm:0 4px 12px rgba(124,58,237,.25);--shadow-md:0 10px 30px rgba(2,6,23,.25);--shadow-lg:0 20px 50px rgba(2,6,23,.4);--shadow-panel:0 20px 45px -30px rgba(15,23,42,.7);--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--radius-sm:6px;--radius-md:8px;--radius-lg:14px;--radius-xl:24px;--radius-full:9999px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,system-ui,sans-serif;--font-serif:"Georgia",serif;--board-size:min(70vw,90vh);--sq:64px}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }

/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
 */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fixed{position:fixed}.absolute{position:absolute}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-md{max-width:28rem}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.bg-background{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-900\/70{background-color:rgba(15,23,42,.7)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.p-10{padding:2.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.shadow-panel{--tw-shadow:0 20px 45px -30px rgba(15,23,42,.7);--tw-shadow-colored:0 20px 45px -30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}html{min-height:100%}body,html{margin:0;padding:0;overflow-x:hidden}body{min-height:100vh;overflow-y:auto;font-family:var(--font-sans);color:var(--text-secondary);background:radial-gradient(1200px 800px at 10% 10%,#0f1a34 0,var(--bg-primary) 50%),linear-gradient(180deg,var(--bg-primary),var(--bg-secondary))}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.num-bounce{animation:numBounce .26s ease-out}@keyframes numBounce{0%{transform:translateY(-2px) scale(.98)}60%{transform:translateY(0) scale(1.06)}to{transform:translateY(0) scale(1)}}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.layout-root{min-height:100vh;padding:clamp(18px,3vw,36px);justify-content:center;box-sizing:border-box;max-width:none}.layout,.layout-root{width:100%;display:flex}.layout{--board-size:min(70vw,90vh);gap:clamp(20px,4vw,52px);align-items:flex-start;max-width:1200px}.board-column{flex:1 1 0}.board-column,.board-shell{display:flex;justify-content:center}.board-shell{position:relative;width:min(var(--board-size),640px);aspect-ratio:1/1;align-items:center}.board-surface{width:100%;height:100%}.sidebar{flex:0 0 min(28vw,360px);min-width:280px;display:flex;flex-direction:column;gap:clamp(12px,1.6vh,20px);overflow:hidden;height:min(var(--board-size),640px)}@media (max-width:1100px){.layout{gap:clamp(16px,5vw,36px)}}@media (max-width:960px){.layout{--board-size:min(92vw,520px);flex-direction:column;align-items:center}.board-column{width:100%}.board-shell{max-width:none}.board-shell,.sidebar{width:var(--board-size)}.sidebar{flex:1 1 auto;min-width:0;max-width:var(--board-size);height:auto;gap:clamp(14px,3vh,22px)}}@media (max-width:600px){.layout-root{padding:10px 12px 30px}.sidebar{gap:14px}}#board{border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;position:relative;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);box-shadow:var(--shadow-lg);touch-action:none;contain:layout paint}#board.is-loading{cursor:wait}#board.is-loading:before{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;background:rgba(15,23,42,.08);animation:boardLoadingPulse .9s ease-in-out infinite alternate}#board.is-loading .piece,#board.is-loading .square{cursor:wait}@keyframes boardLoadingPulse{0%{opacity:.16}to{opacity:.42}}.square{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative}.direct-haptic-switch{position:absolute;inset:0;z-index:5;width:100%;height:100%;margin:0;opacity:.001;-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;cursor:pointer}#board.is-loading .direct-haptic-switch,#board.reviewing-moves .direct-haptic-switch{pointer-events:none}.square.light{background:var(--board-light)}.square.dark{background:var(--board-dark)}.square.selected{box-shadow:inset 0 0 0 3px var(--board-selected)}.square.highlight{box-shadow:inset 0 0 0 3px var(--board-highlight)}.square.last-opponent-move:before,.square.last-user-move:before{content:"";position:absolute;inset:7%;border-radius:6px;pointer-events:none;z-index:1}.square.last-user-move:before{background:rgba(16,185,129,.18);box-shadow:inset 0 0 0 2px rgba(16,185,129,.42)}.square.last-opponent-move:before{background:rgba(56,189,248,.16);box-shadow:inset 0 0 0 2px rgba(56,189,248,.4)}.square.last-opponent-move-from:before,.square.last-user-move-from:before{opacity:.58}.square.last-opponent-move-to:before,.square.last-user-move-to:before{opacity:.94}.square.last-user-move.last-opponent-move:before{background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(16,185,129,.2) 50%,rgba(56,189,248,.18) 0,rgba(56,189,248,.18));box-shadow:inset 0 0 0 2px rgba(16,185,129,.35),inset 0 0 0 4px rgba(56,189,248,.26)}.square.move-hint:after{content:"";position:absolute;inset:12%;border-radius:6px;border:2px solid rgba(250,204,21,.95);box-shadow:0 0 14px rgba(250,204,21,.55);pointer-events:none;z-index:4;animation:moveHintPulse .76s ease forwards}.square.move-hint-from:after{opacity:.7}.square.move-hint-to:after{inset:9%}@keyframes moveHintPulse{0%{transform:scale(.88);opacity:0}22%{transform:scale(1.04);opacity:1}to{transform:scale(1);opacity:0}}.piece{width:85%;height:85%;background-size:contain;background-repeat:no-repeat;background-position:50%;cursor:grab;transition:transform .1s ease;touch-action:none;position:relative;z-index:2;backface-visibility:hidden;will-change:transform}.piece:active{cursor:grabbing}.piece.flipped{transform:rotate(180deg)}.piece.flipped.animate{transform:rotate(180deg) scale(1.1)}.piece.animate{transform:scale(1.1)}.piece.is-dragging-source{opacity:0}.drag-ghost,.move-ghost{position:fixed;margin:0;pointer-events:none;z-index:9999;will-change:transform;backface-visibility:hidden}.move-ghost{transition:transform .17s cubic-bezier(.18,.88,.32,1.12)}.drag-ghost{transform:translateZ(0)}.drag-ghost-piece,.move-ghost-piece{width:100%;height:100%;background-size:contain;background-repeat:no-repeat;background-position:50%}.square .hit{position:absolute;width:80%;height:80%;border-radius:10px;border:3px solid rgba(234,179,8,.95);box-shadow:0 0 12px rgba(234,179,8,.8);animation:hitPulse .38s ease-out forwards;pointer-events:none;z-index:3}@keyframes hitPulse{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:0}}.reviewing-moves{border:3px solid var(--color-warning)!important;box-shadow:0 0 20px rgba(245,158,11,.5)!important}.reviewing-moves:after{content:"REVIEWING MOVES - Use ← → arrows to navigate";position:absolute;top:-30px;left:50%;transform:translateX(-50%);background:rgba(245,158,11,.9);color:#fff;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:700;white-space:nowrap;z-index:10}.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);backdrop-filter:blur(4px)}.panel-chart{display:flex;flex-direction:column;gap:6px;padding:12px 14px;min-height:0;flex:1 1 0;overflow:hidden}.panel-goal{flex-shrink:0;padding:12px 14px}.panel-goal .panel-section-heading{gap:6px}.panel-goal .panel-section-heading h2{min-width:0}.panel-section-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);flex-shrink:0}.panel-section-heading h2{margin:0;color:var(--text-primary);font-size:.85rem;font-weight:600}.panel-count{color:var(--text-muted);font-size:.72rem;font-weight:700;line-height:1;white-space:nowrap}.panel-heading-actions{display:flex;align-items:center;gap:10px;min-width:0}.panel-stats-link{color:#c4b5fd;font-size:.7rem;font-weight:700;line-height:1;text-decoration:none;padding:5px 7px;border:1px solid rgba(167,139,250,.32);border-radius:var(--radius-sm);background:rgba(139,92,246,.1)}.panel-stats-link:hover{color:#f5f3ff;border-color:rgba(196,181,253,.58);background:rgba(139,92,246,.18)}.panel-history .panel-section-heading h2{font-size:.9rem}.panel-metric{color:var(--color-warning);font-weight:600;font-size:.75rem;white-space:nowrap}.panel-metric--accent{color:var(--color-error)}.panel-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;flex-shrink:0}.stat-tile{min-width:0;display:flex;flex-direction:column;gap:3px;padding:9px 8px;border:1px solid rgba(148,163,184,.16);border-radius:var(--radius-md);background:rgba(15,23,42,.46)}.stat-label{color:var(--text-muted);font-size:.64rem;font-weight:700;line-height:1;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:1.08rem;font-weight:800;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value--muted{color:var(--text-muted)}.chart-container{position:relative;flex:1 1 0;min-height:0;width:100%}.chart-container canvas{position:absolute;top:0;left:0;width:100%!important;height:100%!important}.panel-history{display:flex;flex-direction:column;gap:6px;padding:10px 14px;min-height:0;flex:0 0 80px;justify-content:center}.move-review-controls{display:none;align-items:center;gap:6px}.pgn-moves{font-family:var(--font-serif);font-size:.75rem;line-height:1.35;overflow-x:auto;white-space:nowrap;padding:.6vh 0;scrollbar-width:none}.pgn-moves::-webkit-scrollbar{display:none}@media (max-width:960px){.panel{backdrop-filter:none}.panel-chart{flex:none;height:clamp(190px,48vw,280px);padding:16px}.panel-goal{padding:14px 16px}.panel-stats{width:100%}.chart-container{flex:1 1 0;min-height:0}.panel-history{flex:none;height:clamp(120px,32vw,160px);padding:22px}.move-review-controls{display:flex}}@media (max-width:600px){.panel-chart,.panel-history{padding:16px}.panel-stats{gap:6px;padding:8px}.panel-goal .panel-section-heading h2{font-size:.8rem}.panel-goal .panel-count{font-size:.68rem}.stat-tile{padding:8px 7px}.stat-label{font-size:.54rem}.stat-value{font-size:.86rem}}.btn{background:linear-gradient(180deg,var(--color-brand),var(--color-brand-dark));color:#fff;border:0;padding:8px 12px;border-radius:var(--radius-md);font-weight:600;font-size:.8rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:filter .15s ease,transform .15s ease}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn-sm{padding:6px 14px;font-size:.7rem;border-radius:var(--radius-sm);min-width:76px;text-align:center;box-sizing:border-box}.btn-icon{width:34px;min-width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.btn-sm.btn-icon{width:28px;min-width:28px;height:28px}.review-button{width:30px;min-width:30px;height:30px;border:1px solid rgba(148,163,184,.16);background:rgba(15,23,42,.7);box-shadow:none}.review-icon{width:10px;height:10px;display:block;border-top:2px solid;border-right:2px solid}.review-icon-prev{transform:translateX(2px) rotate(-135deg)}.review-icon-next{transform:translateX(-2px) rotate(45deg)}.pill{display:inline-flex;align-items:center;gap:var(--space-sm);background:rgba(139,92,246,.12);color:var(--color-brand-light);padding:6px 10px;border-radius:var(--radius-full);border:1px solid rgba(139,92,246,.25)}@media (max-width:600px){.review-button{width:34px;min-width:34px;height:34px}}.board-shake{animation:boardShake var(--shake-duration,.4s) ease;will-change:transform}.board-flash-gray:after,.board-flash-green:after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;border:10px solid var(--board-flash-color);opacity:0;animation:boardFlash .3s ease;will-change:opacity}.board-flash-green:after{--board-flash-color:rgba(34,197,94,.8)}.board-flash-gray:after{--board-flash-color:hsla(220,9%,46%,.6)}@keyframes boardShake{0%,to{transform:translate(0) rotate(var(--board-rotation,0deg))}10%,30%,50%,70%,90%{transform:translate(calc(-1 * var(--shake-distance, 8px)),calc(-1 * var(--shake-y, 0px))) rotate(calc(var(--board-rotation, 0deg) - var(--shake-twist, 0deg)))}20%,40%,60%,80%{transform:translate(var(--shake-distance,8px),var(--shake-y,0)) rotate(calc(var(--board-rotation, 0deg) + var(--shake-twist, 0deg)))}}@keyframes boardFlash{0%,to{opacity:0}50%{opacity:1}}.accuracy-burst{position:fixed;left:var(--accuracy-burst-x,50vw);top:var(--accuracy-burst-y,50vh);z-index:10001;pointer-events:none;color:var(--accuracy-burst-color,var(--color-success));font-size:clamp(4rem,16vmin,8.5rem);font-weight:900;line-height:1;letter-spacing:0;text-shadow:0 2px 0 rgba(2,6,23,.4),0 18px 42px rgba(2,6,23,.5),0 0 22px var(--accuracy-burst-glow,rgba(34,197,94,.5));transform:translate(-50%,-50%) scale(.8);animation:accuracyBurst 1.12s cubic-bezier(.17,.88,.28,1.18) forwards;will-change:transform,opacity}@keyframes accuracyBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}74%{opacity:1;transform:translate(-50%,-52%) scale(1)}to{opacity:0;transform:translate(-50%,-62%) scale(.96)}}.confetti{position:fixed;top:-10px;z-index:9999;pointer-events:none;animation:confetti-fall 3s linear forwards}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0deg);opacity:1}to{transform:translateY(100vh) rotate(2turn);opacity:0}}.confetti-burst{position:fixed;z-index:10000;width:8px;height:8px;border-radius:1px;pointer-events:none;animation:confetti-burst-move .65s cubic-bezier(.2,.8,.2,1) forwards}@keyframes confetti-burst-move{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx,0),var(--dy,0)) rotate(1turn) scale(.9);opacity:0}}.shimmer-overlay{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;background:linear-gradient(110deg,rgba(234,179,8,0),rgba(234,179,8,.2) 40%,rgba(250,204,21,.35) 50%,rgba(234,179,8,.2) 60%,rgba(234,179,8,0));transform:translateX(-120%);animation:shimmerSweep .52s ease-out forwards}@keyframes shimmerSweep{to{transform:translateX(120%);opacity:0}}.completion-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:clamp(12px,3vmin,24px);pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .18s ease,transform .18s ease}.completion-overlay[hidden]{display:none}.completion-overlay.is-visible{pointer-events:auto;opacity:1;transform:translateY(0)}#board.reviewing-moves+.completion-overlay{pointer-events:none;opacity:0;transform:translateY(10px)}.completion-dock{width:min(92%,520px);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid rgba(226,232,240,.2);border-radius:14px;background:rgba(15,23,42,.78);box-shadow:0 22px 48px rgba(2,6,23,.36);backdrop-filter:blur(18px)}.completion-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.completion-kicker{color:#86efac;font-size:.7rem;font-weight:800;line-height:1;text-transform:uppercase}.completion-title{color:var(--text-primary);font-size:1rem;font-weight:800;line-height:1.1;white-space:nowrap}.completion-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.completion-review,.completion-signout{background:rgba(30,41,59,.94);border:1px solid rgba(148,163,184,.28);box-shadow:none}.completion-signout{color:#fecaca}.completion-signout:disabled{opacity:.62;cursor:default;transform:none}@media (max-width:600px){.completion-overlay{padding:10px}.completion-dock{width:100%;align-items:stretch;flex-direction:column;gap:10px;padding:11px}.completion-copy{align-items:center}.completion-actions{justify-content:center}.completion-actions .btn-sm{min-width:88px}}.auth-bar{position:fixed;top:16px;right:16px;display:flex;gap:var(--space-sm);z-index:20}.auth-chip{background:var(--bg-panel);color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-full);padding:6px 14px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.auth-chip:hover:not(:disabled){background:rgba(30,41,59,.95);border-color:rgba(148,163,184,.6)}.auth-chip:disabled{opacity:.6;cursor:default}.auth-chip--ghost{background:transparent;cursor:default}.auth-chip--primary{background:linear-gradient(135deg,#6366f1,#a855f7);border:none;color:var(--text-primary);box-shadow:0 10px 25px rgba(99,102,241,.45)}.auth-chip--primary:hover:not(:disabled){background:linear-gradient(135deg,#818cf8,#c084fc);box-shadow:0 12px 28px rgba(129,140,248,.55)}.auth-avatar-wrap{position:relative;display:flex}.auth-avatar-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-medium);background:radial-gradient(circle at 30% 30%,rgba(148,163,184,.25),rgba(30,41,59,.9));box-shadow:0 6px 16px rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;transition:transform .15s ease,border-color .2s ease}.auth-avatar-btn:hover{transform:translateY(-1px);border-color:rgba(148,163,184,.6)}.auth-avatar-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.auth-avatar-fallback{font-size:.65rem;font-weight:600;color:var(--text-primary)}.auth-modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:6vh 2vw;background:rgba(15,23,42,.55);backdrop-filter:blur(24px);z-index:9999}.auth-modal{position:relative;width:min(380px,90vw);background:linear-gradient(155deg,rgba(15,23,42,.9),rgba(30,41,59,.92));border:1px solid rgba(99,102,241,.2);box-shadow:0 30px 60px rgba(15,23,42,.7);border-radius:var(--radius-xl);padding:32px 30px;flex-direction:column;gap:18px;overflow:hidden}.auth-modal,.auth-modal-close{display:flex;align-items:center}.auth-modal-close{position:absolute;top:16px;right:18px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(148,163,184,.16);color:#e2e8f0;font-size:1.2rem;justify-content:center;cursor:pointer;transition:background .2s ease,transform .15s ease}.auth-modal-close:hover{background:rgba(148,163,184,.26);transform:translateY(-1px)}.auth-modal-avatar-shell{width:112px;height:112px;border-radius:32px;background:radial-gradient(circle at 30% 30%,rgba(129,140,248,.35),rgba(30,41,59,.85));display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(129,140,248,.35),0 18px 35px rgba(79,70,229,.25);overflow:hidden}.auth-modal-avatar{width:96px;height:96px;border-radius:24px;-o-object-fit:cover;object-fit:cover}.auth-modal-avatar--fallback{display:flex;align-items:center;justify-content:center;background:rgba(79,70,229,.25);color:#ede9fe;font-size:2.6rem;font-weight:700}.auth-modal-header{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.auth-modal-name{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.auth-modal-email{font-size:.85rem;color:rgba(148,163,184,.85)}.auth-modal-actions{width:100%;display:flex;flex-direction:column;gap:12px}.auth-modal-signout{width:100%;border:none;border-radius:16px;padding:14px;font-size:.95rem;font-weight:600;color:var(--text-primary);background:linear-gradient(140deg,var(--color-error),#f97316);box-shadow:0 18px 30px rgba(239,68,68,.35);cursor:pointer;transition:transform .15s ease,box-shadow .2s ease}.auth-modal-signout:hover{transform:translateY(-1px);box-shadow:0 22px 36px rgba(249,115,22,.4)}.stats-page{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:28px 0 56px;color:var(--text-secondary);caret-color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.stats-header{min-height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;border-bottom:1px solid var(--border-light)}.stats-back{width:-moz-max-content;width:max-content;min-height:38px;display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.78rem;font-weight:700;text-decoration:none;padding:8px 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:rgba(15,23,42,.7);box-sizing:border-box;cursor:pointer;touch-action:manipulation}.stats-back:hover{color:#fff;border-color:var(--border-medium)}.stats-back:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.stats-title-group{display:flex;align-items:baseline;justify-content:center;gap:10px}.stats-brand{color:#a78bfa;font-size:.67rem;font-weight:800;text-transform:uppercase}.stats-title-group h1{margin:0;color:var(--text-primary);font-size:1.35rem;font-weight:750}.stats-header-count{justify-self:end;color:var(--text-muted);font-size:.75rem;font-weight:700}.stats-metric-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:22px 0 26px}.stats-metric{min-width:0;min-height:86px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px;border:1px solid var(--border-subtle);border-top:2px solid #64748b;border-radius:var(--radius-md);background:rgba(15,23,42,.64)}.stats-metric--green{border-top-color:#22c55e}.stats-metric--violet{border-top-color:#a78bfa}.stats-metric--amber{border-top-color:#f59e0b}.stats-metric--blue{border-top-color:#38bdf8}.stats-metric--rose{border-top-color:#fb7185}.stats-feature-label,.stats-metric-label{color:var(--text-muted);font-size:.64rem;font-weight:750;text-transform:uppercase}.stats-metric strong{color:var(--text-primary);font-size:1.36rem;line-height:1;white-space:nowrap}.stats-metric-detail{color:#a8b3c5;font-size:.65rem;line-height:1.2}.stats-band,.stats-section{border-top:1px solid var(--border-light)}.stats-band{padding:24px 0 28px}.stats-section{min-width:0;padding:22px 0 28px}.stats-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}.stats-section-heading h2{margin:0;color:var(--text-primary);font-size:1rem;font-weight:750}.stats-section-heading>span{color:var(--text-muted);font-size:.7rem;font-weight:700;white-space:nowrap}.stats-chart-legend{display:flex;flex-wrap:wrap;gap:16px;margin:-4px 0 12px}.stats-legend-item{display:inline-flex;align-items:center;gap:6px;color:#a8b3c5;font-size:.67rem;font-weight:650}.stats-legend-swatch{width:18px;height:3px;border-radius:2px;background:#64748b}.legend-10{background:#22c55e}.legend-25{background:#a78bfa}.legend-adjusted{background:#f59e0b}.legend-elo{background:#fb7185}.legend-elo-range{height:6px;background:rgba(251,113,133,.24)}.legend-target{height:1px;background:#f87171}.stats-chart-wrap{width:100%}.stats-chart-frame{width:100%;display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:clamp(250px,24vw,320px) 26px;padding-top:8px;box-sizing:border-box}.stats-chart-y-axis{position:relative;grid-column:1;grid-row:1}.stats-chart-y-axis .stats-chart-label{position:absolute;right:10px;line-height:1;transform:translateY(-50%);white-space:nowrap}.stats-chart-plot{overflow:hidden;grid-row:1}.stats-chart-plot,.stats-chart-x-axis{position:relative;min-width:0;grid-column:2}.stats-chart-x-axis{grid-row:2}.stats-chart-x-label{position:absolute;top:9px;line-height:1;white-space:nowrap}.stats-chart-x-label--start{transform:none}.stats-chart-x-label--center{transform:translateX(-50%)}.stats-chart-x-label--end{transform:translateX(-100%)}.stats-progress-chart{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:hidden;pointer-events:none}.stats-chart-gridline{stroke:rgba(148,163,184,.14);stroke-width:1;vector-effect:non-scaling-stroke}.stats-chart-label{color:#7f8da3;fill:#7f8da3;font-family:var(--font-sans);font-size:10px}.stats-chart-band{fill:rgba(167,139,250,.09);stroke:none}.stats-chart-line{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.stats-chart-line--10{stroke:#22c55e;stroke-width:1.6;opacity:.88}.stats-chart-line--25{stroke:#a78bfa;stroke-width:2.4}.stats-chart-line--adjusted{stroke:#f59e0b;stroke-width:1.5;stroke-dasharray:5 4;opacity:.9}.stats-chart-target{stroke:#f87171;stroke-width:1;stroke-dasharray:4 5;vector-effect:non-scaling-stroke}.stats-elo-chart-band{fill:rgba(251,113,133,.12);stroke:none}.stats-elo-chart-line{fill:none;stroke:#fb7185;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.stats-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px}.forecast-layout{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(220px,1.3fr);align-items:center;gap:30px}.forecast-layout>div:first-child{display:flex;flex-direction:column;gap:6px}.stats-feature-value{color:#f8fafc;font-size:2.25rem;font-weight:800;line-height:1;white-space:nowrap}.stats-definition-list{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.stats-definition-list--wide{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-definition-list div{min-width:0;display:flex;flex-direction:column;gap:4px}.stats-definition-list dt{color:var(--text-muted);font-size:.66rem;font-weight:650}.stats-definition-list dd{margin:0;color:var(--text-primary);font-size:.9rem;font-weight:750;white-space:nowrap}.stats-definition-list div>span{color:#8997aa;font-size:.62rem}.stats-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:30px 44px}.stats-breakdown{min-width:0}.stats-breakdown--wide{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-subtle)}.stats-breakdown h3,.stats-data-table h3{margin:0 0 13px;color:#dbe4ef;font-size:.76rem;font-weight:750}.stats-breakdown-rows{display:flex;flex-direction:column;gap:10px}.stats-breakdown-row{display:grid;grid-template-columns:minmax(82px,.8fr) minmax(100px,1.4fr) 52px 58px;align-items:center;gap:10px;min-height:30px}.stats-breakdown-label{min-width:0;display:flex;flex-direction:column;gap:2px}.stats-breakdown-label span{overflow:hidden;color:#d6deea;font-size:.7rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.stats-breakdown-label small,.stats-inline-metric small{color:#728197;font-size:.58rem}.coverage-track,.stats-breakdown-track{position:relative;height:5px;overflow:hidden;border-radius:3px;background:rgba(148,163,184,.12)}.stats-breakdown-track span{display:block;height:100%;border-radius:inherit;background:#38bdf8}.stats-breakdown-row>strong{color:var(--text-primary);font-size:.7rem;text-align:right}.stats-exact-rate{color:#8997aa;font-size:.59rem;text-align:right;white-space:nowrap}.stats-inline-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:30px}.stats-inline-metric{min-width:0;display:flex;flex-direction:column;gap:5px;padding-left:12px;border-left:2px solid #334155}.stats-inline-metric>span{color:var(--text-muted);font-size:.64rem;font-weight:650}.stats-inline-metric strong{color:var(--text-primary);font-size:.92rem;white-space:nowrap}.stats-time-grid{gap:44px}.stats-data-table{min-width:0}.stats-table-header,.stats-table-row{display:grid;grid-template-columns:1fr .65fr .8fr;gap:12px;align-items:center;min-height:32px;border-bottom:1px solid rgba(148,163,184,.1)}.stats-table-header{min-height:26px;color:#718096;font-size:.58rem;font-weight:700;text-transform:uppercase}.stats-table-header span:not(:first-child),.stats-table-row span{text-align:right}.stats-table-row{color:#aab6c7;font-size:.68rem}.stats-table-row strong{color:#dce4ef;font-size:.7rem}.coverage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.coverage-metric{min-width:0;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.coverage-metric>div:first-child{min-width:0;display:flex;flex-direction:column;gap:4px;grid-column:1/-1}.coverage-metric span{color:var(--text-muted);font-size:.63rem;font-weight:650}.coverage-metric strong{overflow:hidden;color:var(--text-primary);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.coverage-track span{display:block;height:100%;border-radius:inherit;background:#22c55e}.coverage-metric small{color:#8997aa;font-size:.61rem}.stats-empty{min-height:90px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.72rem;border:1px dashed var(--border-light);border-radius:var(--radius-md)}@media (max-width:980px){.stats-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-split{gap:28px}.coverage-grid,.stats-definition-list--wide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:840px){.stats-breakdown-grid,.stats-goal-row{grid-template-columns:1fr}}@media (max-width:720px){.stats-page{width:min(100% - 24px,640px);padding-top:12px}.stats-header{grid-template-columns:auto 1fr auto}.stats-title-group{justify-content:flex-start}.stats-brand{display:none}.stats-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 0 22px}.stats-metric{min-height:76px}.stats-metric:first-child{min-height:78px;display:grid;grid-column:1/-1;grid-template-areas:"label value" "detail value";grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:center;-moz-column-gap:20px;column-gap:20px}.stats-metric:first-child .stats-metric-label{grid-area:label}.stats-metric:first-child strong{grid-area:value}.stats-metric:first-child .stats-metric-detail{grid-area:detail}.stats-breakdown-grid,.stats-split{grid-template-columns:1fr}.stats-chart-wrap{width:100vw;margin-left:calc(50% - 50vw)}.stats-chart-frame{grid-template-columns:36px minmax(0,1fr);grid-template-rows:clamp(220px,65vw,260px) 26px;padding:8px 4px 0 2px}.stats-chart-y-axis .stats-chart-label{right:6px}.stats-inline-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}}@media (max-width:460px){.stats-header-count{display:none}.stats-header{grid-template-columns:auto 1fr}.stats-back{padding:8px}.stats-metric strong{font-size:1.16rem}.stats-chart-legend{gap:10px}.forecast-layout{grid-template-columns:1fr;gap:20px}.stats-definition-list,.stats-definition-list--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-breakdown-row{grid-template-columns:minmax(76px,.8fr) minmax(70px,1fr) 48px}.stats-exact-rate{display:none}.coverage-grid,.stats-inline-metrics{grid-template-columns:1fr 1fr}}