/* Adapted from https://visual.spm-math.com/css/about.css.
   Uses the site's shared maroon branding and slate control palette. */
@font-face { font-family: "Bricolage Grotesque"; font-weight: 700 800; font-display: swap; src: url("../vendor/fonts/bricolage-grotesque.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 100 700; font-display: swap; src: url("../vendor/fonts/plex-sans.woff2") format("woff2"); }
.about-open {
  --text-2: #3b4854; --border-2: #b9c4ce;
  --gridline: #e3e8ed;
  --ink: #0f1418; --ink-2: #182027; --ink-line: #2d3944; --ink-grid: #1a242c;
  --ink-text: #e6ebf0; --ink-soft: #b4c0cb; --ink-dim: #9aa8b5;
  /* Always-dark panels use the shared dark-theme control colours. */
  --ink-accent: #9bb6ce; --ink-accent-2: #c0d2e2; --ink-on-accent: #122334;
  --about-shadow: 0 1px 2px rgb(15 23 42 / 6%), 0 18px 40px rgb(15 23 42 / 12%);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
}
[data-theme="dark"] .about-open {
  --text-2: #c3cdd6; --border-2: #445361;
  --gridline: #172028;
  --ink: #0a0e11; --ink-2: #141b21; --ink-grid: #121a20;
  --about-shadow: 0 1px 2px rgb(0 0 0 / 40%), 0 18px 40px rgb(0 0 0 / 45%);
}
.about-open .layout { display: block; max-width: none; padding: 0; margin: 0; }
.about-open .main { padding: 0; min-width: 0; }
.about-open .sidebar, .about-open .menu-btn, .about-open .header-tools > .fb-btn { display: none; }
.about-nav, .about-header-cta { display: none; }
.about-open .app-header {
  height: 72px; padding: 0 max(clamp(16px, 5vw, 80px), calc((100% - 1280px) / 2 + clamp(16px, 5vw, 80px)));
  gap: 24px;
}
.about-open .brand { flex-shrink: 0; }
.about-open .brand h1 { font: 700 18px/1.12 "Bricolage Grotesque", sans-serif; max-width: 170px; color: var(--brand); }
.about-open .logo svg { width: 40px; height: 40px; }
.about-open .about-nav { display: flex; gap: 24px; margin-left: auto; align-items: center; font-size: 15px; }
.about-nav a { color: var(--text); text-decoration: none; white-space: nowrap; padding: 10px 0; }
.about-nav a:hover { color: var(--accent); }
.about-open .header-tools { gap: 12px; }
.about-open #theme-btn { width: 44px; height: 44px; border-radius: 10px; }
.about-open .about-header-cta { display: inline-flex; min-height: 44px; padding: 0 18px; border-radius: 12px; gap: 10px; text-decoration: none; }
.about-open .seg button { min-width: 40px; min-height: 34px; }
.about-page { font: 16px/1.6 "IBM Plex Sans", system-ui, sans-serif; }
.about-page ::selection { color: var(--on-accent); background: var(--accent); }
.about-page h2, .about-page h3, .about-page h4 { font-family: "Bricolage Grotesque", sans-serif; margin: 0; }
.about-page h2, .about-page h3 { font-weight: 800; letter-spacing: -0.03em; line-height: 1.02; }
.about-page h4 { font-weight: 700; letter-spacing: -0.015em; line-height: 1.12; font-size: 26px; }
.about-page p { margin: 0; color: var(--text-2); }
.about-page a { color: var(--accent); text-underline-offset: 4px; }
.about-page a:hover { text-decoration-thickness: 2px; }
.about-page :focus-visible, .about-open .app-header :focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 6px; }
.about-wrap, .about-numbers { width: 100%; max-width: 1280px; margin: 0 auto; padding-inline: clamp(16px, 5vw, 80px); }
.about-icon { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.about-page .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 60px; padding: 12px 30px; border-radius: 12px; border: 1.5px solid var(--border-2); background: transparent; color: var(--text); font-size: 18px; font-weight: 600; text-align: center; text-decoration: none; }
.about-page .btn:hover { background: var(--surface); border-color: var(--accent); color: var(--accent-strong); }
.about-open .btn.primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.about-open .btn.primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); color: var(--on-accent); }
.about-hero { border-bottom: 1px solid var(--border); background-image: linear-gradient(var(--gridline) 1px, transparent 1px), linear-gradient(90deg, var(--gridline) 1px, transparent 1px); background-size: 32px 32px; }
.about-hero-inner { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; align-items: center; padding-block: 88px 96px; }
.about-intro { display: flex; flex-direction: column; gap: 28px; }
.about-intro h2 { font-size: clamp(44px, 5.6vw, 78px); line-height: 0.98; letter-spacing: -0.035em; }
.about-intro h2 span { color: var(--brand); }
.about-intro > p:not(.about-badge) { font-size: 20px; line-height: 1.55; max-width: 560px; }
.about-intro .about-badge { align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 6px 14px 6px 6px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); font-size: 14px; font-weight: 500; }
.about-badge b { padding: 2px 10px; border-radius: 999px; color: var(--accent-strong); background: var(--accent-soft); font-weight: 600; }
.about-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.about-checks { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 0; margin: 0; list-style: none; font-size: 15px; color: var(--muted); }
.about-checks li { display: flex; align-items: center; gap: 8px; }
.about-checks .about-icon { color: var(--accent); stroke-width: 2.8; }
.about-hero .home-explorer { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0; padding: 22px; border: 1px solid var(--border); border-radius: 20px; background: var(--surface); box-shadow: var(--about-shadow); }
.about-hero .home-explorer h3 { font-size: 22px; line-height: 1.2; font-weight: 700; }
.about-hero .home-explorer p { margin-top: 12px; font-size: 14px; }
.about-hero .home-explorer svg { display: block; }
.about-hero .home-explorer-plot > svg { background: var(--bg); border-radius: 12px; }
.about-hero input { caret-color: var(--accent); }
.about-hero input[type="number"], .about-hero input[type="range"] { min-height: 44px; }
.about-hero .demo-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; }
.about-number-band { background: var(--surface); border-bottom: 1px solid var(--border); }
.about-numbers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding-block: 56px; }
.about-numbers > div { display: flex; flex-direction: column; gap: 6px; padding-left: 24px; border-left: 1px solid var(--border); }
.about-numbers dt { color: var(--text-2); }
.about-numbers dd { order: -1; margin: 0; color: var(--brand); font: 800 clamp(44px, 5vw, 64px)/1 "Bricolage Grotesque", sans-serif; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.about-section { padding: 112px 0; scroll-margin-top: 88px; }
.about-section-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 32px 48px; margin-bottom: 56px; }
.about-section-head h3 { font-size: clamp(34px, 4vw, 54px); max-width: 760px; }
.about-section-head p { max-width: 420px; font-size: 18px; line-height: 1.55; }
.about-steps, .about-family, .about-audience { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.about-steps { margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.about-steps li, .about-feature, .about-family > div, .about-audience > div { display: flex; flex-direction: column; gap: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 36px; }
.about-steps li { counter-increment: steps; }
.about-steps li::before { content: counter(steps); width: 52px; height: 52px; display: grid; place-items: center; border-radius: 12px; background: var(--text); color: var(--bg); font: 800 24px/1 "Bricolage Grotesque", sans-serif; }
.about-steps li:last-child::before { background: var(--accent); color: var(--on-accent); }
.about-steps p, .about-family p { flex: 1; }
.about-steps a, .about-family a { display: inline-flex; align-items: center; align-self: flex-start; min-height: 44px; font-size: 14px; font-weight: 600; }
.about-mini { padding: 14px; border-radius: 10px; background: var(--bg); display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.about-mini-chapter { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 1px solid transparent; border-radius: 8px; }
.about-mini-chapter > span { color: var(--muted); font-variant-numeric: tabular-nums; }
.about-mini-chapter.selected { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-strong); font-weight: 600; }
.about-mini-row { display: flex; align-items: center; gap: 10px; }
.about-mini-track { flex: 1; height: 6px; background: var(--border); border-radius: 999px; }
.about-mini-track i { display: block; width: 62%; height: 6px; background: var(--accent); border-radius: inherit; }
.about-mini-value { background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 3px 9px; }
.about-mini-options { display: flex; flex-wrap: wrap; gap: 8px; }
.about-mini-options > span { display: flex; align-items: center; gap: 6px; padding: 5px 8px; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; }
.about-mini-options .correct { color: var(--accent-strong); border-color: var(--accent); background: var(--accent-soft); }
#about-features { padding-top: 0; }
#about-features .about-section-head { flex-direction: column; align-items: center; text-align: center; gap: 24px; }
#about-features .about-section-head p { max-width: 65ch; }
.about-features { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.about-feature { grid-column: span 3; }
.about-feature:nth-child(2) { grid-column: span 2; }
.about-feature > .about-icon, .about-formula-copy > .about-icon { width: 40px; height: 40px; stroke-width: 1.8; color: var(--accent); }
.about-feature p { font-size: 15px; }
.about-feature:first-child { grid-column: span 4; background: var(--ink); color: var(--ink-text); border-color: var(--ink-line); flex-direction: row; align-items: center; gap: 40px; padding: 40px; }
.about-formula-copy { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.about-formula-copy h4 { font-size: 32px; }
.about-formula-copy p { color: var(--ink-soft); font-size: 16px; }
.about-formula-copy > .about-icon { color: var(--ink-accent); }
.about-working { flex: 1; min-width: 0; padding: 24px; border-radius: 14px; background: var(--ink-2); border: 1px solid var(--ink-line); }
.about-working p { font-size: 13px; color: var(--ink-dim); margin-bottom: 12px; }
.about-working > div { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--ink-line); }
.about-working > div > span { color: var(--ink-accent); font-size: 12px; }
.about-working strong { color: var(--ink-accent-2); font: 600 18px/1.5 "Cambria Math", "Times New Roman", serif; }
.about-working .about-expression { padding: 8px 12px; border: 1.5px solid var(--ink-accent); border-radius: 8px; background: var(--ink); color: var(--ink-text); }
.about-feature-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.about-feature-tags span { padding: 5px 12px; border-radius: 8px; background: var(--accent-soft); color: var(--accent-strong); font-size: 14px; font-weight: 600; }
.about-chapter { background-color: var(--ink); background-image: linear-gradient(var(--ink-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ink-grid) 1px, transparent 1px); background-size: 32px 32px; color: var(--ink-text); }
.about-chapter > .about-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 72px; }
.about-chapter .about-section-head { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; margin: 0; }
.about-chapter h3 { font-size: clamp(38px, 4.4vw, 60px); }
.about-chapter p { color: var(--ink-soft); }
.about-guide-list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.about-guide-list li:nth-child(even) { margin-left: 32px; }
.about-guide-list a { display: flex; align-items: baseline; gap: 14px; padding: 16px 22px; border-radius: 12px; background: var(--ink-2); border: 1px solid var(--ink-line); color: var(--ink-text); text-decoration: none; }
.about-guide-list a:hover, .about-guide-list a:focus-visible { border-color: var(--ink-accent); }
.about-guide-list span { flex: 0 0 3ch; color: var(--ink-accent); font-variant-numeric: tabular-nums; }
.about-family > div:first-child, .about-audience > div:last-child { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.about-family > div:first-child p, .about-family > div:first-child a, .about-audience > div:last-child p { color: inherit; }
#about-who { padding-top: 0; }
.about-final { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 88px 80px; border-radius: 28px; border: 1px solid var(--ink-line); background: var(--ink); color: var(--ink-text); }
.about-final-copy { max-width: 700px; }
.about-final h3 { font-size: clamp(36px, 4.4vw, 60px); }
.about-final p { margin-top: 18px; color: var(--ink-soft); font-size: 18px; }
.about-final .btn.primary { flex-shrink: 0; min-height: 68px; padding: 14px 36px; font-size: 20px; border-radius: 14px; background: var(--ink-accent); color: var(--ink-on-accent); border-color: var(--ink-accent); }
.about-final .btn.primary:hover { background: var(--ink-accent-2); color: var(--ink-on-accent); border-color: var(--ink-accent-2); }
.about-notes-wrap { padding-top: 40px; }
.about-notes { max-width: 75ch; }
.about-notes summary { min-height: 44px; padding: 8px 0; cursor: pointer; font-weight: 600; }
.about-notes summary::marker { color: var(--accent); }
.about-notes p { font-size: 14px; margin: 16px 0; }
.about-footer { padding: 56px 0 48px; font-size: 14px; color: var(--muted); }
.about-footer > .about-wrap { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 32px; }
.about-footer p { color: var(--muted); }
.about-footer nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.about-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 1250px) { .about-open .about-nav { gap: 14px; font-size: 14px; } .about-open .app-header { gap: 16px; } }
@media (max-width: 1100px) {
  .about-open .about-nav { display: none; }
  .about-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 56px; padding-block: 64px 72px; }
  .about-hero .home-explorer { max-width: 620px; }
  .about-chapter > .about-wrap { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .about-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-feature, .about-feature:nth-child(2) { grid-column: span 1; }
  .about-feature:first-child { grid-column: span 2; }
  .about-feature:last-child { grid-column: span 2; }
  .about-final { flex-direction: column; align-items: flex-start; padding: 64px 48px; }
}
@media (max-width: 820px) {
  .about-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; padding-block: 40px; }
  .about-steps, .about-family, .about-audience { grid-template-columns: minmax(0, 1fr); }
  .about-feature:first-child { flex-direction: column; align-items: stretch; gap: 24px; padding: 28px; }
}
@media (max-width: 640px) {
  .about-page { font-size: 15px; }
  .about-open .app-header { height: 64px; gap: 10px; }
  .about-open .brand-link { gap: 8px; }
  .about-open .brand h1 { font-size: 16px; max-width: 145px; }
  .about-open .header-tools { gap: 6px; }
  .about-open .about-header-cta { display: none; }
  .about-open #theme-btn { width: 40px; height: 40px; }
  .about-hero-inner { padding-block: 40px 48px; gap: 36px; }
  .about-intro { gap: 22px; }
  .about-intro > p:not(.about-badge) { font-size: 17px; }
  .about-intro .about-badge { font-size: 12px; gap: 6px; }
  .about-actions .btn { width: 100%; }
  .about-hero .home-explorer { padding: 16px; }
  .about-section { padding: 64px 0; }
  .about-section-head { margin-bottom: 32px; }
  .about-steps li, .about-feature, .about-family > div, .about-audience > div { padding: 24px; border-radius: 16px; }
  .about-features { grid-template-columns: minmax(0, 1fr); }
  .about-feature:first-child, .about-feature:last-child { grid-column: span 1; }
  .about-working { padding: 16px; }
  .about-working > div { flex-direction: column; align-items: flex-start; gap: 2px; }
  .about-working .about-expression { align-self: stretch; }
  .about-guide-list a { padding: 14px 16px; }
  .about-guide-list li:nth-child(even) { margin-left: 0; }
  .about-final { padding: 40px 24px; border-radius: 22px; }
  .about-final .btn { width: 100%; }
  .about-numbers > div { padding-left: 14px; }
}
@media (max-width: 430px) {
  .about-open .brand h1 { font-size: 14px; max-width: 120px; }
  .about-open .logo svg { width: 34px; height: 34px; }
  .about-open .seg button { min-width: 32px; padding: 0 6px; }
}
@media (max-width: 350px) {
  .about-open .brand h1 { font-size: 12px; max-width: 98px; }
  .about-open .logo svg { width: 28px; height: 28px; }
  .about-open .brand-link, .about-open .header-tools { gap: 4px; }
  .about-intro .about-badge { flex-wrap: wrap; border-radius: 12px; }
}
@media print {
  .about-open .app-header, .about-actions, .about-final .btn { display: none; }
  .about-section, .about-hero-inner { padding-block: 24px; }
  .about-wrap { padding-inline: 0; }
  .about-hero .home-explorer { box-shadow: none; }
}
