.chess{color:var(--text-color);min-height:100vh;min-height:100svh;padding:calc(var(--nav-size) * 2) calc(var(--nav-size) * .3) calc(var(--nav-size) * 1.5);background:linear-gradient(-45deg, var(--bg-orange), var(--bg-pink), var(--bg-blue), var(--bg-mint));background-size:400% 400%;flex-direction:column;align-items:center;animation:12s infinite chessGradientShift;display:flex;position:relative;overflow-x:hidden}.light-theme .chess{animation-duration:15s}.dark-theme .chess{animation-duration:10s}@keyframes chessGradientShift{0%{background-position:0%}25%{background-position:100%}50%{background-position:100% 100%}75%{background-position:0 100%}to{background-position:0%}}.chess-floating{pointer-events:none;z-index:0;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.chess-circle{background:radial-gradient(circle, var(--white1-transp,#f4f7fd33) 0%, transparent 70%);border-radius:50%;animation:6s ease-in-out infinite chessFloat;position:absolute}.chess-circle-1{width:180px;height:180px;animation-duration:9s;top:8%;left:6%}.chess-circle-2{width:120px;height:120px;animation-duration:11s;animation-delay:-2s;top:55%;right:8%}.chess-circle-3{width:220px;height:220px;animation-duration:13s;animation-delay:-4s;bottom:5%;left:55%}@keyframes chessFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-24px)rotate(180deg)}}.chess-section{z-index:2;width:100%;max-width:calc(var(--nav-size) * 22);flex-direction:column;align-items:center;display:flex;position:relative}.chess-hero{padding:calc(var(--nav-size) * 1.2) 0 calc(var(--nav-size) * .6)}.chess-title-wrap{text-align:center;max-width:calc(var(--nav-size) * 19);margin:0 auto}.chess-eyebrow{margin:0 0 calc(var(--nav-size) * .15);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.16em;text-transform:uppercase;color:var(--text-color-accent)}.chess-title{font-weight:var(--font-weight-bold);letter-spacing:-.01em;font-size:var(--font-size-display);line-height:var(--line-height-tight);margin:0 0 calc(var(--nav-size) * .35);position:relative}.chess-title:after{content:"";left:50%;bottom:calc(var(--nav-size) * -.22);width:calc(var(--nav-size) * 1.6);background:linear-gradient(90deg, var(--fg-blue), var(--fg-mint), var(--fg-pink));border-radius:999px;height:4px;position:absolute;transform:translate(-50%)}.chess-subtitle{color:var(--text-color-accent);font-size:var(--font-size-large);line-height:var(--line-height-relaxed);max-width:calc(var(--nav-size) * 14);margin:0 auto calc(var(--nav-size) * .5)}.chess-reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(28px)}.chess-reveal.is-visible{opacity:1;transform:translateY(0)}.chess-tabs{gap:calc(var(--nav-size) * .2);flex-wrap:wrap;justify-content:center;display:flex}.chess-tab{align-items:center;gap:calc(var(--nav-size) * .15);font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold,600);letter-spacing:.08em;text-transform:uppercase;color:var(--text-color);border:1px solid var(--border-nav);padding:calc(var(--nav-size) * .18) calc(var(--nav-size) * .5);cursor:pointer;background:0 0;border-radius:999px;transition:transform .2s,box-shadow .2s,background-color .2s,color .2s;display:inline-flex}.chess-tab:hover:not(:disabled){color:var(--fg-mint);background:color-mix(in srgb, var(--bg-1) 70%, transparent);transform:translateY(-1px)}.chess-tab-icon{line-height:1}.chess-tab.is-active{color:var(--text-color-inv);background:linear-gradient(45deg, var(--fg-blue), var(--fg-mint));box-shadow:0 4px 14px #00000038, 0 0 0 3px color-mix(in srgb, var(--fg-mint) 25%, transparent);border-color:#0000}.chess-tab.is-active:hover{color:var(--text-color-inv);background:linear-gradient(45deg, var(--fg-blue), var(--fg-mint))}.chess-panel{width:100%}.chess-panel-intro{max-width:calc(var(--nav-size) * 16);margin:0 auto calc(var(--nav-size) * .6);text-align:center;color:var(--text-color-accent);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.chess-btn{font-family:inherit;font-weight:var(--font-weight-semibold,600);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:uppercase;padding:calc(var(--nav-size) * .18) calc(var(--nav-size) * .45);cursor:pointer;color:var(--text-color-inv);background:linear-gradient(45deg, var(--fg-blue), var(--fg-mint));border:1px solid #0000;border-radius:999px;transition:transform .2s,box-shadow .2s}.chess-btn:hover:not(:disabled){box-shadow:var(--shadow-md);background:linear-gradient(45deg, var(--fg-blue), var(--fg-mint));transform:translateY(-1px)}.chess-btn:disabled{opacity:.45;cursor:not-allowed}.chess-btn--outline{color:var(--text-color);border-color:var(--border-nav);background:0 0}.chess-btn--outline:hover:not(:disabled){background:var(--bg-accent);box-shadow:none}.chess-btn--icon{width:calc(var(--nav-size) * .9);height:calc(var(--nav-size) * .9);letter-spacing:0;font-size:calc(var(--nav-size) * .34);justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.chess-select-label{align-items:center;gap:calc(var(--nav-size) * .15);display:inline-flex}.chess-select-caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold,600);letter-spacing:.08em;text-transform:uppercase;color:var(--text-color-accent)}.chess-select{-webkit-appearance:none;appearance:none;font-family:inherit;font-size:var(--font-size-small);font-weight:var(--font-weight-semibold,600);color:var(--text-color);background-color:var(--bg-1);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(var(--nav-size) * .22) center;background-size:calc(var(--nav-size) * .24);border:1px solid var(--border-nav);padding:calc(var(--nav-size) * .16) calc(var(--nav-size) * .6) calc(var(--nav-size) * .16) calc(var(--nav-size) * .4);cursor:pointer;border-radius:999px;transition:transform .2s,border-color .2s,box-shadow .2s}.chess-select:hover{border-color:var(--fg-mint)}.chess-select:focus-visible{border-color:var(--fg-blue);box-shadow:0 0 0 3px color-mix(in srgb, var(--fg-blue) 30%, transparent);outline:none}.chess-play-controls{gap:calc(var(--nav-size) * .25);margin-bottom:calc(var(--nav-size) * .5);flex-wrap:wrap;justify-content:center;align-items:center;width:100%;display:flex}.chess-control-group{gap:calc(var(--nav-size) * .18);flex-wrap:wrap;justify-content:center;display:inline-flex}.chess-play-layout{gap:calc(var(--nav-size) * .5);flex-wrap:wrap;justify-content:center;align-items:flex-start;width:100%;display:flex}.chess-play-side{flex:1 1 calc(var(--nav-size) * 6);min-width:calc(var(--nav-size) * 5);max-width:calc(var(--nav-size) * 8);gap:calc(var(--nav-size) * .35);flex-direction:column;display:flex}.chess-status{justify-content:center;align-items:center;gap:calc(var(--nav-size) * .15);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold,600);text-align:center;padding:calc(var(--nav-size) * .18) calc(var(--nav-size) * .35);background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius);margin:0;display:flex}.chess-status-spinner{width:calc(var(--nav-size) * .28);height:calc(var(--nav-size) * .28);border:2px solid var(--border-nav);border-top-color:var(--fg-mint);border-radius:50%;flex-shrink:0;animation:.8s linear infinite chessSpin}@keyframes chessSpin{to{transform:rotate(360deg)}}.chess-movelist{max-height:calc(var(--nav-size) * 9);padding:calc(var(--nav-size) * .2);background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius);flex-direction:column;gap:2px;display:flex;overflow-y:auto}.chess-moverow{align-items:baseline;gap:calc(var(--nav-size) * .15);flex-wrap:wrap;display:flex}.chess-movenum{min-width:2ch;color:var(--text-color-accent);font-size:var(--font-size-small);font-variant-numeric:tabular-nums}.chess-movesan{font-family:CutiveMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-size:var(--font-size-small);color:var(--text-color);background:0 0;border:none;border-radius:4px;padding:1px 4px}button.chess-movesan{cursor:pointer}button.chess-movesan:hover:not(:disabled){color:var(--fg-mint);background:0 0}.chess-movesan.is-active{background:var(--fg-mint);color:#0c141a}.chess-board-wrap{--chess-light:#ebecd0;--chess-dark:#739552;width:min(100%, calc(var(--nav-size) * 11));flex:0 1 calc(var(--nav-size) * 11);position:relative;container-type:inline-size}.chess-board{aspect-ratio:1;border-radius:var(--border-radius-lg);background:var(--chess-dark);border:1px solid #0003;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;display:grid;overflow:hidden;box-shadow:0 1px 2px #00000024,0 14px 36px #00000047,inset 0 0 0 1px #ffffff0d}.chess-square{cursor:pointer;min-height:0;color:inherit;font-size:inherit;line-height:inherit;background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;transition:box-shadow .12s;display:flex;position:relative;transform:none}.chess-square:disabled{cursor:default}.chess-square:not(:disabled){touch-action:none}.chess-square:not(:disabled):hover{transform:none;box-shadow:inset 0 0 0 999px #ffffff1f}.chess-square--light{background-color:var(--chess-light);background-image:none}.chess-square--dark{background-color:var(--chess-dark);background-image:none}.chess-square--light:not(:disabled):hover{background-color:var(--chess-light);background-image:none}.chess-square--dark:not(:disabled):hover{background-color:var(--chess-dark);background-image:none}.chess-square--last-from{background-image:linear-gradient(#ffd20047,#ffd20047)}.chess-square--last-to{background-image:linear-gradient(#ffd20073,#ffd20073)}.chess-square--selected{background-image:linear-gradient(#14aa8c73,#14aa8c73)}.chess-square--selected:after{content:"";pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 0 3px #14aa8cd9}.chess-square--check{background-image:linear-gradient(#dc262699,#dc262699)}.chess-square--target:after{content:"";background:#0f0f0f4d;border-radius:50%;width:30%;height:30%;position:absolute}.chess-square--capture:after{content:"";border:.45cqi solid #0f0f0f52;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.chess-piece{-webkit-user-select:none;user-select:none;pointer-events:none;font-size:8.6cqi;line-height:1;transition:transform .12s}.chess-square:not(:disabled):hover .chess-piece{transform:scale(1.08)}.chess-piece--w{color:#f9f9f9;text-shadow:-1px -1px #2b2b2b,1px -1px #2b2b2b,-1px 1px #2b2b2b,1px 1px #2b2b2b,0 2px 3px #00000059}.chess-piece--b{color:#202020;text-shadow:-1px -1px #f9f9f9,1px -1px #f9f9f9,-1px 1px #f9f9f9,1px 1px #f9f9f9,0 2px 3px #00000059}.chess-coord{font-size:3cqi;font-weight:var(--font-weight-bold,700);pointer-events:none;opacity:.9;font-variant-numeric:tabular-nums;line-height:1;position:absolute}.chess-coord--rank{top:4%;left:6%}.chess-coord--file{bottom:4%;right:6%}.chess-square--light .chess-coord{color:var(--chess-dark)}.chess-square--dark .chess-coord{color:var(--chess-light)}.chess-promotion{z-index:3;border-radius:var(--border-radius-lg);background:#0a0e1299;justify-content:center;align-items:center;gap:2cqi;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.chess-promotion-btn{aspect-ratio:1;background:var(--bg-1);border:2px solid var(--border-nav);border-radius:var(--border-radius-lg);cursor:pointer;justify-content:center;align-items:center;width:17cqi;transition:transform .12s,border-color .12s;display:flex}.chess-promotion-btn:hover:not(:disabled){border-color:var(--fg-mint);background:var(--bg-1);transform:translateY(-2px)}.chess-openings-layout{grid-template-columns:calc(var(--nav-size) * 6.5) 1fr;gap:calc(var(--nav-size) * .5);align-items:start;width:100%;display:grid}.chess-opening-list{gap:calc(var(--nav-size) * .18);flex-direction:column;display:flex}.chess-opening-item{justify-content:space-between;align-items:center;gap:calc(var(--nav-size) * .2);font-family:inherit;font-size:var(--font-size-base);color:var(--text-color);text-align:left;background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius);padding:calc(var(--nav-size) * .2) calc(var(--nav-size) * .3);cursor:pointer;border-left:4px solid #0000;transition:transform .15s,border-color .15s,background-color .15s;display:flex}.chess-opening-item:hover:not(:disabled){border-left-color:var(--fg-mint);background:var(--bg-1);transform:translateY(-1px)}.chess-opening-item.is-active:hover:not(:disabled){background:var(--bg-accent)}.chess-opening-item.is-active{border-left-color:var(--fg-mint);background:var(--bg-accent)}.chess-opening-name{font-weight:var(--font-weight-medium,500)}.chess-opening-eco{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold,600);color:var(--text-color-accent);letter-spacing:.06em;flex-shrink:0}.chess-opening-detail{background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);padding:calc(var(--nav-size) * .5);align-items:center;gap:calc(var(--nav-size) * .35);flex-direction:column;width:100%;display:flex}.chess-opening-head{align-items:center;gap:calc(var(--nav-size) * .2);flex-wrap:wrap;justify-content:center;display:flex}.chess-opening-title{font-size:var(--font-size-large);font-weight:var(--font-weight-bold,700);margin:0}.chess-opening-eco--badge{padding:2px calc(var(--nav-size) * .2);background:var(--bg-accent);border:1px solid var(--border-nav);border-radius:999px}.chess-opening-desc{max-width:calc(var(--nav-size) * 14);text-align:center;color:var(--text-color-accent);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);margin:0}.chess-opening-board{width:100%;max-width:calc(var(--nav-size) * 10);justify-content:center;display:flex}.chess-opening-nav{gap:calc(var(--nav-size) * .2);flex-wrap:wrap;justify-content:center;display:flex}.chess-ideas-title{margin:calc(var(--nav-size) * .2) 0 0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold,700);text-transform:uppercase;letter-spacing:.06em;color:var(--text-color-accent)}.chess-ideas{width:100%;max-width:calc(var(--nav-size) * 14);gap:calc(var(--nav-size) * .2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.chess-idea{padding-left:calc(var(--nav-size) * .4);font-size:var(--font-size-base);line-height:var(--line-height-base);position:relative}.chess-idea:before{content:"♞";color:var(--fg-mint);position:absolute;left:0}.chess-principles-grid{grid-template-columns:repeat(auto-fit, minmax(calc(var(--nav-size) * 5.5), 1fr));gap:calc(var(--nav-size) * .4);width:100%;display:grid}.chess-principle-card{background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);padding:calc(var(--nav-size) * .45);gap:calc(var(--nav-size) * .18);flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex}.chess-principle-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.chess-principle-num{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold,700);letter-spacing:.12em;color:var(--fg-mint)}.chess-principle-title{font-size:var(--font-size-large);font-weight:var(--font-weight-semibold,600);margin:0}.chess-principle-body{font-size:var(--font-size-base);color:var(--text-color-accent);line-height:var(--line-height-relaxed);margin:0}.chess-piece--drag{z-index:5;pointer-events:none;filter:drop-shadow(0 6px 10px #0006);font-size:10cqi;position:absolute;transform:translate(-50%,-50%)}.chess-result{align-items:center;gap:calc(var(--nav-size) * .18);text-align:center;padding:calc(var(--nav-size) * .4);background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.chess-result-title{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold,700);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-orange)}.chess-result-sub{font-size:var(--font-size-base);color:var(--text-color-accent);margin-bottom:calc(var(--nav-size) * .1)}.chess-captured{gap:calc(var(--nav-size) * .1);padding:calc(var(--nav-size) * .18) calc(var(--nav-size) * .25);background:var(--bg-1);border:1px solid var(--border-nav);border-radius:var(--border-radius);flex-direction:column;display:flex}.chess-captured-row{justify-content:space-between;align-items:center;gap:calc(var(--nav-size) * .2);display:flex}.chess-captured-side{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold,600);text-transform:uppercase;letter-spacing:.08em;color:var(--text-color-accent)}.chess-captured-pieces{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.chess-captured-piece{font-size:calc(var(--nav-size) * .32);line-height:1}.chess-captured-piece--w{color:#f9f9f9;text-shadow:-1px -1px #2b2b2b,1px -1px #2b2b2b,-1px 1px #2b2b2b,1px 1px #2b2b2b}.chess-captured-piece--b{color:#202020;text-shadow:-1px -1px #f9f9f9,1px -1px #f9f9f9,-1px 1px #f9f9f9,1px 1px #f9f9f9}.chess-captured-diff{margin-left:calc(var(--nav-size) * .12);font-size:var(--font-size-small);font-weight:var(--font-weight-bold,700);color:var(--fg-mint);font-variant-numeric:tabular-nums}.chess-opening-progress{font-size:var(--font-size-small);color:var(--text-color-accent);font-variant-numeric:tabular-nums;margin:0}@media (orientation:portrait){.chess-openings-layout{grid-template-columns:1fr}.chess-opening-list{scrollbar-width:none;flex-direction:row;overflow-x:auto}.chess-opening-list::-webkit-scrollbar{display:none}.chess-opening-item{flex:none}}@media (prefers-reduced-motion:reduce){.chess,.chess-circle{animation:none}.chess-reveal{opacity:1;transition:none;transform:none}}
