@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101313;--panel:#191d1d;--panel2:#202525;--text:#edf2ed;--muted:#99a5a1;--line:#303836;--accent:#c6f679;--ink:#16220e;--code:#111715}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px 'DM Sans',sans-serif;line-height:1.65}h1,h2,h3,strong,.brand{font-family:'Space Grotesk',sans-serif}button,input,textarea{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;color:inherit;background:none}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}aside{position:fixed;width:246px;inset:0 auto 0 0;padding:30px 20px;background:#151919;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;font-size:29px;letter-spacing:-1.5px}.brand>span{color:var(--accent)}.dot{color:var(--accent)}.course-label,.eyebrow,.card-kicker{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--muted)}.course-label{margin-top:49px}aside h3{font-size:17px;line-height:1.45;margin:10px 0 25px}nav{display:grid;gap:6px}nav button{display:flex;align-items:center;gap:12px;padding:11px 9px;text-align:left;border-radius:8px;font-size:12px;color:var(--muted)}nav button.selected{background:#293520;color:var(--accent)}nav button:hover{background:var(--panel2)}nav small{display:block;font-size:10px;color:var(--muted)}.lesson-icon{font-family:monospace;font-size:13px;border:1px solid var(--line);border-radius:6px;width:29px;height:29px;display:grid;place-items:center}.sidebar-bottom{margin-top:auto;display:grid;gap:12px;padding:20px 7px 0;font-size:11px;color:var(--muted)}.sidebar-bottom button{text-align:left;padding:0;font-size:11px}.page{margin-left:246px}header{height:79px;border-bottom:1px solid var(--line);padding:0 42px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);letter-spacing:1px}header>div{display:flex;align-items:center;gap:9px}header button{margin-left:15px;border:1px solid var(--line);border-radius:25px;padding:8px 14px;color:var(--text);font-size:12px;letter-spacing:0}.live-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px #c6f63544}main{max-width:1280px;padding:28px 42px 24px;margin:auto}.breadcrumb{color:var(--muted);font-size:11px;display:flex;gap:14px}.breadcrumb b{font-weight:400;color:var(--text)}.intro{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;margin:37px 0 30px;gap:30px}.eyebrow{color:var(--accent)}h1{font-size:44px;letter-spacing:-2px;line-height:1.16;margin:16px 0}h1 em{font-style:normal;color:var(--accent)}.intro p{color:var(--muted);font-size:13px;line-height:1.8}.hero-code{border:1px solid #44533c;border-radius:15px;padding:22px;transform:rotate(-4deg);background:radial-gradient(ellipse at 50% 60%,#35472788,transparent 75%);max-width:365px}.code-tag{font:20px monospace;color:var(--accent);display:block}.last{text-align:right}.code-flow{display:flex;gap:10px;align-items:center;justify-content:center;padding:24px 0}.code-flow i{font-style:normal;font:11px monospace;padding:12px 9px;border:1px solid #526145;border-radius:6px;background:var(--panel)}.code-flow b{color:var(--accent)}.stats{display:grid;grid-template-columns:1fr 1fr 1.4fr;border:1px solid var(--line);border-radius:10px;padding:20px 0;background:var(--panel);margin:30px 0 37px}.stats>div{padding:0 25px;border-right:1px solid var(--line)}.stats>div:last-child{border:none}.stats span{display:block;font-size:9px;letter-spacing:1.5px;color:var(--muted)}.stats strong{font-size:29px;display:block;margin-top:4px}.stats small{font:11px 'DM Sans',sans-serif;color:var(--muted)}.overall span{display:flex;justify-content:space-between}.overall b{color:var(--accent)}.track{height:5px;border-radius:8px;background:var(--line);overflow:hidden;margin:14px 0 7px}.track i{height:100%;display:block;background:var(--accent);transition:width .4s}.lesson-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}h2{font-size:26px;letter-spacing:-.7px;margin:6px 0}.pill{font-size:10px;border:1px solid #46563c;color:var(--accent);padding:5px 11px;border-radius:20px}.learn-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}.card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:24px}.card h3{font-size:19px;line-height:1.35;letter-spacing:-.5px;margin:13px 0 12px}.card p{font-size:12px;color:var(--muted)}.card-kicker{font-size:9px}.card-kicker span{float:right;letter-spacing:0;color:var(--accent)}pre{white-space:pre-wrap;word-break:break-word;font:12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}.theory pre{padding:16px;background:var(--code);border-radius:7px;color:#b6d8a5;border:1px solid var(--line);font-size:10px}.tip{display:flex;gap:10px;color:var(--accent);font-size:11px;margin-top:20px}.tip span{color:var(--muted)}.option{display:block;width:100%;border:1px solid var(--line);border-radius:7px;text-align:left;padding:10px 12px;margin:8px 0;font-size:12px}.option:hover,.option.chosen{border-color:var(--accent);background:#c6f6100d}.secondary,.primary{border-radius:6px;padding:10px 16px;font-size:11px;font-weight:700}.secondary{border:1px solid var(--line)}.primary{background:var(--accent);color:var(--ink)}#check{margin-top:10px;width:100%}.feedback{min-height:18px;font-size:12px!important;color:#f3be83!important}.feedback.success{color:var(--accent)!important}.workshop{margin-top:20px;padding:0;overflow:hidden}.workshop-head{display:flex;justify-content:space-between;padding:23px 24px 12px;gap:15px}.workshop h3{margin:9px 0}.xp{color:var(--accent);font-size:11px;white-space:nowrap}.editor-grid{display:grid;grid-template-columns:1.2fr 1fr;border-top:1px solid var(--line)}.editor-pane{background:var(--code);border-right:1px solid var(--line)}.pane-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:12px 18px;font:10px monospace;color:var(--muted)}.pane-head button{font:10px 'DM Sans',sans-serif;color:var(--muted)}textarea{display:block;background:transparent;resize:vertical;min-height:230px;width:100%;border:none;color:#c4e5b2;padding:21px;font:13px/1.9 ui-monospace,SFMono-Regular,monospace;tab-size:2}.editor-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--line)}.editor-footer>span{font-size:9px;color:var(--muted)}.output-pane>pre{min-height:90px;margin:18px;color:var(--text)}.request{margin:18px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted)}.request b{font-size:8px;letter-spacing:1px}.request pre{font-size:10px}.output-pane>.feedback{margin:18px}footer{display:flex;justify-content:space-between;align-items:center;margin:23px 0}footer>span{font-size:11px;color:var(--muted)}footer>div{display:flex;gap:8px}.save-note{font-size:10px;color:var(--muted)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;max-width:440px;padding:32px}dialog::backdrop{background:#080e0cc9;backdrop-filter:blur(5px)}dialog p{font-size:13px;color:var(--muted)}dialog input{width:100%;padding:12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;margin:10px 0 15px}dialog label{font-size:12px}#login-error{color:#f3be83}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--ink);padding:12px 24px;border-radius:8px;opacity:0;pointer-events:none;z-index:10;transition:opacity .2s;font-size:13px}#toast.show{opacity:1}.light{color-scheme:light;--bg:#f4f6ef;--panel:#fff;--panel2:#e7eddc;--text:#1b271d;--muted:#5e6d61;--line:#d7dfd1;--accent:#497520;--ink:#fff;--code:#edf3e6}.light aside{background:#edf1e7}.light nav button.selected{background:#dce8cc}.light .theory pre,.light textarea{color:#30582d}.light .hero-code{background:#e3edda}.beamer header{height:92px}.beamer main{max-width:1600px;padding:45px 65px}.beamer h1{font-size:54px}.beamer-stats{display:flex;gap:70px;margin:35px 0}.beamer-stats div{display:flex;gap:16px;align-items:center}.beamer-stats strong{font-size:42px;color:var(--accent)}.beamer-stats span{color:var(--muted)}.beamer-grid{display:grid;grid-template-columns:2fr 1fr;gap:40px}.beamer-grid h2{font-size:23px;margin-bottom:25px}.rank-row{display:grid;grid-template-columns:55px 1fr 100px;gap:15px;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.rank-row.leader{background:#2b3823;border:1px solid #617644;border-radius:12px}.rank{font-size:26px;color:var(--muted)}.leader .rank{color:var(--accent);font-size:42px}.rank-row h3{font-size:25px;margin:0}.rank-row small{color:var(--muted)}.rank-points{color:var(--accent);font-size:24px;text-align:right}.active-user{font-size:21px!important;color:var(--text)!important;border-bottom:1px solid var(--line);padding-bottom:14px}.beamer .tip{padding-top:40px;font-size:21px}.beamer .card>p{font-size:14px}@media(min-width:1500px){main{padding-top:40px}.intro{margin:45px 0}h1{font-size:54px}.card p{font-size:14px}.theory pre{font-size:12px}nav button{font-size:13px}}@media(max-width:1100px){aside{width:210px;padding:24px 14px}.page{margin-left:210px}main{padding:25px}header{padding:0 25px}h1{font-size:36px}.hero-code{padding:15px}.code-flow{gap:5px}.learn-grid{grid-template-columns:1fr}.intro{grid-template-columns:1.3fr 1fr}.stats>div{padding:0 15px}}@media(max-width:760px){aside{position:static;width:auto;border-right:0;padding:16px}.brand{font-size:24px}.course-label,aside h3{display:none}nav{display:flex;overflow:auto;margin-top:15px}nav button{min-width:155px}nav small{display:none}.sidebar-bottom{display:flex;flex-wrap:wrap;gap:20px;padding:15px 0 0}.page{margin:0}header{height:60px;padding:0 18px}header>span{display:none}header>div{width:100%;justify-content:flex-end}main{padding:22px 18px}.intro{grid-template-columns:1fr;margin:28px 0}.hero-code{display:none}h1{font-size:40px}.stats{grid-template-columns:1fr 1fr}.stats>div{padding:0 18px}.stats .overall{grid-column:1/-1;border-top:1px solid var(--line);margin-top:15px;padding-top:15px}.stats>div:nth-child(2){border:none}.editor-grid{grid-template-columns:1fr}.editor-pane{border-right:0}.output-pane{border-top:1px solid var(--line)}.card{padding:19px}.lesson-heading{gap:10px}.lesson-heading h2{font-size:23px}.pill{white-space:nowrap;font-size:9px}footer>span{display:none}footer{justify-content:flex-end}.beamer main{padding:25px 18px}.beamer h1{font-size:37px}.beamer header{padding:0 18px}.beamer-grid{grid-template-columns:1fr}.beamer-stats{gap:20px;flex-wrap:wrap}.beamer-stats div{gap:8px}.beamer-stats strong{font-size:30px}.beamer-stats span{font-size:12px}.rank-row{grid-template-columns:35px 1fr 80px;padding:12px;gap:10px}.rank-row h3{font-size:21px}.rank-points{font-size:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Light palette: warm white surfaces, forest-green accents and readable feedback. */
.light{--bg:#f6f8f3;--panel:#ffffff;--panel2:#edf2e7;--text:#203021;--muted:#596758;--line:#d9e2d3;--accent:#35651f;--ink:#ffffff;--code:#f0f5eb}
.light aside{background:#eef3e8}
.light .card,.light .stats{box-shadow:0 3px 14px #25391b05}
.light nav button.selected{background:#deebd2;color:#294f18}
.light .lesson-icon{background:#ffffff80}
.light .hero-code{background:radial-gradient(ellipse at 50% 60%,#dfedcf,#f4f8ef);border-color:#b2c89d;box-shadow:0 10px 35px #47612b0d}
.light .code-flow i{border-color:#b8cca7;background:#fff}
.light .pill{border-color:#b7cfa4;background:#edf5e5}
.light .option:hover,.light .option.chosen{background:#edf5e5;border-color:#54883a}
.light .feedback{color:#8a4615!important}
.light .feedback.success{color:var(--accent)!important}
.light #login-error{color:#a33921}
.light dialog::backdrop{background:#20351b40}
.light .rank-row.leader{background:#e4f0d9;border-color:#a2c183}
.light .live-dot{box-shadow:0 0 0 3px #35651f12}
.light .secondary:hover{background:var(--panel2)}
.light .primary:hover{background:#284e17}