.piece[data-piece]{box-sizing:border-box}:root{--ink: #202523;--muted: #707873;--paper: #f4f1e8;--panel: #fbfaf5;--line: #d9d7cd;--green: #769656;--green-deep: #4d693d;--green-pale: #dfe8cf;--gold: #dcae56;--danger: #b95747;font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 78% 0%,#fffdf6 0,transparent 34%),var(--paper)}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.topbar{height:76px;padding:0 clamp(22px,4vw,72px);border-bottom:1px solid rgba(32,37,35,.14);display:flex;align-items:center;justify-content:space-between;background:#f4f1e8e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:19px;letter-spacing:-.4px}.brand strong{font-weight:700}.brand-mark{width:37px;height:37px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:10px 10px 14px;font-size:23px}.top-actions{display:flex;align-items:center;gap:8px}.nav-button{border:0;background:transparent;padding:11px 16px;border-radius:9px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.nav-button.active{color:var(--ink);background:#ffffff9e;box-shadow:inset 0 0 0 1px #2025231a}.voice-toggle{display:inline-flex;align-items:center;gap:7px;max-width:190px;border:1px solid var(--line);border-radius:9px;background:#ffffff8c;padding:9px 11px;color:var(--muted);cursor:pointer}.voice-toggle span{color:var(--green-deep);font-size:14px}.voice-toggle b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700}.voice-toggle.active{background:var(--green-pale);border-color:#b9c9a5;color:var(--green-deep)}.voice-toggle.hidden{display:none}.streak-pill{margin-left:7px;display:flex;align-items:center;gap:6px;font-size:12px;padding:8px 11px;border-left:1px solid var(--line);color:var(--muted)}.streak-pill span{color:var(--gold)}.streak-pill b{color:var(--ink)}main{width:min(1460px,calc(100% - clamp(24px,5vw,86px)));margin:0 auto}.hero{padding:clamp(42px,6vw,86px) 0 34px;display:flex;align-items:end;justify-content:space-between;gap:40px}.eyebrow,.section-kicker,.card-label{display:block;text-transform:uppercase;letter-spacing:1.8px;font-size:10px;font-weight:700;color:var(--green-deep)}h1{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(46px,5.2vw,78px);font-weight:400;letter-spacing:-2.5px;line-height:.94;margin:12px 0 0}h1 em{color:var(--green-deep);font-weight:400}.hero-copy{width:min(390px,100%);font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 4px}.trainer-grid{display:grid;grid-template-columns:minmax(230px,290px) minmax(440px,680px) minmax(260px,330px);gap:18px;align-items:start}.library-panel,.coach-panel{background:#fbfaf5d6;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 35px #272d290f}.library-panel{overflow:hidden}.side-tabs{display:grid;grid-template-columns:1fr 1fr;background:#e9e6dd;padding:5px;margin:14px;border-radius:10px}.side-tab{border:0;background:transparent;color:var(--muted);padding:10px 8px;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer}.side-tab.active{background:var(--panel);color:var(--ink);box-shadow:0 2px 8px #1d211f1a}.side-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;vertical-align:-1px;border:1px solid #858b87}.white-dot{background:#fff}.black-dot{background:#333835}.library-heading{padding:14px 18px 10px;display:flex;justify-content:space-between;align-items:end}.library-heading h2{margin:5px 0 0;font:400 24px/1 "Instrument Serif",Georgia,serif}.count-badge{background:var(--green-pale);color:var(--green-deep);font-size:10px;font-weight:700;border-radius:20px;padding:5px 8px}.level-filters{display:flex;gap:4px;overflow-x:auto;padding:7px 14px 12px;scrollbar-width:none}.filter{flex:0 0 auto;border:0;background:transparent;font-size:10px;color:var(--muted);padding:7px 8px;border-radius:6px;cursor:pointer}.filter.active{background:var(--ink);color:#fff}.opening-list{max-height:570px;overflow-y:auto;border-top:1px solid var(--line);scrollbar-width:thin}.opening-item{width:100%;border:0;border-bottom:1px solid rgba(217,215,205,.75);background:transparent;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:14px 16px;text-align:left;cursor:pointer;transition:background .18s,transform .18s}.opening-item:hover{background:#fff}.opening-item.active{background:var(--green-pale)}.opening-mini-icon{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:var(--item-accent);color:#fff;font:400 15px "Instrument Serif",serif}.opening-item b{display:block;font-size:12px;margin-bottom:3px}.opening-item p{margin:0;font-size:9px;line-height:1.25;color:var(--muted)}.level-dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}.opening-item[data-level=Intermediate] .level-dot{background:#7793ae}.opening-item[data-level=Advanced] .level-dot{background:#9a6c91}.board-panel{min-width:0}.board-toolbar{min-height:50px;display:flex;align-items:start;justify-content:flex-start;gap:8px}.mode-switch{display:flex;gap:3px;background:#e7e4da;border-radius:10px;padding:4px}.mode-button{border:0;background:transparent;border-radius:7px;padding:8px 14px;font-size:11px;color:var(--muted);font-weight:600;cursor:pointer}.mode-button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #2025231a}.correction-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;background:var(--panel);min-height:36px;padding:0 10px;color:var(--muted);font-size:9px;font-weight:700;cursor:pointer}.correction-toggle i{width:7px;height:7px;border-radius:50%;background:#a7aca8}.correction-toggle.active{color:var(--green-deep);border-color:#b9c9a5;background:var(--green-pale)}.correction-toggle.active i{background:var(--green);box-shadow:0 0 0 3px #76965626}.correction-toggle.hidden{display:none}.icon-button{border:1px solid var(--line);border-radius:9px;background:var(--panel);width:36px;height:36px;cursor:pointer;font-size:19px}.board-frame{background:#303531;padding:10px;border-radius:16px;box-shadow:0 22px 45px #15191630}.player-strip{color:#fff;height:52px;display:flex;align-items:center;gap:10px;padding:0 5px}.player-avatar{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:23px}.engine-avatar{background:#4a504b;color:#d9ded9}.user-avatar{background:#eee9d9;color:#3b433d}.player-strip b,.player-strip span{display:block}.player-strip b{font-size:11px}.player-strip div>span{font-size:9px;margin-top:2px;color:#9ea69f}.engine-state{margin-left:auto;font-size:9px;color:#abb3ac;display:flex;gap:5px;align-items:center}.next-move-chip{margin-left:auto;min-width:108px;padding:6px 10px;border:1px solid #4e554f;border-radius:8px;text-align:right;background:#262b27}.next-move-chip span{margin:0!important;color:#929b93!important;text-transform:uppercase;letter-spacing:.8px;font-size:7px!important}.next-move-chip b{margin-top:2px;color:#d9e7c5;font-size:12px!important;font-family:DM Sans,sans-serif}.engine-state i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#91b45e;box-shadow:0 0 0 3px #91b45e21}.board-wrap{position:relative;width:100%;height:auto;aspect-ratio:1 / 1;overflow:hidden}.chessboard{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:100%;height:100%;aspect-ratio:1 / 1;border-radius:3px;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.square{position:relative;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:1 / 1;overflow:hidden;border:0;padding:0;cursor:pointer}.square.light{background:#ebecd0}.square.dark{background:#779556}.square.last:after{content:"";position:absolute;inset:0;background:#f2de4e6b;pointer-events:none}.square.selected:after,.square.pointer-selected:after{content:"";position:absolute;inset:0;background:#f6e75e8c;pointer-events:none}.square.legal:before,.square.pointer-legal:before{content:"";position:absolute;z-index:3;width:23%;height:23%;border-radius:50%;background:#20252352;pointer-events:none}.square.legal.capture:before,.square.pointer-legal.pointer-capture:before{width:78%;height:78%;background:transparent;border:clamp(3px,.55vw,7px) solid rgba(32,37,35,.3)}.square.hint-square:before{content:"";position:absolute;z-index:3;inset:7%;border:4px solid rgba(255,220,91,.88);border-radius:10px;box-shadow:0 0 0 4px #ffdc5b2b}.piece{position:relative;z-index:4;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 2px 1px rgba(30,35,32,.18))}.chessboard.dragging{cursor:grabbing}.drag-ghost,.return-ghost{position:fixed;z-index:1000;pointer-events:none;object-fit:contain;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%) scale(1.06);filter:drop-shadow(0 10px 8px rgba(20,24,21,.28))}.coord{position:absolute;z-index:6;font-size:clamp(7px,.7vw,10px);font-weight:700;pointer-events:none}.rank-coord{top:3px;left:4px}.file-coord{right:4px;bottom:2px}.light .coord{color:#769656}.dark .coord{color:#eeeed2}.board-arrows{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:visible}.board-arrows line{stroke:#f6c646d6;stroke-width:22;stroke-linecap:round}.board-arrows polygon{fill:#f6c646e6}.coach-panel{padding:20px;min-height:688px;position:relative}.lesson-header{display:grid;grid-template-columns:47px 1fr;gap:12px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.opening-icon{width:47px;height:47px;border-radius:12px;color:#fff;background:var(--gold);display:grid;place-items:center;font:400 18px "Instrument Serif",serif}.lesson-level{text-transform:uppercase;letter-spacing:1.2px;font-size:8px;color:var(--green-deep);font-weight:700}.lesson-header h2{font:400 24px/1 "Instrument Serif",serif;margin:4px 0}.lesson-header p{margin:0;color:var(--muted);font-size:9px}.variation-picker{padding:14px 0 0}.variation-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.variation-label label{text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:8px;font-weight:700}.variation-label span{color:var(--green-deep);font-size:8px;font-weight:700}.variation-control{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px}.variation-control select{min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:9px 30px 9px 10px;font-size:9px;cursor:pointer}.variation-control button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green-deep);cursor:pointer;font-size:16px}.variation-control button:hover{background:var(--green-pale)}.progress-block{padding:16px 0 14px}.progress-label{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-bottom:7px}.progress-label b{color:var(--green-deep)}.progress-track{height:5px;border-radius:4px;background:#e4e2d9;overflow:hidden}.progress-track div{width:0%;height:100%;background:var(--green);border-radius:inherit;transition:width .3s}.coach-card{background:#eeece3;border-radius:10px;padding:14px;border-left:3px solid var(--gold)}.coach-card h3{font:400 19px "Instrument Serif",serif;margin:7px 0 5px}.coach-card p{font-size:10px;line-height:1.55;color:var(--muted);margin:0}.move-history-block{margin-top:16px}.history-heading{display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:8px;font-weight:700}.history-heading button{border:0;background:transparent;padding:0;color:var(--green-deep);cursor:pointer;font-size:8px;font-weight:700}.move-history{margin-top:8px;background:#f0eee6;min-height:62px;max-height:104px;overflow-y:auto;border-radius:9px;padding:8px;display:grid;grid-template-columns:22px 1fr 1fr;gap:3px 5px;align-content:start}.move-number{color:#999d98;font-size:9px;padding:4px}.move-san{font-size:10px;font-weight:600;border-radius:4px;padding:4px 6px}.move-san.current{background:var(--green-pale);color:var(--green-deep)}.feedback{display:flex;align-items:center;gap:10px;margin-top:14px;min-height:54px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#ffffff8f}.feedback-icon{width:28px;height:28px;border-radius:50%;background:var(--green-pale);color:var(--green-deep);display:grid;place-items:center;font-size:14px}.feedback b{font-size:10px}.feedback p{font-size:9px;color:var(--muted);margin:2px 0 0}.feedback.success{border-color:#b5c99c;background:#f2f6eb}.feedback.error{border-color:#dab2aa;background:#fbf1ef}.feedback.error .feedback-icon{background:#f1d5cf;color:var(--danger)}.coach-actions{margin-top:12px}.hint-button,.secondary-button{width:100%;border:1px solid #bfc5bb;background:transparent;padding:10px;border-radius:9px;font-size:10px;font-weight:700;cursor:pointer;transition:.2s}.hint-button:hover,.secondary-button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.hint-button span{color:var(--gold);margin-right:6px}.completion-card{position:absolute;inset:91px 20px 20px;z-index:5;border-radius:14px;background:#29322b;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px;box-shadow:0 18px 40px #14181540}.completion-card.hidden,.engine-controls.hidden{display:none}.completion-spark{font-size:25px;color:var(--gold)}.completion-card h3{font:400 31px "Instrument Serif",serif;margin:12px 0 6px}.completion-card p{font-size:11px;color:#bdc5be;line-height:1.6;margin:0 0 21px}.completion-card button{width:100%;border:0;border-radius:9px;padding:12px;background:#a9c77c;font-size:10px;font-weight:800;cursor:pointer}.completion-card .text-button{background:transparent;color:#c7cec8;margin-top:5px}.engine-controls{margin-top:16px;border-radius:11px;background:#2d332f;color:#fff;padding:15px}.engine-heading{display:flex;justify-content:space-between;align-items:start}.engine-heading .card-label{color:#a8ba92}.engine-heading h3{font:400 21px "Instrument Serif",serif;margin:5px 0 14px}.engine-heading>b{color:#c7dd9d;font:400 24px "Instrument Serif",serif}.engine-controls label{display:flex;justify-content:space-between;color:#e2e6e2;font-size:9px}.engine-controls label span{color:#949e96}#eloRange{width:100%;accent-color:#a7c774;margin:13px 0 2px}.elo-marks{display:flex;justify-content:space-between;color:#899189;font-size:7px}.engine-controls .secondary-button{margin-top:15px;border-color:#545c56;color:#d5dbd6}.curriculum-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:clamp(55px,8vw,110px) 0 50px;padding:36px 0;display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:28px;align-items:center}.curriculum-strip h2{font:400 clamp(24px,2.2vw,35px) "Instrument Serif",serif;margin:6px 0 0}.curriculum-item{display:flex;gap:12px;align-items:center}.curriculum-item>b{font:italic 400 25px "Instrument Serif",serif;color:#b6b4aa}.curriculum-item span,.curriculum-item strong{display:block}.curriculum-item strong{font-size:11px;margin-bottom:4px}.curriculum-item span{font-size:9px;color:var(--muted)}footer{width:min(1460px,calc(100% - clamp(24px,5vw,86px)));margin:0 auto;padding:0 0 34px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}footer>span{font:400 17px "Instrument Serif",serif;color:var(--ink)}footer p{margin:0}@media(max-width:1160px){.trainer-grid{grid-template-columns:230px minmax(440px,1fr)}.coach-panel{grid-column:1 / -1;min-height:auto;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.completion-card{position:fixed;inset:50%;width:min(380px,calc(100vw - 30px));height:380px;transform:translate(-50%,-50%)}.curriculum-strip{grid-template-columns:1fr 1fr}}@media(max-width:760px){.topbar{height:62px}.nav-button{display:none}.hero{padding-top:38px;display:block}.hero-copy{margin-top:22px}.trainer-grid{display:flex;flex-direction:column}.library-panel,.board-panel,.coach-panel{width:100%}.library-panel{order:2}.board-panel{order:1}.coach-panel{order:3;display:block}.opening-list{max-height:330px}.curriculum-strip{grid-template-columns:1fr}.curriculum-item{border-top:1px solid var(--line);padding-top:15px}.piece{font-size:clamp(34px,11vw,70px)}footer{display:block}footer p{margin-top:8px}}@media(max-width:440px){main{width:calc(100% - 20px)}.hero h1{font-size:44px}.topbar{padding:0 12px}.streak-pill{display:none}.board-frame{padding:7px}.player-strip{height:46px}.piece{font-size:12vw}.coach-panel{padding:16px}}
