@layer components {
  /* Hero (ink) */
  @scope (.mf-hero) {
    :scope {
      padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5rem);
    }
    .mf-hero__title {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(2.1rem, 5.5vw, 4.25rem);
      line-height: 1.0;
      letter-spacing: -0.025em;
      margin: 0 0 clamp(1.75rem, 4vw, 2.75rem);
      max-inline-size: 20ch;
      text-wrap: balance;
      text-transform: none;
    }
    .mf-hero__lede {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.4rem, 3vw, 2.25rem);
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--gold);
      margin: 0;
      text-transform: none;
    }
  }

  /* Article (paper, 720px reading column) */
  @scope (.manifesto) {
    :scope {
      padding-block: clamp(3rem, 7vw, 6rem);
    }
    .manifesto__inner {
      max-inline-size: var(--content-read);
      margin-inline: auto;
      display: grid;
      gap: clamp(3rem, 6vw, 5rem);
    }

    .manifesto__section p {
      font-size: clamp(1.08rem, 1.5vw, 1.28rem);
      line-height: 1.7;
      margin: 0 0 1.35rem;
      color: rgba(12, 14, 10, 0.82);
    }
    .manifesto__section p:last-child { margin-block-end: 0; }
    .manifesto__section p strong { font-weight: 700; color: var(--ink); }
    .manifesto__section p em { font-style: italic; }
    .manifesto__section p a {
      color: inherit;
      text-decoration: underline;
      text-decoration-color: rgba(12, 14, 10, 0.35);
      text-underline-offset: 3px;
      transition: text-decoration-color 120ms ease;
    }
    .manifesto__section p a:hover {
      text-decoration-color: var(--green-deep);
    }

    .manifesto__index {
      font-family: var(--font-mono);
      font-size: 0.74rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--green-deep);
      margin: 0 0 0.6rem;
    }

    .manifesto__section h2 {
      font-size: clamp(1.6rem, 3.5vw, 2.6rem);
      line-height: 1.05;
      letter-spacing: -0.02em;
      text-transform: uppercase;
      margin: 0 0 1.5rem;
    }

    /* Liga list — 6-item hairline grid */
    .manifesto__ligas {
      list-style: none;
      margin: 0 0 1.6rem;
      padding: 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 1px;
      background: rgba(12, 14, 10, 0.14);
      border: 1px solid rgba(12, 14, 10, 0.14);
    }
    .manifesto__ligas li {
      background: var(--paper);
      display: flex;
      align-items: center;
      gap: 11px;
      padding: 0.9rem 1.1rem;
    }
    .manifesto__liga-info {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-inline-size: 0;
    }
    .manifesto__liga-name {
      font-weight: 600;
      font-size: 1.02rem;
      line-height: 1.2;
    }
    .manifesto__liga-note {
      color: rgba(12, 14, 10, 0.5);
      font-weight: 400;
      font-size: 0.82rem;
      line-height: 1.2;
    }

    /* Pull-quote (green rule) */
    .manifesto__pullquote {
      margin: 0 0 clamp(2rem, 4vw, 3rem);
      border-inline-start: 5px solid var(--green);
      padding: 0.25rem 0 0.25rem clamp(1.25rem, 3vw, 2rem);
    }
    .manifesto__pullquote p {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.5rem, 3.5vw, 2.4rem);
      line-height: 1.15;
      letter-spacing: -0.015em;
      margin: 0;
      text-transform: none;
    }
    .manifesto__pull-accent { color: var(--green-deep); }

    /* FAQ (accordion) */
    .manifesto__q {
      border-block-start: 1px solid rgba(12, 14, 10, 0.14);
      padding-block: clamp(1rem, 2vw, 1.35rem);
    }
    .manifesto__q:last-of-type {
      border-block-end: 1px solid rgba(12, 14, 10, 0.14);
    }
    .manifesto__q > summary {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.15rem, 2.2vw, 1.5rem);
      line-height: 1.25;
      letter-spacing: -0.01em;
      color: var(--ink);
      cursor: pointer;
      list-style: none;
      display: flex;
      gap: 14px;
      align-items: baseline;
      padding-inline-end: 1rem;
    }
    .manifesto__q > summary::-webkit-details-marker { display: none; }
    .manifesto__q > summary::before {
      content: '+';
      font-family: var(--font-sans);
      font-weight: 700;
      font-size: 1.1em;
      line-height: 1;
      color: var(--green-deep);
      flex: 0 0 auto;
      transition: transform 150ms ease;
    }
    .manifesto__q[open] > summary::before {
      content: '−';
    }
    .manifesto__q[open] > summary { margin-block-end: 1rem; }

    /* Objections */
    .manifesto__objecao {
      border-block-start: 2px solid var(--ink);
      padding-block-start: 1.5rem;
      margin-block-end: 2.5rem;
    }
    .manifesto__objecao:last-child { margin-block-end: 0; }
    .manifesto__objecao .manifesto__objecao-quote {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.4rem, 2.8vw, 1.95rem);
      line-height: 1.15;
      color: var(--terra);
      margin: 0 0 1.5rem;
    }

    .manifesto__result-table {
      margin: 0 0 2rem;
      overflow-x: auto;
    }
    .manifesto__result-table table {
      inline-size: 100%;
      border-collapse: collapse;
      font-size: 0.9rem;
    }
    .manifesto__result-table th,
    .manifesto__result-table td {
      padding: 0.6rem 0.75rem;
      text-align: end;
      border-block-end: 1px solid rgba(12, 14, 10, 0.14);
      font-variant-numeric: tabular-nums;
    }
    .manifesto__result-table th[scope="row"] {
      text-align: start;
      font-weight: 700;
    }
    .manifesto__result-table thead th {
      font-family: var(--font-mono);
      font-size: 0.7rem;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: rgba(12, 14, 10, 0.55);
      border-block-end: 2px solid rgba(12, 14, 10, 0.35);
    }
    .manifesto__result-table figcaption {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      color: rgba(12, 14, 10, 0.55);
      margin-block-start: 0.75rem;
      max-inline-size: 60ch;
      text-align: start;
      line-height: 1.5;
    }

    ::selection {
      background: var(--gold);
      color: var(--ink);
    }
  }

  /* Finale (ink) */
  @scope (.mf-finale) {
    :scope {
      padding-block: clamp(4rem, 9vw, 7rem);
    }
    .mf-finale__quote {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.9rem, 5vw, 3.75rem);
      line-height: 1.05;
      letter-spacing: -0.025em;
      margin: 0;
      max-inline-size: 20ch;
      text-wrap: balance;
      text-transform: none;
    }
    .mf-finale__accent { color: var(--gold); }
    .mf-finale__nav {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-block-start: clamp(2.5rem, 5vw, 4rem);
    }
  }
}
