@font-face{font-family:"Noto Sans Symbols 2";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-symbols-2-symbols-400-normal-Crk7i-NV.woff2)format("woff2"),url(/assets/noto-sans-symbols-2-symbols-400-normal-1543TeiR.woff)format("woff")}:root{color:#14231c;font-synthesis:none;text-rendering:optimizelegibility;--ink:#14231c;--muted:#66746d;--cream:#f5f2e9;--paper:#fff;--forest:#173f30;--forest-deep:#102b21;--mint:#b8d8c2;--copper:#c47b45;--border:#d8dfda;--shadow:0 28px 70px #071c142e;background:#0f211a;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#0f211a;min-width:320px;min-height:100%}body{background:radial-gradient(circle at 12% 18%,#53866b38,#0000 28rem),linear-gradient(145deg,#10271e,#0c1b16);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button{min-height:44px}button,label{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,dialog:focus-visible{outline-offset:3px;outline:3px solid #f1b77e}h1,h2,h3,p{margin-top:0}.eyebrow{color:#4e7a66;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem;font-size:.72rem;font-weight:800}.app-loading{color:#e8f1ec;place-content:center;justify-items:center;gap:1rem;min-height:100vh;display:grid}.brand-mark{color:#f2e9d6;background:#ffffff14;border:1px solid #fff3;border-radius:22px;place-items:center;width:72px;height:72px;font-family:"Noto Sans Symbols 2",serif;font-size:2.45rem;display:grid;box-shadow:inset 0 0 0 5px #ffffff08}.start-screen{grid-template-columns:minmax(0,.88fr) minmax(480px,1.12fr);align-items:center;gap:clamp(2rem,6vw,6rem);width:min(1180px,100% - 2rem);min-height:100vh;margin:0 auto;padding:clamp(1.25rem,4vw,4rem) 0;display:grid}.start-intro{color:#f7f5ee}.start-intro .eyebrow{color:#9dc6ac;margin-top:2rem}.start-intro h1{letter-spacing:-.055em;max-width:10ch;margin-bottom:1.5rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,6vw,5.5rem);font-weight:500;line-height:.96}.lede{color:#cbd9d0;max-width:37rem;font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.65}.principles{color:#dce8e1;border-top:1px solid #ffffff24;gap:.75rem;margin-top:3rem;padding-top:1.5rem;font-size:.9rem;display:grid}.principles span{align-items:baseline;gap:1rem;display:flex}.principles i{color:#82a992;font-family:Georgia,serif;font-size:.78rem;font-style:normal}.setup-card{box-shadow:var(--shadow);background:#f6f4ed;border:1px solid #ffffff59;border-radius:28px;padding:clamp(1.5rem,4vw,3rem)}.setup-heading{border-bottom:1px solid #d9dfda;margin-bottom:1.75rem;padding-bottom:1.4rem}.setup-heading h2{margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:500}fieldset{border:0;min-width:0;margin:0 0 1.45rem;padding:0}legend{color:#283a31;margin-bottom:.75rem;font-size:.84rem;font-weight:800}.choice-grid{gap:.55rem;display:grid}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-card{cursor:pointer;min-height:52px;display:grid;position:relative}.choice-card input,.trainer-card input{opacity:0;pointer-events:none;position:absolute}.choice-label{color:#405248;text-align:center;background:#fff;border:1px solid #cfd7d2;border-radius:12px;justify-content:center;align-items:center;gap:.55rem;min-width:0;padding:.65rem .55rem;font-size:.82rem;font-weight:700;transition:border-color .16s,background .16s,transform .16s;display:flex}.choice-card:hover .choice-label{border-color:#8baa98;transform:translateY(-1px)}.choice-card input:focus-visible+.choice-label,.trainer-card input:focus-visible+.trainer-copy{outline-offset:2px;outline:3px solid #e7a96e}.choice-card input:checked+.choice-label{color:#123c2c;background:#e2eee6;border-color:#1e5942;box-shadow:inset 0 0 0 1px #1e5942}.field-hint{color:#758179;margin:.5rem 0 0;font-size:.71rem;line-height:1.45}.theme-preview{background:linear-gradient(45deg, var(--preview-dark) 25%, transparent 25%) 0 0 / 11px 11px, linear-gradient(45deg, transparent 75%, var(--preview-dark) 75%) 0 0 / 11px 11px, linear-gradient(45deg, transparent 25%, var(--preview-light) 25%, var(--preview-light) 75%, transparent 75%) 0 0 / 11px 11px;border:1px solid #0000001f;border-radius:5px;flex:none;width:22px;height:22px}.theme-green{--preview-light:#ecebdc;--preview-dark:#729278}.theme-brown{--preview-light:#eee5d5;--preview-dark:#9a6c50}.theme-mono{--preview-light:#e9e9e3;--preview-dark:#323734}.trainer-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.trainer-card{cursor:pointer;display:grid;position:relative}.trainer-copy{background:#fff;border:1px solid #cfd7d2;border-radius:13px;align-content:center;gap:.25rem;min-height:72px;padding:.85rem 1rem;display:grid}.trainer-copy strong{color:#283a31;font-size:.87rem}.trainer-copy small{color:#758179;font-size:.72rem;line-height:1.35}.trainer-card input:checked+.trainer-copy{background:#e2eee6;border-color:#1e5942;box-shadow:inset 0 0 0 1px #1e5942}.trainer-card.is-disabled{cursor:not-allowed;opacity:.52}.ai-status{color:#9a5e32;margin:.65rem 0 0;font-size:.72rem}.ai-status.is-available{color:#397151}.primary-button,.secondary-button,.text-button{cursor:pointer;border-radius:12px;font-weight:800;transition:transform .15s,background .15s,border-color .15s}.primary-button{color:#fff;background:#173f30;border:1px solid #173f30;padding:.8rem 1.2rem;box-shadow:0 8px 20px #173f302e}.primary-button:hover{background:#0f3326;transform:translateY(-1px)}.secondary-button{color:#31433a;background:#fff;border:1px solid #bdc8c1;padding:.7rem 1rem}.secondary-button:hover{background:#f3f7f4;border-color:#789584}.text-button{color:#356d53;background:0 0;border:0;padding:.6rem .2rem}.text-button:hover{color:#173f30;text-decoration:underline}.start-button{justify-content:space-between;align-items:center;width:100%;min-height:56px;padding-inline:1.2rem;display:flex}.game-screen{min-height:100vh;color:var(--ink);background:linear-gradient(#f8f9f6f5,#eff3effa),radial-gradient(circle at 80% 10%,#b9cec0,#0000 30rem)}.game-header{color:#eff6f1;background:#122b21;border-bottom:1px solid #ffffff1f;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:76px;padding:.75rem max(1rem,50vw - 660px);display:grid}.brand-button{width:-moz-fit-content;width:fit-content;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.7rem;padding:0;display:flex}.brand-button span:last-child{display:grid}.brand-button strong{font-family:Georgia,serif;font-size:1.12rem;font-weight:500}.brand-button small{color:#9eb6aa;letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.mini-brand{border:1px solid #ffffff2e;border-radius:12px;place-items:center;width:42px;height:42px;font-family:"Noto Sans Symbols 2",serif;font-size:1.6rem;display:grid}.game-meta{gap:.5rem;display:flex}.game-meta span{color:#ccdbd2;border:1px solid #ffffff26;border-radius:999px;padding:.42rem .7rem;font-size:.72rem;font-weight:700}.game-header .new-game-button{color:#edf4ef;background:#ffffff12;border-color:#ffffff38;justify-self:end}.game-header .new-game-button:hover{background:#ffffff21}.status-strip{background:#ffffffb8;border-bottom:1px solid #dce3de;align-items:center;gap:.7rem;min-height:50px;padding:.6rem max(1rem,50vw - 660px);display:flex}.status-strip p{color:#52645a;margin:0;font-size:.83rem;font-weight:700}.status-indicator{background:#4b8a65;border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 4px #4b8a651f}.status-indicator[data-phase=ANALYZING_PLAYER_MOVE],.status-indicator[data-phase=OPPONENT_THINKING]{background:#d08145;animation:1s infinite alternate pulse;box-shadow:0 0 0 4px #d0814524}.status-indicator[data-phase=GAME_OVER]{background:#994a47;box-shadow:0 0 0 4px #994a4724}@keyframes pulse{to{opacity:.4}}.game-layout{grid-template-columns:minmax(420px,720px) minmax(330px,1fr);align-items:start;gap:clamp(1.25rem,3vw,2.5rem);width:min(1320px,100% - 2rem);margin:0 auto;padding:clamp(1rem,3vw,2.5rem) 0;display:grid}.board-column{min-width:0}.board-frame{background:#fff;border:1px solid #cad5ce;border-radius:18px;padding:clamp(.45rem,1vw,.75rem);box-shadow:0 18px 44px #1a362a24}.chessboard{--light:#edf0e4;--dark:#6f947c;aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:11px;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:100%;display:grid;overflow:hidden}.chessboard.theme-brown{--light:#efe7d9;--dark:#9b7057}.chessboard.theme-mono{--light:#ecece6;--dark:#343a37}.square{cursor:default;border:0;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.square.light{color:var(--dark);background:var(--light)}.square.dark{color:var(--light);background:var(--dark)}.square.is-last-move:before,.square.is-selected:before,.square.is-best-move:before,.square.is-check:before{content:"";z-index:0;pointer-events:none;position:absolute;inset:0}.square.is-last-move:before{background:#efc0506b}.square.is-selected:before{box-shadow:inset 0 0 0 max(3px,.5vw) #f1bd57}.square.is-best-move:before{background:#47abb52e;box-shadow:inset 0 0 0 max(3px,.5vw) #51b6bf}.square.is-check:before{background:radial-gradient(circle,#bd3631d1,#bd36310d 68%)}.square.is-legal:after{content:"";z-index:2;aspect-ratio:1;pointer-events:none;background:#122b216e;border-radius:50%;width:18%;position:absolute}.square.is-capture:after{content:"";z-index:2;pointer-events:none;border:clamp(3px,.5vw,6px) solid #122b2175;border-radius:50%;position:absolute;inset:9%}.piece-symbol{z-index:1;cursor:grab;filter:drop-shadow(0 2px 1px #0003);place-items:center;width:100%;height:100%;font-family:"Noto Sans Symbols 2",Segoe UI Symbol,serif;font-size:clamp(2rem,7.5vw,5.7rem);font-weight:400;line-height:1;transition:transform .12s;display:grid;position:relative;transform:translateY(-1%)}.piece-symbol:active{cursor:grabbing;transform:translateY(-2%)scale(1.06)}.piece-white{color:#fffdf5;-webkit-text-stroke:.6px #263b32}.piece-black{color:#17251f;-webkit-text-stroke:.35px #e7eade}.coordinate{z-index:3;pointer-events:none;font-size:clamp(.46rem,1vw,.68rem);font-weight:900;line-height:1;position:absolute}.rank-coordinate{top:5px;left:5px}.file-coordinate{bottom:5px;right:5px}.light .coordinate{color:color-mix(in srgb, var(--dark) 88%, #000)}.dark .coordinate{color:color-mix(in srgb, var(--light) 85%, #fff)}.board-caption{color:#738078;justify-content:space-between;margin:0;padding:.75rem .3rem 0;font-size:.7rem;font-weight:700;display:flex}.feedback-column{min-width:0;position:sticky;top:1rem}.feedback-panel{background:#ffffffeb;border:1px solid #d5ddd8;border-radius:20px;min-height:480px;overflow:hidden;box-shadow:0 16px 38px #1a362a17}.feedback-empty,.feedback-loading{flex-direction:column;justify-content:center;min-height:480px;padding:clamp(1.5rem,4vw,2.5rem);display:flex}.feedback-icon{color:#356d53;background:#e3eee7;border-radius:16px;place-items:center;width:54px;height:54px;margin-bottom:1.5rem;font-family:Georgia,serif;font-size:1.7rem;display:grid}.feedback-empty h2,.review-heading h2{letter-spacing:-.025em;margin-bottom:.8rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:500}.feedback-empty>p:not(.eyebrow){color:#68776f;line-height:1.65}.legend{color:#65736c;border-top:1px solid #e1e6e2;flex-wrap:wrap;gap:1rem;margin-top:1.5rem;padding-top:1.2rem;font-size:.72rem;font-weight:700;display:flex}.legend span{align-items:center;gap:.4rem;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px;display:inline-block}.legal-dot{background:#1d49357a}.capture-dot{border:3px solid #1d49357a}.feedback-loading{color:#607068;text-align:center;align-items:center}.feedback-loading p{margin:1rem 0 .35rem;font-weight:800}.feedback-loading small{color:#869088}.thinking-mark{border:3px solid #d5e1da;border-top-color:#397155;border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.review-card{flex-direction:column;min-height:480px;display:flex}.review-heading{background:linear-gradient(140deg,#f8faf8,#eff5f1);border-bottom:1px solid #e0e6e2;padding:clamp(1.4rem,3vw,2rem)}.review-heading .eyebrow{margin-right:.6rem;display:inline-block}.classification-pill{color:#27583f;background:#dcecdf;border-radius:999px;margin-bottom:.9rem;padding:.32rem .6rem;font-size:.68rem;font-weight:900;display:inline-block}.classification-inaccuracy .classification-pill{color:#79531d;background:#f4e7c7}.classification-mistake .classification-pill,.classification-blunder .classification-pill,.classification-allowed_mate .classification-pill,.classification-missed_mate .classification-pill{color:#823c36;background:#f4dcd8}.review-heading h2{margin-bottom:0}.review-summary{color:#43544b;padding:1.35rem clamp(1.4rem,3vw,2rem) 0;font-size:.94rem;line-height:1.65}.detail-block{background:#f4f7f5;border-left:3px solid #8aa996;border-radius:0 10px 10px 0;margin:.9rem clamp(1.4rem,3vw,2rem) 0;padding:.9rem 1rem}.detail-danger{background:#fbf5ee;border-left-color:#d0925c}.detail-better{background:#eef6f1;border-left-color:#428067}.detail-variation{background:#f3f5f4;border-left-color:#82928a}.detail-block h3{color:#6c7b73;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.67rem}.detail-block p{color:#35473e;margin:0;font-size:.84rem;line-height:1.55}.evaluation-note,.fallback-notice{color:#748078;margin:.8rem clamp(1.4rem,3vw,2rem) 0;font-size:.7rem}.fallback-notice{color:#745638;background:#faf0df;border-radius:8px;padding:.7rem .8rem}.review-tools{margin-top:auto;padding:1rem clamp(1.4rem,3vw,2rem) 0}.best-move-button:disabled{cursor:not-allowed;opacity:.45;text-decoration:none}.review-actions{grid-template-columns:1fr 1.2fr;gap:.65rem;padding:.8rem clamp(1.4rem,3vw,2rem) clamp(1.4rem,3vw,2rem);display:grid}.game-over-card{background:linear-gradient(145deg,#fff,#f4f0e8)}.promotion-dialog{width:min(520px,100% - 2rem);color:var(--ink);background:#f8f7f1;border:1px solid #cbd6cf;border-radius:20px;padding:0;overflow:hidden;box-shadow:0 28px 80px #00000059}.promotion-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071812ad}.promotion-dialog form{padding:1.5rem}.promotion-dialog h2{font-family:Georgia,serif;font-size:1.8rem;font-weight:500}.promotion-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;display:grid}.promotion-option{color:#273a31;cursor:pointer;background:#fff;border:1px solid #ccd5cf;border-radius:12px;justify-items:center;gap:.3rem;padding:.6rem;display:grid}.promotion-option:hover{background:#edf4ef;border-color:#58816c}.promotion-option .piece-symbol{width:auto;height:auto;font-size:3.2rem}.promotion-option>span:last-child{font-size:.72rem;font-weight:800}.promotion-cancel{width:100%;margin-top:.7rem}@media (max-width:980px){.start-screen{grid-template-columns:1fr;padding-block:2rem}.start-intro{text-align:center;justify-items:center;display:grid}.start-intro h1{max-width:13ch}.principles{text-align:left;width:min(520px,100%)}.game-layout{grid-template-columns:1fr}.board-column{width:min(760px,100%);margin:0 auto}.feedback-column{width:min(760px,100%);margin:0 auto;position:static}.feedback-panel,.feedback-empty,.feedback-loading,.review-card{min-height:0}}@media (max-width:680px){.start-screen{width:min(100% - 1rem,560px);padding-block:.75rem}.start-intro{padding:1.5rem .75rem}.brand-mark{border-radius:17px;width:58px;height:58px;font-size:2rem}.start-intro .eyebrow{margin-top:1.2rem}.start-intro h1{font-size:clamp(2.6rem,13vw,4rem)}.principles{display:none}.setup-card{border-radius:22px;padding:1.25rem}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.three-grid{grid-template-columns:1fr}.three-grid .choice-card{min-height:46px}.three-grid .choice-label{justify-content:flex-start;padding-inline:1rem}.trainer-choices{grid-template-columns:1fr}.game-header{grid-template-columns:1fr auto;min-height:68px}.game-meta{display:none}.game-header .new-game-button{padding-inline:.75rem;font-size:.75rem}.game-layout{gap:.75rem;width:100%;padding-top:.5rem}.board-frame{box-shadow:none;border:0;border-radius:0;padding:0}.chessboard{border-radius:0}.piece-symbol{font-size:12.5vw}.board-caption{padding-inline:.75rem}.feedback-column{padding:0 .5rem .75rem}.feedback-panel{border-radius:16px}.review-actions{grid-template-columns:1fr}.promotion-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
