@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&family=Caveat:wght@500;700&display=swap";:root{--kl-teal: #245958;--kl-teal-dark: #1a4241;--kl-teal-soft: #e3eeed;--kl-copper: #aa5735;--kl-copper-dark: #8a4327;--kl-copper-soft: #f6e6dd;--kl-paper: #f7f4ee;--kl-paper-2: #efeae0;--kl-card: #fffdf9;--kl-ink: #1f2624;--kl-ink-2: #4a5552;--kl-ink-3: #6f7a76;--kl-line: #ddd6c8;--kl-line-strong: #c4bba9;--kl-grid: rgba(36, 89, 88, .07);--kl-ok: #2f7d4f;--kl-warn: #b7791f;--kl-bad: #b03a2e;--kl-font-ui: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--kl-font-code: "JetBrains Mono", "Fira Code", ui-monospace, Menlo, Consolas, monospace;--kl-font-hand: "Caveat", "Segoe Print", cursive;--kl-radius: 10px;--kl-radius-lg: 16px;--kl-shadow: 0 1px 0 rgba(31, 38, 36, .06), 0 8px 24px -12px rgba(31, 38, 36, .18);--kl-focus: 0 0 0 3px #fffdf9, 0 0 0 5px var(--kl-teal);--kl-topbar-h: 56px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--kl-font-ui);color:var(--kl-ink);line-height:1.55;font-size:16px;background-color:var(--kl-paper);background-image:linear-gradient(var(--kl-grid) 1px,transparent 1px),linear-gradient(90deg,var(--kl-grid) 1px,transparent 1px);background-size:28px 28px;min-height:100vh}h1,h2,h3{line-height:1.15;letter-spacing:-.02em;margin:0 0 .5em}h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800}h2{font-size:1.25rem;font-weight:700}p{margin:0 0 1em}a{color:var(--kl-teal);text-underline-offset:3px}code{font-family:var(--kl-font-code);font-size:.9em;background:var(--kl-paper-2);padding:1px 5px;border-radius:4px}main:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--kl-focus);border-radius:6px}.muted{color:var(--kl-ink-2)}.small{font-size:.875rem}.center{text-align:center}.eyebrow{font-family:var(--kl-font-code);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--kl-copper);font-weight:700;margin:0 0 .75em}.skip{position:absolute;left:-999px;top:8px;background:var(--kl-teal);color:#fff;padding:8px 14px;border-radius:6px;z-index:100}.skip:focus{left:8px}.topbar{height:var(--kl-topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,calc((100vw - 1160px)/2));background:#f7f4eeeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--kl-line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--kl-ink);font-weight:500;font-size:1.1rem}.brand b{color:var(--kl-teal);font-weight:800}.topbar-right{display:flex;align-items:center;gap:14px}.link{font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.btn{font:inherit;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;min-height:44px;border-radius:var(--kl-radius);border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:background .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--kl-teal);color:#fff;box-shadow:0 2px 0 var(--kl-teal-dark)}.btn-primary:hover:not(:disabled){background:var(--kl-teal-dark)}.btn-ghost{background:transparent;color:var(--kl-teal);border-color:var(--kl-line-strong)}.btn-ghost:hover:not(:disabled){border-color:var(--kl-teal);background:var(--kl-teal-soft)}.btn-quiet{background:transparent;color:var(--kl-teal);border-color:var(--kl-line-strong);padding:8px 14px}.btn-small{min-height:36px;padding:6px 14px;font-size:.9rem}.btn-lg{min-height:52px;padding:12px 26px;font-size:1.05rem}.btn-block{width:100%}.card{background:var(--kl-card);border:1px solid var(--kl-line);border-radius:var(--kl-radius-lg);padding:24px;box-shadow:var(--kl-shadow);margin-bottom:20px}.banner{padding:10px 14px;border-radius:var(--kl-radius);border:1px solid;font-size:.95rem;margin-bottom:16px}.banner-error{background:#fbeceb;border-color:#e6b4af;color:#7d261d}.banner-warn{background:var(--kl-copper-soft);border-color:#e2bda8;color:var(--kl-copper-dark)}.banner-ok{background:#e6f2ea;border-color:#b5d6c1;color:#1f5b38}.complete{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px max(16px,calc((100vw - 1160px)/2)) 0}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;max-width:1160px;margin:0 auto;padding:72px 16px 48px}.hero h1{max-width:17ch;margin-bottom:.4em}.hero h1:after{content:"";display:block;width:84px;height:5px;background:var(--kl-copper);margin-top:18px;border-radius:3px}.lede{font-size:1.15rem;color:var(--kl-ink-2);max-width:52ch}.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 14px}.hero-art{position:relative}.page-card{background:var(--kl-card);border:1px solid var(--kl-line);border-radius:6px;padding:14px;box-shadow:var(--kl-shadow);transform:rotate(1.2deg)}.sketch{width:100%;height:auto;display:block}.kip-small{position:absolute;right:-8px;bottom:-34px;width:104px;height:auto;transform:rotate(-3deg)}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1160px;margin:0 auto;padding:24px 16px 96px}.pillars article{border-top:3px solid var(--kl-teal);padding-top:14px}.pillars article:nth-child(2){border-color:var(--kl-copper)}.pillars p{color:var(--kl-ink-2)}.auth-wrap{display:flex;justify-content:center;padding:40px 16px 80px}.auth-card{width:100%;max-width:460px}.auth-card h1{font-size:1.9rem}.field{margin-bottom:16px}.field label,.check label{font-weight:600;font-size:.95rem}.field label{display:block;margin-bottom:6px}input[type=text],input[type=email],input[type=password],input[type=date]{width:100%;font:inherit;padding:11px 12px;min-height:46px;border:1.5px solid var(--kl-line-strong);border-radius:var(--kl-radius);background:#fff;color:var(--kl-ink)}input:focus-visible{box-shadow:var(--kl-focus);border-color:var(--kl-teal)}.has-error input[type=text],.has-error input[type=email],.has-error input[type=password],.has-error input[type=date]{border-color:var(--kl-bad)}.error{color:var(--kl-bad);font-size:.875rem;margin-top:6px;font-weight:500}.hint{font-size:.85rem;color:var(--kl-ink-2);margin-top:6px}.pw-row{display:flex;gap:8px}.pw-row .btn{min-height:46px;min-width:76px}.strength{display:inline-flex;align-items:center;gap:8px}.meter{display:inline-flex;gap:3px}.meter i{width:22px;height:5px;border-radius:3px;background:var(--kl-line)}.s1 .meter i.on{background:var(--kl-bad)}.s2 .meter i.on{background:var(--kl-warn)}.s3 .meter i.on{background:var(--kl-ok)}.check{display:grid;grid-template-columns:22px 1fr;gap:4px 10px;align-items:start;margin-bottom:14px}.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--kl-teal)}.check .error{grid-column:2;margin:0}.doc{max-width:720px;margin:0 auto;padding:48px 16px 80px}.doc h1{font-size:2.2rem}.doc h2{margin-top:1.6em}.account{position:relative}.account-btn{font:inherit;display:flex;align-items:center;gap:8px;background:var(--kl-card);border:1px solid var(--kl-line-strong);border-radius:999px;padding:4px 14px 4px 4px;cursor:pointer;min-height:40px;color:var(--kl-ink);font-weight:600}.avatar{width:32px;height:32px;border-radius:50%;background:var(--kl-copper);color:#fff;display:grid;place-items:center;font-weight:800}.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:var(--kl-card);border:1px solid var(--kl-line);border-radius:var(--kl-radius);box-shadow:var(--kl-shadow);padding:6px;z-index:30}.menu-head{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--kl-line);margin-bottom:4px;word-break:break-all}.menu-item{font:inherit;width:100%;text-align:left;padding:10px;background:none;border:0;border-radius:6px;cursor:pointer;font-weight:600}.menu-item:hover{background:var(--kl-teal-soft)}.course{max-width:1160px;margin:0 auto;padding:40px 16px 80px}.course-head h1{font-size:clamp(1.8rem,4vw,2.6rem)}.course-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}.continue{display:flex;align-items:center;justify-content:space-between;gap:16px;border-left:5px solid var(--kl-copper)}.continue h2{font-size:1.4rem;margin-bottom:4px}.continue p{margin:0}.chapter h2{display:flex;flex-direction:column;gap:4px;font-size:1.3rem;margin:28px 0 14px}.ch-num{font-family:var(--kl-font-code);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--kl-copper)}.lessons{list-style:none;margin:0;padding:0;display:grid;gap:10px}.lesson-row{display:grid;grid-template-columns:36px 1fr auto auto;gap:14px;align-items:center;background:var(--kl-card);border:1px solid var(--kl-line);border-radius:var(--kl-radius);padding:14px 16px;text-decoration:none;color:var(--kl-ink)}.lesson-row:hover{border-color:var(--kl-teal);box-shadow:var(--kl-shadow)}.lesson-no{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--kl-line-strong);display:grid;place-items:center;font-family:var(--kl-font-code);font-weight:700;font-size:.9rem}.lesson-row.done .lesson-no{background:var(--kl-teal);border-color:var(--kl-teal);color:#fff}.lesson-row.in_progress .lesson-no{border-color:var(--kl-copper);color:var(--kl-copper)}.lesson-title{font-weight:600}.lesson-min{color:var(--kl-ink-3);font-size:.85rem}.pill{font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--kl-paper-2);color:var(--kl-ink-2);white-space:nowrap}.pill.done{background:var(--kl-teal-soft);color:var(--kl-teal)}.pill.in_progress{background:var(--kl-copper-soft);color:var(--kl-copper-dark)}.side .card{padding:20px}.small-h{font-size:1rem}.bar{height:8px;border-radius:4px;background:var(--kl-paper-2);overflow:hidden;margin:10px 0}.bar i{display:block;height:100%;background:var(--kl-teal);transition:width .4s}.review h2{font-size:1.1rem}.review-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.review-list li{border:1px dashed var(--kl-line-strong);border-radius:var(--kl-radius);padding:10px 12px}.concept{display:block;font-weight:600;text-transform:capitalize;margin-bottom:8px}.review-actions{display:flex;gap:8px}.lesson-host{display:flex;flex-direction:column;min-height:calc(100vh - var(--kl-topbar-h))}.lesson-bar{display:flex;align-items:center;gap:16px;padding:10px max(16px,calc((100vw - 1160px)/2));background:var(--kl-card);border-bottom:1px solid var(--kl-line)}.lesson-bar .back{font-weight:700;text-decoration:none;white-space:nowrap}.lesson-bar .back:before{content:"← "}.lesson-name{font-size:1.05rem;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.lesson-nav{display:flex;gap:8px}.lesson-stage{flex:1;padding:16px}@media (max-width: 900px){.hero{grid-template-columns:1fr;padding-top:40px;gap:40px}.pillars,.course-grid{grid-template-columns:1fr}}@media (max-width: 600px){.lesson-bar{flex-wrap:wrap;gap:8px}.lesson-name{order:3;flex-basis:100%;white-space:normal}.lesson-nav{margin-left:auto}.lesson-row{grid-template-columns:32px 1fr auto}.lesson-min{display:none}.continue{flex-direction:column;align-items:stretch}.account-name{display:none}.account-btn{padding-right:4px}.kip-small{width:84px;right:0}.complete{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.section-h{font-size:1.1rem;margin:28px 0 14px}.landing-courses{max-width:1160px;margin:0 auto;padding:24px 16px 0}.landing-courses .section-h{margin-top:0}.course-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.course-card{background:var(--kl-card);border:1px solid var(--kl-line);border-top:4px solid var(--kl-teal);border-radius:var(--kl-radius-lg);padding:22px;box-shadow:var(--kl-shadow);display:flex;flex-direction:column;align-items:flex-start}.course-card.js{border-top-color:var(--kl-copper)}.course-card h2,.course-card h3{font-size:1.3rem;margin-bottom:.3em;letter-spacing:-.01em}.course-card .bar{width:100%}.course-card .btn{margin-top:auto}.course-card p:last-of-type{margin-bottom:14px}.crumb{color:var(--kl-copper);text-decoration:none}.crumb:before{content:"← "}.crumb:hover{text-decoration:underline}.concept-course{display:block;font-family:var(--kl-font-code);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--kl-copper)}@media (max-width: 700px){.course-cards{grid-template-columns:1fr}}
