:root {
  --ink: #161616;
  --paper: #f6f6f3;
  --white: #ffffff;
  --muted: #686868;
  --muted-dark: #a6a6a2;
  --line: #d9d9d4;
  --line-dark: #41413f;
  --red: #e4002b;
  --red-dark: #b90023;
  --soft-red: #ffe5e9;
  --highlight-yellow: #ffe28a;
  --highlight-pink: #f7b4d7;
  --highlight-cyan: #9be8ee;
  --highlight-orange: #ffc078;
  --space: clamp(1.25rem, 4vw, 4rem);
  --shell: 1440px;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; overflow-x: hidden; background: var(--paper); font-size: 16px; line-height: 1.45; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.section-ink :focus-visible, .section-dark :focus-visible, .section-red :focus-visible { outline-color: #fff; }
.shell { width: min(var(--shell), calc(100% - (var(--space) * 2))); margin-inline: auto; }
.skip-link { position: fixed; z-index: 20; top: 0; left: 1rem; padding: .75rem 1rem; color: #fff; background: var(--red); transform: translateY(-130%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(1rem); }
.skip-link:focus-visible, .button-primary:focus-visible { outline-color: var(--ink); }

.site-header { position: sticky; z-index: 10; top: 0; background: rgba(246, 246, 243, .96); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.header-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; position: relative; }
.wordmark { display: inline-flex; align-items: center; gap: .7rem; flex-shrink: 0; font-size: .68rem; font-weight: 700; line-height: 1.05; letter-spacing: .08em; }
.wordmark-logo { display: block; width: 40px; height: 40px; object-fit: contain; }
.wordmark-copy { display: grid; gap: .22rem; }
.wordmark-owner { color: var(--red); font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }
.wordmark strong { font-size: .9rem; letter-spacing: -.02em; }
.wordmark-inverse .wordmark-owner { color: #fff; }
.header-actions { display: flex; align-items: center; gap: 1rem; }
.language-switcher { position: relative; }
.language-toggle { display: inline-flex; align-items: center; gap: .45rem; border: 0; padding: .45rem .1rem; color: var(--muted); background: transparent; cursor: pointer; font-size: .72rem; font-weight: 700; letter-spacing: .05em; }
.language-toggle:hover, .language-toggle:focus-visible { color: var(--red); }
.language-toggle span:last-child { color: var(--red); font-size: .9rem; line-height: 1; }
.language-menu { position: absolute; z-index: 12; top: calc(100% + .7rem); right: 0; display: grid; min-width: 188px; padding: .35rem; border: 1px solid var(--line); background: #fff; box-shadow: 8px 8px 0 rgba(22, 22, 22, .08); }
.language-menu[hidden] { display: none; }
.language-menu a { display: grid; grid-template-columns: 2.1rem 1fr; gap: .65rem; align-items: center; padding: .65rem .55rem; border-bottom: 1px solid var(--line); font-size: .72rem; }
.language-menu a:last-child { border-bottom: 0; }
.language-menu a:hover, .language-menu a:focus-visible, .language-menu a.is-active { color: var(--red); background: var(--soft-red); }
.language-menu a span { font-weight: 700; letter-spacing: .06em; }
.language-menu a strong { color: var(--ink); font-size: .74rem; font-weight: 700; }
.language-menu a:hover strong, .language-menu a:focus-visible strong, .language-menu a.is-active strong { color: var(--red); }
.language-menu a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--red); }
.locale-banner { margin-top: 1rem; padding: .7rem 1rem; border-left: 4px solid var(--red); color: var(--ink); background: var(--soft-red); font-size: .76rem; line-height: 1.5; }
.locale-banner[hidden] { display: none; }
.menu-toggle { display: none; border: 0; padding: .5rem 0; align-items: center; gap: .75rem; color: var(--ink); background: transparent; cursor: pointer; font-size: .8rem; }
.menu-icon { display: grid; gap: 5px; }
.menu-icon i { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .16s ease; }
.menu-toggle[aria-expanded="true"] .menu-icon { gap: 0; }
.menu-toggle[aria-expanded="true"] .menu-icon i:first-child { transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-icon i:last-child { transform: rotate(-45deg); }
.site-nav { display: flex; align-items: center; gap: clamp(.85rem, 1.6vw, 1.8rem); font-size: .76rem; font-weight: 700; }
.site-nav a { padding-block: .5rem; border-bottom: 1px solid transparent; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--red); border-color: var(--red); }

.site-search { display: grid; gap: .35rem; width: min(27rem, 33vw); margin-left: auto; }
.site-search > label { color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site-search-row { display: flex; gap: .45rem; }
.site-search input { min-width: 0; width: 100%; padding: .55rem .7rem; border: 1px solid var(--line-dark); border-radius: 0; color: var(--ink); background: #fff; font-size: .74rem; }
.site-search input::placeholder { color: #888; }
.site-search input:focus { outline: 3px solid var(--red); outline-offset: 2px; }
.site-search button, .search-clear { flex: 0 0 auto; padding: .55rem .75rem; border: 1px solid var(--ink); border-radius: 0; color: #fff; background: var(--ink); cursor: pointer; font-size: .7rem; font-weight: 700; }
.site-search button:hover, .site-search button:focus-visible, .search-clear:hover, .search-clear:focus-visible { color: #fff; background: var(--red); border-color: var(--red); }
.search-panel { margin-top: 1rem; padding: clamp(1.25rem, 3vw, 2.25rem); border-top: 5px solid var(--red); color: var(--ink); background: #fff; scroll-margin-top: 5.75rem; }
.search-panel[hidden] { display: none; }
.search-panel-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.search-panel-head h2 { margin: .35rem 0 0; font-size: clamp(1.8rem, 4vw, 3.4rem); letter-spacing: -.07em; line-height: .95; }
.search-clear { color: var(--ink); background: transparent; }
.search-status { margin: 1.25rem 0 0; color: var(--muted); font-size: .8rem; }
.search-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 1rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--line); }
.search-result { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.search-result-link { display: grid; min-height: 10rem; gap: .5rem; padding: 1rem; }
.search-result-link:hover, .search-result-link:focus-visible { background: #fffafb; }
.search-result-meta { color: var(--red); font-family: Consolas, 'Courier New', monospace; font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.search-result-link strong { font-size: 1rem; letter-spacing: -.03em; line-height: 1.1; }
.search-result-snippet { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .74rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.search-result-fallback { align-self: end; color: var(--red-dark); font-size: .65rem; line-height: 1.35; }

.hero { min-height: min(820px, calc(100vh - 72px)); padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: 2rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); grid-template-rows: auto minmax(0, 1fr) auto; column-gap: clamp(2rem, 7vw, 7rem); }
.hero-index { grid-column: 1 / -1; display: flex; gap: .75rem; color: var(--red); font-size: .7rem; font-weight: 700; letter-spacing: .08em; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.hero-copy { grid-column: 1; align-self: center; }
.eyebrow { margin: 0 0 1rem; color: var(--red); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero h1 { max-width: 780px; margin: 0 0 .85rem; font-size: clamp(3.5rem, 6vw, 6.25rem); font-weight: 700; letter-spacing: -.09em; line-height: .9; }
.hero-lede { max-width: 600px; margin: 0 0 .7rem; color: #4d4d4d; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.5; }
.hero-scope { max-width: 600px; margin: 0 0 1rem; padding: .45rem 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); color: var(--ink); font-size: .72rem; font-weight: 700; line-height: 1.4; }
.hero-actions, .next-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 46px; padding: .8rem 1.05rem; border: 1px solid transparent; color: var(--ink); font-size: .78rem; font-weight: 700; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-primary { color: #fff; background: var(--red); }
.button-primary:hover, .button-primary:focus-visible { background: var(--red-dark); }
.button-light { color: var(--ink); background: #fff; }
.text-link, .section-link { display: inline-flex; align-items: center; gap: .6rem; padding-bottom: .2rem; border-bottom: 1px solid var(--red); font-size: .78rem; font-weight: 700; }
.text-link span:last-child, .section-link span:last-child { color: var(--red); }
a[data-locale-anchor-unavailable="true"] { min-width: 0; max-width: 100%; flex-wrap: wrap; white-space: normal; }
a[data-locale-anchor-unavailable="true"] [data-locale-anchor-note] { display: block; align-self: stretch; width: 100%; flex-basis: 100%; min-width: 0; max-width: 100%; margin-left: 0; color: var(--muted); font-size: .66rem; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.hero-route-decision { max-width: 680px; margin-top: 2rem; border-top: 3px solid var(--ink); border-bottom: 1px solid var(--line-dark); }
.hero-route-kicker { margin: .8rem 0; color: var(--red); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hero-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); }
.hero-route-option { display: grid; grid-template-columns: 1.7rem minmax(0, 1fr) auto; gap: .65rem; min-height: 9rem; padding: 1rem; border-right: 1px solid var(--line-dark); color: var(--ink); }
.hero-route-option:first-child { padding-left: 0; }
.hero-route-option:last-child { padding-right: 0; border-right: 0; }
.hero-route-option:hover, .hero-route-option:focus-visible { color: var(--red); background: #fff; }
.hero-route-index { color: var(--red); font: 700 .68rem/1.4 Consolas, 'Courier New', monospace; }
.hero-route-option strong { display: block; font-size: .88rem; letter-spacing: -.025em; line-height: 1.2; }
.hero-route-option small { display: block; margin-top: .55rem; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.hero-route-option b { align-self: end; color: var(--red); font-size: 1rem; }
.hero-route-boundary { margin: 0; padding: .7rem 0; border-top: 1px solid var(--line-dark); color: var(--muted); font-size: .66rem; line-height: 1.4; }
.hero-proof-card { grid-column: 2; align-self: center; min-width: 0; border: 1px solid var(--ink); color: var(--ink); background: #fff; }
.hero-proof-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; padding: .85rem 1rem; border-bottom: 1px solid var(--ink); color: var(--red); font-size: .62rem; font-weight: 800; letter-spacing: .08em; }
.hero-proof-status { flex: 0 0 auto; max-width: 11.5rem; color: var(--ink); font-size: .56rem; letter-spacing: .04em; line-height: 1.35; text-align: right; }
.hero-proof-card h2 { margin: 0; padding: 1rem 1rem .9rem; border-bottom: 4px solid var(--red); font-size: clamp(1.45rem, 2.4vw, 2rem); letter-spacing: -.06em; line-height: .98; }
.hero-proof-flow { display: grid; }
.hero-proof-step { padding: .75rem 1rem; border-bottom: 1px solid var(--line); }
.hero-proof-step > span { color: var(--red); font-size: .6rem; font-weight: 800; letter-spacing: .08em; }
.hero-proof-step p { margin: .45rem 0 0; color: #4d4d4d; font-size: .72rem; line-height: 1.5; }
.hero-proof-source { background: var(--ink); color: #fff; }
.hero-proof-source blockquote { margin: .5rem 0 0; font-size: .86rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.35; }
.hero-proof-flow ol { display: grid; gap: .3rem; margin: .45rem 0 0; padding-left: 1rem; color: #4d4d4d; font-size: .7rem; line-height: 1.4; }
.hero-proof-flow li::marker { color: var(--red); font-weight: 800; }
.hero-proof-receipt { border-bottom: 0; background: var(--soft-red); }
.hero-proof-receipt p { color: var(--ink); font-weight: 700; }
.hero-proof-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-top: 1px solid var(--ink); color: var(--ink); font-size: .72rem; font-weight: 700; }
.hero-proof-link span:last-child { color: var(--red); font-size: 1rem; }
.hero-proof-link:hover, .hero-proof-link:focus-visible { color: #fff; background: var(--ink); }
.language-menu a.is-fallback { align-items: baseline; }
.language-menu a [data-language-fallback] { grid-column: 2; color: var(--muted); font-size: .58rem; font-weight: 600; letter-spacing: .02em; line-height: 1.25; }
.hero-footer { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 1rem; margin-top: clamp(2rem, 4vw, 3.5rem); padding-top: 1rem; border-top: 1px solid var(--line); color: #6d6d6d; font-size: .7rem; }
.folio { color: var(--red); font-weight: 700; }

.section, .start-section { scroll-margin-top: 84px; }
.section { padding: clamp(5rem, 9vw, 9rem) 0; }
.section-light, .section-paper { background: var(--paper); }
.section-ink { color: #fff; background: var(--ink); }
.section-red { color: #fff; background: var(--red); }
.section-dark { color: #fff; background: #292929; }
.section-heading { margin-bottom: clamp(3rem, 6vw, 5.5rem); }
.heading-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 410px); gap: 2rem; align-items: end; }
.section-number { display: block; margin-bottom: 1rem; color: var(--red); font-size: .7rem; font-weight: 700; }
.heading-light .section-number, .section-red .section-number, .section-dark .section-number { color: #fff; }
.section h2 { max-width: 850px; margin: 0; font-size: clamp(2.7rem, 5.5vw, 6rem); letter-spacing: -.085em; line-height: .91; }
.section-intro { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.7; }
.data-warning { margin: -2rem 0 2rem; padding: .8rem 1rem; border-left: 4px solid var(--red); color: var(--ink); background: var(--soft-red); font-size: .8rem; line-height: 1.5; }
.heading-light .section-intro, .section-red .section-intro, .section-dark .section-intro { color: var(--muted-dark); }

.problem-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.problem-card { display: flex; min-width: 0; min-height: 270px; flex-direction: column; padding: 1.35rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; transition: transform .2s ease, background .2s ease; }
.problem-card:hover, .problem-card:focus-visible { background: #fffafb; transform: translateY(-4px); }
.card-number { color: var(--red); font-size: .72rem; font-weight: 700; }
.problem-card strong { max-width: 250px; margin-top: 4rem; font-size: 1.1rem; letter-spacing: -.03em; line-height: 1.05; }
.problem-card p { margin: .75rem 0 0; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.card-link { margin-top: auto; padding-top: 1.1rem; border-top: 1px solid var(--line); color: var(--red); font-size: .72rem; font-weight: 700; }
.problem-card-practice { color: #fff; background: var(--ink); }
.problem-card-practice:hover, .problem-card-practice:focus-visible { background: #242424; }
.problem-card-practice p { color: #bcbcbc; }
.problem-card-practice .card-link { border-top-color: #505050; }

/* Swiss editorial deck: the prompt is the artefact. The six-field panel keeps
   the boundary readable in the page instead of shrinking a teaching board. */
.everyday-prompt-deck { margin: 0 0 clamp(3rem, 6vw, 5rem); scroll-margin-top: 6rem; border-top: 5px solid var(--ink); }
.everyday-prompt-head { display: grid; grid-template-columns: minmax(0, .85fr) minmax(260px, 1.15fr); gap: clamp(1.5rem, 5vw, 5rem); padding: clamp(1.4rem, 3vw, 2.6rem) 0; border-bottom: 1px solid var(--ink); }
.everyday-prompt-head h3 { max-width: 680px; margin: 0; font-size: clamp(1.7rem, 3.5vw, 3.5rem); letter-spacing: -.075em; line-height: .96; }
.everyday-prompt-head > div > p:last-child { max-width: 620px; margin: 1rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.prompt-contract-panel { align-self: end; border: 1px solid var(--ink); background: #fff; }
.prompt-contract-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border-bottom: 1px solid var(--ink); }
.prompt-contract-kicker { margin: 0 0 .45rem; color: var(--red); font: 700 .62rem/1 Consolas, 'Courier New', monospace; letter-spacing: .07em; text-transform: uppercase; }
.prompt-contract-head h4 { margin: 0; font-size: 1rem; letter-spacing: -.035em; line-height: 1.1; }
.prompt-contract-head .text-link { flex: 0 0 auto; font-size: .68rem; }
.prompt-contract-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--ink); }
.prompt-contract-grid li { display: grid; grid-template-columns: 1.55rem minmax(0, 1fr); grid-template-rows: auto auto; gap: .18rem .45rem; min-width: 0; min-height: 88px; padding: .7rem; background: #fff; }
.prompt-contract-grid b { grid-row: 1 / -1; color: var(--red); font: 700 .6rem/1.2 Consolas, 'Courier New', monospace; }
.prompt-contract-grid strong { font-size: .71rem; line-height: 1.2; }
.prompt-contract-grid span { color: var(--muted); font-size: .63rem; line-height: 1.35; }
.everyday-prompt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--ink); }
.everyday-prompt-card { min-width: 0; padding: clamp(1.2rem, 2.5vw, 2.25rem); color: var(--ink); background: #fff; }
.everyday-prompt-card + .everyday-prompt-card { border-left: 1px solid var(--ink); }
.everyday-prompt-card-ink { color: #fff; background: var(--ink); }
.everyday-prompt-card-head { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid currentColor; color: var(--red); font: 700 .64rem/1.35 Consolas, 'Courier New', monospace; letter-spacing: .055em; }
.everyday-prompt-card-head small { max-width: 12rem; color: currentColor; font: inherit; text-align: right; opacity: .72; }
.everyday-prompt-card h4 { max-width: 520px; margin: clamp(1.6rem, 4vw, 4rem) 0 .8rem; font-size: clamp(1.55rem, 2.6vw, 2.55rem); letter-spacing: -.065em; line-height: .96; }
.everyday-prompt-card > p:not(.everyday-prompt-status) { max-width: 550px; margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.everyday-prompt-card-ink > p:not(.everyday-prompt-status) { color: #c2c2bd; }
.everyday-prompt-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.everyday-prompt-steps li { display: grid; grid-template-columns: 1.3rem minmax(0, 1fr); gap: .45rem; align-items: start; min-width: 0; font-size: .72rem; line-height: 1.45; }
.everyday-prompt-steps b { display: grid; place-items: center; width: 1.25rem; height: 1.25rem; color: #fff; background: var(--ink); font: 700 .62rem/1 Consolas, 'Courier New', monospace; }
.everyday-prompt-steps-inverse b { color: #fff; background: var(--red); }
.everyday-prompt-actions { display: flex; align-items: center; gap: 1rem 1.4rem; margin: 1.35rem 0; flex-wrap: wrap; }
.everyday-prompt-actions .button { cursor: pointer; }
.everyday-prompt-card-ink .text-link { color: #fff; }
.everyday-prompt-card pre { min-height: 20rem; margin: 0; padding: 1rem; overflow: auto; border: 1px solid var(--line-dark); color: var(--ink); background: var(--paper); font: .72rem/1.58 Consolas, 'Courier New', monospace; white-space: pre-wrap; }
.everyday-prompt-card pre code { font: inherit; }
.everyday-prompt-status { min-height: 2.8em; margin: 1rem 0 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.everyday-prompt-card-ink .everyday-prompt-status { color: #c2c2bd; }
.everyday-prompt-card-skill { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); column-gap: clamp(1.5rem, 5vw, 5rem); border-top: 4px solid var(--red); border-left: 0; background: #fff; }
.everyday-prompt-card-skill .everyday-prompt-card-head { grid-column: 1 / -1; }
.compact-prompt-copy { min-width: 0; }
.compact-prompt-copy h4 { max-width: 560px; }
.compact-prompt-artifact { min-width: 0; align-self: end; }
.compact-prompt-artifact .everyday-prompt-actions { margin-top: 0; }
.compact-prompt-details { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.compact-prompt-details summary { padding: .8rem 0; cursor: pointer; font-size: .74rem; font-weight: 700; }
.compact-prompt-details[open] summary { border-bottom: 1px solid var(--ink); }
.compact-prompt-details pre { min-height: 0; max-height: 19rem; margin: 0; border: 0; }

.first-30-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.task-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.task-steps li { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line-dark); }
.task-steps li > span, .update-flow > div > span { color: var(--red); font-size: .75rem; font-weight: 700; }
.task-steps strong { font-size: 1.1rem; }
.task-steps p { max-width: 590px; margin: .45rem 0 0; color: #b4b4b0; font-size: .84rem; line-height: 1.6; }
.check-card { padding: 1.4rem; color: var(--ink); background: #fff; }
.check-card-callout { margin: 0 0 1.25rem; color: var(--ink); font-size: .88rem; line-height: 1.55; }
.check-card-head { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; border-bottom: 1px solid var(--line); }
.check-card .eyebrow { margin-bottom: .8rem; }
.time-chip { color: var(--red); font-size: .72rem; font-weight: 700; }
.contract-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 1rem; margin-bottom: 1.6rem; }
.contract-grid div { display: grid; gap: .3rem; padding: .8rem 0; border-bottom: 1px solid var(--line); }
.contract-grid span { color: var(--red); font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.contract-grid strong { font-size: .78rem; line-height: 1.35; }

.protocol-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 10vw, 11rem); align-items: start; }
.protocol-layout .section-intro { max-width: 560px; margin-top: 1.5rem; }
.protocol-note { padding-top: 3rem; border-top: 8px solid var(--red); }
.protocol-note > p { max-width: 580px; margin: 0; font-size: clamp(1.2rem, 2vw, 1.8rem); letter-spacing: -.04em; line-height: 1.35; }
.protocol-rule { display: flex; align-items: center; gap: .7rem; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--red); font-size: .75rem; font-weight: 700; }
.protocol-rule b { color: var(--ink); }

.path-layout { display: grid; grid-template-columns: minmax(250px, 390px) 1fr; border-top: 1px solid var(--line); }
.level-list { border-right: 1px solid var(--line); }
.level-tab { display: grid; grid-template-columns: 42px 1fr; gap: .15rem .7rem; width: 100%; padding: 1rem 1.2rem; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.level-tab span { grid-row: 1 / 3; color: var(--red); font-size: .8rem; font-weight: 700; }
.level-tab strong { font-size: .95rem; }
.level-tab small { color: #777; font-size: .75rem; }
.level-tab:hover, .level-tab.is-active { background: #fff; }
.level-tab.is-active { box-shadow: inset 5px 0 var(--red); }
.level-panel { display: flex; min-height: 390px; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 5rem); background: #fff; }
.panel-topline { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-kicker, .panel-evidence > span, .panel-meta > span, .path-card-heading span { color: var(--red); font-size: .7rem; font-weight: 700; letter-spacing: .06em; }
.panel-status { padding: .25rem .45rem; color: var(--red); background: var(--soft-red); font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.level-panel h3 { max-width: 700px; margin: .8rem 0 1.2rem; font-size: clamp(2.2rem, 4vw, 4.5rem); letter-spacing: -.08em; line-height: .95; }
.level-panel p { max-width: 600px; margin: 0; color: #555; line-height: 1.7; }
.path-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 2rem; border: 1px solid var(--line); background: var(--line); }
.path-contract-card { min-height: 120px; padding: 1rem; background: #fff; }
.path-contract-card h4, .path-evidence h4, .path-boundary h4 { margin: 0; color: var(--ink); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.path-contract-card ul, .path-evidence ul { display: grid; gap: .45rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.path-contract-card li { color: #555; font-size: .75rem; line-height: 1.4; }
.path-contract-card a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .2em; }
.path-contract-card a:hover, .path-contract-card a:focus-visible { color: var(--red); }
.path-contract-card .lab-use { display: grid; gap: .55rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.path-contract-card .lab-use:first-child { padding-top: 0; border-top: 0; }
.lab-use > div { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.lab-use > div span { flex: 0 0 auto; padding: .12rem .32rem; border: 1px solid var(--red); color: var(--red); font-family: Consolas, 'Courier New', monospace; font-size: .56rem; letter-spacing: .04em; text-transform: uppercase; }
.lab-use dl { display: grid; grid-template-columns: max-content 1fr; gap: .25rem .55rem; margin: 0; }
.lab-use dt { color: #777; font-family: Consolas, 'Courier New', monospace; font-size: .56rem; letter-spacing: .04em; text-transform: uppercase; }
.lab-use dd { margin: 0; color: #555; font-size: .66rem; line-height: 1.45; }
.path-eval-summary { margin: .8rem 0 0 !important; color: var(--red) !important; font-size: .7rem !important; font-weight: 700; }
.path-evaluation-list { max-height: 86px; overflow: auto; }
.path-evaluation-list li { color: #777; font-family: Consolas, 'Courier New', monospace; font-size: .64rem; }
.path-evidence { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.path-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.path-evidence li { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: .7rem; align-items: baseline; padding-bottom: .4rem; border-bottom: 1px solid var(--line); font-size: .75rem; line-height: 1.45; }
.path-evidence li b { color: var(--red); font-size: .68rem; }
.path-evidence li span { color: #555; }
.path-boundary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 1.25rem; background: var(--line); }
.path-boundary { min-height: 122px; padding: 1rem; background: var(--paper); }
.path-boundary p { margin-top: .65rem; font-size: .76rem; line-height: 1.55; }
.path-boundary-stop { background: #fff4f5; }
.path-boundary-stop h4 { color: var(--red); }
.panel-meta { display: grid; gap: .35rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .8rem; }
.panel-meta a { font-weight: 700; }
.panel-meta a span:last-child { margin-left: .5rem; color: var(--red); }
.panel-next { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; }
.panel-lab-link { display: inline-flex; gap: .5rem; align-items: center; padding-bottom: .2rem; border-bottom: 1px solid var(--red); color: var(--ink); font-size: .75rem; font-weight: 700; }
.panel-lab-link span:last-child { color: var(--red); }

.route-controls { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .9rem; }
.filter-button { padding: .6rem .75rem; border: 1px solid #555; color: #bbb; background: transparent; cursor: pointer; font-size: .72rem; }
.filter-button span:last-child { margin-left: .35rem; color: var(--red); }
.filter-button:hover, .filter-button.is-active { color: #fff; background: var(--red); border-color: var(--red); }
.filter-button.is-active span:last-child { color: #fff; }
.route-status { margin: 0 0 1.5rem; color: #bdbdb8; font-size: .72rem; line-height: 1.5; }
.chapter-list { border-top: 1px solid #555; }
.chapter-group { border-bottom: 1px solid #555; }
.chapter-group[hidden] { display: none; }
.chapter-group summary { display: grid; grid-template-columns: 40px minmax(170px, 1fr) minmax(190px, 1fr) 35px; gap: 1rem; align-items: center; padding: 1.25rem 0; list-style: none; cursor: pointer; }
.chapter-group summary::-webkit-details-marker { display: none; }
.chapter-group summary > span { color: var(--red); font-size: 1.6rem; font-weight: 700; }
.chapter-group summary strong { font-size: 1rem; }
.chapter-group summary small { color: #9c9c9c; }
.chapter-group summary b { color: var(--red); text-align: right; }
.chapter-items { display: grid; gap: .2rem; padding: 0 0 1.2rem 40px; }
.chapter-items a { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: .7rem; align-items: baseline; padding: .55rem 0; color: #c5c5c5; font-size: .82rem; }
.chapter-items a:hover, .chapter-items a:focus-visible { color: #fff; }
.chapter-items a > span:first-child { color: #777; }
.chapter-items a i { color: #888; font-size: .68rem; font-style: normal; }
.chapter-items a i::before { display: inline-block; width: 6px; height: 6px; margin-right: .4rem; background: #666; content: ''; }
.chapter-items a:nth-child(-n + 3) i { color: #fff; }
.chapter-items a:nth-child(-n + 3) i::before { background: var(--red); }

.lab-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.lab-card { display: flex; min-height: 220px; flex-direction: column; padding: 1.5rem; background: #fff; transition: transform .2s ease, background .2s ease; }
.lab-card:hover, .lab-card:focus-visible { background: #fffafb; transform: translateY(-4px); }
.lab-feature { grid-row: span 2; min-height: 441px; color: #fff; background: var(--ink); }
.lab-highlight { border-top: 5px solid var(--red); }
.lab-featured { display: inline-block; margin-top: .45rem; color: var(--red); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lab-id { color: var(--red); font-size: .68rem; font-weight: 700; letter-spacing: .08em; }
.lab-card h3 { max-width: 300px; margin: 1rem 0; font-size: clamp(1.4rem, 2.6vw, 2.5rem); letter-spacing: -.06em; line-height: 1; }
.lab-card p { margin: 0; color: #666; font-size: .82rem; line-height: 1.65; }
.lab-feature p { max-width: 380px; color: #bbb; font-size: 1rem; }
.lab-footer { display: block; margin-top: auto; padding-top: 1rem; border-top: 1px solid currentColor; color: #777; font-size: .68rem; }
.lab-feature .lab-footer { color: #aaa; }
.lab-footer b { float: right; color: var(--red); font-size: 1.1rem; }

.skill-starter { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 2fr); margin-bottom: 2rem; border: 1px solid rgba(255, 255, 255, .65); background: #fff; }
.skill-starter-heading { padding: 1.5rem; color: var(--ink); border-right: 1px solid var(--ink); }
.skill-starter-heading .eyebrow { color: var(--red); }
.skill-starter-heading h3 { max-width: 330px; margin: .6rem 0; font-size: clamp(1.45rem, 2.6vw, 2.4rem); letter-spacing: -.055em; line-height: 1; }
.skill-starter-heading > p:last-child { max-width: 350px; margin: 1rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.skill-starter-grid { display: grid; grid-template-columns: 1fr 1fr; }
.skill-starter-grid a { display: grid; grid-template-columns: 2rem 1fr; gap: .45rem .8rem; min-height: 150px; padding: 1.25rem; color: var(--ink); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper); transition: color .15s ease, background .15s ease; }
.skill-starter-grid a:nth-child(even) { border-right: 0; }
.skill-starter-grid a:last-child { grid-column: 1 / -1; min-height: 120px; border-right: 0; border-bottom: 0; }
.skill-starter-grid a:hover, .skill-starter-grid a:focus-visible { color: #fff; background: var(--ink); }
.skill-starter-grid span { color: var(--red); font-size: .72rem; font-weight: 800; }
.skill-starter-grid strong { font-size: .95rem; line-height: 1.25; }
.skill-starter-grid small { grid-column: 2; display: grid; gap: .3rem; font-size: .7rem; line-height: 1.45; }
.skill-starter-grid small b { color: var(--red); }
.skill-starter-grid small i { font-style: normal; opacity: .72; }
.skill-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .45); }
.skill-catalog { margin-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .65); }
.skill-catalog > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; color: #fff; cursor: pointer; font-size: .78rem; font-weight: 800; list-style: none; }
.skill-catalog > summary::-webkit-details-marker { display: none; }
.skill-catalog > summary::after { content: '+'; color: var(--red); font-size: 1.25rem; line-height: 1; }
.skill-catalog[open] > summary { border-bottom: 1px solid rgba(255, 255, 255, .35); }
.skill-catalog[open] > summary::after { content: '−'; }
.skill-catalog > summary:hover, .skill-catalog > summary:focus-visible { color: var(--red); }
.skill-catalog > summary:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.skill-catalog-intro { max-width: 700px; margin: .9rem 0 1rem; color: rgba(255, 255, 255, .78); font-size: .75rem; line-height: 1.55; }
.skill-grid a { position: relative; display: flex; min-height: 180px; flex-direction: column; padding: 1.3rem; color: #fff; background: var(--red); transition: background .2s ease; }
.skill-grid .skill-boundary { display: flex; min-height: 180px; flex-direction: column; padding: 1.3rem; color: var(--ink); background: var(--paper); }
.skill-grid a:hover, .skill-grid a:focus-visible { background: var(--ink); }
.skill-grid span { opacity: .65; font-size: .7rem; }
.skill-grid strong { margin-top: 2rem; font-size: 1rem; letter-spacing: -.03em; }
.skill-grid small { max-width: 220px; margin-top: .45rem; opacity: .8; font-size: .74rem; line-height: 1.5; }
.skill-grid .skill-boundary strong { margin-top: 2rem; }
.skill-grid b { position: absolute; right: 1.2rem; bottom: 1rem; font-size: 1.2rem; }
.skill-footnote { max-width: 740px; margin: 1.5rem 0 0; color: rgba(255, 255, 255, .84); font-size: .75rem; }

.trouble-list { border-top: 1px solid var(--line-dark); }
.trouble-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(180px, .4fr); gap: 1.2rem; align-items: start; padding: 1.3rem 0; border-bottom: 1px solid var(--line-dark); }
.trouble-row > span { color: var(--red); font-size: .75rem; font-weight: 700; }
.trouble-row strong { font-size: 1rem; }
.trouble-row p { max-width: 600px; margin: .35rem 0 0; color: #aaa; font-size: .8rem; line-height: 1.6; }
.trouble-row a { color: #fff; font-size: .75rem; font-weight: 700; }
.trouble-row a:hover, .trouble-row a:focus-visible { color: var(--red); }

.update-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .85fr); gap: clamp(2rem, 8vw, 8rem); }
.update-flow { border-top: 1px solid var(--line); }
.update-flow > div { display: grid; grid-template-columns: 42px 1fr; gap: .1rem 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.update-flow strong { font-size: 1rem; }
.update-flow p { grid-column: 2; margin: .35rem 0 0; color: var(--muted); font-size: .8rem; }
.update-links { border-top: 1px solid var(--ink); }
.update-links a { position: relative; display: grid; gap: .25rem; padding: 1rem 2rem 1rem 0; border-bottom: 1px solid var(--line); }
.update-links strong { font-size: .92rem; }
.update-links span { color: var(--muted); font-size: .78rem; }
.update-links b { position: absolute; right: 0; top: 1rem; color: var(--red); }
.update-links a:hover strong, .update-links a:focus-visible strong { color: var(--red); }

.status-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.status-card { min-height: 180px; padding: 1.3rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.status-dot { display: block; width: 10px; height: 10px; margin-bottom: 1.5rem; }
.dot-draft { background: #8f8f8f; }
.dot-candidate { background: var(--red); }
.dot-verified { border: 1px solid var(--red); }
.dot-production { background: var(--ink); }
.status-card strong { font-size: 1rem; }
.status-card p { margin: .8rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.6; }
.source-note { margin: 1.5rem 0 0; color: #777; font-size: .72rem; }
.source-note a { color: var(--red); text-decoration: underline; }

.start-section { padding: clamp(5rem, 9vw, 9rem) 0; border-top: 8px solid var(--red); background: var(--paper); }
.next-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 10vw, 11rem); align-items: end; }
.start-section h2 { max-width: 800px; margin: 0; font-size: clamp(3rem, 6.5vw, 7rem); letter-spacing: -.09em; line-height: .9; }
.next-body { max-width: 540px; margin: 1.5rem 0 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.next-actions { align-self: center; }
.site-footer { padding: 2rem 0; color: #fff; background: var(--ink); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.footer-inner > p { margin: 0; color: #aaa; font-size: .75rem; }
.footer-meta { color: #777; font-size: .68rem; }

/* The emphasis is semantic HTML so it survives GitHub Markdown, the reader,
   and future renderers. Keep it sparse: mark decisions, boundaries, and
   evidence-bearing sentences rather than decorating every paragraph. */
.highlight-text { position: relative; z-index: 0; display: inline; padding: .05em .13em .08em; color: var(--ink); background: transparent; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.highlight-text::before { position: absolute; z-index: -1; top: .17em; right: -.08em; bottom: .08em; left: -.08em; content: ''; background: var(--highlight-lime); transform: skewX(-5deg) rotate(-.6deg); }
.highlight-yellow::before { background: var(--highlight-yellow); }
.highlight-pink::before { background: var(--highlight-pink); }
.highlight-cyan::before { background: var(--highlight-cyan); }
.highlight-orange::before { background: var(--highlight-orange); }

@media (forced-colors: active) {
  .highlight-text { text-decoration: underline 3px; text-decoration-color: Highlight; text-decoration-skip-ink: none; }
  .highlight-text::before { display: none; }
  .language-menu a[aria-current="page"] { box-shadow: inset 3px 0 0 Highlight; }
}

@media (max-width: 980px) {
  .site-nav { gap: .55rem; font-size: .68rem; }
  .problem-grid { grid-template-columns: repeat(2, 1fr); }
  .problem-card { min-height: 230px; }
  .problem-card strong { margin-top: 2.5rem; }
  .skill-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1040px) {
  .site-search { width: min(24rem, 40vw); }
  .site-nav { display: none; position: absolute; top: 72px; right: 0; left: 0; padding: 1rem var(--space) 1.5rem; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); background: var(--paper); }
  .site-nav.is-open { display: flex; }
  .site-nav a { padding: .8rem 0; border-bottom: 1px solid var(--line); }
  .menu-toggle { display: inline-flex; }
}

@media (max-width: 800px) {
  .site-search { order: 3; width: 100%; margin: 1rem 0 0; }
  .header-inner { flex-wrap: wrap; padding-block: .7rem; }
  /* The expanded search bar makes this header tall on a phone. Keeping that
     tall header sticky cuts the reading viewport roughly in half, especially
     in the long Skills directory. The menu and search remain first in normal
     document order; anchors no longer need to reserve sticky-header space. */
  .site-header { position: static; }
  .search-panel { scroll-margin-top: 1rem; }
  .search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { min-height: auto; grid-template-columns: 1fr; gap: 3rem; padding-top: 4rem; }
  .hero-index { margin-bottom: 2rem; }
  .hero-copy, .hero-proof-card { grid-column: 1; }
  .hero h1 { font-size: clamp(3.5rem, 15vw, 6.5rem); }
  .hero-proof-card { max-width: 620px; }
  .hero-footer { margin-top: 3rem; }
  .heading-split, .protocol-layout, .first-30-layout, .update-layout, .next-layout { grid-template-columns: 1fr; gap: 2rem; }
  .path-layout { grid-template-columns: 1fr; }
  .level-list { border-right: 0; }
  .level-panel { min-height: 320px; padding: 2rem; }
  .path-contract-grid, .path-boundary-grid { grid-template-columns: 1fr; }
  .chapter-group summary { grid-template-columns: 32px 1fr 30px; }
  .chapter-group summary small { grid-column: 2; }
  .chapter-items { padding-left: 32px; }
  .chapter-items a { grid-template-columns: 25px minmax(0, 1fr); }
  .chapter-items a i { grid-column: 2; }
  .lab-grid { grid-template-columns: 1fr 1fr; }
  .lab-feature { grid-column: span 2; grid-row: auto; min-height: 320px; }
  .skill-grid { grid-template-columns: repeat(2, 1fr); }
  .status-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 480px) {
  :root { --space: 1.25rem; }
  .header-inner { min-height: 64px; }
  .language-toggle { font-size: .68rem; }
  .search-results { grid-template-columns: 1fr; }
  .search-panel-head { align-items: stretch; flex-direction: column; }
  .site-nav { top: 64px; }
  .hero { padding-top: 3rem; }
  .hero h1 { max-width: 100%; font-size: clamp(2.8rem, 13.5vw, 4rem); letter-spacing: -.065em; overflow-wrap: anywhere; }
  .hero-actions, .next-actions { align-items: stretch; flex-direction: column; gap: .8rem; }
  .button, .text-link { width: 100%; }
  .button { justify-content: space-between; }
  .hero-route-decision { margin-top: 1.5rem; }
  .hero-route-grid { grid-template-columns: 1fr; }
  .hero-route-option, .hero-route-option:first-child, .hero-route-option:last-child { min-height: 0; padding: .9rem 0; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .hero-route-option:last-child { border-bottom: 0; }
  .hero-footer { flex-direction: column; }
  .problem-grid, .contract-grid, .lab-grid, .skill-grid, .status-grid { grid-template-columns: 1fr; }
  .problem-card { min-height: 210px; }
  .problem-card strong { margin-top: 2rem; }
  .lab-feature { grid-column: auto; min-height: 300px; }
  .lab-highlight { grid-column: auto; }
  .skill-grid a { min-height: 145px; }
  .status-card { min-height: 145px; }
  .panel-topline, .path-card-heading { align-items: flex-start; flex-direction: column; }
  .panel-next { grid-template-columns: 1fr; }
  .protocol-rule { flex-wrap: wrap; }
  .trouble-row { grid-template-columns: 32px 1fr; }
  .trouble-row a { grid-column: 2; }
}

/* On a phone the homepage is a route chooser, not a second copy of every
   registry. The canonical indexes remain one tap away and retain the complete
   evidence/status record. */
@media (max-width: 480px) {
  .section { padding: 4.25rem 0; }
  .section-heading { margin-bottom: 2.5rem; }
  .section h2 { font-size: clamp(2.55rem, 13vw, 3.4rem); letter-spacing: -.07em; }
  .repository-strip .brief-item:nth-child(n + 3),
  .file-map-panel,
  .locale-panel,
  .research-panel,
  .lab-grid .lab-card:nth-child(n + 3) { display: none; }
  .index-layout { border-top: 4px solid var(--ink); }
  .visual-case-links { grid-template-columns: 1fr 1fr; }
  .visual-case-card { min-height: 10rem; }
  .level-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-right: 0; border-bottom: 1px solid var(--line); }
  .level-tab { min-height: 4.5rem; padding: .7rem .45rem; border-right: 1px solid var(--line); }
  .level-tab strong, .level-tab small { display: none; }
  .level-tab span { font-size: .82rem; }
  .starter-contract pre { max-height: 12rem; }
  .lab-grid, .skill-grid { border-bottom: 4px solid currentColor; }
  .skill-index-link { color: #fff; border-color: rgba(255,255,255,.65); }
  .problem-card { min-height: 0; padding: 1rem; }
  .problem-card strong { margin-top: .75rem; font-size: 1rem; }
  .problem-card p { display: none; }
  .problem-card .card-link { margin-top: 1rem; padding-top: .65rem; }
  .task-steps { display: none; }
  .first-30-layout { display: block; }
  .contract-grid { grid-template-columns: 1fr 1fr; }
  .contract-grid > div:nth-child(n + 5) { display: none; }
  .path-contract-card:nth-child(n + 3), .path-evaluation-list { display: none; }
  .path-contract-grid { grid-template-columns: 1fr 1fr; }
  .update-flow { display: none; }
  .update-links a:nth-child(n + 3) { display: none; }
  .update-layout { display: block; }
  .status-grid { grid-template-columns: 1fr 1fr; }
  .status-card { min-height: 0; padding: 1rem; }
  .status-card p { margin-top: .75rem; }
}

.mobile-index-rail { display: none; }
.mobile-core-routes, .mobile-section-link { display: none; }
.mobile-contract-details > summary { display: none; }
@media (max-width: 480px) {
  .hero { min-height: auto; padding-bottom: 2.2rem; }
  .hero-index { margin-bottom: 1.4rem; }
  .hero-lede { margin-bottom: 1.35rem; }
  /* A phone reader should see one explicit action before needing to decode the
     three route cards below. The cards remain available for the fuller choice. */
  .hero-actions { display: flex; }
  .hero-brief, .hero-footer { display: none; }
  .hero-proof-card { margin-top: 1.2rem; }
  .hero-proof-card h2 { font-size: 1.45rem; }
  .hero-proof-status { max-width: 9.5rem; }
  /* The expanded route cards above already give a phone reader the condition,
     action, and boundary. A second abbreviated copy only repeats the choice. */
  .mobile-core-routes { display: none; }
  .mobile-core-routes a { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .65rem; align-items: baseline; padding: .72rem 0; border-bottom: 1px solid var(--ink); color: var(--ink); }
  .mobile-core-routes span, .mobile-core-routes b { color: var(--red); font-size: .72rem; }
  .mobile-core-routes strong { font-size: .8rem; line-height: 1.35; }
  .mobile-section-link { display: flex; margin-top: 1rem; }
  #start .problem-card:nth-child(2), #start .problem-card:nth-child(3), #start .problem-card:nth-child(4), #start .problem-card:nth-child(6), #start .problem-card:nth-child(7), #start .problem-card:nth-child(8) { display: none; }
  #project-map .index-panel-head, #project-map .index-panel-intro, #project-map .repository-strip, #project-map .index-layout, #project-map .research-panel { display: none; }
  #project-map .visual-case-panel { display: block; margin-top: 1.2rem; padding-top: 1rem; }
  #project-map .visual-case-lead { display: block; margin-bottom: 1rem; }
  #project-map .visual-case-lead .index-panel-head { display: flex; }
  #project-map .visual-case-lead .index-panel-intro { display: block; margin: .55rem 0; font-size: .78rem; line-height: 1.45; }
  #project-map .visual-case-links { grid-template-columns: 1fr; }
  #project-map .visual-case-links a { min-height: 0; padding: .75rem; }
  #first-30 .section-heading { margin-bottom: 1.4rem; }
  #first-30 .section-intro, #first-30 .check-card-callout { display: none; }
  #first-30 .check-card { padding: 1rem; }
  #first-30 .starter-contract { margin-top: 1.2rem; padding: 1rem; }
  .mobile-contract-details > summary { display: block; padding: .8rem 0; color: #fff; cursor: pointer; font-size: .75rem; font-weight: 700; }
  .mobile-contract-details:not([open]) pre { display: none; }
  .mobile-contract-details pre { max-height: 10rem; margin: .5rem 0; }
  .starter-progression { display: none; }
  #protocol { padding: 2.8rem 0; }
  #protocol h2 { font-size: 2rem; }
  #protocol .section-intro, #protocol .protocol-note > p { display: none; }
  #protocol .protocol-rule { margin-top: 1rem; padding: .8rem; }
  #path .section-heading { margin-bottom: 1.4rem; }
  #path .section-intro, .path-contract-grid, .path-evidence, .path-boundary-grid { display: none; }
  .level-panel { min-height: 0; padding: 1rem; }
  .level-panel h3 { margin: .8rem 0; font-size: 1.8rem; }
  .level-panel > p { margin-bottom: 1rem; }
  .panel-next { margin-top: 1rem; }
  #chapters .route-controls, #chapters .route-status { display: none; }
  #chapters .chapter-group summary { padding: .8rem 0; }
  #chapters .chapter-items { grid-template-columns: 1fr; }
  #labs .section-heading, #skills .section-heading { margin-bottom: 1.2rem; }
  #labs .section-intro, #skills .section-intro { display: none; }
  .skill-starter { grid-template-columns: 1fr; margin-bottom: 1rem; }
  .skill-starter-heading { padding: 1rem; border-right: 0; border-bottom: 1px solid var(--ink); }
  .skill-starter-heading h3 { margin-bottom: 0; font-size: 1.45rem; }
  .skill-starter-heading > p:last-child { display: none; }
  .skill-starter-grid { grid-template-columns: 1fr; }
  .skill-starter-grid a { min-height: 0; padding: .8rem; border-right: 0; }
  .skill-starter-grid a:nth-last-child(2) { border-bottom: 1px solid var(--ink); }
  .skill-starter-grid a small { font-size: .66rem; }
  .skill-catalog { margin-top: .9rem; }
  .skill-catalog > summary { padding: .8rem 0; font-size: .72rem; }
  .skill-catalog-intro { margin: .75rem 0; font-size: .68rem; }
  .lab-grid .lab-card, .skill-grid > a { min-height: 0; padding: .85rem; }
  .lab-grid .lab-card h3 { margin: .55rem 0; font-size: 1.2rem; }
  .lab-grid .lab-card p { display: none; }
  .skill-grid > a small { margin-top: .3rem; font-size: .68rem; line-height: 1.35; }
  .skill-grid > a strong { margin-top: .5rem; }
  .skill-boundary { display: none; }
  .skill-footnote { margin-top: .9rem; }
  #troubleshoot .section-heading { display: none; }
  #troubleshoot .trouble-row:nth-child(n + 3) { display: none; }
  .trouble-row { padding: .8rem 0; }
  .trouble-row p { display: none; }
  #updates { padding: 2.5rem 0; }
  #updates .section-heading { margin-bottom: 1rem; }
  #updates h2 { font-size: 2rem; }
  #updates .section-intro { display: none; }
  #updates .update-links a { padding: .75rem 0; }
  #status .section-heading { margin-bottom: 1rem; }
  #status .section-intro, #status .status-card p { display: none; }
  #status .status-grid { grid-template-columns: 1fr 1fr; }
  #status .status-card { min-height: 70px; }
  #status .status-dot { margin-bottom: .65rem; }
  #status .source-note { margin-top: 1rem; }
  .start-section { padding: 3rem 0; }
  .mobile-index-rail { display: grid; grid-template-columns: 1fr 1fr; margin: 1.5rem 0; border: 1px solid var(--ink); }
  .mobile-index-rail a { display: grid; grid-template-columns: 2.5rem 1fr; align-items: baseline; gap: .5rem; padding: .9rem; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); color: var(--ink); }
  .mobile-index-rail a:nth-child(even) { border-right: 0; }
  .mobile-index-rail a:nth-last-child(-n + 2) { border-bottom: 0; }
  .mobile-index-rail strong { color: var(--red); font-size: 1.15rem; }
  .mobile-index-rail span { font-size: .72rem; font-weight: 700; }
}

.starter-contract { margin-top: 2rem; padding: clamp(1.2rem, 3vw, 2rem); scroll-margin-top: 10rem; border: 1px solid #555; color: #fff; background: #151515; }
.starter-contract-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.starter-contract h3 { margin: .35rem 0 0; font-size: clamp(1.6rem, 3vw, 2.8rem); letter-spacing: -.06em; }
.starter-contract > p { max-width: 760px; color: #bbb; line-height: 1.6; }
.starter-contract pre { margin: 0; padding: 1.2rem; overflow: auto; white-space: pre-wrap; color: #f3f3ef; background: #090909; font: .76rem/1.6 Consolas, 'Courier New', monospace; }
.starter-contract-status { min-height: 1.5em; }
.first-win-sequence { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); margin: 1.5rem 0; border: 1px solid #555; }
.first-win-sequence > div { min-width: 0; padding: 1.2rem; border-right: 1px solid #555; border-bottom: 1px solid #555; }
.first-win-sequence > div:nth-child(even) { border-right: 0; }
.first-win-sequence > div:nth-last-child(-n + 2) { border-bottom: 0; }
.first-win-sequence span, .first-win-receipt > span { color: var(--red); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.first-win-source blockquote { margin: 1rem 0 0; font-size: clamp(1.1rem, 2vw, 1.6rem); letter-spacing: -.025em; line-height: 1.35; }
.first-win-label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.first-win-checks ol { display: grid; gap: .8rem; margin: 1rem 0 0; padding-left: 1.25rem; color: #ddd; line-height: 1.45; }
.first-win-checks fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.first-win-checks legend { padding: 0; }
.first-win-choice-group { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.first-win-choice-group label { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; padding: .45rem .65rem; border: 1px solid #777; color: #fff; cursor: pointer; }
.first-win-choice-group input { width: 1.1rem; height: 1.1rem; accent-color: var(--red); }
.first-win-checks label { display: grid; gap: .45rem; }
.first-win-checks select { min-height: 2.5rem; border: 1px solid #777; padding: 0 .65rem; color: #fff; background: #090909; font: inherit; }
.first-win-checks select:focus-visible { outline-color: var(--red); }
.first-win-check-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.first-win-check-meta label { color: #bbb; font-size: .76rem; }
.first-win-check-gate, .first-win-record-status { min-height: 1.45em; margin: 1rem 0 0; color: #bbb; font-size: .76rem; line-height: 1.5; }
.first-win-observation-receipt { min-height: 10rem; margin-top: 1rem !important; border: 1px solid #444; color: #d7d7d1; background: #090909; font-size: .72rem !important; }
.first-win-check-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.first-win-check-actions .button:disabled { cursor: not-allowed; opacity: .5; }
.first-win-rescue pre { border: 1px solid #444; }
.first-win-comparison { grid-column: 1 / -1; border-right: 0 !important; }
.first-win-comparison p { margin: 1rem 0 0; color: #bbb; font-size: .8rem; }
.first-win-comparison blockquote { margin: 1rem 0 0; padding-left: .9rem; border-left: 2px solid var(--red); color: #fff; font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.45; }
.first-win-receipt { display: grid; grid-template-columns: minmax(150px, .25fr) 1fr; gap: 1rem; margin-top: 1.4rem; padding: 1rem 0; border-top: 1px solid #555; border-bottom: 1px solid #555; }
.first-win-receipt p { margin: 0; color: #bbb; font-size: .78rem; line-height: 1.5; }
.starter-progression { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 1.4rem; border-top: 1px solid #555; }
.starter-progression a { display: grid; grid-template-columns: 2rem 1fr; gap: .6rem; padding: 1rem .8rem 1rem 0; border-right: 1px solid #555; color: #fff; font-size: .76rem; }
.starter-progression a:last-child { border-right: 0; padding-left: .8rem; }
.starter-progression a:nth-child(2) { padding-left: .8rem; }
.starter-progression span { color: var(--red); font-weight: 700; }
.starter-progression a:hover strong, .starter-progression a:focus-visible strong { color: var(--red); }

@media (max-width: 800px) {
  .first-win-sequence { grid-template-columns: 1fr; }
  .first-win-sequence > div, .first-win-sequence > div:nth-child(even), .first-win-sequence > div:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid #555; }
  .first-win-sequence > div:last-child { border-bottom: 0; }
  .starter-progression { grid-template-columns: 1fr; }
  .starter-progression a, .starter-progression a:nth-child(2), .starter-progression a:last-child { padding-left: 0; border-right: 0; border-bottom: 1px solid #555; }
  .first-win-check-meta { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .starter-contract-head { flex-direction: column; }
  .first-win-label { align-items: stretch; flex-direction: column; }
  .first-win-label .button { width: 100%; }
  .starter-contract pre { max-height: 22rem; font-size: .7rem; }
  .first-win-receipt { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Index layer: make the repository legible before asking a visitor to read it. */
.hero-brief { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(3rem, 6vw, 6rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.repository-strip { margin-top: 1rem; margin-bottom: clamp(2rem, 4vw, 4rem); }
.brief-item { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .7rem; align-items: start; min-width: 0; padding: 1rem .9rem 1rem 0; border-right: 1px solid var(--line); transition: background .2s ease, padding-left .2s ease; }
.brief-item:first-child { padding-left: 0; }
.brief-item:last-child { border-right: 0; padding-right: 0; }
.brief-item:hover, .brief-item:focus-visible { padding-left: .7rem; color: var(--ink); background: #fff; }
.brief-item:last-child:hover, .brief-item:last-child:focus-visible { padding-right: .7rem; }
.brief-index, .index-panel-number { color: var(--red); font-size: .68rem; font-weight: 700; letter-spacing: .08em; }
.brief-copy { display: grid; gap: .25rem; min-width: 0; }
.brief-copy strong { font-size: .78rem; line-height: 1.15; }
.brief-copy small { color: var(--muted); font-size: .67rem; line-height: 1.35; }
.brief-arrow { align-self: center; color: var(--red); font-size: .9rem; }

.section-index { background: #fff; border-top: 1px solid var(--line); }
.index-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.file-map-panel, .ledger-panel, .locale-panel { min-width: 0; padding: clamp(1.2rem, 2.5vw, 2rem); background: #fff; }
.file-map-panel { min-height: 100%; }
.index-stack { display: grid; gap: 1px; background: var(--line); }
.index-panel-head { display: flex; gap: .8rem; align-items: baseline; }
.index-panel-head h3 { margin: 0; font-size: clamp(1.25rem, 2.5vw, 2rem); letter-spacing: -.055em; line-height: 1; }
.index-panel-intro { max-width: 610px; margin: .8rem 0 1.5rem; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.file-map-list { border-top: 1px solid var(--line); }
.file-map-row { display: grid; grid-template-columns: minmax(120px, .34fr) minmax(0, 1fr) auto; gap: 1rem; align-items: start; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.file-map-row:hover, .file-map-row:focus-visible { color: var(--red); }
.file-map-row code { color: var(--red); font-family: Consolas, 'Courier New', monospace; font-size: .72rem; font-weight: 700; overflow-wrap: anywhere; }
.file-map-row span { display: grid; gap: .3rem; min-width: 0; }
.file-map-row strong { color: var(--ink); font-size: .82rem; }
.file-map-row small { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.file-map-row b, .research-links b { color: var(--red); font-size: 1rem; }
.ledger-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.ledger-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .8rem; align-items: center; padding: .72rem 0; border-bottom: 1px solid var(--line); font-size: .76rem; }
.ledger-list li > span { color: var(--ink); }
.ledger-list li small { grid-column: 1 / -1; color: var(--muted); font-family: Consolas, 'Courier New', monospace; font-size: .65rem; }
.status-badge { display: inline-flex; width: fit-content; align-items: center; padding: .22rem .42rem; font-family: Consolas, 'Courier New', monospace; font-size: .62rem; font-weight: 700; letter-spacing: .02em; line-height: 1; }
.status-badge-candidate { color: var(--red); background: var(--soft-red); }
.status-badge-draft { color: #4e4e4a; background: #e4e4df; }
.index-source-link, .locale-rule { display: block; margin-top: 1.2rem; font-size: .7rem; line-height: 1.5; }
.index-source-link { color: var(--red); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.index-source-link span:last-child { margin-left: .45rem; text-decoration: none; }
.locale-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); background: var(--line); }
.locale-list li { display: grid; gap: .35rem; min-height: 62px; align-content: center; padding: .7rem; background: #fff; }
.locale-list li > span { color: var(--red); font-family: Consolas, 'Courier New', monospace; font-size: .68rem; font-weight: 700; }
.locale-list strong { color: var(--ink); font-size: .68rem; line-height: 1.25; }
.locale-entry { opacity: .78; }
.locale-planned { opacity: .55; }
.locale-planned > span::after { content: ' · planned'; color: var(--muted); font-family: Arial, Helvetica, sans-serif; font-size: .62rem; font-weight: 400; }
.locale-rule { margin-bottom: 0; color: var(--muted); }
.research-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: clamp(2rem, 7vw, 7rem); margin-top: 1px; padding: clamp(1.3rem, 3vw, 2.2rem); border: 1px solid var(--line); background: var(--ink); color: #fff; }
.research-panel .index-panel-head h3 { max-width: 600px; }
.research-panel .index-panel-intro { color: #b8b8b2; }
.research-boundary { display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; color: #b8b8b2; font-size: .68rem; line-height: 1.4; }
.research-links { align-self: end; border-top: 1px solid var(--line-dark); }
.research-links a { position: relative; display: grid; gap: .35rem; padding: .85rem 1.8rem .85rem 0; border-bottom: 1px solid var(--line-dark); }
.research-links a:hover strong, .research-links a:focus-visible strong { color: var(--red); }
.research-links strong { color: #fff; font-size: .8rem; }
.research-links small { max-width: 430px; color: #aaa; font-size: .7rem; line-height: 1.5; }
.research-links b { position: absolute; top: .85rem; right: 0; }
.visual-case-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; margin-top: 1px; padding: 2.4rem 0 0; border-top: 1px solid var(--line-dark); }
.visual-case-lead { max-width: 35rem; }
.visual-case-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line-dark); }
.visual-case-links a { position: relative; display: flex; min-height: 10.5rem; flex-direction: column; justify-content: space-between; gap: .85rem; padding: 1.2rem; background: var(--ink); transition: color .15s ease, background .15s ease; }
.visual-case-links a:hover strong, .visual-case-links a:focus-visible strong { color: var(--red); }
.visual-case-card img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: contain; object-position: center; border: 1px solid rgba(255, 255, 255, .18); background: #f6f6f2; opacity: .88; transition: opacity .15s ease, transform .15s ease; }
.visual-case-card:hover img, .visual-case-card:focus-visible img { opacity: 1; transform: translateY(-2px); }
.visual-case-links strong { color: #fff; font-size: .8rem; line-height: 1.35; }
.visual-case-links small { color: #aaa; font-size: .7rem; line-height: 1.5; }
.visual-case-links b { align-self: flex-end; color: var(--red); font-size: 1rem; }

.status-card { position: relative; }
.status-card::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--line); content: ''; }
.status-card:nth-child(2)::before { background: var(--red); }
.status-card:nth-child(3)::before { background: repeating-linear-gradient(90deg, var(--red) 0 7px, transparent 7px 11px); }
.status-card:nth-child(4)::before { background: var(--ink); }

@media (max-width: 980px) {
  .site-nav { gap: .55rem; }
  .hero-brief { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brief-item:nth-child(2) { border-right: 0; }
  .brief-item:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .brief-item:nth-child(3) { padding-left: 0; }
  .index-layout, .research-panel { grid-template-columns: 1fr; }
  .index-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .research-links { align-self: auto; }
  .visual-case-panel { grid-template-columns: 1fr; }
  .visual-case-links { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) { .visual-case-links { grid-template-columns: 1fr; } .visual-case-links a { min-height: 8.5rem; } }

@media (max-width: 760px) {
  .everyday-prompt-head, .everyday-prompt-grid { grid-template-columns: 1fr; }
  .everyday-prompt-head { gap: 1.4rem; }
  .prompt-contract-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prompt-contract-grid li { min-height: 76px; }
  .everyday-prompt-card + .everyday-prompt-card { border-top: 1px solid var(--ink); border-left: 0; }
  .everyday-prompt-card h4 { margin-top: 2.1rem; }
  .everyday-prompt-steps { grid-template-columns: 1fr; gap: .55rem; }
  .everyday-prompt-card pre { min-height: 0; max-height: 24rem; font-size: .68rem; }
  .everyday-prompt-card-skill { grid-template-columns: 1fr; row-gap: 1.35rem; }
  .compact-prompt-artifact .everyday-prompt-actions { margin-bottom: 1rem; }
}

@media (max-width: 800px) {
  .hero-brief { grid-column: 1; grid-row: auto; margin-top: 1rem; }
  .hero-footer { grid-row: auto; }
  .index-stack { grid-template-columns: 1fr; }
  .research-panel { gap: 1.5rem; }
  .file-map-row { grid-template-columns: minmax(105px, .4fr) minmax(0, 1fr) auto; }
}

@media (max-width: 480px) {
  .prompt-contract-head { align-items: start; flex-direction: column; }
  .prompt-contract-kicker { font-size: .7rem; }
  .prompt-contract-head h4 { font-size: 1.15rem; }
  .prompt-contract-head .text-link { font-size: .75rem; }
  .prompt-contract-grid li { min-height: 94px; padding: .75rem .65rem; }
  .prompt-contract-grid b { font-size: .68rem; }
  .prompt-contract-grid strong { font-size: .82rem; }
  .prompt-contract-grid span { font-size: .73rem; line-height: 1.4; }
  .hero-brief { grid-template-columns: 1fr; }
  .brief-item, .brief-item:first-child, .brief-item:nth-child(3) { padding: .85rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .brief-item:last-child { padding-bottom: .85rem; border-bottom: 0; }
  .brief-item:hover, .brief-item:focus-visible, .brief-item:last-child:hover, .brief-item:last-child:focus-visible { padding-left: .5rem; padding-right: .5rem; }
  .file-map-row { grid-template-columns: 1fr auto; gap: .45rem .7rem; }
  .file-map-row code { grid-column: 1 / -1; }
  .file-map-row span { grid-column: 1; }
  .file-map-row b { grid-column: 2; grid-row: 2; }
  .locale-list { grid-template-columns: 1fr 1fr; }
  .research-panel { padding: 1.2rem; }
}

/* GitHub project badge in the site header (top-right of every page). */
.github-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: inherit;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.github-badge:hover,
.github-badge:focus-visible {
  border-color: var(--red);
  background: var(--red);
  color: var(--white);
  outline: none;
}
.github-badge-mark {
  display: block;
  flex: 0 0 auto;
}
@media (max-width: 720px) {
  .github-badge {
    padding: 0.4rem;
    font-size: 0;
    gap: 0;
  }
  .github-badge .github-badge-mark {
    width: 18px;
    height: 18px;
  }
}

/* Goal wizard: pick a goal, fill the smallest form, copy a prompt. */
.goal-wizard {
  margin: var(--space) auto 0;
  max-width: var(--shell);
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--white);
}
.goal-wizard-head { margin-bottom: 1.5rem; }
.goal-wizard-head .eyebrow { color: var(--red); }
.goal-wizard-head h3 { margin: 0.35rem 0; font-size: clamp(1.25rem, 2.5vw, 1.7rem); }
.goal-wizard-head p { margin: 0; color: var(--muted); max-width: 46em; }
.goal-wizard-steps {
  display: flex;
  gap: 0.75rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  flex-wrap: wrap;
}
.goal-wizard-steps li {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--muted);
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 999px;
}
.goal-wizard-steps li.is-active { color: var(--white); background: var(--red); border-color: var(--red); }
.goal-wizard-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.75rem;
}
.goal-wizard-option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.15rem 0.75rem;
  align-items: center;
  text-align: left;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.goal-wizard-option:hover,
.goal-wizard-option:focus-visible {
  border-color: var(--red);
  background: var(--soft-red);
  outline: none;
}
.goal-wizard-option-num {
  grid-row: 1 / span 2;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--red);
}
.goal-wizard-option strong { font-size: 0.95rem; }
.goal-wizard-option small { color: var(--muted); }
.goal-wizard-field {
  display: block;
  margin-bottom: 1rem;
}
.goal-wizard-field span {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 0.35rem;
}
.goal-wizard-field input,
.goal-wizard-field textarea {
  width: 100%;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  color: var(--ink);
  background: var(--white);
}
.goal-wizard-field input:focus,
.goal-wizard-field textarea:focus {
  outline: 2px solid var(--red);
  outline-offset: 1px;
  border-color: var(--red);
}
.goal-wizard-nav { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.goal-wizard-prompt-label { font-weight: 700; margin-bottom: 0.5rem; }
.goal-wizard-prompt {
  white-space: pre-wrap;
  font-family: inherit;
  font-size: 0.92rem;
  line-height: 1.55;
  padding: 1rem 1.25rem;
  border: 1px solid var(--line);
  border-left: 4px solid var(--red);
  border-radius: 8px;
  background: var(--paper);
  max-height: 420px;
  overflow: auto;
}
.goal-wizard-actions { display: flex; gap: 0.75rem; align-items: center; margin-top: 1rem; flex-wrap: wrap; }
.goal-wizard-status { color: var(--red); font-weight: 700; font-size: 0.85rem; margin: 0.75rem 0 0; }
.goal-wizard-boundary { color: var(--muted); font-size: 0.8rem; margin: 0.75rem 0 0; max-width: 52em; }
@media (max-width: 720px) {
  .goal-wizard { padding: 1.25rem; }
  .goal-wizard-options { grid-template-columns: 1fr; }
}
