:root{--ink: #0b0e16;--ink-2: #10141f;--ink-3: #171c2b;--line: rgba(214, 205, 183, .1);--line-strong: rgba(214, 205, 183, .22);--paper: #ece5d3;--paper-dim: #a49d8c;--paper-faint: #6d685c;--lamp: #e0a83e;--lamp-soft: rgba(224, 168, 62, .14);--sage: #8fb996;--ember: #d96c4f;--on-accent: #0b0e16;--glow-a: rgba(224, 168, 62, .07);--glow-b: rgba(143, 185, 150, .05);--grain-opacity: .35;--serif: "Besley", Georgia, serif;--body: "Schibsted Grotesk", system-ui, sans-serif;--mono: "Fragment Mono", ui-monospace, monospace}:root[data-theme=light]{--ink: #f6f3ea;--ink-2: #fdfbf5;--ink-3: #ede8da;--line: rgba(31, 36, 51, .12);--line-strong: rgba(31, 36, 51, .26);--paper: #232838;--paper-dim: #545a6c;--paper-faint: #83889a;--lamp: #a8741a;--lamp-soft: rgba(168, 116, 26, .1);--sage: #3f7a4e;--ember: #b6543c;--on-accent: #fdfbf5;--glow-a: rgba(168, 116, 26, .06);--glow-b: rgba(63, 122, 78, .04);--grain-opacity: .2}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}html[data-theme=light]{color-scheme:light}body{background:radial-gradient(1100px 500px at 80% -10%,var(--glow-a),transparent 60%),radial-gradient(800px 600px at -10% 100%,var(--glow-b),transparent 55%),var(--ink);color:var(--paper);font-family:var(--body);font-size:16px;line-height:1.6;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.9 0 0 0 0 0.85 0 0 0 0 0.75 0 0 0 0.03 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}#root{position:relative;z-index:2}::selection{background:var(--lamp);color:var(--on-accent)}a{color:var(--sage);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}.shell{max-width:1080px;margin:0 auto;padding:0 28px;min-height:100vh;display:flex;flex-direction:column}.page{flex:1;padding-bottom:90px}.topbar{display:flex;align-items:center;gap:24px;padding:24px 0 16px;border-bottom:1px solid var(--line);margin-bottom:42px}.wordmark{font-family:var(--serif);font-size:22px;letter-spacing:.01em;color:var(--paper)}.wordmark em{color:var(--lamp);font-style:italic}.wordmark:hover{text-decoration:none}.nav{display:flex;gap:4px;margin-left:8px;flex:1}.nav a{font-size:14px;color:var(--paper-dim);padding:6px 12px;border-radius:8px;transition:color .15s,background .15s}.nav a:hover{color:var(--paper);text-decoration:none;background:var(--ink-3)}.nav a.active{color:var(--lamp)}.theme-toggle{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid var(--line-strong);color:var(--paper-dim);padding:7px 14px;border-radius:999px;transition:border-color .2s,color .2s}.theme-toggle:hover{border-color:var(--lamp);color:var(--lamp)}.footer{border-top:1px solid var(--line);padding:28px 0 36px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.footer .about{max-width:420px}.footer .about .wordmark{font-size:17px}.footer .about p{font-size:13px;color:var(--paper-faint);margin-top:6px}.footer nav{display:flex;gap:22px}.footer nav a{font-size:13px;color:var(--paper-dim)}.footer nav a:hover{color:var(--lamp);text-decoration:none}.footer .colophon{width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--paper-faint)}.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--lamp);margin-bottom:10px}h1.display{font-family:var(--serif);font-weight:400;font-size:clamp(29px,4.4vw,44px);line-height:1.14;letter-spacing:-.01em;margin-bottom:14px}h1.display em{font-style:italic;color:var(--lamp)}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:transparent;color:var(--paper);padding:11px 22px;border-radius:999px;font-size:15px;transition:border-color .2s,background .2s,transform .15s}.btn:hover{border-color:var(--lamp);background:var(--lamp-soft);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{border-color:var(--line-strong);background:transparent}.btn-solid{background:var(--lamp);border-color:var(--lamp);color:var(--on-accent);font-weight:700}.btn-solid:hover{background:var(--lamp);border-color:var(--lamp);filter:brightness(1.1)}.btn-ghost{border-color:transparent;color:var(--paper-dim);padding:8px 12px}.btn-ghost:hover{color:var(--ember);background:transparent;border-color:transparent}.field{width:100%;background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:13px 16px;color:var(--paper);font-size:16px;transition:border-color .2s}.field:focus{outline:none;border-color:var(--lamp)}.field::placeholder{color:var(--paper-faint)}.error-text{color:var(--ember);font-size:14px;margin-top:10px}.home-hero{max-width:680px;margin-bottom:64px}.home-hero p.lede{color:var(--paper-dim);font-size:18px;max-width:560px}.home-hero .cta-row{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.home-section{margin-bottom:64px}.home-section>h2{font-family:var(--serif);font-weight:400;font-size:25px;margin-bottom:24px}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.step{border:1px solid var(--line);border-radius:14px;background:var(--ink-2);padding:22px}.step .n{font-family:var(--serif);font-style:italic;font-size:26px;color:var(--lamp);display:block;margin-bottom:8px}.step h3{font-size:16px;font-weight:700;margin-bottom:6px}.step p{font-size:14px;color:var(--paper-dim)}.includes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 32px}.includes .inc{display:flex;gap:12px;align-items:flex-start;padding:10px 0}.includes .inc .tick{color:var(--sage);font-weight:700;margin-top:2px}.includes .inc strong{display:block;font-size:15px}.includes .inc span.detail{font-size:14px;color:var(--paper-dim)}.home-note{border-left:3px solid var(--line-strong);padding:4px 0 4px 18px;color:var(--paper-faint);font-size:14px;max-width:640px}.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}.dash-head h1.display{margin-bottom:0;font-size:clamp(26px,3.6vw,34px)}.stat-strip{display:flex;gap:0;border:1px solid var(--line);border-radius:14px;background:var(--ink-2);margin-bottom:34px;overflow:hidden}.stat{flex:1;padding:18px 24px;border-right:1px solid var(--line)}.stat:last-child{border-right:none}.stat .value{font-family:var(--serif);font-size:27px;line-height:1.1;color:var(--paper)}.stat .label{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--paper-faint);margin-top:2px}.group-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-faint);margin:34px 0 14px}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.course-card{position:relative;display:block;background:var(--ink-2);border:1px solid var(--line);border-radius:14px;padding:24px 24px 20px;color:var(--paper);transition:border-color .25s,transform .25s;overflow:hidden}.course-card:hover{border-color:var(--line-strong);transform:translateY(-3px);text-decoration:none}.course-card:after{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,var(--lamp),transparent);opacity:0;transition:opacity .25s}.course-card:hover:after{opacity:.7}.course-card h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;margin:8px 0 10px}.course-card .desc{color:var(--paper-dim);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:44px}.card-meta{display:flex;gap:14px;margin-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-faint)}.status-pill{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;padding:3px 10px;border-radius:999px;border:1px solid var(--line-strong);color:var(--paper-dim)}.status-pill.ready{border-color:var(--sage);color:var(--sage)}.status-pill.working{border-color:var(--lamp);color:var(--lamp)}.status-pill.error{border-color:var(--ember);color:var(--ember)}.progress-track{height:3px;background:var(--line);border-radius:2px;margin-top:16px;overflow:hidden}.progress-fill{height:100%;background:var(--sage);border-radius:2px;transition:width .4s}.empty-state{text-align:center;padding:64px 20px;color:var(--paper-dim);border:1px dashed var(--line-strong);border-radius:16px}.empty-state p{max-width:380px;margin:0 auto 20px}.wizard{max-width:620px;margin:0 auto;animation:rise .4s ease both}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.wizard-step-label{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--paper-faint);margin-bottom:8px}.wizard h2{font-family:var(--serif);font-weight:400;font-size:29px;margin-bottom:26px}.wizard h2 em{font-style:italic;color:var(--lamp)}.wizard .actions{display:flex;justify-content:space-between;margin-top:34px}.level-slider{width:100%;margin:30px 0 8px;accent-color:var(--lamp)}.level-readout{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.level-readout .num{font-family:var(--serif);font-size:54px;line-height:1;color:var(--lamp)}.level-readout .name{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-dim)}.question-block{margin-bottom:24px}.question-block label{display:block;font-size:16px;margin-bottom:10px;color:var(--paper)}.generating{text-align:center;padding:90px 20px;animation:rise .4s ease both}.orbit{width:74px;height:74px;margin:0 auto 30px;border-radius:50%;border:1px solid var(--line-strong);border-top-color:var(--lamp);animation:spin 1.3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.generating .status-line{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--lamp);min-height:20px}.generating h2{font-family:var(--serif);font-weight:400;font-size:27px;margin-bottom:12px}.generating p{color:var(--paper-dim);max-width:420px;margin:0 auto 18px}.course-head{margin-bottom:40px;max-width:760px}.course-head .back{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-faint)}.course-head .back:hover{color:var(--lamp);text-decoration:none}.course-head p.desc{color:var(--paper-dim);font-size:17px}.course-stats{display:flex;gap:26px;margin-top:18px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-faint)}.course-stats strong{color:var(--lamp);font-weight:500}.section-block{border:1px solid var(--line);border-radius:14px;background:var(--ink-2);margin-bottom:14px;overflow:hidden}.section-head{width:100%;display:flex;align-items:center;gap:18px;padding:20px 24px;background:none;border:none;color:var(--paper);text-align:left;transition:background .2s}.section-head:hover{background:var(--ink-3)}.section-num{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--lamp);min-width:34px}.section-head .titles{flex:1}.section-head h3{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.2}.section-head .objective{color:var(--paper-dim);font-size:14px;margin-top:3px}.section-head .chevron{color:var(--paper-faint);transition:transform .25s;font-size:18px}.section-block.open .chevron{transform:rotate(90deg)}.section-items{border-top:1px solid var(--line);padding:8px 0}.item-row{display:flex;align-items:flex-start;gap:14px;padding:14px 24px;transition:background .15s}.item-row:hover{background:var(--ink-3)}.item-check{appearance:none;width:19px;height:19px;min-width:19px;margin-top:3px;border:1px solid var(--line-strong);border-radius:50%;cursor:pointer;position:relative;transition:border-color .2s,background .2s}.item-check:checked{background:var(--sage);border-color:var(--sage)}.item-check:checked:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:var(--on-accent);font-weight:700}.item-main{flex:1;min-width:0}.item-title-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.item-kind{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;padding:2px 8px;border-radius:4px;border:1px solid var(--line-strong);color:var(--paper-dim);white-space:nowrap}.item-kind.video{color:var(--lamp);border-color:var(--lamp)}.item-kind.article{color:var(--sage);border-color:var(--sage)}.item-kind.quiz{color:var(--ember);border-color:var(--ember)}.item-title-btn{background:none;border:none;color:var(--paper);font-size:16px;font-family:var(--body);text-align:left;padding:0}.item-title-btn:hover{color:var(--lamp)}.item-sub{font-size:13px;color:var(--paper-faint);margin-top:3px}.item-done .item-title-btn{color:var(--paper-faint);text-decoration:line-through}.item-expand{padding:6px 24px 22px 57px;animation:rise .3s ease both}.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;border:1px solid var(--line-strong);background:#000}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.item-expand .under-video{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:12px}.why-pick{font-size:13px;color:var(--paper-faint);font-style:italic}.transcript-btn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid var(--line-strong);color:var(--paper-dim);padding:6px 14px;border-radius:999px;white-space:nowrap}.transcript-btn:hover{border-color:var(--lamp);color:var(--lamp)}.note-body{background:var(--ink-3);border:1px solid var(--line);border-left:3px solid var(--lamp);border-radius:10px;padding:22px 26px;font-size:15px}.note-body h2{font-family:var(--serif);font-weight:400;font-size:20px;margin:18px 0 8px}.note-body h2:first-child{margin-top:0}.note-body h3{font-family:var(--serif);font-weight:400;font-size:16px;margin:14px 0 6px;color:var(--lamp)}.note-body p{margin-bottom:10px;color:var(--paper-dim)}.note-body strong{color:var(--paper)}.note-body ul,.note-body ol{margin:8px 0 12px 22px;color:var(--paper-dim)}.note-body code{font-family:var(--mono);font-size:13px;background:var(--ink);padding:1px 6px;border-radius:4px;color:var(--sage)}.note-body pre{background:var(--ink);border-radius:8px;padding:14px;overflow-x:auto;margin-bottom:12px}.note-body pre code{background:none;padding:0}.quiz-q{margin-bottom:22px}.quiz-q .q-text{font-size:16px;margin-bottom:10px}.quiz-q .q-text .qnum{font-family:var(--serif);font-style:italic;color:var(--lamp);margin-right:8px}.quiz-opt{display:block;width:100%;text-align:left;background:var(--ink-3);border:1px solid var(--line);border-radius:9px;color:var(--paper-dim);padding:10px 16px;margin-bottom:7px;font-size:15px;transition:border-color .15s,color .15s}.quiz-opt:hover{border-color:var(--lamp);color:var(--paper)}.quiz-opt.correct{border-color:var(--sage);color:var(--sage);background:var(--lamp-soft)}.quiz-opt.wrong{border-color:var(--ember);color:var(--ember)}.quiz-explain{font-size:13px;color:var(--paper-faint);font-style:italic;margin-top:6px}.quiz-score{font-family:var(--serif);font-size:19px;color:var(--lamp);margin-top:8px}.modal-veil{position:fixed;inset:0;background:#05070ca6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;display:grid;place-items:center;padding:24px;animation:fade .2s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--ink-2);border:1px solid var(--line-strong);border-radius:16px;max-width:720px;width:100%;max-height:80vh;display:flex;flex-direction:column;animation:rise .25s ease both}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.modal-head h3{font-family:var(--serif);font-weight:400;font-size:19px}.modal-body{padding:20px 24px;overflow-y:auto;font-size:14px;color:var(--paper-dim);white-space:pre-wrap}.modal-close{background:none;border:none;color:var(--paper-faint);font-size:22px;line-height:1}.modal-close:hover{color:var(--ember)}.tutor-fab{position:fixed;right:26px;bottom:26px;z-index:30;height:48px;padding:0 20px;border-radius:999px;border:1px solid var(--lamp);background:var(--ink-2);color:var(--lamp);font-size:14px;font-weight:700;box-shadow:0 6px 24px #00000059;transition:transform .2s,box-shadow .2s}.tutor-fab:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00000073}.tutor-panel{position:fixed;right:26px;bottom:86px;z-index:30;width:min(400px,calc(100vw - 40px));height:min(560px,calc(100vh - 130px));background:var(--ink-2);border:1px solid var(--line-strong);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000073;animation:rise .25s ease both}.tutor-head{padding:16px 20px;border-bottom:1px solid var(--line);background:var(--ink-3)}.tutor-head .who{font-family:var(--serif);font-size:17px}.tutor-head .who em{color:var(--lamp);font-style:italic}.tutor-head .scope{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutor-log{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:88%;padding:10px 15px;border-radius:14px;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:break-word}.bubble.user{align-self:flex-end;background:var(--lamp-soft);border:1px solid var(--line-strong);color:var(--paper);border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--ink-3);border:1px solid var(--line);color:var(--paper-dim);border-bottom-left-radius:4px}.bubble.assistant.thinking:after{content:"▋";animation:blink .9s steps(1) infinite;color:var(--lamp)}@keyframes blink{50%{opacity:0}}.tutor-hint{text-align:center;font-size:13px;color:var(--paper-faint);padding:20px}.tutor-input-row{display:flex;gap:8px;padding:14px;border-top:1px solid var(--line)}.tutor-input-row input{flex:1}.tutor-send{border:1px solid var(--lamp);background:var(--lamp);color:var(--on-accent);border-radius:10px;padding:0 18px;font-weight:700;font-size:15px}.tutor-send:disabled{opacity:.4}.login-wrap{max-width:380px;margin:16vh auto 0;text-align:center;animation:rise .4s ease both}.login-wrap h1{font-family:var(--serif);font-weight:400;font-size:28px;margin-bottom:8px}.login-wrap p{color:var(--paper-dim);margin-bottom:24px}.login-wrap form{display:flex;gap:10px}@media(max-width:640px){.shell{padding:0 16px}.item-expand{padding-left:24px}.course-stats{flex-wrap:wrap;gap:12px}.stat-strip{flex-direction:column}.stat{border-right:none;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:none}.nav{display:none}}
