:root{--paper:#f4f2e9;--card:#fffefa;--ink:#17231d;--muted:#5d6861;--line:#d8d5c9;--green:#245544;--green2:#dce9df;--lime:#c8e268;--term:#14251f;--red:#a33d34;--radius:14px;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}
.skip{position:fixed;top:-4rem;left:1rem;z-index:10;background:var(--ink);color:white;padding:.5rem 1rem}.skip:focus{top:1rem}a{color:inherit}
.header{height:64px;padding:0 max(1rem,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--line);background:rgba(244,242,233,.95);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}
button,.button{font:inherit}.language{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:.55rem .85rem;font-weight:700;cursor:pointer}.language:hover{border-color:var(--green)}
.app-shell{display:grid;grid-template-columns:150px minmax(0,1fr);gap:3rem;max-width:1120px;margin:0 auto;padding:2.5rem 1rem 5rem}nav{position:sticky;top:108px;height:max-content;display:grid;gap:.35rem}nav a{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;text-decoration:none;border-radius:8px;color:var(--muted);font-weight:650}nav a:hover,nav a[aria-current]{color:var(--green);background:var(--green2)}.nav-icon{font-family:var(--mono);font-weight:800;width:20px}
.pl-text{display:none;color:var(--muted);font-size:.9em;margin-left:.35em}.pl-text::before{content:" / "}.show-polish .pl-text{display:inline}.show-polish p>.pl-text,.show-polish h1>.pl-text,.show-polish h2>.pl-text,.show-polish h3>.pl-text,.show-polish strong>.pl-text{display:block;margin:.25rem 0 0}.show-polish p>.pl-text::before,.show-polish h1>.pl-text::before,.show-polish h2>.pl-text::before,.show-polish h3>.pl-text::before,.show-polish strong>.pl-text::before{content:""}
main{min-width:0}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;padding:3.5rem 0 4.5rem}.eyebrow,.section-kicker{font:bold .72rem var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--green);margin:0 0 1rem}.hero h1,.page-head h1,.lesson-head h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.95;letter-spacing:-.055em;margin:0;max-width:750px}.hero>div>p:not(.eyebrow),.page-head>p:not(.eyebrow),.lesson-head>p{font-size:1.08rem;color:var(--muted);max-width:640px}
.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.7rem}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:.75rem 1rem;font-weight:750;text-decoration:none;cursor:pointer;min-height:46px}.button.primary{background:var(--green);color:white}.button.primary:hover{background:#193e31}.button.quiet{background:transparent;border-color:var(--line)}.button.quiet:hover{background:var(--card)}
.hero-terminal,.terminal{background:var(--term);color:#f1f3ed;border-radius:var(--radius);overflow:hidden;box-shadow:0 18px 45px rgba(21,37,31,.15)}.terminal-top{height:42px;background:#20362e;display:flex;align-items:center;gap:7px;padding:0 1rem;color:#a9b7b1;font:.72rem var(--mono)}.terminal-top i{width:8px;height:8px;border-radius:50%;background:#608075}.terminal-top i:first-child{background:#d67867}.terminal-top i:nth-child(2){background:#d5bd65}.terminal-top span{margin-left:.4rem}.hero-terminal pre{padding:1.5rem;margin:0;min-height:205px;font:.88rem/1.9 var(--mono);white-space:pre-wrap}.prompt{color:#9cd2a6}.output{color:#f2f2e9}.error{color:#ffad9e}.cursor{display:inline-block;width:8px;height:17px;background:var(--lime);animation:blink 1s steps(1) infinite;vertical-align:middle}@keyframes blink{50%{opacity:0}}
.dash{display:flex;justify-content:space-between;gap:2rem;align-items:end;border-top:1px solid var(--line);padding:2rem 0 1.25rem}.dash h2{font-size:clamp(1.5rem,3vw,2rem);max-width:620px;line-height:1.15;margin:0}.progress-mini{min-width:160px}.progress-mini strong{font:800 1.45rem var(--mono);display:block}.progress-mini span{font-size:.78rem;color:var(--muted)}.progress-mini>div,.quiz-line{height:5px;background:var(--line);margin-top:.6rem;overflow:hidden}.progress-mini i,.quiz-line i{display:block;height:100%;background:var(--green)}
.lesson-list{border-top:1px solid var(--line)}.lesson-row{display:grid;grid-template-columns:64px 1fr auto;gap:1rem;align-items:center;text-decoration:none;padding:1.25rem .25rem;border-bottom:1px solid var(--line)}.lesson-row:hover{background:rgba(255,255,255,.4)}.lesson-number{font:bold .75rem var(--mono);color:var(--green)}.lesson-row strong{font-size:1.12rem}.lesson-row small{display:block;margin-top:.3rem}.lesson-row code,.progress-board code{font:.72rem var(--mono);color:var(--muted);background:#e8e5db;padding:.15rem .35rem;border-radius:4px;margin-right:.25rem}.row-status{font-size:.78rem;font-weight:750;color:var(--green)}
.remember,.tip{display:flex;gap:1rem;align-items:flex-start;background:var(--green2);border-left:4px solid var(--green);padding:1rem 1.25rem;margin:2rem 0}.remember>span,.tip>span{font:bold 1.1rem var(--mono);color:var(--green)}.remember p,.tip p{margin:0}.remember strong,.tip strong{display:block}.windows-note{display:grid;grid-template-columns:minmax(280px,.9fr) 1.1fr;gap:1.25rem;align-items:center;background:#e9e5d8;border:1px solid #d1cab7;border-left:4px solid #7b735c;border-radius:0 10px 10px 0;padding:1rem 1.25rem;margin:2rem 0}.windows-note p{margin:0}.windows-note p>strong{display:block}.comparison-map{display:grid;grid-template-columns:1fr auto 1fr;gap:.6rem;align-items:stretch}.comparison-side{display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.65rem}.comparison-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:6px;background:#dce4ef;color:#315680;font:bold .72rem var(--mono)}.comparison-side small{font:.62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.comparison-side strong,.comparison-side code{font-size:.75rem;line-height:1.25}.linux-side .comparison-icon{background:var(--green2);color:var(--green)}.linux-side code{font-family:var(--mono);color:var(--green);font-weight:800}.comparison-arrow{align-self:center;color:#7b735c;font-weight:900}.page-head{padding:3rem 0 2.5rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.page-head h1,.lesson-head h1{font-size:clamp(2.5rem,6vw,4.5rem)}
.back{display:inline-block;margin-bottom:2.5rem;color:var(--green);font-weight:700;text-decoration:none}.lesson-head{border-bottom:1px solid var(--line);padding-bottom:2rem}.lesson-head>span{font:bold .75rem var(--mono);color:var(--green)}.command-stack{display:grid;gap:1rem;padding:2rem 0}.command-card{display:grid;grid-template-columns:1fr .9fr;gap:2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.command-card code{font:bold 1.25rem var(--mono);color:var(--green)}.command-card p{margin:.5rem 0 0;color:var(--muted)}.command-card pre{background:var(--term);color:white;margin:0;padding:1rem;border-radius:9px;font:.8rem/1.7 var(--mono);white-space:pre-wrap}
.mini-lab{display:grid;grid-template-columns:.7fr 1.3fr;gap:2rem;align-items:start;padding:2rem 0}.mini-lab h2{line-height:1.2;margin:.5rem 0}.mini-lab>div>p:not(.section-kicker){color:var(--muted)}.terminal.compact{box-shadow:none}.terminal-reset{margin-left:auto;background:transparent;color:#d5dfda;border:0;font:.72rem var(--mono);cursor:pointer}.terminal-output{height:260px;overflow:auto;padding:1rem;font:.82rem/1.6 var(--mono)}.terminal-output p{color:#9db0a8;margin:0}.terminal-output pre{margin:0 0 .8rem;white-space:pre-wrap}.terminal-form{border-top:1px solid #355047;display:flex;align-items:center;padding:.75rem 1rem;font:.82rem var(--mono)}.terminal-prompt{color:#9cd2a6;white-space:nowrap}.terminal-form input{min-width:0;flex:1;background:transparent;border:0;color:white;font:inherit;outline:0;padding:.35rem .5rem;text-transform:none}.terminal-form button{border:1px solid #547067;background:#29473c;color:white;border-radius:6px;padding:.3rem .5rem;font:.7rem var(--mono)}.goal-status{padding:.65rem 1rem;background:#e9e5d8;font:.76rem var(--mono);border-radius:0 0 9px 9px}.goal-status.success{background:var(--green2);color:var(--green);font-weight:800}.lesson-end{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:1.5rem}.next-link{font-weight:800;color:var(--green);text-decoration:none}
.challenge-list{margin-top:2.5rem}.challenge-list h2{font-size:1.3rem}.challenge-list>div{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.challenge-list button{display:grid;grid-template-columns:28px 1fr auto;align-items:center;text-align:left;gap:.75rem;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:.8rem;cursor:pointer}.challenge-list button:hover{border-color:var(--green)}.challenge-list button>span:first-child{display:grid;place-items:center;width:26px;height:26px;background:var(--green2);border-radius:50%;font:bold .7rem var(--mono);color:var(--green)}.challenge-copy{min-width:0}.show-polish .challenge-copy .pl-text{display:block;margin:.15rem 0 0}.show-polish .challenge-copy .pl-text::before{content:""}.challenge-list code{font:.72rem var(--mono);color:var(--green)}
.quiz-card{max-width:750px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,4vw,2.5rem);margin:0 auto}.quiz-meta{display:flex;justify-content:space-between;color:var(--muted);font:.75rem var(--mono)}.quiz-line{margin:1rem 0 2.5rem}.quiz-card h2{font-size:clamp(1.5rem,4vw,2.25rem);line-height:1.2}.answers{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.answers button{display:flex;align-items:center;gap:.75rem;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:.85rem;cursor:pointer;font-weight:650}.answers button:hover:not(:disabled){border-color:var(--green)}.answers button>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:6px;font:bold .75rem var(--mono)}.answers button.correct{border-color:var(--green);background:var(--green2)}.answers button.wrong{border-color:var(--red);background:#f7e3df}.feedback{margin-top:1.5rem;padding:1rem;border-left:4px solid var(--green);background:var(--green2)}.feedback.bad{border-color:var(--red);background:#f7e3df}.feedback strong{display:block}.feedback .button{margin-top:1rem}.result-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green);color:white;font-size:2rem}.quiz-card>p{color:var(--muted)}
.progress-board{display:grid;grid-template-columns:.45fr 1fr;gap:2rem}.big-score{background:var(--green);color:white;border-radius:var(--radius);padding:2rem;min-height:220px;display:flex;flex-direction:column;justify-content:end}.big-score strong{font:800 clamp(3rem,7vw,5rem)/1 var(--mono)}.big-score span{font-size:.85rem}.progress-board h2{margin-top:0}.progress-board a{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:.75rem;padding:.8rem 0;border-bottom:1px solid var(--line);text-decoration:none}.check{width:24px;height:24px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center}.check.done{background:var(--green);color:white;border-color:var(--green)}.best-score{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);padding:1rem;margin-top:1.5rem;border-radius:var(--radius)}.best-score>span{display:grid;place-items:center;width:42px;height:42px;background:var(--green2);border-radius:50%;font-weight:800}.best-score>div{display:flex;flex-direction:column}.best-score b{font:800 1.25rem var(--mono)}.best-score .button{margin-left:auto}.text-button{display:block;margin:2rem auto 0;border:0;background:none;color:var(--red);text-decoration:underline;cursor:pointer}
.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}:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
@media(max-width:800px){.app-shell{grid-template-columns:1fr;gap:1rem;padding-top:1rem}nav{position:sticky;top:64px;z-index:4;display:flex;overflow-x:auto;background:var(--paper);margin:0 -1rem;padding:.5rem 1rem;border-bottom:1px solid var(--line)}nav a{white-space:nowrap;padding:.55rem .75rem}.hero{grid-template-columns:1fr;padding-top:2rem;gap:2rem}.hero-terminal{max-width:580px}.mini-lab,.progress-board,.windows-note{grid-template-columns:1fr}.command-card{grid-template-columns:1fr}.challenge-list>div{grid-template-columns:1fr}}
@media(max-width:520px){.language{font-size:.77rem;padding:.48rem .65rem}.app-shell{padding-bottom:3rem}.hero{padding:1.5rem 0 3rem}.hero h1{font-size:2.85rem}.hero-actions .button{width:100%}.dash{align-items:start;flex-direction:column}.progress-mini{width:100%}.lesson-row{grid-template-columns:42px 1fr}.row-status{display:none}.command-card{padding:1rem}.mini-lab{gap:1rem}.terminal-output{height:240px}.terminal-form button{display:none}.lesson-end{align-items:stretch;flex-direction:column;gap:1rem}.next-link{text-align:center}.answers{grid-template-columns:1fr}.progress-board a{grid-template-columns:30px 1fr}.progress-board code{display:none}.best-score{flex-wrap:wrap}.best-score .button{margin-left:0;width:100%}.show-polish .pl-text{font-size:.82em}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
