:root {
  --bg: #120c1a;
  --card: #201630;
  --text: #f3eefb;
  --muted: #c1b6d2;
  --line: #4a355d;
  --accent: #c8f04b;
  --violet: #b3a0ff;
  color-scheme: dark;
  color: var(--text);
  background: var(--bg);
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.6;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: var(--accent); text-underline-offset: .25em; }
a:hover { text-decoration-thickness: 2px; }
button, input { font: inherit; }
button, a, summary { touch-action: manipulation; }
button {
  cursor: pointer;
  color: var(--text);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .65rem 1rem;
}
button:hover:not(:disabled) { border-color: var(--accent); }
button:disabled { cursor: default; opacity: .45; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
h1, h2, h3 { line-height: 1.15; letter-spacing: -.035em; text-wrap: balance; }
p { margin: 0 0 1rem; }
h1 { font-size: 1.4rem; margin: 0; }
h2 { margin: 0 0 1.5rem; font-size: clamp(2rem, 4.1vw, 3.8rem); max-width: 1050px; }
h3 { font-size: 1.15rem; margin: 0 0 .8rem; }
[hidden] { display: none !important; }
.skip { position: absolute; top: -100px; left: 1rem; padding: 1rem; background: var(--accent); color: var(--bg); }
.skip:focus { top: 1rem; }
main, .overview-footer { width: var(--site-content-width); margin: 0 auto; }
main { padding: 2.4rem 0; }
.presentation-heading, .utility-actions, .slide-controls, .source-links, .overview-footer {
  display: flex; align-items: center; gap: 1rem;
}
.presentation-heading { justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.utility-actions { flex-wrap: wrap; font-size: .78rem; }
.eyebrow { color: var(--accent); font-size: .7rem; font-weight: 750; letter-spacing: .17em; text-transform: uppercase; margin-bottom: .6rem; }
.publication-status { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.publication-status p { margin: 0; font-size: .81rem; }
.publication-status .revision { color: var(--muted); font-size: .7rem; overflow-wrap: anywhere; margin-top: .3rem; }
.status-dot { width: 8px; height: 8px; flex: none; margin-top: .45rem; background: var(--violet); border-radius: 50%; }
[data-state="current"] .status-dot { background: var(--accent); }
[data-state="error"] .status-dot { background: #ffb8b8; }
.chapters { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0 1.1rem; }
.chapters button { padding: .5rem .85rem; font-size: .76rem; background: none; border-color: transparent; }
.chapters button[aria-current="step"] { color: var(--accent); background: var(--card); border-color: var(--line); }
.chapter-number { color: var(--muted); margin-right: .55rem; font-variant-numeric: tabular-nums; }
.slide {
  position: relative;
  min-height: min(650px, 65vh);
  padding: clamp(1.5rem, 4vw, 3.8rem);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: radial-gradient(ellipse at 100% 0, #49207935, transparent 65%), var(--card);
  overflow-wrap: anywhere;
}
.slide > .eyebrow { margin-bottom: 1.7rem; }
.slide .project-title { font-size: clamp(3.2rem, 7vw, 6.5rem); line-height: .98; max-width: 1000px; }
.project-subtitle { color: var(--muted); max-width: 850px; font-size: clamp(1.15rem, 2.2vw, 1.8rem); line-height: 1.4; }
.project-thesis { max-width: 1000px; font-size: clamp(1.2rem, 2.4vw, 2rem); line-height: 1.45; border-left: 3px solid var(--accent); padding-left: 1.2rem; margin: 1.8rem 0; }
.project-status { display: inline-block; font-size: .72rem; color: var(--muted); border: 1px solid var(--line); padding: .35rem .7rem; }
.source-label { font-size: .66rem; color: var(--violet); letter-spacing: .12em; text-transform: uppercase; font-weight: 700; margin: 1.6rem 0 .7rem; }
.source-excerpt { font-size: clamp(1.1rem, 1.8vw, 1.55rem); line-height: 1.55; max-width: 1050px; margin: 0 0 1.3rem; }
.source-excerpt p { margin: 0; }
.source-links { flex-wrap: wrap; font-size: .8rem; margin-top: 1.2rem; }
.source-detail, .research-browser, .work-browser { border-top: 1px solid var(--line); margin-top: 1.6rem; padding-top: 1rem; }
summary { cursor: pointer; color: var(--text); font-size: .9rem; }
summary::marker { color: var(--accent); }
details[open] > summary { margin-bottom: 1.2rem; }
.source-content { max-width: 1000px; font-size: .95rem; color: var(--muted); }
.source-content p { white-space: pre-line; }
.research-list { list-style: none; padding: 0; margin: 1rem 0; }
.research-list > li { border-top: 1px solid var(--line); padding: .9rem 0; }
.research-list details { margin: 0; padding: 0; border: 0; }
.research-list .source-label { margin-top: 1rem; }
.search-label { display: block; font-size: .8rem; margin: .5rem 0; color: var(--muted); }
.research-search { width: 100%; max-width: 650px; background: var(--bg); border: 1px solid #78618e; border-radius: 5px; color: var(--text); padding: .7rem; }
.filter-count { font-size: .75rem; color: var(--muted); margin: .7rem 0; }
.stats { display: flex; gap: 1rem 2.5rem; flex-wrap: wrap; margin: 1.7rem 0; }
.stats > div { min-width: 90px; }
.stats dt { font-size: .75rem; color: var(--muted); }
.stats dd { margin: 0; color: var(--accent); font-size: 2.5rem; line-height: 1.3; font-weight: 650; font-variant-numeric: tabular-nums; }
.card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.demo-card, .work-card { min-width: 0; padding: 1.5rem; background: var(--bg); border: 1px solid var(--line); border-radius: 8px; }
.demo-card p, .work-card p { color: var(--muted); font-size: .87rem; }
.demo-card img { width: 100%; height: auto; max-height: 260px; object-fit: contain; display: block; margin: 0 0 1.3rem; border: 1px solid var(--line); border-radius: 4px; }
.demo-card h3 { font-size: 1.45rem; }
.demo-card a, .work-card a { font-size: .8rem; }
.work-card .work-status { display: inline-block; color: var(--violet); text-transform: uppercase; font-size: .65rem; letter-spacing: .1em; margin-bottom: .8rem; }
.work-card .work-question { color: var(--text); font-size: 1rem; }
.work-card h4 { font-size: .75rem; color: var(--violet); margin: 1.2rem 0 .5rem; }
.work-card .source-links { display: block; padding-left: 1rem; }
.work-card .source-links li { margin-bottom: .3rem; }
.work-highlights { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.next-actions { padding-left: 1.3rem; font-size: .93rem; color: var(--muted); }
.next-actions li { margin: 1rem 0; padding-left: .3rem; }
.next-actions strong { display: block; color: var(--text); margin-bottom: .3rem; }
.slide-controls { justify-content: space-between; margin-top: 1.2rem; }
.slide-controls button { min-width: 120px; font-size: .85rem; }
.slide-controls p { margin: 0; font-size: .8rem; color: var(--muted); text-align: center; }
.keyboard-help { font-size: .72rem; color: var(--muted); margin: 1.2rem 0 1.8rem; text-align: center; }
.freshness-explanation { max-width: 950px; margin-top: 1.5rem; color: var(--muted); font-size: .8rem; }
.freshness-explanation summary { color: var(--muted); font-size: .8rem; }
.overview-footer { flex-wrap: wrap; padding: 1.5rem 0 2.5rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .73rem; }
.overview-footer span { margin-right: auto; }
.loading-panel { padding: 5rem 2rem; text-align: center; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); }
.loading-number { display: block; font-size: 3rem; color: var(--accent); }
.error-panel { padding: 2rem; margin: 1rem 0; border: 1px solid #b07887; border-radius: 8px; background: var(--card); }
.error-panel h2 { font-size: 1.6rem; }
.error-panel p { max-width: 850px; color: var(--muted); }
.error-panel a { display: inline-block; margin: .7rem 1rem; font-size: .9rem; }
.primary-button { background: var(--accent); color: var(--bg); font-weight: 700; }
@media (max-width: 800px) {
  .work-highlights { grid-template-columns: 1fr; }
  .presentation-heading { align-items: flex-start; }
  .utility-actions { justify-content: flex-end; gap: .5rem; }
  .utility-actions button { padding: .5rem .65rem; }
}
@media (max-width: 560px) {
  main { padding-top: 1.5rem; }
  .presentation-heading { flex-direction: column; gap: 1rem; }
  .utility-actions { justify-content: flex-start; }
  .slide { padding: 1.5rem 1.15rem; min-height: 0; }
  .slide > .eyebrow { margin-bottom: 1.2rem; }
  .slide .project-title { font-size: clamp(2.65rem, 12vw, 4rem); }
  h2 { font-size: 1.9rem; }
  .chapters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .2rem; }
  .chapters button { padding: .5rem .3rem; font-size: .69rem; }
  .chapter-number { margin-right: .3rem; }
  .card-grid { grid-template-columns: 1fr; }
  .stats { gap: 1rem; }
  .stats > div { min-width: 65px; }
  .stats dd { font-size: 2rem; }
  .demo-card, .work-card { padding: 1.1rem; }
  .slide-controls button { min-width: auto; padding: .6rem .85rem; }
  .slide-controls button span { display: none; }
}
@media print {
  :root { color-scheme: light; color: #111; background: white; font-size: 10pt; }
  body { background: white; }
  main { width: 100%; padding: 0; }
  .site-header, .skip, .utility-actions, .chapters, .slide-controls, .keyboard-help, .freshness-explanation,
  .overview-footer, .search-label, .research-search, .filter-count, .loading-panel,
  .source-detail, .research-browser, .work-browser { display: none !important; }
  .publication-status { padding: .5rem 0; }
  .publication-status .revision { color: #333; }
  .slide, .slide[hidden] { display: block !important; min-height: 0; padding: 1.2rem 0; border: 0; border-radius: 0; background: white; break-before: page; }
  .slide:first-child { break-before: auto; }
  .slide .project-title { font-size: 38pt; }
  h2 { font-size: 26pt; }
  .eyebrow, .source-label, a, .stats dd, .work-card .work-status, .work-card h4 { color: #222; }
  .project-subtitle, .project-status, .source-content, .stats dt, .demo-card p, .work-card p, .next-actions { color: #333; }
  .source-excerpt, .project-thesis { font-size: 15pt; }
  .project-thesis { border-color: #444; }
  .demo-card, .work-card, .error-panel { background: white; border-color: #999; break-inside: avoid; }
  .demo-card img { max-height: 180px; }
  .work-card .work-question, .next-actions strong, summary { color: #111; }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-list > li[hidden] { display: block !important; }
  details::details-content { display: block; content-visibility: visible; }
  details > :not(summary) { display: block; }
  summary { font-weight: 700; }
  h2, h3, h4, summary { break-after: avoid; }
}
