:root {
  --bg: #f5f7f8;
  --paper: #ffffff;
  --ink: #13232b;
  --muted: #5d7079;
  --line: #d8e0e4;
  --navy: #17324d;
  --teal: #0d7c78;
  --gold: #b7791f;
  --violet: #6551a8;
  --green: #39775d;
  --soft-navy: #e9f0f5;
  --soft-teal: #e5f4f2;
  --soft-gold: #fbf1df;
  --soft-violet: #efecfa;
  --soft-green: #e9f3ed;
  --shadow: 0 14px 40px rgba(20, 39, 49, .08);
  --radius: 18px;
  --max: 1220px;
}
html[data-theme="dark"] {
  --bg: #0e1519;
  --paper: #152127;
  --ink: #eef5f7;
  --muted: #a4b6be;
  --line: #2b3c44;
  --navy: #8eb4d8;
  --teal: #64c8c1;
  --gold: #e5b25f;
  --violet: #b5a4ef;
  --green: #8dcca8;
  --soft-navy: #1c2d3c;
  --soft-teal: #173330;
  --soft-gold: #362d1d;
  --soft-violet: #2b2640;
  --soft-green: #1f3428;
  --shadow: 0 14px 40px rgba(0, 0, 0, .24);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.55 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--teal); text-decoration-thickness: .08em; text-underline-offset: .16em; }
button, input { font: inherit; }
button { color: inherit; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.skip-link { position: fixed; left: 12px; top: -80px; z-index: 100; background: var(--ink); color: var(--paper); padding: .65rem 1rem; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 40; backdrop-filter: blur(16px); background: color-mix(in srgb, var(--bg) 88%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--line) 75%, transparent); }
.header-inner { max-width: var(--max); margin: auto; padding: .8rem 1.25rem; display: flex; align-items: center; gap: 1.2rem; }
.brand { color: var(--ink); text-decoration: none; display: flex; align-items: center; gap: .7rem; min-width: max-content; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--navy); color: var(--paper); font-weight: 800; font-size: .82rem; letter-spacing: -.03em; }
.brand strong, .brand small { display:block; line-height:1.15; }
.brand small { color: var(--muted); font-size: .72rem; margin-top: .16rem; }
.top-nav { margin-left: auto; display:flex; gap: .9rem; flex-wrap:wrap; justify-content:flex-end; }
.top-nav a { color: var(--muted); text-decoration:none; font-size:.9rem; font-weight:650; }
.top-nav a:hover { color: var(--ink); }
.icon-button { border:1px solid var(--line); background:var(--paper); width:38px;height:38px;border-radius:11px; cursor:pointer; }
.hero { max-width: var(--max); margin: 0 auto; min-height: 660px; padding: 6rem 1.25rem 4.5rem; display:grid; grid-template-columns: 1.1fr .75fr; align-items:center; gap:5vw; }
.eyebrow { color: var(--teal); font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin:0 0 .7rem; }
.hero-meta { display:grid; gap:.18rem; line-height:1.28; }
.hero-meta span { display:block; white-space:nowrap; }
h1,h2,h3,p { text-wrap: pretty; }
h1 { font-size: clamp(2.8rem, 5vw, 4.8rem); line-height:.96; letter-spacing:-.055em; margin:.1rem 0 1.35rem; max-width: 920px; }
.course-title-line { font-size:.82em; font-weight:760; letter-spacing:-.045em; }
.hero-lede { color:var(--muted); font-size:1.18rem; max-width: 760px; }
.hero-motto { margin:.9rem 0 0; color:var(--ink); font-size:.95rem; font-weight:720; letter-spacing:.005em; max-width:760px; }
.hero-actions { display:flex; gap:.7rem; margin:1.8rem 0 2rem; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.65rem 1rem; border-radius:11px; text-decoration:none; font-weight:750; }
.button.primary { background:var(--ink); color:var(--paper); }
.button.ghost { border:1px solid var(--line); background:var(--paper); color:var(--ink); }
.hero-facts { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:1.3rem 2rem; }
.hero-facts li { display:grid; gap:.12rem; }
.hero-facts strong { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.hero-facts span { font-weight:650; }
.hero-panel { display:flex; justify-content:center; }
.mini-poster { aspect-ratio: 1 / 1.414; width:min(360px, 82vw); background:linear-gradient(160deg,#0f2d3e,#17324d 52%,#0d7c78); color:white; border-radius:6px; box-shadow:0 28px 80px rgba(13,36,49,.28); padding:1.25rem; display:flex; flex-direction:column; overflow:hidden; position:relative; }
.mini-poster:before { content:""; position:absolute; inset:auto -24% 21% 35%; aspect-ratio:1; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.025); }
.poster-number { font-size:.75rem; letter-spacing:.12em; font-weight:800; opacity:.85; position:relative; }
.poster-core { margin:auto 0; position:relative; }
.poster-kicker { font-size:.68rem; letter-spacing:.18em; font-weight:800; color:#92ddd4; }
.poster-core h2 { font-size:2.15rem; line-height:1.04; letter-spacing:-.04em; margin:.55rem 0 1.2rem; }
.poster-core p { color:#dbe9ee; max-width:25ch; }
.loop-diagram { display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; margin:1rem 0; }
.loop-diagram span { background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.16); padding:.35rem .5rem; border-radius:8px; font-size:.77rem; }
.loop-diagram b { color:#92ddd4; }
.poster-footer { font-size:.7rem; opacity:.7; position:relative; }
.section { max-width:var(--max); margin:0 auto; padding:5rem 1.25rem; }
.section-heading { max-width:760px; margin-bottom:2rem; }
.section-heading.narrow { max-width:680px; }
.section-heading h2 { font-size:clamp(2rem,4vw,3.3rem); line-height:1.05; letter-spacing:-.04em; margin:.2rem 0 .8rem; }
.section-heading p:not(.eyebrow) { color:var(--muted); font-size:1.05rem; }
.course-map { border-top:1px solid var(--line); }
.map-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; gap:.6rem; align-items:center; }
.map-node { text-align:left; padding:1rem; min-height:125px; background:var(--paper); border:1px solid var(--line); border-radius:16px; cursor:pointer; transition:.18s ease; }
.map-node:hover { transform:translateY(-2px); border-color:var(--teal); }
.map-node small,.map-node span { display:block; color:var(--muted); }
.map-node strong { display:block; margin:.25rem 0; line-height:1.25; }
.map-node span { font-size:.78rem; }
.map-arrow { color:var(--muted); font-size:1.5rem; }
.thread-lines { margin-top:1rem; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:.9rem 1rem; display:grid; gap:.55rem; }
.thread-lines div { display:grid; grid-template-columns:165px 1fr; gap:.8rem; align-items:center; color:var(--muted); font-size:.9rem; }
.thread-label { color:var(--ink); font-weight:750; }
.lecture-heading-row { max-width:none; display:grid; grid-template-columns:1fr minmax(340px,.8fr); gap:2rem; align-items:end; }
.atlas-tools { display:grid; gap:.8rem; justify-items:stretch; }
.search-box input { width:100%; border:1px solid var(--line); background:var(--paper); color:var(--ink); border-radius:12px; padding:.7rem .85rem; outline:none; }
.search-box input:focus { border-color:var(--teal); box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 18%, transparent); }
.filter-row { display:flex; flex-wrap:wrap; gap:.45rem; }
.filter-chip { border:1px solid var(--line); background:var(--paper); color:var(--muted); border-radius:999px; padding:.42rem .68rem; font-size:.78rem; cursor:pointer; }
.filter-chip.active,.filter-chip:hover { border-color:var(--ink); color:var(--ink); }
.lecture-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.15rem; align-items:start; }
.lecture-card { background:var(--paper); border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--shadow); }
.lecture-poster { min-height:330px; padding:1.1rem; color:#fff; display:flex; flex-direction:column; position:relative; overflow:hidden; background:linear-gradient(155deg,#17324d,#22536d); }
.lecture-poster:after { content:""; position:absolute; width:210px; height:210px; border:1px solid rgba(255,255,255,.14); border-radius:50%; right:-62px; bottom:-70px; box-shadow:0 0 0 36px rgba(255,255,255,.025), 0 0 0 72px rgba(255,255,255,.018); }
.lecture-card[data-phase="symmetric"] .lecture-poster { background:linear-gradient(155deg,#0e5053,#0d7c78); }
.lecture-card[data-phase="auth"] .lecture-poster { background:linear-gradient(155deg,#66471a,#a56f1b); }
.lecture-card[data-phase="public"] .lecture-poster { background:linear-gradient(155deg,#3a3165,#6551a8); }
.lecture-card[data-phase="application"] .lecture-poster { background:linear-gradient(155deg,#23523d,#39775d); }
.poster-top { display:flex; justify-content:space-between; gap:1rem; position:relative; z-index:1; }
.lecture-num { font-weight:850; letter-spacing:.1em; font-size:.72rem; }
.lecture-status { font-size:.62rem; font-weight:800; letter-spacing:.08em; padding:.24rem .45rem; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(255,255,255,.08); }
.poster-symbol { margin-top:auto; font-size:3.4rem; line-height:1; font-weight:900; opacity:.82; position:relative; z-index:1; }
.lecture-title { margin:.65rem 0 .35rem; font-size:1.35rem; line-height:1.02; letter-spacing:-.025em; position:relative; z-index:1; }
.lecture-bigidea { margin:0; color:rgba(255,255,255,.82); font-size:.9rem; max-width:31ch; position:relative; z-index:1; }
.poster-connection { margin-top:1rem; padding-top:.7rem; border-top:1px solid rgba(255,255,255,.18); font-size:.72rem; color:rgba(255,255,255,.68); position:relative; z-index:1; }
.lecture-body { padding:.95rem 1rem 1rem; }
.card-tabs { display:flex; gap:.3rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); overflow-x:auto; }
.card-tab { border:0; background:transparent; color:var(--muted); padding:.3rem .45rem; font-size:.73rem; font-weight:750; cursor:pointer; border-radius:7px; white-space:nowrap; }
.card-tab.active { background:var(--soft-teal); color:var(--teal); }
.tab-panel { padding-top:.8rem; min-height:205px; }
.recall-panel details { border-bottom:1px solid var(--line); padding:.5rem 0; }
.recall-panel details:last-child { border-bottom:0; }
.recall-panel summary { cursor:pointer; font-size:.84rem; font-weight:680; line-height:1.4; }
.recall-panel details p { color:var(--muted); font-size:.8rem; margin:.4rem 0 .2rem; }
.skills-panel ul,.connect-panel ul { padding-left:1.08rem; margin:.15rem 0; }
.skills-panel li,.connect-panel li { margin:.4rem 0; font-size:.84rem; }
.connect-panel p { color:var(--muted); font-size:.84rem; }
.card-actions { display:flex; gap:.5rem; flex-wrap:wrap; padding-top:.65rem; border-top:1px solid var(--line); }
.card-actions a,.card-actions span { font-size:.74rem; font-weight:750; text-decoration:none; padding:.35rem .5rem; border-radius:8px; border:1px solid var(--line); color:var(--ink); }
.card-actions a:hover { border-color:var(--teal); color:var(--teal); }
.card-actions .reading-link { background:var(--soft-teal); border-color:transparent; color:var(--teal); }
.empty-state { background:var(--paper); border:1px dashed var(--line); border-radius:16px; padding:2rem; color:var(--muted); text-align:center; }
.proof-toolkit { border-top:1px solid var(--line); }
.proof-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:.8rem; }
.proof-card { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:1rem; min-height:265px; }
.proof-id { display:grid; place-items:center; width:30px;height:30px;border-radius:8px;background:var(--soft-navy);color:var(--navy);font-weight:900;font-size:.78rem; }
.proof-card h3 { font-size:1rem; margin:.65rem 0 .45rem; }
.proof-card p { color:var(--muted); font-size:.85rem; min-height:78px; }
.proof-card small { color:var(--muted); display:block; margin-top:.7rem; }
.proof-schematic { background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:.55rem; display:flex; align-items:center; justify-content:center; gap:.5rem; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.74rem; }
.proof-schematic b { color:var(--teal); }
.proof-prompt { margin-top:1rem; border-left:4px solid var(--teal); background:var(--soft-teal); padding:.85rem 1rem; border-radius:0 12px 12px 0; }
.applications { border-top:1px solid var(--line); }
.app-columns { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.app-thread { background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:1rem; }
.app-thread header { display:flex; align-items:center; gap:.7rem; padding-bottom:.8rem; border-bottom:1px solid var(--line); }
.thread-icon { display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--soft-teal);color:var(--teal);font-size:1.3rem;font-weight:900; }
.app-thread header small { color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-weight:800; font-size:.65rem; }
.app-thread h3 { margin:.05rem 0; }
.app-thread ol { list-style:none; padding:0; margin:.8rem 0 0; }
.app-thread li { display:grid; grid-template-columns:145px 1fr; gap:.8rem; padding:.65rem .2rem; border-bottom:1px solid var(--line); }
.app-thread li:last-child { border-bottom:0; }
.app-thread li span { color:var(--muted); }
.status-legend { margin-top:1rem; display:flex; flex-wrap:wrap; gap:.65rem 1.2rem; color:var(--muted); font-size:.75rem; }
.status-legend span { display:flex; align-items:center; gap:.35rem; }
.dot { width:8px;height:8px;border-radius:50%;background:var(--navy); }
.dot.application{background:var(--green)}.dot.enrichment{background:var(--gold)}.dot.reference{background:var(--muted)}
.schedule { border-top:1px solid var(--line); }
.schedule-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:16px; background:var(--paper); }
.schedule-table { width:100%; border-collapse:collapse; min-width:720px; }
.schedule-table th,.schedule-table td { text-align:left; padding:.75rem .9rem; border-bottom:1px solid var(--line); vertical-align:top; }
.schedule-table th { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.schedule-table td { font-size:.88rem; }
.schedule-table tbody tr:last-child td { border-bottom:0; }
.course-info { border-top:1px solid var(--line); }
.info-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.8rem; }
.info-grid article { background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:1rem; }
.info-grid .cohort-card { grid-column:1 / -1; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:.35rem 1.5rem; align-items:start; }
.info-grid .cohort-card h3 { grid-column:1; }
.info-grid .cohort-card p { margin:.1rem 0; }
.info-grid h3 { margin:.1rem 0 .7rem; }
.info-grid p { color:var(--muted); font-size:.87rem; }
.muted { color:var(--muted); }
.archive-details { margin-top:1rem; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:.75rem 1rem; }
.archive-details summary { cursor:pointer; font-weight:750; }
.archive-links { display:flex; flex-wrap:wrap; gap:.8rem; padding-top:.7rem; }
.site-footer { max-width:var(--max); margin:0 auto; padding:2rem 1.25rem 3rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; color:var(--muted); font-size:.82rem; }
.site-footer a { color:var(--muted); }
@media (max-width: 1050px) {
  .top-nav { display:none; }
  .hero { grid-template-columns:1fr; padding-top:4rem; }
  .hero-panel { justify-content:flex-start; }
  .lecture-grid { grid-template-columns:repeat(2,1fr); }
  .proof-grid { grid-template-columns:repeat(2,1fr); }
  .proof-card:last-child { grid-column:span 2; }
  .lecture-heading-row { grid-template-columns:1fr; }
  .info-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 720px) {
  .info-grid .cohort-card { grid-template-columns:1fr; }
  .info-grid .cohort-card h3 { grid-column:auto; }
  h1 { font-size:3rem; }
  .header-inner { padding:.65rem .8rem; }
  .section,.hero { padding-left:.9rem; padding-right:.9rem; }
  .lecture-grid,.app-columns,.info-grid,.proof-grid { grid-template-columns:1fr; }
  .proof-card:last-child { grid-column:auto; }
  .map-flow { grid-template-columns:1fr; }
  .map-arrow { transform:rotate(90deg); text-align:center; }
  .thread-lines div,.app-thread li { grid-template-columns:1fr; gap:.18rem; }
  .lecture-heading-row { gap:1rem; }
  .site-footer { flex-direction:column; gap:1rem; }
}
@media print {
  .site-header,.hero-actions,.atlas-tools,.card-tabs,.recall-panel,.skills-panel,.connect-panel,.site-footer { display:none !important; }
  body { background:white; color:#111; }
  .section,.hero { max-width:none; padding:1rem 0; }
  .lecture-grid { grid-template-columns:repeat(3,1fr); gap:.5rem; }
  .lecture-card,.proof-card,.app-thread,.info-grid article { box-shadow:none; break-inside:avoid; }
}

@media (max-width: 420px) { .hero-meta span { white-space:normal; } }
