@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@font-face{font-family:Trade Winds;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cacdd15e490d6ec9-s.p.372409c0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Trade Winds Fallback;src:local(Arial);ascent-override:87.03%;descent-override:40.05%;line-gap-override:0.0%;size-adjust:114.35%}.trade_winds_1c2cdcf3-module__Uc8y2G__className{font-family:Trade Winds,Trade Winds Fallback;font-style:normal;font-weight:400}.trade_winds_1c2cdcf3-module__Uc8y2G__variable{--font-trade-winds:"Trade Winds","Trade Winds Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:var(--font-trade-winds);--font-mono:var(--font-orbitron);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-trade-winds);--default-mono-font-family:var(--font-orbitron)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.contents{display:contents}.flex{display:flex}.table{display:table}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#0f0f0f;--foreground:#ededed;--primary:#4ade80;--primary-hover:#22c55e;--secondary:#3b82f6;--danger:#ef4444;--card-bg:#1a1a1a;--card-border:#2a2a2a}[data-theme=light]{--background:#f5f5f5;--foreground:#1a1a1a;--card-bg:#fff;--card-border:#e0e0e0}[data-theme=dark]{--background:#0f0f0f;--foreground:#ededed;--card-bg:#1a1a1a;--card-border:#2a2a2a}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans),Arial,Helvetica,sans-serif;min-height:100vh;margin:0}.app{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;justify-content:center;padding:1rem;display:flex}.navbar{background:var(--card-bg);border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.navbar-left{align-items:center;gap:2rem;display:flex}.navbar-brand{color:inherit;align-items:center;gap:.5rem;text-decoration:none;display:flex}.navbar-brand:hover{opacity:.9}.navbar-logo{font-size:1.5rem}.navbar-title{font-family:var(--font-trade-winds),sans-serif;letter-spacing:.05em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#4ade80,#3b82f6);-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.navbar-links{align-items:center;gap:.25rem;display:flex}.nav-link{color:#888;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{color:var(--foreground);background:var(--card-border)}.nav-link.play-link{color:var(--primary)}.navbar-actions{align-items:center;gap:.5rem;display:flex}.nav-btn{border:1px solid var(--card-border);color:var(--foreground);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .15s;display:flex}.nav-btn:hover{background:var(--card-border)}.nav-btn.new-game{background:var(--primary);border-color:var(--primary);color:#000}.nav-btn.new-game:hover{background:var(--primary-hover)}.nav-btn.language-toggle{gap:.25rem;padding:.5rem .75rem}.nav-btn.language-toggle .lang-code{min-width:1.5rem;font-size:.75rem;font-weight:700}.dashboard{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3rem;max-width:800px;padding:2rem;display:flex}.dashboard-hero{flex-direction:column;gap:1rem;display:flex}.dashboard-title{font-family:var(--font-trade-winds),sans-serif;letter-spacing:.05em;justify-content:center;align-items:center;gap:1rem;margin:0;font-size:4rem;display:flex}.chess-icon{font-size:3.5rem}.dashboard-subtitle{color:#888;margin:0;font-size:1.25rem}.dashboard-actions{gap:1rem;display:flex}.dashboard-btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 2rem;font-size:1.1rem;font-weight:600;transition:all .2s;display:flex}.dashboard-btn.primary{background:var(--primary);color:#000}.dashboard-btn.primary:hover{background:var(--primary-hover);transform:translateY(-2px)}.dashboard-features{gap:1.5rem;display:flex}.feature-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;align-items:center;gap:.5rem;min-width:140px;padding:1.5rem;display:flex}.feature-icon{font-size:2rem}.feature-card h3{margin:0;font-size:1rem}.feature-card p{color:#666;margin:0;font-size:.8rem}.modal-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out modal-overlay-in;display:flex;position:fixed;inset:0}.modal-overlay.closing{animation:.2s ease-in forwards modal-overlay-out}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-out{0%{opacity:1}to{opacity:0}}.modal-content{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;width:100%;max-width:620px;max-height:90vh;animation:.25s ease-out modal-content-in;overflow-y:auto}.modal-content.closing{animation:.2s ease-in forwards modal-content-out}@keyframes modal-content-in{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes modal-content-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.9)translateY(20px)}}.modal-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{color:var(--foreground);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.25rem}.modal-body{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.modal-footer{border-top:1px solid var(--card-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.btn-primary{background:var(--primary);color:#000;cursor:pointer;border:none;border-radius:8px;padding:.625rem 1.25rem;font-weight:600;transition:all .15s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--card-border);color:var(--foreground);cursor:pointer;background:0 0;border-radius:8px;padding:.625rem 1.25rem;font-weight:500;transition:all .15s}.btn-secondary:hover{background:var(--card-border)}.main-container{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.mode-selection{flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:500px;display:flex}.mode-title{font-family:var(--font-trade-winds),sans-serif;letter-spacing:.05em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#4ade80,#3b82f6);-webkit-background-clip:text;background-clip:text;margin:0;font-size:3rem;font-weight:700}.mode-subtitle{color:#888;margin:-1rem 0 0;font-size:1.1rem}.mode-buttons{gap:1rem;width:100%;display:flex}.mode-button{background:var(--card-bg);border:2px solid var(--card-border);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:.5rem;padding:1.5rem;transition:all .2s;display:flex}.mode-button:hover{background:#222;border-color:#444}.mode-button.selected{border-color:var(--primary);background:#4ade801a}.mode-icon{font-size:2.5rem}.mode-label{color:var(--foreground);font-size:1.2rem;font-weight:600}.mode-desc{color:#666;font-size:.85rem}.ai-settings{flex-direction:column;gap:1.5rem;width:100%;display:flex}.setting-label{color:#888;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:500}.difficulty-options{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.difficulty-btn{background:var(--card-bg);border:2px solid var(--card-border);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;transition:all .2s;display:flex}.difficulty-btn:hover{border-color:#444}.difficulty-btn.selected{border-color:var(--secondary);background:#3b82f61a}.difficulty-name{color:var(--foreground);font-size:.9rem;font-weight:600}.difficulty-time{color:#666;font-size:.7rem}.color-options{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.color-btn{background:var(--card-bg);border:2px solid var(--card-border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.75rem;padding:1rem;transition:all .2s;display:flex}.color-btn:hover{border-color:#444}.color-btn.selected{border-color:var(--primary);background:#4ade801a}.color-piece{font-size:2rem}.color-name{color:var(--foreground);font-size:1rem;font-weight:600}.start-button{color:#000;background:var(--primary);cursor:pointer;border:none;border-radius:8px;width:100%;padding:1rem;font-size:1.1rem;font-weight:600;transition:all .2s}.start-button:hover:not(:disabled){background:var(--primary-hover)}.start-button:disabled{opacity:.5;cursor:not-allowed}.chess-game{grid-template-columns:220px 1fr 320px;align-items:center;gap:1rem;width:100%;max-width:1300px;height:calc(100vh - 60px);padding:.5rem 1rem;display:grid}.game-left{flex-direction:column;justify-content:center;display:flex}.right-panel{flex-direction:column;gap:.75rem;height:100%;max-height:calc(100vh - 80px);display:flex;overflow:hidden}.move-history{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;flex:0 0 35%;min-height:200px;display:flex;overflow:hidden}.history-header{border-bottom:1px solid var(--card-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem;display:flex}.history-header h3{margin:0;font-size:1rem}.history-empty{color:#888;flex:1;justify-content:center;align-items:center;display:flex}.ai-chat-box{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ai-chat-box.collapsed{flex:none;min-height:auto}.chat-header{border-bottom:1px solid var(--card-border);cursor:pointer;background:var(--card-bg);justify-content:space-between;align-items:center;padding:1rem;display:flex}.chat-header:hover{background:#ffffff08}.chat-title{align-items:center;gap:.5rem;font-weight:600;display:flex}.chat-input-container{border-top:1px solid var(--card-border);background:var(--card-bg);gap:.5rem;padding:1rem;display:flex}.chat-input{border:1px solid var(--card-border);color:var(--foreground);background:#0003;border-radius:8px;flex:1;padding:.75rem}.chat-input:focus{outline:2px solid var(--primary);border-color:#0000}.chat-send-btn{background:var(--primary);color:#000;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.75rem;transition:opacity .2s;display:flex}.chat-message{border-radius:8px;padding:.75rem;font-size:.9rem;line-height:1.5}.chat-message.user{background:#3b82f61a;border:1px solid #3b82f633;margin-left:1rem}.chat-message.assistant{background:#4ade800d;border:1px solid #4ade801a;margin-right:1rem}.board-section{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.board-wrapper{border-radius:4px;position:relative;box-shadow:0 0 0 4px #ffffff1a,0 12px 48px #00000080}.stockfish-error{background:var(--danger);color:#fff;white-space:nowrap;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;position:absolute;top:-50px;left:50%;transform:translate(-50%)}.promotion-modal{z-index:100;background:#000000b3;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.promotion-content{background:var(--card-bg);text-align:center;border-radius:12px;padding:1.5rem}.promotion-content p{margin:0 0 1rem;font-weight:500}.promotion-pieces{gap:.5rem;display:flex}.promotion-piece{background:var(--card-border);cursor:pointer;border:none;border-radius:8px;width:60px;height:60px;font-size:2.5rem;transition:all .2s}.promotion-piece:hover{background:#444;transform:scale(1.1)}.game-controls{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;gap:.75rem;width:100%;padding:.75rem;display:flex}.game-status{align-items:center;gap:.75rem;display:flex}.turn-indicator{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.5rem;display:flex}.turn-indicator.white{color:#000;background:#ebecd0}.turn-indicator.black{color:#000;background:#779556}.status-info{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.status-text{font-size:.9rem;font-weight:600;line-height:1.3}.status-text.check{color:#fbbf24}.status-text.game-over{color:var(--primary)}.thinking-indicator,.analyzing-indicator{color:var(--secondary);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.thinking-dots span{animation:1.4s infinite blink}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}.control-buttons{flex-direction:column;gap:.5rem;display:flex}.control-btn{border:1px solid var(--card-border);color:var(--foreground);cursor:pointer;background:#ffffff0d;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem .75rem;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.control-btn:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn .btn-icon{font-size:1rem}.new-game-btn{background:var(--primary);border-color:var(--primary)}.new-game-btn:hover:not(:disabled){color:#000;background:#2563eb}.resign-btn:hover:not(:disabled){background:var(--danger)}@media (max-width:560px){.main-container{padding:1rem}.mode-buttons{flex-direction:column}.difficulty-options{grid-template-columns:repeat(2,1fr)}.game-controls{width:100%}}.settings-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;width:90%;max-width:400px;max-height:90vh;overflow-y:auto}.settings-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.settings-header h2{margin:0;font-size:1.25rem}.settings-close{color:var(--foreground);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1}.settings-content{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.settings-section h3{text-transform:uppercase;letter-spacing:.05em;color:#888;margin:0 0 1rem;font-size:.9rem}.settings-toggle{cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.settings-toggle input{display:none}.toggle-slider{background:var(--card-border);border-radius:12px;width:44px;height:24px;transition:all .2s;position:relative}.toggle-slider:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:3px;left:3px}.settings-toggle input:checked+.toggle-slider{background:var(--primary)}.settings-toggle input:checked+.toggle-slider:after{left:23px}.settings-toggle input:disabled+.toggle-slider{opacity:.5}.settings-slider{flex-direction:column;gap:.5rem;padding:.75rem 0;display:flex}.settings-slider input[type=range]{width:100%;accent-color:var(--primary)}.slider-labels{color:#666;justify-content:space-between;font-size:.75rem;display:flex}.settings-info h4{margin:0 0 .75rem;font-size:.9rem;font-weight:500}.rating-legend{grid-template-columns:repeat(2,1fr);gap:.5rem;font-size:.85rem;display:grid}.rating-item{padding:.25rem 0}.move-rating-badge{border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;font-weight:600;display:inline-flex}.move-rating-badge.brilliant{color:#00bcd4;background:#00bcd433}.move-rating-badge.great{color:#4caf50;background:#4caf5033}.move-rating-badge.good{color:#8bc34a;background:#8bc34a33}.move-rating-badge.inaccuracy{color:#ffc107;background:#ffc10733}.move-rating-badge.mistake{color:#ff9800;background:#ff980033}.move-rating-badge.blunder{color:#f44336;background:#f4433633}.settings-btn{color:#666;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem;font-size:1.25rem;transition:all .2s}.settings-btn:hover{background:var(--card-border);color:var(--foreground)}.analyzing-indicator{color:var(--secondary);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.move-history{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;align-self:center;width:100%;height:calc(100vh - 120px);min-height:350px;max-height:700px;display:flex;overflow:hidden}.history-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.history-header h3{margin:0;font-size:1rem;font-weight:600}.move-count{color:#666;font-size:.75rem}.history-empty{text-align:center;color:#666;padding:2rem 1rem}.history-empty p{margin:.25rem 0}.history-hint{opacity:.7;font-size:.8rem}.history-list{flex:1;padding:.5rem .5rem .5rem .75rem;overflow-y:auto}.move-pair{align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.move-number{color:#666;text-align:right;flex-shrink:0;width:24px;font-size:.75rem}.move-entry{cursor:pointer;border-radius:6px;flex:1;align-items:center;gap:.25rem;min-width:0;padding:.25rem .5rem;transition:background .15s;display:flex}.move-entry:hover{background:var(--card-border)}.move-entry.white{background:#ffffff0d}.move-entry.black{background:#0003}.move-piece{font-size:1.1rem;line-height:1}.move-notation{font-size:.8rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.move-rating{font-size:.75rem;font-weight:600}.move-rating.brilliant{color:#00bcd4}.move-rating.great{color:#4caf50}.move-rating.good{color:#8bc34a}.move-rating.inaccuracy{color:#ffc107}.move-rating.mistake{color:#ff9800}.move-rating.blunder{color:#f44336}@media (max-width:1000px){.chess-game{flex-direction:column;align-items:center;gap:1rem;height:auto;display:flex}.game-left{order:2;width:100%;max-width:480px;height:auto;max-height:none}.board-section{order:1}.move-history{order:3;width:100%;max-width:480px;max-height:250px}.game-controls{flex-flow:wrap}.game-status{width:100%}.control-buttons{flex-direction:row;width:100%}.control-btn{flex:1}}.time-control-options{flex-wrap:wrap;gap:.5rem;display:flex}.time-btn{background:var(--card-border);color:var(--foreground);cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.5rem .75rem;font-size:.8rem;transition:all .15s}.time-btn:hover{background:#444}.time-btn.selected{background:var(--secondary);color:#fff;border-color:var(--secondary)}.player-timer{background:var(--card-bg);border:2px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:.5rem 1rem;transition:all .2s;display:flex}.player-timer.top{margin-bottom:.5rem}.player-timer.bottom{margin-top:.5rem}.player-timer.active{border-color:var(--primary);background:#4caf501a}.player-timer.expired{border-color:var(--danger);background:#f4433633}.player-timer.white-player{background:linear-gradient(135deg,#ebecd026 0%,#ebecd00d 100%)}.player-timer.black-player{background:linear-gradient(135deg,#76965626 0%,#7696560d 100%)}.player-info{align-items:center;gap:.5rem;display:flex}.player-piece{font-size:1.5rem}.player-name{color:var(--foreground);font-size:.9rem;font-weight:600}.player-time{font-size:1.5rem;font-weight:700;font-family:var(--font-mono);color:var(--foreground);text-align:center;background:#0000004d;border-radius:6px;min-width:80px;padding:.25rem .75rem}.player-timer.active .player-time{background:var(--primary);color:#fff}.player-timer.low .player-time{color:#ff9800}.player-timer.critical .player-time{background:var(--danger);color:#fff;animation:.5s infinite pulse-time}@keyframes pulse-time{0%,to{opacity:1}50%{opacity:.7}}.confirm-modal{max-width:400px}.confirm-message{color:#aaa;margin:0;font-size:1rem;line-height:1.5}.btn-danger{color:#fff;background:var(--danger);cursor:pointer;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s}.btn-danger:hover{background:#d32f2f}.modal-overlay{animation:.2s ease-out fadeIn}.modal-content{animation:.3s ease-out slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.control-btn,.nav-btn,.mode-button,.dashboard-btn{transition:all .2s}.control-btn:hover:not(:disabled),.nav-btn:hover,.dashboard-btn:hover{transform:translateY(-2px)}.control-btn:active:not(:disabled),.nav-btn:active,.dashboard-btn:active{transform:translateY(0)}.feature-card{transition:all .3s}.feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0003}.move-rating-badge{animation:.3s ease-out badgePop}@keyframes badgePop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.player-timer.active{animation:2s ease-in-out infinite timerPulse}@keyframes timerPulse{0%,to{box-shadow:0 0 #4caf5066}50%{box-shadow:0 0 0 4px #4caf5033}}.control-btn svg,.nav-btn svg,.mode-button svg{transition:transform .2s}.control-btn:hover:not(:disabled) svg{transform:scale(1.1)}.new-game-btn:hover:not(:disabled) svg{animation:.5s ease-in-out spin}@keyframes spin{to{transform:rotate(360deg)}}.nav-btn{align-items:center;gap:.5rem;display:flex}.nav-btn.settings{padding:.5rem}.game-over-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000d9;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:absolute;inset:0}.game-over-content{text-align:center;background:var(--card-bg);border:2px solid var(--card-border);border-radius:16px;flex-direction:column;align-items:center;padding:2rem 3rem;animation:.4s ease-out slideUp;display:flex}.game-over-content.victory{border-color:gold;box-shadow:0 0 40px #ffd7004d}.game-over-content.victory .game-over-icon{color:gold}.game-over-content.defeat{border-color:#f44336}.game-over-content.defeat .game-over-icon{color:#f44336}.game-over-content.draw{border-color:#9e9e9e}.game-over-content.draw .game-over-icon{color:#9e9e9e}.game-over-content.neutral .game-over-icon{color:var(--primary)}.game-over-icon{margin-bottom:1rem;animation:.5s ease-out .2s both iconPop}@keyframes iconPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.game-over-title{color:var(--foreground);margin:0 0 .5rem;font-size:1.75rem;font-weight:700}.game-over-subtitle{color:#888;margin:0 0 1.5rem;font-size:1rem}.game-over-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.game-over-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.game-over-btn.primary{background:var(--primary);color:#000}.game-over-btn.primary:hover{background:var(--primary-hover);transform:translateY(-2px)}.game-over-btn.secondary{background:var(--card-border);color:var(--foreground)}.game-over-btn.secondary:hover{background:#444;transform:translateY(-2px)}.game-over-btn.tertiary{color:#888;border:1px solid var(--card-border);background:0 0}.game-over-btn.tertiary:hover{background:var(--card-border);color:var(--foreground)}.about-page{max-width:900px;margin:0 auto;padding:3rem 2rem}.about-hero{text-align:center;border:1px solid var(--card-border);background:linear-gradient(135deg,#4ade801a 0%,#3b82f61a 100%);border-radius:24px;margin-bottom:4rem;padding:3rem 2rem}.about-hero h1{background:linear-gradient(135deg,var(--primary)0%,var(--secondary)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1rem;font-size:3rem;font-weight:800}.about-subtitle{color:#888;margin:0;font-size:1.25rem}.about-section{margin-bottom:3rem}.about-section h2{color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:0 0 1.5rem;font-size:1rem;font-weight:600}.feature-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}@media (max-width:640px){.feature-grid{grid-template-columns:1fr}}.about-feature{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;align-items:flex-start;gap:1rem;padding:1.5rem;transition:all .2s;display:flex}.about-feature:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.about-feature svg{color:var(--primary);background:#4ade801a;border-radius:12px;flex-shrink:0;padding:.75rem}.about-feature-text{flex-direction:column;gap:.25rem;display:flex}.about-feature h3{margin:0;font-size:1.1rem;font-weight:600}.about-feature p{color:#888;margin:0;font-size:.9rem;line-height:1.5}.tech-stack{flex-direction:column;gap:.75rem;display:flex}.tech-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;align-items:center;gap:1rem;padding:1rem;display:flex}.tech-item svg{color:var(--secondary)}.tech-item div{flex-direction:column;display:flex}.tech-item strong{font-size:.95rem}.tech-item span{color:#888;font-size:.8rem}.about-section.credits{text-align:center;border-top:1px solid var(--card-border);padding-top:2rem}.about-section.credits p{color:#888;justify-content:center;align-items:center;gap:.5rem;margin:0 0 1rem;display:flex}.heart-icon{color:#f44336}.github-link{color:var(--foreground);border:1px solid var(--card-border);border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:all .15s;display:inline-flex}.github-link:hover{background:var(--card-border)}.player-bar{background:var(--card-bg);border:2px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:.75rem 1rem;transition:all .2s;display:flex}.player-bar.active{border-color:var(--primary);background:#4caf5014}.player-bar.white{background:linear-gradient(135deg,#ebecd01a 0%,#ebecd008 100%)}.player-bar.black{background:linear-gradient(135deg,#7696561a 0%,#76965608 100%)}.player-bar-left{align-items:center;gap:.75rem;display:flex}.player-avatar{border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.5rem;display:flex}.player-avatar.w{background:#ebecd0}.player-avatar.b{background:#769656}.player-info{flex-direction:column;gap:.125rem;display:flex}.player-name{font-size:.95rem;font-weight:600}.captured-pieces{opacity:.8;gap:.125rem;font-size:.85rem;display:flex}.captured-piece{font-size:.9rem}.player-bar-timer{font-size:1.5rem;font-weight:700;font-family:var(--font-mono);text-align:center;background:#0000004d;border-radius:6px;min-width:80px;padding:.25rem .75rem}.player-bar.active .player-bar-timer{background:var(--primary);color:#000}.player-bar-timer.low{color:#ff9800}.player-bar-timer.critical{background:var(--danger);color:#fff;animation:.5s infinite pulse-time}.player-bar-timer.expired{background:var(--danger);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--card-bg);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:4px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#555}[data-theme=light] ::-webkit-scrollbar-thumb{background:#ccc}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#aaa}[data-theme=light] ::-webkit-scrollbar-track{background:#f0f0f0}*{scrollbar-width:thin;scrollbar-color:var(--card-border)var(--card-bg)}[data-theme=light] *{scrollbar-color:#ccc #f0f0f0}.move-history{scrollbar-width:thin}.move-history::-webkit-scrollbar{width:6px}.move-history::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.move-history::-webkit-scrollbar-thumb:hover{background:#ffffff4d}[data-theme=light] .move-history::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] .move-history::-webkit-scrollbar-thumb:hover{background:#00000040}.footer{background:var(--card-bg);border-top:1px solid var(--card-border);margin-top:auto;padding:.5rem 2rem}.footer-content{justify-content:space-between;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;display:flex}.footer-brand{align-items:center;gap:.5rem;font-weight:600;display:flex}.footer-logo{font-size:1.25rem}.footer-title{color:var(--foreground);font-size:.9rem}.footer-credits{color:#888;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.footer-credits .heart-icon{color:#ef4444;animation:1.5s infinite pulse-heart}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.footer-author{color:var(--primary);font-weight:600;text-decoration:none;transition:opacity .15s}.footer-author:hover{opacity:.8}.footer-links{gap:.75rem;display:flex}.footer-link{color:#888;background:var(--background);border:1px solid var(--card-border);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.footer-link:hover{color:var(--primary);border-color:var(--primary)}@media (max-width:640px){.footer-content{text-align:center;flex-direction:column}}.loading-page{background:var(--background);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.loading-chess-icon{align-items:center;gap:.5rem;display:flex}.loading-chess-icon .chess-piece{font-size:3.5rem;animation:1.2s ease-in-out infinite chess-bounce}.loading-chess-icon .chess-piece.white{animation-delay:0s}.loading-chess-icon .chess-piece.black{animation-delay:.2s}@keyframes chess-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.loading-text{flex-direction:column;align-items:center;gap:.25rem;display:flex}.loading-title{font-family:var(--font-trade-winds),sans-serif;letter-spacing:.08em;background:linear-gradient(135deg,var(--primary)0%,var(--secondary)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.7rem;font-weight:700}.loading-author{color:#888;font-size:.85rem}.loading-spinner{gap:.4rem;display:flex}.spinner-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both dot-bounce}.spinner-dot:first-child{animation-delay:0s}.spinner-dot:nth-child(2){animation-delay:.16s}.spinner-dot:nth-child(3){animation-delay:.32s}@keyframes dot-bounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.page-fade-in{animation:.4s ease-out page-fade-in}@keyframes page-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-box{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;transition:all .3s;display:flex;overflow:hidden}.ai-chat-box.collapsed{height:auto}.ai-chat-box.expanded{height:400px;max-height:50vh}.chat-header{border-bottom:1px solid var(--card-border);cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#4ade801a 0%,#3b82f61a 100%);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.chat-title{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.sparkle-icon{color:var(--primary)}.chat-header-actions{align-items:center;gap:.5rem;display:flex}.chat-action-btn{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;transition:all .15s}.chat-action-btn:hover{color:var(--foreground);background:#ffffff1a}.chat-messages{flex-direction:column;flex:1;gap:.5rem;padding:.75rem;display:flex;overflow-y:auto}.chat-setup-prompt,.chat-empty{color:#888;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:1rem;display:flex}.chat-setup-prompt p,.chat-empty p{margin:0;font-size:.85rem}.btn-primary-small{background:var(--primary);color:#000;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.8rem;font-weight:600}.chat-message{border-radius:12px;max-width:85%;padding:.5rem .75rem;font-size:.85rem;line-height:1.4}.chat-message.user{background:var(--primary);color:#000;border-bottom-right-radius:4px;align-self:flex-end}.chat-message.assistant{background:var(--card-border);color:var(--foreground);border-bottom-left-radius:4px;align-self:flex-start}.chat-message.thinking{color:#888;align-items:center;gap:.5rem;font-style:italic;display:flex}.message-content{white-space:pre-wrap;word-break:break-word}.message-time{color:#00000080;text-align:right;margin-top:.25rem;font-size:.65rem}.chat-message.assistant .message-time{color:#666}.chat-error{color:#ef4444;text-align:center;background:#ef44441a;border-radius:6px;padding:.5rem;font-size:.8rem}.quick-prompts{border-top:1px solid var(--card-border);gap:.5rem;padding:.5rem .75rem;display:flex;overflow-x:auto}.quick-prompt-btn{background:var(--background);border:1px solid var(--card-border);color:var(--foreground);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:.25rem;padding:.35rem .6rem;font-size:.7rem;transition:all .15s;display:flex}.quick-prompt-btn:hover:not(:disabled){border-color:var(--primary);background:#4ade801a}.quick-prompt-btn:disabled{opacity:.5;cursor:not-allowed}.chat-input-container{border-top:1px solid var(--card-border);gap:.5rem;padding:.75rem;display:flex}.chat-input{background:var(--background);border:1px solid var(--card-border);color:var(--foreground);border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.85rem}.chat-input:focus{border-color:var(--primary);outline:none}.chat-input:disabled{opacity:.5}.chat-send-btn{background:var(--primary);color:#000;cursor:pointer;border:none;border-radius:8px;padding:.5rem;transition:all .15s}.chat-send-btn:hover:not(:disabled){background:var(--primary-hover)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.api-key-modal{max-width:400px}.setting-group{flex-direction:column;gap:.5rem;display:flex}.setting-group label{color:#888;font-size:.9rem;font-weight:500}.model-select{background:var(--background);border:1px solid var(--card-border);color:var(--foreground);cursor:pointer;border-radius:8px;padding:.75rem;font-size:.9rem}.model-select:focus{border-color:var(--primary);outline:none}.api-key-input{background:var(--background);border:1px solid var(--card-border);color:var(--foreground);border-radius:8px;padding:.75rem;font-family:monospace;font-size:.9rem}.api-key-input:focus{border-color:var(--primary);outline:none}.key-status{border:1px solid var(--primary);background:#4ade801a;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem;display:flex}.key-configured{color:var(--primary);align-items:center;gap:.5rem;font-weight:500;display:flex}.btn-danger-small{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.25rem;padding:.4rem .75rem;font-size:.75rem;transition:all .15s;display:flex}.btn-danger-small:hover{background:var(--danger);color:#fff}.get-key-link{color:var(--secondary);align-items:center;gap:.5rem;font-size:.85rem;text-decoration:none;display:flex}.get-key-link:hover{text-decoration:underline}.test-result{text-align:center;border-radius:6px;padding:.5rem;font-size:.85rem;font-weight:500}.test-result.success{color:var(--primary);background:#4ade801a}.test-result.error{color:var(--danger);background:#ef44441a}.spin{animation:1s linear infinite spin}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
