:root {
  color-scheme: light;
  --navy: #0a1b4c;
  --blue: #0047fa;
  --cyan: #00d8f6;
  --white: #fff;
  --ink: #222;
  --muted: #606060;
  --surface: #fff;
  --surface-alt: #f7f8fa;
  --surface-soft: #efefef;
  --line: #e2e5e9;
  --control-line: #777;
  --link: #003ecb;
  --accent-ink: #00566b;
  --accent-soft: #d9f8fc;
  --primary-soft: #e9efff;
  --press-ink: #6034a0;
  --press-soft: #f0eafa;
  --success: #167044;
  --success-soft: #edf8f1;
  --error: #b32139;
  --error-soft: #fff0f2;
  --dark-muted: #c8c8c8;
  --dark-panel: #202020;
  --dark-line: #777;
  --dark-link: #fff;
  --brand-gradient: linear-gradient(135deg, var(--cyan) 0%, var(--blue) 100%);
  /* Legacy gradient tokens retained for compatibility; current buttons use solid fills. */
  --button-cyan: #007f96;
  --button-gradient: linear-gradient(135deg, var(--button-cyan) 0%, var(--blue) 100%);
  --hero-glow: none;
  --cta-glow: none;
  --grid-color: #0047fa0d;
  --glass: #ffffffd9;
  --clear: transparent;
  --font-body: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --font-display: "Inter", "Avenir Next", var(--font-body);
  --black: #000;
  --footer-bg: #111;
  --weight-light: 300;
  --tracking-en: -.01em;
  --tracking-ja: .03em;
  --text-hero-en: clamp(2.5rem, 1.5rem + 4vw, 5rem);
  --text-section-en: clamp(2.25rem, 1.5rem + 2vw, 3.5rem);
  --text-heading-ja: 1.25rem;
  --heading-gap: clamp(1.5rem, 3vw, 3rem);
  --number-rule: 2.25rem;
  --hero-height: calc(100svh - var(--header-desktop) - var(--border));
  --hero-padding: clamp(3.5rem, 7svh, 6rem);
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-card: clamp(1.2rem, 1.05rem + .6vw, 1.5rem);
  --text-article-title: clamp(2rem, 1.5rem + 1.5vw, 2.75rem);
  --text-article-heading: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  --text-article-subheading: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
  --text-heading: clamp(1.75rem, 1.2rem + 2vw, 2.75rem);
  --text-hero: clamp(1.75rem, .9rem + 3.2vw, 3.625rem);
  --text-stat: clamp(1.5rem, 17cqi, 3rem);
  --leading-body: 1.9;
  --leading-heading: 1.35;
  --tracking: .025em;
  --tracking-wide: .14em;
  --weight-medium: 600;
  --weight-bold: 700;
  --space-0: 0;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-section: clamp(4.5rem, 8vw, 7.5rem);
  --space-showcase: clamp(4.5rem, 8vw, 7.5rem);
  --stage-body-width: 30rem;
  --stage-scrim-core: rgb(0 0 0 / .58);
  --stage-scrim-edge: rgb(0 0 0 / .10);
  --stage-scrim-feather: 8rem;
  --stage-text-shadow: 0 1px 2px rgb(0 0 0 / .2);
  --band-ratio: 1360 / 370;
  --band-ratio-mobile: 16 / 9;
  --band-body-width: 55%;
  --band-scrim: linear-gradient(90deg, rgb(0 0 0 / .28) 0%, rgb(0 0 0 / .16) 55%, rgb(0 0 0 / 0) 100%);
  --gutter: clamp(1.5rem, 4.5vw, 4rem);
  --container: 75rem;
  --container-narrow: 48rem;
  --measure: 38rem;
  --header-height: 4.5rem;
  --header-desktop: 5.5rem;
  --tap: 2.75rem;
  --button-height: 3rem;
  --button-lg: 3.5rem;
  --logo-width: 9.5rem;
  --logo-footer: clamp(14rem, 24vw, 20rem);
  --radius-sm: .375rem;
  --radius: .75rem;
  --radius-lg: 1.5rem;
  --radius-pill: 999px;
  --border: 1px;
  --focus-width: 3px;
  --focus-offset: 4px;
  --shadow-header: 0 8px 28px #0a1b4c0d;
  --shadow-card: none;
  --shadow-hover: 0 22px 48px #0047fa1a;
  --shadow-button: none;
  --shadow-media: none;
  --duration: 200ms;
  --duration-reveal: 500ms;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --lift: -3px;
  --arrow-shift: 4px;
  --grid-size: 3rem;
  --header-dark: #111;
  --header-color: var(--header-dark);
  --header-bg: var(--white);
  --duration-header: 300ms;
  --reveal-base-opacity: .6;
  --duration-roll: 250ms;
  --delay-roll: 25ms;
  --duration-intro: 600ms;
  --delay-intro: 70ms;
  --intro-scale: .96;
  --duration-panel: 240ms;
  --delay-panel: 30ms;
  --z-transition: 90;
  --z-header: 50;
  --z-skip: 100;
}
