:root {
    --ink: #061a3d;
    --ink-2: #15345f;
    --muted: #5c6f88;
    --muted-2: #8090a6;
    --blue: #168af2;
    --blue-deep: #075bd8;
    --blue-soft: #edf6ff;
    --teal: #12c7a3;
    --teal-deep: #087e68;
    --teal-soft: #ebfaf6;
    --purple: #7257dc;
    --purple-soft: #f4f1ff;
    --amber: #ec9a27;
    --amber-soft: #fff7e8;
    --surface: #ffffff;
    --soft: #f6f9fc;
    --line: #e1e9f2;
    --line-strong: #ccd9e7;
    --header-height: 82px;
    --container: 1380px;
    --copy: 800px;
    --radius-sm: 14px;
    --radius: 22px;
    --radius-lg: 32px;
    --shadow: 0 18px 55px rgba(6, 26, 61, 0.07);
    --shadow-hover: 0 24px 64px rgba(6, 26, 61, 0.12);
}

/* V3.1 reuses the established navy, blue/teal palette, typography and surfaces. */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 26px);
}

body {
    margin: 0;
    padding-top: var(--header-height);
    overflow-x: hidden;
    background: #fff;
    color: var(--ink);
    font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.72;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.lang-en {
    font-family: Inter, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    line-height: 1.66;
}

body.menu-open,
body.search-active,
body.contact-active {
    overflow: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button {
    cursor: pointer;
}

img,
video {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3,
p,
figure,
dl,
dd {
    margin-top: 0;
}

h1,
h2,
h3 {
    text-wrap: balance;
}

p {
    text-wrap: pretty;
}

:focus-visible {
    outline: 3px solid rgba(22, 138, 242, 0.38);
    outline-offset: 4px;
}

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

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 10px;
    left: 12px;
    padding: 10px 15px;
    border-radius: 10px;
    background: var(--ink);
    color: #fff;
    font-weight: 800;
    transform: translateY(-180%);
    transition: transform 180ms ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.eyebrow {
    display: block;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.13em;
    line-height: 1.4;
    text-transform: uppercase;
}

.button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    padding: 13px 23px;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 15px;
    font-weight: 850;
    line-height: 1.25;
    transition: border-color 180ms ease, background 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.button:hover {
    border-color: rgba(22, 138, 242, 0.42);
    transform: translateY(-2px);
}

.button.primary {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
    box-shadow: 0 12px 30px rgba(22, 138, 242, 0.2);
}

.button.primary:hover {
    border-color: var(--blue-deep);
    background: var(--blue-deep);
    box-shadow: 0 16px 36px rgba(7, 91, 216, 0.26);
}

.button.ghost {
    background: rgba(255, 255, 255, 0.72);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.section {
    padding: clamp(78px, 7.5vw, 118px) 0;
}

.section.compact-top {
    padding-top: clamp(54px, 5vw, 78px);
}

.section.soft {
    background: var(--soft);
}

.section.tint {
    background:
        radial-gradient(circle at 9% 14%, rgba(22, 138, 242, 0.11), transparent 27%),
        radial-gradient(circle at 92% 84%, rgba(18, 199, 163, 0.1), transparent 25%),
        linear-gradient(135deg, #f7fbff, #f2fbf8);
}

.section-head {
    max-width: 1120px;
    margin-bottom: 34px;
}

.section-head h2 {
    margin: 14px 0 0;
    font-size: clamp(34px, 3.25vw, 46px);
    line-height: 1.18;
    letter-spacing: -0.035em;
}

.section-head p {
    max-width: 1000px;
    margin: 16px 0 0;
    color: var(--muted);
    font-size: 18px;
    line-height: 1.72;
}

.section-action {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

/* Header */

.site-header {
    position: fixed;
    z-index: 200;
    top: 0;
    right: 0;
    left: 0;
    height: var(--header-height);
    border-bottom: 1px solid rgba(225, 233, 242, 0.92);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 5px 24px rgba(6, 26, 61, 0.035);
    backdrop-filter: blur(18px);
}

.header-inner {
    display: flex;
    height: 100%;
    align-items: center;
    gap: clamp(24px, 2.5vw, 40px);
}

.brand {
    display: flex;
    flex: none;
    align-items: center;
}

.brand img {
    width: 162px;
    height: 54px;
    object-fit: contain;
}

.desktop-nav {
    display: flex;
    height: 100%;
    min-width: 0;
    flex: 1;
    align-items: center;
    gap: clamp(20px, 1.8vw, 30px);
}

.nav-item {
    display: flex;
    height: 100%;
    align-items: center;
}

.nav-link {
    display: inline-flex;
    height: 100%;
    min-height: 44px;
    align-items: center;
    color: var(--muted);
    font-size: 16px;
    font-weight: 780;
    white-space: nowrap;
    transition: color 160ms ease;
}

.lang-en .nav-link {
    font-size: 16px;
}

.nav-link:hover,
.nav-link.is-active,
.nav-item.is-active .nav-link {
    color: var(--blue-deep);
}

.nav-panel {
    position: fixed;
    z-index: 205;
    top: calc(var(--header-height) - 1px);
    right: 0;
    left: 0;
    padding: 18px 0 24px;
    border-top: 1px solid rgba(225, 233, 242, 0.7);
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.985);
    box-shadow: 0 26px 62px rgba(6, 26, 61, 0.12);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 160ms ease, transform 160ms ease;
}

.nav-item:hover .nav-panel,
.nav-item:focus-within .nav-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.nav-panel-inner {
    display: grid;
    width: min(var(--container), calc(100% - 56px));
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.nav-panel-inner > a {
    display: flex;
    min-height: 88px;
    flex-direction: column;
    justify-content: center;
    padding: 16px 18px;
    border: 1px solid transparent;
    border-radius: 16px;
    transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.nav-panel-inner > a:hover {
    border-color: rgba(22, 138, 242, 0.2);
    background: var(--blue-soft);
    transform: translateY(-1px);
}

.nav-panel-inner strong {
    color: var(--ink);
    font-size: 15px;
    line-height: 1.35;
}

.nav-panel-inner span {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.header-tools {
    display: flex;
    flex: none;
    align-items: center;
    gap: 8px;
}

.search-open,
.language-menu > summary {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 850;
}

.search-open {
    gap: 8px;
    padding: 0 14px;
}

.search-open > span {
    position: relative;
    width: 15px;
    height: 15px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.search-open > span::after {
    position: absolute;
    right: -5px;
    bottom: -3px;
    width: 6px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    content: "";
    transform: rotate(45deg);
}

.language-menu {
    position: relative;
    flex: none;
}

.search-open:hover,
.language-menu > summary:hover,
.language-menu[open] > summary {
    border-color: rgba(22, 138, 242, 0.36);
    background: var(--blue-soft);
    color: var(--blue-deep);
}

.language-menu > summary {
    min-width: 84px;
    gap: 8px;
    padding: 0 12px;
    list-style: none;
    user-select: none;
}

.language-globe {
    position: relative;
    width: 16px;
    height: 16px;
    flex: none;
    border: 1.6px solid currentColor;
    border-radius: 50%;
}

.language-globe::before,
.language-globe::after {
    position: absolute;
    content: "";
}

.language-globe::before {
    top: 2px;
    right: 4px;
    bottom: 2px;
    left: 4px;
    border-right: 1px solid currentColor;
    border-left: 1px solid currentColor;
    border-radius: 50%;
}

.language-globe::after {
    top: 6px;
    right: 1px;
    left: 1px;
    height: 3px;
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
}

.language-menu > summary::-webkit-details-marker {
    display: none;
}

.language-menu > summary::after {
    width: 7px;
    height: 7px;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    content: "";
    transform: translateY(-2px) rotate(45deg);
    transition: transform 160ms ease;
}

.language-menu[open] > summary::after {
    transform: translateY(2px) rotate(225deg);
}

.language-options {
    position: absolute;
    z-index: 230;
    top: calc(100% + 10px);
    right: 0;
    display: grid;
    min-width: 178px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.99);
    box-shadow: 0 20px 48px rgba(6, 26, 61, 0.14);
}

.language-options::before {
    position: absolute;
    right: 0;
    bottom: 100%;
    width: 100%;
    height: 11px;
    content: "";
}

.language-option {
    display: flex;
    min-height: 45px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 8px 11px;
    border-radius: 10px;
    color: var(--ink-2);
    font-size: 14px;
    font-weight: 760;
}

.language-option:hover,
.language-option.is-current {
    background: var(--blue-soft);
    color: var(--blue-deep);
}

.language-option b {
    color: var(--muted-2);
    font-size: 11px;
    letter-spacing: 0.08em;
}

.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
}

.menu-toggle i {
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--ink);
    transition: transform 160ms ease, opacity 160ms ease;
}

.menu-open .menu-toggle i:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.menu-open .menu-toggle i:nth-child(2) {
    opacity: 0;
}

.menu-open .menu-toggle i:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.mobile-navigation {
    position: absolute;
    z-index: 204;
    top: 100%;
    right: 0;
    left: 0;
    height: calc(100vh - var(--header-height));
    height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    border-top: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.99);
}

.mobile-nav {
    padding-top: 22px;
    padding-bottom: 42px;
}

.mobile-nav details,
.mobile-direct {
    display: block;
    border-bottom: 1px solid var(--line);
}

.mobile-nav summary,
.mobile-direct {
    padding: 17px 2px;
    color: var(--ink);
    font-size: 18px;
    font-weight: 850;
    list-style: none;
}

.mobile-nav summary::-webkit-details-marker {
    display: none;
}

.mobile-nav summary::after {
    float: right;
    color: var(--blue);
    content: "+";
}

.mobile-nav details[open] summary::after {
    content: "−";
}

.mobile-subnav {
    display: grid;
    gap: 8px;
    padding: 0 0 18px;
}

.mobile-subnav > a {
    display: flex;
    flex-direction: column;
    padding: 13px 15px;
    border-radius: 12px;
    background: var(--soft);
}

.mobile-subnav strong {
    font-size: 14px;
}

.mobile-subnav span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.mobile-overview {
    color: var(--blue-deep);
    font-weight: 850;
}

.mobile-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 24px;
}

.mobile-actions > * {
    min-height: 48px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    text-align: center;
    font-weight: 850;
}

.mobile-actions a {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
}

/* Breadcrumbs and heroes */

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-bottom: 42px;
    color: var(--muted-2);
    font-size: 12px;
    font-weight: 750;
}

.breadcrumbs a:hover {
    color: var(--blue-deep);
}

.breadcrumbs i {
    color: #bdc9d7;
    font-style: normal;
}

.breadcrumbs span {
    color: var(--ink-2);
}

.overview-hero,
.detail-hero {
    position: relative;
    overflow: hidden;
    padding: 36px 0 clamp(52px, 5vw, 72px);
    background:
        radial-gradient(circle at 9% 14%, rgba(22, 138, 242, 0.11), transparent 30%),
        radial-gradient(circle at 88% 38%, rgba(18, 199, 163, 0.09), transparent 27%),
        linear-gradient(180deg, #fff, #fbfdff);
}

.overview-hero::after,
.detail-hero::after {
    position: absolute;
    z-index: 0;
    right: -180px;
    bottom: -270px;
    width: 610px;
    height: 610px;
    border: 1px solid rgba(22, 138, 242, 0.12);
    border-radius: 50%;
    box-shadow: 0 0 0 82px rgba(22, 138, 242, 0.025), 0 0 0 164px rgba(18, 199, 163, 0.018);
    content: "";
}

.overview-hero .container,
.detail-hero .container {
    position: relative;
    z-index: 1;
}

.overview-hero-copy {
    max-width: none;
}

.overview-hero h1,
.detail-hero h1 {
    margin: 14px 0 0;
    font-size: clamp(44px, 4.45vw, 64px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.overview-hero p,
.detail-hero-grid > div:first-child > p {
    max-width: none;
    margin: 19px 0 0;
    color: var(--muted);
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.68;
}

.detail-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(340px, 0.62fr);
    align-items: center;
    gap: clamp(44px, 5vw, 78px);
}

.outcome-contract {
    padding: 22px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow);
}

.outcome-contract > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.outcome-contract > div {
    display: grid;
    gap: 10px;
    margin: 14px 0;
}

.outcome-contract > div span {
    padding: 10px 13px;
    border-radius: 12px;
    background: var(--blue-soft);
    font-size: 14px;
    font-weight: 850;
}

.outcome-contract small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.accent-teal .outcome-contract {
    border-color: rgba(18, 199, 163, 0.25);
}

.accent-teal .outcome-contract > div span {
    background: var(--teal-soft);
}

.accent-purple .outcome-contract {
    border-color: rgba(114, 87, 220, 0.24);
}

.accent-purple .outcome-contract > div span {
    background: var(--purple-soft);
}

.accent-amber .outcome-contract {
    border-color: rgba(236, 154, 39, 0.28);
}

.accent-amber .outcome-contract > div span {
    background: var(--amber-soft);
}

/* Home */

.home-hero {
    position: relative;
    display: flex;
    min-height: min(520px, calc(100vh - var(--header-height)));
    overflow: hidden;
    align-items: center;
    padding: clamp(58px, 5.5vw, 78px) 0;
    background:
        radial-gradient(circle at 13% 18%, rgba(22, 138, 242, 0.14), transparent 29%),
        radial-gradient(circle at 84% 30%, rgba(18, 199, 163, 0.12), transparent 26%),
        linear-gradient(140deg, #fff 0%, #f9fcff 64%, #f5fcfa 100%);
}

.home-hero-inner {
    position: relative;
    z-index: 2;
}

.home-hero h1 {
    max-width: 1320px;
    margin: 14px 0 0;
    font-size: clamp(54px, 5.7vw, 82px);
    line-height: 1.06;
    letter-spacing: -0.06em;
}

.home-hero p {
    max-width: none;
    margin: 20px 0 0;
    color: var(--muted);
    font-size: clamp(18px, 1.5vw, 21px);
    line-height: 1.66;
}

.hero-motto {
    display: block;
    margin-top: 16px;
    color: var(--ink-2);
    font-size: 14px;
    font-weight: 760;
    letter-spacing: 0.02em;
}

.hero-orbit {
    position: absolute;
    z-index: 0;
    right: -180px;
    bottom: -350px;
    width: 900px;
    height: 900px;
    border: 1px solid rgba(22, 138, 242, 0.1);
    border-radius: 50%;
}

.hero-orbit i {
    position: absolute;
    border: 1px solid rgba(18, 199, 163, 0.1);
    border-radius: 50%;
    inset: 100px;
}

.hero-orbit i:nth-child(2) {
    inset: 205px;
}

.hero-orbit i:nth-child(3) {
    inset: 315px;
    background: radial-gradient(circle, rgba(22, 138, 242, 0.09), transparent 65%);
}

.page-compass {
    position: sticky;
    z-index: 120;
    top: var(--header-height);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
}

.page-compass .container {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: clamp(22px, 4vw, 64px);
    overflow-x: auto;
    scrollbar-width: none;
}

.page-compass a {
    display: inline-flex;
    min-height: 56px;
    flex: none;
    align-items: center;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
}

.page-compass a:hover {
    color: var(--blue-deep);
}

.home-route {
    padding: 34px 0;
    background: var(--ink);
    color: #fff;
}

.home-route > .container {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 2fr);
    align-items: center;
    gap: clamp(30px, 4vw, 70px);
}

.home-route-head .eyebrow {
    color: var(--teal);
}

.home-route-head h2 {
    margin: 10px 0 0;
    font-size: clamp(24px, 2.4vw, 34px);
    line-height: 1.25;
    letter-spacing: -0.025em;
}

.home-route-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.home-route-grid > a {
    display: grid;
    min-height: 128px;
    grid-template-columns: 30px minmax(0, 1fr) 18px;
    align-items: start;
    gap: 10px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.home-route-grid > a:hover {
    border-color: rgba(18, 199, 163, 0.55);
    background: rgba(18, 199, 163, 0.08);
    transform: translateY(-2px);
}

.home-route-grid > a > b {
    color: var(--teal);
    font-size: 12px;
    letter-spacing: 0.08em;
}

.home-route-grid > a > div {
    display: grid;
    gap: 7px;
}

.home-route-grid strong {
    font-size: 16px;
    line-height: 1.4;
}

.home-route-grid span {
    color: rgba(255, 255, 255, 0.66);
    font-size: 12px;
    line-height: 1.65;
}

.home-route-grid i {
    color: var(--teal);
    font-style: normal;
}

.scenario-group-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.scenario-group {
    display: flex;
    min-height: 330px;
    flex-direction: column;
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(6, 26, 61, 0.045);
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

a.scenario-group:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

.scenario-group-main:hover h3 {
    color: #563eae;
}

.scenario-group > span,
.scenario-group-main > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.11em;
}

.scenario-group h2,
.scenario-group h3 {
    margin: 18px 0 0;
    font-size: 27px;
    line-height: 1.3;
    letter-spacing: -0.025em;
}

.scenario-group p {
    margin: 16px 0 24px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.78;
}

.scenario-group > b,
.scenario-group-main > b {
    margin-top: auto;
    color: var(--blue-deep);
    font-size: 13px;
}

.scenario-group-main {
    display: block;
}

.scenario-group-main > b {
    display: block;
    margin: -8px 0 18px;
}

.scenario-group.mip {
    border-color: rgba(18, 199, 163, 0.25);
    background: linear-gradient(145deg, #fff, var(--teal-soft));
}

.scenario-group.safety {
    border-color: rgba(236, 154, 39, 0.25);
    background: linear-gradient(145deg, #fff, var(--amber-soft));
}

.scenario-group.enterprise {
    border-color: rgba(114, 87, 220, 0.22);
    background: linear-gradient(145deg, #fff, var(--purple-soft));
}

.scenario-group.enterprise > div {
    display: grid;
    gap: 7px;
    margin-top: auto;
}

.scenario-group.enterprise > div a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 11px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.75);
    color: #563eae;
    font-size: 12px;
    font-weight: 850;
}

.scenario-group.custom {
    border-style: dashed;
}

.foundation-strip {
    display: grid;
    min-height: 72px;
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    margin-top: 16px;
    padding: 17px 22px;
    border: 1px solid rgba(22, 138, 242, 0.18);
    border-radius: 18px;
    background: linear-gradient(90deg, var(--blue-soft), var(--teal-soft));
}

.foundation-strip > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.foundation-strip > strong {
    font-size: 14px;
}

.foundation-strip > i {
    color: var(--blue-deep);
    font-style: normal;
}

.evidence-card-scroll,
.scene-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.evidence-card-scroll {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.scene-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(6, 26, 61, 0.045);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.scene-card:hover {
    border-color: rgba(22, 138, 242, 0.26);
    box-shadow: var(--shadow-hover);
    transform: translateY(-4px);
}

.scene-card[hidden] {
    display: none;
}

.scene-card-media {
    display: block;
    height: 232px;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
    background: #eaf1f8;
}

.scene-card-media img,
.scene-card-media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms ease;
}

.scene-card:hover .scene-card-media img {
    transform: scale(1.025);
}

.scene-card-graphic {
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: flex-end;
    padding: 24px;
    background:
        radial-gradient(circle at 80% 20%, rgba(18, 199, 163, 0.22), transparent 27%),
        linear-gradient(140deg, #09244f, #0d4489);
    color: #fff;
}

.scene-card-graphic span {
    opacity: 0.68;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.scene-card-graphic strong {
    margin-top: 9px;
    font-size: 24px;
    line-height: 1.3;
}

.scene-card-graphic i {
    width: 62%;
    height: 3px;
    margin-top: 18px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--teal), transparent);
}

.scene-card-body {
    display: flex;
    min-height: 330px;
    flex: 1;
    flex-direction: column;
    padding: 25px;
}

.scene-family {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.09em;
}

.scene-card.accent-teal .scene-family {
    color: var(--teal-deep);
}

.scene-card.accent-purple .scene-family {
    color: var(--purple);
}

.scene-card.accent-amber .scene-family {
    color: #b16b0c;
}

.scene-card h3 {
    margin: 12px 0 0;
    font-size: 23px;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.scene-card h3 a:hover {
    color: var(--blue-deep);
}

.scene-card-body > p {
    margin: 14px 0 18px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.76;
}

.scene-outcomes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 20px;
}

.scene-outcomes span {
    padding: 6px 9px;
    border-radius: 999px;
    background: var(--blue-soft);
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 800;
}

.scene-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.scene-card-actions a {
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 850;
}

.scene-card-actions a:last-child {
    color: var(--muted);
}

.scene-card.compact .scene-card-media {
    height: 158px;
}

.scene-card.compact .scene-card-body {
    min-height: 292px;
    padding: 20px;
}

.scene-card.compact h3 {
    font-size: 19px;
}

.scene-card.compact .scene-card-body > p {
    font-size: 12.5px;
}

.scene-card.compact .scene-card-actions {
    display: block;
}

.scene-card.compact .scene-card-actions a:last-child {
    display: none;
}

.split-section,
.two-column-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.8fr);
    align-items: start;
    gap: clamp(54px, 7vw, 100px);
}

.maturity-ladder {
    display: grid;
    gap: 10px;
}

.maturity-ladder article {
    display: grid;
    min-height: 88px;
    align-items: center;
    grid-template-columns: 44px 120px minmax(0, 1fr);
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
}

.maturity-ladder b {
    color: var(--blue);
    font-size: 12px;
}

.maturity-ladder span {
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.maturity-ladder p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.delivery-panel {
    padding: 32px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 28px;
    background: linear-gradient(145deg, #f7fbff, #fff);
    box-shadow: var(--shadow);
}

.delivery-panel > h2,
.capability-panel > h2 {
    margin: 14px 0 0;
    font-size: 32px;
    line-height: 1.25;
}

.delivery-stack {
    display: grid;
    gap: 7px;
    margin: 24px 0;
}

.delivery-stack a {
    display: grid;
    min-height: 58px;
    align-items: center;
    grid-template-columns: 80px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 11px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.delivery-stack b {
    color: var(--blue-deep);
    font-size: 11px;
}

.delivery-stack span {
    color: var(--muted);
    font-size: 12px;
}

.delivery-stack i {
    color: var(--blue);
    font-style: normal;
}

.capability-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.capability-panel {
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid var(--line);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow);
}

.capability-panel > p {
    margin: 17px 0 26px;
    color: var(--muted);
}

.capability-panel > div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
    margin-bottom: 28px;
}

.capability-panel > div a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

.capability-panel > div strong {
    font-size: 13px;
}

.capability-panel > div span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.capability-panel > div i {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: center;
    color: var(--blue);
    font-style: normal;
}

.partner-callout,
.wide-cta {
    display: flex;
    min-height: 260px;
    align-items: center;
    justify-content: space-between;
    gap: 42px;
    padding: clamp(34px, 5vw, 58px);
    border: 1px solid var(--line);
    border-radius: 30px;
    background: #fff;
    box-shadow: var(--shadow);
}

.partner-callout > div,
.wide-cta > div {
    max-width: 850px;
}

.partner-callout h2,
.wide-cta h2 {
    margin: 14px 0 0;
    font-size: clamp(32px, 3.5vw, 48px);
    line-height: 1.2;
}

.partner-callout p,
.wide-cta p {
    margin: 17px 0 0;
    color: var(--muted);
    font-size: 17px;
}

.partner-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.partner-tags span {
    padding: 7px 11px;
    border-radius: 999px;
    background: var(--soft);
    color: var(--ink-2);
    font-size: 11px;
    font-weight: 800;
}

/* Filters and overview utilities */

.filter-bar {
    position: sticky;
    z-index: 90;
    top: calc(var(--header-height) + 12px);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 26px;
    padding: 14px;
    border: 1px solid rgba(22, 138, 242, 0.19);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 14px 38px rgba(6, 26, 61, 0.07);
    backdrop-filter: blur(16px);
}

.filter-bar button {
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.filter-bar button.is-active {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
}

.filter-bar > span {
    margin-left: auto;
    color: var(--muted);
    font-size: 12px;
}

.no-match {
    margin-top: 18px;
    padding: 28px;
    border: 1px dashed rgba(18, 199, 163, 0.5);
    border-radius: 20px;
    background: var(--teal-soft);
}

.no-match h3 {
    margin-bottom: 8px;
}

.no-match p {
    color: var(--muted);
}

.criteria-grid,
.commitment-grid,
.validation-cards,
.requirement-grid,
.role-grid,
.boundary-grid,
.control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.criteria-grid article,
.commitment-grid article,
.validation-cards article,
.requirement-grid article,
.role-grid article,
.boundary-grid article,
.control-grid article {
    padding: 21px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
}

.criteria-grid b,
.commitment-grid b,
.validation-cards b,
.boundary-grid b,
.control-grid b {
    color: var(--blue-deep);
    font-size: 10px;
    letter-spacing: 0.09em;
}

.criteria-grid h3,
.commitment-grid h3,
.validation-cards h3,
.requirement-grid h3,
.role-grid h3 {
    margin: 7px 0 0;
    font-size: 17px;
}

.criteria-grid p,
.commitment-grid p,
.validation-cards p,
.requirement-grid p,
.role-grid p,
.boundary-grid p,
.control-grid p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.72;
}

.work-node-card,
.atlas-note {
    position: sticky;
    top: calc(var(--header-height) + 28px);
    padding: 34px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 26px;
    background: linear-gradient(145deg, var(--blue-soft), #fff);
}

.work-node-card h2,
.atlas-note h2 {
    margin: 14px 0 0;
    font-size: 31px;
}

.work-node-card p,
.atlas-note p {
    margin: 16px 0;
    color: var(--muted);
}

.node-anatomy {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 22px 0;
}

.node-anatomy span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #fff;
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.work-node-card > a,
.atlas-note > a {
    color: var(--blue-deep);
    font-size: 13px;
    font-weight: 850;
}

/* MIP and Enterprise overview */

.user-role-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.user-role-row article {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
}

.user-role-row span {
    font-size: 15px;
    font-weight: 850;
}

.user-role-row p {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.mip-role-row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.mip-platform-map {
    margin-top: 28px;
    overflow: hidden;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--shadow);
}

.mip-platform-heading {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 26px 30px;
    background: linear-gradient(135deg, #09295b, #0b3c78);
    color: #fff;
}

.mip-platform-heading > span {
    color: var(--teal);
    font-size: clamp(42px, 5vw, 68px);
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1;
}

.mip-platform-heading strong,
.mip-platform-heading p {
    display: block;
}

.mip-platform-heading strong {
    font-size: 22px;
}

.mip-platform-heading p {
    margin: 5px 0 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 12px;
}

.mip-application-row {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    padding: 18px;
    border-bottom: 1px solid var(--line);
    background: #fbfdff;
}

.mip-application-row article {
    min-height: 92px;
    padding: 14px;
    border: 1px solid rgba(22, 138, 242, 0.18);
    border-radius: 13px;
    background: #fff;
}

.mip-application-row strong,
.mip-application-row span {
    display: block;
}

.mip-application-row strong {
    font-size: 13px;
    line-height: 1.4;
}

.mip-application-row span {
    margin-top: 8px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.mip-platform-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 142px;
    gap: 14px;
    padding: 18px;
}

.mip-platform-core {
    display: grid;
    gap: 10px;
}

.mip-map-layer {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
}

.mip-map-layer > header {
    display: flex;
    min-height: 76px;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 14px 17px;
    background: #0e4c94;
    color: #fff;
}

.mip-map-layer > header b {
    font-size: 13px;
    line-height: 1.45;
}

.mip-map-layer > header span {
    color: rgba(255, 255, 255, 0.66);
    font-size: 9px;
    line-height: 1.45;
}

.mip-map-layer > div {
    display: grid;
    align-items: stretch;
    gap: 7px;
    padding: 10px;
}

.mip-output-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.mip-output-grid span,
.mip-data-grid span,
.mip-map-layer.integration > div span,
.mip-map-layer.sources > div span {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    color: var(--ink-2);
    font-size: 10px;
    font-weight: 780;
    line-height: 1.4;
    text-align: center;
}

.mip-engine-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mip-engine-grid article {
    min-height: 96px;
    padding: 12px;
    border: 1px solid rgba(114, 87, 220, 0.2);
    border-radius: 10px;
    background: #faf9ff;
}

.mip-engine-grid strong,
.mip-engine-grid span {
    display: block;
}

.mip-engine-grid strong {
    color: var(--ink);
    font-size: 11px;
}

.mip-engine-grid span {
    margin-top: 7px;
    color: var(--muted);
    font-size: 9px;
    line-height: 1.55;
}

.mip-map-layer.engine > header {
    background: #5c68ab;
}

.mip-data-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.mip-map-layer.data > header {
    background: #168f7b;
}

.mip-map-layer.integration > header {
    background: #3d8555;
}

.mip-map-layer.integration > div {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.mip-map-layer.sources > header {
    background: #4f478c;
}

.mip-map-layer.sources > div {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.mip-loop-panel {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    padding: 15px;
    border: 1px solid rgba(236, 154, 39, 0.35);
    border-radius: 16px;
    background: var(--amber-soft);
    text-align: center;
}

.mip-loop-panel span {
    margin-bottom: 6px;
    color: #b86b04;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.mip-loop-panel b {
    padding: 9px 6px;
    border: 1px solid rgba(236, 154, 39, 0.24);
    border-radius: 10px;
    background: #fff;
    font-size: 11px;
}

.mip-loop-panel i {
    color: var(--amber);
    font-style: normal;
    line-height: 1;
}

.mip-security-layer {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 16px 18px 18px;
    background: #09295b;
    color: #fff;
}

.mip-security-layer > strong {
    font-size: 13px;
}

.mip-security-layer > div {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 7px;
}

.mip-security-layer span {
    padding: 9px 7px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.78);
    font-size: 9px;
    font-weight: 700;
    text-align: center;
}

.mip-value-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.mip-value-grid article {
    display: flex;
    min-height: 255px;
    flex-direction: column;
    padding: 24px;
    border: 1px solid var(--line);
    border-top: 4px solid var(--teal);
    border-radius: 18px;
    background: #fff;
}

.mip-value-grid article > span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.mip-value-grid h3 {
    margin: 16px 0 0;
    font-size: 21px;
    line-height: 1.35;
}

.mip-value-grid p {
    margin: 14px 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.72;
}

.mip-value-grid strong {
    margin-top: auto;
    color: var(--ink-2);
    font-size: 11px;
    line-height: 1.6;
}

.mip-motion-grid {
    margin-top: 50px;
}

.mip-domain {
    margin-top: 32px;
    overflow: hidden;
    border: 1px solid rgba(18, 199, 163, 0.3);
    border-radius: 28px;
    background: linear-gradient(145deg, #07234d, #0a386e);
    color: #fff;
    box-shadow: var(--shadow);
}

.mip-top {
    padding: 34px;
    text-align: center;
}

.mip-top span {
    display: block;
    color: #8ee8d4;
    font-size: 12px;
    font-weight: 850;
}

.mip-top strong {
    display: block;
    margin-top: 13px;
    font-size: clamp(31px, 4vw, 48px);
    letter-spacing: 0.02em;
}

.mip-top p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 13px;
}

.mip-flow,
.mip-systems {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.mip-flow span {
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.mip-flow i {
    color: var(--teal);
    font-style: normal;
}

.mip-systems {
    flex-wrap: wrap;
    background: rgba(255, 255, 255, 0.04);
}

.mip-systems span {
    padding: 7px 11px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 10px;
}

.task-motion {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.task-motion span {
    display: flex;
    min-height: 62px;
    flex: 1 1 130px;
    align-items: center;
    gap: 9px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    font-size: 12px;
    font-weight: 750;
}

.task-motion b {
    color: var(--teal-deep);
    font-size: 10px;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.metric-grid article {
    min-height: 92px;
    padding: 16px;
    border-radius: 14px;
    background: var(--blue-soft);
}

.metric-grid strong,
.metric-grid span {
    display: block;
}

.metric-grid strong {
    color: var(--blue-deep);
    font-size: 15px;
}

.metric-grid span {
    margin-top: 7px;
    color: var(--muted);
    font-size: 11px;
}

.integration-boundary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
}

.integration-boundary > div {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 16px;
}

.integration-boundary span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.integration-boundary p {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.comparison-rows {
    display: grid;
    gap: 12px;
}

.comparison-rows article {
    display: grid;
    grid-template-columns: 120px repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
}

.comparison-rows > article > b {
    color: var(--purple);
    font-size: 12px;
}

.comparison-rows span {
    color: var(--muted-2);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.comparison-rows p {
    margin: 6px 0 0;
    font-size: 12px;
}

.gate-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.gate-grid article {
    min-height: 205px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 17px;
}

.gate-grid b {
    color: var(--blue);
    font-size: 11px;
}

.gate-grid span {
    display: block;
    margin-top: 28px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.07em;
}

.gate-grid p {
    margin: 11px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.custom-evidence {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.75fr);
    align-items: center;
    gap: clamp(40px, 6vw, 88px);
    margin-top: 50px;
}

.custom-evidence figure {
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--ink);
}

.custom-evidence video {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: contain;
}

.custom-evidence figcaption {
    padding: 12px 16px;
    background: #fff;
    color: var(--muted);
    font-size: 11px;
}

.custom-evidence h2 {
    margin: 14px 0 0;
    font-size: 36px;
}

.custom-evidence p,
.custom-evidence li {
    color: var(--muted);
}

.custom-evidence ul {
    padding-left: 20px;
}

.path-cards {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.path-cards a {
    display: flex;
    min-height: 180px;
    flex-direction: column;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
}

.path-cards b {
    color: var(--blue-deep);
    font-size: 11px;
}

.path-cards p {
    margin: 18px 0;
    color: var(--muted);
    font-size: 12px;
}

.path-cards i {
    margin-top: auto;
    color: var(--blue);
    font-style: normal;
}

/* Detail pages */

.detail-layout {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    align-items: start;
    gap: clamp(48px, 7vw, 105px);
    padding-top: 76px;
    padding-bottom: 110px;
}

.page-rail {
    position: sticky;
    top: calc(var(--header-height) + 28px);
    display: grid;
    gap: 3px;
    padding: 18px 0;
    border-top: 1px solid var(--line-strong);
    border-bottom: 1px solid var(--line-strong);
}

.page-rail > span {
    margin-bottom: 8px;
    color: var(--muted-2);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.page-rail a {
    position: relative;
    padding: 8px 8px 8px 16px;
    border-radius: 9px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
}

.page-rail a::before {
    position: absolute;
    top: 50%;
    left: 3px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--line-strong);
    content: "";
    transform: translateY(-50%);
}

.page-rail a:hover,
.page-rail a.is-active {
    background: var(--blue-soft);
    color: var(--blue-deep);
}

.page-rail a.is-active::before {
    background: var(--blue);
}

.detail-content {
    min-width: 0;
}

.content-section {
    padding: 12px 0 82px;
    scroll-margin-top: calc(var(--header-height) + 28px);
}

.content-section + .content-section {
    padding-top: 76px;
    border-top: 1px solid var(--line);
}

.stop-list,
.trust-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.stop-list li {
    display: grid;
    align-items: start;
    grid-template-columns: 12px minmax(0, 1fr);
    gap: 14px;
    padding: 20px 22px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
}

.stop-list li i {
    width: 7px;
    height: 7px;
    margin-top: 10px;
    border: 2px solid var(--blue);
    border-radius: 50%;
}

.stop-list li span {
    color: var(--ink-2);
    font-size: 15px;
    line-height: 1.8;
}

.node-chain {
    position: relative;
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.node-chain::before {
    position: absolute;
    top: 32px;
    bottom: 32px;
    left: 29px;
    width: 1px;
    background: linear-gradient(var(--blue), var(--teal));
    content: "";
}

.node-chain li {
    position: relative;
    display: grid;
    min-height: 100px;
    align-items: start;
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 20px;
    padding: 20px 22px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
}

.node-chain li > b {
    z-index: 1;
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    font-size: 10px;
}

.node-chain h3 {
    margin: 0;
    font-size: 19px;
}

.node-chain p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 14px;
}

.requirement-grid,
.role-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.role-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.production-engineering-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.production-engineering-grid article {
    min-height: 205px;
    padding: 24px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 18px;
    background: linear-gradient(145deg, #f7fbff, #fff);
}

.production-engineering-grid article:first-child {
    border-color: rgba(18, 199, 163, 0.3);
    background: linear-gradient(145deg, var(--teal-soft), #fff);
}

.production-engineering-grid b {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.09em;
}

.production-engineering-grid h3 {
    margin: 12px 0 0;
    font-size: 20px;
}

.production-engineering-grid p {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.72;
}

.evidence-section {
    padding: 74px clamp(26px, 4vw, 48px) !important;
    border: 1px solid rgba(22, 138, 242, 0.2) !important;
    border-radius: 28px;
    background: linear-gradient(145deg, #f7fbff, #fff);
}

.evidence-head {
    max-width: 860px;
}

.evidence-head h2 {
    margin: 14px 0 0;
    font-size: clamp(32px, 3.7vw, 50px);
    line-height: 1.2;
}

.evidence-head p {
    margin: 17px 0 0;
    color: var(--muted);
    font-size: 16px;
}

.external-product-entry {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 22px;
    padding: 12px 18px;
    border: 1px solid var(--blue);
    border-radius: 14px;
    background: var(--blue);
    color: #fff;
    font-size: 14px;
    font-weight: 850;
    transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.external-product-entry:hover {
    background: var(--blue-deep);
    box-shadow: 0 14px 30px rgba(7, 91, 216, 0.18);
    transform: translateY(-2px);
}

.external-product-entry i {
    flex: none;
    font-style: normal;
}

.console-entry {
    display: flex;
    width: 100%;
    margin: 0 0 28px;
    padding: 18px 22px;
    border-radius: 18px;
}

.console-entry div {
    display: grid;
    gap: 4px;
}

.console-entry b {
    font-size: 10px;
    letter-spacing: 0.12em;
}

.console-entry span {
    font-size: 15px;
}

.evidence-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 30px;
}

.evidence-gallery.evidence-count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.evidence-media {
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #071d3f;
}

.evidence-media:first-child:nth-last-child(1) {
    grid-column: 1 / -1;
}

.evidence-media img,
.evidence-media video {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
}

.evidence-media figcaption {
    padding: 11px 14px;
    background: #fff;
    color: var(--muted);
    font-size: 11px;
}

.evidence-blueprint {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 30px;
}

.evidence-blueprint span {
    display: flex;
    min-height: 120px;
    flex-direction: column;
    justify-content: space-between;
    padding: 20px;
    border-radius: 16px;
    background: var(--ink);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.evidence-blueprint b {
    color: var(--teal);
    font-size: 10px;
}

.evidence-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0 0;
}

.evidence-facts > div {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.evidence-facts dt {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.evidence-facts dd {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.trust-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trust-list li {
    display: grid;
    min-height: 116px;
    align-items: start;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
}

.trust-list span {
    display: flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--teal-soft);
    color: var(--teal-deep);
    font-size: 10px;
    font-weight: 900;
}

.trust-list p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.start-panel {
    padding: clamp(34px, 5vw, 58px);
    border: 1px solid rgba(18, 199, 163, 0.3);
    border-radius: 28px;
    background: linear-gradient(145deg, var(--teal-soft), #fff);
}

.start-panel h2 {
    margin: 14px 0 0;
    font-size: clamp(32px, 4vw, 50px);
    line-height: 1.2;
}

.start-panel > p {
    max-width: 850px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 16px;
}

/* Forms */

.lead-section {
    background:
        radial-gradient(circle at 12% 20%, rgba(22, 138, 242, 0.11), transparent 27%),
        radial-gradient(circle at 88% 78%, rgba(18, 199, 163, 0.1), transparent 25%),
        var(--ink);
    color: #fff;
}

.lead-grid,
.contact-layout {
    display: grid;
    grid-template-columns: minmax(390px, 0.88fr) minmax(0, 1.12fr);
    align-items: start;
    gap: clamp(48px, 8vw, 110px);
}

.lead-grid > div > h2 {
    margin: 15px 0 0;
    font-size: clamp(36px, 3.6vw, 48px);
    line-height: 1.18;
}

.lead-grid > div > p,
.lead-grid > div > ul {
    color: rgba(255, 255, 255, 0.72);
}

.lead-grid > div > p {
    margin-top: 20px;
    font-size: 17px;
}

.lead-grid > div > ul {
    display: grid;
    gap: 9px;
    padding-left: 20px;
}

.lead-form,
.contact-form {
    padding: clamp(25px, 3vw, 38px);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 25px;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18);
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.form-grid label,
.contact-form label {
    display: grid;
    gap: 7px;
}

.form-grid .field-wide {
    grid-column: 1 / -1;
}

.form-grid label > span,
.contact-form label > span {
    font-size: 12px;
    font-weight: 850;
}

.lead-form input,
.lead-form select,
.lead-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
    width: 100%;
    min-height: 49px;
    padding: 12px 14px;
    border: 1px solid var(--line-strong);
    border-radius: 12px;
    outline: none;
    background: var(--soft);
    font-size: 13px;
    line-height: 1.6;
}

.lead-form textarea,
.contact-form textarea {
    min-height: 104px;
    resize: vertical;
}

.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus,
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 4px rgba(22, 138, 242, 0.09);
}

.lead-form > .button,
.contact-form > .button {
    width: 100%;
    margin-top: 20px;
}

.form-note {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.6;
}

/* Delivery */

.delivery-layer-stack {
    display: grid;
    gap: 10px;
}

.delivery-layer {
    display: grid;
    min-height: 116px;
    align-items: center;
    grid-template-columns: 50px 90px minmax(0, 1fr) auto;
    gap: 18px;
    padding: 20px 25px;
    border: 1px solid var(--line);
    border-radius: 19px;
    background: #fff;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.delivery-layer:hover {
    border-color: rgba(22, 138, 242, 0.32);
    box-shadow: var(--shadow);
    transform: translateX(4px);
}

.delivery-layer.foundation {
    border-color: rgba(18, 199, 163, 0.3);
    background: linear-gradient(90deg, var(--teal-soft), #fff);
}

.delivery-layer > b {
    color: var(--blue);
    font-size: 11px;
}

.delivery-layer > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.delivery-layer h2 {
    margin: 0;
    font-size: 23px;
}

.delivery-layer p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.delivery-layer i {
    color: var(--blue);
    font-style: normal;
}

.delivery-layer-action {
    color: var(--blue-deep);
    font-size: 12px;
    white-space: nowrap;
}

.delivery-client-grid .section-head {
    min-height: 150px;
}

.workshop-board,
.method-steps,
.loop-grid,
.autonomy-levels,
.node-anatomy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.workshop-board > div,
.method-steps article,
.loop-grid article,
.autonomy-levels article,
.node-anatomy-grid article {
    min-height: 170px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
}

.workshop-board b,
.method-steps b,
.loop-grid b,
.autonomy-levels b {
    color: var(--blue);
    font-size: 10px;
}

.workshop-board span,
.method-steps span,
.loop-grid span {
    display: block;
    margin-top: 20px;
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.workshop-board p,
.method-steps p,
.loop-grid p,
.autonomy-levels p,
.node-anatomy-grid p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.method-steps,
.loop-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.method-steps h3,
.loop-grid h3,
.autonomy-levels h3 {
    margin: 8px 0 0;
    font-size: 19px;
}

.path-timeline {
    display: grid;
    gap: 14px;
}

.path-stage {
    display: grid;
    align-items: start;
    grid-template-columns: 50px 110px minmax(0, 1fr);
    gap: 18px;
    padding: 25px;
    border: 1px solid var(--line);
    border-radius: 18px;
}

.path-stage > b {
    color: var(--blue);
    font-size: 11px;
}

.path-stage > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
}

.path-stage h2 {
    margin: 0;
    font-size: 24px;
}

.path-stage p {
    margin: 8px 0 12px;
    color: var(--muted);
    font-size: 14px;
}

.path-stage strong {
    color: var(--teal-deep);
    font-size: 12px;
}

.example-flow {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.example-flow span {
    display: flex;
    min-height: 100px;
    flex: 1 1 150px;
    flex-direction: column;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    color: var(--muted);
    font-size: 12px;
}

.example-flow b {
    margin-bottom: 10px;
    color: var(--blue-deep);
    font-size: 10px;
}

.autonomy-levels {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vif-architecture {
    overflow: hidden;
    border: 1px solid rgba(22, 138, 242, 0.23);
    border-radius: 26px;
    background: linear-gradient(145deg, #071d42, #0a3769);
    color: #fff;
}

.vif-scenarios {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 24px;
}

.vif-scenarios span {
    padding: 18px 10px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.05);
    text-align: center;
    font-size: 10px;
    font-weight: 850;
}

.vif-bridge {
    padding: 12px 20px;
    background: linear-gradient(90deg, rgba(22, 138, 242, 0.6), rgba(18, 199, 163, 0.6));
    text-align: center;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.vif-components {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 24px;
}

.vif-components article {
    min-height: 145px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.045);
}

.vif-components b {
    color: #7ee6cf;
    font-size: 9px;
    letter-spacing: 0.05em;
}

.vif-components p {
    margin: 10px 0 0;
    color: rgba(255, 255, 255, 0.67);
    font-size: 11px;
}

.foundation-output-row {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px 18px 0 0;
}

.foundation-output-row > strong {
    display: block;
    padding: 14px 18px;
    background: #0a315f;
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.06em;
}

.foundation-output-row > div {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    padding: 14px;
    background: var(--soft);
}

.foundation-output-row span {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    padding: 9px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 10px;
    background: #fff;
    color: var(--ink-2);
    font-size: 10px;
    font-weight: 800;
    text-align: center;
}

.foundation-map {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 140px;
    gap: 12px;
    padding: 16px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    border-left: 1px solid var(--line);
    background: #fff;
}

.foundation-role-domain,
.foundation-evolution-engine {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border-radius: 14px;
}

.foundation-role-domain {
    background: var(--blue-soft);
}

.foundation-role-domain > span,
.foundation-evolution-engine > span {
    margin-bottom: 4px;
    color: var(--blue-deep);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-align: center;
}

.foundation-role-domain article {
    display: grid;
    gap: 3px;
    padding: 10px 8px;
    border: 1px solid rgba(22, 138, 242, 0.16);
    border-radius: 9px;
    background: #fff;
    text-align: center;
}

.foundation-role-domain strong {
    font-size: 10px;
}

.foundation-role-domain article > span {
    color: var(--muted);
    font-size: 8px;
}

.foundation-layer-stack {
    display: grid;
    gap: 8px;
}

.foundation-layer-stack > section {
    display: grid;
    grid-template-columns: minmax(210px, 0.72fr) minmax(0, 1.45fr);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.foundation-layer-stack header {
    padding: 12px 15px;
    background: #0f7c9d;
    color: #fff;
}

.foundation-layer-stack section:nth-child(2) header {
    background: #0aa98e;
}

.foundation-layer-stack section:nth-child(3) header {
    background: #566ab0;
}

.foundation-layer-stack section:nth-child(4) header {
    background: #e79513;
}

.foundation-layer-stack section:nth-child(5) header {
    background: #15957f;
}

.foundation-layer-stack section:nth-child(6) header {
    background: #0a315f;
}

.foundation-layer-stack header span,
.foundation-layer-stack header strong,
.foundation-layer-stack header p {
    display: block;
}

.foundation-layer-stack header span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.foundation-layer-stack header strong {
    margin-top: 4px;
    font-size: 12px;
}

.foundation-layer-stack header p {
    margin: 5px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 9px;
    line-height: 1.5;
}

.foundation-layer-stack > section > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 10px;
    background: #fff;
}

.foundation-layer-stack > section > div b {
    flex: 1 1 120px;
    padding: 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--soft);
    color: var(--ink-2);
    font-size: 9px;
    line-height: 1.4;
    text-align: center;
}

.foundation-evolution-engine {
    justify-content: center;
    border: 1px solid rgba(236, 154, 39, 0.36);
    background: var(--amber-soft);
}

.foundation-evolution-engine > span {
    color: #b86b04;
}

.foundation-evolution-engine b {
    padding: 10px 7px;
    border-radius: 9px;
    background: #fff;
    color: var(--ink-2);
    font-size: 9px;
    text-align: center;
}

.foundation-logic {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
    padding: 15px;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 18px 18px;
    background: var(--soft);
}

.foundation-logic span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #fff;
    color: var(--ink-2);
    font-size: 9px;
    font-weight: 800;
}

.foundation-node-chain,
.foundation-node-anatomy {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.foundation-node-chain article {
    min-height: 150px;
    padding: 20px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--teal);
    border-radius: 15px;
}

.foundation-node-chain b {
    color: var(--blue);
    font-size: 10px;
}

.foundation-node-chain span {
    display: block;
    margin-top: 20px;
    font-size: 16px;
    font-weight: 850;
}

.foundation-node-chain p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.foundation-node-anatomy {
    margin-top: 28px;
}

.foundation-node-anatomy article {
    display: grid;
    gap: 5px;
    padding: 17px;
    border-radius: 13px;
    background: var(--blue-soft);
}

.foundation-node-anatomy b {
    color: var(--blue-deep);
    font-size: 9px;
    letter-spacing: 0.06em;
}

.foundation-node-anatomy strong {
    font-size: 14px;
}

.foundation-node-anatomy span {
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.foundation-inner-loop {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    margin-top: 20px;
    padding: 18px 22px;
    border-radius: 14px;
    background: #0a315f;
    color: #fff;
}

.foundation-inner-loop span {
    color: var(--teal);
    font-size: 10px;
    font-weight: 900;
}

.foundation-inner-loop strong {
    font-size: clamp(16px, 2vw, 23px);
    letter-spacing: 0.01em;
    text-align: center;
}

.foundation-capabilities {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.foundation-capabilities article {
    min-height: 150px;
    padding: 21px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--amber);
    border-radius: 15px;
}

.foundation-capabilities b {
    font-size: 13px;
}

.foundation-capabilities p {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.65;
}

.foundation-evolution-path {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-top: 30px;
}

.foundation-evolution-path article {
    min-height: 165px;
    padding: 17px;
    border-radius: 14px;
    background: var(--teal-soft);
}

.foundation-evolution-path b,
.foundation-evolution-path span,
.foundation-evolution-path strong {
    display: block;
}

.foundation-evolution-path b {
    color: var(--teal-deep);
    font-size: 9px;
}

.foundation-evolution-path span {
    margin-top: 20px;
    color: var(--muted-2);
    font-size: 8px;
    font-weight: 900;
}

.foundation-evolution-path strong {
    margin-top: 5px;
    font-size: 13px;
}

.foundation-evolution-path p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.foundation-assets {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    margin-top: 18px;
    padding: 18px;
    border: 1px solid rgba(236, 154, 39, 0.3);
    border-radius: 14px;
    background: var(--amber-soft);
}

.foundation-assets > strong {
    color: #a95f00;
    font-size: 11px;
}

.foundation-assets > div {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
}

.foundation-assets span {
    padding: 9px;
    border-radius: 8px;
    background: #fff;
    color: var(--ink-2);
    font-size: 9px;
    font-weight: 780;
    text-align: center;
}

.foundation-scope {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.foundation-scope > section {
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
}

.foundation-scope h3 {
    margin-bottom: 16px;
    color: var(--blue-deep);
    font-size: 13px;
    letter-spacing: 0.04em;
}

.foundation-scope > section > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.foundation-scope article {
    min-height: 128px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--soft);
}

.foundation-scope article > span {
    color: var(--muted-2);
    font-size: 8px;
    font-weight: 900;
}

.foundation-scope article > strong {
    display: block;
    margin-top: 5px;
    font-size: 13px;
}

.foundation-scope article > p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.foundation-delivery-path {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 26px;
}

.foundation-delivery-path article {
    min-height: 150px;
    padding: 18px;
    border: 1px solid rgba(22, 138, 242, 0.18);
    border-radius: 14px;
    background: var(--blue-soft);
}

.foundation-delivery-path b,
.foundation-delivery-path span,
.foundation-delivery-path strong {
    display: block;
}

.foundation-delivery-path b {
    color: var(--blue);
    font-size: 9px;
}

.foundation-delivery-path span {
    margin-top: 18px;
    color: var(--muted-2);
    font-size: 8px;
    font-weight: 900;
}

.foundation-delivery-path strong {
    margin-top: 4px;
    font-size: 14px;
}

.foundation-delivery-path p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 10px;
}

.foundation-result {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 20px;
    margin-top: 18px;
    padding: 24px;
    border-radius: 16px;
    background: #0a315f;
    color: #fff;
}

.foundation-result strong {
    color: var(--teal);
    font-size: 16px;
}

.foundation-result span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    line-height: 1.7;
}

/* Certification */

.cert-ladder {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.cert-ladder a {
    display: flex;
    min-height: 340px;
    flex-direction: column;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.cert-ladder a:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-4px);
}

.cert-ladder b {
    color: var(--blue);
    font-size: 11px;
}

.cert-ladder span {
    margin-top: 38px;
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
}

.cert-ladder h2 {
    margin: 12px 0 0;
    font-size: 23px;
}

.cert-ladder p {
    margin: 14px 0;
    color: var(--muted);
    font-size: 12.5px;
}

.cert-ladder i {
    margin-top: auto;
    color: var(--blue);
    font-style: normal;
}

.program-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.program-grid article {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
}

.program-grid span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.program-grid h2 {
    margin: 16px 0 0;
    font-size: 24px;
}

.program-grid p {
    margin: 13px 0 20px;
    color: var(--muted);
    font-size: 13px;
}

.program-grid a {
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 850;
}

.cert-relationship {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 28px;
}

.cert-relationship article {
    padding: 18px;
    border-radius: 14px;
    background: var(--ink);
    color: #fff;
}

.cert-relationship b {
    color: var(--teal);
    font-size: 10px;
}

.cert-relationship p {
    margin: 9px 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 11px;
}

.cert-detail-summary {
    display: grid;
    grid-template-columns: 0.72fr 1.28fr;
    gap: clamp(50px, 7vw, 100px);
}

.cert-detail-summary h2 {
    margin: 12px 0 0;
    font-size: 28px;
}

.cert-detail-summary p {
    margin: 12px 0 0;
    color: var(--muted);
}

.cert-detail-summary .second {
    margin-top: 34px;
}

.cert-module-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.cert-module-grid article {
    min-height: 150px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: #fff;
}

.cert-module-grid b {
    color: var(--blue-deep);
    font-size: 10px;
}

.cert-module-grid p {
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.assessment-panel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 28px;
}

.assessment-panel > div {
    padding: 30px;
    border: 1px solid rgba(22, 138, 242, 0.2);
    border-radius: 20px;
    background: var(--blue-soft);
}

.assessment-panel h2 {
    margin: 13px 0 0;
    font-size: 26px;
}

.assessment-panel p {
    margin: 13px 0 0;
    color: var(--muted);
}

/* Models */

.model-capability-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.model-capability-grid a {
    display: flex;
    min-height: 245px;
    flex-direction: column;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.model-capability-grid a:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-4px);
}

.model-capability-grid span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.model-capability-grid h2 {
    margin: 17px 0 0;
    font-size: 26px;
}

.model-capability-grid p {
    margin: 14px 0;
    color: var(--muted);
    font-size: 13px;
}

.model-capability-grid i {
    margin-top: auto;
    color: var(--blue);
    font-style: normal;
}

.decision-flow {
    display: grid;
    gap: 8px;
}

.decision-flow article,
.eval-steps article {
    display: grid;
    align-items: center;
    grid-template-columns: 36px 90px minmax(0, 1fr);
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.decision-flow b,
.eval-steps b {
    color: var(--blue);
    font-size: 10px;
}

.decision-flow span,
.eval-steps span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.decision-flow p,
.eval-steps p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.atlas-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.atlas-grid article {
    min-height: 220px;
    padding: 27px;
    border: 1px solid var(--line);
    border-radius: 19px;
}

.atlas-grid b {
    color: var(--blue-deep);
    font-size: 10px;
}

.atlas-grid h2 {
    margin: 24px 0 0;
    font-size: 24px;
}

.atlas-grid p {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.atlas-record,
.eval-report {
    display: grid;
    gap: 8px;
}

.atlas-record span,
.eval-report article {
    display: grid;
    min-height: 70px;
    align-items: center;
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 14px;
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
}

.atlas-record b,
.eval-report b {
    color: var(--blue-deep);
    font-size: 10px;
}

.atlas-record span,
.eval-report p {
    color: var(--muted);
    font-size: 12px;
}

.eval-report p {
    margin: 0;
}

.cost-stack {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.cost-stack article {
    min-height: 220px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 18px;
}

.cost-stack b {
    color: var(--blue);
    font-size: 10px;
}

.cost-stack span {
    display: block;
    margin-top: 35px;
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
}

.cost-stack p {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.cpvo-panel {
    display: grid;
    grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1.35fr);
    align-items: center;
    gap: 40px;
    margin-bottom: 60px;
    padding: 34px;
    border-radius: 24px;
    background: var(--ink);
    color: #fff;
}

.cpvo-panel h2 {
    margin: 8px 0 0;
    color: var(--teal);
    font-size: 64px;
}

.cpvo-panel p,
.cpvo-panel > div:last-child {
    color: rgba(255, 255, 255, 0.7);
}

.live-price-note {
    display: grid;
    align-items: center;
    grid-template-columns: 140px minmax(0, 1fr) auto;
    gap: 20px;
    margin-top: 24px;
    padding: 20px;
    border: 1px solid rgba(18, 199, 163, 0.28);
    border-radius: 17px;
    background: var(--teal-soft);
}

.live-price-note strong {
    color: var(--teal-deep);
}

.live-price-note p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.benchmark-compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.benchmark-compare article {
    padding: 34px;
    border: 1px solid var(--line);
    border-radius: 23px;
}

.benchmark-compare span,
.benchmark-compare b {
    display: block;
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.benchmark-compare b {
    margin-top: 30px;
    color: var(--muted-2);
}

.benchmark-compare h2 {
    margin: 8px 0 0;
    font-size: 28px;
}

.benchmark-compare p {
    margin: 14px 0 0;
    color: var(--muted);
}

.eval-steps {
    display: grid;
    gap: 8px;
}

/* Partners and About */

.partner-type-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.partner-type-grid article {
    min-height: 275px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 18px;
}

.partner-type-grid span {
    color: var(--blue-deep);
    font-size: 9px;
    font-weight: 900;
}

.partner-type-grid h2 {
    margin: 27px 0 0;
    font-size: 21px;
}

.partner-type-grid p {
    margin: 13px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.partner-mode-grid,
.qualification-list {
    display: grid;
    gap: 9px;
}

.partner-mode-grid article,
.qualification-list article {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}

.partner-mode-grid b,
.qualification-list b {
    color: var(--blue-deep);
    font-size: 11px;
}

.partner-mode-grid p,
.qualification-list p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.ecosystem-proof {
    margin-top: 50px;
    padding-top: 36px;
    border-top: 1px solid var(--line);
}

.ecosystem-proof > p {
    max-width: 800px;
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.partner-logo-row {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 8px;
    margin-top: 24px;
}

.partner-logo-row div {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fff;
}

.partner-logo-row img {
    width: 100%;
    height: 48px;
    object-fit: contain;
}

.position-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.position-grid article {
    min-height: 240px;
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 21px;
}

.position-grid span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.position-grid h2 {
    margin: 28px 0 0;
    font-size: 27px;
}

.position-grid p {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.about-capability-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.about-capability-grid article {
    min-height: 235px;
    padding: 22px;
    border: 1px solid rgba(22, 138, 242, 0.16);
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.82);
}

.about-capability-grid b {
    color: var(--blue-deep);
    font-size: 9px;
}

.about-capability-grid h3 {
    margin: 25px 0 0;
    font-size: 19px;
}

.about-capability-grid p {
    margin: 11px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.trust-principles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.trust-principles article {
    min-height: 180px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 17px;
}

.trust-principles b {
    color: var(--teal-deep);
    font-size: 10px;
}

.trust-principles p {
    margin: 20px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.company-entity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 60px;
    align-items: center;
}

.company-entity h2 {
    margin: 14px 0 0;
    font-size: 38px;
}

.company-entity dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 26px;
}

.company-entity dl > div {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.company-entity dt {
    color: var(--muted-2);
    font-size: 10px;
    font-weight: 850;
}

.company-entity dd {
    margin: 5px 0 0;
    font-size: 13px;
    font-weight: 750;
}

.certificate-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow);
}

.certificate-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.certificate-card span {
    display: block;
    padding: 12px 15px;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 850;
}

/* Contact and legal */

.contact-route-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.contact-route-grid button {
    display: flex;
    min-height: 230px;
    flex-direction: column;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 19px;
    background: #fff;
    text-align: left;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.contact-route-grid button:hover,
.contact-route-grid button.is-active {
    border-color: rgba(22, 138, 242, 0.35);
    box-shadow: var(--shadow);
    transform: translateY(-3px);
}

.contact-route-grid span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
}

.contact-route-grid h2 {
    margin: 28px 0 0;
    font-size: 23px;
}

.contact-route-grid p {
    margin: 12px 0;
    color: var(--muted);
    font-size: 12px;
}

.contact-route-grid i {
    margin-top: auto;
    color: var(--blue);
    font-style: normal;
}

.contact-layout > div > h2 {
    margin: 12px 0 0;
    font-size: 36px;
}

.contact-layout > div > p {
    color: var(--muted);
}

.contact-form {
    display: grid;
    gap: 15px;
    border-color: var(--line);
    box-shadow: var(--shadow);
}

.security-note {
    margin-top: 28px;
    padding: 20px;
    border: 1px solid rgba(18, 199, 163, 0.28);
    border-radius: 15px;
    background: var(--teal-soft);
}

.security-note b {
    color: var(--teal-deep);
    font-size: 10px;
}

.security-note p {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.legal-content {
    max-width: 920px;
}

.legal-date {
    padding-bottom: 22px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 12px;
}

.legal-content section {
    padding: 30px 0;
    border-bottom: 1px solid var(--line);
}

.legal-content h2 {
    margin: 0;
    font-size: 25px;
}

.legal-content section p {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.9;
}

/* Search */

.search-dialog {
    position: fixed;
    z-index: 500;
    inset: 0;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding: max(7vh, 52px) 20px 30px;
    background: rgba(3, 15, 36, 0.68);
    backdrop-filter: blur(11px);
}

body.search-active .search-dialog {
    display: flex;
}

.search-panel {
    width: min(820px, 100%);
    max-height: 86vh;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 30px 100px rgba(0, 0, 0, 0.28);
}

.search-head {
    display: grid;
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: 18px;
    border-bottom: 1px solid var(--line);
}

.search-head > span {
    position: relative;
    width: 20px;
    height: 20px;
    border: 2px solid var(--blue);
    border-radius: 50%;
}

.search-head > span::after {
    position: absolute;
    right: -7px;
    bottom: -4px;
    width: 8px;
    height: 2px;
    background: var(--blue);
    content: "";
    transform: rotate(45deg);
}

.search-head input {
    min-width: 0;
    min-height: 52px;
    padding: 0 10px;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 18px;
}

.search-close {
    min-width: 44px;
    min-height: 38px;
    padding: 0 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--soft);
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}

.search-status {
    padding: 12px 20px;
    color: var(--muted);
    font-size: 11px;
}

.search-results {
    display: grid;
    max-height: calc(86vh - 130px);
    overflow-y: auto;
    gap: 6px;
    padding: 0 12px 16px;
}

.search-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: 16px;
    border: 1px solid transparent;
    border-radius: 14px;
}

.search-result:hover,
.search-result:focus {
    border-color: rgba(22, 138, 242, 0.2);
    background: var(--blue-soft);
}

.search-result span {
    color: var(--blue-deep);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.07em;
}

.search-result h2 {
    margin: 5px 0 0;
    font-size: 18px;
}

.search-result p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 11px;
}

.search-result i {
    align-self: center;
    color: var(--blue);
    font-style: normal;
}

.search-empty {
    padding: 28px 20px;
    color: var(--muted);
    text-align: center;
}

/* Footer */

.site-footer {
    padding: 70px 0 24px;
    background: #061731;
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.2fr) repeat(3, minmax(160px, 0.65fr));
    gap: 42px;
}

.footer-brand img {
    width: 160px;
    height: 54px;
    filter: brightness(0) invert(1);
    object-fit: contain;
}

.footer-brand p {
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
}

.footer-brand strong {
    display: block;
    margin-top: 8px;
    font-size: 16px;
}

.footer-email {
    display: inline-block;
    margin-top: 18px;
    color: #75c5ff;
    font-size: 13px;
}

.footer-grid section {
    display: grid;
    align-content: start;
    gap: 9px;
}

.footer-grid section h2 {
    margin: 0 0 8px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 10px;
    letter-spacing: 0.1em;
}

.footer-grid section a {
    color: rgba(255, 255, 255, 0.75);
    font-size: 12px;
}

.footer-grid section a:hover {
    color: #fff;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 54px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.45);
    font-size: 10px;
}

.footer-bottom > div,
.filings {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.filings a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.filings img {
    width: 14px;
    height: 14px;
}

.redirect-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 30px;
}

.redirect-page main {
    max-width: 600px;
    text-align: center;
}

.redirect-page img {
    margin: 0 auto 28px;
}

/* Responsive */

@media (min-width: 1440px) {
    .lang-zh .home-hero h1 {
        white-space: nowrap;
    }
}

@media (max-width: 1260px) {
    :root {
        --container: 1160px;
    }

    .desktop-nav {
        gap: 16px;
    }

    .nav-link {
        font-size: 16px;
    }

    .search-open b {
        display: none;
    }

    .search-open {
        width: 42px;
        padding: 0;
    }

    .scenario-group-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .scenario-group {
        min-height: 285px;
    }

    .evidence-card-scroll {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .user-role-row,
    .gate-grid,
    .partner-type-grid,
    .about-capability-grid,
    .cost-stack {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mip-application-row,
    .mip-output-grid,
    .mip-map-layer.integration > div,
    .mip-map-layer.sources > div,
    .mip-security-layer > div {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .mip-value-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .partner-logo-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1120px) {
    :root {
        --header-height: 72px;
    }

    .container {
        width: min(100% - 40px, var(--container));
    }

    .brand img {
        width: 145px;
        height: 49px;
    }

    .desktop-nav {
        display: none;
    }

    .header-tools {
        margin-left: auto;
    }

    .menu-toggle {
        display: inline-flex;
    }

    .detail-hero-grid,
    .split-section,
    .two-column-info,
    .custom-evidence,
    .lead-grid,
    .contact-layout {
        grid-template-columns: 1fr;
    }

    .delivery-client-grid .section-head {
        min-height: 0;
    }

    .outcome-contract {
        max-width: 650px;
    }

    .work-node-card,
    .atlas-note {
        position: static;
    }

    .scene-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .detail-layout {
        grid-template-columns: 160px minmax(0, 1fr);
        gap: 42px;
    }

    .role-grid,
    .model-capability-grid,
    .atlas-grid,
    .program-grid,
    .contact-route-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cert-ladder,
    .cert-module-grid,
    .cert-relationship,
    .trust-principles,
    .vif-components,
    .autonomy-levels {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .path-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .metric-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .company-entity {
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 36px;
    }

    .mip-platform-body,
    .foundation-map {
        grid-template-columns: 1fr;
    }

    .mip-loop-panel {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .mip-loop-panel > span {
        grid-column: 1 / -1;
    }

    .mip-loop-panel > i {
        display: none;
    }

    .foundation-role-domain {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .foundation-role-domain > span {
        grid-column: 1 / -1;
    }

    .foundation-evolution-engine {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .foundation-evolution-engine > span {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    body {
        font-size: 15px;
    }

    .section {
        padding: 72px 0;
    }

    .overview-hero,
    .detail-hero {
        padding-top: 28px;
        padding-bottom: 54px;
    }

    .breadcrumbs {
        margin-bottom: 30px;
    }

    .overview-hero h1,
    .detail-hero h1 {
        font-size: clamp(42px, 10vw, 58px);
    }

    .home-hero {
        min-height: auto;
        padding: 64px 0 72px;
    }

    .home-hero h1 {
        font-size: clamp(46px, 10vw, 62px);
    }

    .home-route > .container {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .page-compass .container {
        justify-content: flex-start;
    }

    .detail-layout {
        display: block;
        padding-top: 0;
    }

    .page-rail {
        position: sticky;
        z-index: 80;
        top: var(--header-height);
        display: flex;
        overflow-x: auto;
        gap: 4px;
        margin: 0 calc(50% - 50vw) 34px;
        padding: 10px 20px;
        border: 0;
        border-bottom: 1px solid var(--line);
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(14px);
        scrollbar-width: none;
    }

    .page-rail > span {
        display: none;
    }

    .page-rail a {
        flex: none;
        padding: 8px 11px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: #fff;
    }

    .page-rail a::before {
        display: none;
    }

    .content-section {
        padding-bottom: 62px;
    }

    .content-section + .content-section {
        padding-top: 58px;
    }

    .evidence-card-scroll,
    .evidence-gallery,
    .scenario-group-grid,
    .capability-duo,
    .position-grid,
    .benchmark-compare,
    .assessment-panel,
    .cert-detail-summary,
    .company-entity,
    .cpvo-panel {
        grid-template-columns: 1fr;
    }

    .evidence-card-scroll {
        display: flex;
        overflow-x: auto;
        padding-bottom: 12px;
        scroll-snap-type: x mandatory;
    }

    .evidence-card-scroll .scene-card {
        min-width: min(82vw, 340px);
        scroll-snap-align: start;
    }

    .scene-grid,
    .requirement-grid,
    .role-grid,
    .criteria-grid,
    .commitment-grid,
    .validation-cards,
    .trust-list,
    .evidence-facts,
    .integration-boundary,
    .comparison-rows article,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .production-engineering-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .comparison-rows article {
        gap: 10px;
    }

    .comparison-rows > article > b {
        padding-bottom: 8px;
        border-bottom: 1px solid var(--line);
    }

    .gate-grid,
    .user-role-row,
    .partner-type-grid,
    .about-capability-grid,
    .cost-stack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-grid,
    .path-cards,
    .workshop-board,
    .method-steps,
    .loop-grid,
    .node-anatomy-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mip-application-row,
    .mip-output-grid,
    .mip-engine-grid,
    .mip-data-grid,
    .mip-map-layer.integration > div,
    .mip-map-layer.sources > div,
    .mip-security-layer > div,
    .foundation-output-row > div,
    .foundation-node-chain,
    .foundation-node-anatomy,
    .foundation-capabilities,
    .foundation-evolution-path,
    .foundation-delivery-path {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mip-map-layer,
    .mip-security-layer,
    .foundation-layer-stack > section,
    .foundation-assets,
    .foundation-result,
    .foundation-scope {
        grid-template-columns: 1fr;
    }

    .mip-map-layer > header {
        min-height: auto;
    }

    .foundation-scope > section > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .foundation-assets > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .foundation-strip,
    .live-price-note {
        grid-template-columns: 1fr auto;
    }

    .foundation-strip > strong,
    .live-price-note p {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .delivery-layer {
        grid-template-columns: 42px 80px minmax(0, 1fr);
    }

    .delivery-layer-action {
        grid-column: 3;
        justify-self: start;
    }

    .vif-scenarios {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .company-entity dl {
        grid-template-columns: 1fr;
    }

    .certificate-card {
        max-width: 430px;
    }

    .partner-callout,
    .wide-cta {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    .container {
        width: calc(100% - 30px);
    }

    .brand img {
        width: 130px;
        height: 44px;
    }

    .header-inner {
        gap: 10px;
    }

    .search-open {
        display: none;
    }

    .overview-hero h1,
    .detail-hero h1 {
        font-size: 42px;
        line-height: 1.13;
    }

    .home-hero h1 {
        font-size: 48px;
        line-height: 1.08;
    }

    .home-route-grid {
        grid-template-columns: 1fr;
    }

    .home-hero p,
    .overview-hero p,
    .detail-hero-grid > div:first-child > p,
    .section-head p {
        font-size: 16px;
        line-height: 1.82;
    }

    .section-head h2 {
        font-size: 34px;
    }

    .production-engineering-grid {
        grid-template-columns: 1fr;
    }

    .production-engineering-grid article {
        min-height: auto;
    }

    .console-entry {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-actions .button {
        width: 100%;
    }

    .scenario-group-grid,
    .scene-grid,
    .gate-grid,
    .user-role-row,
    .metric-grid,
    .partner-type-grid,
    .about-capability-grid,
    .cost-stack,
    .model-capability-grid,
    .atlas-grid,
    .program-grid,
    .contact-route-grid,
    .cert-ladder,
    .cert-module-grid,
    .cert-relationship,
    .trust-principles,
    .vif-components,
    .autonomy-levels,
    .path-cards,
    .workshop-board,
    .method-steps,
    .loop-grid,
    .node-anatomy-grid {
        grid-template-columns: 1fr;
    }

    .mip-value-grid,
    .mip-application-row,
    .mip-engine-grid,
    .mip-data-grid,
    .mip-map-layer.integration > div,
    .mip-map-layer.sources > div,
    .mip-security-layer > div,
    .foundation-node-chain,
    .foundation-node-anatomy,
    .foundation-capabilities,
    .foundation-evolution-path,
    .foundation-scope > section > div,
    .foundation-delivery-path {
        grid-template-columns: 1fr;
    }

    .mip-output-grid,
    .foundation-output-row > div,
    .foundation-assets > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mip-platform-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .mip-loop-panel,
    .foundation-role-domain,
    .foundation-evolution-engine {
        grid-template-columns: 1fr;
    }

    .scenario-group {
        min-height: 290px;
    }

    .scene-card-media {
        height: 210px;
    }

    .maturity-ladder article {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .maturity-ladder p {
        grid-column: 2;
    }

    .delivery-stack a {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .delivery-stack i {
        display: none;
    }

    .capability-panel > div {
        grid-template-columns: 1fr;
    }

    .foundation-strip,
    .delivery-layer,
    .path-stage,
    .decision-flow article,
    .eval-steps article,
    .atlas-record span,
    .eval-report article {
        grid-template-columns: 1fr;
    }

    .delivery-layer-action {
        grid-column: 1;
    }

    .foundation-strip > i,
    .delivery-layer > b {
        display: none;
    }

    .foundation-strip > strong {
        grid-column: 1;
    }

    .mip-flow {
        flex-wrap: wrap;
    }

    .mip-flow i {
        display: none;
    }

    .mip-flow span {
        padding: 7px 9px;
        border: 1px solid rgba(255, 255, 255, 0.13);
        border-radius: 999px;
    }

    .evidence-blueprint,
    .vif-scenarios {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .evidence-section {
        padding: 48px 18px !important;
        border-radius: 20px;
    }

    .node-chain li {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: 12px;
        padding: 17px;
    }

    .node-chain::before {
        left: 26px;
    }

    .lead-form,
    .contact-form {
        padding: 21px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 30px 20px;
    }

    .footer-grid section:last-child {
        grid-column: 1 / -1;
    }

    .search-dialog {
        padding: 0;
    }

    .search-panel {
        width: 100%;
        height: 100%;
        max-height: none;
        border: 0;
        border-radius: 0;
    }

    .search-results {
        max-height: calc(100vh - 130px);
    }
}

/* v1.5 product-first information architecture */

.v15-home-hero {
    min-height: 410px;
    padding: 50px 0 54px;
}

.v15-home-hero p {
    max-width: 1120px;
}

.product-entry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.product-entry-grid .scenario-group {
    min-height: 285px;
}

.v15-lead-copy {
    max-width: 780px;
    margin: 18px 0 24px;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.78;
}

.delivery-layer-stack.v15-link-stack > a {
    display: grid;
    min-height: 112px;
    align-items: center;
    grid-template-columns: 104px minmax(0, 1fr) auto;
    gap: 22px;
    padding: 20px 24px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(6, 26, 61, 0.025);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.delivery-layer-stack.v15-link-stack > a:hover {
    border-color: rgba(22, 138, 242, 0.34);
    box-shadow: var(--shadow);
    transform: translateX(4px);
}

.delivery-layer-stack.v15-link-stack > a > b {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.delivery-layer-stack.v15-link-stack > a > div {
    display: grid;
    gap: 6px;
}

.delivery-layer-stack.v15-link-stack > a strong {
    color: var(--ink);
    font-size: 20px;
    line-height: 1.35;
}

.delivery-layer-stack.v15-link-stack > a span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.7;
}

.delivery-layer-stack.v15-link-stack > a > i {
    color: var(--blue-deep);
    font-size: 12px;
    font-style: normal;
    font-weight: 850;
    white-space: nowrap;
}

.production-engineering-grid.count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-visual {
    align-self: start;
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--shadow);
}

.product-visual img,
.product-visual video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    background: #fff;
}

.product-visual figcaption {
    padding: 16px 18px 18px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.audit-flow,
.hireradar-flow,
.model-selection-flow {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.audit-flow span,
.hireradar-flow span,
.model-selection-flow span {
    min-height: 78px;
}

.delivery-v15-timeline article {
    display: grid;
    align-items: start;
    grid-template-columns: 52px 112px minmax(0, 1fr);
    gap: 18px;
    padding: 25px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
}

.delivery-v15-timeline article > b,
.delivery-v15-timeline article > span {
    color: var(--blue-deep);
    font-size: 11px;
    font-weight: 900;
}

.delivery-v15-timeline h2 {
    margin: 0;
    font-size: 24px;
}

.delivery-v15-timeline p {
    margin: 8px 0 12px;
    color: var(--muted);
    font-size: 14px;
}

.delivery-v15-timeline strong {
    display: block;
    color: var(--teal-deep);
    font-size: 12px;
}

.delivery-v15-timeline a {
    display: inline-block;
    margin-top: 11px;
    color: var(--blue-deep);
    font-size: 12px;
    font-weight: 850;
}

.cert-path-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.cert-path-grid article {
    min-height: 260px;
    padding: 25px;
    border: 1px solid var(--line);
    border-radius: 19px;
    background: #fff;
}

.cert-path-grid article > b,
.cert-path-grid article > span {
    color: var(--blue-deep);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.06em;
}

.cert-path-grid article > span {
    display: block;
    margin-top: 18px;
}

.cert-path-grid h3 {
    margin: 10px 0 0;
    font-size: 19px;
    line-height: 1.45;
}

.cert-path-grid p {
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.68;
}

.mip-application-row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

@media (max-width: 1120px) {
    .cert-path-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mip-application-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .v15-home-hero {
        min-height: auto;
        padding: 58px 0 62px;
    }

    .product-entry-grid,
    .production-engineering-grid.count-3 {
        grid-template-columns: 1fr;
    }

    .delivery-layer-stack.v15-link-stack > a {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 14px;
    }

    .delivery-layer-stack.v15-link-stack > a > i {
        grid-column: 2;
        justify-self: start;
    }

    .delivery-v15-timeline article {
        grid-template-columns: 44px minmax(0, 1fr);
    }

    .delivery-v15-timeline article > div {
        grid-column: 2;
    }
}

@media (max-width: 560px) {
    .delivery-layer-stack.v15-link-stack > a {
        min-height: auto;
        grid-template-columns: 1fr;
        padding: 19px;
    }

    .delivery-layer-stack.v15-link-stack > a > i,
    .delivery-v15-timeline article > div {
        grid-column: 1;
    }

    .delivery-v15-timeline article {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 20px;
    }

    .delivery-v15-timeline article > div {
        grid-column: 1 / -1;
    }

    .cert-path-grid,
    .mip-application-row {
        grid-template-columns: 1fr;
    }
}

/* In-section wayfinding: one compact sibling path below each overview hero. */
.context-nav {
    position: relative;
    z-index: 12;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.97);
}

.context-nav .container {
    display: flex;
    min-height: 58px;
    align-items: center;
    gap: 24px;
}

.context-nav strong {
    flex: 0 0 auto;
    color: var(--ink);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.04em;
}

.context-nav .container > div {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 5px;
    overflow-x: auto;
    scrollbar-width: none;
}

.context-nav .container > div::-webkit-scrollbar {
    display: none;
}

.context-nav a {
    flex: 0 0 auto;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 760;
    white-space: nowrap;
    transition: color 160ms ease, background 160ms ease;
}

.context-nav a:hover {
    color: var(--blue-deep);
    background: var(--blue-soft);
}

.context-nav a.is-current {
    color: #fff;
    background: var(--blue-deep);
}

.ecosystem-proof > h2 {
    max-width: 720px;
    margin: 10px 0 0;
    font-size: clamp(22px, 2.3vw, 34px);
    line-height: 1.25;
}

.home-route-grid.v15-light-links > a {
    display: flex;
    min-height: 168px;
    flex-direction: column;
    gap: 10px;
    border-color: var(--line);
    background: #fff;
    box-shadow: 0 8px 24px rgba(6, 26, 61, 0.035);
}

.home-route-grid.v15-light-links > a:hover {
    border-color: rgba(22, 138, 242, 0.34);
    background: var(--blue-soft);
}

.home-route-grid.v15-light-links > a > b,
.home-route-grid.v15-light-links > a > i {
    color: var(--blue);
}

.home-route-grid.v15-light-links > a > i {
    margin-top: auto;
    font-size: 12px;
    font-weight: 800;
}

.home-route-grid.v15-light-links strong {
    color: var(--ink);
}

.home-route-grid.v15-light-links span {
    color: var(--muted);
}

.about-page .home-route-grid.v15-light-links {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.v15-home #applications .evidence-card-scroll {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 820px) {
    .context-nav .container {
        min-height: 54px;
        gap: 14px;
    }

    .context-nav strong {
        display: none;
    }

    .context-nav .container > div {
        margin-right: -18px;
        padding-right: 18px;
    }

    .about-page .home-route-grid.v15-light-links,
    .home-route-grid.v15-light-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .about-page .home-route-grid.v15-light-links,
    .home-route-grid.v15-light-links {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    body {
        padding-top: 0;
    }

    .site-header,
    .page-compass,
    .context-nav,
    .page-rail,
    .site-footer,
    .hero-actions,
    .lead-section,
    .search-dialog {
        display: none !important;
    }

    .detail-layout {
        display: block;
        padding-top: 20px;
    }

    .section,
    .content-section {
        padding: 30px 0;
    }

    a {
        color: #000;
    }
}

/* September 2026: product-first V3.1 content and accessible navigation. */
[hidden] { display: none !important; }
.v31 .desktop-nav { gap: clamp(14px, 1.4vw, 26px); }
.nav-expand { display: inline-flex; width: 34px; min-height: 44px; margin-left: 2px; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; color: var(--muted); }
.nav-expand:hover, .nav-expand[aria-expanded="true"] { color: var(--blue-deep); background: var(--blue-soft); }
.nav-expand span { transition: transform 160ms; font-size: 18px; }
.nav-expand[aria-expanded="true"] span { transform: rotate(180deg); }
.nav-item.is-open .nav-panel { opacity: 1; transform: none; pointer-events: auto; }
.v31 .nav-panel { background: white; }
.nav-panel a[aria-current="page"] { background: var(--blue-soft); border-color: var(--line-strong); }
.header-contact { padding: 9px 14px; border-radius: 999px; background: var(--ink); color: white; font-size: 13px; font-weight: 750; white-space: nowrap; }
.header-contact:hover { background: var(--blue-deep); }
.v31-home-hero { padding: 58px 0 48px; min-height: 452px; }
.v31-home-hero h1 { font-size: clamp(38px, 5.25vw, 78px); letter-spacing: -.04em; margin: 16px 0 20px; }
.v31-home-hero p { max-width: none; font-size: clamp(18px,1vw,19px); line-height: 1.85; text-wrap: pretty; }
.v31.lang-en .v31-home-hero h1 { max-width: 1020px; font-size: clamp(36px, 4.4vw, 65px); line-height: 1.12; }
.v31.lang-en .v31-home-hero p { max-width: none; font-size: 17px; }
.hero-service-links { display: flex; flex-wrap: wrap; gap: 14px 32px; margin-top: 22px; font-size: 13px; }
.v31 .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.v31-hero .overview-hero-copy { max-width: none; }
.v31-hero h1 { max-width: 1100px; font-size: clamp(30px, 3.5vw, 50px); line-height: 1.35; overflow-wrap: break-word; }
.v31-hero p { max-width: none; text-wrap: pretty; }
.v31-compass { position: sticky; top: var(--header-height); z-index: 90; background: rgba(255,255,255,.98); }
.v31-compass .container { overflow-x: auto; scrollbar-width: thin; gap: 28px; }
.v31-compass a { flex: none; padding: 15px 0; border-bottom: 2px solid transparent; }
.v31-compass a.is-active { border-color: var(--blue); color: var(--blue-deep); }
.v31 section[id] { scroll-margin-top: calc(var(--header-height) + 68px); }
.v31 .section { padding-block: 76px; }
.v31 .section-head { max-width: none; }
.v31 .section-head h2 { font-size: clamp(27px, 3vw, 42px); line-height: 1.38; }
.v31 .section-head p { max-width: none; font-size: 17px; text-wrap: pretty; }
.v31-grid { display: grid; gap: 24px; }
.v31-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v31-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v31-grid > * { min-width: 0; }
.v31-card, .v31-case, .v31-course, .v31-service { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.v31-card h3, .v31-case h3, .v31-course h3, .v31-service h3 { margin: 10px 0 16px; font-size: 23px; line-height: 1.45; }
.v31-card p, .v31-case p, .v31-course p, .v31-service p { color: var(--muted); font-size: 15px; line-height: 1.85; }
.v31-card p:last-child { margin-bottom: 0; }
.card-number { display: block; color: var(--blue-deep); font-size: 12px; font-weight: 850; letter-spacing: .1em; }
.v31-category-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-bottom: 30px; }
.v31-category-intro > div { border-left: 3px solid var(--teal); padding: 0 24px 6px; }
.v31-category-intro > div + div { border-color: var(--blue); }
.v31-category-intro h3 { font-size: 23px; margin-bottom: 9px; }
.v31-category-intro p { color: var(--muted); margin-bottom: 12px; font-size: 15px; }
.v31-product-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: white; transition: transform 180ms, box-shadow 180ms, border-color 180ms; }
.v31-product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #a0c9eb; }
.v31-product-card > a { display: flex; flex-direction: column; height: 100%; }
.product-card-media { height: 210px; padding: 18px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg,#edf9f7,#f5f9ff); }
.product-card-media img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 6px 8px #061a3d13); }
.product-card-flow { min-height: 210px; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 28px; background: linear-gradient(120deg,#edf6ff,#f4f1ff); border-bottom: 1px solid var(--line); }
.industrial .product-card-flow { background: linear-gradient(120deg,#e9f8f5,#f3f9ff); }
.product-card-flow > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.product-card-flow > div { display: flex; gap: 9px; align-items: center; }
.product-card-flow b { position: relative; flex: 1; padding: 12px 9px; background: #ffffffc9; border: 1px solid #cbdff0; border-radius: 10px; text-align: center; font-size: 12px; line-height: 1.5; }
.product-card-flow b + b::before { content: '→'; position: absolute; left: -10px; top: 35%; color: var(--blue-deep); }
.product-card-copy { display: flex; flex-direction: column; flex: 1; padding: 27px; }
.product-card-copy h3 { margin: 10px 0 12px; font-size: 23px; line-height: 1.42; }
.product-card-copy p { color: var(--muted); margin-bottom: 22px; font-size: 14px; line-height: 1.85; }
.product-card-copy .text-link { margin-top: auto; font-size: 14px; font-weight: 800; }
.text-link { color: var(--blue-deep); font-weight: 750; }
.v31-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.v31-filters button { min-height: 44px; border: 1px solid var(--line); border-radius: 999px; padding: 9px 19px; background: white; font-size: 14px; }
.v31-filters button.is-active { background: var(--ink); border-color: var(--ink); color: white; }
.catalog-count { margin: 16px 0 22px; color: var(--muted); font-size: 13px; }
.v31-case .case-metrics { display: flex; flex-wrap: wrap; gap: 22px; padding: 22px 0; margin-block: 20px; border-block: 1px solid var(--line); }
.case-metrics > div { flex: 1; min-width: 110px; }
.case-metrics strong { display: block; font-size: 36px; color: var(--blue-deep); line-height: 1.35; }
.case-metrics span { display: block; color: var(--muted); font-size: 13px; margin-top: 6px; }
.v31 .source-note { margin-top: 20px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.v31-architecture { margin: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #f6f9fc; }
.v31-architecture > a { position: relative; display: block; }
.v31-architecture img { width: 100%; height: auto; }
.image-zoom-label { position: absolute; right: 20px; bottom: 20px; background: var(--ink); color: white; padding: 9px 16px; border-radius: 999px; font-size: 12px; }
.v31-architecture figcaption, .v31-product-screen figcaption, .v31-video figcaption { padding: 16px 20px; margin: 0; color: var(--muted); font-size: 12px; background: white; }
.v31-delivery-steps { list-style: none; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 18px; padding: 0; margin: 0; }
.v31-delivery-steps li { border-top: 3px solid var(--teal); padding: 22px 10px 0 0; }
.v31-delivery-steps li:nth-child(odd) { border-color: var(--blue); }
.v31-delivery-steps li > span { font-size: 14px; font-weight: 850; color: var(--blue-deep); }
.v31-delivery-steps h3 { font-size: 18px; margin-top: 14px; margin-bottom: 12px; line-height: 1.5; }
.v31-delivery-steps p { color: var(--muted); font-size: 14px; }
.v31-service.training, .v31-course { border-color: #d6cef3; background: linear-gradient(135deg,white,#faf8ff); }
.v31-service.models { border-color: #c0e7e2; background: linear-gradient(135deg,white,#f3fcfa); }
.v31-service-spec { margin: 25px 0; font-size: 14px; }
.v31-service-spec dt { margin-top: 16px; font-weight: 800; }
.v31-service-spec dd { margin: 6px 0 0; color: var(--muted); line-height: 1.85; }
.v31-cta { background: linear-gradient(110deg,#eef6ff,#effaf6); }
.v31-workflow { list-style: none; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; margin: 0; padding: 0; }
.v31-workflow li { border: 1px solid var(--line); border-radius: 16px; padding: 22px 18px; background: white; }
.v31-workflow span { color: var(--blue-deep); font-size: 12px; font-weight: 850; }
.v31-workflow p { margin: 13px 0 0; font-size: 15px; font-weight: 750; overflow-wrap: break-word; }
.v31-product-screen, .v31-video { max-width: 1080px; margin: 36px auto 0; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.v31-product-screen img { width: 100%; max-height: 680px; object-fit: contain; }
.v31-video video { width: 100%; height: auto; background: var(--ink); }
.v31-layer-list { margin-top: 30px; display: grid; gap: 12px; }
.v31-layer-list article { display: grid; grid-template-columns: 55px 1fr; gap: 20px; padding: 22px 26px; border: 1px solid var(--line); border-radius: 16px; }
.v31-layer-list article > span { color: var(--blue-deep); font-weight: 800; }
.v31-layer-list h3 { margin-bottom: 8px; font-size: 19px; }
.v31-layer-list p { color: var(--muted); font-size: 14px; margin-bottom: 0; }
.course-hours { display: flex; flex-wrap: wrap; gap: 5px 10px; align-items: baseline; border-block: 1px solid #e5dff4; padding: 18px 0; margin: 22px 0; }
.course-hours strong { font-size: 42px; color: var(--purple); line-height: 1.2; }
.course-hours span { font-size: 13px; color: var(--muted); }
.course-hours b { display: block; width: 100%; font-size: 13px; color: var(--muted); font-weight: 600; }
.v31-table-wrap { overflow-x: auto; }
.v31-table { width: 100%; border-collapse: collapse; background: white; font-size: 15px; }
.v31-table caption { text-align: left; margin-bottom: 14px; color: var(--muted); font-size: 13px; }
.v31-table th, .v31-table td { text-align: left; padding: 18px 24px; border: 1px solid var(--line); }
.v31-table thead { background: var(--ink); color: white; }
.v31-table tbody th { font-weight: 650; }
.v31-contact-tabs { display: flex; gap: 12px; margin-bottom: 28px; }
.v31-contact-tabs button { padding: 14px 28px; border: 1px solid var(--line); border-radius: 999px; background: white; font-weight: 750; }
.v31-contact-tabs [aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: white; }
.v31-enquiry-layout { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(250px,1fr); gap: 32px; align-items: start; }
.v31-enquiry-layout > * { min-width: 0; }
.enquiry-panel, .v31-contact-aside, .v31-draft { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); }
.enquiry-panel h2, .v31-contact-aside h2, .v31-draft h2 { font-size: 24px; }
.v31-contact-aside { background: var(--soft); position: sticky; top: 110px; }
.v31-contact-aside p { font-size: 14px; color: var(--muted); }
.v31-contact-aside a { overflow-wrap: anywhere; }
.v31-contact-aside hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }
.v31-contact-aside h3 { font-size: 17px; }
.v31-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.v31-field { min-width: 0; }
.v31-field.wide { grid-column: 1 / -1; }
.v31-field label, .v31-draft label { display: block; margin-bottom: 9px; font-size: 14px; font-weight: 750; }
.v31-field label > span { color: var(--blue-deep); }
.v31-field input, .v31-field select, .v31-field textarea, .v31-draft textarea { width: 100%; min-height: 48px; border: 1px solid var(--line-strong); border-radius: 10px; padding: 12px 13px; background: white; font-size: 15px; }
.v31-field textarea, .v31-draft textarea { resize: vertical; }
.form-instruction { margin-bottom: 24px; font-size: 13px; color: var(--muted); }
.v31 .form-actions { margin-top: 26px; }
.v31-field small { display: block; margin-top: 6px; color: var(--muted); }
.v31-draft { margin-top: 26px; background: var(--blue-soft); scroll-margin-top: 110px; }
.v31-draft > p { font-size: 14px; color: var(--muted); }
.v31-draft .button { font-size: 13px; }
.v31-dialog { padding: 0; width: min(95vw,1400px); max-width: none; max-height: 92dvh; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 30px 100px #061a3d45; color: var(--ink); }
.v31-dialog::backdrop { background: #061a3db3; backdrop-filter: blur(5px); }
.v31-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; border-bottom: 1px solid var(--line); background: white; }
.v31-dialog-head h2 { font-size: 18px; margin: 0; }
.v31-dialog-head button { flex: none; min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.v31-image-scroll { max-height: calc(92dvh - 92px); overflow: auto; background: var(--soft); }
.v31-image-scroll img { width: 100%; height: auto; cursor: zoom-in; }
.v31-image-scroll.is-zoomed img { width: auto; max-width: none; cursor: zoom-out; }
.v31-search-dialog { width: min(760px,95vw); }
.v31-search-dialog input { flex: 1; min-width: 0; min-height: 48px; border: 0; border-radius: 8px; padding: 10px; background: var(--soft); }
.v31-search-dialog .search-results { max-height: 62dvh; overflow: auto; padding: 12px 20px 22px; }
.v31-search-dialog .search-status { padding: 15px 24px 4px; }
.v31-search-dialog .search-result { display: block; margin-bottom: 7px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; }
.v31-search-dialog .search-result:hover { background: var(--blue-soft); }
.v31-search-dialog .search-result strong { display: block; font-size: 16px; }
.v31-search-dialog .search-result span { display: block; color: var(--blue-deep); font-size: 11px; margin-bottom: 3px; }
.v31-search-dialog .search-result p { font-size: 13px; color: var(--muted); margin: 6px 0 0; }

@media (max-width: 1300px) {
    .v31 .header-inner { gap: 20px; }
    .v31 .desktop-nav { gap: 12px; }
    .v31 .nav-link, .v31.lang-en .nav-link { font-size: 14px; }
    .v31 .header-tools { gap: 8px; }
    .v31 .header-contact { display: none; }
    .v31-workflow { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
    .v31-grid.cols-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .v31-delivery-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .v31-enquiry-layout { grid-template-columns: 1fr; }
    .v31-contact-aside { position: static; }
    .v31-home-hero { padding: 44px 0; min-height: 0; }
}
@media (max-width: 600px) {
    .v31 .container { width: calc(100% - 36px); }
    .v31 .header-inner { gap: 12px; }
    .v31 .brand:not(.brand-symbol) img { width: 122px; height: auto; }
    .v31 .header-tools { margin-left: auto; gap: 6px; }
    .v31 .search-open { display: inline-flex; width: 40px; min-width: 40px; height: 42px; min-height: 42px; padding: 0; justify-content: center; }
    .v31 .search-open b { display: none; }
    .v31 .section { padding-block: 46px; }
    .v31-grid.cols-2, .v31-grid.cols-3, .v31-category-intro, .v31-form-grid { grid-template-columns: 1fr; }
    .v31-workflow { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .v31 .v31-home-hero h1 { font-size: 39px; line-height: 1.25; }
    .v31 .home-phrase { display: block; }
    .v31 .v31-home-hero p { font-size: 16px; line-height: 1.85; }
    .v31 .hero-actions .button { padding-inline: 17px; min-height: 48px; font-size: 14px; }
    .hero-service-links { gap: 12px 20px; font-size: 12px; }
    .v31 .section-head p { font-size: 15px; }
    .v31-hero h1 { font-size: 30px; }
    .v31-card, .v31-case, .v31-course, .v31-service, .enquiry-panel, .v31-contact-aside, .v31-draft { padding: 24px; }
    .v31-category-intro { gap: 24px; }
    .product-card-media { height: 210px; }
    .product-card-flow { min-height: 180px; }
    .v31-delivery-steps { grid-template-columns: 1fr; gap: 22px; }
    .v31-delivery-steps li { padding-top: 14px; }
    .v31-delivery-steps h3 { display: inline; margin-left: 16px; }
    .v31-delivery-steps p { margin-top: 12px; }
    .image-zoom-label { position: static; display: block; border-radius: 0; text-align: center; }
    .v31-layer-list article { grid-template-columns: 28px 1fr; gap: 12px; padding: 20px 16px; }
    .v31-contact-tabs { gap: 7px; }
    .v31-contact-tabs button { flex: 1; min-width: 0; padding: 12px 9px; font-size: 13px; }
    .v31-table th, .v31-table td { padding: 14px 16px; }
    .v31-dialog { width: calc(100vw - 20px); border-radius: 16px; }
    .v31-dialog-head { padding: 12px; gap: 10px; }
    .v31-dialog-head h2 { font-size: 14px; }
    .v31-search-dialog .search-results { padding: 10px; }
}
@media (max-width: 360px) {
    .v31 .brand:not(.brand-symbol) img { width: 98px; }
    .v31 .language-menu summary { padding-inline: 10px; font-size: 12px; }
    .v31 .language-globe { display: none; }
    .v31 .home-phrase { font-size: 35px; }
}
/* Product galleries and September navigation refinements. */
.v31 .home-hero-inner { max-width: none; }
.v31 .nav-link::after, .v31 .mobile-nav summary::after { content: none; display: none; }
.v31 .mobile-nav details[open] > summary::after { content: none; display: none; }
.v31 .desktop-nav { gap: clamp(15px,1.65vw,28px); }
.v31 .nav-link, .v31.lang-en .nav-link { font-size: 15px; }
.v31 .language-menu > summary { gap: 8px; }
.v31 .product-card-media { position: relative; height: auto; aspect-ratio: 16 / 10; background: #f0f5fa; overflow: hidden; padding: 12px; }
.v31 .product-card-media img { width: 100%; height: 100%; object-fit: contain; object-position: center; border-radius: 8px; }
.product-image-count { position: absolute; right: 18px; bottom: 17px; padding: 6px 10px; border-radius: 6px; color: white; background: rgba(7,35,60,.86); font-size: 11px; }
.v31-gallery { border: 1px solid var(--line); border-radius: 22px; overflow: hidden; background: #f5f8fc; box-shadow: 0 18px 48px rgba(21,55,81,.07); }
.gallery-view { margin: 0; }
.gallery-view > a { position: relative; display: flex; align-items: center; justify-content: center; height: clamp(300px,48vw,740px); padding: 22px; background: #eaf0f6; }
.gallery-view > a > img { width: 100%; height: 100%; object-fit: contain; border-radius: 9px; }
.gallery-view figcaption { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 22px; padding: 22px 26px; background: white; }
.gallery-view figcaption > div { display: flex; align-items: baseline; gap: 18px; }
.gallery-view figcaption strong { font-size: 16px; line-height: 1.6; }
.gallery-number { color: var(--blue-deep); font-size: 12px; white-space: nowrap; }
.gallery-kind { font-size: 12px; color: var(--muted); }
.gallery-selector { display: grid; grid-auto-columns: minmax(160px,1fr); grid-auto-flow: column; gap: 12px; padding: 18px; overflow-x: auto; scrollbar-width: thin; border-top: 1px solid var(--line); }
.gallery-thumb { display: flex; flex-direction: column; gap: 10px; padding: 8px; background: white; border: 2px solid transparent; border-radius: 10px; text-align: left; color: var(--muted); min-width: 0; }
.gallery-thumb:hover { border-color: #b2d6ef; }
.gallery-thumb[aria-pressed="true"] { border-color: var(--blue); color: var(--blue-deep); background: #f6fbff; }
.gallery-thumb img { width: 100%; height: 95px; object-fit: contain; background: #eaf0f5; border-radius: 5px; }
.gallery-thumb span { padding: 0 4px 3px; font-size: 12px; line-height: 1.6; }
.v31-membership { display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: center; }
.membership-year { color: var(--blue-deep); font-size: 60px; font-weight: 800; letter-spacing: -.05em; }
.v31-membership h3 { font-size: clamp(24px,2.4vw,34px); line-height: 1.4; margin: 10px 0 20px; }
.v31-membership p { color: var(--muted); line-height: 1.9; }
.v31-membership dl { border-top: 1px solid var(--line); margin-top: 30px; padding-top: 12px; }
.v31-membership dl > div { margin-top: 13px; font-size: 13px; }
.v31-membership dt { color: var(--muted); margin-bottom: 5px; }
.v31-membership dd { margin: 0; }
.v31-membership > a { position: relative; display: block; border: 1px solid var(--line); border-radius: 18px; padding: 20px; background: #fff; box-shadow: 0 14px 42px rgba(22,47,72,.06); }
.v31-membership img { width: 100%; height: auto; }
.v31-partner-group { display: grid; grid-template-columns: 300px 1fr; align-items: start; gap: 40px; border-top: 1px solid var(--line); padding-block: 36px; }
.v31-partner-group h3 { font-size: 23px; margin: 5px 0 16px; }
.v31-partner-group p { color: var(--muted); font-size: 14px; line-height: 1.9; }
.v31-partner-logos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.v31-partner-logos > a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 148px; padding: 20px; background: white; border: 1px solid var(--line); border-radius: 14px; transition: border-color .18s, box-shadow .18s; }
.v31-partner-logos > a:hover, .v31-partner-logos > a:focus-visible { border-color: var(--blue); box-shadow: 0 8px 24px rgb(11 57 93 / 8%); }
.v31-partner-logos b { font-weight: 400; color: var(--blue); }
.v31-partner-logos img { width: 100%; height: 65px; object-fit: contain; }
.v31-partner-logos span { margin-top: 18px; font-size: 12px; color: var(--muted); text-align: center; }
.v31-partner-logos.compact { grid-template-columns: repeat(5,minmax(0,1fr)); }
.v31-console { padding: 40px; border-radius: 22px; background: var(--ink); color: white; display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 55px; }
.v31-console h3 { font-size: 31px; color: white; margin: 14px 0 20px; }
.v31-console p { font-size: 15px; line-height: 1.9; color: #c3d4e3; margin-bottom: 25px; }
.v31-console .eyebrow { color: #5bdaca; }
.console-address { padding: 35px; border-radius: 16px; background: #fff; color: var(--ink); }
.console-address img { display: block; margin-bottom: 40px; object-fit: contain; }
.console-address > span { display: block; font-size: 11px; letter-spacing: .13em; color: var(--teal-deep); }
.console-address strong { display: block; font-size: clamp(18px,1.8vw,26px); margin: 12px 0; overflow-wrap: anywhere; }
.console-address p { color: var(--muted); margin: 0; font-size: 12px; }
@media (min-width: 1800px) { .v31 { --container: 1600px; } }
@media (min-width: 1281px) and (max-width: 1450px) { .v31 .desktop-nav { gap: 17px; } .v31 .header-inner { gap: 22px; } .v31 .nav-link, .v31.lang-en .nav-link { font-size: 14px; } .v31 .header-contact { display: none; } }
@media (max-width: 1280px) { .v31 .desktop-nav { display: none; } .v31 .menu-toggle { display: inline-flex; } .v31 .header-tools { margin-left: auto; } .v31 .mobile-navigation { display: block; } }
@media (max-width: 900px) { .v31-partner-group { grid-template-columns: 1fr; gap: 10px; } .v31-membership { gap: 28px; } .v31-partner-logos.compact { grid-template-columns: repeat(3,minmax(0,1fr)); } .v31-console { gap: 30px; padding: 30px; } .console-address { padding: 23px; } }
@media (max-width: 600px) {
    .gallery-view > a { height: 310px; padding: 10px; }
    .gallery-view .image-zoom-label { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); padding: 7px 11px; border-radius: 7px; font-size: 11px; white-space: nowrap; }
    .gallery-view figcaption { padding: 18px; gap: 8px; }
    .gallery-view figcaption > div { gap: 10px; }
    .gallery-view figcaption strong { font-size: 14px; }
    .gallery-kind { font-size: 11px; }
    .gallery-selector { grid-auto-columns: 156px; padding: 12px; }
    .v31-membership, .v31-console { grid-template-columns: 1fr; gap: 24px; }
    .v31-partner-logos, .v31-partner-logos.compact { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .v31-partner-logos > a { padding: 16px; min-height: 126px; }
    .v31-partner-logos img { height: 52px; }
    .v31-console { padding: 26px; }
    .v31-console h3 { font-size: 27px; }
    .v31-image-dialog .v31-dialog-head { flex-wrap: wrap; }
    .v31-image-dialog .v31-dialog-head h2 { flex: 1 1 130px; }
    .v31-image-dialog .v31-dialog-head button { font-size: 11px; padding: 8px; }
}
@media print {
    .v31-compass, .v31-contact-tabs, .v31-draft, .image-zoom-label { display: none !important; }
    .v31-grid, .v31-workflow, .v31-delivery-steps { break-inside: avoid; }
}

/* Continuous brand, product video library and cross-layer VIF architecture. */
.v31 .brand { flex: 0 0 auto; }
.v31 .brand img { display: block; }
.v31 .mobile-navigation { background: #fff; }
.v31 .language-menu > summary::after { display: block; flex: 0 0 7px; content: ""; }
.v31-co-create .hero-actions { margin-top: 30px; }
.v31-video-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.v31-video-grid.single { grid-template-columns: minmax(0,1080px); justify-content: center; }
.v31-video-grid .v31-video { width: 100%; margin: 0; max-width: none; }
.v31-video-grid video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; }
.v31-video-grid figcaption { font-size: 14px; line-height: 1.7; }
.v31-foundation-system { border: 1px solid #bcd8e5; border-radius: 22px; overflow: hidden; background: #f5faff; }
.v31-governance-band { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; background: #0c3555; color: white; padding: 25px 30px; }
.v31-governance-band strong { font-size: 21px; line-height: 1.5; }
.v31-governance-band span { font-size: 12px; line-height: 1.8; color: #c8e4ef; }
.v31-system-columns { display: grid; grid-template-columns: 190px minmax(0,1fr) 220px; gap: 22px; padding: 26px; align-items: stretch; }
.v31-system-columns .v31-layer-list { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.v31-system-columns .v31-layer-list article { flex: 1; padding: 21px 22px; background: white; border: 1px solid #d9e7f1; border-radius: 12px; gap: 16px; }
.v31-system-columns .v31-layer-list h3 { font-size: 18px; margin: 0 0 8px; }
.v31-system-columns .v31-layer-list p { font-size: 13px; line-height: 1.85; }
.v31-system-side { display: flex; flex-direction: column; gap: 18px; padding: 26px 22px; border-radius: 13px; background: #e8f1fb; border: 1px solid #d6e6f4; }
.v31-system-side h3 { font-size: 21px; line-height: 1.4; margin: 0 0 16px; }
.v31-system-side .eyebrow { font-size: 10px; letter-spacing: .08em; margin: 0; }
.v31-system-side p { font-size: 13px; line-height: 1.9; color: var(--muted); margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgb(18 83 130 / 13%); }
.v31-system-side strong { font-size: 13px; line-height: 1.9; margin-top: auto; padding-top: 30px; color: #24577b; font-weight: 500; }
.v31-system-side.evolution { background: #e2f5f1; border-color: #bce4db; }
.v31-system-side.evolution h3, .v31-system-side.evolution strong { color: #0a746c; }
.v31-architecture-details { margin-top: 25px; border: 1px solid var(--line); border-radius: 14px; padding: 20px 24px; }
.v31-architecture-details summary { cursor: pointer; font-size: 15px; font-weight: 600; }
.v31-architecture-details .v31-architecture { margin-top: 24px; }
.v31-evolution-section { background: linear-gradient(120deg,#edf8fb,#f5f9fe); }
@media (max-width: 1100px) {
    .v31-system-columns { grid-template-columns: 160px minmax(0,1fr) 180px; gap: 14px; padding: 18px; }
    .v31-system-side { padding: 22px 16px; }
}
@media (max-width: 767px) {
    .v31-video-grid { grid-template-columns: minmax(0,1fr); gap: 22px; }
    .v31-system-columns { grid-template-columns: minmax(0,1fr); padding: 14px; }
    .v31-system-columns .v31-layer-list { order: 1; }
    .v31-system-side.identity { order: 0; }
    .v31-system-side.evolution { order: 2; }
    .v31-system-side { display: block; padding: 20px; }
    .v31-system-side h3 { font-size: 20px; margin: 10px 0 12px; }
    .v31-system-side p { display: inline; border: 0; padding: 0; line-height: 2; }
    .v31-system-side p + p::before { content: " · "; }
    .v31-system-side strong { display: block; padding-top: 12px; }
    .v31-system-columns .v31-layer-list article { padding: 18px 16px; gap: 10px; }
    .v31-system-columns .v31-layer-list h3 { font-size: 16px; }
    .v31-governance-band { padding: 22px; gap: 10px; }
    .v31-governance-band strong { font-size: 19px; }
}

/* Formal VIF PPT architecture, with native, expandable component boxes. */
.vif-ppt-architecture { padding: 24px; background: #f7fafc; border-color: #d6e5f0; }
.vif-ppt-outputs { display: grid; grid-template-columns: 138px minmax(0,1fr); align-items: center; gap: 22px; margin-bottom: 26px; }
.vif-ppt-outputs h3 { font-size: 16px; line-height: 1.6; margin: 0; padding-left: 12px; border-left: 6px solid #0b99ed; }
.vif-ppt-outputs ul { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.vif-ppt-outputs li { display: flex; align-items: center; justify-content: center; text-align: center; padding: 13px 9px; min-height: 58px; border: 1.5px solid #0b99ed; background: white; border-radius: 12px; font-size: 12px; line-height: 1.6; font-weight: 600; }
.vif-ppt-body { display: grid; grid-template-columns: 138px minmax(0,1fr) 112px; gap: 22px; align-items: stretch; }
.vif-ppt-roles { display: flex; flex-direction: column; gap: 12px; align-self: start; }
.vif-ppt-roles h3 { margin: 0 0 4px; min-height: 61px; padding: 13px 8px; font-size: 12px; line-height: 1.6; text-align: center; color: white; background: #103d65; border-radius: 7px; }
.vif-ppt-roles h3 span { display: block; font-weight: 500; }
.vif-ppt-roles > div { display: flex; flex-direction: column; justify-content: center; min-height: 68px; border: 1.5px solid #0b99ed; border-radius: 12px; text-align: center; padding: 10px 8px; background: white; }
.vif-ppt-roles > div:nth-of-type(2n) { border-color: #00b6ac; }
.vif-ppt-roles > div:last-child { border-color: #f6a000; }
.vif-ppt-roles strong, .vif-ppt-roles > div span { font-size: 12px; line-height: 1.6; }
.vif-ppt-roles > div span { color: #3c5671; }
.vif-ppt-core { display: grid; gap: 16px; align-content: start; min-width: 0; }
.vif-ppt-banner { min-height: 61px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px; gap: 4px; color: white; background: #0b2f50; border-radius: 7px; font-size: 15px; line-height: 1.5; font-weight: 700; text-align: center; }
.vif-ppt-banner span { font-size: 12px; font-weight: 500; }
.vif-ppt-layer { --layer-color: #0b99ed; display: grid; grid-template-columns: 148px minmax(0,1fr); gap: 20px; align-items: stretch; }
.vif-ppt-layer.nodes { --layer-color: #00b4ab; }
.vif-ppt-layer.intelligence { --layer-color: #5b6fa7; }
.vif-ppt-layer.training { --layer-color: #ed9a00; }
.vif-ppt-layer.connections { --layer-color: #149f89; }
.vif-ppt-layer > h3 { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px 12px; margin: 0; border-radius: 7px; background: var(--layer-color); color: white; text-align: center; font-size: 15px; line-height: 1.8; }
.vif-ppt-components { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; align-items: stretch; }
.vif-ppt-components.count-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
.vif-component { border: 1.5px solid var(--layer-color); border-radius: 12px; background: white; min-width: 0; overflow: hidden; }
.vif-component summary { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; position: relative; min-height: 93px; padding: 18px 11px 15px; list-style: none; cursor: pointer; text-align: center; }
.vif-component summary::-webkit-details-marker { display: none; }
.vif-component summary strong { font-size: 12px; line-height: 1.45; font-weight: 700; }
.vif-component summary > span { font-size: 11px; line-height: 1.65; color: #40546b; }
.vif-component summary > i { position: absolute; top: 7px; right: 8px; color: var(--layer-color); font-size: 13px; line-height: 1; font-style: normal; }
.vif-component summary > i::before { content: "+"; }
.vif-component[open] summary > i::before { content: "−"; }
.vif-component[open] summary { background: #f3f8fc; }
.vif-component > p { border-top: 1px solid #e1eaf1; margin: 0; padding: 13px; font-size: 12px; line-height: 1.9; color: #37506c; text-align: left; }
.vif-component summary:focus-visible { outline: 3px solid #163d66; outline-offset: -4px; border-radius: 10px; }
.vif-ppt-assets { margin: -7px 0 -5px; font-size: 11px; line-height: 1.7; color: #078b80; text-align: center; }
.vif-ppt-governance { display: grid; grid-template-columns: 148px minmax(0,1fr); gap: 20px; padding: 0; color: #153653; background: transparent; }
.vif-ppt-governance h3 { display: flex; align-items: center; justify-content: center; margin: 0; padding: 15px 10px; border-radius: 7px; background: #103d65; color: white; font-size: 14px; line-height: 1.7; text-align: center; }
.vif-ppt-governance p { display: flex; align-items: center; justify-content: center; margin: 0; padding: 17px 14px; border: 1.5px solid #103d65; border-radius: 12px; background: white; font-size: 12px; line-height: 1.8; font-weight: 600; text-align: center; }
.vif-ppt-evolution { border: 1.5px solid #f2a000; border-radius: 10px; background: #fff7e7; padding: 22px 10px; }
.vif-ppt-evolution h3 { color: #d78300; text-align: center; font-size: 17px; line-height: 1.6; margin: 0; }
.vif-ppt-evolution ol { display: grid; gap: 23px; list-style: none; margin: 34px 0 0; padding: 0; }
.vif-ppt-evolution li { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 61px; padding: 11px 7px; background: white; border: 1.5px solid #f2a000; border-radius: 12px; font-size: 12px; font-weight: 600; line-height: 1.65; }
.vif-portfolio { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.vif-portfolio article { border: 1px solid var(--line); background: white; padding: 28px; border-radius: 16px; }
.vif-portfolio h3 { display: flex; justify-content: space-between; align-items: center; font-size: 23px; margin: 0 0 24px; }
.vif-portfolio h3 span { font-weight: 400; font-size: 25px; color: #1f90db; }
.vif-product-links { display: flex; flex-wrap: wrap; gap: 10px; }
.vif-product-links a { border: 1px solid #dce8f2; padding: 10px 14px; border-radius: 8px; background: #f8fbfe; font-size: 14px; line-height: 1.5; }
.vif-product-links a:hover { color: #007bd0; border-color: #078add; }
.vif-shared-bar, .vif-assembly-base { display: flex; align-items: center; gap: 26px; border-radius: 12px; margin-top: 20px; background: #0b3555; color: white; padding: 24px 28px; }
.vif-shared-bar strong { font-size: 21px; flex: 0 0 auto; }
.vif-shared-bar span, .vif-assembly-base span { font-size: 14px; line-height: 1.9; color: #c8e5ef; }
.vif-node-product { border: 1px solid var(--line); border-radius: 16px; padding: 28px; }
.vif-node-product h3 { margin: 0 0 22px; font-size: 23px; }
.vif-node-product ol { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 12px; counter-reset: vif-node; }
.vif-node-product li { counter-increment: vif-node; display: flex; align-items: baseline; gap: 12px; font-size: 14px; line-height: 1.8; padding: 10px 14px; background: #f4f8fc; border-radius: 7px; }
.vif-node-product li::before { content: counter(vif-node,decimal-leading-zero); font-size: 12px; color: #028cbd; font-weight: 700; }
.vif-release-note { padding: 26px 30px; border: 1px solid #bddddc; border-radius: 14px; background: #f0faf8; margin-top: 26px; }
.vif-release-note strong { font-size: 20px; line-height: 1.6; }
.vif-release-note p { font-size: 15px; line-height: 1.95; margin: 13px 0 0; color: var(--muted); }
.vif-feedback-flow { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 18px; padding: 0; margin: 0; list-style: none; }
.vif-feedback-flow li { border-top: 3px solid #00a79e; padding: 24px 20px; background: #f3f9fc; border-radius: 0 0 12px 12px; }
.vif-feedback-flow span { font-size: 13px; color: #078b92; }
.vif-feedback-flow h3 { font-size: 19px; line-height: 1.6; margin: 18px 0 10px; }
.vif-feedback-flow p { font-size: 14px; line-height: 1.85; margin: 0; color: var(--muted); }
.vif-domain-index { list-style: none; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; margin: 0; padding: 0; }
.vif-domain-index li { padding: 17px 12px; background: white; border: 1px solid var(--line); border-radius: 9px; font-size: 14px; line-height: 1.6; text-align: center; }
.vif-assembly { margin-bottom: 30px; }
.vif-assembly-base { margin: 0; border-radius: 14px 14px 0 0; }
.vif-assembly-base strong { font-size: 26px; letter-spacing: .04em; }
.vif-assembly ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; list-style: none; padding: 0; margin: 0; border: 1px solid #cfdfea; border-radius: 0 0 14px 14px; overflow: hidden; background: white; }
.vif-assembly li { padding: 27px 28px; position: relative; }
.vif-assembly li + li { border-left: 1px solid #d9e5ef; }
.vif-assembly .assembly-step { font-size: 13px; color: #018a9b; }
.vif-assembly h3 { font-size: 21px; margin: 16px 0 12px; line-height: 1.5; }
.vif-assembly p { font-size: 14px; line-height: 1.95; margin: 0; color: #4f6a83; }
@media (min-width: 1800px) {
    .vif-component summary strong { font-size: 14px; }
    .vif-component summary > span { font-size: 12px; }
    .vif-ppt-body { grid-template-columns: 156px minmax(0,1fr) 126px; }
    .vif-ppt-layer, .vif-ppt-governance { grid-template-columns: 172px minmax(0,1fr); }
}
@media (max-width: 1200px) {
    .vif-ppt-architecture { padding: 18px; }
    .vif-ppt-body { grid-template-columns: 118px minmax(0,1fr) 98px; gap: 13px; }
    .vif-ppt-layer, .vif-ppt-governance { grid-template-columns: 118px minmax(0,1fr); gap: 12px; }
    .vif-ppt-components { gap: 8px; }
    .vif-ppt-layer > h3 { font-size: 14px; padding: 13px 8px; }
}
@media (max-width: 1000px) {
    .vif-ppt-body { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vif-ppt-core { grid-column: 1 / -1; order: 0; }
    .vif-ppt-roles { order: 1; align-self: stretch; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .vif-ppt-roles h3 { grid-column: 1 / -1; margin: 0; }
    .vif-ppt-evolution { order: 2; padding: 18px; }
    .vif-ppt-evolution h3 br { display: none; }
    .vif-ppt-evolution ol { margin: 20px 0 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .vif-ppt-outputs { grid-template-columns: minmax(0,1fr); gap: 15px; }
    .vif-ppt-outputs ul { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .vif-feedback-flow { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .vif-domain-index { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 767px) {
    .vif-ppt-architecture { padding: 14px; }
    .vif-ppt-layer, .vif-ppt-governance { grid-template-columns: minmax(0,1fr); gap: 10px; }
    .vif-ppt-components, .vif-ppt-components.count-4 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .vif-ppt-layer > h3 { flex-direction: row; justify-content: flex-start; text-align: left; font-size: 16px; padding: 13px 17px; }
    .vif-component summary strong { font-size: 13px; }
    .vif-component summary > span { font-size: 12px; }
    .vif-ppt-banner { font-size: 13px; }
    .vif-ppt-core { gap: 20px; }
    .vif-ppt-roles, .vif-ppt-evolution { grid-column: 1 / -1; }
    .vif-ppt-roles > div { min-height: 65px; }
    .vif-ppt-governance { gap: 10px; }
    .vif-portfolio, .vif-assembly ol { grid-template-columns: minmax(0,1fr); }
    .vif-portfolio article, .vif-node-product { padding: 23px; }
    .vif-shared-bar, .vif-assembly-base { align-items: flex-start; flex-direction: column; gap: 10px; padding: 23px; }
    .vif-assembly li { padding: 23px; }
    .vif-assembly li + li { border-left: 0; border-top: 1px solid #d9e5ef; }
    .vif-release-note { padding: 23px; }
    .vif-feedback-flow { grid-template-columns: minmax(0,1fr); }
    .vif-feedback-flow li { padding: 22px; }
    .vif-feedback-flow h3 { margin-top: 9px; }
    .vif-domain-index { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 380px) {
    .vif-ppt-components, .vif-ppt-components.count-4 { grid-template-columns: minmax(0,1fr); }
    .vif-ppt-outputs ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
