/* Hallmark - pre-emit critique: P5 H5 E4 S5 R5 V5 */
/* Hallmark - macrostructure: Product Lab Board - tone: white lab canvas - anchor hue: ultramarine - enrichment: Tier-A code-native project graphics */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  overflow-x: clip;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: var(--line-body);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: var(--z-backdrop);
  pointer-events: none;
  background:
    linear-gradient(90deg, var(--color-grid) var(--rule-thin), var(--color-transparent) var(--rule-thin)) var(--rail-width) 0 / 4.6rem 4.6rem,
    linear-gradient(180deg, var(--color-grid) var(--rule-thin), var(--color-transparent) var(--rule-thin)) var(--rail-width) 0 / 4.6rem 4.6rem;
}

a {
  color: var(--color-accent);
  text-decoration-color: var(--color-link-rule);
  text-underline-offset: var(--underline-offset);
  transition:
    color var(--dur-short) var(--ease-out),
    text-decoration-color var(--dur-short) var(--ease-out),
    background-color var(--dur-short) var(--ease-out),
    transform var(--dur-short) var(--ease-out);
}

a:hover {
  color: var(--color-coral);
  text-decoration-color: var(--color-coral);
}

a:focus-visible,
button:focus-visible {
  outline: var(--focus-size) solid var(--color-focus);
  outline-offset: var(--focus-offset);
}

a:active {
  transform: translateY(var(--press-y));
}

a[aria-disabled="true"],
button:disabled,
input:disabled {
  opacity: var(--disabled-opacity);
  cursor: not-allowed;
}

img {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
p,
dl,
dd,
ul {
  margin-top: 0;
}

h1,
h2,
h3 {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-style: normal;
  font-weight: var(--weight-display);
  letter-spacing: var(--tracking-display);
  overflow-wrap: anywhere;
  min-width: 0;
}

h1 {
  max-width: 14ch;
  margin-bottom: var(--space-sm);
  font-size: var(--text-display);
  line-height: 0.96;
}

h1 span {
  display: block;
  color: var(--color-accent);
  white-space: nowrap;
}

h2 {
  margin-bottom: var(--space-sm);
  max-width: var(--measure-heading);
  font-size: var(--text-3xl);
  line-height: var(--line-heading);
}

h3 {
  margin-bottom: var(--space-2xs);
  font-size: var(--text-xl);
  line-height: var(--line-heading);
}

p,
li,
dd {
  max-width: var(--measure-copy);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky-nav);
  margin-left: var(--rail-width);
  background: var(--color-nav);
  border-bottom: var(--rule-thin) solid var(--color-rule);
  backdrop-filter: blur(var(--blur-nav));
}

.site-header__inner,
.site-footer__inner,
.section-shell,
.lab-hero,
.resume-hero,
.resume-layout {
  width: min(var(--container), calc(100% - var(--space-xl)));
  margin-inline: auto;
}

.site-header__inner {
  min-height: var(--banner-height);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-lg);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  width: max-content;
  color: var(--color-ink);
  text-decoration: none;
}

.brand-mark {
  width: 3rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  background: var(--color-accent);
  color: var(--color-white);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-display);
  line-height: 1;
}

.brand-copy {
  display: grid;
  gap: 0;
}

.brand-copy strong {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  line-height: 0.9;
  text-transform: uppercase;
}

.brand-copy span {
  color: var(--color-accent);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  line-height: 1;
  text-transform: uppercase;
}

.site-nav,
.footer-links,
.action-row,
.contact-row {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.site-nav {
  justify-content: center;
}

.site-nav a,
.footer-links a,
.contact-row a,
.button,
.contact-cta {
  white-space: nowrap;
  line-height: 1;
}

.site-nav a,
.footer-links a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  border-bottom: var(--rule-medium) solid transparent;
  padding-block: var(--space-2xs);
  color: var(--color-ink);
  font-size: var(--text-sm);
  font-weight: var(--weight-heavy);
  text-decoration: none;
  text-transform: uppercase;
}

.site-nav a:hover,
.footer-links a:hover,
.site-nav a[aria-current="page"] {
  border-color: var(--color-accent);
  color: var(--color-ink);
}

.nav-icon {
  font-size: var(--text-md);
  font-weight: var(--weight-strong);
}

.contact-cta,
.button,
.contact-row a {
  min-height: var(--control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  border: var(--rule-thin) solid var(--color-acid);
  border-radius: var(--radius-control);
  padding: var(--space-xs) var(--space-sm);
  background: var(--color-acid);
  color: var(--color-ink);
  font-size: var(--text-sm);
  font-weight: var(--weight-heavy);
  text-decoration: none;
  text-transform: uppercase;
}

.contact-cta:hover,
.button:hover,
.contact-row a:hover {
  background: var(--color-acid-strong);
  color: var(--color-ink);
}

.button:active,
.contact-row a:active,
.contact-cta:active {
  transform: translateY(var(--press-y));
}

.button--primary {
  background: var(--color-accent);
  color: var(--color-white);
}

.button--quiet {
  background: var(--color-white);
}

.home-lab {
  position: relative;
  padding-left: var(--rail-width);
}

.product-rail {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: var(--z-sticky-nav);
  width: var(--rail-width);
  display: grid;
  grid-template-rows: 1fr auto auto;
  justify-items: center;
  gap: var(--space-md);
  padding-block: var(--space-lg);
  background:
    radial-gradient(circle, var(--color-rail-dot) 0 1px, var(--color-transparent) 1px 100%) 0 0 / 1rem 1rem,
    var(--color-accent);
  color: var(--color-white);
}

.product-rail span {
  align-self: center;
  writing-mode: vertical-rl;
  rotate: 180deg;
  font-size: var(--text-lg);
  font-weight: var(--weight-heavy);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.product-rail b {
  background: var(--color-acid);
  color: var(--color-ink);
  padding: var(--space-3xs);
  font-size: var(--text-xs);
}

.product-rail::after {
  content: "";
  width: 100%;
  height: 6.5rem;
  background:
    repeating-linear-gradient(135deg, var(--color-white) 0 0.2rem, var(--color-transparent) 0.2rem 0.56rem);
  opacity: 0.9;
}

.lab-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.48fr) minmax(8rem, 0.16fr) minmax(30rem, 0.86fr);
  gap: var(--space-lg);
  align-items: start;
  padding-block: var(--space-lg) var(--space-sm);
  border-bottom: var(--rule-thin) solid var(--color-rule);
}

.hero-copy {
  min-width: 0;
}

.lede {
  margin-bottom: var(--space-md);
  color: var(--color-ink);
  font-size: var(--text-lg);
  line-height: var(--line-lede);
}

.hero-focus {
  align-self: start;
  padding-top: var(--space-lg);
}

.hero-focus p {
  margin: var(--space-2xs) 0 0;
  color: var(--color-ink);
  font-size: var(--text-lg);
  line-height: 1.28;
}

.blue-chip,
.paper-tag,
.project-chip {
  width: max-content;
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-control);
  padding: var(--space-3xs) var(--space-2xs);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  line-height: var(--line-label);
  text-transform: uppercase;
}

.blue-chip {
  background: var(--color-accent);
  color: var(--color-white);
}

.paper-tag {
  background: var(--color-white);
  color: var(--color-ink);
}

.paper-tag--dark {
  background: var(--color-ink);
  color: var(--color-white);
}

.process-line {
  display: grid;
  grid-template-columns: auto minmax(5rem, 1fr) auto auto auto auto;
  align-items: center;
  gap: var(--space-xs);
  max-width: 38rem;
}

.process-line::after {
  content: "→";
  color: var(--color-ink);
  font-size: var(--text-xl);
}

.process-line span {
  min-width: 4.5rem;
  border-radius: var(--radius-chip);
  padding: var(--space-3xs) var(--space-xs);
  color: var(--color-white);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}

.process-line span:nth-child(1),
.process-line span:nth-child(4) {
  background: var(--color-accent);
}

.process-line span:nth-child(3) {
  background: var(--color-acid);
  color: var(--color-ink);
}

.process-line span:nth-child(4) {
  background: var(--color-coral);
}

.process-line span:nth-child(5) {
  background: var(--color-ink);
}

.process-line i {
  height: var(--rule-medium);
  min-width: 4rem;
  background:
    radial-gradient(circle, var(--color-white) 0 0.22rem, var(--color-accent) 0.24rem 0.34rem, var(--color-transparent) 0.35rem) center / 1rem 1rem no-repeat,
    linear-gradient(var(--color-ink), var(--color-ink)) center / 100% var(--rule-thin) no-repeat;
}

.hero-role-card {
  min-height: 12.2rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.36fr);
  gap: var(--space-lg);
  align-items: center;
  border-radius: var(--radius-card);
  padding: var(--space-md);
  background: var(--color-accent);
  color: var(--color-white);
  box-shadow: var(--shadow-soft);
}

.hero-role-card h2,
.hero-role-card p {
  color: var(--color-white);
}

.hero-role-card h2 {
  max-width: none;
  margin-block: var(--space-sm);
  border-bottom: var(--rule-medium) solid var(--color-blue-rule);
  padding-bottom: var(--space-sm);
  font-size: clamp(1.75rem, 2.4vw, 2.5rem);
}

.hero-role-card p {
  margin-bottom: 0;
  font-size: var(--text-md);
}

.role-diagram {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 8.4rem;
  overflow: hidden;
  border: var(--rule-thin) solid var(--color-blue-rule);
  background:
    linear-gradient(90deg, var(--color-blue-rule) var(--rule-thin), var(--color-transparent) var(--rule-thin)) center center / 1.5rem 1.5rem,
    linear-gradient(180deg, var(--color-blue-rule) var(--rule-thin), var(--color-transparent) var(--rule-thin)) center center / 1.5rem 1.5rem;
}

.asymptote-graph {
  width: min(100%, 13rem);
  height: auto;
  overflow: visible;
}

.asymptote-graph line,
.asymptote-graph path {
  vector-effect: non-scaling-stroke;
}

.graph-axis {
  stroke: var(--color-project-odds);
  stroke-linecap: round;
  stroke-width: 2.5;
}

.graph-curve {
  fill: none;
  stroke: var(--color-project-dance);
  stroke-linecap: round;
  stroke-width: 3.25;
}

.workshop-wall {
  margin-top: 0;
  padding-block: 0 var(--space-sm);
}

.section-shell--wide {
  width: min(var(--wide-container), calc(100% - var(--space-xl)));
}

.lab-board-label {
  display: grid;
  grid-template-columns: auto minmax(5rem, 1fr) auto;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xs);
  color: var(--color-ink);
  font-family: var(--font-script);
  font-size: var(--text-lg);
  letter-spacing: var(--tracking-hand);
  text-transform: uppercase;
}

.lab-board-label::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  height: var(--rule-thin);
  background: var(--color-ink);
}

.lab-board-label strong {
  grid-column: 1;
  grid-row: 1;
  font-weight: var(--weight-strong);
}

.lab-board-label span {
  grid-column: 3;
  grid-row: 1;
}

.lab-board,
.project-lanes,
.workshop-wall__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.project-module,
.lab-card-item,
.product-strip__grid article,
.experience-list article,
.resume-side,
.resume-section,
.article-body blockquote {
  border: var(--rule-thin) solid var(--color-card-rule);
  border-radius: var(--radius-card);
  background: var(--color-white);
}

.lab-card-item {
  position: relative;
  min-width: 0;
  min-height: 17.5rem;
  display: flex;
  flex-direction: column;
  padding: var(--space-md);
  box-shadow: var(--shadow-soft);
}

.lab-card-item::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 3.2rem;
  aspect-ratio: 1;
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  background: var(--project-color);
  border-bottom-right-radius: var(--radius-card);
}

.project-module {
  --project-color: var(--color-accent);
  --project-soft: var(--color-project-word-soft);
}

.project-module[data-project="word"] {
  --project-color: var(--color-project-word);
  --project-soft: var(--color-project-word-soft);
}

.project-module[data-project="odds"] {
  --project-color: var(--color-project-odds);
  --project-soft: var(--color-project-odds-soft);
}

.project-module[data-project="letter-jam"] {
  --project-color: var(--color-project-letter-jam);
  --project-soft: var(--color-project-letter-jam-soft);
}

.project-module[data-project="writing"] {
  --project-color: var(--color-project-writing);
  --project-soft: var(--color-project-writing-soft);
}

.project-module[data-project="dance"] {
  --project-color: var(--color-project-dance);
  --project-soft: var(--color-project-dance-soft);
}

.project-module__topline {
  display: grid;
  gap: var(--space-2xs);
  margin-bottom: var(--space-xs);
}

.project-module__topline a {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--weight-display);
  line-height: var(--line-heading);
  text-decoration: none;
}

.project-chip {
  background: var(--project-color);
  color: var(--color-white);
}

.lab-card-item p {
  margin-bottom: var(--space-sm);
  color: var(--color-ink);
  font-size: var(--text-sm);
  line-height: 1.38;
}

.tile-rack,
.card-stack,
.letter-jam-board,
.route-line,
.dance-notation,
.card-comparison {
  margin-block: auto var(--space-sm);
}

.tile-rack {
  display: flex;
  justify-content: center;
  gap: var(--space-2xs);
  border-bottom: var(--rule-heavy) solid var(--color-accent);
  padding-inline: var(--space-sm);
}

.tile-rack span {
  width: 2rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: var(--rule-thin) solid var(--color-ink);
  border-radius: var(--radius-control);
  background: var(--color-white);
  box-shadow: 0 var(--space-3xs) 0 var(--color-card-rule);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-weight: var(--weight-display);
}

.tile-rack--large span {
  width: 2.05rem;
}

.card-comparison {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: var(--space-sm);
  align-items: end;
  justify-items: center;
}

.card-comparison small {
  display: block;
  margin-bottom: var(--space-3xs);
  color: var(--color-muted);
  font-size: var(--text-xs);
  text-transform: uppercase;
}

.card-comparison > b {
  width: 2rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: var(--rule-thin) solid var(--color-card-rule);
  border-radius: 50%;
  font-size: var(--text-xs);
}

.card-stack {
  display: flex;
  align-items: center;
}

.card-stack span {
  width: 2.15rem;
  height: 3rem;
  display: grid;
  place-items: center;
  margin-left: calc(var(--space-3xs) * -1);
  border: var(--rule-thin) solid var(--color-ink);
  border-radius: var(--radius-control);
  background: var(--color-white);
  color: var(--color-coral);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: var(--weight-display);
}

.card-stack span:first-child {
  margin-left: 0;
}

.letter-jam-board {
  min-height: 4.8rem;
  display: grid;
  grid-template-columns: auto repeat(3, minmax(0, 1fr));
  gap: var(--space-2xs);
  align-items: end;
  border-bottom: var(--rule-heavy) solid var(--project-color);
  padding-inline: var(--space-xs);
}

.letter-jam-board span {
  min-width: 0;
  min-height: 2.7rem;
  display: grid;
  place-items: center;
  border: var(--rule-thin) solid var(--color-ink);
  border-radius: var(--radius-control);
  background: var(--color-white);
  box-shadow: 0 var(--space-3xs) 0 var(--color-card-rule);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-display);
  line-height: 1;
}

.letter-jam-board .letter-speaker {
  width: 2.7rem;
  border-color: var(--project-color);
  background: var(--project-color);
  color: var(--color-white);
  font-size: var(--text-md);
}

.route-line {
  min-height: 4.2rem;
  position: relative;
  background:
    radial-gradient(circle at 18% 55%, var(--color-project-writing) 0 0.55rem, var(--color-transparent) 0.58rem),
    radial-gradient(circle at 86% 55%, var(--color-project-writing) 0 0.55rem, var(--color-transparent) 0.58rem);
}

.route-line::before {
  content: "";
  position: absolute;
  inset: 42% 12% auto;
  height: 2.5rem;
  border-top: var(--rule-medium) dashed var(--color-ink);
  border-radius: 50%;
}

.route-line span {
  position: absolute;
  width: 0.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-ink);
}

.route-line span:nth-child(1) {
  left: 18%;
  top: 54%;
}

.route-line span:nth-child(2) {
  left: 50%;
  top: 46%;
}

.route-line span:nth-child(3) {
  right: 13%;
  top: 58%;
}

.dance-notation {
  min-height: 4.6rem;
  position: relative;
  border-block: var(--rule-thin) solid var(--color-card-rule);
  background:
    linear-gradient(var(--color-card-rule), var(--color-card-rule)) 0 25% / 100% var(--rule-thin) no-repeat,
    linear-gradient(var(--color-card-rule), var(--color-card-rule)) 0 50% / 100% var(--rule-thin) no-repeat,
    linear-gradient(var(--color-card-rule), var(--color-card-rule)) 0 75% / 100% var(--rule-thin) no-repeat;
}

.dance-notation span {
  position: absolute;
  bottom: 0.85rem;
  width: 0.55rem;
  height: 1.7rem;
  border-radius: var(--radius-chip);
  background: var(--color-ink);
}

.dance-notation span:nth-child(1) {
  left: 14%;
}

.dance-notation span:nth-child(2) {
  left: 38%;
  height: 1.2rem;
}

.dance-notation span:nth-child(3) {
  left: 62%;
}

.dance-notation span:nth-child(4) {
  left: 84%;
  height: 1.1rem;
  background: var(--color-project-dance);
}

.check-list,
.module-tags,
.tag-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2xs) var(--space-sm);
  padding: 0;
  margin: 0;
  list-style: none;
}

.check-list li,
.module-tags li,
.tag-list li {
  position: relative;
  padding-left: var(--space-md);
  color: var(--color-ink);
  font-size: var(--text-xs);
  line-height: 1.25;
}

.check-list li::before,
.module-tags li::before,
.tag-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 0.9rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--project-color);
  color: var(--color-white);
  font-size: 0.62rem;
  font-weight: var(--weight-heavy);
}

.card-number {
  position: absolute;
  right: var(--space-2xs);
  bottom: var(--space-2xs);
  z-index: 1;
  color: var(--color-ink);
  font-size: var(--text-sm);
}

.background-board,
.product-strip,
.experience-strip,
.closing-note {
  padding-block: var(--space-md) var(--space-xl);
}

.background-grid {
  display: grid;
  grid-template-columns: minmax(22rem, 0.34fr) minmax(0, 1fr) minmax(18rem, 0.32fr);
  gap: var(--space-lg);
  align-items: start;
  border: var(--rule-thin) solid var(--color-card-rule);
  background: var(--color-white);
  padding: var(--space-md);
}

.background-grid h2 {
  max-width: 22rem;
  font-size: var(--text-background-heading);
  line-height: 0.94;
}

.background-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  align-items: start;
}

.background-items article {
  border-left: var(--rule-thin) dashed var(--color-card-rule);
  padding-left: var(--space-md);
}

.background-items h3 {
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: var(--weight-heavy);
}

.background-items p {
  color: var(--color-ink);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.line-icon {
  width: 2.5rem;
  aspect-ratio: 1;
  display: block;
  margin-bottom: var(--space-xs);
  border: var(--rule-medium) solid currentColor;
}

.line-icon--blue {
  color: var(--color-accent);
  border-radius: 50%;
}

.line-icon--coral {
  color: var(--color-coral);
  border-radius: var(--radius-card);
}

.line-icon--yellow {
  color: var(--color-project-writing);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.current-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
  border-left: var(--rule-thin) dashed var(--color-card-rule);
  padding-left: var(--space-md);
}

.current-board h3 {
  grid-column: 1 / -1;
  margin-bottom: calc(var(--space-xs) * -1);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.board-panel {
  min-width: 0;
  min-height: 5.25rem;
  border: var(--rule-thin) solid var(--color-card-rule);
  border-top: var(--rule-medium) solid var(--panel-color, var(--color-accent));
  border-radius: var(--radius-card);
  background: var(--color-white);
  padding: var(--space-sm);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.board-panel strong {
  display: block;
  margin-bottom: var(--space-2xs);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  line-height: var(--line-label);
  text-transform: uppercase;
}

.board-panel ul {
  margin-bottom: 0;
  padding-left: 1rem;
}

.board-panel--status {
  --panel-color: var(--color-accent);

  grid-column: 1 / -1;
}

.board-panel--chart {
  --panel-color: var(--color-project-writing);
}

.board-panel--principles {
  --panel-color: var(--color-project-odds);
}

.board-panel--outcome {
  --panel-color: var(--color-project-dance);

  display: flex;
  align-items: center;
  color: var(--color-project-dance);
  font-weight: var(--weight-heavy);
}

.board-panel--outcome strong {
  margin-bottom: 0;
  color: inherit;
  font-size: var(--text-md);
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
}

.status-list {
  display: grid;
  gap: var(--space-2xs);
  padding: 0;
  list-style: none;
}

.status-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-2xs);
  align-items: center;
}

.status-mark {
  width: 0.72rem;
  aspect-ratio: 1;
  display: inline-block;
  border: var(--rule-thin) solid var(--color-card-rule);
  background: var(--color-white);
}

.status-mark--done {
  border-color: var(--color-accent);
  background:
    linear-gradient(135deg, var(--color-transparent) 0 46%, var(--color-white) 47% 56%, var(--color-transparent) 57%) 52% 45% / 0.65rem 0.38rem no-repeat,
    var(--color-accent);
}

.mini-chart {
  display: block;
  height: 4.8rem;
  background:
    linear-gradient(var(--color-card-rule), var(--color-card-rule)) 0 100% / 100% var(--rule-thin) no-repeat,
    linear-gradient(90deg, var(--color-card-rule), var(--color-card-rule)) 0 0 / var(--rule-thin) 100% no-repeat,
    linear-gradient(135deg, var(--color-transparent) 43%, var(--color-project-writing) 44% 47%, var(--color-transparent) 48%) 0 0 / 100% 100% no-repeat;
}

.site-footer {
  margin-left: var(--rail-width);
  border-top: var(--rule-thin) solid var(--color-rule);
  background: var(--color-white);
}

.site-footer__inner {
  min-height: var(--footer-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  color: var(--color-muted);
}

.site-footer p {
  margin-bottom: 0;
}

.module-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
  margin: auto 0 0;
  padding-top: var(--space-lg);
}

.module-facts div {
  border-top: var(--rule-thin) solid var(--color-card-rule);
  padding-top: var(--space-xs);
}

.module-facts dt {
  color: var(--project-color);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.module-facts dd {
  margin: var(--space-2xs) 0 0;
  color: var(--color-ink);
  font-weight: var(--weight-strong);
}

.resume-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.62fr);
  gap: var(--space-2xl);
  align-items: end;
  padding-block: var(--space-xl) var(--space-2xl);
}

.resume-hero__intro h1 {
  font-size: var(--text-resume-display);
}

.contact-row {
  justify-content: flex-end;
}

.resume-layout {
  display: grid;
  grid-template-columns: minmax(var(--side-min), 0.32fr) minmax(0, 1fr);
  gap: var(--space-xl);
  align-items: start;
  padding-bottom: var(--space-3xl);
}

.resume-side {
  position: sticky;
  top: calc(var(--banner-height) + var(--space-md));
  z-index: var(--z-sticky);
  padding-inline: var(--space-md);
}

.resume-side section {
  padding-block: var(--space-md);
  border-bottom: var(--rule-thin) solid var(--color-rule);
}

.resume-side h2,
.resume-section h2 {
  max-width: none;
  margin-bottom: var(--space-sm);
  color: var(--color-accent-strong);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  line-height: var(--line-label);
  text-transform: uppercase;
}

.resume-main {
  display: grid;
  gap: var(--space-lg);
}

.resume-section {
  padding: var(--space-md);
}

.resume-section--lead {
  background: var(--color-project-word-soft);
}

.achievement-list,
.job ul {
  padding-left: var(--space-md);
}

.achievement-list li + li,
.job li + li {
  margin-top: var(--space-2xs);
}

.job {
  padding-block: var(--space-lg);
  border-top: var(--rule-thin) solid var(--color-rule);
}

.job-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-md);
  align-items: start;
  margin-bottom: var(--space-xs);
}

.job-heading p,
.resume-side p,
.resume-section p,
.resume-section li {
  color: var(--color-muted);
}

.article-page {
  width: min(var(--container), calc(100% - var(--space-lg)));
  margin-inline: auto;
  padding-bottom: var(--space-3xl);
}

.article-hero {
  padding-block: var(--space-xl) var(--space-2xl);
  border-bottom: var(--rule-heavy) solid var(--color-ink);
}

.article-hero h1 {
  max-width: var(--measure-article-title);
  font-size: var(--text-article-display);
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(var(--side-min), 0.28fr) minmax(0, 1fr);
  gap: var(--space-2xl);
  align-items: start;
  padding-top: var(--space-xl);
}

.article-side {
  position: sticky;
  top: calc(var(--banner-height) + var(--space-md));
  z-index: var(--z-sticky);
  display: grid;
  gap: var(--space-2xs);
  border: var(--rule-thin) solid var(--color-card-rule);
  border-radius: var(--radius-card);
  background: var(--color-white);
  padding: var(--space-sm);
  box-shadow: var(--shadow-soft);
}

.article-side a {
  color: var(--color-muted);
  font-size: var(--text-sm);
  font-weight: var(--weight-strong);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.article-body {
  max-width: var(--measure-article);
}

.article-body section {
  padding-block: var(--space-lg);
  border-bottom: var(--rule-thin) solid var(--color-rule);
}

.article-body h2 {
  max-width: none;
  margin-bottom: var(--space-md);
  font-size: var(--text-2xl);
}

.article-body p,
.article-body li {
  color: var(--color-muted);
}

.article-body p {
  margin-bottom: var(--space-sm);
}

.article-body ul {
  padding-left: var(--space-md);
  margin-bottom: var(--space-md);
}

.article-body li + li {
  margin-top: var(--space-2xs);
}

.article-source {
  margin-top: var(--space-lg);
  padding-top: var(--space-md);
  border-top: var(--rule-thin) solid var(--color-rule-strong);
  font-size: var(--text-sm);
}

.dance-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 0.58fr);
  gap: var(--space-2xl);
  align-items: end;
}

.dance-banner {
  margin: 0;
  border: var(--rule-thin) solid var(--color-card-rule);
  border-radius: var(--radius-card);
  background: var(--color-white);
  padding: var(--space-2xs);
  box-shadow: var(--shadow-soft);
}

.dance-banner img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(var(--image-saturation)) contrast(var(--image-contrast));
}

.article-body blockquote {
  margin: var(--space-lg) 0 0;
  padding: var(--space-md);
  background: var(--color-project-word-soft);
}

.article-body blockquote p {
  margin-bottom: 0;
  color: var(--color-ink);
  font-size: var(--text-lg);
  line-height: var(--line-lede);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    transition-duration: var(--dur-reduced);
    animation-duration: var(--dur-reduced);
    animation-iteration-count: 1;
  }
}

@media (max-width: 82rem) {
  .site-header__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-sm);
    padding-block: var(--space-sm);
  }

  .site-nav {
    justify-content: flex-start;
  }

  .contact-cta {
    width: max-content;
  }

  .lab-hero,
  .background-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-focus {
    padding-top: 0;
  }

  .lab-board {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .background-items {
    grid-template-columns: minmax(0, 1fr);
  }

  .resume-hero,
  .resume-layout,
  .article-layout,
  .dance-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-row {
    justify-content: flex-start;
  }

  .resume-side,
  .article-side {
    position: static;
  }
}

@media (max-width: 48rem) {
  :root {
    --rail-width: 0rem;
  }

  body::before {
    background-position: 0 0;
  }

  .product-rail {
    display: none;
  }

  .site-header,
  .site-footer,
  .home-lab {
    margin-left: 0;
    padding-left: 0;
  }

  .site-header__inner,
  .site-footer__inner,
  .section-shell,
  .lab-hero,
  .resume-hero,
  .resume-layout,
  .article-page {
    width: min(var(--container), calc(100% - var(--space-md)));
  }

  .site-nav {
    gap: var(--space-sm);
  }

  .site-nav a,
  .footer-links a,
  .contact-cta {
    font-size: var(--text-xs);
  }

  .lab-hero {
    padding-block: var(--space-lg);
  }

  h1 span {
    white-space: normal;
  }

  .lab-board,
  .current-board {
    grid-template-columns: minmax(0, 1fr);
  }

  .lab-board-label {
    grid-template-columns: minmax(0, 1fr);
  }

  .lab-board-label::before,
  .lab-board-label span {
    grid-column: auto;
  }

  .hero-role-card,
  .card-comparison,
  .module-facts,
  .job-heading {
    grid-template-columns: minmax(0, 1fr);
  }

  .role-diagram {
    min-height: 8rem;
  }

  .check-list,
  .module-tags,
  .tag-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .background-grid {
    padding: var(--space-sm);
  }

  .site-footer__inner {
    min-height: auto;
    align-items: flex-start;
    flex-direction: column;
    padding-block: var(--space-lg);
  }
}

@media (max-width: 28rem) {
  h1 {
    font-size: clamp(3.3rem, 18vw, 4.8rem);
  }

  .brand-copy strong {
    font-size: var(--text-lg);
  }

  .process-line {
    grid-template-columns: minmax(0, 1fr);
  }

  .process-line::after {
    content: "";
  }

  .process-line i {
    display: none;
  }

  .contact-cta,
  .button,
  .contact-row a {
    width: 100%;
  }
}
