:root{--bg: #f4eee3;--surface: #fbf7ef;--surface-2: #efe7d8;--ink: #221d17;--ink-2: #4a4238;--muted: #7a6f61;--line: #e0d5c2;--line-2: #d1c4ad;--accent: #b9472a;--accent-ink: #fff8f2;--accent-soft: #f3dccf;--ok: #3d7550;--ok-soft: #dcebdc;--warn: #9a6512;--warn-soft: #f3e5c6;--spec: #6a4f9c;--spec-soft: #e7dff3;--shadow: 0 1px 0 rgba(60, 40, 20, .04), 0 8px 24px -12px rgba(60, 40, 20, .18);--radius: 14px;--serif: "Source Serif 4", Georgia, serif;--display: "Fraunces", Georgia, serif;--sans: "Inter", -apple-system, system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14110d;--surface: #1c1813;--surface-2: #241f18;--ink: #eee5d6;--ink-2: #cdbfab;--muted: #9b8f7d;--line: #2f2820;--line-2: #3d342a;--accent: #e57a52;--accent-ink: #1a0f09;--accent-soft: #3a2219;--ok: #82bf94;--ok-soft: #1d2d22;--warn: #e0ac55;--warn-soft: #33281a;--spec: #b49ae6;--spec-soft: #2a2238;--shadow: 0 1px 0 rgba(0, 0, 0, .3), 0 10px 28px -14px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--bg: #14110d;--surface: #1c1813;--surface-2: #241f18;--ink: #eee5d6;--ink-2: #cdbfab;--muted: #9b8f7d;--line: #2f2820;--line-2: #3d342a;--accent: #e57a52;--accent-ink: #1a0f09;--accent-soft: #3a2219;--ok: #82bf94;--ok-soft: #1d2d22;--warn: #e0ac55;--warn-soft: #33281a;--spec: #b49ae6;--spec-soft: #2a2238;--shadow: 0 1px 0 rgba(0, 0, 0, .3), 0 10px 28px -14px rgba(0, 0, 0, .7);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--serif);-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-soft)}.shell{max-width:720px;margin:0 auto;padding:0 16px calc(96px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent}.topbar.scrolled{border-bottom-color:var(--line)}.topbar-inner{max-width:720px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:12px}.brand{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.01em;text-decoration:none;display:flex;align-items:center;gap:8px}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block;transform:translateY(1px)}.nav{margin-left:auto;display:flex;gap:4px;font:500 14px var(--sans)}.nav a{text-decoration:none;padding:7px 11px;border-radius:999px;color:var(--ink-2)}.nav a.active{background:var(--surface-2);color:var(--ink)}@media(max-width:520px){.nav a{padding:7px 9px}}h1,h2,h3{font-family:var(--display);font-weight:560;letter-spacing:-.015em;line-height:1.15;margin:0}h1{font-size:clamp(30px,6vw,42px);font-variation-settings:"opsz" 120}h2{font-size:24px}h3{font-size:19px}.kicker{font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.muted{color:var(--muted)}.small{font:14px/1.5 var(--sans)}.sans{font-family:var(--sans)}.lede{font-family:var(--display);font-style:italic;font-size:21px;line-height:1.45;color:var(--ink-2);font-variation-settings:"opsz" 40}.stack>*+*{margin-top:var(--gap, 16px)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.section{margin-top:40px}.section-title{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.section-title h2{font-size:21px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.card.tint{background:var(--surface-2);box-shadow:none}.card+.card{margin-top:12px}.divider{height:1px;background:var(--line);margin:28px 0;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 15px/1 var(--sans);padding:12px 18px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;text-decoration:none;transition:transform .08s ease,background .15s ease,border-color .15s ease}.btn:hover{border-color:var(--ink-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-2)}.btn.small{padding:8px 12px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default;transform:none}.chip{display:inline-flex;align-items:center;gap:6px;font:500 14px/1.2 var(--sans);padding:8px 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;text-align:left}.chip:hover{border-color:var(--ink-2)}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:8px}label.field{display:block}label.field>span{display:block;font:600 13px var(--sans);color:var(--ink-2);margin-bottom:6px}label.field>small{display:block;font:13px/1.4 var(--sans);color:var(--muted);margin-top:6px}.input,textarea.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);font:16px/1.5 var(--sans);outline:none}textarea.input{resize:vertical;min-height:84px;font-family:var(--serif);font-size:17px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.seg{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}.seg button{border:0;background:transparent;padding:8px 13px;border-radius:999px;font:500 14px var(--sans);cursor:pointer;color:var(--ink-2)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.error{color:var(--accent);font:14px/1.4 var(--sans)}.notice{font:14px/1.5 var(--sans);padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn)}.bar{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .4s ease}.ticks{display:grid;grid-template-columns:repeat(var(--n, 5),1fr);gap:4px}.ticks i{height:6px;border-radius:3px;background:var(--surface-2)}.ticks i.done{background:var(--accent)}.ticks i.here{background:var(--accent-soft);outline:1px solid var(--accent)}.preparing{padding:28px 22px;text-align:left}.pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.trail{list-style:none;padding:0;margin:16px 0 0;font:14px/1.5 var(--sans);color:var(--muted)}.trail li{padding:4px 0 4px 18px;position:relative;animation:rise .35s ease both}.trail li:before{content:"";position:absolute;left:3px;top:12px;width:5px;height:5px;border-radius:50%;background:var(--line-2)}.trail li:last-child{color:var(--ink)}.trail li:last-child:before{background:var(--accent)}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.pulse,.trail li{animation:none}}.prose{font-size:18.5px;line-height:1.7;color:var(--ink)}.prose h2{font-size:23px;margin:34px 0 10px}.prose h3{font-size:19px;margin:26px 0 8px}.prose p{margin:0 0 16px}.prose ul,.prose ol{padding-left:22px;margin:0 0 16px}.prose li{margin:4px 0}.prose blockquote{margin:16px 0;padding:2px 0 2px 16px;border-left:3px solid var(--accent);color:var(--ink-2);font-style:italic}.prose table{width:100%;border-collapse:collapse;font:15px/1.45 var(--sans);margin:18px 0;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.prose th{font-weight:600;color:var(--ink-2)}.prose a{color:var(--accent);text-underline-offset:3px}.prose code{font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:5px}.prose>:first-child{margin-top:0}.prose.compact{font-size:17px;line-height:1.6}.prose.compact p{margin-bottom:10px}.prose.compact>:last-child{margin-bottom:0}sup.cite{font:600 11px var(--sans);margin-left:1px}sup.cite a{text-decoration:none;color:var(--accent);background:var(--accent-soft);padding:1px 5px;border-radius:6px}.ev{display:inline-block;font:600 11px/1.6 var(--sans);letter-spacing:.03em;text-transform:lowercase;padding:0 7px;border-radius:999px;vertical-align:2px;margin:0 2px;cursor:help;white-space:nowrap}.ev-established{background:var(--ok-soft);color:var(--ok)}.ev-debated{background:var(--warn-soft);color:var(--warn)}.ev-speculative{background:var(--spec-soft);color:var(--spec)}.lesson-head{padding-top:22px}.lesson-head h1{margin:10px 0 14px}.timeline{display:grid;grid-template-columns:4fr 4fr 2fr;gap:6px;margin:22px 0 6px}.timeline div{font:500 12px/1.3 var(--sans);color:var(--muted)}.timeline div:before{content:"";display:block;height:4px;border-radius:3px;background:var(--line-2);margin-bottom:7px}.timeline div:nth-child(1):before{background:var(--accent)}.main-source{border:1px solid var(--accent);background:linear-gradient(180deg,var(--accent-soft),var(--surface) 70%)}.src-kind{font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.src-list{list-style:none;margin:0;padding:0}.src-list li{padding:14px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:30px 1fr;gap:6px}.src-list li:first-child{border-top:0}.src-n{font:600 13px var(--sans);color:var(--accent)}.src-list a.t{font-weight:600;text-decoration:none}.src-list a.t:hover{text-decoration:underline}.quote{font-style:italic;color:var(--ink-2);font-size:15px;margin-top:6px;border-left:2px solid var(--line-2);padding-left:10px}.badge{font:600 11px/1 var(--sans);padding:4px 7px;border-radius:999px;background:var(--ok-soft);color:var(--ok);white-space:nowrap}.badge.grey{background:var(--surface-2);color:var(--muted)}.takeaways{margin:0;padding-left:20px}.takeaways li{margin:6px 0}.journal-grid{display:grid;gap:14px}.chat{display:flex;flex-direction:column;gap:14px}.msg{max-width:92%}.msg.user{align-self:flex-end;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:16px 16px 4px;font:15.5px/1.5 var(--sans);white-space:pre-wrap}.msg.assistant{align-self:flex-start}.msg.assistant .who{font:600 12px var(--sans);color:var(--accent);margin-bottom:4px}.composer{display:flex;gap:8px;align-items:flex-end;margin-top:14px}.composer textarea{min-height:48px;max-height:180px;font-family:var(--sans);font-size:16px;border-radius:22px;padding:12px 16px}.composer .btn{height:48px}.status-line{font:13px var(--sans);color:var(--muted);display:flex;align-items:center;gap:8px}.week{border-top:1px solid var(--line);padding:16px 0}.week:first-child{border-top:0}.week summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:baseline}.week summary::-webkit-details-marker{display:none}.week-n{font:600 12px var(--sans);color:var(--accent);min-width:54px;letter-spacing:.05em;text-transform:uppercase}.days{list-style:none;margin:10px 0 0 66px;padding:0}@media(max-width:520px){.days{margin-left:0}}.days li{padding:7px 0;display:flex;gap:10px;align-items:baseline}.days a{text-decoration:none}.days a:hover .d-title{text-decoration:underline}.mark{width:18px;height:18px;border-radius:50%;flex:none;border:1.5px solid var(--line-2);display:inline-grid;place-items:center;font:700 11px var(--sans);transform:translateY(3px)}.mark.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.mark.next{border-color:var(--accent)}.d-q{display:block;font-size:15px;color:var(--muted);line-height:1.45}.entry{padding:18px 0;border-top:1px solid var(--line)}.entry dl{margin:8px 0 0;display:grid;grid-template-columns:110px 1fr;gap:6px 14px}@media(max-width:520px){.entry dl{grid-template-columns:1fr;gap:2px}.entry dd{margin-bottom:8px}}.entry dt{font:600 12px/1.9 var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.entry dd{margin:0}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:400px}.auth h1{font-size:40px;display:flex;align-items:center;gap:10px}.auth h1 .dot{width:12px;height:12px;border-radius:50%;background:var(--accent)}.fade-in{animation:rise .4s ease both}.center{text-align:center}@media(max-width:520px){.hide-sm{display:none}}
