:root {
  --color-paper: #f3f6fc;
  --color-white: #ffffff;
  --color-ink: #0b1730;
  --color-muted: #65728c;
  --color-muted-dark: #46536b;
  --color-line: #bdcadc;
  --color-line-light: #d9e2ef;
  --color-blue: #1f5bd8;
  --color-cyan: #007b92;
  --color-violet: #6847cb;
}

html {
  background: #ffffff;
  color-scheme: light;
}

body {
  background: #ffffff;
  color: var(--color-ink);
}

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

:focus-visible {
  outline-color: var(--color-blue);
}

.skip-link {
  background: var(--color-blue);
  color: #ffffff;
}

.c-eyebrow,
.c-inline-link {
  color: var(--color-blue);
}

.c-lead,
.c-note,
.c-tag,
.c-status {
  color: var(--color-muted-dark);
}

.c-heading__accent,
.fv-hero__title em {
  background-image: linear-gradient(100deg, #007b92, #1f5bd8 52%, #6847cb);
}

.c-button {
  border-color: #aebcd1;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-ink);
}

.c-button:hover {
  border-color: var(--color-blue);
}

.c-button--primary {
  border-color: transparent;
  background: linear-gradient(100deg, var(--color-blue), var(--color-violet));
  color: #ffffff;
}

.c-button--light {
  border-color: #aebcd1;
  background: #ffffff;
  color: var(--color-ink);
}

.c-button--disabled,
.c-button[aria-disabled="true"] {
  border-color: var(--color-line);
  background: #eef2f8;
  color: #68758c;
}

.site-header {
  border-bottom-color: rgba(31, 91, 216, 0.12);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 1px 0 rgba(11, 23, 48, 0.03);
}

.is-menu-open .site-header {
  z-index: var(--z-dialog);
  background: #ffffff;
  box-shadow: none;
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.97);
}

.site-header__brand {
  color: var(--color-ink);
}

.site-header__brand span {
  color: var(--color-blue);
}

.site-header__nav a {
  color: #46536b;
}

.site-header__nav a::after {
  background: var(--color-blue);
}

.site-header__nav a:hover,
.site-header__nav a[aria-current="page"] {
  color: var(--color-ink);
}

.site-header__menu-button {
  border-color: #aebcd1;
  background: rgba(255, 255, 255, 0.94);
}

.site-header__menu-button i {
  background: var(--color-ink);
}

.site-menu__shutter {
  background: #ffffff;
}

.site-menu__shutter--top {
  border-bottom-color: var(--color-line-light);
}

.site-menu__nav a {
  color: var(--color-ink);
}

.site-menu__nav a:hover,
.site-menu__no,
.site-menu__en {
  color: var(--color-blue);
}

.site-menu__side {
  border-left-color: var(--color-line-light);
  color: var(--color-muted-dark);
}

.site-menu__side strong {
  color: var(--color-ink);
}

.site-footer {
  border-top: 1px solid var(--color-line-light);
  background: #f5f8fd;
  color: var(--color-ink);
}

.site-footer::before {
  background-image:
    linear-gradient(rgba(31, 91, 216, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 91, 216, 0.05) 1px, transparent 1px);
  mask-image: linear-gradient(#000, transparent 86%);
}

.site-footer__brand span,
.site-footer__column h2 {
  color: var(--color-blue);
}

.site-footer__summary,
.site-footer__address,
.site-footer__column a,
.site-footer__bottom-inner,
.site-footer__bottom a {
  color: var(--color-muted-dark);
}

.site-footer__column a:hover {
  color: var(--color-blue);
}

.site-footer__bottom {
  border-top-color: var(--color-line-light);
}

.page-main {
  background: #ffffff;
  color: var(--color-ink);
}

.page-hero {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 255, 0.82)),
    url("../../src/route-field-01.webp") center / cover;
  color: var(--color-ink);
}

.page-hero::after {
  -webkit-text-stroke-color: rgba(31, 91, 216, 0.14);
}

.page-hero__code {
  color: var(--color-blue);
}

.page-hero__lead {
  color: var(--color-muted-dark);
}

.page-section--night,
.page-section--ink {
  background: #f1f5fc;
  color: var(--color-ink);
}

.page-section--ink {
  background: #f8faff;
}

.page-section--night .c-rule-list__item,
.page-section--ink .c-rule-list__item {
  border-bottom-color: var(--color-line-light);
}

.page-section--night .c-rule-list__item p,
.page-section--ink .c-rule-list__item p {
  color: var(--color-muted-dark);
}

.c-index__link:hover {
  color: #ffffff;
}

.c-index__link:hover .c-index__no {
  color: #d9f8ff;
}

.c-index__link:hover .c-index__en {
  color: rgba(255, 255, 255, 0.78);
}

.c-thanks {
  background:
    linear-gradient(rgba(255, 255, 255, 0.9), rgba(246, 249, 255, 0.96)),
    url("../../src/fv-depth-layer.webp") center / cover;
  color: var(--color-ink);
}

.c-thanks p {
  color: var(--color-muted-dark);
}

.fv-intro {
  background:
    radial-gradient(circle at 50% 50%, rgba(31, 91, 216, 0.13), transparent 30%),
    radial-gradient(circle at 64% 36%, rgba(104, 71, 203, 0.1), transparent 28%),
    #ffffff;
  color: var(--color-ink);
}

.fv-intro::before {
  background-image:
    linear-gradient(rgba(31, 91, 216, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 91, 216, 0.08) 1px, transparent 1px);
}

.fv-intro__top,
.fv-intro__bottom {
  color: #65728c;
}

.fv-intro__piece,
.fv-intro__complete {
  color: var(--color-ink);
}

.fv-intro__piece--ai,
.fv-intro__complete strong {
  color: var(--color-blue);
}

.fv-intro__plus,
.fv-intro__tagline {
  color: var(--color-muted-dark);
}

.fv-intro-replay {
  border-color: #aebcd1;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-ink);
}

.fv-intro-replay:hover {
  border-color: var(--color-blue);
  background: #ffffff;
}

.fv-orbit {
  background:
    radial-gradient(circle at 72% 46%, rgba(104, 71, 203, 0.13), transparent 26%),
    radial-gradient(circle at 72% 46%, rgba(31, 91, 216, 0.1), transparent 44%),
    #ffffff;
  color: var(--color-ink);
}

.fv-orbit::before {
  background-image:
    linear-gradient(rgba(31, 91, 216, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 91, 216, 0.08) 1px, transparent 1px);
}

.fv-hero__kicker {
  color: var(--color-blue);
}

.fv-hero__empathy,
.fv-hero__lead {
  color: var(--color-muted-dark);
}

.fv-hero__meta,
.fv-hero__scroll,
.fv-orbit__status {
  color: #65728c;
}

.fv-hero__meta li::before,
.fv-orbit__status b {
  color: var(--color-blue);
}

@media (min-width: 961px) {
  .fv-hero__title {
    width: max-content;
    max-width: none;
  }
}

.fv-orbit__media {
  border-color: rgba(31, 91, 216, 0.4);
  box-shadow: 0 36px 90px rgba(31, 91, 216, 0.16);
}

.fv-orbit__ring {
  border-color: rgba(31, 91, 216, 0.27);
}

.fv-orbit__ring--one {
  border-color: rgba(0, 123, 146, 0.44);
}

.fv-orbit__ring--two {
  border-color: rgba(104, 71, 203, 0.42);
}

.fv-orbit__token {
  border-color: #b8c5d8;
  background: rgba(255, 255, 255, 0.92);
  color: #46536b;
  box-shadow: 0 10px 24px rgba(31, 91, 216, 0.08);
}

.c-problem {
  background: #f6f8fd;
}

.c-problem__map,
.c-problem__node,
.c-problem__answer {
  background-color: #ffffff;
}

.c-problem__core {
  border: 1px solid rgba(31, 91, 216, 0.3);
  background:
    radial-gradient(circle at 64% 34%, rgba(31, 91, 216, 0.12), transparent 36%),
    #ffffff;
  box-shadow: 0 30px 80px rgba(31, 91, 216, 0.14);
  color: var(--color-ink);
}

.c-problem__core span {
  color: var(--color-blue);
}

.c-principle {
  background: #ffffff;
  color: var(--color-ink);
}

.c-principle__visual::before {
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.98) 0 35%,
      rgba(255, 255, 255, 0.86) 57%,
      rgba(245, 248, 255, 0.82)
    ),
    url("../../src/workflow-overview.webp") center / cover;
}

.c-principle__visual::after {
  background-image:
    linear-gradient(rgba(31, 91, 216, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 91, 216, 0.07) 1px, transparent 1px);
}

.c-principle__copy .c-lead,
.c-principle__part p {
  color: var(--color-muted-dark);
}

.c-principle__route path {
  stroke: rgba(31, 91, 216, 0.58);
}

.c-principle__part {
  border-color: var(--color-line-light);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 44px rgba(31, 91, 216, 0.08);
}

.c-principle__part-no {
  color: var(--color-blue);
}

.c-principle__pull {
  -webkit-text-stroke-color: rgba(31, 91, 216, 0.2);
}

.c-support {
  background: #f3f6fc;
}

.c-projects {
  background: #ffffff;
  color: var(--color-ink);
}

.c-projects .c-eyebrow {
  color: var(--color-blue);
}

.c-projects .c-lead,
.c-project__body p,
.c-project__body .c-inline-link[aria-disabled="true"] {
  color: var(--color-muted-dark);
}

.c-project {
  border-color: var(--color-line-light);
  background: #ffffff;
  box-shadow: 0 24px 64px rgba(31, 91, 216, 0.1);
}

.c-boundary {
  background: #f3f6fc;
  color: var(--color-ink);
}

.c-boundary__scene::before {
  background:
    linear-gradient(
      90deg,
      rgba(247, 250, 255, 0.98),
      rgba(247, 250, 255, 0.88) 54%,
      rgba(247, 250, 255, 0.82)
    ),
    url("../../src/security-boundary.webp") center / cover;
}

.c-boundary .c-eyebrow,
.c-boundary__layer-code {
  color: var(--color-blue);
}

.c-boundary .c-lead,
.c-boundary__layer ul,
.c-boundary__layer p {
  color: var(--color-muted-dark);
}

.c-boundary__layer,
.c-boundary__layer--security {
  border-color: var(--color-line-light);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 20px 54px rgba(31, 91, 216, 0.09);
}

.c-process {
  background: #ffffff;
}

.c-team-news {
  background: #f6f8fd;
}

.c-faq-resource {
  background: #ffffff;
}

.c-final {
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.98),
      rgba(255, 255, 255, 0.9) 58%,
      rgba(246, 249, 255, 0.82)
    ),
    url("../../src/fv-primary.webp") center / cover;
  color: var(--color-ink);
}

.c-final::before,
.c-final::after {
  background: linear-gradient(90deg, transparent, var(--color-blue), var(--color-violet), transparent);
  opacity: 0.35;
}

.c-final__lead,
.c-final__meta {
  color: var(--color-muted-dark);
}

.c-final__meta li::before {
  color: var(--color-blue);
}

@media (max-width: 760px) {
  .c-principle__visual::before {
    background:
      linear-gradient(rgba(255, 255, 255, 0.9), rgba(246, 249, 255, 0.88)),
      url("../../src/workflow-overview.webp") center / cover;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fv-orbit__media {
    box-shadow: 0 24px 60px rgba(31, 91, 216, 0.12);
  }
}
