:root {
  --figure-ink: #17242b;
  --figure-muted: #607078;
  --figure-line: rgba(23, 36, 43, 0.18);
  --figure-ice: #e9f7f8;
  --figure-blue: #3e8d9b;
  --figure-deep: #1f5965;
  --figure-coral: #e87866;
  --figure-paper: #fbfaf6;
}

[hidden] { display: none !important; }
.figure-index-page,
.figure-athlete-page,
.figure-competition-page,
.figure-theme-page { overflow-x: clip; background: var(--figure-paper); color: var(--figure-ink); }
.figure-wrap { width: 100%; min-width: 0; overflow-x: clip; padding-bottom: 5rem; }
.figure-wrap * { box-sizing: border-box; }
.figure-kicker { margin: 0; color: var(--figure-deep); font: 700 .72rem/1.3 ui-sans-serif, system-ui, sans-serif; letter-spacing: .16em; }

.sports-discipline-bridge { display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, .62fr); gap: 2rem 4rem; align-items: end; margin-top: clamp(3rem, 7vw, 6rem); padding: clamp(1.7rem, 4vw, 3.2rem); background: var(--figure-ink); color: #f7fbfb; }
.sports-discipline-bridge > div { min-width: 0; }
.sports-discipline-bridge p { margin: 0 0 .7rem; color: #92ccd4; font: 700 .7rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .14em; }
.sports-discipline-bridge h2 { margin: 0; font: 600 clamp(1.65rem, 3.5vw, 3rem)/1.4 "Shippori Mincho", serif; }
.sports-discipline-bridge > a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem 1.5rem; min-width: 0; padding: 1.35rem 0; border-top: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); color: #f7fbfb; text-decoration: none; }
.sports-discipline-bridge > a strong { min-width: 0; font: 600 1.05rem/1.6 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.sports-discipline-bridge > a span { grid-column: 1; color: rgba(247,251,251,.68); font: 500 .75rem/1.6 ui-sans-serif, system-ui, sans-serif; }
.sports-discipline-bridge > a em { grid-row: 1 / span 2; grid-column: 2; align-self: center; color: #92ccd4; font: 700 .74rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.sports-discipline-bridge > a:hover strong { text-decoration: underline; text-underline-offset: .25em; }

.figure-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .55fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
  padding: clamp(3rem, 8vw, 8rem) 0 clamp(3rem, 6vw, 5rem);
  border-bottom: 1px solid var(--figure-line);
}
.figure-hero-copy { min-width: 0; }
.figure-hero h1 {
  max-width: 12em;
  margin: 1.15rem 0 1.7rem;
  font: 600 clamp(2.85rem, 5.9vw, 6.2rem)/1.08 "Shippori Mincho", serif;
  letter-spacing: -.06em;
}
.figure-hero-copy > p:last-child {
  max-width: 48rem;
  margin: 0;
  color: var(--figure-muted);
  font: 500 clamp(1rem, 1.45vw, 1.22rem)/2 ui-sans-serif, system-ui, sans-serif;
}
.figure-hero-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--figure-line); }
.figure-hero-stats div { min-width: 0; padding: 1.1rem 0 1.25rem; border-bottom: 1px solid var(--figure-line); }
.figure-hero-stats div:nth-child(odd) { padding-right: 1rem; border-right: 1px solid var(--figure-line); }
.figure-hero-stats div:nth-child(even) { padding-left: 1rem; }
.figure-hero-stats dt { color: var(--figure-muted); font: 700 .7rem/1.3 ui-sans-serif, system-ui, sans-serif; letter-spacing: .12em; }
.figure-hero-stats dd { margin: .4rem 0 0; font: 600 clamp(1.7rem, 3vw, 2.7rem)/1 "Shippori Mincho", serif; }
.figure-hero-stats small { margin-left: .25rem; color: var(--figure-muted); font: 500 .72rem/1 ui-sans-serif, system-ui, sans-serif; }

.figure-local-nav,
.figure-profile-nav { display: flex; gap: 0; width: 100%; max-width: 100%; overflow-x: auto; margin: 0; border-bottom: 1px solid var(--figure-line); scrollbar-width: none; }
.figure-local-nav::-webkit-scrollbar,
.figure-profile-nav::-webkit-scrollbar { display: none; }
.figure-local-nav a,
.figure-profile-nav a { flex: 0 0 auto; padding: 1rem 1.35rem; border-left: 1px solid var(--figure-line); color: var(--figure-ink); font: 700 .77rem/1 ui-sans-serif, system-ui, sans-serif; text-decoration: none; }
.figure-local-nav a:first-child,
.figure-profile-nav a:first-child { border-left: 0; }
.figure-local-nav a:hover,
.figure-profile-nav a:hover { background: var(--figure-ice); }

.figure-map,
.figure-athletes,
.figure-choreographers,
.figure-families,
.figure-moments,
.figure-programs,
.figure-profile-programs,
.figure-connections,
.figure-sources { padding: clamp(4rem, 8vw, 7.5rem) 0 0; }
.figure-map > header,
.figure-athletes > header,
.figure-choreographers > header,
.figure-families > header,
.figure-moments > header,
.figure-programs > header,
.figure-profile-programs > header,
.figure-connections > header,
.figure-sources > header { display: grid; grid-template-columns: minmax(7rem, .28fr) minmax(0, .72fr); gap: 1rem 3rem; align-items: baseline; margin-bottom: clamp(2rem, 5vw, 3.8rem); }
.figure-map > header > p,
.figure-athletes > header > p,
.figure-choreographers > header > p,
.figure-families > header > p,
.figure-moments > header > p,
.figure-programs > header > p,
.figure-profile-programs > header > p,
.figure-connections > header > p,
.figure-sources > header > p { grid-row: 1 / span 2; margin: 0; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .14em; }
.figure-map > header h2,
.figure-athletes > header h2,
.figure-choreographers > header h2,
.figure-families > header h2,
.figure-moments > header h2,
.figure-programs > header h2,
.figure-profile-programs > header h2,
.figure-connections > header h2,
.figure-sources > header h2 { min-width: 0; margin: 0; font: 600 clamp(1.85rem, 4vw, 3.5rem)/1.35 "Shippori Mincho", serif; letter-spacing: -.04em; overflow-wrap: anywhere; }
.figure-map > header span,
.figure-athletes > header span,
.figure-choreographers > header span,
.figure-families > header span,
.figure-moments > header span,
.figure-programs > header span,
.figure-profile-programs > header span,
.figure-connections > header span,
.figure-sources > header span { color: var(--figure-muted); font: 500 .95rem/1.8 ui-sans-serif, system-ui, sans-serif; }

.figure-map > ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--figure-line); list-style: none; }
.figure-map > ol > li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; min-width: 0; padding: 1.7rem 1.6rem 2rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-map > ol > li:last-child { border-right: 0; }
.figure-map li > span { color: var(--figure-coral); font: 600 .76rem/1.4 ui-monospace, monospace; }
.figure-map li strong { display: block; margin-bottom: .55rem; font: 600 1.25rem/1.4 "Shippori Mincho", serif; }
.figure-map li p { margin: 0; color: var(--figure-muted); font: 500 .9rem/1.8 ui-sans-serif, system-ui, sans-serif; }

.figure-athlete-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .55fr); gap: 1.5rem; align-items: end; margin-bottom: 1rem; }
.figure-athlete-tools > div { display: flex; flex-wrap: wrap; gap: .55rem; }
.figure-athlete-tools button,
.figure-empty button { padding: .72rem 1rem; border: 1px solid var(--figure-line); border-radius: 999px; background: transparent; color: var(--figure-ink); font: 700 .78rem/1 ui-sans-serif, system-ui, sans-serif; cursor: pointer; }
.figure-athlete-tools button[aria-pressed="true"] { border-color: var(--figure-deep); background: var(--figure-deep); color: #fff; }
.figure-athlete-tools button span { margin-left: .25rem; opacity: .72; }
.figure-athlete-tools label { display: grid; gap: .45rem; color: var(--figure-muted); font: 700 .7rem/1.3 ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; }
.figure-athlete-tools input { width: 100%; min-width: 0; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--figure-ink); border-radius: 0; background: transparent; color: var(--figure-ink); font: 500 .95rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-result { margin: 0 0 1rem; color: var(--figure-muted); font: 500 .8rem/1.4 ui-sans-serif, system-ui, sans-serif; text-align: right; }
.figure-result strong { color: var(--figure-ink); font-size: 1.1rem; }
.figure-athlete-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); }
.figure-athlete-card { min-width: 0; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-athlete-card:nth-child(even) { border-right: 0; }
.figure-athlete-card > a { position: relative; display: grid; grid-template-columns: 3.3rem minmax(0, 1fr) auto; grid-template-areas: "number meta stats" "number name stats" "number english stats" "number tracks tracks" "number more more"; min-height: 24rem; gap: .4rem 1.2rem; padding: clamp(1.4rem, 3vw, 2.4rem); color: var(--figure-ink); text-decoration: none; overflow: hidden; }
.figure-athlete-card > a::after { position: absolute; right: -2rem; bottom: -6rem; width: 13rem; height: 13rem; border: 1px solid rgba(62, 141, 155, .22); border-radius: 50%; content: ""; transition: transform .35s ease; }
.figure-athlete-card > a:hover { background: linear-gradient(140deg, rgba(233,247,248,.8), rgba(255,255,255,0)); }
.figure-athlete-card > a:hover::after { transform: translate(-1rem, -1rem) scale(1.15); }
.figure-athlete-number { grid-area: number; color: var(--figure-coral); font: 600 .76rem/1.4 ui-monospace, monospace; }
.figure-athlete-card a > p { grid-area: meta; margin: 0; color: var(--figure-muted); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .06em; }
.figure-athlete-card h3 { grid-area: name; min-width: 0; margin: .55rem 0 0; font: 600 clamp(1.75rem, 3vw, 2.7rem)/1.25 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-athlete-card a > small { grid-area: english; color: var(--figure-muted); font: 500 .77rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-athlete-card dl { grid-area: stats; display: flex; gap: 1rem; margin: 0; }
.figure-athlete-card dl div { text-align: right; }
.figure-athlete-card dt { color: var(--figure-muted); font: 700 .62rem/1.2 ui-sans-serif, system-ui, sans-serif; }
.figure-athlete-card dd { margin: .2rem 0 0; font: 600 1.55rem/1 "Shippori Mincho", serif; }
.figure-athlete-card ul { grid-area: tracks; align-self: end; display: grid; gap: .65rem; min-width: 0; margin: 2rem 0 0; padding: 0; list-style: none; }
.figure-athlete-card li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .7rem; min-width: 0; padding-top: .65rem; border-top: 1px solid var(--figure-line); }
.figure-athlete-card li i { color: var(--figure-deep); font: 700 .68rem/1.5 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.figure-athlete-card li span { min-width: 0; font: 600 .86rem/1.5 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-athlete-card a > em { z-index: 1; grid-area: more; justify-self: end; margin-top: 1.1rem; color: var(--figure-deep); font: 700 .75rem/1 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.figure-empty { padding: 2rem; border: 1px solid var(--figure-line); text-align: center; }
.figure-empty strong { display: block; margin-bottom: 1rem; font: 600 1rem/1.5 ui-sans-serif, system-ui, sans-serif; }

.figure-choreographer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); }
.figure-choreographer-grid article { min-width: 0; padding: 1.65rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-choreographer-grid article:nth-child(3n) { border-right: 0; }
.figure-choreographer-grid article > span { color: var(--figure-coral); font: 600 .68rem/1 ui-monospace, monospace; }
.figure-choreographer-grid h3 { min-width: 0; margin: 1rem 0 1.4rem; font: 600 1.25rem/1.35 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-choreographer-grid p { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: 0; }
.figure-choreographer-grid p a { color: var(--figure-ink); font: 700 .86rem/1.5 ui-sans-serif, system-ui, sans-serif; text-underline-offset: .2em; }
.figure-choreographer-grid p i { color: var(--figure-coral); font: 500 .67rem/1 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.figure-choreographer-grid small { display: block; margin-top: 1.2rem; color: var(--figure-muted); font: 500 .7rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-data-note { max-width: 60rem; margin: 1.25rem 0 0 auto; color: var(--figure-muted); font: 500 .76rem/1.75 ui-sans-serif, system-ui, sans-serif; }

.figure-family-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); }
.figure-family-grid article { min-width: 0; padding: 1.7rem 1.5rem 2rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-family-grid article:last-child { border-right: 0; }
.figure-family-grid article > span { display: block; color: var(--figure-blue); font: 600 clamp(2.2rem, 5vw, 4rem)/1 "Shippori Mincho", serif; }
.figure-family-grid h3 { margin: 1.4rem 0 .7rem; font: 600 1.1rem/1.4 "Shippori Mincho", serif; }
.figure-family-grid p { min-height: 5.1em; margin: 0; color: var(--figure-muted); font: 500 .82rem/1.7 ui-sans-serif, system-ui, sans-serif; }
.figure-family-grid small { display: block; margin-top: 1.3rem; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; }

.figure-moments > ol { margin: 0; padding: 0; border-top: 2px solid var(--figure-ink); list-style: none; }
.figure-moments > ol > li { display: grid; grid-template-columns: minmax(7.5rem, .18fr) minmax(0, .62fr) minmax(10rem, .2fr); min-width: 0; border-bottom: 1px solid var(--figure-line); scroll-margin-top: 7rem; }
.figure-moments > ol > li.is-athlete-page { grid-template-columns: minmax(7.5rem, .18fr) minmax(0, .82fr); }
.figure-moment-date { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: 1.5rem 1.25rem 1.5rem 0; border-right: 1px solid var(--figure-line); }
.figure-moment-date time { color: var(--figure-deep); font: 700 .72rem/1.4 ui-monospace, monospace; letter-spacing: .04em; }
.figure-moment-date span { color: var(--figure-coral); font: 600 clamp(2rem, 4vw, 4.3rem)/1 "Shippori Mincho", serif; }
.figure-moments article { min-width: 0; padding: 1.5rem clamp(1.2rem, 3vw, 2.8rem) 1.8rem; }
.figure-moments article > p:first-child { margin: 0 0 .7rem; color: var(--figure-muted); font: 700 .68rem/1.45 ui-sans-serif, system-ui, sans-serif; letter-spacing: .06em; }
.figure-moments h3 { max-width: 38rem; margin: 0; font: 600 clamp(1.45rem, 2.7vw, 2.3rem)/1.4 "Shippori Mincho", serif; letter-spacing: -.03em; }
.figure-moments > header h2 b { white-space: nowrap; font: inherit; }
.figure-moment-result { display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: baseline; margin: 1rem 0; }
.figure-moment-result strong { color: var(--figure-coral); font: 700 1rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-moment-result span { color: var(--figure-deep); font: 700 .76rem/1.4 ui-monospace, monospace; }
.figure-moments article > p:not(:first-child) { max-width: 45rem; margin: 0; color: var(--figure-muted); font: 500 .86rem/1.85 ui-sans-serif, system-ui, sans-serif; }
.figure-moment-scores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: 1.2rem 0 .9rem; padding: 0; list-style: none; }
.figure-moment-scores a { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "label score" "title title"; gap: .65rem 1rem; min-width: 0; padding: .9rem 1rem; border: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-moment-scores a:hover { border-color: var(--figure-deep); background: var(--figure-ice); }
.figure-moment-scores span { grid-area: label; display: flex; gap: .45rem; align-items: baseline; color: var(--figure-coral); font: 800 .7rem/1 ui-monospace, monospace; }
.figure-moment-scores span small { color: var(--figure-muted); font: 700 .66rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-moment-scores strong { grid-area: score; justify-self: end; font: 600 1.35rem/1 "Shippori Mincho", serif; font-variant-numeric: tabular-nums; }
.figure-moment-scores em { grid-area: title; min-width: 0; color: var(--figure-muted); font: 600 .72rem/1.45 ui-sans-serif, system-ui, sans-serif; font-style: normal; overflow-wrap: anywhere; }
.figure-moment-sources { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.figure-moment-athlete { display: flex; flex-direction: column; min-width: 0; padding: 1.5rem 0 1.5rem 1.4rem; border-left: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-moment-athlete:hover { background: linear-gradient(145deg, rgba(233, 247, 248, .85), rgba(255, 255, 255, 0)); }
.figure-moment-athlete strong { font: 600 1.35rem/1.4 "Shippori Mincho", serif; }
.figure-moment-athlete small { margin-top: .25rem; color: var(--figure-muted); font: 500 .7rem/1.35 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-moment-athlete em { margin-top: auto; padding-top: 2rem; color: var(--figure-deep); font: 700 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; }

.figure-programs > ol { margin: 0; padding: 0; border-top: 1px solid var(--figure-line); list-style: none; }
.figure-programs > ol > li { border-bottom: 1px solid var(--figure-line); }
.figure-programs > ol > li > a { display: grid; grid-template-columns: minmax(7rem, .22fr) minmax(0, .58fr) minmax(10rem, .2fr); gap: 1.5rem; min-width: 0; padding: 1.5rem 1rem; color: var(--figure-ink); text-decoration: none; }
.figure-programs > ol > li > a:hover { background: var(--figure-ice); }
.figure-programs a > div { display: flex; gap: .65rem; align-items: baseline; }
.figure-programs time { font: 600 .9rem/1.4 ui-monospace, monospace; }
.figure-programs a > div span { color: var(--figure-coral); font: 800 .7rem/1 ui-sans-serif, system-ui, sans-serif; }
.figure-programs section { min-width: 0; }
.figure-programs section > p { margin: 0; font: 700 .8rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-programs section > p small { margin-left: .5rem; color: var(--figure-muted); font-weight: 500; }
.figure-programs h3 { min-width: 0; margin: .35rem 0 .8rem; font: 600 1.2rem/1.4 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-programs section ul { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: 0; padding: 0; list-style: none; }
.figure-programs section li { color: var(--figure-muted); font: 500 .75rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-programs section li small { display: block; color: var(--figure-muted); font-size: .65rem; }
.figure-programs a > em { align-self: center; min-width: 0; color: var(--figure-muted); font: 500 .72rem/1.6 ui-sans-serif, system-ui, sans-serif; font-style: normal; overflow-wrap: anywhere; }

.figure-method { display: grid; grid-template-columns: minmax(12rem, .35fr) minmax(0, .65fr); gap: 2rem 4rem; margin-top: clamp(4rem, 9vw, 8rem); padding: 2.5rem 0; border-top: 2px solid var(--figure-ink); border-bottom: 1px solid var(--figure-line); }
.figure-method div > p { margin: 0 0 .7rem; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .14em; }
.figure-method h2 { margin: 0; font: 600 1.6rem/1.45 "Shippori Mincho", serif; }
.figure-method > p { min-width: 0; margin: 0; color: var(--figure-muted); font: 500 .88rem/1.9 ui-sans-serif, system-ui, sans-serif; }
.figure-method > span { grid-column: 2; color: var(--figure-muted); font: 500 .7rem/1.4 ui-sans-serif, system-ui, sans-serif; }

.figure-profile-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; padding: clamp(3rem, 8vw, 8rem) 0 clamp(2.7rem, 6vw, 5rem); border-bottom: 1px solid var(--figure-line); }
.figure-profile-hero > div { min-width: 0; }
.figure-profile-hero h1 { margin: .9rem 0 .35rem; font: 600 clamp(3.2rem, 8vw, 7.5rem)/1.05 "Shippori Mincho", serif; letter-spacing: -.07em; overflow-wrap: anywhere; }
.figure-profile-hero > div > span { color: var(--figure-muted); font: 500 .92rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; }
.figure-profile-hero > div > p:last-child { max-width: 46rem; margin: 2rem 0 0; color: var(--figure-muted); font: 500 1rem/1.9 ui-sans-serif, system-ui, sans-serif; }
.figure-profile-hero dl { margin: 0; border-top: 1px solid var(--figure-line); }
.figure-profile-hero dl div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--figure-line); }
.figure-profile-hero dt { color: var(--figure-muted); font: 700 .68rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-profile-hero dd { min-width: 0; margin: 0; font: 600 1rem/1.5 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-profile-hero dd small { margin-left: .25rem; color: var(--figure-muted); font: 500 .68rem/1 ui-sans-serif, system-ui, sans-serif; }

.figure-profile-programs > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--figure-line); border: 1px solid var(--figure-line); }
.figure-program-card { min-width: 0; padding: clamp(1.5rem, 3.5vw, 3rem); background: var(--figure-paper); scroll-margin-top: 2rem; }
.figure-program-card > header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .45rem 1rem; align-items: center; min-width: 0; padding-bottom: 1.7rem; border-bottom: 1px solid var(--figure-line); }
.figure-program-card > header > div { grid-row: 1 / span 2; display: grid; justify-items: center; width: 3.5rem; padding: .65rem .3rem; border: 1px solid var(--figure-deep); }
.figure-program-card > header > div span { color: var(--figure-deep); font: 800 .9rem/1 ui-sans-serif, system-ui, sans-serif; }
.figure-program-card > header > div small { margin-top: .35rem; color: var(--figure-muted); font: 500 .58rem/1 ui-sans-serif, system-ui, sans-serif; }
.figure-program-card > header > p { margin: 0; color: var(--figure-muted); font: 600 .72rem/1.4 ui-monospace, monospace; }
.figure-program-card h2 { min-width: 0; margin: 0; font: 600 clamp(1.3rem, 2.5vw, 2rem)/1.4 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-program-card > ol { margin: 0; padding: 1rem 0 0; list-style: none; }
.figure-program-card > ol > li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; min-width: 0; padding: 1.15rem 0; border-bottom: 1px solid var(--figure-line); }
.figure-program-card > ol > li > span { color: var(--figure-coral); font: 600 .68rem/1.5 ui-monospace, monospace; }
.figure-program-card > ol strong { display: block; min-width: 0; font: 600 1rem/1.5 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-program-card > ol p { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .6rem; min-width: 0; margin: .5rem 0 0; color: var(--figure-muted); font: 500 .75rem/1.55 ui-sans-serif, system-ui, sans-serif; }
.figure-program-card > ol p i { color: var(--figure-deep); font-size: .64rem; font-style: normal; font-weight: 700; }
.figure-program-card > ol small { display: block; margin-top: .55rem; color: var(--figure-muted); font: 500 .64rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-program-credits { margin-top: 1.5rem; }
.figure-program-credits > span { color: var(--figure-muted); font: 700 .65rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-program-credits p { display: flex; flex-wrap: wrap; gap: .5rem; margin: .65rem 0 0; }
.figure-program-credits b { padding: .38rem .6rem; background: var(--figure-ice); color: var(--figure-deep); font: 700 .7rem/1.2 ui-sans-serif, system-ui, sans-serif; }
.figure-program-note { margin: 1.4rem 0 0; color: var(--figure-muted); font: 500 .75rem/1.75 ui-sans-serif, system-ui, sans-serif; }
.figure-source-link { display: inline-block; margin-top: 1rem; color: var(--figure-deep); font: 700 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; text-underline-offset: .25em; }

.figure-connections > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); }
.figure-connections > div > a { display: flex; flex-direction: column; min-width: 0; min-height: 14rem; padding: 1.35rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-connections > div > a:last-child { border-right: 0; }
.figure-connections a:hover { background: var(--figure-ice); }
.figure-connections a > span { min-width: 0; color: var(--figure-coral); font: 700 .64rem/1.5 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-connections strong { min-width: 0; margin: 1.1rem 0 .6rem; font: 600 1.3rem/1.4 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-connections small { min-width: 0; color: var(--figure-muted); font: 500 .68rem/1.55 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-connections em { margin-top: auto; padding-top: 1rem; color: var(--figure-deep); font: 700 .68rem/1.3 ui-sans-serif, system-ui, sans-serif; font-style: normal; }

.figure-sources > ol { margin: 0; padding: 0; border-top: 1px solid var(--figure-line); list-style: none; }
.figure-sources li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; min-width: 0; padding: 1rem .5rem; border-bottom: 1px solid var(--figure-line); }
.figure-sources li > span { color: var(--figure-coral); font: 600 .68rem/1 ui-monospace, monospace; }
.figure-sources li div { min-width: 0; }
.figure-sources strong { display: block; min-width: 0; font: 600 .86rem/1.5 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-sources small { color: var(--figure-muted); font: 500 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-sources a { color: var(--figure-deep); font: 700 .7rem/1.4 ui-sans-serif, system-ui, sans-serif; }

.figure-competition-archives > div { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--figure-line); }
.figure-competition-card > a { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(13rem, .7fr); gap: 1.5rem; min-height: 20rem; padding: 1.8rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-competition-card > a:hover { background: var(--figure-ice); }
.figure-competition-card > a > div > p { margin: 0 0 .8rem; color: var(--figure-coral); font: 700 .66rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.figure-competition-card h3 { margin: 0; font: 600 clamp(1.45rem, 2.4vw, 2.25rem)/1.35 "Shippori Mincho", serif; }
.figure-competition-card h3 + small { display: block; margin-top: .45rem; color: var(--figure-muted); font: 500 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-card dl { display: grid; grid-template-columns: repeat(3, 1fr); align-self: start; margin: 0; border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-competition-card dl div { padding: .75rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-competition-card dt { color: var(--figure-muted); font: 700 .58rem/1.2 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-card dd { margin: .3rem 0 0; font: 600 1.4rem/1 "Shippori Mincho", serif; }
.figure-competition-card dd small { margin-left: .18rem; font: 600 .58rem/1 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-card > a > p { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: auto 0 0; }
.figure-competition-card > a > p span { display: grid; grid-template-columns: auto 1fr; gap: .25rem .65rem; padding-top: 1rem; border-top: 1px solid var(--figure-line); }
.figure-competition-card > a > p i { grid-row: 1 / 3; align-self: start; padding: .35rem .5rem; background: var(--figure-deep); color: #fff; font: 700 .62rem/1 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.figure-competition-card > a > p strong { font: 600 1rem/1.4 "Shippori Mincho", serif; }
.figure-competition-card > a > p small { color: var(--figure-muted); font: 500 .64rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-card > a > em { grid-column: 1 / -1; color: var(--figure-deep); font: 700 .7rem/1.3 ui-sans-serif, system-ui, sans-serif; font-style: normal; }

.figure-music-themes,
.figure-theme-performances,
.figure-theme-reading,
.figure-theme-related { padding-top: clamp(4.5rem, 9vw, 8rem); scroll-margin-top: 6rem; }
.figure-music-themes > header,
.figure-theme-performances > header,
.figure-theme-related > header { display: grid; grid-template-columns: 9rem minmax(0, 1fr) minmax(15rem, .7fr); gap: 1.5rem; align-items: start; margin-bottom: 2rem; }
.figure-music-themes > header > p,
.figure-theme-performances > header > p,
.figure-theme-related > header > p { grid-row: 1 / 3; margin: .25rem 0 0; color: var(--figure-coral); font: 700 .64rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .12em; }
.figure-music-themes > header h2,
.figure-theme-performances > header h2,
.figure-theme-related > header h2 { margin: 0; font: 600 clamp(1.9rem, 3.8vw, 3.5rem)/1.25 "Shippori Mincho", serif; }
.figure-music-themes > header h2 b,
.figure-theme-performances > header h2 b { color: var(--figure-coral); font-weight: inherit; }
.figure-music-themes > header span,
.figure-theme-performances > header span,
.figure-theme-related > header span { color: var(--figure-muted); font: 500 .75rem/1.75 ui-sans-serif, system-ui, sans-serif; }
.figure-music-themes > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-music-themes article { min-width: 0; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-music-themes article:last-child:nth-child(odd) { grid-column: 1 / -1; }
.figure-music-themes article > a { display: grid; grid-template-columns: 3rem minmax(0, 1fr); grid-template-areas: "number english" "number name" "number question" "number meta" "number more"; gap: .5rem 1rem; min-height: 20rem; padding: clamp(1.4rem, 3vw, 2.4rem); color: var(--figure-ink); text-decoration: none; }
.figure-music-themes article > a:hover { background: var(--figure-ice); }
.figure-music-themes article > a > span { grid-area: number; color: var(--figure-coral); font: 600 .7rem/1.4 ui-monospace, monospace; }
.figure-music-themes article > a > p { grid-area: english; margin: 0; color: var(--figure-deep); font: 700 .65rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.figure-music-themes h3 { grid-area: name; min-width: 0; margin: .35rem 0 0; font: 600 clamp(1.8rem, 3vw, 2.8rem)/1.25 "Shippori Mincho", serif; overflow-wrap: anywhere; }
.figure-music-themes article > a > strong { grid-area: question; margin-top: .7rem; font: 600 1rem/1.7 ui-sans-serif, system-ui, sans-serif; }
.figure-music-themes article > a > small { grid-area: meta; align-self: end; padding-top: 1.6rem; color: var(--figure-muted); font: 500 .7rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-music-themes article > a > em { grid-area: more; justify-self: end; color: var(--figure-deep); font: 700 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; }

.figure-theme-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; padding: clamp(4rem, 9vw, 8.5rem) 0 clamp(3rem, 6vw, 5rem); }
.figure-theme-hero h1 { max-width: 14ch; margin: 1rem 0 1.5rem; font: 600 clamp(2.75rem, 6.2vw, 6rem)/1.13 "Shippori Mincho", serif; letter-spacing: -.05em; overflow-wrap: anywhere; }
.figure-theme-hero > div > p:not(.figure-kicker) { max-width: 50rem; margin: 0; color: var(--figure-muted); font: 500 1rem/1.95 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-hero dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-theme-hero dl div { min-height: 7rem; padding: 1rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-theme-hero dt { color: var(--figure-muted); font: 700 .62rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-hero dd { margin: 1rem 0 0; font: 600 2.2rem/1 "Shippori Mincho", serif; }
.figure-theme-hero dd small { margin-left: .2rem; font: 600 .64rem/1 ui-sans-serif, system-ui, sans-serif; }

.figure-theme-performances > div { border-top: 2px solid var(--figure-ink); }
.figure-theme-entry { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) minmax(13rem, .28fr); min-width: 0; border-bottom: 1px solid var(--figure-line); }
.figure-theme-entry.is-historical { background: linear-gradient(90deg, color-mix(in srgb, var(--figure-coral) 7%, transparent), transparent 56%); }
.figure-theme-entry-order { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: 1.5rem 1rem 1.5rem 0; border-right: 1px solid var(--figure-line); }
.figure-theme-entry-order span { color: var(--figure-coral); font: 600 clamp(2rem, 4vw, 4rem)/1 "Shippori Mincho", serif; }
.figure-theme-entry-order time { color: var(--figure-deep); font: 700 .72rem/1.4 ui-monospace, monospace; }
.figure-theme-entry-main { min-width: 0; padding: 1.5rem clamp(1.2rem, 3vw, 2.8rem) 2rem; }
.figure-theme-entry-main > p:first-child { margin: 0 0 .55rem; color: var(--figure-coral); font: 700 .65rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; }
.figure-theme-entry-main h2 { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: baseline; margin: 0; font: 600 clamp(1.8rem, 3.4vw, 3rem)/1.3 "Shippori Mincho", serif; }
.figure-theme-entry-main h2 a { color: var(--figure-ink); text-decoration: underline; text-decoration-color: var(--figure-line); text-underline-offset: .2em; }
.figure-theme-entry-main h2 small { color: var(--figure-muted); font: 500 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main h3 { margin: .8rem 0 1.2rem; color: var(--figure-deep); font: 600 1.1rem/1.55 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-theme-entry-main > ol { margin: 0; padding: 0; border-top: 1px solid var(--figure-line); list-style: none; }
.figure-theme-entry-main > ol li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .7rem; min-width: 0; padding: .9rem 0; border-bottom: 1px solid var(--figure-line); }
.figure-theme-entry-main > ol li > span { color: var(--figure-coral); font: 600 .66rem/1.5 ui-monospace, monospace; }
.figure-theme-entry-main > ol strong { font: 600 .82rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main > ol p { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .5rem; margin: .35rem 0 0; color: var(--figure-muted); font: 500 .7rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main > ol i { color: var(--figure-deep); font-size: .6rem; font-style: normal; font-weight: 700; }
.figure-theme-source-limit { margin: 0; padding: 1rem; border: 1px dashed var(--figure-line); color: var(--figure-muted); font: 500 .72rem/1.6 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main dl { margin: 1rem 0 0; }
.figure-theme-entry-main dl div { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--figure-line); }
.figure-theme-entry-main dt { color: var(--figure-muted); font: 700 .65rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main dd { display: flex; flex-wrap: wrap; gap: .4rem; min-width: 0; margin: 0; color: var(--figure-muted); font: 500 .72rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-entry-main dd span { padding: .25rem .45rem; background: var(--figure-ice); color: var(--figure-deep); font-weight: 700; }
.figure-theme-entry-main > p:not(:first-child) { margin: 1rem 0 0; color: var(--figure-muted); font: 500 .76rem/1.75 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1rem; }
.figure-theme-actions a { color: var(--figure-deep); font: 700 .7rem/1.5 ui-sans-serif, system-ui, sans-serif; text-underline-offset: .22em; }
.figure-theme-result { display: flex; flex-direction: column; min-width: 0; padding: 1.5rem 0 1.5rem 1.4rem; border-left: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-theme-result:hover { background: var(--figure-ice); }
.figure-theme-result span { color: var(--figure-muted); font: 700 .65rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-result strong { margin-top: .7rem; color: var(--figure-coral); font: 600 1.2rem/1.4 "Shippori Mincho", serif; }
.figure-theme-result small { margin-top: .25rem; color: var(--figure-deep); font: 700 .7rem/1.5 ui-sans-serif, system-ui, sans-serif; }

.figure-theme-reading { display: grid; grid-template-columns: minmax(15rem, .35fr) minmax(0, .65fr); gap: 2rem 4rem; padding-bottom: clamp(3rem, 6vw, 5rem); border-bottom: 1px solid var(--figure-line); }
.figure-theme-reading > div > p { margin: 0 0 .65rem; color: var(--figure-coral); font: 700 .65rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .12em; }
.figure-theme-reading h2 { margin: 0; font: 600 clamp(1.8rem, 3.4vw, 3rem)/1.35 "Shippori Mincho", serif; }
.figure-theme-reading > p { margin: 0; color: var(--figure-ink); font: 500 1rem/2 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-reading aside { grid-column: 2; display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding-top: 1.2rem; border-top: 1px solid var(--figure-line); }
.figure-theme-reading aside strong { color: var(--figure-deep); font: 700 .7rem/1.5 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-reading aside span { color: var(--figure-muted); font: 500 .72rem/1.7 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .38fr); margin-top: clamp(3rem, 6vw, 5rem); border: 1px solid var(--figure-ink); }
.figure-theme-feature > div { padding: clamp(1.5rem, 4vw, 3rem); }
.figure-theme-feature > div > p { margin: 0 0 .65rem; color: var(--figure-coral); font: 700 .65rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .12em; }
.figure-theme-feature h2 { margin: 0; font: 600 clamp(1.75rem, 3vw, 2.6rem)/1.35 "Shippori Mincho", serif; text-wrap: balance; }
.figure-theme-feature > div > span { display: block; max-width: 44rem; margin-top: 1rem; color: var(--figure-muted); font: 500 .78rem/1.8 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-feature > a { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1.5rem, 3vw, 2.4rem); border-left: 1px solid var(--figure-ink); background: var(--figure-deep); color: var(--figure-paper); text-decoration: none; }
.figure-theme-feature > a:hover { background: var(--figure-coral); }
.figure-theme-feature > a strong { max-width: 13em; font: 600 1.15rem/1.55 "Shippori Mincho", serif; }
.figure-theme-feature > a em { align-self: flex-end; font: 700 .72rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; }
.figure-theme-related > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-theme-related > div > a { display: flex; flex-direction: column; min-width: 0; min-height: 14rem; padding: 1.3rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-theme-related > div > a:hover { background: var(--figure-ice); }
.figure-theme-related a > span { color: var(--figure-coral); font: 700 .62rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; overflow-wrap: anywhere; }
.figure-theme-related a > strong { margin-top: .8rem; font: 600 1.15rem/1.4 "Shippori Mincho", serif; }
.figure-theme-related a > small { margin-top: .5rem; color: var(--figure-muted); font: 500 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-theme-related a > em { margin-top: auto; padding-top: 1rem; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; }

.figure-competition-hero { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(19rem, .55fr); gap: clamp(2rem, 7vw, 8rem); align-items: end; padding: clamp(4rem, 9vw, 8.5rem) 0 clamp(3rem, 6vw, 5rem); }
.figure-competition-hero h1 { max-width: 15ch; margin: .9rem 0 1.4rem; font: 600 clamp(2.8rem, 6.7vw, 6.6rem)/1.08 "Shippori Mincho", serif; letter-spacing: -.04em; }
.figure-competition-hero h1 b { color: var(--figure-coral); font-weight: inherit; }
.figure-competition-hero > div > p:not(.figure-kicker) { max-width: 48rem; margin: 0; color: var(--figure-muted); font: 500 .9rem/2 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-hero > div > span { display: block; margin-top: 1.35rem; color: var(--figure-deep); font: 700 .68rem/1.5 ui-sans-serif, system-ui, sans-serif; letter-spacing: .04em; }
.figure-competition-hero dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-competition-hero dl div { min-height: 7rem; padding: 1rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-competition-hero dt { color: var(--figure-muted); font: 700 .62rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-hero dd { margin: 1rem 0 0; font: 600 2.2rem/1 "Shippori Mincho", serif; }
.figure-competition-hero dd small { margin-left: .2rem; font: 600 .64rem/1 ui-sans-serif, system-ui, sans-serif; }

.figure-turning-points,
.figure-competition-results,
.figure-music-reading { padding-top: clamp(4.5rem, 9vw, 8rem); scroll-margin-top: 6rem; }
.figure-turning-points > header,
.figure-competition-results > header,
.figure-music-reading > header,
.figure-competition-archives > header { display: grid; grid-template-columns: 9rem minmax(0, 1fr) minmax(15rem, .7fr); gap: 1.5rem; align-items: start; margin-bottom: 2rem; }
.figure-turning-points > header > p,
.figure-competition-results > header > p,
.figure-music-reading > header > p,
.figure-competition-archives > header > p { grid-row: 1 / 3; margin: .25rem 0 0; color: var(--figure-coral); font: 700 .64rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: .12em; }
.figure-turning-points > header h2,
.figure-competition-results > header h2,
.figure-music-reading > header h2,
.figure-competition-archives > header h2 { margin: 0; font: 600 clamp(1.9rem, 3.8vw, 3.5rem)/1.25 "Shippori Mincho", serif; }
.figure-competition-results > header h2 b { color: var(--figure-coral); font-weight: inherit; }
.figure-turning-points > header span,
.figure-competition-results > header span,
.figure-music-reading > header span,
.figure-competition-archives > header span { color: var(--figure-muted); font: 500 .75rem/1.75 ui-sans-serif, system-ui, sans-serif; }
.figure-turning-points > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--figure-line); border-left: 1px solid var(--figure-line); }
.figure-turning-points article { display: flex; flex-direction: column; min-height: 19rem; padding: 1.3rem; border-right: 1px solid var(--figure-line); border-bottom: 1px solid var(--figure-line); }
.figure-turning-points article > span { color: var(--figure-coral); font: 600 .66rem/1 ui-monospace, monospace; }
.figure-turning-points article > p:first-of-type { margin: 2rem 0 .3rem; color: var(--figure-muted); font: 700 .6rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-turning-points h3 { margin: 0 0 1.1rem; font: 600 1.35rem/1.35 "Shippori Mincho", serif; }
.figure-turning-points article > div { display: flex; gap: .55rem; align-items: baseline; padding: .8rem 0; border-block: 1px solid var(--figure-line); }
.figure-turning-points article > div b { font: 600 .7rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-turning-points article > div i { color: var(--figure-coral); font-style: normal; }
.figure-turning-points article > div strong { font: 600 1rem/1.3 "Shippori Mincho", serif; }
.figure-turning-points article > p:last-of-type { color: var(--figure-muted); font: 500 .7rem/1.7 ui-sans-serif, system-ui, sans-serif; }
.figure-turning-points article > a { margin-top: auto; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; }

.figure-competition-results > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.figure-competition-discipline > header { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline; padding-bottom: 1rem; border-bottom: 3px solid var(--figure-deep); }
.figure-competition-discipline > header p { margin: 0; color: var(--figure-coral); font: 700 .64rem/1.3 ui-sans-serif, system-ui, sans-serif; letter-spacing: .1em; }
.figure-competition-discipline > header h2 { margin: 0; font: 600 1.55rem/1.3 "Shippori Mincho", serif; }
.figure-competition-discipline > header a { margin-left: auto; color: var(--figure-deep); font: 700 .65rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-discipline > ol { margin: 0; padding: 0; list-style: none; }
.figure-competition-discipline > ol > li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); border-bottom: 1px solid var(--figure-line); }
.figure-competition-discipline > ol > li.is-context { background: color-mix(in srgb, var(--figure-ice) 42%, transparent); }
.figure-competition-rank { padding: 1.35rem .7rem; border-right: 1px solid var(--figure-line); text-align: center; }
.figure-competition-rank span { display: block; color: var(--figure-coral); font: 600 2rem/1 ui-monospace, monospace; }
.figure-competition-rank strong { display: block; margin-top: .55rem; font: 700 .58rem/1.3 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-discipline article { min-width: 0; padding: 1.3rem 0 1.6rem 1.3rem; }
.figure-competition-discipline article > header > div { display: flex; gap: 1rem; align-items: start; }
.figure-competition-discipline article > header > div > a,
.figure-competition-discipline article > header > div > div { min-width: 0; color: var(--figure-ink); text-decoration: none; }
.figure-competition-discipline article > header h3 { margin: 0; font: 600 1.25rem/1.35 "Shippori Mincho", serif; }
.figure-competition-discipline article > header small { color: var(--figure-muted); font: 500 .64rem/1.4 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-discipline article > header > div > strong { margin-left: auto; color: var(--figure-deep); font: 600 1.55rem/1 "Shippori Mincho", serif; white-space: nowrap; }
.figure-competition-discipline article > header > div > strong small { margin-left: .15rem; font-size: .58rem; }
.figure-competition-discipline article > header > p { margin: .9rem 0 0; color: var(--figure-muted); font: 500 .7rem/1.7 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-programs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: 1.1rem; }
.figure-competition-programs > a { display: flex; flex-direction: column; min-width: 0; min-height: 8.2rem; padding: .8rem; border: 1px solid var(--figure-line); color: var(--figure-ink); text-decoration: none; }
.figure-competition-programs > a:hover { border-color: var(--figure-deep); background: var(--figure-ice); }
.figure-competition-programs > a > span { display: flex; gap: .5rem; justify-content: space-between; align-items: baseline; }
.figure-competition-programs > a > span b { color: var(--figure-coral); font: 700 .65rem/1 ui-sans-serif, system-ui, sans-serif; }
.figure-competition-programs > a > span small { font-size: .58rem; }
.figure-competition-programs > a > strong { display: block; margin-top: .8rem; font: 600 .76rem/1.45 ui-sans-serif, system-ui, sans-serif; overflow-wrap: anywhere; }
.figure-competition-programs > a > em { display: block; margin-top: auto; padding-top: .5rem; color: var(--figure-muted); font: 500 .58rem/1.4 ui-sans-serif, system-ui, sans-serif; font-style: normal; overflow-wrap: anywhere; }
.figure-official-results { display: block; margin-top: 2rem; padding: 1.2rem; border: 1px solid var(--figure-deep); color: var(--figure-deep); font: 700 .75rem/1.4 ui-sans-serif, system-ui, sans-serif; text-align: center; text-decoration: none; }
.figure-official-results:hover { background: var(--figure-deep); color: #fff; }

.figure-music-reading > ol { margin: 0; padding: 0; border-top: 1px solid var(--figure-line); list-style: none; }
.figure-music-reading > ol > li { display: grid; grid-template-columns: 4rem minmax(0, 1fr); min-width: 0; border-bottom: 1px solid var(--figure-line); }
.figure-music-reading > ol > li > span { padding: 1.6rem .8rem; border-right: 1px solid var(--figure-line); color: var(--figure-coral); font: 600 .7rem/1 ui-monospace, monospace; }
.figure-music-reading > ol > li > div { padding: 1.6rem 2rem 1.8rem; }
.figure-music-reading > ol > li > div > p:first-child { margin: 0 0 .35rem; color: var(--figure-coral); font: 700 .6rem/1.3 ui-sans-serif, system-ui, sans-serif; letter-spacing: .1em; }
.figure-music-reading h3 { margin: 0; font: 600 clamp(1.3rem, 2.5vw, 2rem)/1.4 "Shippori Mincho", serif; }
.figure-music-reading h3 + p { max-width: 54rem; margin: .75rem 0 1rem; color: var(--figure-muted); font: 500 .78rem/1.8 ui-sans-serif, system-ui, sans-serif; }
.figure-music-reading a { display: inline-block; margin: .3rem 1rem 0 0; color: var(--figure-deep); font: 700 .68rem/1.4 ui-sans-serif, system-ui, sans-serif; }

.figure-athlete-card a:focus-visible,
.figure-local-nav a:focus-visible,
.figure-profile-nav a:focus-visible,
.figure-athlete-tools button:focus-visible,
.figure-athlete-tools input:focus-visible,
.figure-source-link:focus-visible,
.figure-programs a:focus-visible,
.figure-connections a:focus-visible,
.figure-competition-card a:focus-visible,
.figure-turning-points a:focus-visible,
.figure-competition-programs a:focus-visible,
.figure-official-results:focus-visible,
.figure-music-reading a:focus-visible,
.figure-music-themes a:focus-visible,
.figure-theme-entry a:focus-visible,
.figure-theme-related a:focus-visible { outline: 3px solid var(--figure-coral); outline-offset: 3px; }

@media (max-width: 900px) {
  .figure-hero,
  .figure-profile-hero,
  .figure-competition-hero,
  .figure-theme-hero { grid-template-columns: 1fr; align-items: start; }
  .figure-hero-stats { max-width: 34rem; }
  .figure-choreographer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure-choreographer-grid article:nth-child(3n) { border-right: 1px solid var(--figure-line); }
  .figure-choreographer-grid article:nth-child(even) { border-right: 0; }
  .figure-family-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure-family-grid article:nth-child(2n) { border-right: 0; }
  .figure-family-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--figure-line); }
  .figure-connections > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure-connections > div > a:nth-child(even) { border-right: 0; }
  .figure-profile-programs > div { grid-template-columns: 1fr; }
  .figure-turning-points > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figure-competition-results > div { grid-template-columns: 1fr; }
  .figure-theme-related > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .sports-discipline-bridge { grid-template-columns: 1fr; gap: 1.5rem; }
  .figure-hero { width: 100%; min-width: 0; }
  .figure-hero h1 { max-width: 100%; font-size: clamp(2.45rem, 11vw, 3.35rem); line-break: strict; overflow-wrap: anywhere; }
  .figure-hero-copy > p:last-child { max-width: 100%; overflow-wrap: anywhere; }
  .figure-local-nav,
  .figure-profile-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .figure-local-nav a,
  .figure-profile-nav a { min-width: 0; padding-inline: .7rem; border-bottom: 1px solid var(--figure-line); text-align: center; }
  .figure-local-nav a:nth-child(odd),
  .figure-profile-nav a:nth-child(odd) { border-left: 0; }
  .figure-local-nav a:last-child:nth-child(odd),
  .figure-profile-nav a:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .figure-map > header,
  .figure-athletes > header,
  .figure-choreographers > header,
  .figure-families > header,
  .figure-moments > header,
  .figure-programs > header,
  .figure-profile-programs > header,
  .figure-connections > header,
  .figure-sources > header { grid-template-columns: 1fr; gap: .7rem; }
  .figure-turning-points > header,
  .figure-competition-results > header,
  .figure-music-reading > header,
  .figure-competition-archives > header,
  .figure-music-themes > header,
  .figure-theme-performances > header,
  .figure-theme-related > header { grid-template-columns: 1fr; gap: .7rem; }
  .figure-map > header > p,
  .figure-athletes > header > p,
  .figure-choreographers > header > p,
  .figure-families > header > p,
  .figure-moments > header > p,
  .figure-programs > header > p,
  .figure-profile-programs > header > p,
  .figure-connections > header > p,
  .figure-sources > header > p { grid-row: auto; }
  .figure-turning-points > header > p,
  .figure-competition-results > header > p,
  .figure-music-reading > header > p,
  .figure-competition-archives > header > p,
  .figure-music-themes > header > p,
  .figure-theme-performances > header > p,
  .figure-theme-related > header > p { grid-row: auto; }
  .figure-map > ol { grid-template-columns: 1fr; }
  .figure-map > ol > li { border-right: 0; }
  .figure-athlete-tools { grid-template-columns: 1fr; }
  .figure-athlete-grid { grid-template-columns: 1fr; }
  .figure-competition-archives > div { grid-template-columns: 1fr; }
  .figure-music-themes > div { grid-template-columns: 1fr; }
  .figure-music-themes article:last-child:nth-child(odd) { grid-column: auto; }
  .figure-music-themes article > a { grid-template-columns: 2rem minmax(0, 1fr); min-height: 0; padding: 1.3rem; }
  .figure-competition-card > a { grid-template-columns: 1fr; min-height: 0; padding: 1.3rem; border-right: 0; }
  .figure-competition-card > a > p { grid-template-columns: 1fr; }
  .figure-athlete-card { border-right: 0; }
  .figure-athlete-card > a { grid-template-columns: 2rem minmax(0, 1fr); grid-template-areas: "number meta" "number name" "number english" "stats stats" "tracks tracks" "more more"; min-height: 0; }
  .figure-athlete-card dl { justify-content: flex-start; margin-top: 1rem; }
  .figure-athlete-card dl div { text-align: left; }
  .figure-choreographer-grid { grid-template-columns: 1fr; }
  .figure-choreographer-grid article,
  .figure-choreographer-grid article:nth-child(3n) { border-right: 0; }
  .figure-family-grid { grid-template-columns: 1fr; }
  .figure-family-grid article { border-right: 0; }
  .figure-family-grid p { min-height: 0; }
  .figure-moments > ol > li,
  .figure-moments > ol > li.is-athlete-page { grid-template-columns: 1fr; }
  .figure-moment-date { flex-direction: row; align-items: center; padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--figure-line); }
  .figure-moment-date span { font-size: 2rem; }
  .figure-moments article { padding-inline: 0; }
  .figure-moment-scores { grid-template-columns: 1fr; }
  .figure-moment-athlete { min-height: 7rem; padding: 1rem 0; border-top: 1px dashed var(--figure-line); border-left: 0; }
  .figure-moment-athlete em { padding-top: .8rem; }
  .figure-programs > ol > li > a { grid-template-columns: 1fr; gap: .8rem; }
  .figure-programs a > em { padding-top: .4rem; border-top: 1px dashed var(--figure-line); }
  .figure-method { grid-template-columns: 1fr; }
  .figure-method > span { grid-column: 1; }
  .figure-profile-hero h1 { font-size: clamp(3rem, 17vw, 5rem); }
  .figure-program-card { padding: 1.35rem; }
  .figure-program-card > ol p { grid-template-columns: 1fr; gap: .1rem; }
  .figure-connections > div { grid-template-columns: 1fr; }
  .figure-connections > div > a { min-height: 11rem; border-right: 0; }
  .figure-competition-hero h1 { max-width: 100%; font-size: clamp(2.45rem, 11vw, 3.4rem); overflow-wrap: anywhere; }
  .figure-theme-hero h1 { max-width: 100%; font-size: clamp(2.4rem, 10.5vw, 3.35rem); }
  .figure-theme-entry { grid-template-columns: 1fr; }
  .figure-theme-entry-order { flex-direction: row; align-items: center; padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--figure-line); }
  .figure-theme-entry-order span { font-size: 2rem; }
  .figure-theme-entry-main { padding-inline: 0; }
  .figure-theme-entry-main > ol p { grid-template-columns: 1fr; gap: .1rem; }
  .figure-theme-result { min-height: 7rem; padding: 1rem 0; border-top: 1px dashed var(--figure-line); border-left: 0; }
  .figure-theme-reading { grid-template-columns: 1fr; }
  .figure-theme-reading aside { grid-column: 1; grid-template-columns: 1fr; gap: .4rem; }
  .figure-theme-feature { grid-template-columns: 1fr; }
  .figure-theme-feature > a { min-height: 9rem; border-top: 1px solid var(--figure-ink); border-left: 0; }
  .figure-theme-related > div { grid-template-columns: 1fr; }
  .figure-theme-related > div > a { min-height: 10rem; }
  .figure-turning-points > div { grid-template-columns: 1fr; }
  .figure-turning-points article { min-height: 15rem; }
  .figure-competition-discipline > ol > li { grid-template-columns: 3.6rem minmax(0, 1fr); }
  .figure-competition-rank { padding-inline: .4rem; }
  .figure-competition-rank span { font-size: 1.45rem; }
  .figure-competition-discipline article { padding-left: 1rem; }
  .figure-competition-programs { grid-template-columns: 1fr; }
  .figure-music-reading > ol > li { grid-template-columns: 2.7rem minmax(0, 1fr); }
  .figure-music-reading > ol > li > span { padding-inline: .55rem; }
  .figure-music-reading > ol > li > div { padding: 1.3rem 1rem 1.5rem; }
  .figure-sources li { grid-template-columns: 2rem minmax(0, 1fr); }
  .figure-sources li > a { grid-column: 2; }
}
