/* V3.C1 — Typography & Interaction Authority
 * Owns font scale, text rhythm and generic textual interactions.
 * No section paint, no layout grids, no artifact geometry and no masthead styling.
 */

.sne-v3 {
  font-family: var(--sne-font-text);
  font-weight: var(--sne-text-weight);
  letter-spacing: var(--sne-text-tracking);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.sne-v3 .pub-kicker,
.sne-v3 .pub-index,
.sne-v3 .deep-number {
  font-family: var(--sne-font-text);
  font-size: 9px;
  line-height: 1.25;
  letter-spacing: .155em;
  text-transform: uppercase;
  font-weight: 650;
}

/* Home type. */
.sne-v3 .pub-hero h1 {
  max-width: 12.4ch;
  margin: 0;
  font-family: var(--sne-font-display);
  font-size: clamp(41px, 3.42vw, 54px);
  font-weight: var(--sne-display-hero-weight);
  line-height: 1.075;
  letter-spacing: -.018em;
  text-wrap: pretty;
}
.sne-v3 .pub-hero > p {
  max-width: 39ch;
  margin: 0;
  font-family: var(--sne-font-text);
  font-size: clamp(15.5px, .96vw, 17px);
  line-height: 1.76;
  letter-spacing: -.002em;
}

.sne-v3 .pub-copy h2,
.sne-v3 .pub-band h2 {
  max-width: 560px;
  margin: 0;
  font-family: var(--sne-font-display);
  font-size: clamp(36px, 3.15vw, 50px);
  font-weight: var(--sne-display-section-weight);
  line-height: 1.035;
  letter-spacing: -.031em;
  text-wrap: pretty;
}
.sne-v3 .pub-copy p,
.sne-v3 .pub-band p {
  max-width: 500px;
  margin: 0;
  font-family: var(--sne-font-text);
  font-size: clamp(16px, 1.04vw, 18px);
  line-height: 1.66;
  letter-spacing: -.004em;
}

.sne-v3 .pub-reality blockquote {
  max-width: 820px;
  margin: 0;
  font-family: var(--sne-font-display);
  font-size: clamp(32px, 2.85vw, 44px);
  font-weight: 450;
  line-height: 1.105;
  letter-spacing: -.024em;
  text-wrap: pretty;
}
.sne-v3 .pub-reality > p {
  max-width: 36ch;
  margin: 0;
  font-size: 14px;
  line-height: 1.76;
}

.sne-v3 .pub-research-callout h2 {
  max-width: 760px;
  margin: 0;
  font-family: var(--sne-font-display);
  font-size: clamp(34px, 2.85vw, 44px);
  line-height: 1.07;
  letter-spacing: -.026em;
  font-weight: var(--sne-display-section-weight);
  text-wrap: pretty;
}
.sne-v3 .pub-research-callout > p { max-width: 38ch; margin: 0; font-size: 16px; line-height: 1.7; }

.sne-v3 .pub-terminal h2 {
  max-width: 760px;
  margin: 0;
  font-family: var(--sne-font-display);
  font-size: clamp(38px, 3.15vw, 50px);
  line-height: 1.045;
  letter-spacing: -.03em;
  font-weight: var(--sne-display-section-weight);
  text-wrap: pretty;
}
.sne-v3 .pub-terminal p { max-width: 54ch; margin: 0; font-size: 17px; line-height: 1.68; }

/* Shared links and actions. */
.sne-v3 .pub-action {
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  border: 0;
  border-bottom: 1px solid currentColor;
  text-decoration: none;
  font-size: 13px;
  font-weight: 620;
  transition: color var(--sne-micro-fast) ease, border-color var(--sne-micro-normal) ease, background-color var(--sne-micro-normal) ease;
}
.sne-v3 .pub-action::after { content: '→'; transition: transform var(--sne-micro-normal) cubic-bezier(.2,0,.38,.9); }
.sne-v3 .pub-action:hover::after { transform: translateX(2px); }
.sne-v3 .pub-action--primary { min-height: 46px; padding: 0 18px; border: 1px solid currentColor; }
.sne-v3 .pub-action--large { min-height: 54px; padding: 0 24px; font-size: 14px; }

.sne-v3 .pub-depth {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 5px;
  font-size: 13px;
  transition: color var(--sne-micro-fast) ease, border-color var(--sne-micro-normal) ease;
}
.sne-v3 .pub-depth span {
  display: inline-block;
  transition: transform var(--sne-micro-normal) cubic-bezier(.2,0,.38,.9);
}
.sne-v3 .pub-depth:hover span { transform: translate(2px, -1px); }

.sne-v3 .pub-footer { font-size: 11px; letter-spacing: .02em; }
.sne-v3 .pub-footer a { text-decoration: none; }
.sne-v3 a:focus-visible { outline: 1px solid rgba(155,220,255,.88); outline-offset: 5px; }

@media (max-width: 1180px) {
  .sne-v3 .pub-hero h1 { max-width: 12.7ch; font-size: clamp(39px, 3.95vw, 50px); letter-spacing: -.016em; }
}

@media (max-width: 980px) {
  .sne-v3 .pub-hero h1 { max-width: 14.2ch; font-size: clamp(37px, 5.7vw, 48px); line-height: 1.085; letter-spacing: -.014em; }
}

@media (max-width: 700px) {
  .sne-v3 .pub-hero h1 { max-width: 100%; font-size: clamp(34px, 9.1vw, 42px); line-height: 1.1; letter-spacing: -.012em; }
  .sne-v3 .pub-hero > p { max-width: 34ch; line-height: 1.72; }
  .sne-v3 .pub-copy h2,
  .sne-v3 .pub-band h2 { font-size: clamp(30px, 8.3vw, 39px); }
  .sne-v3 .pub-research-callout h2 { font-size: clamp(29px, 7.8vw, 37px); }
  .sne-v3 .pub-terminal h2 { font-size: clamp(32px, 8.5vw, 40px); }
  .sne-v3 .pub-reality blockquote { font-size: clamp(28px, 7.7vw, 36px); }
}

@media (prefers-reduced-motion: reduce) {
  .sne-v3 .pub-action,
  .sne-v3 .pub-action::after,
  .sne-v3 .pub-depth,
  .sne-v3 .pub-depth span { transition: none; }
}
