html,body{color:#f3ecd9;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0c22;width:100vw;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInDown{0%{transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideInTop{0%{transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes expandIn{0%{transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes rotate{0%{opacity:1;transform:rotate(0)}to{opacity:1;transform:rotate(-360deg)}}:root{--bg-deep:#0a0c22;--bg-mid:#1a1138;--bg-up:#2a1457;--accent:#b587ff;--accent-2:#ffd166;--accent-fire:#ff6a3d;--accent-portal:#4ad7ff;--sq-light:#efddb7;--sq-dark:#6c3f20;--sq-light-hover:#fff2cf;--sq-dark-hover:#8a5230;--text-bright:#f3ecd9;--text-dim:#a9a1c0;--card-bg:#20183cb8;--card-border:#ffffff14}*{box-sizing:border-box}.chess2-root{width:100vw;min-height:100vh;color:var(--text-bright);padding:2rem 2.5rem 3rem;font-family:Inter,system-ui,-apple-system,sans-serif;position:relative;overflow-x:hidden}.chess2-bg{z-index:-1;background:radial-gradient(ellipse at 15% 10%, #b587ff59, transparent 55%), radial-gradient(ellipse at 85% 90%, #ff6a3d38, transparent 55%), radial-gradient(ellipse at 50% 50%, #4ad7ff1a, transparent 60%), linear-gradient(160deg, var(--bg-deep) 0%, var(--bg-mid) 50%, #140a2e 100%);position:fixed;inset:0}.chess2-bg:after{content:"";opacity:.35;pointer-events:none;background-image:radial-gradient(#ffffff0f 1px,#0000 1px);background-size:3px 3px;position:absolute;inset:0}.chess2-header{text-align:center;margin-bottom:1.4rem}.chess2-title{letter-spacing:.06em;background:linear-gradient(100deg, #fff 0%, var(--accent) 40%, var(--accent-2) 80%);color:#0000;-webkit-background-clip:text;background-clip:text;align-items:center;gap:.6rem;margin:0;font-family:Cinzel,serif;font-size:clamp(2rem,3.6vw,3.2rem);font-weight:900;display:inline-flex}.chess2-crown{color:#fff;-webkit-text-fill-color:#fff;filter:drop-shadow(0 0 6px #ffffff80);font-size:.9em}.chess2-flame{-webkit-text-fill-color:initial;filter:drop-shadow(0 0 10px #ff6a3d99);font-size:.9em}.chess2-two{-webkit-text-fill-color:var(--accent-2);color:var(--accent-2)}.chess2-tag{color:var(--text-dim);margin:.3rem 0 0;font-size:1rem}.chess2-main{grid-template-columns:minmax(auto,720px) minmax(300px,380px);justify-content:center;align-items:start;gap:1.8rem;max-width:1200px;margin:0 auto;display:grid}@media (width<=1024px){.chess2-main{grid-template-columns:1fr}}.chess2-board-wrap{flex-direction:column;align-items:center;gap:.8rem;display:flex}.chess2-turn{letter-spacing:.05em;text-transform:uppercase;background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:.6rem;padding:.4rem 1rem;font-size:.78rem;font-weight:600;display:inline-flex}.chess2-turn-dot{background:#fff;border-radius:50%;width:.6rem;height:.6rem;animation:2s ease-in-out infinite pulse;box-shadow:0 0 10px #fffc}.chess2-turn-black .chess2-turn-dot{background:#111;box-shadow:0 0 10px #0009,0 0 0 2px #ffffff4d}@keyframes pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.chess2-board{background:linear-gradient(145deg,#3b2a1a,#1a0f08);border-radius:14px;padding:14px;display:inline-block;box-shadow:0 20px 60px #0000008c,0 0 0 1px #ffd1661a,inset 0 0 0 2px #ffd16624}.chess2-row{display:flex}.chess2-sq{cursor:pointer;width:clamp(44px,7.2vw,76px);height:clamp(44px,7.2vw,76px);font:inherit;border:0;justify-content:center;align-items:center;padding:0;transition:filter .15s,transform 80ms;display:flex;position:relative}.chess2-sq-light{background:var(--sq-light)}.chess2-sq-dark{background:var(--sq-dark)}.chess2-sq-light:hover{background:var(--sq-light-hover)}.chess2-sq-dark:hover{background:var(--sq-dark-hover)}.chess2-sq-selected{box-shadow:inset 0 0 0 4px #ffd166,inset 0 0 24px #ffd16666}.chess2-sq-target:before{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:6px}.chess2-sq-capture:before{background:0 0;border:3px solid #ff4646bf;border-radius:50%;inset:2px;box-shadow:0 0 14px #ff464666}.chess2-sq-fire:after{content:"";pointer-events:none;border:3px dashed #ff6a3dbf;border-radius:10px;animation:1.1s ease-in-out infinite flicker;position:absolute;inset:2px}.chess2-sq-port-target:after{content:"";pointer-events:none;border:2px dashed #4ad7ffcc;border-radius:50%;animation:6s linear infinite spin;position:absolute;inset:4px}.chess2-sq-side:after{content:"";pointer-events:none;border:2px dashed #ffd166bf;border-radius:6px;position:absolute;inset:4px}@keyframes flicker{0%,to{opacity:.9}50%{opacity:.4}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chess2-sq-portal{background:linear-gradient(135deg, color-mix(in srgb, var(--sq-light) 55%, var(--accent-portal) 45%), color-mix(in srgb, var(--sq-dark) 50%, var(--accent-portal) 50%));animation:3s ease-in-out infinite portalGlow;box-shadow:inset 0 0 20px #4ad7ff80}@keyframes portalGlow{0%,to{filter:brightness()}50%{filter:brightness(1.2)}}.chess2-portal-glyph{color:#ffffffbf;text-shadow:0 0 6px #4ad7ffcc;pointer-events:none;font-size:.78rem;position:absolute;top:4px;left:4px}.chess2-rank-label,.chess2-file-label{color:#0000008c;pointer-events:none;text-transform:lowercase;font-size:.65rem;font-weight:700;position:absolute}.chess2-sq-dark .chess2-rank-label,.chess2-sq-dark .chess2-file-label{color:#ffffffbf}.chess2-rank-label{top:3px;left:4px}.chess2-file-label{bottom:3px;right:5px}.chess2-piece{pointer-events:none;justify-content:center;align-items:center;width:72%;height:72%;font-size:clamp(32px,5.4vw,56px);line-height:1;transition:transform .15s;display:inline-flex;position:relative}.chess2-sq:hover .chess2-piece{transform:translateY(-2px)}.chess2-piece-white .glyph{color:#faf2d7;text-shadow:0 0 3px #000000e6,1px 1px #2b1a0a,-1px -1px #2b1a0a,1px -1px #2b1a0a,-1px 1px #2b1a0a,0 4px 10px #00000073}.chess2-piece-black .glyph{color:#16111a;text-shadow:0 0 2px #ffffff4d,0 4px 10px #0009}.piece-svg{filter:drop-shadow(0 3px 6px #00000080);width:100%;height:100%}.chess2-dot{background:radial-gradient(circle at 30% 30%,#fffffff2,#64e6968c);border-radius:50%;width:22%;height:22%;box-shadow:0 0 12px #78f0a08c}.chess2-fire{filter:drop-shadow(0 0 10px #ff6a3de6);pointer-events:none;font-size:2rem;animation:1.2s ease-in-out infinite wiggle}.chess2-side-arrow{color:#ffd166e6;text-shadow:0 0 10px #ffd16699;pointer-events:none;font-size:1.4rem}@keyframes wiggle{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-3px)rotate(4deg)}}.chess2-side{flex-direction:column;gap:1rem;display:flex}.chess2-card{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;padding:1rem 1.1rem;box-shadow:0 10px 30px #00000059}.chess2-card-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.chess2-card-head h3{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);margin:0;font-family:Cinzel,serif;font-size:.95rem}.chess2-count{color:var(--text-dim);background:#ffffff14;border-radius:999px;padding:2px 8px;font-size:.75rem}.chess2-chip{font:inherit;color:var(--text-bright);cursor:pointer;background:#ffffff14;border:1px solid #ffffff14;border-radius:999px;padding:2px 10px;font-size:.72rem}.chess2-captured-row{justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem 0;display:flex}.chess2-captured-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.chess2-captured-pieces{flex-wrap:wrap;flex:1;justify-content:flex-end;gap:2px;display:flex}.chess2-captured-piece{justify-content:center;align-items:center;width:22px;height:22px;font-size:20px;line-height:1;display:inline-flex}.chess2-captured-piece .glyph{font-size:1.1rem}.chess2-captured-piece .piece-svg{width:22px;height:22px}.chess2-captured em{color:var(--text-dim);font-size:.8rem}.chess2-history{max-height:240px;margin:0;padding:0;font-family:Fira Code,Courier New,monospace;font-size:.85rem;list-style:none;overflow-y:auto}.chess2-history-row{border-radius:6px;grid-template-columns:32px 1fr 1fr;gap:.5rem;padding:2px 4px;display:grid}.chess2-history-row:hover{background:#ffffff0d}.chess2-history-n{color:var(--text-dim)}.chess2-history-move{color:var(--text-bright)}.chess2-history-move-b{color:#cdbffb}.chess2-history-empty{color:var(--text-dim);margin:0;font-size:.85rem}.chess2-rules{gap:.75rem;margin:0;padding:0;font-size:.9rem;line-height:1.4;list-style:none;display:grid}.chess2-rules li{grid-template-columns:36px 1fr;align-items:start;gap:.6rem;display:grid}.chess2-rule-icon{width:32px;height:32px;color:var(--accent);background:#ffffff0f;border-radius:8px;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.chess2-rule-icon .piece-svg{width:26px;height:26px}.chess2-rules strong{color:var(--accent-2)}.chess2-btn{font:inherit;cursor:pointer;letter-spacing:.03em;border:1px solid #ffffff1a;border-radius:10px;padding:.7rem 1.2rem;font-weight:600;transition:transform .1s,filter .15s}.chess2-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.chess2-btn:disabled{opacity:.6;cursor:default;transform:none}.chess2-btn-primary{background:linear-gradient(100deg, var(--accent), var(--accent-2));color:#1a0b2e;border:0}.chess2-btn-ghost{color:var(--text-bright);background:#ffffff0f}.chess2-victory{text-align:center;background:linear-gradient(135deg,#ffd16640,#b587ff40);border:1px solid #ffd16666;border-radius:14px;margin-top:1rem;padding:1.4rem;animation:.4s fadeIn}.chess2-victory h2{letter-spacing:.06em;margin:0 0 .8rem;font-family:Cinzel,serif;font-weight:900}.chess2-error{color:#ffd6d6;background:#ff555526;border:1px solid #f556;border-radius:8px;margin-top:.6rem;padding:.5rem .9rem;font-size:.85rem}.chess2-modal{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050214a6;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.chess2-modal-card{background:var(--card-bg);text-align:center;border:1px solid #ffffff1f;border-radius:16px;max-width:500px;padding:1.6rem;box-shadow:0 30px 80px #0009}.chess2-modal-card h3{color:var(--accent-2);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem;font-family:Cinzel,serif;font-size:1rem}.chess2-promo-row{grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem;display:grid}.chess2-promo-btn{color:var(--text-bright);cursor:pointer;font:inherit;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:center;gap:.3rem;padding:.7rem .5rem;font-size:.78rem;transition:all .15s;display:flex}.chess2-promo-btn:hover{border-color:var(--accent-2);background:#ffd16633;transform:translateY(-2px)}.chess2-promo-btn .chess2-piece{width:44px;height:44px;font-size:2.4rem}.chess2-promo-btn .glyph{font-size:2.4rem}.chess2-card-cpu .chess2-card-head h3{background:linear-gradient(90deg, var(--accent-fire), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.chess2-switch{cursor:pointer;width:42px;height:24px;display:inline-block;position:relative}.chess2-switch input{opacity:0;width:0;height:0}.chess2-switch-slider{background:#ffffff1a;border-radius:999px;transition:background .2s;position:absolute;inset:0}.chess2-switch-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0006}.chess2-switch input:checked+.chess2-switch-slider{background:linear-gradient(90deg, var(--accent), var(--accent-fire))}.chess2-switch input:checked+.chess2-switch-slider:before{transform:translate(18px)}.chess2-cpu-body{flex-direction:column;gap:.8rem;margin-top:.5rem;display:flex}.chess2-cpu-row{flex-direction:column;gap:.3rem;display:flex}.chess2-cpu-label{color:var(--text-dim);letter-spacing:.04em;font-size:.78rem}.chess2-cpu-label strong{color:var(--accent-2);font-weight:600}.chess2-seg{background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;gap:2px;padding:2px;display:inline-flex}.chess2-seg-opt{color:var(--text-dim);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;flex:1;padding:.3rem .7rem;font-size:.8rem;font-weight:600;transition:all .15s}.chess2-seg-opt.active{background:linear-gradient(100deg, var(--accent), var(--accent-2));color:#1a0b2e}.chess2-range{appearance:none;background:linear-gradient(90deg, var(--accent), var(--accent-fire));border-radius:999px;outline:none;width:100%;height:6px;margin:0}.chess2-range::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 8px #00000080}.chess2-range::-moz-range-thumb{cursor:pointer;background:#fff;border:0;border-radius:50%;width:16px;height:16px;box-shadow:0 2px 8px #00000080}.chess2-cpu-status{color:var(--text-dim);margin-top:.3rem;font-size:.72rem;line-height:1.4}.chess2-cpu-thinking{color:var(--accent-2);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:inline-flex}.chess2-cpu-meta{opacity:.75;display:block}.chess2-cpu-warn{color:var(--accent-fire);margin-top:.4rem;font-size:.72rem}.chess2-ai-stats{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;flex-wrap:wrap;gap:.4rem .8rem;margin-bottom:.5rem;padding:.5rem .7rem;font-size:.75rem;display:flex}.chess2-stat{flex-direction:column;line-height:1.1;display:flex}.chess2-stat>span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.chess2-stat>strong{color:var(--accent-2);font-family:Fira Code,Courier New,monospace;font-size:.82rem;font-weight:600}.chess2-spinner-tiny{border:2px solid #fff3;border-top-color:var(--accent-2);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin;display:inline-block}.chess2-loading{color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;display:flex}.chess2-spinner{border:3px solid #ffffff1a;border-top-color:var(--accent-2);border-radius:50%;width:48px;height:48px;margin-bottom:1rem;animation:.9s linear infinite spin}
