:root{--ink:#06143a;--sky:#1a8cff;--blue:#0f3fd1;--glow:#7fd0ff;--paper:#f3f8ff;--mono:'JetBrains Mono',ui-monospace,monospace}
*{box-sizing:border-box}
body{margin:0;font-family:Manrope,system-ui,sans-serif;color:#fff;background:linear-gradient(#071a4d 0,#0b2a9a 620px,var(--sky) 900px,var(--sky))}
button,input,select,textarea{font:inherit}
a{color:inherit}
.nav{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:28px;padding:14px max(20px,calc(50% - 600px));backdrop-filter:blur(10px);background:#06143a99}
.logo{font-weight:800;font-size:22px;letter-spacing:.04em;text-decoration:none}
.nav nav{display:flex;gap:22px;flex:1}.nav nav a{text-decoration:none;opacity:.85;font-size:15px}
.right{display:flex;align-items:center;gap:14px}
select{background:transparent;color:#fff;border:0;cursor:pointer}select option{color:#000}
.link{background:none;border:0;color:#fff;cursor:pointer;padding:6px}
.pill{background:var(--blue);color:#fff;border:0;border-radius:999px;padding:10px 22px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}
.pill:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0f3fd180}
.pill.big{background:#fff;color:var(--ink);padding:16px 34px;font-size:17px;box-shadow:0 0 40px #7fd0ff90}
:focus-visible{outline:3px solid var(--glow);outline-offset:2px}
.hero{text-align:center;padding:90px 20px 140px;max-width:900px;margin:auto}
.hero h1{font-size:clamp(36px,6.4vw,72px);line-height:1.05;margin:0 0 24px;font-weight:800;text-wrap:balance}
.hero p{max-width:620px;margin:0 auto 34px;font-size:18px;line-height:1.6;opacity:.9}
.band{padding:70px max(20px,calc(50% - 560px))}
.band h2{font-size:clamp(28px,4vw,44px);margin:0 0 34px;font-weight:800}
.plan{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:s}
.plan li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:6px 16px;background:#ffffff1c;border:1px solid #ffffff30;border-radius:18px;padding:18px 22px}
.plan li::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);font-weight:800}
.plan b{font-size:18px}.plan span{opacity:.85;line-height:1.5}
.band.light{background:var(--paper);color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.card{display:block;text-decoration:none;background:#fff;border-radius:24px;padding:26px;min-height:200px;box-shadow:0 14px 40px #0f3fd126;border:2px solid transparent;transition:border-color .2s}
.card:hover{border-color:var(--sky)}
.card:nth-child(1){transform:rotate(-1.2deg)}.card:nth-child(3){transform:rotate(1.2deg)}
.card h3{font-size:22px;margin:14px 0 8px}.card p{margin:0;line-height:1.5;color:#3b4a75}
.card .badge{font-family:var(--mono);font-size:13px;background:#e3efff;border-radius:8px;padding:4px 9px}
.card.done .badge{background:#c8f5d6}
#lesson{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;padding:28px max(20px,calc(50% - 640px)) 60px;min-height:80vh}
.pane{background:#ffffff18;border:1px solid #ffffff2e;border-radius:22px;padding:24px;backdrop-filter:blur(6px)}
.theory{line-height:1.7}.theory h1{font-size:32px;margin:6px 0 12px}.theory code,.theory pre{font-family:var(--mono);background:#06143a88;border-radius:8px}
.theory code{padding:2px 6px}.theory pre{padding:14px;overflow:auto}
.task{background:#fff;color:var(--ink);border-radius:14px;padding:14px 18px;margin:18px 0}
textarea.code{width:100%;min-height:190px;font-family:var(--mono);font-size:15px;background:#04102e;color:#e8f3ff;border:1px solid #ffffff40;border-radius:14px;padding:14px;resize:vertical;tab-size:4}
pre.out{min-height:70px;white-space:pre-wrap;background:#000a;border-radius:14px;padding:14px;font-family:var(--mono);font-size:14px;margin:12px 0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.chat{display:flex;flex-direction:column;height:calc(100vh - 110px);position:sticky;top:76px}
.chat h3{margin:0 0 12px}.msgs{flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}
.m{padding:10px 14px;border-radius:16px;line-height:1.5;max-width:92%;white-space:pre-wrap}
.m.u{align-self:flex-end;background:var(--blue)}.m.a{align-self:flex-start;background:#ffffff26}
.chat form{display:flex;gap:8px;margin-top:12px}.chat input{flex:1;border-radius:999px;border:0;padding:10px 16px}
.quick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.quick button{background:#ffffff22;border:1px solid #ffffff40;color:#fff;border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px}
dialog{border:0;border-radius:24px;padding:30px;width:min(400px,92vw);background:#fff;color:var(--ink);position:fixed}
dialog::backdrop{background:#06143acc;backdrop-filter:blur(4px)}
dialog form{display:grid;gap:14px;position:relative}dialog h3{margin:0;font-size:24px}
dialog label{display:grid;gap:4px;font-size:14px;font-weight:600}
dialog input{padding:11px 14px;border:1.5px solid #c4d3f0;border-radius:12px}
dialog .link{color:var(--blue)}#authErr{color:#c0222e;margin:0;min-height:1.2em;font-size:14px}
.x{position:absolute;right:-8px;top:-18px;background:none;border:0;font-size:28px;cursor:pointer}
@media(max-width:900px){#lesson{grid-template-columns:1fr}.chat{height:520px;position:static}.nav nav{display:none}.nav{gap:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.theory h3{margin:26px 0 8px;font-size:20px}
textarea.code.s{min-height:120px}
#lessonsPage .band{min-height:70vh}
