:root{color-scheme:light;--ink: #16191f;--muted: #5c564e;--paper: #f3efe7;--card: #fffcf8;--line: #e5ddd2;--ember: #d4532b;--ember-deep: #9a3412;--ember-soft: #fff1e8;--navy: #1b2838;--sage: #166534;--sage-soft: #e8f6ee;--warn: #9a3412;--warn-soft: #fff4ec;--shadow: 0 18px 50px rgba(22, 25, 31, .08);--sans: Outfit, "Avenir Next", "Segoe UI", sans-serif;--serif: Fraunces, "Iowan Old Style", Palatino, Georgia, serif;font-family:var(--sans);background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(900px 420px at 0% -10%,#ffe7da 0%,transparent 58%),radial-gradient(720px 380px at 100% 0%,#e5edf6 0%,transparent 52%),var(--paper)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--ember-deep)}.app{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 3rem}.topbar{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.25rem}.brand{display:flex;align-items:center;gap:.75rem;min-width:0;color:inherit;text-decoration:none}.mark{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;place-items:center;border-radius:.8rem;background:var(--navy);color:#fff8f3;font-weight:600;letter-spacing:-.04em}.brand-name,.status,.sources span,.kicker{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.brand-name{display:block;color:var(--ember-deep)}.brand-course{display:block;font-family:var(--serif);font-size:1.05rem;font-weight:560;line-height:1.2}.progress{margin-left:auto;width:min(16rem,34vw)}.topbar>.ghost{margin-left:auto}.topbar>.progress+.ghost{margin-left:0}.progress-track{height:.45rem;overflow:hidden;border-radius:999px;background:#e7e0d6}.progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e07a45,var(--ember));transition:width .45s ease}.progress-label{display:block;margin-top:.4rem;color:var(--muted);font-size:.82rem;font-weight:500;text-align:right}.ghost{flex:0 0 auto;padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fffcf8cc;color:var(--ink);text-decoration:none}.ghost:hover,.secondary:hover,.primary:hover{transform:translateY(-1px)}.disclaimer{margin:0 0 1.25rem;padding:.85rem 1rem;border:1px solid #f0d7c8;border-radius:1rem;background:#fffcf8b8;color:var(--muted);font-size:.95rem;line-height:1.5}.layout{display:grid;grid-template-columns:minmax(0,17.5rem) minmax(0,1fr);gap:1.25rem;align-items:start}.outline{position:sticky;top:1rem;min-width:0;padding:.85rem;border:1px solid var(--line);border-radius:1.25rem;background:#fffcf8db;box-shadow:var(--shadow)}.outline ol{display:grid;gap:.45rem;margin:0 0 .85rem;padding:0;list-style:none;min-width:0}.lesson-link{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .8rem;border:1px solid transparent;border-radius:.9rem;background:transparent;color:inherit;text-align:left}.lesson-link:hover{background:#fff}.lesson-link.is-current{border-color:#f0d3c4;background:#fff;box-shadow:inset 3px 0 0 var(--ember)}.lesson-link span:first-child{font-weight:500;line-height:1.3}.status{flex:0 0 auto;padding:.2rem .45rem;border-radius:999px;background:#eef1f4;color:#526070}.status-open{background:var(--ember-soft);color:var(--ember-deep)}.status-complete{background:var(--sage-soft);color:var(--sage)}.secondary,.primary{border:0;border-radius:999px;transition:transform .15s ease,background .15s ease}.secondary{padding:.55rem .2rem;background:transparent;color:var(--muted)}.primary{padding:.75rem 1.15rem;background:var(--navy);color:#fff8f3}.primary:hover{background:#24364c}.stage,.panel,.tutor{min-width:0}.stage{display:grid;gap:1rem;min-width:0}.panel,.tutor,.draft-card,.auth-card{border:1px solid var(--line);border-radius:1.35rem;background:var(--card);box-shadow:var(--shadow)}.panel,.tutor,.auth-card{padding:1.4rem 1.5rem 1.5rem;animation:rise .45s ease}.kicker{margin:0 0 .45rem;color:var(--ember-deep)}h1,h2,.brand-course{font-family:var(--serif);font-weight:560;letter-spacing:-.02em}h1{margin:0 0 1rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1.05}h2{margin:0 0 .35rem;font-size:1.7rem;line-height:1.15}.prose p,.choice,legend,.bubble{font-size:1.05rem;line-height:1.6}.prose p{margin:0 0 1rem}.notice{margin:0;padding:.8rem .95rem;border-radius:.9rem;background:var(--warn-soft);color:var(--warn);line-height:1.45}.notice-ok{background:var(--sage-soft);color:var(--sage)}.quiz{display:grid;gap:1rem}fieldset{margin:0;padding:0;border:0}fieldset .notice{margin-top:.7rem}legend{margin-bottom:.7rem;padding:0;font-weight:600}.choices{display:grid;gap:.5rem}.choice{display:flex;gap:.7rem;align-items:flex-start;margin:0;padding:.8rem .9rem;border:1px solid var(--line);border-radius:.9rem;background:#fff;transition:border-color .15s ease,background .15s ease}.choice:has(input:checked){border-color:#efc3b0;background:var(--ember-soft)}.choice input{margin-top:.35rem;accent-color:var(--ember)}.score{margin:.25rem 0 0;font-family:var(--serif);font-size:2rem;line-height:1}.score span{font-family:var(--sans);font-size:1rem;font-weight:500;color:var(--muted)}.next-step{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.next-step .notice{margin:0}.result{display:grid;gap:.35rem;padding:1rem 1.1rem;border-radius:1rem;background:var(--sage-soft)}.result p:last-child{margin:0;color:var(--sage)}.result-mixed{background:var(--warn-soft)}.result-mixed p:last-child{color:var(--warn)}.tutor-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.presence{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.presence i{width:.55rem;height:.55rem;border-radius:50%;background:#b9b2a8}.presence.is-online i{background:#1f9d55;box-shadow:0 0 0 4px #1f9d5526}.tutor-note{margin:0 0 1rem;color:var(--muted)}.steps{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none}.steps li{padding:.35rem .65rem;border-radius:999px;background:#f6f1ea;color:var(--muted);font-size:.82rem}.steps .is-active{color:var(--ember-deep);animation:pulse 1.1s ease infinite}.thread{display:grid;gap:.7rem;margin-bottom:1rem}.bubble{max-width:42rem;margin:0;padding:.85rem 1rem;border-radius:1rem;white-space:pre-wrap;animation:rise .35s ease}.bubble-user{justify-self:end;background:var(--navy);color:#f7f2ea;border-bottom-right-radius:.35rem}.bubble-assistant{background:#fff;border:1px solid var(--line);border-bottom-left-radius:.35rem}.sources{display:flex;gap:.45rem;align-items:baseline;margin:.75rem 0 0;color:var(--muted);font-size:.85rem}.sources span{color:var(--ember-deep)}.composer{display:grid;gap:.7rem}.composer label{display:grid;gap:.4rem;color:var(--muted);font-size:.9rem}textarea,input[type=password]{width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:.9rem;background:#fff;color:var(--ink);resize:vertical}textarea:focus,input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.composer .primary,.actions .primary{justify-self:start}.composer-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.composer-actions .secondary{padding:.75rem 1.05rem;border:1px solid var(--line);background:#fff;color:var(--ink)}.practice-choices{margin-bottom:.9rem}.prompts{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .85rem}.prompts button{padding:.45rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)}.choice-button{width:100%;color:inherit;text-align:left;cursor:pointer}.choice-id{font-weight:600;letter-spacing:.04em;text-transform:uppercase}.auth-card,.draft-card{display:grid;gap:.8rem}.draft-card{padding:1.2rem 1.25rem}.draft-card h3{margin:.4rem 0 0;font-size:.95rem}.draft-card ul{margin:0;padding-left:1.1rem}.answer{margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;background:var(--sage-soft);color:var(--sage);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.loading{padding:4rem 0;font-family:var(--serif);font-size:2rem}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.55}}@media(max-width:800px){.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem .75rem}.brand{flex:1 1 12rem}.topbar>.ghost,.topbar>.progress+.ghost{flex:0 0 auto;width:auto;margin-left:0}.progress{flex:1 0 100%;width:100%;margin-left:0}.progress-label{text-align:left}.layout{grid-template-columns:minmax(0,1fr)}.outline{position:static}.outline ol{display:flex;overflow-x:auto;padding-bottom:.2rem;scroll-snap-type:x mandatory}.outline li{flex:0 0 min(15rem,78%);scroll-snap-align:start}.panel,.tutor,.auth-card{padding:1.1rem}h1{font-size:2.1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
