/* ANTENG typography and text-color art direction for all three public themes. */

.theme-a,
.inner-theme-a {
  --type-heading: "League Spartan ANTENG", "Noto Sans", "Microsoft YaHei", Arial, sans-serif;
  --type-hero: "League Gothic ANTENG", "Arial Narrow", "Microsoft YaHei", sans-serif;
  --type-editorial: "Fanwood Text ANTENG", "Noto Serif", "Songti SC", Georgia, serif;
  --type-body: "League Spartan ANTENG", "Noto Sans", "Microsoft YaHei", Arial, sans-serif;
  --type-data: "League Mono ANTENG", "Noto Sans Mono", "Microsoft YaHei", monospace;
  --text-title: #f7fbff;
  --text-body: #cbd3dc;
  --text-muted: #9ba8b5;
  --text-data: #9aebff;
  --text-action: #ff9abc;
  --text-line: rgba(154, 235, 255, .42);
}

.theme-b,
.inner-theme-b {
  --type-heading: "League Gothic ANTENG", "Arial Narrow", "Microsoft YaHei", sans-serif;
  --type-hero: "League Gothic ANTENG", "Arial Narrow", "Microsoft YaHei", sans-serif;
  --type-editorial: "Fanwood Text ANTENG", "Noto Serif", "Songti SC", Georgia, serif;
  --type-body: "Fanwood Text ANTENG", "Noto Serif", "Songti SC", Georgia, serif;
  --type-data: "Junction ANTENG", "Noto Sans", "Microsoft YaHei", Arial, sans-serif;
  --text-title: #f3eff8;
  --text-body: #cbc5d2;
  --text-muted: #aaa4b4;
  --text-data: #cbb6ff;
  --text-action: #a9edff;
  --text-line: rgba(203, 182, 255, .4);
}

.theme-c,
.inner-theme-c {
  --type-heading: "Sorts Mill Goudy ANTENG", "KaiTi", "STKaiti", "Noto Serif", Georgia, serif;
  --type-hero: "Sorts Mill Goudy ANTENG", "KaiTi", "STKaiti", "Noto Serif", Georgia, serif;
  --type-editorial: "Prociono ANTENG", "KaiTi", "STKaiti", "Noto Serif", Georgia, serif;
  --type-body: "Prociono ANTENG", "KaiTi", "STKaiti", "Noto Serif", Georgia, serif;
  --type-data: "Ostrich Sans ANTENG", "Noto Sans Condensed", "Microsoft YaHei", Arial, sans-serif;
  --text-title: #0b1020;
  --text-body: #353b50;
  --text-muted: #5b6277;
  --text-data: #173bd3;
  --text-action: #4d6900;
  --text-line: rgba(23, 59, 211, .3);
}

/* Shared role system */
.theme-a,
.theme-b,
.theme-c,
.inner-theme {
  color: var(--text-body);
  font-family: var(--type-body);
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
}

:is(.theme-a, .theme-b, .theme-c, .inner-theme) :is(h1, h2, h3) {
  color: var(--text-title);
  font-family: var(--type-heading);
  font-weight: 400;
}

:is(.theme-a, .theme-b, .theme-c, .inner-theme) :is(p, li, dt, dd, figcaption, input, textarea) {
  color: var(--text-body);
}

:is(.theme-a, .theme-b, .theme-c, .inner-theme) :is(nav, button, label, .language-switcher, .inner-contact-link, .inner-card-action) {
  font-family: var(--type-data);
}

:is(.theme-a, .theme-b, .theme-c, .inner-theme) input::placeholder,
:is(.theme-a, .theme-b, .theme-c, .inner-theme) textarea::placeholder {
  color: var(--text-muted);
  opacity: 1;
}

/* Theme A: optical engineering, prismatic highlights. */
.theme-a .v3-nav,
.inner-theme-a .inner-nav {
  color: var(--text-title);
}

.theme-a .v3-nav nav a,
.inner-theme-a .inner-nav > nav a {
  color: #d9e3ec;
  font-variation-settings: "wdth" 108;
}

.theme-a .v3-nav nav a:hover,
.inner-theme-a .inner-nav > nav a:hover,
.inner-theme-a .inner-nav > nav a.active {
  color: var(--text-data);
}

.theme-a .v3-hero-copy > p {
  position: relative;
  width: max-content;
  padding-left: 18px;
  color: var(--text-data);
  font-family: var(--type-data);
  font-size: 10px;
  font-weight: 650;
}

.theme-a .v3-hero-copy > p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 9px;
  height: 1px;
  background: var(--text-action);
}

.theme-a .v3-hero-copy h1 {
  color: var(--text-title);
  font-family: var(--type-hero);
  font-size: clamp(88px, 11vw, 132px);
  font-weight: 400;
  line-height: .78;
  text-shadow: 1px 0 0 rgba(154, 235, 255, .72), -1px 0 0 rgba(255, 154, 188, .58), 0 18px 38px rgba(0, 0, 0, .42);
}

.theme-a .v3-hero-line h2 {
  color: #f4f7fb;
  font-family: var(--type-editorial);
  font-size: clamp(38px, 4.4vw, 58px);
  font-style: italic;
  line-height: .96;
}

.theme-a .v3-hero-line p {
  color: #c8d5df;
  font-family: var(--type-body);
  font-size: 15px;
}

.theme-a .v3-hero-line {
  border-color: var(--text-line);
}

.theme-a :is(.v3-intro-kicker, .v3-projects > header > p, .v3-making-copy > span, .home-insights header > span),
.inner-theme-a :is(.inner-hero-kicker, .inner-card-meta, .inner-detail-code, .inner-breadcrumb) {
  color: var(--text-data);
}

.theme-a :is(.v3-intro-copy p, .v3-making-copy > p, .home-insight p),
.inner-theme-a :is(.inner-hero-copy, .inner-card p, .inner-detail-copy > .lead, .inner-specs dt) {
  color: var(--text-muted);
}

.theme-a :is(.v3-line-link, .v3-prism-button, .home-insight b),
.inner-theme-a :is(.inner-card-action, .inner-3d-link) {
  color: var(--text-action);
}

.theme-a .v3-systems :is(h2, h3) {
  color: #101621;
}

.theme-a .v3-systems :is(p, .v3-system-copy > span) {
  color: #3e4a59;
}

.theme-a .v3-contact :is(h2, label, p) {
  color: #111722;
}

/* Theme B: smoked cinema, luminous aurora typography. */
.theme-b .b-nav,
.inner-theme-b .inner-nav {
  color: var(--text-title);
}

.theme-b .b-nav nav a,
.inner-theme-b .inner-nav > nav a {
  color: #d4cddd;
}

.theme-b .b-nav nav a:hover,
.inner-theme-b .inner-nav > nav a:hover,
.inner-theme-b .inner-nav > nav a.active {
  color: var(--text-action);
}

.theme-b .b-hero-copy > p {
  color: var(--text-action);
  font-family: var(--type-data);
  font-size: 10px;
}

.theme-b .b-hero h1 {
  max-width: 10ch;
  color: var(--text-title);
  font-family: var(--type-hero);
  font-weight: 400;
  line-height: .82;
  text-shadow: 0 0 28px rgba(203, 182, 255, .24), 1px 1px 0 rgba(169, 237, 255, .38);
}

.theme-b .b-hero-copy > div span {
  color: #c9c1d2;
  font-family: var(--type-data);
}

.theme-b .b-hero-note p,
.theme-b :is(.b-statement > p, .b-system p, .b-making-copy p, .home-insight p) {
  color: var(--text-muted);
  font-family: var(--type-editorial);
}

.theme-b :is(.b-statement > span, .b-systems header > span, .b-making-copy > span, .b-contact > span, .home-insights header > span),
.inner-theme-b :is(.inner-hero-kicker, .inner-card-meta, .inner-detail-code, .inner-breadcrumb) {
  color: var(--text-data);
}

.theme-b :is(.b-system a, .b-making-copy a, .home-insight b),
.inner-theme-b :is(.inner-card-action, .inner-3d-link) {
  color: var(--text-action);
}

.inner-theme-b :is(.inner-hero-copy, .inner-card p, .inner-detail-copy > .lead, .inner-specs dt) {
  color: var(--text-muted);
}

.inner-theme-b .inner-body {
  color: var(--text-body);
  font-family: var(--type-editorial);
}

.inner-theme-b .inner-body :is(h2, h3) {
  color: #e7dcff;
  font-family: var(--type-heading);
}

/* Theme C: opaline gallery, ink and cobalt captions. */
.theme-c .c-nav,
.inner-theme-c .inner-nav {
  color: var(--text-title);
}

.theme-c .c-nav nav a,
.inner-theme-c .inner-nav > nav a {
  color: #292f43;
}

.theme-c .c-nav nav a:hover,
.inner-theme-c .inner-nav > nav a:hover,
.inner-theme-c .inner-nav > nav a.active {
  color: var(--text-data);
}

.theme-c .c-hero-copy > p {
  position: relative;
  width: max-content;
  padding-bottom: 8px;
  color: var(--text-data);
  font-family: var(--type-data);
  font-size: 13px;
  font-weight: 700;
}

.theme-c .c-hero-copy > p::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 58px;
  height: 2px;
  background: #638500;
}

.theme-c .c-hero h1 {
  color: #111b55;
  font-family: var(--type-hero);
  font-style: italic;
  line-height: .94;
}

.theme-c .c-hero-copy > span {
  color: var(--text-body);
  font-family: var(--type-editorial);
}

.theme-c :is(.c-premise > span, .c-objects header > span, .c-gallery header > span, .c-making-head > span, .c-contact > span, .home-insights header > span),
.inner-theme-c :is(.inner-hero-kicker, .inner-card-meta, .inner-detail-code, .inner-breadcrumb) {
  color: var(--text-data);
}

.theme-c :is(.c-premise > p, .c-objects header p, .c-object-track p, .home-insight p),
.inner-theme-c :is(.inner-hero-copy, .inner-card p, .inner-detail-copy > .lead, .inner-specs dt) {
  color: var(--text-muted);
}

.theme-c :is(.c-object-track a, .c-making-grid > div a, .home-insight b),
.inner-theme-c :is(.inner-card-action, .inner-3d-link) {
  color: var(--text-data);
}

.inner-theme-c .inner-body {
  color: var(--text-body);
  font-family: var(--type-editorial);
}

.inner-theme-c .inner-body :is(h2, h3) {
  color: #142b94;
  font-family: var(--type-heading);
}

/* Inner pages: consistent hierarchy, theme-specific color tokens. */
.inner-theme :is(.inner-hero h1, .inner-detail-copy h1) {
  color: var(--text-title);
  font-family: var(--type-hero);
}

.inner-theme-a :is(.inner-hero h1, .inner-detail-copy h1) {
  text-shadow: 1px 0 0 rgba(154, 235, 255, .42), -1px 0 0 rgba(255, 154, 188, .3);
}

.inner-theme-b :is(.inner-hero h1, .inner-detail-copy h1) {
  color: #eee7f8;
  text-shadow: 0 0 25px rgba(203, 182, 255, .16);
}

.inner-theme-c :is(.inner-hero h1, .inner-detail-copy h1) {
  color: #10194a;
  font-style: italic;
}

.inner-theme .inner-card h2,
.inner-theme .inner-related h2,
.inner-theme .inner-inquiry > h2,
.inner-theme .inner-specs h2 {
  color: var(--text-title);
}

.inner-theme .inner-card-meta,
.inner-theme .inner-hero-meta,
.inner-theme .inner-detail-code,
.inner-theme .inner-breadcrumb {
  font-family: var(--type-data);
}

.inner-theme .inner-hero-meta {
  color: var(--text-muted);
  border-color: var(--text-line);
}

.inner-theme .inner-card-action,
.inner-theme .inner-3d-link {
  font-family: var(--type-data);
}

.inner-theme .inner-footer {
  color: var(--text-body);
}

.inner-theme .inner-footer strong {
  color: var(--text-title);
  font-family: var(--type-heading);
}

.inner-theme .inner-filter a {
  color: var(--text-muted);
}

.inner-theme .inner-filter a:hover,
.inner-theme .inner-filter a.active {
  color: var(--on-accent);
}

.inner-theme :is(.inquiry-form input, .inquiry-form textarea) {
  color: var(--text-body);
  border-color: var(--text-line);
}

.inner-theme :is(.inquiry-form label, .consent) {
  color: var(--text-muted);
}

/* Section color composition: color carries meaning, not decoration. */
.theme-a .v3-hero-copy h1 {
  color: #dff7ff;
}

.theme-a .v3-hero-line h2 {
  color: #ffabc6;
}

.theme-a .v3-intro h2 {
  color: #e3f8ff;
}

.theme-a .v3-systems > header h2 {
  color: #1b285f;
}

.theme-a .v3-system-copy h3 {
  color: #174452;
}

.theme-a .v3-system-copy > p {
  color: #48566d;
}

.theme-a .v3-projects > header h2 {
  color: #d8f6ff;
}

.theme-a .v3-making-copy h2 {
  color: #ffd3e1;
}

.theme-a .home-insights header h2 {
  color: #ddffad;
}

.theme-a .home-insights header > a {
  color: #ffabc6;
}

.theme-a .home-insight h3 {
  color: #e7f7ff;
}

.theme-a .v3-contact h2 {
  color: #202b63;
}

.theme-b .b-hero h1 {
  color: #ede3ff;
}

.theme-b .b-statement h2 {
  color: #dccbff;
}

.theme-b .b-systems h2 {
  color: #b7efff;
}

.theme-b .b-system h3 {
  color: #f2eafa;
}

.theme-b .b-project-title h2 {
  color: #b3ecff;
}

.theme-b .b-making-copy h2 {
  color: #e5d4ff;
}

.theme-b .home-insights header h2 {
  color: #c9f2ff;
}

.theme-b .home-insights header > a,
.theme-b .home-insight h3 {
  color: #dfd0ff;
}

.theme-b .b-contact h2 {
  color: #f0e8ff;
}

.theme-c .c-hero h1 {
  color: #182f92;
}

.theme-c .c-premise h2 {
  color: #233e9a;
}

.theme-c .c-objects h2 {
  color: #16265e;
}

.theme-c .c-object-track h3 {
  color: #4b6800;
}

.theme-c .c-gallery h2 {
  color: #1a38ac;
}

.theme-c .c-making-head h2 {
  color: #425e00;
}

.theme-c .home-insights header h2,
.theme-c .home-insights header > a {
  color: #173bd3;
}

.theme-c .home-insight h3 {
  color: #23347c;
}

.theme-c .c-contact h2 {
  color: #17224f;
}

.theme-b .b-footer,
.theme-c .c-footer {
  grid-template-columns: 2fr 1fr;
}

/* Inner destinations keep the same semantic color map. */
.inner-theme-a[data-page-kind^="product"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #dff7ff;
}

.inner-theme-a[data-page-kind^="project"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #ffd0df;
}

.inner-theme-a[data-page-kind^="post"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #ddffad;
}

.inner-theme-b[data-page-kind^="product"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #dfd0ff;
}

.inner-theme-b[data-page-kind^="project"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #b7efff;
}

.inner-theme-b[data-page-kind^="post"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #f0d4ff;
}

.inner-theme-c[data-page-kind^="product"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #172f91;
}

.inner-theme-c[data-page-kind^="project"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #405b00;
}

.inner-theme-c[data-page-kind^="post"] :is(.inner-hero h1, .inner-detail-copy h1, .inner-card h2) {
  color: #173bd3;
}

@media (max-width: 700px) {
  .theme-b .b-footer,
  .theme-c .c-footer {
    grid-template-columns: 1fr 1fr;
  }

  .theme-a .v3-hero-copy h1 {
    font-size: 88px;
  }

  .theme-a .v3-hero-line h2 {
    font-size: 39px;
  }

  .theme-c .c-hero h1 {
    font-size: 51px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(.theme-a, .inner-theme-a) :is(h1, h2, h3) {
    text-shadow: none;
  }
}
