:root {
  color-scheme: light;

  --gc-font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display",
    "SF Pro Text", "Helvetica Neue", "Hiragino Sans",
    "Hiragino Kaku Gothic ProN", Arial, sans-serif;

  --gc-ink-strong: #101010;
  --gc-ink-primary: #1d1d1f;
  --gc-ink-secondary: #424245;
  --gc-ink-muted: #6e6e73;
  --gc-ink-inverse: #ffffff;

  --gc-surface-canvas: #ffffff;
  --gc-surface-soft: #f5f5f7;
  --gc-surface-cool: #f1f4f6;
  --gc-surface-dark: #101010;
  --gc-border-subtle: #d2d2d7;
  --gc-border-soft: #e8e8ed;

  --gc-action-primary: #0071e3;
  --gc-action-hover: #0077ed;
  --gc-action-pressed: #0068d1;
  --gc-action-soft: #e8f1ff;

  --gc-stage-1: #0071e3;
  --gc-stage-2: #00a67e;
  --gc-stage-3: #ff8a00;
  --gc-stage-4: #ff5a5f;
  --gc-stage-5: #7c4dff;
  --gc-stage-6: #d43f8d;
  --gc-stage-7: #009fb7;
  --gc-stage-accent: var(--gc-stage-1);

  --gc-space-1: 4px;
  --gc-space-2: 8px;
  --gc-space-3: 12px;
  --gc-space-4: 16px;
  --gc-space-5: 24px;
  --gc-space-6: 32px;
  --gc-space-7: 48px;
  --gc-space-8: 64px;
  --gc-space-9: 96px;
  --gc-space-10: 128px;

  --gc-radius-small: 8px;
  --gc-radius-standard: 12px;
  --gc-radius-large: 16px;
  --gc-radius-pill: 999px;

  --gc-content-max: 1120px;
  --gc-reading-max: 720px;
  --gc-shadow-raised: 0 8px 30px rgba(0, 0, 0, 0.08);
  --gc-shadow-overlay: 0 20px 60px rgba(0, 0, 0, 0.16);
}

[data-stage="1"] { --gc-stage-accent: var(--gc-stage-1); }
[data-stage="2"] { --gc-stage-accent: var(--gc-stage-2); }
[data-stage="3"] { --gc-stage-accent: var(--gc-stage-3); }
[data-stage="4"] { --gc-stage-accent: var(--gc-stage-4); }
[data-stage="5"] { --gc-stage-accent: var(--gc-stage-5); }
[data-stage="6"] { --gc-stage-accent: var(--gc-stage-6); }
[data-stage="7"] { --gc-stage-accent: var(--gc-stage-7); }

.gc-root {
  background: var(--gc-surface-canvas);
  color: var(--gc-ink-primary);
  font-family: var(--gc-font-sans);
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.gc-container {
  width: min(calc(100% - 48px), var(--gc-content-max));
  margin-inline: auto;
}

.gc-reading-width { max-width: var(--gc-reading-max); }
.gc-section { padding-block: var(--gc-space-10); }
.gc-section--soft { background: var(--gc-surface-soft); }
.gc-section--cool { background: var(--gc-surface-cool); }
.gc-section--dark {
  background: var(--gc-surface-dark);
  color: var(--gc-ink-inverse);
}

.gc-display,
.gc-h1,
.gc-h2,
.gc-h3,
.gc-lead,
.gc-body,
.gc-meta {
  margin: 0;
  letter-spacing: 0;
}

.gc-display { font-size: 64px; font-weight: 700; line-height: 1.02; }
.gc-h1 { font-size: 48px; font-weight: 700; line-height: 1.08; }
.gc-h2 { font-size: 40px; font-weight: 650; line-height: 1.12; }
.gc-h3 { font-size: 28px; font-weight: 650; line-height: 1.25; }
.gc-lead { font-size: 21px; font-weight: 500; line-height: 1.55; }
.gc-body { font-size: 17px; font-weight: 400; line-height: 1.75; }
.gc-meta { font-size: 13px; font-weight: 600; line-height: 1.45; }

.gc-eyebrow {
  color: var(--gc-action-primary);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-transform: uppercase;
}

.gc-button-primary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--gc-space-2);
  padding: 10px 20px;
  border: 0;
  border-radius: var(--gc-radius-pill);
  background: var(--gc-action-primary);
  color: var(--gc-ink-inverse);
  font: 600 15px/1 var(--gc-font-sans);
  text-decoration: none;
}

.gc-button-primary:hover { background: var(--gc-action-hover); }
.gc-button-primary:active { background: var(--gc-action-pressed); }

.gc-button-secondary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--gc-space-2);
  border: 0;
  background: transparent;
  color: var(--gc-action-primary);
  font: 600 15px/1 var(--gc-font-sans);
  text-decoration: none;
}

.gc-card {
  border: 1px solid var(--gc-border-soft);
  border-radius: var(--gc-radius-standard);
  background: var(--gc-surface-canvas);
}

.gc-media-frame {
  overflow: hidden;
  border-radius: var(--gc-radius-large);
  background: var(--gc-surface-dark);
}

.gc-stage-mark { color: var(--gc-stage-accent); }
.gc-stage-line { border-color: var(--gc-stage-accent); }

@media (max-width: 767px) {
  .gc-container { width: min(calc(100% - 32px), var(--gc-content-max)); }
  .gc-section { padding-block: 72px; }
  .gc-display { font-size: 44px; }
  .gc-h1 { font-size: 38px; }
  .gc-h2 { font-size: 32px; }
  .gc-h3 { font-size: 24px; }
  .gc-lead { font-size: 19px; }
  .gc-body { font-size: 16px; }
}

@media print {
  @page { size: A4 portrait; margin: 0; }
  .gc-root { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* Web implementation aliases: keep product pages on the canonical tokens. */
:root {
  --gc-bg: var(--gc-surface-canvas);
  --gc-text: var(--gc-ink-primary);
  --gc-text-secondary: var(--gc-ink-secondary);
  --gc-text-tertiary: var(--gc-ink-muted);
  --gc-blue: var(--gc-action-primary);
  --gc-blue-soft: var(--gc-action-soft);
  --gc-shadow-soft: var(--gc-shadow-raised);
  --gc-shadow-elevated: var(--gc-shadow-overlay);
}

.gc-section-soft { background: var(--gc-surface-soft); }
.gc-section-dark { background: var(--gc-surface-dark); color: var(--gc-ink-inverse); }
.gc-reading-width {
  width: min(calc(100% - 48px), var(--gc-reading-max));
  margin-inline: auto;
}

@media (max-width: 767px) {
  .gc-reading-width { width: min(calc(100% - 32px), var(--gc-reading-max)); }
}

/* Curve-series-v3: contrast-safe stage text and flat cover gradients. */
[data-stage="1"] { --gc-stage-ink: #005BBB; --gc-stage-gradient: linear-gradient(90deg, #06C2E5, #2077FA, #833BF4); }
[data-stage="2"] { --gc-stage-ink: #00785B; --gc-stage-gradient: linear-gradient(90deg, #52CAB0, #00A67E, #009AA5); }
[data-stage="3"] { --gc-stage-ink: #A65300; --gc-stage-gradient: linear-gradient(90deg, #F3BE58, #FF8A00, #F07552); }
[data-stage="4"] { --gc-stage-ink: #BD343C; --gc-stage-gradient: linear-gradient(90deg, #F77E68, #FF5A5F, #D84672); }
[data-stage="5"] { --gc-stage-ink: #6533D3; --gc-stage-gradient: linear-gradient(90deg, #677AF4, #7C4DFF, #B769DB); }
[data-stage="6"] { --gc-stage-ink: #AB256C; --gc-stage-gradient: linear-gradient(90deg, #E99BBB, #D43F8D, #AF468F); }
[data-stage="7"] { --gc-stage-ink: #007387; --gc-stage-gradient: linear-gradient(90deg, #46C6C4, #009FB7, #287DAD); }
[data-stage] .gc-stage-mark { color:var(--gc-stage-ink); }
