:root{--cream:#f5f2e9;--forest:#244d3b;--sage:#b9c9ad;--ink:#202921;--muted:#667064;--line:#ddded1;--pale:#e5e9d8;--surface:#fcfaf4;--red:#9b4f3e;--gold:#b9975d;--radius:22px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button,a{touch-action:manipulation}a{color:var(--forest)}svg{display:block}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.04em}h1{font-size:42px;line-height:1.12}h2{font-size:30px;line-height:1.2}h3{font-size:17px;font-weight:600;line-height:1.35}p{line-height:1.6}.icon{width:21px;height:21px;flex-shrink:0}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.9px;text-transform:uppercase;font-weight:700;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:20px;background:var(--pale);font-size:11px;font-weight:600;color:var(--forest);white-space:nowrap}.pill .icon{width:14px;height:14px}.white-dot,.black-dot{width:9px;height:9px;display:inline-block;border-radius:50%;border:1px solid #72816f}.white-dot{background:#fffef6}.black-dot{background:var(--forest)}.skip-link{position:fixed;top:8px;left:8px;z-index:99;padding:12px;background:var(--forest);color:white;transform:translateY(-140%)}.skip-link:focus{transform:none}.loading-screen{min-height:100dvh;display:flex;gap:18px;align-items:center;justify-content:center;flex-direction:column}.loading-screen img{border-radius:14px}.loading-screen p{color:var(--muted)}.error-screen{max-width:560px;margin:auto;padding:80px 24px;min-height:100dvh}.error-screen h1{margin-bottom:20px}.error-screen button{margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:14px;padding:14px 20px;min-height:48px;font-size:13px;font-weight:600;text-decoration:none;transition:background .18s,transform .18s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--forest);color:#fffef8}.btn-primary:hover{background:#1b402f}.btn-secondary{border-color:var(--line);background:#fffdf66e}.btn-secondary:hover{background:var(--pale)}.btn-quiet{background:transparent;padding:8px 0;min-height:36px;color:var(--forest)}.btn-quiet:hover{color:#102e20}.btn-small{min-height:37px;padding:9px 13px;font-size:12px;border-radius:10px}.btn-full{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:12px;background:transparent}.icon-btn:hover{background:var(--pale)}.icon-btn.saved{background:var(--pale);color:var(--forest)}.icon-btn.saved .icon{fill:var(--sage)}.text-link{font-size:12px;font-weight:600;color:var(--forest);background:transparent;border:0;display:inline-flex;align-items:center;gap:7px;padding:6px 0}.text-link .icon{width:16px;height:16px}.full{width:100%}.stack{display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.notice{font-size:12px;line-height:1.55;padding:12px 16px;background:#f5e8d8;border:1px solid #dfc7a6;border-radius:12px;margin-bottom:20px;color:#674c2c}
.app-shell{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:36px 23px 24px;background:#f4f1e7}.brand{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:11px;padding:0}.brand img{width:36px;height:36px;border-radius:11px}.brand-name{font-family:Georgia,serif;font-size:28px;letter-spacing:-1.5px}.brand-sub{display:block;font:9px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:4px}.nav-list{display:flex;flex-direction:column;gap:9px;margin-top:48px}.nav-link{display:flex;align-items:center;gap:13px;border:0;background:transparent;border-radius:13px;padding:15px 16px;font-size:13px;text-align:left;text-decoration:none;color:var(--muted);font-weight:500}.nav-link:hover{background:#e9eadf}.nav-link.active{background:var(--forest);color:#fffef6}.nav-link.active .icon{color:#dbe3ce}.sidebar-bottom{margin-top:auto}.sidebar-note{font-size:11px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:16px}.sidebar-note .icon{width:15px;height:15px;display:inline-block;vertical-align:middle;margin-right:6px}.sidebar-tag{margin-top:6px;font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:#858b7b}.main{width:100%;max-width:1440px;padding:38px 46px 48px;margin:auto;align-self:start}.mobile-header,.mobile-nav{display:none}.page-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:29px;gap:20px}.page-top .eyebrow{display:flex;align-items:center;gap:8px}.page-top .eyebrow .icon{width:15px;height:15px}.date-label{font-size:11px;color:var(--muted)}.page-intro{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:30px}.page-intro p{font-size:13px;color:var(--muted);margin-top:12px;max-width:510px}.header-meta{display:flex;gap:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-head h2{font-size:25px}.section-head .eyebrow{margin-bottom:7px}.small-description{font-size:12px;color:var(--muted);line-height:1.6}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:start}.daily-strip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;padding:21px 26px;margin-bottom:24px}.daily-stat{display:flex;align-items:center;gap:13px;padding:0 22px;border-left:1px solid var(--line)}.daily-stat:first-child{padding-left:0;border-left:0}.daily-stat:last-child{padding-right:0}.stat-icon{color:var(--forest);background:var(--pale);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.daily-stat strong{font-size:14px;font-weight:600;display:block}.daily-stat small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.goal-mini{height:4px;border-radius:4px;background:var(--line);width:100%;max-width:160px;margin-top:8px;overflow:hidden}.goal-mini span{display:block;height:100%;background:var(--forest);border-radius:4px}.hero-card{background:var(--forest);color:var(--cream);padding:30px;border:0;position:relative;overflow:hidden}.hero-card .eyebrow{color:#c3d0b5}.hero-card h2{font-size:34px;margin-top:16px;max-width:260px;position:relative;z-index:1}.hero-card p{font-size:12px;color:#d3decb;max-width:260px;margin-top:13px;position:relative;z-index:1}.hero-card .hero-content{position:relative;z-index:1}.hero-card .pawn-art{position:absolute;right:-4px;top:32px;opacity:.94;transform:scale(.9);transform-origin:right center}.hero-card .art-orbit{background:#b9c9ad1c}.hero-card .btn-primary{background:var(--cream);color:var(--forest);margin-top:23px;padding:14px 19px}.hero-card .btn-primary:hover{background:#e6ebd8}.hero-meta{display:flex;gap:13px;font-size:10px;color:#cbd5c0;margin-top:20px;align-items:center}.hero-meta span{display:flex;align-items:center;gap:5px}.hero-meta .icon{width:13px;height:13px}.pawn-art{position:relative;width:174px;height:181px;flex-shrink:0}.art-orbit{position:absolute;width:148px;height:148px;border-radius:50%;background:#b9c9ad5e;right:4px;top:9px}.art-piece{position:absolute;width:102px;height:142px;display:flex;align-items:center;filter:drop-shadow(3px 7px 3px #13352226)}.art-light{right:0;top:-8px;transform:rotate(7deg)}.art-dark{left:0;bottom:0;transform:rotate(-7deg)}.art-piece .piece{width:100%;height:100%}.study-method{display:flex;gap:14px;padding:18px 4px}.study-method .stat-icon{width:32px;height:32px}.study-method .icon{width:16px;height:16px}.study-method h3{font-size:12px}.study-method p{font-size:11px;margin-top:4px;color:var(--muted)}.review-card{padding:23px;margin-top:4px;display:flex;align-items:center;gap:18px}.review-card .stat-icon{width:44px;height:44px}.review-card h3{font-size:14px}.review-card p{font-size:11px;color:var(--muted);margin-top:5px}.review-card .btn{margin-left:auto;flex-shrink:0}.preview-card{padding:23px}.preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.preview-head h3{font-family:Georgia,serif;font-weight:400;font-size:20px;letter-spacing:-.4px}.preview-card .board-wrap{max-width:380px;margin:auto}.preview-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px}.preview-bottom p{font-size:11px;color:var(--muted);max-width:240px}.preview-bottom .btn{flex-shrink:0}.next-move-label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);padding-top:12px}.next-move-label .icon{width:13px;height:13px}.saved-section{margin-top:36px}.dashboard-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.library-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.search-field{position:relative;flex:1;min-width:200px}.search-field .icon{position:absolute;left:15px;top:15px;width:18px;height:18px;color:var(--muted);pointer-events:none}.search-field input{width:100%;height:49px;border:1px solid var(--line);border-radius:13px;padding:12px 38px 12px 44px;background:var(--surface);color:var(--ink);font-size:12px}.search-field input::placeholder{color:#859080}.segment{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#e8eadf;border:1px solid var(--line);border-radius:12px}.segment button{border:0;background:transparent;font-size:11px;padding:10px 13px;border-radius:8px;color:var(--muted);font-weight:600;min-height:34px}.segment button.active{background:var(--surface);color:var(--forest);box-shadow:0 1px 4px #20332410}.filter-toggle{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:11px;height:49px;color:var(--muted)}.filter-toggle .icon{width:16px;height:16px}.filter-toggle.active{background:var(--pale);border-color:#adbaa2;color:var(--forest)}.library-caption{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:15px;margin-bottom:17px}.empty-state{text-align:center;padding:52px 28px;border:1px dashed #bbc5b2;border-radius:20px;background:#ffffff30}.empty-state .icon{width:34px;height:34px;color:var(--forest);margin:0 auto 16px}.empty-state h2{font-size:26px}.empty-state p{font-size:12px;color:var(--muted);margin:12px auto 20px;max-width:420px}.course-intro{margin-bottom:24px}.course-intro h1{margin-top:16px}.course-intro .pill{margin-right:6px}.course-intro p{margin-top:13px;max-width:700px;font-size:13px;color:var(--muted)}.course-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:21px;flex-wrap:wrap}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:start}.course-side{position:sticky;top:25px}.course-side-card{padding:23px}.course-side-card .eyebrow{margin-bottom:17px}.course-side-card h2{font-size:24px;margin-bottom:12px}.course-side-card>p{font-size:12px;color:var(--muted);margin-bottom:20px}.course-side-card .btn{margin-top:11px}.progress-track{width:100%;height:5px;background:var(--line);border-radius:5px;overflow:hidden;margin:14px 0 9px}.progress-track span{height:100%;display:block;background:var(--forest)}.progress-caption{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:20px}.method-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:18px}.method-list li{display:flex;gap:11px;align-items:center;font-size:11px;color:var(--muted)}.method-list .num{width:25px;height:25px;background:var(--pale);color:var(--forest);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;flex-shrink:0}.chapter{border:1px solid var(--line);border-radius:18px;background:var(--surface);margin-top:18px;overflow:hidden}.chapter:first-of-type{margin-top:0}.chapter summary{list-style:none;cursor:pointer;padding:21px;display:flex;align-items:center;gap:15px}.chapter summary::-webkit-details-marker{display:none}.chapter summary>.icon{margin-left:auto;width:16px;height:16px;transition:transform .2s}.chapter[open] summary>.icon{transform:rotate(90deg)}.chapter-number{font:19px Georgia,serif;color:#8c997f;border:1px solid var(--line);width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chapter summary h3{font-size:13px}.chapter summary p{font-size:10px;margin-top:5px;color:var(--muted)}.chapter-description{font-size:11px;color:var(--muted);padding:0 21px 17px;max-width:600px}.line-item{display:grid;grid-template-columns:29px minmax(0,1fr) 16px;gap:13px;align-items:center;padding:17px 21px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.line-item:hover{background:#e8edde6e}.line-stage{width:27px;height:27px;border:1px solid #cbd3c0;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:10px;color:var(--muted)}.line-stage.started{background:#e9ecd9;color:var(--forest)}.line-stage.learned{background:var(--forest);color:var(--cream);border-color:var(--forest)}.line-stage .icon{width:13px;height:13px}.line-item h3{font-size:12px;font-weight:600;line-height:1.5}.line-item p{font-size:10px;color:var(--muted);margin-top:4px}.line-notation{font-family:ui-monospace,SFMono-Regular,monospace;font-size:9px;color:#829077;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-item>.icon{width:14px;height:14px;color:var(--muted)}.line-count-note{font-size:11px;padding:17px;color:var(--muted);text-align:center}.course-search{margin-bottom:17px}.back-link{display:inline-flex;gap:7px;align-items:center;font-size:11px;text-decoration:none;color:var(--muted);margin-bottom:17px}.back-link .icon{width:15px;height:15px}.back-link:hover{color:var(--forest)}.line-detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;align-items:start}.line-detail-board{padding:22px}.line-detail-copy{padding-top:8px}.line-detail-copy h1{font-size:36px;line-height:1.18;margin:17px 0 15px}.line-detail-copy>p{font-size:13px;color:var(--muted)}.line-detail-meta{display:flex;gap:16px;align-items:center;margin:20px 0;font-size:11px;color:var(--muted)}.line-detail-meta span{display:flex;align-items:center;gap:6px}.line-detail-meta .icon{width:15px;height:15px}.phase-path{display:flex;gap:4px;margin:26px 0 20px}.phase-node{flex:1;background:#e5e8dc;padding:10px 6px;border-radius:9px;font-size:10px;text-align:center;color:var(--muted)}.phase-node.complete{background:var(--forest);color:var(--cream)}.phase-node.current{border:1px solid #9dae90;color:var(--forest)}.notation-card{padding:16px;font:11px/1.9 ui-monospace,SFMono-Regular,monospace;color:var(--forest);margin-top:18px}.line-detail-copy .btn-quiet{display:flex;margin:auto}.line-notes{padding:22px;margin-top:24px}.line-notes h2{font-size:23px;margin-bottom:20px}.line-note{display:flex;gap:14px;margin-top:19px;font-size:12px}.line-note .num{border-radius:50%;width:27px;height:27px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--pale);color:var(--forest);font-size:10px}.line-note p{color:var(--muted);font-size:11px;margin-top:5px}
.board-wrap{position:relative;aspect-ratio:1;width:100%;border-radius:9px;overflow:hidden;box-shadow:0 2px 4px #1b35221a;border:1px solid #9daf948c}.board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;height:100%;position:absolute;inset:0;isolation:isolate}.square{position:relative;border:0;padding:0;margin:0;border-radius:0;background:#eeeede;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;aspect-ratio:1;user-select:none;color:#5e7454}.square.dark{background:#acbea0;color:#edeee2}.square .piece{width:86%;height:86%;filter:drop-shadow(0 2px 1px #17352025);pointer-events:none;z-index:2}.square.selected{background:#96b175}.square.last{box-shadow:inset 0 0 0 100px #d5cb7633}.square.correct{box-shadow:inset 0 0 0 100px #b1bc5366}.square.legal::after{content:"";width:22%;height:22%;position:absolute;border-radius:50%;background:#244d3b44;z-index:3;pointer-events:none}.square.legal.has-piece::after{width:88%;height:88%;background:transparent;border:4px solid #244d3b50}.square .rank-label{position:absolute;top:3px;left:4px;font-size:9px;font-weight:600;z-index:4;pointer-events:none}.square .file-label{position:absolute;bottom:2px;right:4px;font-size:9px;font-weight:600;z-index:4;pointer-events:none}.board.interactive .square{touch-action:none;cursor:pointer}.board.interactive .square.has-piece{cursor:grab}.board.interactive .square:active{cursor:grabbing}.board .square:focus-visible{outline:3px solid var(--forest);outline-offset:-3px;z-index:5}.board-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.drag-piece{position:fixed;pointer-events:none;z-index:90;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 6px #19362045)}.drag-piece .piece{width:100%;height:100%}.square.drag-source .piece{opacity:.2}.square.drag-target{box-shadow:inset 0 0 0 4px #244d3b77}.board-readonly .square{cursor:default}.board-tools{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:17px;font-size:11px;color:var(--muted)}.board-tools .icon-btn{width:33px;height:33px;border-radius:10px}.board-tools .icon{width:16px;height:16px}.board-tip{font-size:10px;color:var(--muted);text-align:center;margin-top:15px}.study-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.study-top h1{font-size:30px;line-height:1.25}.study-top .eyebrow{margin-bottom:8px}.study-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.85fr);gap:30px;align-items:start}.study-board-card{padding:22px}.study-panel{padding:26px}.study-mode{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:20px;border-bottom:1px solid var(--line)}.study-mode .eyebrow{color:var(--forest)}.move-counter{font-size:11px;color:var(--muted)}.study-panel h2{font-size:28px;margin:23px 0 14px;line-height:1.23}.study-panel>.prompt{font-size:13px;color:var(--muted);min-height:52px}.step-dots{display:flex;gap:7px;margin:20px 0}.step-dot{width:27px;height:27px;background:#e7ebdd;border:1px solid transparent;color:#7f8c78;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px}.step-dot.done{background:var(--forest);color:var(--cream)}.step-dot.current{border-color:var(--forest);color:var(--forest);background:transparent}.step-dot .icon{width:12px;height:12px}.hint-box,.explanation-box{padding:17px;border-radius:14px;background:var(--pale);color:var(--forest);font-size:12px;line-height:1.6;margin-top:22px}.hint-box .eyebrow,.explanation-box .eyebrow{color:var(--forest);display:flex;align-items:center;gap:7px;margin-bottom:9px;font-size:9px}.hint-box .icon,.explanation-box .icon{width:15px;height:15px}.feedback{padding:13px 15px;border-radius:12px;font-size:12px;line-height:1.5;margin:17px 0;background:#f3e4db;color:var(--red)}.feedback.good{background:#e2ead8;color:var(--forest)}.study-panel .btn-full{margin-top:22px}.study-helps{display:flex;justify-content:space-between;margin-top:21px;border-top:1px solid var(--line);padding-top:15px;gap:10px}.study-helps .text-link{font-size:11px}.study-helps .icon{width:15px;height:15px}.session-strip{font-size:10px;color:var(--muted);display:flex;gap:12px;margin-top:17px;flex-wrap:wrap}.session-strip span{display:flex;align-items:center;gap:5px}.session-strip .icon{width:13px;height:13px}.played-moves{padding:19px;margin-top:18px}.played-moves .eyebrow{margin-bottom:12px}.played-moves p{font:12px/1.8 ui-monospace,SFMono-Regular,monospace;word-spacing:7px;color:var(--forest);min-height:22px}.summary{max-width:640px;margin:35px auto;text-align:center}.summary-symbol{height:72px;width:72px;margin:0 auto 23px;background:var(--pale);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--forest)}.summary-symbol .icon{width:31px;height:31px}.summary h1{margin:13px 0}.summary>p{color:var(--muted);font-size:13px;max-width:480px;margin:0 auto}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:28px 13px;margin:29px 0;text-align:center}.summary-stats>div{border-left:1px solid var(--line)}.summary-stats>div:first-child{border-left:0}.summary-stats strong{font:31px Georgia,serif;display:block;color:var(--forest)}.summary-stats small{font-size:11px;color:var(--muted);display:block;margin-top:8px}.summary-next{padding:24px;text-align:left;margin-bottom:22px}.summary-next .eyebrow{margin-bottom:12px}.summary-next h2{font-size:24px}.summary-next p{font-size:12px;color:var(--muted);margin-top:9px}.summary>.btn{margin-top:5px}.summary .btn-quiet{display:flex;margin:14px auto}
.progress-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:27px}.metric-card{padding:23px}.metric-card .icon{color:var(--forest);margin-bottom:21px}.metric-card strong{display:block;font:36px Georgia,serif;color:var(--forest);letter-spacing:-1px}.metric-card p{font-size:11px;color:var(--muted);margin-top:7px}.activity-card{padding:26px;margin-bottom:28px}.activity-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:21px;gap:10px}.activity-head h2{font-size:25px}.activity-head p{font-size:11px;color:var(--muted)}.activity-days{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:9px}.activity-day{display:flex;flex-direction:column;align-items:center;gap:9px}.activity-box{width:100%;aspect-ratio:1;border-radius:9px;background:#e7eade;max-width:48px;display:flex;align-items:center;justify-content:center;color:#7e8e73;font-size:10px}.activity-box.studied{background:var(--sage);color:var(--forest)}.activity-box.today{border:1px solid var(--forest)}.activity-day small{font-size:9px;color:var(--muted)}.progress-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}.progress-list{padding:8px 21px}.progress-row{display:flex;gap:14px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}.progress-row:first-child{border-top:0}.progress-row .stat-icon{height:33px;width:33px}.progress-row .icon{height:16px;width:16px}.progress-row h3{font-size:12px}.progress-row p{font-size:10px;color:var(--muted);margin-top:5px}.progress-row strong{font-size:11px;color:var(--forest);margin-left:auto;text-align:right;line-height:1.6}.progress-row strong small{font-weight:400;color:var(--muted);font-size:9px}.history-meta{margin-left:auto;font-size:9px;color:var(--muted);text-align:right;flex-shrink:0}.settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:26px;max-width:940px}.settings-card{padding:27px}.settings-card h2{font-size:25px;margin-bottom:23px}.field-label{font-size:12px;font-weight:600;display:block;margin-bottom:10px}.field-hint{font-size:11px;line-height:1.6;color:var(--muted);margin:9px 0 22px}.field{margin-bottom:25px}.field input[type=range]{width:100%;accent-color:var(--forest);margin-top:10px}.field input[type=number],.field select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px;color:var(--ink);font-size:12px}.rating-display{font:34px Georgia,serif;color:var(--forest);margin-bottom:10px}.goal-choices{display:flex;gap:10px}.goal-choice{flex:1;background:transparent;border:1px solid var(--line);border-radius:13px;padding:15px 8px;text-align:center}.goal-choice.active{background:var(--pale);border-color:#adbaa2;color:var(--forest)}.goal-choice strong{font-size:17px;display:block}.goal-choice small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.privacy-item{display:flex;gap:12px;align-items:start;margin:20px 0}.privacy-item .icon{width:19px;height:19px;color:var(--forest)}.privacy-item h3{font-size:12px}.privacy-item p{font-size:11px;color:var(--muted);margin-top:6px}.license-links{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:19px;margin-top:23px;line-height:1.8}.license-links a{display:block}
.onboarding-shell{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.onboarding-brand{background:var(--forest);color:var(--cream);display:flex;flex-direction:column;justify-content:space-between;padding:46px 70px;overflow:hidden;position:relative}.onboarding-brand .brand-name{color:var(--cream)}.onboarding-brand .brand-sub{color:#acbfa7}.onboarding-brand .brand img{border:1px solid #b9c9ad44}.onboarding-art{align-self:center;transform:scale(1.7);margin:55px 0 35px}.onboarding-brand h2{font-size:46px;line-height:1.13;max-width:370px;margin-bottom:20px}.onboarding-brand p{font-size:13px;max-width:325px;color:#cbd7c2}.onboarding-footer{font-size:10px;letter-spacing:.5px;color:#c0cdb9;display:flex;gap:8px;align-items:center;margin-top:35px}.onboarding-footer .icon{width:14px;height:14px}.onboarding-form{padding:70px 65px;display:flex;flex-direction:column;justify-content:center;max-width:600px;justify-self:center;width:100%}.onboarding-form h1{font-size:39px;margin:18px 0}.onboarding-form>.onboarding-description{font-size:13px;color:var(--muted);margin-bottom:32px}.onboarding-form .btn-full{margin-top:26px}.onboarding-stepbar{display:flex;gap:6px;margin-bottom:28px}.onboarding-stepbar span{width:29px;height:4px;background:var(--line);border-radius:4px}.onboarding-stepbar span.active{background:var(--forest)}.onboarding-benefits{display:grid;gap:22px;margin:20px 0 5px}.onboarding-benefits>div{display:flex;gap:13px;align-items:center}.onboarding-benefits .icon{color:var(--forest)}.onboarding-benefits h3{font-size:13px}.onboarding-benefits p{font-size:11px;color:var(--muted);margin-top:5px}.onboarding-form .btn-quiet{font-size:11px;align-self:center;margin-top:13px}.check-field{display:flex;gap:9px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:20px}.check-field input{accent-color:var(--forest);height:17px;width:17px}.onboarding-final{padding:22px;margin-top:9px}.onboarding-final p{font-size:12px;color:var(--muted);margin-top:10px}
.modal-backdrop{position:fixed;inset:0;background:#13291db0;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;backdrop-filter:blur(5px)}.modal{background:var(--cream);border:1px solid var(--line);border-radius:25px;width:min(100%,460px);max-height:calc(100dvh - 40px);overflow:auto;padding:28px;box-shadow:0 20px 70px #13291d44}.modal-head{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:14px}.modal h2{font-size:28px}.modal p{font-size:12px;color:var(--muted)}.modal-actions{display:flex;gap:12px;margin-top:25px}.modal-actions .btn{flex:1}.promotion-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:22px}.promotion-choice{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:10px}.promotion-choice:hover{background:var(--pale)}.promotion-choice .piece{width:66px;height:66px;max-width:100%}.modal-board{margin-top:18px}.replay-tools{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:19px}.replay-tools span{font-size:11px;color:var(--muted);min-width:62px;text-align:center}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--forest);color:var(--cream);padding:13px 21px;border-radius:13px;font-size:12px;box-shadow:0 5px 24px #152d2030;z-index:120;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 30px);width:max-content}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){.main{padding:45px 64px}.dashboard-grid{gap:30px}.hero-card{padding:36px}.hero-card h2{font-size:39px;max-width:315px}.hero-card .pawn-art{right:14px}.preview-card .board-wrap{max-width:425px}.study-layout{grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:40px}.study-board-card{max-width:680px}.study-panel{padding:32px}}
@media(max-width:1200px){.sidebar{padding:32px 17px}.app-shell{grid-template-columns:194px minmax(0,1fr)}.main{padding:30px 30px 40px}.hero-card{padding:24px}.hero-card .pawn-art{right:-26px;opacity:.5;transform:scale(.85)}.hero-card h2{font-size:31px}.hero-card p{max-width:230px}.daily-strip{padding:20px}.daily-stat{padding:0 15px;gap:9px}.stat-icon{height:33px;width:33px}.daily-stat strong{font-size:12px}.daily-stat small{font-size:9px}.course-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.course-side-card{padding:20px}.study-layout{gap:20px;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr)}.study-panel{padding:22px}.study-panel h2{font-size:26px}.progress-stats{gap:12px}.metric-card{padding:19px}.metric-card strong{font-size:31px}.metric-card p{font-size:10px}.activity-days{gap:6px}.onboarding-brand{padding:40px}.onboarding-form{padding:45px}.onboarding-brand h2{font-size:40px}}
@media(max-width:950px){.app-shell{grid-template-columns:164px minmax(0,1fr)}.sidebar{padding:28px 13px}.brand-name{font-size:25px}.brand{gap:9px}.brand img{width:30px;height:30px;border-radius:9px}.brand-sub{font-size:8px;letter-spacing:1.2px}.nav-link{padding:14px 12px;font-size:12px;gap:10px}.nav-link .icon{width:18px;height:18px}.main{padding:27px 24px}.page-intro h1{font-size:34px}.page-intro .header-meta{display:none}.dashboard-grid{grid-template-columns:1fr;gap:18px}.hero-card h2{max-width:320px}.hero-card p{max-width:320px}.hero-card .pawn-art{right:24px;opacity:.9;transform:scale(1)}.preview-card .board-wrap{max-width:380px}.preview-card{display:none}.daily-stat .stat-icon{display:none}.course-layout{grid-template-columns:1fr}.course-side{position:static;grid-row:1}.course-side-card{padding:20px}.course-side-card .method-list{display:none}.course-side-card .btn-full{width:auto;margin:0 8px 0 0;font-size:11px;padding:11px 13px;min-height:40px}.course-side-card h2{font-size:22px}.course-side-card>p{margin-bottom:10px}.course-side-card .progress-caption{margin-bottom:14px}.study-layout{grid-template-columns:1fr}.study-board-card{max-width:580px;width:100%;margin:auto}.study-panel{width:100%}.study-panel>.prompt{min-height:0}.study-panel h2{font-size:25px;margin-top:17px}.study-mode{padding-bottom:13px}.hint-box,.explanation-box{margin-top:15px}.played-moves{margin-top:17px}.study-top h1{font-size:26px}.study-panel .btn-full{margin-top:17px}.line-detail-grid{grid-template-columns:1fr}.line-detail-board{max-width:530px;margin:auto;width:100%}.line-detail-copy{grid-row:1}.line-detail-copy h1{font-size:31px}.line-detail-copy .phase-path{margin:18px 0 15px}.progress-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-split{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.activity-box{border-radius:6px}.activity-day small{font-size:8px}.activity-head p{font-size:9px}.onboarding-art{transform:scale(1.45)}.onboarding-brand{padding:35px}.onboarding-form{padding:35px}.onboarding-brand h2{font-size:35px}.onboarding-form h1{font-size:32px}}
@media(max-width:700px){.app-shell{display:block}.sidebar{display:none}.main{padding:22px 21px 108px;max-width:570px}.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:19px 21px 16px;border-bottom:1px solid var(--line)}.mobile-header .brand img{width:30px;height:30px}.mobile-header .brand-name{font-size:24px}.mobile-header .brand-sub{display:none}.mobile-header .icon-btn{height:33px;width:33px;border:0}.mobile-header .pill{font-size:10px;padding:6px 10px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;gap:5px;align-items:center;justify-content:space-around;padding:9px 15px calc(9px + env(safe-area-inset-bottom));background:#f5f2e9f5;border-top:1px solid var(--line);backdrop-filter:blur(18px)}.mobile-nav .nav-link{flex:1;flex-direction:column;gap:5px;justify-content:center;padding:9px 10px 7px;border-radius:11px;font-size:9px}.mobile-nav .nav-link.active{background:var(--pale);color:var(--forest)}.mobile-nav .nav-link.active .icon{color:var(--forest)}.mobile-nav .nav-link .icon{height:20px;width:20px}.page-top{margin-bottom:23px}.page-top .eyebrow{font-size:9px}.date-label{font-size:10px}.page-intro{margin-bottom:24px}.page-intro h1{font-size:35px}.page-intro p{font-size:12px;margin-top:10px}.dashboard-grid{gap:14px}.daily-strip{padding:18px 15px;gap:6px;margin-bottom:20px;border-radius:17px}.daily-stat{padding:0 12px;display:block}.daily-stat strong{font-size:12px}.daily-stat small{font-size:9px}.hero-card{padding:26px;border-radius:21px}.hero-card h2{font-size:32px;max-width:245px}.hero-card p{max-width:230px;font-size:11px}.hero-card .pawn-art{right:-12px;top:45px;transform:scale(.8);opacity:.6}.hero-card .btn-primary{margin-top:21px;min-height:46px;font-size:12px}.hero-meta{gap:11px;font-size:9px}.study-method{padding:16px 2px}.review-card{padding:19px;gap:13px;border-radius:18px}.review-card .stat-icon{width:35px;height:35px}.review-card h3{font-size:13px}.review-card p{font-size:10px}.review-card .btn{padding:10px 12px;font-size:11px;min-height:36px}.saved-section{margin-top:27px}.section-head h2{font-size:24px}.dashboard-footer{font-size:9px;margin-top:20px}.dashboard-footer>span:last-child{display:none}.library-toolbar{gap:11px}.library-toolbar .search-field{flex-basis:100%}.library-toolbar .segment{flex:1;justify-content:space-around}.library-toolbar .segment button{flex:1}.filter-toggle{height:45px;padding:10px 12px;font-size:10px}.filter-toggle .icon{width:14px;height:14px}.library-caption{font-size:9px;margin-bottom:15px}.course-intro h1{font-size:35px}.course-intro p{font-size:12px}.course-actions{gap:12px}.course-actions .btn{font-size:11px;padding:11px 13px;min-height:42px}.course-actions .segment button{padding:9px 10px}.course-layout{gap:18px}.course-side-card .btn-full{padding:10px 11px;font-size:10px;margin-right:3px}.chapter summary{padding:18px 16px;gap:11px}.chapter-number{width:34px;height:34px;font-size:17px;border-radius:10px}.chapter summary h3{font-size:12px}.chapter summary p{font-size:9px}.chapter-description{padding:0 16px 16px;font-size:10px}.line-item{padding:15px 16px;gap:11px;grid-template-columns:25px minmax(0,1fr) 14px}.line-stage{height:25px;width:25px}.line-item h3{font-size:11px}.line-item p{font-size:9px}.line-notation{font-size:8px}.line-detail-copy h1{font-size:33px}.line-detail-copy>p{font-size:12px}.line-detail-grid{gap:21px}.line-detail-board{padding:16px}.line-detail-meta{font-size:10px}.line-notes{padding:19px}.line-note p{font-size:11px}.study-top{gap:12px;margin-bottom:17px}.study-top h1{font-size:24px}.study-top .eyebrow{font-size:9px;letter-spacing:1.5px}.study-top .btn{font-size:10px;min-height:35px;padding:9px 12px}.study-layout{gap:16px}.study-board-card{padding:14px;border-radius:18px}.board-wrap{border-radius:7px}.square .rank-label,.square .file-label{font-size:8px}.board-tools{padding-top:12px;font-size:10px}.board-tip{font-size:9px;margin-top:10px}.study-panel{padding:21px;border-radius:18px}.study-panel h2{font-size:26px;line-height:1.22}.study-panel>.prompt{font-size:12px;line-height:1.6}.study-mode .eyebrow{font-size:9px;letter-spacing:1.2px}.move-counter{font-size:10px}.step-dots{margin:17px 0}.hint-box,.explanation-box{font-size:11px;padding:15px}.session-strip{font-size:9px}.played-moves{padding:17px}.played-moves p{font-size:11px}.summary{margin:25px auto}.summary h1{font-size:35px}.summary>p{font-size:12px}.summary-stats{padding:23px 9px}.summary-stats strong{font-size:28px}.summary-stats small{font-size:10px}.summary-next{padding:21px}.progress-stats{gap:13px;margin-bottom:23px}.metric-card{padding:20px;border-radius:18px}.metric-card .icon{margin-bottom:18px;width:19px;height:19px}.metric-card strong{font-size:32px}.metric-card p{font-size:10px}.activity-card{padding:20px;margin-bottom:24px}.activity-head{align-items:start;flex-direction:column;gap:7px}.activity-head h2{font-size:24px}.activity-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:15px 8px}.activity-box{border-radius:8px}.activity-day small{font-size:9px}.progress-split{gap:24px}.settings-card{padding:22px}.settings-card h2{font-size:24px}.onboarding-shell{display:block}.onboarding-brand{padding:24px;min-height:292px}.onboarding-brand .brand img{width:32px;height:32px}.onboarding-art{position:absolute;right:11px;bottom:27px;transform:scale(.98);opacity:.75;margin:0}.onboarding-brand h2{font-size:32px;max-width:245px;margin:35px 0 13px}.onboarding-brand p{font-size:11px;max-width:230px}.onboarding-footer{font-size:9px;margin-top:20px}.onboarding-form{padding:31px 25px 35px;max-width:490px}.onboarding-form h1{font-size:32px;margin:11px 0 14px}.onboarding-form>.onboarding-description{font-size:12px;margin-bottom:23px}.onboarding-stepbar{margin-bottom:18px}.onboarding-benefits{gap:18px;margin:5px 0}.onboarding-benefits h3{font-size:12px}.onboarding-benefits p{font-size:10px}.onboarding-form .btn-full{margin-top:22px}.onboarding-final{padding:19px}.modal{padding:24px}.modal h2{font-size:26px}.modal-actions .btn{font-size:11px;padding:12px 14px}.promotion-choice .piece{height:60px}.promotion-choice{font-size:9px}#toast{bottom:85px}.notice{font-size:11px}.settings-grid{gap:19px}}
@media(max-width:370px){.main{padding-left:16px;padding-right:16px}.daily-stat{padding:0 9px}.daily-stat strong{font-size:11px}.hero-card{padding:23px}.hero-card .pawn-art{right:-32px;opacity:.35}.hero-card h2{font-size:30px}.onboarding-brand h2{font-size:29px;max-width:215px}.onboarding-brand .onboarding-art{right:-14px;opacity:.45}.course-side-card .btn-full{font-size:9px;padding:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body{overflow-anchor:none}.study-mobile-actions,.study-mobile-prompt{display:none}
.search-field{display:block}

.study-auto-flow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.auto-flow-caption{font-size:11px;line-height:1.5;color:var(--muted)}
.study-auto-flow .btn{flex-shrink:0}
.move-idea{margin-top:18px;padding:16px;border-radius:14px;background:var(--pale);color:var(--forest)}
.move-idea .eyebrow{display:flex;align-items:center;gap:6px;color:var(--forest);font-size:9px;margin-bottom:8px}
.move-idea .icon{width:14px;height:14px}
.move-idea p{font-size:12px;line-height:1.7}
.summary-idea{padding:6px 18px 18px;text-align:left;margin-bottom:22px}
.summary-idea .move-idea{margin-top:12px}

.square.reply-moving{z-index:6}.square.reply-moving .piece{will-change:transform}

.coaching-notes{display:grid;gap:15px;margin:18px 0}.coaching-notes .eyebrow{font-size:9px;letter-spacing:1px;color:var(--forest)}.coaching-notes p{font-size:13px;line-height:1.65;color:var(--muted);margin-top:5px}.learning-reason{font-size:11px;color:var(--forest);padding:10px 0;border-bottom:1px solid var(--line)}
.study-exit-actions{display:flex;gap:8px;flex-shrink:0}
.study-mobile-reason{display:none}
@media(max-width:700px){.study-mobile-reason{display:block;font-size:11px;color:var(--forest);margin:-7px 0 15px}}

/* Opening practice, resume and voluntary habit tools. */
.resume-card{padding:24px;margin-bottom:22px;background:var(--sage-light,#e8eddf)}
.resume-card h2{font-size:25px;margin:10px 0}.resume-card p{color:var(--muted);line-height:1.5}
.resume-actions{display:flex;align-items:center;gap:20px;margin-top:18px;flex-wrap:wrap}
.weekly-habit{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;margin:0 0 22px}
.weekly-habit h3{margin:8px 0}.weekly-habit p{font-size:13px;color:var(--muted);margin:0}.habit-leaf svg{width:32px;height:32px}
.repertoire-setup{padding:26px;margin:24px 0}.repertoire-setup h2{font-size:26px;margin:12px 0}
.repertoire-setup p,.opening-plan p,.opening-map p{color:var(--muted);line-height:1.6}
.repertoire-setup select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--cream,#f8f6ef);color:var(--ink,#22362b);margin:8px 0 18px;font:inherit}
.repertoire-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.repertoire-roles label{font-size:13px;font-weight:600}
.repertoire-setup>small,.opening-plan>small{display:block;margin-top:16px;color:var(--muted);font-size:12px;line-height:1.5}
.opening-plan{padding:25px;margin:0 0 22px}.opening-plan h2{font-size:26px;margin:12px 0}.opening-plan h3{font-size:16px;margin:18px 0 12px}
.plan-choices{display:grid;gap:10px}.plan-choice{text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:transparent;color:inherit;font:inherit;line-height:1.5;cursor:pointer}
.plan-choice:hover,.plan-choice:focus-visible{background:#e8eddf}.plan-choice.correct{border-color:#45634a;background:#e5ebdd}.plan-choice.retry{border-color:#947c58;background:#f2ebdc}
.opening-map{padding:22px;margin:0 0 22px}.opening-map summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:600}
.opening-map summary span{display:flex;align-items:center;gap:10px}.opening-map summary small{font-weight:400;color:var(--muted)}
.map-routes{position:relative;margin-top:20px}.map-routes:before{content:'';position:absolute;left:16px;top:16px;bottom:25px;width:2px;background:var(--line)}
.map-route{position:relative;display:flex;align-items:center;gap:14px;padding:12px 0;text-decoration:none;color:inherit}
.map-node{z-index:1;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--cream,#f8f6ef)}
.map-route.recalled .map-node{background:#e0e9d7;color:#35543b;border-color:#a0b195}.map-route>span:nth-child(2){flex:1}.map-route strong{display:block;font-size:14px}.map-route small{display:block;font-size:12px;color:var(--muted);margin-top:6px}
.challenge-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#e5ebdd;border-radius:14px;padding:16px 22px;margin-bottom:18px;font-size:14px}.challenge-banner span{display:flex;align-items:center;gap:8px}
.summary .opening-plan{text-align:left;margin-top:20px}.summary .plan-choice{font-size:14px}.summary>.btn{margin-top:12px}
@media(max-width:700px){.repertoire-roles{grid-template-columns:1fr;gap:0}.repertoire-setup{padding:20px}.opening-plan{padding:20px}.challenge-banner{padding:14px;font-size:12px}.opening-map summary{align-items:flex-start}.opening-map summary small{max-width:95px;text-align:right}.weekly-habit{padding:20px}}
.plan-details{padding:20px 22px;margin-bottom:22px}.plan-details summary{cursor:pointer;font-weight:600}.plan-details>.opening-plan{padding:12px 0 0;margin:0;border:0;box-shadow:none;background:transparent}

/* Opening cards use the course's defining position and personal recall progress. */
.course-grid,.saved-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.course-card{position:relative;display:grid;grid-template-columns:128px minmax(0,1fr);gap:0 20px;padding:20px;align-content:start;transition:border-color .18s,transform .18s}
.course-card:hover,.saved-card:hover{border-color:#aaba9c;transform:translateY(-2px)}
.course-position-link{align-self:start;border-radius:10px}
.opening-thumbnail{width:100%;aspect-ratio:1;overflow:hidden;border:1px solid #244d3b26;border-radius:10px;background:var(--pale);pointer-events:none}
.opening-thumbnail .board-wrap{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}
.opening-thumbnail .square .piece{width:94%;height:94%;filter:none}
.opening-thumbnail>.icon{width:38%;height:100%;margin:auto;color:var(--forest)}
.course-card-copy,.saved-card-copy{min-width:0}
.course-card-heading{display:flex;align-items:flex-start;gap:6px;justify-content:space-between}
.course-card h2{font-size:24px;letter-spacing:-.5px;line-height:1.15;overflow-wrap:break-word}
.course-card h2 a{color:inherit;text-decoration:none}
.course-card .icon-btn{width:32px;height:32px;min-width:32px;border:0;margin:-5px -7px 0 0}
.course-card .icon-btn .icon{width:18px;height:18px}
.course-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px 9px;margin-top:10px}
.course-card-meta .pill{font-size:10px;padding:5px 9px;gap:5px}
.course-card-meta small{font-size:10px;line-height:1.5;color:var(--muted)}
.course-card .course-card-idea{font-size:12px;color:var(--muted);line-height:1.55;margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.course-card-progress{grid-column:1/-1;margin-top:18px}
.course-recall-track{height:5px;background:var(--line);border-radius:5px;overflow:hidden}
.course-recall-track>span{display:block;height:100%;background:var(--forest);border-radius:5px}
.course-card-progress small{display:block;margin-top:7px;font-size:10px;line-height:1.4;color:var(--muted)}
.course-card-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.course-card-bottom .text-link{font-size:12px;min-height:32px;margin-left:auto;text-decoration:none}
.course-card-status{font-size:10px;color:var(--muted)}
.course-review-due{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--forest)}
.course-review-due .icon{width:14px;height:14px}
.saved-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:center;padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:18px;color:inherit;text-decoration:none;transition:border-color .18s,transform .18s}
.saved-card h3{font-family:Georgia,serif;font-size:20px;font-weight:400;letter-spacing:-.4px;line-height:1.2}
.saved-card .course-card-meta{margin-top:7px}
.saved-card .course-card-progress{margin-top:10px}
.saved-card-status{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--forest);margin-top:9px}
.saved-card-status>.icon{width:15px;height:15px;flex-shrink:0}
@media(max-width:1100px){.course-grid{grid-template-columns:1fr}.course-card{grid-template-columns:136px minmax(0,1fr)}}
@media(max-width:700px){
  .course-grid,.saved-grid{grid-template-columns:1fr;gap:14px}
  .course-card{grid-template-columns:104px minmax(0,1fr);gap:0 14px;padding:16px;border-radius:19px}
  .course-card h2{font-size:22px}
  .course-card .icon-btn{width:36px;height:36px;min-width:28px;margin:-7px -8px 0 0}
  .course-card-meta{gap:6px 8px;margin-top:8px}
  .course-card-meta small{font-size:10px}
  .course-card .course-card-idea{font-size:11px;margin-top:8px}
  .course-card-progress{margin-top:15px}
  .course-card-bottom{margin-top:10px;padding-top:8px}
  .course-card-bottom .text-link{min-height:38px}
  .saved-card{grid-template-columns:80px minmax(0,1fr);padding:15px;gap:14px}
}
@media(max-width:370px){.course-card{grid-template-columns:88px minmax(0,1fr);gap:0 12px;padding:14px}.course-card h2{font-size:20px}.course-card-status{font-size:9px}}

.main-line-card{padding:22px;margin-bottom:18px}.main-line-card h2{font-size:25px;margin-top:10px}.main-line-card p{font-size:12px;color:var(--muted);margin-top:12px}.main-line-card .main-line-length{display:flex;gap:8px;align-items:center;color:var(--forest);font-weight:600}.main-line-length .icon{width:16px;height:16px}.main-line-card small{display:block;margin-top:10px;font-size:10px;color:var(--muted)}
.evaluated-board{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;align-items:stretch}.evaluated-board>.board-wrap{min-width:0}.evaluation-rail{position:relative;overflow:hidden;border:1px solid #244d3b38;border-radius:8px;background:#cfd7c0;min-height:0}.evaluation-rail:has(.evaluation-white){background:#304b3d}.evaluation-white{position:absolute;bottom:0;left:0;right:0;background:#faf8ef;transition:height .32s ease-in-out}.white-at-top .evaluation-white{top:0;bottom:auto}.evaluation-card{padding:14px 0 2px;font-size:12px}.evaluation-card>div{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.evaluation-card strong{font-size:18px;color:var(--forest);font-variant-numeric:tabular-nums}.evaluation-card p{margin:5px 0;line-height:1.5}.evaluation-card .evaluation-change,.evaluation-card small,.evaluation-note{font-size:11px;color:var(--muted)}.evaluation-note{margin:12px 0 0}@media(prefers-reduced-motion:reduce){.evaluation-white{transition:none}}

/* Language controls share the existing typography and remain usable on narrow screens. */
.language-switcher{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0 0 16px;font-size:11px;color:var(--muted)}
.language-switcher>span{display:flex;align-items:center;gap:8px}.language-switcher .icon{width:15px;height:15px}
.language-switcher select{width:100%;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper,#faf9f3);color:var(--ink);padding:10px 28px 10px 10px;font:inherit;font-size:12px;cursor:pointer}
.language-switcher.compact{margin:0}.language-switcher.compact>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.language-switcher.compact select{max-width:150px;font-size:11px;padding:8px 22px 8px 8px;min-height:36px}
.onboarding-form>.language-switcher{align-self:flex-end;width:180px;margin:0 0 24px}
.page-intro>div,.course-card-copy,.saved-card-copy{min-width:0}.course-card h2,.saved-card h3,.page-intro h1,.study-copy h1{overflow-wrap:anywhere}
.btn{max-width:100%;text-align:center}.btn .icon,.nav-link .icon{flex-shrink:0}
@media(max-width:900px){.mobile-header .header-rating{display:none}.mobile-header .header-meta{gap:8px;min-width:0}.mobile-header .brand{flex-shrink:0}.mobile-header .brand-sub{max-width:130px;letter-spacing:1px}.mobile-header .language-switcher{max-width:150px}}
@media(max-width:430px){.mobile-header .brand-name{font-size:25px}.mobile-header .brand{gap:8px}.mobile-header .brand img{width:31px;height:31px}.mobile-header .language-switcher{max-width:124px}.mobile-header .header-meta{gap:5px}.date-label{text-align:right;max-width:45%}.onboarding-form>.language-switcher{margin-bottom:18px}.summary-actions{flex-wrap:wrap}}

/* The ChessOpening wordmark fits the existing compact navigation. */
.brand-name{font-size:21px;letter-spacing:-1px}.brand-sub{font-size:8px;letter-spacing:1.2px}.sidebar .brand{gap:9px}.sidebar .brand img{width:32px;height:32px}
@media(max-width:430px){.mobile-header .brand-name{font-size:19px;letter-spacing:-.7px}.mobile-header .brand-sub{font-size:7px;letter-spacing:.8px}}
/* Keep the free foundation before the course controls on phones. */
.course-layout{grid-template-areas:"foundation sidebar" "content sidebar";row-gap:0}
.course-foundation{grid-area:foundation;min-width:0}
.course-content{grid-area:content;min-width:0}
.course-side{grid-area:sidebar}
@media(max-width:950px){.course-layout{grid-template-areas:"foundation" "sidebar" "content";row-gap:18px}.course-foundation .main-line-card{margin-bottom:0}}
