/* Gamma Research: a shared visual system for the project page and home section. */
.gamma-page,
.gamma-promo {
  --gamma-bg: var(--bg-soft);
  --gamma-surface: var(--surface);
  --gamma-ink: var(--text);
  --gamma-muted: var(--muted);
  --gamma-accent: var(--focus);
  --gamma-line: var(--border);
  color: var(--gamma-ink);
}

.gamma-page main p,
.gamma-promo p { color: var(--gamma-muted); }
.gamma-page main a,
.gamma-promo a { color: var(--gamma-accent); }
.gamma-page main .btn-primary,
.gamma-promo .btn-primary { color: #fff; }
.gamma-page main .btn-ghost,
.gamma-promo .btn-ghost { color: var(--text); }
.gamma-page main .eyebrow,
.gamma-promo .eyebrow { color: var(--gamma-accent); }
.gamma-page main a:focus-visible,
.gamma-page main summary:focus-visible,
.gamma-promo a:focus-visible { outline: 2px solid var(--focus); outline-offset: 5px; }
.gamma-page .container,
.gamma-promo .container { min-width: 0; }
.gamma-mono { font-family: "JetBrains Mono", monospace; }
.gamma-page [data-reveal],
.gamma-promo [data-reveal] {
  filter: none;
  transform: translateY(20px);
  transition-property: opacity, transform;
}
.gamma-page [data-reveal].is-visible,
.gamma-promo [data-reveal].is-visible { transform: none; }
.gamma-skip {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 100;
  padding: 0.8rem 1rem;
  background: var(--gamma-surface);
  transform: translateY(-180%);
}
.gamma-skip:focus { transform: none; }

/* Project introduction. */
.gamma-hero { padding: 4.8rem 0 3rem; overflow: hidden; }
.gamma-topline,
.gamma-section-kicker,
.gamma-figure-head,
.gamma-doc-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.gamma-topline { padding-bottom: 2rem; border-bottom: 1px solid var(--gamma-line); }
.gamma-status {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.72rem;
  color: var(--gamma-accent);
  font-family: "JetBrains Mono", monospace;
}
.gamma-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.gamma-hero-grid { display: grid; grid-template-columns: 1.04fr 1fr; gap: 3rem; align-items: center; padding-top: 3rem; }
.gamma-hero h1 { margin: 0; font-size: clamp(2.8rem, 5.6vw, 5rem); letter-spacing: -0.065em; line-height: 1.08; }
.gamma-hero h1 span { color: var(--gamma-accent); }
.gamma-hero .lead { margin: 1.6rem 0 0; max-width: 46ch; font-size: 1.05rem; line-height: 1.8; }
.gamma-caption { font-size: 0.76rem; line-height: 1.7; }
.gamma-hero .gamma-caption { margin-top: 1.1rem; }
.gamma-text-link { display: inline-flex; gap: 0.6rem; align-items: center; font-size: 0.85rem; font-weight: 600; }
.gamma-text-link span { transition: transform 0.25s ease; }
.gamma-text-link:hover span { transform: translateX(3px); }

/* The topology is an explanatory diagram, never live telemetry. */
.gamma-network {
  margin: 0;
  min-width: 0;
  border: 1px solid var(--gamma-line);
  border-radius: var(--radius);
  background: radial-gradient(ellipse at 50% 48%, rgba(108, 125, 255, 0.09), transparent 68%), var(--bg-soft);
}
.gamma-figure-head { padding: 1.2rem 1.3rem; border-bottom: 1px solid var(--gamma-line); font-size: 0.68rem; letter-spacing: 0.035em; color: var(--gamma-muted); }
.gamma-network svg { width: 100%; height: auto; display: block; }
.gamma-network figcaption { border-top: 1px solid var(--gamma-line); padding: 1rem 1.3rem; font-size: 0.76rem; line-height: 1.6; color: var(--gamma-muted); }
.gamma-network figcaption strong { color: var(--gamma-accent); font-weight: 500; }
.gamma-network .mesh-link { stroke: #334568; stroke-width: 1; fill: none; }
.gamma-network .mesh-link-faint { stroke-dasharray: 4 7; opacity: 0.6; }
.gamma-network .mesh-route { stroke: var(--focus); stroke-width: 2; fill: none; }
.gamma-network .mesh-dot { fill: var(--surface); stroke: #8a96ff; stroke-width: 1.3; }
.gamma-network .mesh-halo { fill: none; stroke: #2c3c60; stroke-width: 1; }
.gamma-network .mesh-label { fill: var(--muted); font-family: "JetBrains Mono", monospace; font-size: 10px; letter-spacing: 1px; }
.gamma-network .mesh-center { fill: var(--surface-strong); stroke: #7183c8; stroke-width: 1; }
.gamma-network .mesh-title { fill: var(--text); font-family: "Manrope", sans-serif; font-size: 22px; font-weight: 700; }
.gamma-network .mesh-center-label { fill: var(--focus); font-family: "JetBrains Mono", monospace; font-size: 11px; }
.gamma-network .mesh-subtitle { fill: var(--muted); font-family: "Manrope", sans-serif; font-size: 11px; }

.gamma-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 3.5rem; border-top: 1px solid var(--gamma-line); border-bottom: 1px solid var(--gamma-line); }
.gamma-principles div { padding: 1.7rem 1.8rem; border-right: 1px solid var(--gamma-line); }
.gamma-principles div:first-child { padding-left: 0; }
.gamma-principles div:last-child { border-right: 0; }
.gamma-principles dt { font-size: 0.73rem; color: var(--gamma-accent); font-family: "JetBrains Mono", monospace; margin-bottom: 0.5rem; }
.gamma-principles dd { margin: 0; color: var(--gamma-muted); font-size: 0.86rem; line-height: 1.7; }
.gamma-local-nav { display: flex; gap: 2rem; padding: 1.2rem 0; flex-wrap: wrap; border-bottom: 1px solid var(--gamma-line); }
.gamma-local-nav a { font-size: 0.8rem; color: var(--gamma-muted); }
.gamma-local-nav a:hover { color: var(--gamma-accent); }

/* Editorial sections and the Account / Node boundary. */
.gamma-section { padding: 5.5rem 0; scroll-margin-top: 100px; }
.gamma-section + .gamma-section { border-top: 1px solid var(--gamma-line); }
.gamma-section-kicker { margin-bottom: 1.8rem; }
.gamma-section-kicker .gamma-mono { color: #7f8fb6; font-size: 0.75rem; }
.gamma-section h2 { font-size: clamp(1.9rem, 3.8vw, 3.2rem); letter-spacing: -0.055em; line-height: 1.15; }
.gamma-editorial { display: grid; grid-template-columns: 1fr 1.25fr; gap: 4rem; align-items: start; }
.gamma-editorial > div > p { font-size: 0.96rem; margin: 1.4rem 0 0; max-width: 43ch; }
.gamma-layers { border-top: 1px solid var(--gamma-line); }
.gamma-layer { display: grid; grid-template-columns: 76px 1fr; gap: 1.4rem; padding: 1.8rem 0; border-bottom: 1px solid var(--gamma-line); }
.gamma-layer-label { color: var(--gamma-accent); font-size: 0.7rem; padding-top: 0.25rem; }
.gamma-layer h3 { font-size: 1.3rem; font-weight: 600; }
.gamma-layer p { font-size: 0.88rem; margin: 0.6rem 0 0; }
.gamma-tags { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-top: 1rem; font-size: 0.62rem; color: #9eabcb; }
.gamma-tags span { border: 1px solid var(--gamma-line); padding: 0.25rem 0.5rem; }
.gamma-boundary { margin: 1.6rem 0 0; padding-left: 1rem; border-left: 2px solid var(--gamma-accent); font-size: 0.8rem; }

/* Evidence and unfinished work. */
.gamma-state { background: var(--bg-soft); }
.gamma-state-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: 4rem; margin-top: 2.8rem; }
.gamma-state-list { list-style: none; margin: 0; padding: 0; }
.gamma-state-list li { display: grid; grid-template-columns: 1.5rem 1fr; padding: 1rem 0; border-top: 1px solid var(--gamma-line); gap: 0.65rem; }
.gamma-state-list li > span { color: var(--gamma-accent); font-size: 0.75rem; padding-top: 0.25rem; }
.gamma-state-list strong { font-weight: 600; font-size: 0.95rem; }
.gamma-state-list p { font-size: 0.83rem; margin: 0.35rem 0 0; }
.gamma-focus { border-radius: var(--radius); border: 1px solid rgba(145, 163, 255, 0.32); background: var(--surface); padding: 2rem; position: relative; }
.gamma-focus::before { content: ""; position: absolute; top: -1px; left: 2rem; width: 48px; height: 2px; background: var(--gamma-accent); }
.gamma-focus h3 { font-size: 1.65rem; letter-spacing: -0.04em; margin-top: 1rem; }
.gamma-focus p { font-size: 0.9rem; margin: 1rem 0 1.5rem; }
.gamma-evidence { display: grid; grid-template-columns: 1fr 1fr 1.4fr; margin: 2.5rem 0 0; border-top: 1px solid var(--gamma-line); }
.gamma-evidence div { padding: 1.5rem 1.4rem 0 0; }
.gamma-evidence dt { font: 500 2.3rem "JetBrains Mono", monospace; letter-spacing: -0.08em; color: var(--gamma-ink); }
.gamma-evidence dd { margin: 0.4rem 0 0; color: var(--gamma-muted); font-size: 0.76rem; }
.gamma-evidence-note { margin: 1.7rem 0 0; font-size: 0.75rem; max-width: 78ch; }
.gamma-limits { margin-top: 2rem; border-top: 1px solid var(--gamma-line); padding-top: 1.4rem; }
.gamma-limits summary { cursor: pointer; font-size: 0.88rem; font-weight: 600; color: var(--gamma-accent); }
.gamma-limits ul { padding-left: 1.3rem; font-size: 0.84rem; color: var(--gamma-muted); line-height: 1.8; }
.gamma-limits li + li { margin-top: 0.5rem; }

/* Native, keyboard-accessible roadmap disclosures. */
.gamma-roadmap-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; margin-bottom: 2.8rem; }
.gamma-roadmap-intro p { margin: 0; font-size: 0.9rem; }
.gamma-roadmap { border-top: 1px solid var(--gamma-line); }
.gamma-roadmap-item { border-bottom: 1px solid var(--gamma-line); }
.gamma-roadmap-item summary { display: grid; grid-template-columns: 64px 1fr 190px 20px; gap: 1rem; align-items: center; padding: 1.35rem 0; cursor: pointer; list-style: none; }
.gamma-roadmap-item summary::-webkit-details-marker { display: none; }
.gamma-roadmap-id { font-size: 0.8rem; color: #9eabcb; }
.gamma-roadmap-name { font-size: 1.05rem; font-weight: 600; }
.gamma-roadmap-status { font-size: 0.65rem; color: var(--gamma-muted); text-align: right; }
.gamma-roadmap-toggle { color: var(--gamma-accent); text-align: right; font-size: 1.1rem; }
.gamma-roadmap-toggle::before { content: "+"; }
.gamma-roadmap-item[open] .gamma-roadmap-toggle::before { content: "−"; }
.gamma-roadmap-item[open] { background: rgba(145, 163, 255, 0.035); }
.gamma-roadmap-current { border-left: 2px solid var(--gamma-accent); padding-left: 1.1rem; padding-right: 1.1rem; }
.gamma-roadmap-current .gamma-roadmap-id,
.gamma-roadmap-current .gamma-roadmap-status { color: var(--gamma-accent); }
.gamma-roadmap-content { margin: 0 210px 1.5rem 80px; font-size: 0.86rem; }
.gamma-roadmap-content p { margin: 0; }
.gamma-roadmap-content p + p { margin-top: 0.7rem; }
.gamma-roadmap-content strong { color: var(--gamma-ink); font-weight: 600; }
.gamma-roadmap-footnote { font-size: 0.78rem; margin-top: 1.5rem; }

/* Reading and contribution. */
.gamma-doc-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 4rem; margin-top: 2.8rem; }
.gamma-doc-link { display: grid; grid-template-columns: 35px 1fr 24px; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid var(--gamma-line); }
.gamma-doc-link:hover { text-decoration: none; }
.gamma-doc-link > span { font-size: 0.73rem; color: #8796bc; padding-top: 0.2rem; }
.gamma-doc-link strong { display: block; font-weight: 600; font-size: 1rem; color: var(--gamma-ink); }
.gamma-doc-link small { display: block; color: var(--gamma-muted); font-size: 0.77rem; line-height: 1.65; margin-top: 0.4rem; }
.gamma-doc-link:hover strong { color: var(--gamma-accent); }
.gamma-archive { border-radius: var(--radius); border: 1px solid var(--gamma-line); padding: 2rem; align-self: start; background: var(--gamma-surface); }
.gamma-archive h3 { margin-top: 1.8rem; font-size: 1.5rem; letter-spacing: -0.035em; }
.gamma-archive p { font-size: 0.83rem; }
.gamma-doc-meta { color: #9eabcb; font-size: 0.68rem; }
.gamma-security { padding: 1.7rem 0 0; margin-top: 2.5rem; border-top: 1px solid var(--gamma-line); font-size: 0.83rem; color: var(--gamma-muted); max-width: 90ch; }
.gamma-security strong { color: var(--gamma-ink); font-weight: 600; }
.gamma-join { padding: 4rem 0; border-top: 1px solid var(--gamma-line); background: var(--surface); }
.gamma-join-inner { display: grid; grid-template-columns: 1.3fr 1fr; gap: 3rem; align-items: center; }
.gamma-join h2 { margin-top: 0.8rem; font-size: clamp(1.7rem, 3vw, 2.4rem); letter-spacing: -0.045em; }
.gamma-join p { font-size: 0.87rem; margin-bottom: 0; max-width: 56ch; }
.gamma-join .hero-actions { justify-content: end; margin-top: 0; }

/* Homepage introduction. */
.gamma-promo { background: var(--gamma-bg); border-block: 1px solid var(--gamma-line); padding: 5.5rem 0; }
.gamma-promo-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4rem; align-items: center; }
.gamma-promo h2 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.12; letter-spacing: -0.055em; margin: 1.2rem 0 1.5rem; }
.gamma-promo h2 span { color: var(--gamma-accent); }
.gamma-promo-copy > p:not(.eyebrow) { max-width: 50ch; font-size: 0.95rem; }
.gamma-promo .gamma-caption { font-size: 0.76rem !important; margin-top: 1.3rem; }
.gamma-promo .gamma-status { margin-top: 1rem; }
.gamma-promo-secondary { display: flex; gap: 1.7rem; flex-wrap: wrap; margin-top: 1.5rem; }
.gamma-promo .gamma-network { width: 100%; }
.gamma-promo-next { display: flex; gap: 1rem; margin: 1rem 0 0; padding: 0.2rem 0; font-size: 0.77rem; align-items: baseline; }
.gamma-promo-next span { color: var(--gamma-accent); font-size: 0.7rem; white-space: nowrap; }
.gamma-promo-next p { margin: 0; }

@media (max-width: 960px) {
  .gamma-hero-grid,
  .gamma-editorial,
  .gamma-state-grid,
  .gamma-promo-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .gamma-hero-grid { align-items: start; }
  .gamma-hero h1 { font-size: clamp(3rem, 8vw, 4.5rem); }
  .gamma-hero .lead { max-width: 58ch; }
  .gamma-network { max-width: 640px; width: 100%; }
  .gamma-editorial > div > p { max-width: 65ch; }
  .gamma-roadmap-content { margin-right: 3rem; }
  .gamma-doc-grid { gap: 2rem; }
}

@media (max-width: 640px) {
  .gamma-page .container,
  .gamma-promo .container { width: calc(100% - 2.5rem); }
  .gamma-hero { padding: 2.5rem 0 1.5rem; }
  .gamma-topline { align-items: flex-start; flex-direction: column; gap: 0.75rem; padding-bottom: 1.4rem; }
  .gamma-hero-grid { padding-top: 2.2rem; gap: 2rem; }
  .gamma-hero h1 { font-size: clamp(2.35rem, 9.7vw, 3.7rem); letter-spacing: -0.06em; }
  .gamma-hero .lead { font-size: 0.95rem; margin-top: 1.3rem; }
  .gamma-page .hero-actions,
  .gamma-promo .hero-actions { gap: 0.7rem; }
  .gamma-hero .hero-actions .btn { padding: 0.9rem 1rem; font-size: 0.86rem; }
  .gamma-figure-head { font-size: 0.59rem; padding: 1rem; }
  .gamma-network figcaption { padding: 0.9rem 1rem; font-size: 0.7rem; }
  .gamma-principles { grid-template-columns: 1fr; margin-top: 2rem; }
  .gamma-principles div,
  .gamma-principles div:first-child { padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--gamma-line); }
  .gamma-principles div:last-child { border-bottom: 0; }
  .gamma-principles dt { margin-bottom: 0.3rem; }
  .gamma-local-nav { gap: 0.8rem 1.5rem; }
  .gamma-section,
  .gamma-promo { padding: 3.5rem 0; }
  .gamma-section-kicker { margin-bottom: 1.4rem; }
  .gamma-section h2 { font-size: 2rem; }
  .gamma-layer { grid-template-columns: 60px 1fr; gap: 0.8rem; padding: 1.4rem 0; }
  .gamma-layer h3 { font-size: 1.15rem; }
  .gamma-layer p { font-size: 0.82rem; }
  .gamma-focus { padding: 1.5rem; }
  .gamma-evidence { grid-template-columns: 1fr 1fr; gap: 0.5rem; }
  .gamma-evidence div:last-child { grid-column: 1 / -1; }
  .gamma-evidence dt { font-size: 1.9rem; }
  .gamma-roadmap-intro,
  .gamma-doc-grid,
  .gamma-join-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .gamma-roadmap-item summary { grid-template-columns: 32px 1fr 16px; gap: 0.6rem; padding: 1.25rem 0; }
  .gamma-roadmap-name { font-size: 0.93rem; }
  .gamma-roadmap-status { grid-column: 2; grid-row: 2; text-align: left; font-size: 0.62rem; }
  .gamma-roadmap-toggle { grid-column: 3; grid-row: 1; }
  .gamma-roadmap-content { margin: 0 0.6rem 1.3rem 42px; font-size: 0.8rem; }
  .gamma-roadmap-current { padding-inline: 0.7rem; }
  .gamma-doc-link { grid-template-columns: 22px 1fr 20px; gap: 0.6rem; }
  .gamma-archive { padding: 1.5rem; }
  .gamma-join .hero-actions { justify-content: start; }
  .gamma-promo-next { flex-direction: column; gap: 0.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  .gamma-page [data-reveal],
  .gamma-promo [data-reveal] { opacity: 1; transform: none; }
}
