@charset "UTF-8";
.review-reminder{display:flex;align-items:center;gap:14px;background:#e8efdd;border:1px solid #ccdabc;border-radius:12px;padding:17px 21px;margin-bottom:22px;color:#69824f}.review-reminder strong{font-size:12px;display:block}.review-reminder small{font-size:10px;margin-top:5px;display:block;color:#8d9d7d}.review-reminder>svg:last-child{margin-left:auto}.review-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid #edf0e7;padding:17px 0}.review-row:last-child{border:0}.review-row strong{font-size:12px;display:block}.review-row small{font-size:9px;color:#96a18b;display:block;margin-top:6px}.review-row>svg:last-child{width:15px;height:15px;margin-left:auto;color:#99ac84}.review-stages{display:flex;align-items:center;gap:5px;margin-left:auto}.review-stages i{width:10px;height:10px;border-radius:50%;background:#e9eee0;border:1px solid #dae3cc}.review-stages i.filled{background:#92b576;border-color:#92b576}.learning-method{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}.learning-method span{font:12px Consolas,monospace;color:#a5b68c}.learning-method h3{font-size:13px;margin:10px 0}.learning-method p{font-size:11px;color:#8a987c;margin:0}.recall-prompt{border-left:3px solid #baacd2;background:#f5f2fa;padding:15px 17px;margin:20px 0}.recall-prompt strong{font-size:10px;color:#9a87b7}.recall-prompt p{font-size:11px;margin:8px 0 0}.review-row:hover{background:#fbfcf8}@media(max-width:620px){.review-row{gap:10px}.review-row strong{font-size:11px}.review-row small{font-size:8px}.review-stages{gap:3px}.review-stages i{width:7px;height:7px}.learning-method{grid-template-columns:1fr;gap:15px}.review-reminder{padding:15px}.review-reminder strong{font-size:11px}.review-reminder small{font-size:9px}}
:root{--paper:#f5f6f1;--white:#fff;--ink:#20312b;--muted:#7b847e;--line:#e4e7df;--green:#2b5944;--lime:#d3ed9c;--soft:#eaf0df;--dark:#172822;--purple:#a89bd0;--radius:18px;font-family:Inter,"Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #8ba75f;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid #a4c587;outline-offset:2px}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button svg{pointer-events:none}h1,h2,h3,h4,p{margin-top:0}h1{font-size:29px;letter-spacing:-.04em;line-height:1.5;margin-bottom:7px}h2{font-size:19px;letter-spacing:-.03em;margin-bottom:0}h3{font-size:16px;line-height:1.6}p{line-height:1.85}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.mono{font-family:"Cascadia Code",Consolas,monospace}.skip-link{position:fixed;top:-80px;background:white;padding:15px;z-index:99}.skip-link:focus{top:0}.boot{min-height:100vh;display:grid;place-content:center;text-align:center;gap:20px}.boot .brand-symbol{margin:auto}.brand-symbol{background:var(--lime);color:var(--dark);border-radius:11px;width:38px;height:38px;display:inline-flex;justify-content:center;align-items:center;font-size:29px;line-height:1;font-weight:800;letter-spacing:-.1em;padding-right:5px}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;letter-spacing:-.045em}.brand span:last-child{padding-top:2px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--dark);color:#e2e7de;display:flex;flex-direction:column;padding:31px 21px 20px;z-index:30}.sidebar .brand{padding-left:8px;color:#fff}.nav-label{font-size:9px;color:#83958b;letter-spacing:.17em;margin:49px 15px 13px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:13px;font-size:13px;font-weight:500;padding:13px 15px;border-radius:9px;color:#b2c0b6}.nav a svg{width:18px;height:18px}.nav a.active{background:var(--lime);color:var(--dark);font-weight:700}.nav a:hover:not(.active){background:#263a30;color:white}.nav-count{font-size:10px;opacity:.7;margin-left:auto}.sidebar-bottom{margin-top:auto}.side-message{background:#263a30;border:1px solid #34473c;padding:19px 15px;border-radius:12px;margin:25px 3px}.side-message p{font-size:11px;color:#b7c7ba;line-height:1.8;margin:10px 0 0}.side-message .sprout{color:var(--lime)}.side-message strong{font-size:12px;color:#e2ebdd;display:block}.profile{border-top:1px solid #34473c;padding:20px 6px 0;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#a9bda5;color:#243b2c;display:grid;place-items:center;font-weight:700;font-size:12px}.profile strong{font-size:11px;display:block}.profile small{font-size:9px;color:#9bac9e;display:block;margin-top:5px}.profile>a:last-child{margin-left:auto;color:#a2b1a6}.shell{margin-left:240px}.topbar{height:87px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 44px;gap:25px;background:rgba(245,246,241,.94)}.breadcrumb{font-size:12px;color:#91988f;display:flex;align-items:center;gap:9px}.breadcrumb strong{color:#546359;font-weight:500}.top-search{margin-left:auto;display:flex;align-items:center;gap:11px;border:1px solid #e0e4db;background:#fbfcf8;border-radius:8px;padding:9px 12px;width:237px;color:#939c91;font-size:11px;text-align:left}.top-search svg{width:16px;height:16px}.top-search kbd{margin-left:auto;font:10px inherit;padding:2px 4px;border:1px solid #e2e6dc;border-radius:3px}.top-level{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#647447}.top-level svg{width:17px;height:17px;color:#8fa566}.mobile-menu{display:none}.main{max-width:1600px;margin:auto;padding:35px 44px 36px;min-height:calc(100vh - 87px)}.page-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:27px}.page-heading p{color:var(--muted);font-size:12px;margin:0}.date-label{font-size:11px;display:flex;gap:7px;align-items:center;color:#7a8779;white-space:nowrap}.date-label svg{width:15px;height:15px}.btn{border:1px solid var(--line);background:white;color:var(--ink);font-weight:600;font-size:12px;padding:11px 16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:9px;line-height:1.5}.btn:hover{background:#edf2e7}.btn.primary{background:var(--green);color:white;border-color:var(--green)}.btn.primary:hover{background:#204a36}.btn.lime{background:var(--lime);color:var(--dark);border-color:var(--lime)}.btn.ghost{background:transparent;border-color:transparent}.btn.small{font-size:11px;padding:8px 12px}.btn svg{width:15px;height:15px}.text-link{color:var(--green);font-size:11px;font-weight:600;display:inline-flex;gap:7px;align-items:center}.text-link svg{width:15px;height:15px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 281px;gap:24px}.main-column,.right-column{min-width:0}.hero{position:relative;background:#e4ecd8;border:1px solid #dbe4ce;border-radius:var(--radius);min-height:241px;padding:29px 31px;overflow:hidden;isolation:isolate}.hero .eyebrow{font-size:10px;color:#70815e;display:flex;align-items:center;gap:6px}.hero .eyebrow svg{width:14px;height:14px}.hero h2{font-size:25px;margin:15px 0 9px;position:relative;z-index:2}.hero p{max-width:335px;font-size:11px;color:#6a7961;position:relative;z-index:2;margin-bottom:19px}.hero .btn{position:relative;z-index:2}.hero-art{position:absolute;right:20px;bottom:12px;width:240px;height:195px;z-index:-1}.orbit{position:absolute;border:1px solid #cad8bd;border-radius:50%;width:205px;height:205px;left:23px;top:8px;transform:rotate(-25deg)}.orbit.two{width:165px;height:165px;left:44px;top:28px}.art-window{position:absolute;width:169px;height:117px;background:#fafdf5;border:1px solid #b9c9b1;border-radius:10px;left:41px;top:43px;box-shadow:6px 8px 0 #b9cda5;transform:rotate(-8deg);padding:13px}.window-dots{display:flex;gap:4px;border-bottom:1px solid #e1e8d9;padding-bottom:9px}.window-dots i{width:4px;height:4px;border-radius:50%;background:#b5c3a7}.code-art{font:9px/1.95 Consolas,monospace;color:#648053;padding-top:8px}.code-art b{color:#9d7eac;font-weight:400}.art-star{position:absolute;right:13px;top:15px;font-size:31px;color:#5b8150;transform:rotate(10deg)}.art-badge{position:absolute;right:7px;bottom:15px;background:#375840;color:#edf6df;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;transform:rotate(12deg);box-shadow:0 3px 10px #6c89564a}.art-dot{position:absolute;width:11px;height:11px;border:1px solid #78915f;left:22px;bottom:26px;transform:rotate(30deg)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:18px 0 29px}.stat{padding:18px 17px;background:#fff;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:auto 1fr;gap:4px 11px;align-items:center}.stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eff1e9;grid-row:span 2;color:#77816c}.stat:nth-child(2) .stat-icon{background:#f6eee1;color:#bc9b69}.stat:nth-child(3) .stat-icon{background:#eeeaf5;color:#9b8ab6}.stat-icon svg{width:17px;height:17px}.stat-number{font-size:20px;letter-spacing:-.03em;font-weight:650;line-height:1.2}.stat-number small{font-weight:400;font-size:10px;margin-left:5px;color:#8c9588}.stat-label{font-size:10px;color:var(--muted)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-head h2{font-size:16px}.section-head .muted{font-size:11px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-card{border:1px solid var(--line);background:white;border-radius:13px;padding:19px 18px 17px;transition:transform .15s,border-color .15s;position:relative;min-width:0}.course-card:hover{transform:translateY(-3px);border-color:#b8c8ab}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:8px}.language-logo{width:41px;height:41px;border-radius:11px;background:var(--logo-bg,#edf1e6);color:var(--logo-fg,#3a6747);font:bold 18px/1 Consolas,monospace;display:flex;align-items:center;justify-content:center;letter-spacing:-.07em}.language-logo.large{width:61px;height:61px;border-radius:16px;font-size:25px}.card-top .tag{font-size:8px;padding:4px 7px}.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid #e0e6d7;background:#f5f7f0;color:#748364;border-radius:5px;font-size:10px;padding:4px 8px;line-height:1.4;font-weight:500}.tag.purple{background:#f2eff7;border-color:#e9e3f2;color:#9180ad}.tag.gold{background:#fbf4e6;color:#a38b54;border-color:#f1e7cb}.course-card h3{margin-bottom:6px;font-size:15px}.course-card p{font-size:10px;color:#8a9287;line-height:1.8;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}.course-meta{font-size:9px;color:#959c90;display:flex;align-items:center;gap:5px}.course-meta svg{width:12px;height:12px}.course-bottom{border-top:1px solid #edf0e8;margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#829071}.course-bottom svg{width:14px;height:14px}.progress-track{height:5px;background:#e9eee2;border-radius:10px;overflow:hidden}.progress-track>span{display:block;height:100%;background:#9bb97b;border-radius:10px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px}.right-column{display:grid;gap:21px;align-content:start}.right-column .panel{padding:21px 20px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-head h2{font-size:13px}.panel-head svg{width:15px;height:15px;color:#9ca88e}.level-visual{display:flex;justify-content:center;margin:4px 0 12px}.level-shield{position:relative;width:76px;height:83px;display:grid;place-items:center;background:#ede9f7;clip-path:polygon(50% 0,96% 23%,96% 70%,50% 100%,4% 70%,4% 23%);color:#9280b8}.level-shield:before{content:"";position:absolute;inset:6px;background:#f7f5fc;clip-path:inherit}.level-shield svg{position:relative;width:33px;height:33px;stroke-width:1.3}.level-title{text-align:center;font-size:14px;font-weight:650;margin-bottom:4px}.level-sub{text-align:center;font-size:10px;color:#9a9e91;margin-bottom:20px}.xp-row{display:flex;justify-content:space-between;font-size:9px;color:#9b9f95;margin-bottom:8px}.xp-row strong{font-weight:500;color:#807095}.level-panel .progress-track>span{background:#b4a6ce}.level-foot{text-align:center;font-size:9px;color:#a4a69e;margin:12px 0 0}.quest-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.quest-top .eyebrow{font-size:8px;color:#9da58f;letter-spacing:.1em}.quest-top svg{color:#c4ae70;width:17px;height:17px}.quest-panel h3{font-size:13px;margin-bottom:7px}.quest-panel p{font-size:10px;color:#929a89;line-height:1.9;margin-bottom:16px}.quest-reward{font-size:9px;color:#b19b61;display:flex;align-items:center;gap:4px;margin-bottom:16px}.quest-reward svg{width:13px;height:13px}.quest-panel .btn{width:100%;font-size:10px}.activity{margin-top:26px}.activity .panel{padding:23px 24px}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,8px);grid-auto-columns:minmax(5px,1fr);gap:4px;max-width:100%}.heat-cell{border-radius:2px;background:#edf0e7;min-width:0}.heat-cell[data-count="1"]{background:#c6dca6}.heat-cell[data-count="2"]{background:#94b775}.heat-cell[data-count="3"]{background:#527d48}.heat-legend{display:flex;align-items:center;gap:4px;font-size:8px;color:#a1a895;margin-top:12px;justify-content:flex-end}.heat-legend span{width:8px;height:8px;border-radius:2px;background:#edf0e7}.heat-legend span:nth-of-type(2){background:#c6dca6}.heat-legend span:nth-of-type(3){background:#94b775}.heat-legend span:nth-of-type(4){background:#527d48}.achievement-mini{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #f0f1eb}.achievement-mini:last-child{border-bottom:0;padding-bottom:0}.medal{width:32px;height:32px;border-radius:50%;background:#f3f3eb;color:#bec1af;display:grid;place-items:center}.medal.unlocked{background:#f6edcd;color:#ac9142}.medal svg{width:16px;height:16px}.achievement-mini strong{font-size:10px;display:block}.achievement-mini small{display:block;font-size:8px;color:#a3a899;margin-top:4px}.bottom-note{color:#a4ab9e;font-size:9px;display:flex;justify-content:space-between;gap:14px;padding:29px 1px 0}.bottom-note a{border-bottom:1px solid #cdd3c4}.catalog-tools{display:flex;gap:12px;align-items:center;margin:23px 0 18px;flex-wrap:wrap}.input-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:white;padding:0 13px;flex:1;min-width:200px}.input-wrap svg{color:#9ba591;width:17px;height:17px}.input-wrap input{border:0;background:transparent;outline:none;width:100%;padding:13px 0;font-size:12px;color:var(--ink)}select{border:1px solid var(--line);border-radius:8px;background:white;padding:12px 31px 12px 12px;font-size:11px;color:#60715c;max-width:100%}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 22px}.filter-tabs button{border:1px solid var(--line);background:#fbfcf8;color:#829078;border-radius:6px;font-size:10px;padding:8px 12px}.filter-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.result-line{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#85917d;margin:20px 0 15px}.empty-state{border:1px dashed #ccd6c1;border-radius:14px;padding:40px;text-align:center;color:#89967f;font-size:12px;grid-column:1/-1}.empty-state svg{width:30px;height:30px;color:#94aa80;margin-bottom:10px}.empty-state h3{color:#55694a}.catalog-more{display:flex;justify-content:center;margin:28px 0}.intro-banner{border:1px solid #dfe6d5;background:#edf1e4;border-radius:12px;padding:15px 18px;display:flex;gap:13px;align-items:flex-start;font-size:11px;line-height:1.9;color:#6e7e60;margin:17px 0}.intro-banner svg{width:18px;height:18px;margin-top:2px}.intro-banner p{margin:0;font-size:11px;line-height:1.9}.intro-banner.warning{background:#f8f2e7;border-color:#eadeca;color:#97805c}.course-header{display:flex;gap:20px;align-items:flex-start;margin-bottom:25px}.course-header h1{margin:0 0 7px}.course-header .tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.course-header p{font-size:12px;color:#819077;max-width:700px;margin:0}.course-header>.btn{margin-left:auto}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:25px}.syllabus{display:grid;gap:15px}.module{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.module-title{display:flex;gap:14px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.module-number{font:13px Consolas,monospace;color:#a4b392;background:#f0f4e9;padding:9px;border-radius:8px}.module-title h3{font-size:14px;margin:0}.module-title p{font-size:10px;color:#8e9986;margin:3px 0 0}.lesson-row{display:flex;gap:14px;align-items:center;padding:15px 22px;border-bottom:1px solid #eff1eb;font-size:12px}.lesson-row:last-child{border-bottom:0}.lesson-row:hover{background:#f7faf1}.lesson-status{width:25px;height:25px;display:grid;place-items:center;background:#f0f3e9;color:#acb59e;border-radius:50%}.lesson-status.done{background:#e7f2d9;color:#7a9d54}.lesson-status svg{width:12px;height:12px}.lesson-row small{font-size:9px;color:#9ba591;margin-top:3px;display:block}.lesson-row>.tag{margin-left:auto;white-space:nowrap;font-size:8px}.lesson-row>svg{color:#a8b49b;width:14px;height:14px}.side-stack{display:grid;gap:18px;align-content:start}.side-stack h3{font-size:12px}.side-stack p,.side-stack li{font-size:11px;line-height:1.9;color:#89957e}.side-stack ul{padding-left:17px;margin-bottom:0}.side-stack .btn{width:100%}.source-link{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b8658;margin:13px 0;word-break:break-word}.source-link svg{width:13px;height:13px}.reference-topic{background:#fff;border:1px solid var(--line);padding:20px 23px;border-radius:12px;display:flex;gap:15px}.reference-topic>span{font:11px Consolas,monospace;color:#a6b28c}.reference-topic h3{font-size:13px;margin:0}.reference-topic p{font-size:11px;margin:6px 0 0;color:#8c967f}.lesson-page .main{padding-top:24px}.lesson-breadcrumb{font-size:10px;color:#8b9782;display:flex;align-items:center;gap:8px;margin-bottom:18px}.lesson-breadcrumb svg{width:13px;height:13px}.lesson-workspace{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(380px,1.15fr);gap:22px;align-items:start}.reading{background:white;border:1px solid var(--line);border-radius:15px;padding:27px;min-width:0}.reading h1{font-size:23px;margin:14px 0 20px}.reading p{font-size:12px;color:#68785d;line-height:2.1;margin-bottom:17px;white-space:pre-line}.reading h3{font-size:12px;margin:22px 0 10px}.reading pre,.snippet{padding:16px;background:#f1f4ec;border-radius:9px;overflow:auto;font:11px/1.8 Consolas,monospace;color:#4f6c41;white-space:pre;max-width:100%}.task{background:#f1f5e9;border:1px solid #e1e8d5;padding:16px;border-radius:10px;margin:22px 0}.task h3{margin:0 0 9px;display:flex;align-items:center;gap:7px}.task h3 svg{width:16px;height:16px;color:#789b4e}.task p{font-size:11px;margin:0;line-height:1.9}.reading details{border-top:1px solid var(--line);padding:15px 0;font-size:11px;color:#6f825f}.reading details summary{cursor:pointer;font-size:11px;font-weight:600}.reading details p{margin:12px 0 0;font-size:11px}.editor-panel{border:1px solid #344439;border-radius:14px;overflow:hidden;background:#1b2922;color:#e2ebd8;min-width:0}.editor-titlebar{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;border-bottom:1px solid #354238;font-size:11px;background:#223127;gap:10px}.editor-file{display:flex;align-items:center;gap:7px;color:#acbca2}.editor-file svg{width:14px;height:14px}.editor-titlebar .tag{color:#b4c2a8;background:#2e3e2e;border-color:#45563f;font-size:8px;max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-toolbar{display:flex;align-items:center;gap:8px;padding:11px 15px;border-bottom:1px solid #344234;background:#1e2d23;flex-wrap:wrap}.editor-toolbar .btn{background:#2b3c2d;color:#a8ba99;border-color:#3a4e38;font-size:9px;padding:7px 9px}.editor-toolbar .btn.primary{background:#cce89c;color:#29432b;border-color:#cce89c;margin-left:auto}.editor-toolbar .btn svg{width:13px;height:13px}.code-area{display:flex;min-height:270px;position:relative}.line-numbers{white-space:pre;text-align:right;font:12px/1.9 Consolas,monospace;color:#54664f;padding:20px 13px;user-select:none;min-width:40px;overflow:hidden;max-height:400px}.code-input{width:100%;resize:vertical;min-height:270px;max-height:650px;border:0;outline:none!important;color:#d3e2b8;background:#1b2922;padding:20px 19px 20px 0;font:12px/1.9 "Cascadia Code",Consolas,monospace;tab-size:2;border-radius:0;white-space:pre;overflow-wrap:normal;overflow:auto}.editor-stdin{border-top:1px solid #344234;padding:12px 17px}.editor-stdin summary{font-size:10px;cursor:pointer;color:#839578}.editor-stdin textarea{display:block;width:100%;margin-top:10px;background:#16241a;color:#bfcca9;border:1px solid #3b4c35;border-radius:5px;font:11px Consolas,monospace;padding:8px;resize:vertical}.console-head{background:#233127;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 17px;border-top:1px solid #3a493b;font-size:10px;color:#a9b69e}.console-head svg{width:13px;height:13px;margin-right:5px}.console-state{font-size:9px;color:#7c9270}.console-output{margin:0;min-height:128px;max-height:350px;overflow:auto;padding:17px;font:12px/1.8 Consolas,monospace;white-space:pre-wrap;word-break:break-word;color:#d0dfb8}.console-output.error{color:#e4b6a1}.editor-footer{padding:10px 17px;border-top:1px solid #344234;font-size:8px;line-height:1.8;color:#819372}.exercise-actions{display:flex;gap:10px;align-items:center;margin-top:15px}.exercise-actions .btn.primary{margin-left:auto}.save-state{font-size:9px;color:#95a086}.quiz{margin:20px 0}.quiz h3{font-size:12px;line-height:1.9}.quiz label{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);padding:13px;border-radius:8px;font-size:11px;line-height:1.8;margin:8px 0;cursor:pointer}.quiz label:has(input:checked){border-color:#a8bd8b;background:#f0f6e6}.quiz input{accent-color:var(--green);margin-top:4px}.feedback{border-radius:10px;background:#e9f2dd;color:#668448;padding:17px;font-size:12px;line-height:1.9;margin-top:17px}.feedback.incorrect{background:#f7efdf;color:#a08448}.lesson-nav{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.playground-heading{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:20px}.playground-heading select{min-width:200px}.playground-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px}.runtime-list{padding:0;margin:0;list-style:none}.runtime-list li{border-bottom:1px solid var(--line);padding:10px 0;font-size:11px;color:#849376;line-height:1.8}.runtime-list li:last-child{border:0}.quest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.quest-card{background:white;border:1px solid var(--line);border-radius:15px;padding:25px}.quest-card h3{margin:18px 0 9px;font-size:15px}.quest-card p{font-size:11px;color:#89967d;min-height:48px}.quest-card .reward{font-size:11px;color:#a18d53;margin:15px 0}.quest-card .btn{width:100%}.badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:19px}.badge-card{display:flex;gap:15px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px;opacity:.6}.badge-card.unlocked{opacity:1;border-color:#d1ddbc;background:#fcfdf8}.badge-card .medal{width:43px;height:43px}.badge-card h3{font-size:12px;margin-bottom:4px}.badge-card p{font-size:10px;color:#8c997f;margin:0}.badge-card .tag{margin-top:10px;font-size:8px}.notebook-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px}.note-list{display:grid;align-content:start;gap:7px}.note-list a{padding:14px 16px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:12px;display:flex;justify-content:space-between}.note-list a.active{background:#e9f0de;border-color:#cddabc}.note-editor{width:100%;min-height:350px;border:1px solid var(--line);border-radius:9px;background:#fcfdf8;padding:20px;color:#627556;font-size:12px;line-height:2;resize:vertical}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.settings-grid .panel h2{font-size:16px;margin-bottom:15px}.settings-grid .panel p{font-size:12px;color:#89957e;line-height:1.9}.settings-grid .panel .btn{margin:4px 5px 4px 0}.settings-grid .full{grid-column:1/-1}.settings-dl{display:grid;grid-template-columns:120px 1fr;font-size:11px;gap:15px}.settings-dl dt{color:#8b9980}.settings-dl dd{margin:0;word-break:break-word}.status-table{width:100%;border-collapse:collapse;font-size:10px;text-align:left}.status-table th,.status-table td{padding:12px;border-bottom:1px solid var(--line)}.status-table th{background:#f4f6ee;color:#8a987e;font-weight:500}.status-table td{color:#6d805e}.danger{color:#a5705c;border-color:#e2cfc3}.search-dialog{border:1px solid var(--line);border-radius:17px;padding:0;width:580px;max-width:calc(100vw - 30px);color:var(--ink);box-shadow:0 20px 90px #12261830}.search-dialog::backdrop{background:#12251e65;backdrop-filter:blur(3px)}.search-dialog .input-wrap{border:0;border-radius:0;padding:6px 20px;border-bottom:1px solid var(--line)}.search-dialog .input-wrap input{font-size:14px}.search-results{max-height:410px;overflow:auto;padding:10px}.search-results a{display:flex;gap:13px;align-items:center;padding:10px;border-radius:9px;font-size:13px}.search-results a:hover{background:#eef3e5}.search-results .language-logo{width:33px;height:33px;border-radius:7px;font-size:13px}.search-results small{margin-left:auto;font-size:9px;color:#9aa58e}.search-help{font-size:9px;color:#8b9980;padding:12px 20px;border-top:1px solid var(--line)}#toast{position:fixed;bottom:24px;left:calc(50% + 120px);transform:translate(-50%,20px);background:#2b4935;color:#e6efdb;font-size:12px;border:1px solid #4a6544;box-shadow:0 5px 25px #0d261b22;padding:13px 22px;border-radius:10px;z-index:100;opacity:0;pointer-events:none;transition:.2s;max-width:80vw}#toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.offline-notice{font-size:12px;color:#a07f4f;background:#faf2df;border:1px solid #eadfbe;padding:15px;border-radius:10px;margin-bottom:20px}.coverage-count{display:flex;gap:25px;flex-wrap:wrap;margin:24px 0}.coverage-count strong{display:block;font-size:25px;letter-spacing:-.04em}.coverage-count small{color:#8d9a81;font-size:10px}.coverage-list{display:flex;flex-wrap:wrap;gap:5px}.coverage-list .tag{font-size:9px}.notice-list{font-size:11px;line-height:2;color:#829176;padding-left:17px}.code-label{font-size:10px;color:#a1ae95}.form-row{display:flex;gap:10px;margin:16px 0}.form-row input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:11px;min-width:0}.spacer-top{margin-top:28px}.loading-line{color:#94a286;font-size:11px}.download-note{font-size:9px;line-height:1.8;color:#8d9982;margin-top:10px}
@media(min-width:1500px){.main{padding-top:43px}.hero{min-height:260px}.hero-art{right:42px;bottom:20px;transform:scale(1.1)}.dashboard-grid{grid-template-columns:minmax(0,1fr) 310px;gap:28px}.course-card{padding:23px}.hero h2{font-size:29px}.hero p{font-size:12px;max-width:420px}.hero-art{z-index:0}.hero .eyebrow{position:relative;z-index:2}}
@media(max-width:1250px){.sidebar{width:211px;padding-left:16px;padding-right:16px}.shell{margin-left:211px}.sidebar .brand{font-size:19px}.topbar{padding:0 29px}.main{padding:29px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 246px;gap:18px}.hero{padding:25px}.hero-art{right:-30px;opacity:.65}.hero h2{font-size:23px}.hero p{max-width:280px}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-grid .course-card:last-child:nth-child(odd){display:none}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{gap:8px}.stat{padding:15px 11px;gap:4px 8px}.stat-icon{width:27px;height:30px}.stat-number{font-size:18px}.stat-label{font-size:8px}.lesson-workspace{grid-template-columns:minmax(260px,.8fr) minmax(330px,1.2fr);gap:15px}.reading{padding:23px}.course-layout{grid-template-columns:minmax(0,1fr) 250px}#toast{left:calc(50% + 105px)}}
@media(max-width:1050px){.top-level{display:none}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.right-column{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:4px}.right-column .panel{padding:18px}.right-column .level-panel{grid-row:auto}.level-visual{display:none}.level-title{text-align:left;font-size:12px}.level-sub{text-align:left}.level-foot{font-size:8px}.quest-panel h3{font-size:12px}.quest-panel p{font-size:9px}.quest-top{margin-bottom:13px}.quest-panel .btn{font-size:9px;padding:8px}.achievement-mini{padding:9px 0;gap:7px}.achievement-mini strong{font-size:9px}.achievement-mini small{font-size:8px}.right-column .panel-head{margin-bottom:15px}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.course-grid .course-card:last-child:nth-child(odd){display:block}.hero-art{right:20px;opacity:1}.hero p{max-width:340px}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lesson-workspace{grid-template-columns:1fr}.reading h1{font-size:25px}.playground-layout{grid-template-columns:1fr}.playground-layout .side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.course-layout{grid-template-columns:1fr}.course-layout .side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.course-header{flex-wrap:wrap}.course-header>.btn{margin-left:0}.quest-grid{gap:12px}.quest-card{padding:18px}.badges-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.badge-card{padding:16px}.notebook-grid{grid-template-columns:190px minmax(0,1fr)}.settings-grid{gap:15px}.settings-grid .panel{padding:20px}.settings-grid .panel p{font-size:11px}}
@media(max-width:800px){.sidebar{width:193px;padding-left:12px;padding-right:12px}.sidebar .brand{font-size:17px;gap:8px}.sidebar .brand-symbol{width:32px;height:32px;font-size:24px}.shell{margin-left:193px}.nav a{font-size:11px;padding:12px;gap:10px}.topbar{padding:0 22px;gap:12px;height:72px}.top-search{width:195px}.main{padding:25px 22px}.page-heading h1{font-size:25px}.date-label{display:none}.hero p{max-width:250px}.hero-art{right:-22px;opacity:.6}.course-grid,.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-grid .course-card:last-child:nth-child(odd){display:none}.right-column{grid-template-columns:repeat(2,minmax(0,1fr))}.right-column>.panel:last-child{grid-column:1/-1}.right-column>.panel:last-child>div{display:flex;gap:20px}.achievement-mini{flex:1;border:0}.stats{gap:7px}.stat{display:block;padding:13px}.stat-icon{display:none}.stat-number{margin-bottom:6px}.stat-label{font-size:9px}.quest-grid{grid-template-columns:1fr}.quest-card{display:grid;grid-template-columns:1fr auto;gap:8px 20px}.quest-card>.tag{justify-self:start}.quest-card h3{grid-column:1;margin:4px 0}.quest-card p{grid-column:1;min-height:0;margin:0}.quest-card .reward{grid-column:2;grid-row:1;margin:0;font-size:10px}.quest-card .btn{grid-column:2;grid-row:2/4;align-self:center}.settings-grid{grid-template-columns:1fr}.course-header h1{font-size:26px}.course-header{gap:14px}.course-header p{font-size:11px}.playground-heading{align-items:flex-start;flex-direction:column}.notebook-grid{grid-template-columns:1fr}.note-list{display:flex;flex-wrap:wrap}.note-list a{padding:8px 12px}.bottom-note{display:flex;flex-direction:column;align-items:flex-start;gap:6px;line-height:2.1}#toast{left:calc(50% + 96px)}}
@media(max-width:620px){.sidebar{transform:translateX(-100%);width:240px;transition:transform .2s}.sidebar.open{transform:translateX(0);box-shadow:20px 0 100px #102a2344}.shell{margin-left:0}.mobile-menu{display:inline-flex;border:0;background:transparent;padding:0;color:#697a60}.mobile-menu svg{width:21px;height:21px}.topbar{height:65px;padding:0 20px;gap:14px}.breadcrumb{font-size:11px}.top-search{width:auto;border:0;background:transparent;padding:6px;margin-left:auto}.top-search span,.top-search kbd{display:none}.top-search svg{width:19px;height:19px}.main{padding:25px 20px}.page-heading{margin-bottom:23px;gap:10px;align-items:flex-start}.page-heading h1{font-size:24px}.page-heading p{font-size:10px;line-height:1.8}.hero{padding:24px;min-height:232px}.hero h2{font-size:23px}.hero p{font-size:10px;max-width:210px}.hero-art{right:-56px;opacity:.45;transform:scale(.9);bottom:15px}.hero .btn{font-size:11px}.stats{margin:14px 0 26px;gap:9px}.stat{padding:15px 13px;border-radius:10px}.stat-number{font-size:20px}.stat-number small{font-size:9px}.stat-label{font-size:8px}.course-grid,.catalog-grid{gap:11px}.course-card{padding:16px 14px}.course-card p{font-size:9px}.course-card h3{font-size:14px}.card-top .tag{font-size:7px;padding:3px 5px}.language-logo{width:34px;height:34px;font-size:16px;border-radius:9px}.course-meta{font-size:8px}.course-bottom{font-size:9px}.section-head h2{font-size:15px}.section-head .text-link{font-size:9px}.right-column{gap:12px}.right-column .panel{padding:17px 15px}.right-column>.panel:last-child>div{gap:10px}.achievement-mini strong{font-size:8px}.achievement-mini small{font-size:7px}.medal{width:27px;height:27px}.heatmap{grid-template-rows:repeat(7,7px);gap:3px}.activity .panel{padding:20px}.panel{padding:21px}.course-layout .side-stack{grid-template-columns:1fr}.course-header .language-logo.large{width:49px;height:49px;border-radius:12px;font-size:23px}.course-header h1{font-size:25px}.course-header{gap:14px}.course-header>.course-intro{flex:1;min-width:200px}.course-header>.btn{margin-left:auto}.module-title{padding:17px}.module-title h3{font-size:13px}.module-title p{font-size:9px}.lesson-row{padding:14px 16px;gap:10px;font-size:11px}.lesson-row>.tag{font-size:7px}.reading{padding:23px 20px}.reading h1{font-size:23px}.reading p{font-size:11px}.lesson-workspace{gap:19px}.editor-titlebar{font-size:10px;padding:13px}.code-input{font-size:11px}.line-numbers{font-size:11px;padding-left:9px;padding-right:10px;min-width:32px}.editor-toolbar{padding:10px 12px}.exercise-actions .btn{font-size:11px;padding:10px 12px}.playground-layout .side-stack{grid-template-columns:1fr}.badges-grid{gap:10px}.badge-card{display:block;padding:17px}.badge-card .medal{margin-bottom:12px}.badge-card h3{font-size:11px}.badge-card p{font-size:9px;min-height:32px}.catalog-tools{gap:10px}.catalog-tools select{width:calc(50% - 5px)}.catalog-tools .input-wrap{flex-basis:100%}.filter-tabs{gap:5px}.filter-tabs button{font-size:9px;padding:7px 10px}.intro-banner{padding:13px}.intro-banner p{font-size:10px}.settings-dl{grid-template-columns:85px 1fr;font-size:10px;gap:14px}.settings-grid .panel{padding:20px 18px}.status-table th,.status-table td{padding:9px;font-size:9px}.page-heading>.btn{font-size:9px;padding:8px 10px}.bottom-note{font-size:8px}.notebook-grid .panel{padding:20px}.coverage-count{gap:20px}.coverage-count strong{font-size:22px}#toast{left:50%;max-width:90vw;width:max-content;font-size:11px}.quest-card p{font-size:10px}.quest-card .btn{font-size:10px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Input-case feedback and capstone brief. */
.test-cases{margin-top:18px;padding:20px;border:1px solid var(--border,#dfe5db);border-radius:14px;background:var(--paper,#fff);font-size:13px}.test-cases summary{cursor:pointer;font-weight:600;padding:8px 0}.test-cases details+details{border-top:1px solid #e3e8de;margin-top:10px;padding-top:8px}.test-cases dl{margin:12px 0}.test-cases dt{color:#697266;font-size:12px;margin-top:10px}.test-cases dd{margin:4px 0}.test-cases pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;background:#f4f6f0;padding:10px;border-radius:7px}.case-pass summary{color:#346345}.case-fail summary{color:#9b4f38}.capstone-brief{margin-bottom:20px}.capstone-brief ol{padding-left:22px;line-height:1.9}

.daily-plan{margin-bottom:24px}.daily-plan .section-head{margin-bottom:8px}.daily-plan h2{margin-top:6px}.daily-plan>p{font-size:13px;line-height:1.8}.study-plan-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0 4px}.study-plan-item{display:flex;align-items:center;gap:12px;border:1px solid #e2e8dc;border-radius:12px;padding:14px;background:#f7f9f3;text-decoration:none;color:inherit}.study-plan-item:hover{background:#eef3e7}.study-plan-item>div{min-width:0;flex:1}.study-plan-item small{display:block;color:#6b7768;font-size:11px;margin-bottom:6px}.study-plan-item strong{display:block;font-size:13px;line-height:1.6}.study-plan-item>svg{width:17px;flex-shrink:0}@media(max-width:600px){.study-plan-items{grid-template-columns:1fr}}

.optional-learning{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid #e2e8dc}.optional-learning strong{display:block;font-size:13px}.optional-learning small{display:block;font-size:11px;color:#6b7768;margin-top:5px}@media(max-width:600px){.optional-learning{align-items:flex-start;flex-direction:column}}

.worked-example{margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:12px;background:#f7f9f1}.worked-example h3{margin-bottom:12px}.worked-example h4{font-size:11px;margin:14px 0 8px}.reading .worked-example pre{overflow-x:auto;white-space:pre;max-width:100%}
#playground-sample h4{font-size:12px;margin:18px 0 8px}#playground-sample pre{max-width:100%;max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f6f0;padding:12px;border-radius:8px;font-size:12px;line-height:1.7}
