:root{--paper:#f6f5f1;--ink:#23211c;--ink-soft:#6c675c;--plum:#6e3b5c;--plum-deep:#532b45;--sage:#aebfa8;--line:#e2dfd6;--card:#fffefb;--radius:14px;--display:"Fraunces",georgia,serif;--body:"Public Sans",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--plum);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--body)}:focus-visible{outline:2px solid var(--plum);outline-offset:2px}.shell{max-width:760px;margin:0 auto;padding:0 24px 96px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:760px;margin:0 auto;padding:14px 24px;display:flex;align-items:baseline;justify-content:space-between;gap:16px}.wordmark{font-family:var(--display);font-weight:560;font-size:1.05rem;letter-spacing:.01em}.topbar form button{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:.85rem;padding:0}.topbar form button:hover{color:var(--ink)}.filament{height:3px;background:var(--line)}.filament>span{display:block;height:100%;background:linear-gradient(90deg,var(--sage),var(--plum));transition:width .6s cubic-bezier(.22,1,.36,1)}.hero{padding:56px 0 28px}.hero h1{font-family:var(--display);font-weight:560;font-size:clamp(2rem,5vw,2.8rem);line-height:1.12;margin:0 0 10px;letter-spacing:-.01em}.hero p{color:var(--ink-soft);margin:0}.progress-note{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--plum);font-weight:600}.lesson-list{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-gap:10px;gap:10px}.lesson-card{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;transition:border-color .15s ease,transform .15s ease}.lesson-card:hover{border-color:var(--plum);transform:translateY(-1px)}.lesson-card a{color:var(--ink);font-weight:500;flex:1 1}.lesson-card a:hover{text-decoration:none;color:var(--plum-deep)}.dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--ink-soft);background:transparent}.dot.done{background:var(--plum);border-color:var(--plum)}.lesson-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.85rem;width:2ch}.lesson-header{padding:48px 0 8px}.lesson-header .eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}.lesson-header h1{font-family:var(--display);font-weight:560;font-size:clamp(1.7rem,4.5vw,2.4rem);margin:6px 0 0;line-height:1.15}.prose{padding-top:12px}.prose h2,.prose h3,.prose h4{font-family:var(--display);font-weight:560;line-height:1.2;margin:1.6em 0 .4em}.prose h2{font-size:1.5rem}.prose h3{font-size:1.25rem}.prose h4{font-size:1.1rem}.prose p{margin:.85em 0}.prose ol,.prose ul{padding-left:1.3em}.prose li{margin:.3em 0}.prose blockquote{border-left:3px solid var(--sage);margin:1.2em 0;padding:.2em 0 .2em 1em;color:var(--ink-soft);font-style:italic}.prose img,.prose video{max-width:100%;border-radius:10px}.prose hr{border:none;border-top:1px solid var(--line);margin:2em 0}.prose code{background:#efede6;border-radius:5px;padding:.1em .35em;font-size:.9em}.prose pre{background:#2a2722;color:#f3f1ea;border-radius:10px;padding:16px;overflow-x:auto}.prose pre code{background:none;color:inherit;padding:0}.callout{display:flex;gap:10px;background:#efe9ec;border-radius:10px;padding:14px 16px;margin:1.2em 0}.embed-frame{width:100%;aspect-ratio:16/9;border:none;border-radius:10px;margin:1.2em 0}details{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:.8em 0;background:var(--card)}details summary{cursor:pointer;font-weight:500}.lesson-footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}.btn{display:inline-block;border-radius:999px;padding:10px 22px;cursor:pointer;font-size:.95rem;font-weight:600;border:1.5px solid var(--plum);background:var(--plum);color:#fff;transition:background .15s ease}.btn:hover{background:var(--plum-deep);text-decoration:none}.btn.ghost{background:transparent;color:var(--plum)}.btn.ghost:hover{background:#efe9ec}.btn[disabled]{opacity:.6;cursor:default}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:410px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:36px 32px}.login-card h1{font-family:var(--display);font-weight:560;font-size:1.7rem;margin:0 0 6px}.login-card p{color:var(--ink-soft);margin:0 0 22px;font-size:.95rem}.login-card label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.login-card input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;font-family:var(--body);background:var(--paper);color:var(--ink)}.login-card input:focus{border-color:var(--plum);outline:none}.login-card .btn{width:100%;margin-top:16px}.login-msg{margin-top:14px;font-size:.9rem;color:var(--plum-deep)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}