:root {
  --cie-blue: #00338d;
  --cie-cyan: #0097dc;
  --cie-purple: #8f2b8b;
  --cie-red: #e70033;
  --cie-teal: #0097a9;
  --cie-green: #63a70a;
  --cie-navy: #001b52;
  --ink: #0c1527;
  --muted: #5c6877;
  --paper: #f4f4f1;
  --white: #fff;
  --line: #cdd4da;
  --accent: var(--cie-blue);
  --accent-text: var(--white);
  --gutter: clamp(20px, 7.5vw, 128px);
  --header-h: 104px;
  --latin: "Museo Sans", "MuseoSans", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --cjk: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font: var(--latin), var(--cjk);
}

.theme-cyan { --accent: var(--cie-cyan); --accent-text: var(--ink); }
.theme-purple { --accent: var(--cie-purple); --accent-text: var(--white); }
.theme-red { --accent: var(--cie-red); --accent-text: var(--white); }
.theme-green { --accent: var(--cie-green); --accent-text: var(--ink); }
.theme-teal { --accent: var(--cie-teal); --accent-text: var(--ink); }
.theme-blue { --accent: var(--cie-blue); --accent-text: var(--white); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: var(--font); text-rendering: optimizeLegibility; }
body.menu-open { overflow: hidden; }
main { display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
p, blockquote { overflow-wrap: anywhere; }
h1, h2, h3 { overflow-wrap: normal; word-break: normal; hyphens: none; }
:focus-visible { outline: 2px solid var(--white); outline-offset: 2px; box-shadow: 0 0 0 5px var(--ink); }
[id] { scroll-margin-top: calc(var(--header-h) + 24px); }
.grid-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(14px, 1.7vw, 28px); }
.section-pad { padding-inline: var(--gutter); }
.section-index, .page-kicker { margin: 0; color: var(--cie-blue); font-size: 13px; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.skip-link { position: fixed; z-index: 200; top: -100px; left: 16px; padding: 12px 16px; background: var(--white); color: var(--cie-blue); border: 2px solid var(--cie-cyan); font-size: 14px; font-weight: 700; }
.skip-link:focus { top: 16px; }

/* Header */
.site-header { position: sticky; z-index: 90; top: 0; min-height: var(--header-h); padding: 10px var(--gutter); display: grid; grid-template-columns: 250px minmax(0, 1fr) auto; align-items: center; gap: clamp(18px, 2.2vw, 38px); background: rgb(244 244 241 / .97); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.site-brand { width: 238px; }
.site-brand img { width: 100%; height: auto; }
.site-nav { display: flex; align-items: center; justify-content: center; gap: clamp(13px, 1.6vw, 27px); }
.site-nav a, .language-link { padding: 9px 0 8px; color: var(--cie-blue); border-bottom: 2px solid transparent; font-size: 14px; font-weight: 700; line-height: 1.15; white-space: nowrap; }
.site-nav a:hover, .site-nav a[aria-current="page"], .site-nav a.active-section, .language-link:hover { border-bottom-color: var(--cie-cyan); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.apply-button { min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; gap: 28px; background: var(--cie-blue); color: var(--white); font-size: 14px; font-weight: 700; }
.apply-button:hover { background: var(--cie-navy); }
.menu-button { width: 46px; height: 46px; padding: 0; display: none; place-items: center; background: transparent; border: 0; color: var(--cie-blue); }
.menu-button span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.menu-button i, .menu-button i::before, .menu-button i::after { width: 24px; height: 2px; display: block; background: currentColor; content: ""; transition: transform .18s ease, opacity .18s ease; }
.menu-button i::before { transform: translateY(-7px); }
.menu-button i::after { transform: translateY(5px); }
.menu-button[aria-expanded="true"] i { background: transparent; }
.menu-button[aria-expanded="true"] i::before { transform: translateY(0) rotate(45deg); }
.menu-button[aria-expanded="true"] i::after { transform: translateY(-2px) rotate(-45deg); }
body[data-page="home"] .site-header { background: rgb(0 27 82 / .98); border-bottom-color: transparent; color: var(--white); backdrop-filter: blur(18px); }
body[data-page="home"] .site-nav a, body[data-page="home"] .language-link { color: var(--white); }
body[data-page="home"] .apply-button { background: var(--cie-cyan); color: var(--ink); }
body[data-page="home"] .apply-button:hover { background: var(--white); color: var(--cie-blue); }
body[data-page="home"] .menu-button { color: var(--white); }

/* Shared editorial structure */
.breadcrumb { padding-top: 28px; }
.breadcrumb ol { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; list-style: none; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.breadcrumb li:not(:last-child)::after { margin-left: 9px; content: "/"; color: var(--cie-cyan); }
.breadcrumb a:hover { color: var(--cie-blue); }
.page-hero { padding-bottom: 0; background: var(--white); }
.page-hero-grid { min-height: 570px; padding-block: clamp(80px, 9vw, 145px) clamp(70px, 8vw, 125px); align-items: start; }
.page-hero-title { grid-column: 1 / 8; }
.page-hero-title h1 { max-width: 1000px; margin: 42px 0 0; color: var(--cie-blue); font: 700 clamp(58px, 7.3vw, 124px)/.9 var(--font); letter-spacing: -.06em; }
html[lang="zh-CN"] .page-hero-title h1 { letter-spacing: -.045em; }
html[lang="zh-CN"] .page-hero-title h1 { word-break: normal; }
.page-hero-title .title-segment { display: block; white-space: normal; }
.page-hero-aside { grid-column: 9 / 13; align-self: end; }
.page-hero-aside > p:not(.status-chip) { margin: 0 0 38px; color: var(--muted); font-size: clamp(17px, 1.45vw, 23px); line-height: 1.58; }
.status-chip { width: fit-content; margin: 0 0 26px; padding: 8px 12px; display: flex; align-items: center; gap: 9px; background: var(--paper); color: var(--cie-blue); border: 1px solid var(--line); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.status-chip span { width: 8px; height: 8px; background: var(--cie-red); border-radius: 50%; }
.action-row { display: flex; flex-wrap: wrap; gap: 12px; }
.action-link { min-height: 48px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; border: 1px solid var(--cie-blue); color: var(--cie-blue); font-size: 13px; font-weight: 700; }
.action-link.primary { background: var(--cie-blue); color: var(--white); }
.action-link:hover { background: var(--cie-cyan); border-color: var(--cie-cyan); color: var(--ink); }
.page-hero-image { position: relative; height: min(68vw, 840px); margin-inline: calc(var(--gutter) * -1); overflow: hidden; background: var(--cie-navy); }
.page-hero-image img { width: 100%; height: 100%; object-fit: cover; }
body[data-page="about"] .page-hero-image img, body[data-page="mentors"] .page-hero-image img { object-position: 50% 32%; }
body[data-page="prototyping"] .page-hero-image img, body[data-page="ventures"] .page-hero-image img { object-position: 50% 70%; }
.page-hero-image::after { position: absolute; inset: 55% 0 0; content: ""; background: linear-gradient(180deg, transparent, rgb(0 27 82 / .9)); }
.page-hero-image figcaption { position: absolute; z-index: 2; right: var(--gutter); bottom: 22px; left: var(--gutter); padding: 12px 14px; width: fit-content; background: rgb(0 27 82 / .94); color: var(--white); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

/* Rich content modules */
.content-module { min-height: 620px; padding-block: clamp(90px, 10vw, 160px); border-bottom: 1px solid var(--line); }
.content-module.module-1 { background: var(--paper); }
.content-module.module-2 { background: var(--white); }
.content-module.module-3 { background: var(--cie-navy); color: var(--white); }
.content-module.module-4 { background: var(--accent); color: var(--accent-text); }
.module-grid { align-items: start; }
.module-grid .section-index { grid-column: 1 / 3; }
.module-grid h2 { grid-column: 3 / 9; margin: 0; color: var(--cie-blue); font: 700 clamp(46px, 5.6vw, 94px)/.94 var(--font); letter-spacing: -.055em; }
html[lang="zh-CN"] .module-grid h2 { letter-spacing: -.04em; }
.module-body { grid-column: 9 / 13; padding-top: 7px; }
.module-body p { margin: 0 0 22px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.module-3 .section-index, .module-3 .module-grid h2, .module-3 .module-body p { color: var(--white); }
.module-4 .section-index, .module-4 .module-grid h2, .module-4 .module-body p { color: inherit; }
.line-link { width: 100%; margin-top: 42px; padding-top: 15px; display: flex; align-items: center; justify-content: space-between; border-top: 2px solid currentColor; font-size: 14px; font-weight: 700; }
.line-link:hover { opacity: .72; }

/* Model */
.stage-section { padding-block: clamp(90px, 10vw, 155px) 0; background: var(--white); }
.stage-section header { padding-bottom: 70px; }
.stage-section header .section-index { grid-column: 1 / 3; }
.stage-section header h2 { grid-column: 3 / 12; margin: 0; color: var(--cie-blue); font: 700 clamp(48px, 6vw, 100px)/.94 var(--font); letter-spacing: -.055em; }
.stage-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.stage-card { min-height: 370px; padding: 26px clamp(22px, 2.2vw, 38px); display: flex; flex-direction: column; background: var(--card-bg, var(--white)); color: var(--card-text, var(--cie-blue)); border-right: 1px solid var(--line); }
.stage-card:last-child { border-right: 0; }
.stage-card.theme-cyan { --card-bg: var(--cie-cyan); --card-text: var(--ink); }
.stage-card.theme-purple { --card-bg: var(--cie-purple); --card-text: var(--white); }
.stage-card.theme-red { --card-bg: var(--cie-red); --card-text: var(--white); }
.stage-card.theme-green { --card-bg: var(--cie-green); --card-text: var(--ink); }
.stage-card > span { font-size: 12px; font-weight: 700; }
.stage-card h3 { margin: auto 0 24px; font: 700 clamp(42px, 4.7vw, 76px)/.9 var(--font); letter-spacing: -.055em; }
.stage-card p { margin: 0; max-width: 300px; font-size: 16px; line-height: 1.55; }
.stage-note { margin: 0; padding-block: 30px; background: var(--paper); color: var(--cie-blue); border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 700; letter-spacing: .035em; }

/* FAQ */
.faq-section { padding-block: clamp(80px, 9vw, 140px); background: var(--paper); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { min-height: 116px; display: grid; grid-template-columns: 80px minmax(0, 1fr) 40px; align-items: center; cursor: pointer; color: var(--cie-blue); list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span { font-size: 12px; font-weight: 700; }
.faq-list summary strong { font: 700 clamp(26px, 3vw, 48px)/1 var(--font); letter-spacing: -.035em; }
.faq-list summary i { position: relative; width: 18px; height: 18px; display: block; justify-self: center; color: transparent; font-size: 0; transition: transform .18s ease; }
.faq-list summary i::before, .faq-list summary i::after { position: absolute; top: 8px; left: 2px; width: 14px; height: 2px; content: ""; background: var(--cie-blue); }
.faq-list summary i::after { transform: rotate(90deg); }
.faq-list details[open] summary i { transform: rotate(45deg); }
.faq-list details > div { max-width: 820px; padding: 0 0 55px 80px; }
.faq-list details p { margin: 0 0 18px; color: var(--muted); font-size: 17px; line-height: 1.7; }

/* Related and CTA */
.related-section { padding-top: clamp(90px, 10vw, 150px); background: var(--paper); }
.related-heading { padding-bottom: 60px; }
.related-heading .section-index { grid-column: 1 / 3; }
.related-heading h2 { grid-column: 3 / 12; margin: 0; color: var(--cie-blue); font: 700 clamp(48px, 6vw, 96px)/.94 var(--font); letter-spacing: -.055em; }
.related-grid { margin-inline: calc(var(--gutter) * -1); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.related-card { min-height: 360px; padding: 24px clamp(22px, 2.2vw, 38px); display: flex; flex-direction: column; color: var(--cie-blue); border-right: 1px solid var(--line); }
.related-card:last-child { border-right: 0; }
.related-card > span { font-size: 12px; font-weight: 700; }
.related-card h3 { margin: 60px 0 18px; font: 700 clamp(24px, 2.5vw, 40px)/.98 var(--font); letter-spacing: -.04em; }
.related-card p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.related-card b { margin-top: auto; align-self: flex-end; font-size: 24px; font-weight: 400; }
.related-card:hover { background: var(--cie-blue); color: var(--white); }
.related-card:hover p { color: var(--white); }
.cta-section { padding-block: clamp(100px, 12vw, 185px); background: var(--cie-cyan); color: var(--ink); }
.cta-section .section-index { grid-column: 1 / 3; color: var(--ink); }
.cta-section h2 { grid-column: 3 / 13; margin: 0 0 clamp(80px, 11vw, 160px); color: var(--ink); font: 700 clamp(60px, 9vw, 145px)/.87 var(--font); letter-spacing: -.07em; }
html[lang="zh-CN"] .cta-section h2 { letter-spacing: -.05em; }
.cta-section .action-row { grid-column: 7 / 13; }
.cta-section .action-link { flex: 1; border-color: var(--ink); color: var(--ink); }
.cta-section .action-link.primary { background: var(--ink); color: var(--white); }

/* Home */
.home-hero { position: relative; isolation: isolate; min-height: calc(100svh - var(--header-h)); padding: clamp(70px, 7vw, 112px) var(--gutter) 96px; display: grid; place-items: center; overflow: hidden; background: var(--cie-navy); color: var(--white); }
.home-hero::before { position: absolute; z-index: -3; inset: 0; content: ""; background: radial-gradient(circle at 50% 48%, rgb(0 51 141 / .72), transparent 48%), linear-gradient(135deg, rgb(0 151 220 / .11), transparent 34%); }
.home-hero-copy { position: relative; z-index: 3; width: min(880px, 64vw); min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.home-hero-copy .page-kicker { color: var(--cie-cyan); }
.home-hero-copy h1 { margin: clamp(40px, 7vh, 76px) 0 30px; color: var(--white); font: 700 clamp(60px, 6.5vw, 108px)/.91 var(--font); letter-spacing: -.052em; text-wrap: balance; }
.home-hero-copy h1 span { display: block; white-space: normal; }
html[lang="zh-CN"] .home-hero-copy h1 { letter-spacing: -.03em; }
.home-hero-copy > p:not(.page-kicker) { max-width: 760px; margin: 0 0 38px; color: rgb(255 255 255 / .86); font-size: clamp(18px, 1.42vw, 22px); line-height: 1.56; text-wrap: balance; }
.home-hero-copy .action-row { justify-content: center; }
.home-hero-copy .action-link.primary { min-width: 260px; justify-content: space-between; background: var(--cie-cyan); border-color: var(--cie-cyan); color: var(--ink); }
.home-hero-copy .action-link.primary:hover { background: var(--white); border-color: var(--white); color: var(--cie-blue); }
.home-hero-evidence { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.home-evidence { position: absolute; overflow: hidden; background: var(--cie-blue); }
.home-evidence::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg, transparent 48%, rgb(0 27 82 / .82)); }
.home-evidence img { width: 100%; height: 100%; object-fit: cover; }
.home-evidence-maker { top: 0; right: 0; width: clamp(220px, 20vw, 360px); height: clamp(220px, 35vh, 360px); border-bottom: 12px solid var(--cie-navy); border-left: 12px solid var(--cie-navy); }
.home-evidence-maker img { object-position: 65% 48%; }
.home-evidence-prototype { bottom: 74px; left: 0; width: clamp(220px, 19vw, 340px); height: clamp(205px, 31vh, 330px); border-top: 12px solid var(--cie-navy); border-right: 12px solid var(--cie-navy); }
.home-evidence-prototype img { object-position: 36% 58%; }
.home-evidence figcaption { position: absolute; z-index: 2; right: 18px; bottom: 15px; left: 18px; color: var(--white); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.home-evidence-bands { position: absolute; right: clamp(245px, 23vw, 420px); bottom: 74px; width: clamp(160px, 14vw, 250px); height: 24px; display: grid; grid-template-columns: repeat(4, 1fr); }
.home-evidence-bands span:nth-child(1) { background: var(--cie-cyan); }
.home-evidence-bands span:nth-child(2) { background: var(--cie-purple); }
.home-evidence-bands span:nth-child(3) { background: var(--cie-red); }
.home-evidence-bands span:nth-child(4) { background: var(--cie-green); }
.home-anchor-nav { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; min-height: 74px; padding-inline: var(--gutter); display: grid; grid-template-columns: repeat(4, 1fr); background: rgb(0 27 82 / .94); border-top: 1px solid rgb(255 255 255 / .32); }
.home-anchor-nav a { min-height: 74px; padding: 0 clamp(14px, 2vw, 30px); display: flex; align-items: center; justify-content: space-between; gap: 20px; border-right: 1px solid rgb(255 255 255 / .2); color: var(--white); font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.home-anchor-nav a:first-child { border-left: 1px solid rgb(255 255 255 / .2); }
.home-anchor-nav a:hover { background: var(--cie-cyan); color: var(--ink); }
.truth-strip { padding: 24px var(--gutter); display: grid; grid-template-columns: 2fr 10fr; gap: 28px; background: var(--cie-navy); color: var(--white); }
.truth-strip strong { color: var(--white); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.truth-strip p { margin: 0; max-width: 1080px; color: rgb(255 255 255 / .82); font-size: 15px; line-height: 1.65; }
.audience-section { padding-top: clamp(95px, 11vw, 170px); background: var(--paper); }
.audience-section header { padding-bottom: 70px; }
.audience-section header .section-index { grid-column: 1 / 3; }
.audience-section header h2 { grid-column: 3 / 12; margin: 0; color: var(--cie-blue); font: 700 clamp(54px, 7vw, 112px)/.9 var(--font); letter-spacing: -.06em; }
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.audience-card { min-height: 500px; padding: 28px clamp(24px, 3vw, 48px); display: flex; flex-direction: column; background: var(--card-bg); color: var(--card-text); border-right: 1px solid var(--line); }
.audience-card:last-child { border-right: 0; }
.audience-card.theme-cyan { --card-bg: var(--cie-cyan); --card-text: var(--ink); }
.audience-card.theme-purple { --card-bg: var(--cie-purple); --card-text: var(--white); }
.audience-card.theme-green { --card-bg: var(--cie-green); --card-text: var(--ink); }
.audience-card > span { font-size: 12px; font-weight: 700; }
.audience-card h3 { margin: auto 0 26px; font: 700 clamp(40px, 4.7vw, 78px)/.92 var(--font); letter-spacing: -.05em; }
.audience-card p { max-width: 420px; margin: 0; font-size: 17px; line-height: 1.65; }
.audience-card b { margin-top: 36px; align-self: flex-end; font-size: 28px; font-weight: 400; }
.programme-section { padding-block: clamp(100px, 12vw, 180px); background: var(--paper); }
.programme-heading .section-index { grid-column: 1 / 3; }
.programme-heading h2 { grid-column: 3 / 11; margin: 0; color: var(--cie-blue); font: 700 clamp(50px, 6.4vw, 105px)/.92 var(--font); letter-spacing: -.06em; }
.programme-heading > p:last-child { grid-column: 9 / 13; margin: 58px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.programme-list { margin-top: 75px; border-top: 1px solid var(--line); }
.programme-list a { min-height: 112px; display: grid; grid-template-columns: 80px minmax(0, 1fr) 260px 36px; align-items: center; border-bottom: 1px solid var(--line); color: var(--cie-blue); }
.programme-list a > span { font-size: 12px; font-weight: 700; }
.programme-list strong { font: 700 clamp(26px, 3.2vw, 52px)/1 var(--font); letter-spacing: -.04em; }
.programme-list em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.programme-list b { justify-self: end; font-size: 24px; font-weight: 400; }
.programme-list a:hover strong, .programme-list a:hover b { color: var(--cie-cyan); }
.support-section { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; background: var(--cie-blue); color: var(--white); }
.support-section figure { min-height: 760px; overflow: hidden; }
.support-section figure img { width: 100%; height: 100%; object-fit: cover; }
.support-section > div { padding: clamp(70px, 8vw, 125px) var(--gutter); display: flex; flex-direction: column; }
.support-section .section-index { color: var(--white); }
.support-section h2 { margin: 55px 0 75px; font: 700 clamp(48px, 5.8vw, 94px)/.9 var(--font); letter-spacing: -.055em; }
.support-links { margin-top: auto; border-top: 1px solid rgb(255 255 255 / .45); }
.support-links a { min-height: 72px; display: grid; grid-template-columns: 48px 1fr 28px; align-items: center; border-bottom: 1px solid rgb(255 255 255 / .28); }
.support-links span { font-size: 12px; }
.support-links strong { font-size: 18px; }
.support-links b { justify-self: end; font-size: 21px; font-weight: 400; }
.evidence-cycle { padding-block: clamp(100px, 12vw, 180px); background: var(--white); }
.evidence-cycle .section-index { grid-column: 1 / 3; }
.evidence-cycle h2 { grid-column: 3 / 10; margin: 0; color: var(--cie-blue); font: 700 clamp(50px, 6.4vw, 104px)/.92 var(--font); letter-spacing: -.06em; }
.cycle-diagram { grid-column: 3 / 13; margin-top: 90px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.cycle-diagram span { aspect-ratio: 1; display: grid; place-items: center; align-content: center; color: var(--ink); border-right: 1px solid var(--line); font-size: clamp(15px, 1.7vw, 26px); font-weight: 700; line-height: 1.7; text-align: center; }
.cycle-diagram span:nth-child(1) { background: var(--cie-cyan); }
.cycle-diagram span:nth-child(2) { background: var(--cie-purple); color: var(--white); }
.cycle-diagram span:nth-child(3) { background: var(--cie-red); color: var(--white); }
.cycle-diagram span:nth-child(4) { background: var(--cie-green); border-right: 0; }
.cycle-copy { grid-column: 8 / 13; margin-top: 58px; }
.cycle-copy p { margin: 0 0 18px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.open-status { min-height: 720px; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); }
.open-status > div { padding: clamp(80px, 9vw, 140px) var(--gutter); display: flex; flex-direction: column; align-items: flex-start; }
.open-status h2 { margin: 55px 0 35px; color: var(--cie-blue); font: 700 clamp(48px, 5.7vw, 92px)/.92 var(--font); letter-spacing: -.055em; }
.open-status > div > p:not(.section-index) { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.open-status .line-link { margin-top: auto; }
.open-status figure { min-height: 720px; overflow: hidden; }
.open-status figure img { width: 100%; height: 100%; object-fit: cover; object-position: 36% 50%; }
.partner-call { padding-block: clamp(100px, 12vw, 180px); background: var(--cie-navy); color: var(--white); }
.partner-call .section-index { grid-column: 1 / 3; color: var(--white); }
.partner-call h2 { grid-column: 3 / 12; margin: 0; font: 700 clamp(50px, 6.5vw, 106px)/.92 var(--font); letter-spacing: -.06em; }
.partner-call p { grid-column: 8 / 13; margin: 75px 0 45px; color: rgb(255 255 255 / .78); font-size: 17px; line-height: 1.7; }
.partner-call .action-link { grid-column: 8 / 13; border-color: var(--cie-cyan); background: var(--cie-cyan); color: var(--ink); }

/* VI core */
.vi-main { background: var(--paper); }
.vi-hero { min-height: calc(100svh - var(--header-h)); padding-block: clamp(72px, 9vw, 140px) 62px; display: grid; grid-template-columns: 7fr 5fr; gap: 6vw; background: var(--cie-cyan); color: var(--ink); }
.vi-hero .page-kicker { color: var(--ink); }
.vi-hero h1 { max-width: 1040px; margin: clamp(75px, 12vh, 160px) 0 0; font: 700 clamp(62px, 6.1vw, 106px)/.98 var(--font); letter-spacing: -.06em; }
.vi-hero h1 span, .vi-hero h1 em { display: block; }
.vi-hero h1 em { margin-top: 16px; color: var(--white); font-style: normal; font-weight: 100; }
.vi-hero > div { min-width: 0; }
.vi-hero > div:last-child { display: flex; flex-direction: column; justify-content: flex-end; }
.vi-hero > div:last-child > p:first-child { max-width: 560px; margin: 0 0 24px; font-size: clamp(18px, 1.5vw, 24px); line-height: 1.55; }
.vi-source-note { max-width: 560px; margin: 0 0 46px; font-size: 14px; line-height: 1.65; }
.vi-hero a { padding-top: 16px; display: flex; justify-content: space-between; border-top: 2px solid currentColor; font-size: 14px; font-weight: 700; }
.vi-layout { display: grid; grid-template-columns: minmax(250px, 21vw) minmax(0, 1fr); }
.vi-toc { position: sticky; z-index: 20; top: var(--header-h); height: calc(100svh - var(--header-h)); padding: 32px clamp(22px, 2.8vw, 50px); overflow-y: auto; background: var(--cie-navy); color: var(--white); }
.vi-toc > p { margin: 0 0 26px; color: var(--white); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vi-toc nav { display: flex; flex-direction: column; }
.vi-toc a { padding: 12px 0; display: grid; grid-template-columns: 34px 1fr; gap: 10px; border-top: 1px solid rgb(255 255 255 / .2); font-size: 13px; line-height: 1.4; }
.vi-toc a:hover, .vi-toc a[aria-current="true"] { color: var(--white); background: rgb(255 255 255 / .08); }
.vi-toc span { color: var(--white); font-size: 11px; }
.vi-content { min-width: 0; }
.vi-chapter { min-height: 760px; padding-block: clamp(78px, 8vw, 130px); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(14px, 1.65vw, 28px); row-gap: clamp(52px, 6vw, 96px); background: var(--white); border-bottom: 1px solid var(--line); }
.vi-chapter:nth-child(even) { background: var(--paper); }
.vi-chapter-copy { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(14px, 1.65vw, 28px); align-items: start; }
.vi-chapter-copy .section-index { grid-column: 1 / 3; padding-top: 7px; }
.vi-chapter-copy h2 { grid-column: 3 / 9; margin: 0; color: var(--cie-blue); font: 700 clamp(42px, 4.6vw, 78px)/.96 var(--font); letter-spacing: -.05em; }
.vi-chapter-copy > p:last-child { grid-column: 9 / 13; max-width: 540px; margin: 2px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; }
.vi-chapter-visual { grid-column: 1 / -1; min-width: 0; width: 100%; align-self: start; }
.master-logo-asset { width: 100%; height: auto; }
.cie-mark { display: block; min-width: 0; }
.cie-mark img { display: block; width: 100%; max-width: none; height: auto; }
.identity-lockup, .identity-lockup * { min-width: 0; }
.identity-lockup p, .identity-lockup strong, .deck-page h3, .web-preview h3, .poster-mock h3, .social-mock h3 { overflow-wrap: normal; word-break: keep-all; hyphens: none; }
.construction-note > small, .lockup-board > small { display: block; margin: 0; padding: 18px 24px; color: var(--muted); border-top: 1px solid var(--line); background: var(--white); font-size: 13px; line-height: 1.55; }
.vi-cover-specimen { min-height: 560px; padding: clamp(38px, 5vw, 78px); display: flex; flex-direction: column; background: var(--cie-blue); color: var(--white); overflow: hidden; }
.vi-cover-specimen .master-logo-asset { width: min(520px, 70%); }
.vi-cover-specimen p { margin: auto 0 24px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.vi-cover-specimen strong { font: 700 clamp(42px, 5.2vw, 86px)/.92 var(--font); letter-spacing: -.05em; }
.specimen-board, .extension-board { background: #f8f8f5; border: 1px solid var(--line); }
.specimen-stage { min-height: clamp(340px, 43vw, 590px); padding: clamp(42px, 7vw, 108px); display: flex; align-items: center; justify-content: center; container-type: inline-size; overflow: hidden; }
.specimen-stage-claim { min-height: clamp(360px, 40vw, 540px); }
.specimen-caption { padding: 20px 24px; display: grid; grid-template-columns: minmax(130px, 2fr) minmax(0, 8fr); gap: 24px; align-items: start; background: var(--white); border-top: 1px solid var(--line); }
.specimen-caption > span { color: var(--cie-blue); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.specimen-caption p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.spec-metrics { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--white); border-top: 1px solid var(--line); }
.spec-metrics > div { min-height: 92px; padding: 18px 20px; border-right: 1px solid var(--line); }
.spec-metrics > div:last-child { border-right: 0; }
.spec-metrics dt { color: var(--cie-blue); font-size: 15px; font-weight: 700; line-height: 1.2; }
.spec-metrics dd { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.claim-lockup { width: max-content; max-width: 100%; display: grid; grid-template-columns: 30cqi max-content; align-items: end; column-gap: 4.23cqi; color: var(--cie-blue); }
.claim-lockup .cie-mark { width: 30cqi; }
.claim-lockup p { margin: 0; color: var(--ink); font: 700 3.9cqi/1 var(--latin); letter-spacing: 0; transform: translateY(.19cqi); }
.claim-lockup p span { display: block; white-space: nowrap; }
.master-centre { min-height: 560px; padding: clamp(45px, 6vw, 90px); display: flex; flex-direction: column; justify-content: center; background: #f8f8f5; border: 1px solid var(--line); }
.master-centre > div { width: min(760px, 92%); margin-inline: auto; }
.master-centre dl { margin: 90px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.master-centre dl > div { padding-top: 13px; border-top: 1px solid var(--line); }
.master-centre dt { color: var(--cie-blue); font-size: 17px; font-weight: 700; }
.master-centre dd { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.logo-variants { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.logo-variants figure { min-height: 330px; padding: 34px; display: flex; flex-direction: column; justify-content: center; background: #f8f8f5; border: 1px solid var(--line); }
.logo-variants figure.reverse { background: var(--cie-blue); }
.logo-variants figure:last-child { grid-column: 1 / 3; }
.logo-variants .master-logo-asset { max-width: 620px; margin-inline: auto; }
.logo-variants figcaption { margin-top: auto; padding-top: 55px; color: var(--cie-blue); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.logo-variants .reverse figcaption { color: var(--white); }
.alignment-demo { position: relative; min-height: 540px; padding: clamp(55px, 7vw, 105px); display: flex; flex-direction: column; justify-content: center; background: #f8f8f5; border: 1px solid var(--line); overflow: hidden; }
.alignment-demo .master-logo-asset { position: relative; z-index: 2; width: min(760px, 96%); margin-inline: auto; }
.ratio-notes { margin-top: 65px; display: grid; grid-template-columns: 40.5fr 19fr 40.5fr; color: var(--muted); font-size: 12px; font-weight: 700; text-align: center; }
.clearspace-demo { --x: clamp(32px, 5.2vw, 82px); position: relative; min-height: 560px; padding: calc(var(--x) * 1.6); display: flex; flex-direction: column; justify-content: center; background: #f8f8f5; border: 1px solid var(--line); }
.clearspace-demo::before { position: absolute; inset: var(--x); content: ""; border: 1px dashed var(--cie-cyan); }
.clearspace-demo .master-logo-asset { position: relative; z-index: 2; width: min(720px, 100%); margin-inline: auto; }
.clearspace-demo p { position: relative; z-index: 2; margin: 65px 0 0; color: var(--muted); font-size: 13px; text-align: center; }
.measure { position: absolute; z-index: 3; display: grid; place-items: center; width: 32px; height: 32px; background: var(--cie-cyan); color: var(--ink); border-radius: 50%; font-size: 12px; font-weight: 700; }
.measure.top { top: calc(var(--x) - 16px); left: 50%; }
.measure.left { top: 50%; left: calc(var(--x) - 16px); }
.measure.right { top: 50%; right: calc(var(--x) - 16px); }
.measure.bottom { bottom: calc(var(--x) - 16px); left: 50%; }
.minimum-size { position: relative; z-index: 2; margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.minimum-size span { padding: 12px; display: flex; align-items: center; justify-content: space-between; background: var(--white); color: var(--cie-blue); border: 1px solid var(--cie-blue); font-size: 11px; text-transform: uppercase; }
.minimum-size span.invalid { color: var(--cie-red); border-color: var(--cie-red); text-decoration: line-through; }
.minimum-size b { font-size: 13px; }
.extension-board { display: grid; gap: 1px; background: var(--line); }
.lockup-family { background: #f8f8f5; }
.lockup-family > header { padding: 18px 24px; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; background: var(--white); border-bottom: 1px solid var(--line); }
.lockup-family > header span { color: var(--cie-blue); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.lockup-family > header p { margin: 0; color: var(--muted); font-size: 12px; }
.specimen-stage-institution { min-height: clamp(380px, 46vw, 610px); }
.institution-lockup { width: max-content; max-width: 100%; display: grid; grid-template-columns: 34cqi max-content; align-items: start; column-gap: 4.726cqi; color: var(--cie-blue); }
.institution-lockup .cie-mark { width: 34cqi; }
.institution-lockup p { margin: 12.604cqi 0 0; display: flex; flex-direction: column; }
.institution-lockup strong { display: block; font: 700 5.372cqi/1 var(--latin); letter-spacing: 0; white-space: nowrap; }
.institution-lockup p > span { margin-top: -.356cqi; display: block; color: var(--ink); font: 500 3.706cqi/1 var(--latin); white-space: nowrap; }
.place-pair { display: grid; gap: 1px; background: var(--line); }
.place-pair .specimen-stage { min-height: clamp(300px, 34vw, 450px); background: #f8f8f5; }
.place-lockup { width: max-content; max-width: 100%; display: flex; align-items: baseline; gap: 2.16cqi; color: var(--cie-blue); }
.place-lockup .cie-mark { width: 20cqi; flex: 0 0 20cqi; }
.place-lockup > strong { color: var(--cie-cyan); font: 700 11.4cqi/1 var(--latin); letter-spacing: 0; white-space: nowrap; }
.specimen-stage-descriptor { min-height: clamp(380px, 45vw, 600px); }
.vertical-lockup, .cobrand-lockup { --lockup-mark: 37cqi; --lockup-axis-top: 5.883cqi; --lockup-rule-h: 17.76cqi; width: max-content; max-width: 100%; display: flex; align-items: flex-start; color: var(--ink); }
.vertical-lockup .cie-mark, .cobrand-lockup .cie-mark { width: var(--lockup-mark); flex: 0 0 var(--lockup-mark); }
.vertical-lockup i, .cobrand-lockup i { width: 1.147cqi; height: var(--lockup-rule-h); margin: var(--lockup-axis-top) 3.071cqi 0 3.552cqi; display: block; flex: 0 0 1.147cqi; background: var(--cie-cyan); }
.vertical-lockup p, .cobrand-lockup p { height: var(--lockup-rule-h); margin: var(--lockup-axis-top) 0 0; display: flex; flex-direction: column; justify-content: center; font: 700 4.07cqi/1.018 var(--latin); letter-spacing: 0; }
.vertical-lockup p span, .cobrand-lockup p span { display: block; white-space: nowrap; }
.specimen-stage-cobrand { min-height: clamp(380px, 44vw, 590px); }
.cobrand-lockup { max-width: none; }
.primary-colours { min-height: 640px; display: grid; grid-template-columns: 1fr 1fr; }
.pathway-colours { min-height: 660px; display: grid; grid-template-columns: 1fr 1fr; }
.colour-swatch { min-height: 320px; padding: 30px; display: flex; flex-direction: column; justify-content: flex-end; color: var(--white); }
.colour-swatch.dark-type { color: var(--ink); }
.colour-swatch b { font-size: clamp(22px, 3vw, 48px); }
.colour-swatch span { margin-top: 9px; font-size: 13px; font-weight: 700; letter-spacing: .07em; }
.swatch-blue { background: var(--cie-blue); }
.swatch-cyan { background: var(--cie-cyan); }
.swatch-purple { background: var(--cie-purple); }
.swatch-red { background: var(--cie-red); }
.swatch-teal { background: var(--cie-teal); }
.swatch-green { background: var(--cie-green); }
.colour-logo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); }
.colour-logo-field { min-height: 480px; display: grid; grid-template-rows: minmax(360px, 1fr) auto; background: var(--field-colour); }
.colour-logo-field:nth-child(5) { grid-column: 1 / 3; }
.colour-logo-field .master-logo-asset { width: min(650px, 72%); margin: auto; }
.field-cyan { --field-colour: var(--cie-cyan); }
.field-purple { --field-colour: var(--cie-purple); }
.field-red { --field-colour: var(--cie-red); }
.field-teal { --field-colour: var(--cie-teal); }
.field-green { --field-colour: var(--cie-green); }
.colour-logo-field figcaption, .colour-rule-card figcaption { min-height: 98px; padding: 20px 24px; display: grid; grid-template-columns: minmax(90px, .7fr) minmax(90px, .7fr) minmax(0, 2fr); align-items: start; gap: 16px; background: var(--white); border-top: 1px solid var(--line); }
.colour-logo-field figcaption b, .colour-rule-card figcaption b { color: var(--cie-blue); font-size: 14px; }
.colour-logo-field figcaption span, .colour-rule-card figcaption span { color: var(--ink); font-size: 13px; font-weight: 700; letter-spacing: .05em; }
.colour-logo-field figcaption small, .colour-rule-card figcaption small { color: var(--muted); font-size: 13px; line-height: 1.5; }
.colour-rule-board { display: grid; gap: 1px; background: var(--line); }
.colour-rule-card { min-height: 420px; padding-top: clamp(60px, 7vw, 100px); display: flex; flex-direction: column; justify-content: space-between; background: #f8f8f5; }
.colour-rule-card > img { width: min(760px, 78%); height: auto; margin: auto; }
.colour-rule-card figcaption { width: 100%; margin-top: clamp(50px, 7vw, 90px); }
.tint-system { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.tint-system > div { min-height: 112px; display: grid; grid-template-columns: 140px repeat(4, 1fr); border-bottom: 1px solid var(--line); }
.tint-system b, .tint-system span { display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--line); font-size: 12px; font-weight: 700; }
.tint-blue-100 { background:#00338d;color:#fff}.tint-blue-60{background:#6685bb;color:#0c1527}.tint-blue-24{background:#c2cee4;color:#0c1527}.tint-blue-12{background:#e0e7f1;color:#0c1527}
.tint-cyan-100 { background:#0097dc;color:#0c1527}.tint-cyan-60{background:#66c1ea;color:#0c1527}.tint-cyan-24{background:#c2e6f7;color:#0c1527}.tint-cyan-12{background:#e0f3fb;color:#0c1527}
.tint-purple-100 { background:#8f2b8b;color:#fff}.tint-purple-60{background:#bc80b9;color:#0c1527}.tint-purple-24{background:#e4cce3;color:#0c1527}.tint-purple-12{background:#f2e6f1;color:#0c1527}
.tint-red-100 { background:#e70033;color:#fff}.tint-red-60{background:#f16685;color:#0c1527}.tint-red-24{background:#f9c2ce;color:#0c1527}.tint-red-12{background:#fce0e7;color:#0c1527}
.tint-teal-100 { background:#0097a9;color:#0c1527}.tint-teal-60{background:#66c1cb;color:#0c1527}.tint-teal-24{background:#c2e6ea;color:#0c1527}.tint-teal-12{background:#e0f3f5;color:#0c1527}
.tint-green-100 { background:#63a70a;color:#0c1527}.tint-green-60{background:#a1ca6c;color:#0c1527}.tint-green-24{background:#daeac4;color:#0c1527}.tint-green-12{background:#ecf4e2;color:#0c1527}
.contrast-table { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.contrast-table > div { min-height: 76px; display: grid; grid-template-columns: 1.2fr .8fr .8fr 1.2fr; border-bottom: 1px solid var(--line); }
.contrast-table span { padding: 16px; display: flex; align-items: center; border-right: 1px solid var(--line); font-size: 13px; font-weight: 700; }
.contrast-head { background: var(--cie-blue); color: var(--white); }
.contrast-table > p { margin: 24px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.type-specimen { padding: clamp(36px, 6vw, 88px); background: var(--cie-blue); color: var(--white); container-type: inline-size; }
.type-display { margin: 0 0 95px; color: var(--cie-cyan); font: 100 clamp(36px, 15cqi, 145px)/.86 var(--font); letter-spacing: -.06em; overflow-wrap: normal; }
.type-display strong { display: block; color: var(--white); font-weight: 900; white-space: nowrap; }
.type-specimen dl { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.type-specimen dl > div { padding-top: 14px; border-top: 1px solid rgb(255 255 255 / .55); }
.type-specimen dt { font-size: 14px; font-weight: 700; }
.type-specimen dd { margin: 6px 0 0; color: rgb(255 255 255 / .8); font-size: 12px; line-height: 1.5; }
.license-note { margin: 72px 0 0; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / .55); font-size: 13px; line-height: 1.65; }
.grid-demo { position: relative; min-height: 570px; padding: 25px; display: grid; grid-template-columns: repeat(12, 1fr); gap: 8px; background: var(--cie-blue); overflow: hidden; }
.grid-demo span { padding-top: 10px; background: rgb(255 255 255 / .2); color: var(--white); font-size: 11px; text-align: center; }
.grid-demo p { position: absolute; right: 40px; bottom: 38px; left: 40px; margin: 0; color: var(--white); font: 700 clamp(18px, 2.6vw, 42px)/1.12 var(--font); }
.supergraphic-demo { position: relative; min-height: 650px; background: var(--cie-blue); overflow: hidden; }
.supergraphic-mark { position: absolute; top: -15%; right: -12%; width: 105%; opacity: .2; }
.supergraphic-demo > p { position: absolute; z-index: 2; right: 40px; bottom: 34px; left: 40px; margin: 0; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / .6); color: var(--white); font-size: 14px; line-height: 1.55; }
.photo-direction { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.photo-direction figure { position: relative; min-height: 580px; overflow: hidden; background: var(--cie-navy); }
.photo-direction img { width: 100%; height: 100%; object-fit: cover; }
.photo-direction figcaption { position: absolute; right: 18px; bottom: 18px; left: 18px; padding: 12px; background: rgb(0 27 82 / .95); color: var(--white); font-size: 12px; font-weight: 700; }
.stationery-board { min-height: 680px; padding: 38px; display: grid; grid-template-columns: 1.28fr .86fr .86fr; grid-template-rows: auto auto 1fr 1fr; gap: 18px; background: #dfe3e6; }
.letterhead-mock { position: relative; grid-column: 1; grid-row: 1 / 5; aspect-ratio: 210 / 297; min-height: 0; overflow: hidden; background: var(--white); box-shadow: 0 10px 28px rgb(12 21 39 / .12); }
.letterhead-mock .master-logo-asset { position: absolute; top: 6.06%; left: 8.571%; width: 22.857%; }
.letterhead-mock { container-type: inline-size; }
.letterhead-mock address { position: absolute; top: 6.06%; right: 8.571%; margin: 0; display: flex; flex-direction: column; color: var(--muted); font: normal 500 1.18cqi/1.45 var(--latin); text-align: right; }
.letterhead-mock address strong { margin-bottom: .55cqi; color: var(--cie-blue); font-size: 1.24cqi; }
.letterhead-mock time { position: absolute; top: 15.82%; right: 8.571%; color: var(--ink); font: 500 1.55cqi/1.3 var(--latin); }
.letterhead-body { position: absolute; top: 21.55%; right: 21.9%; left: 8.571%; color: var(--ink); font-family: var(--latin); }
.letterhead-body p { margin: 0 0 3.2cqi; font-size: 1.78cqi; font-weight: 700; }
.letterhead-body > b { margin-bottom: 2.8cqi; display: block; color: var(--cie-blue); font-size: 1.44cqi; letter-spacing: .03em; }
.letterhead-body > span { width: 92%; height: .36cqi; margin: 1.2cqi 0; display: block; background: var(--line); }
.letterhead-body > span:nth-of-type(2) { width: 100%; }
.letterhead-body > span:nth-of-type(3) { width: 86%; }
.letterhead-body > span:nth-of-type(4) { width: 76%; }
.letterhead-body > small { margin-top: 6.6cqi; display: block; font-size: 1.65cqi; }
.letterhead-body > i { width: 25cqi; height: 7.4cqi; display: block; }
.letterhead-body > strong { display: block; color: var(--ink); font-size: 1.5cqi; }
.letterhead-body > em { margin-top: .5cqi; display: block; color: var(--muted); font-size: 1.28cqi; font-style: normal; }
.letterhead-metrics { grid-column: 2 / 4; grid-row: 1; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); background: var(--white); box-shadow: 0 10px 28px rgb(12 21 39 / .08); }
.letterhead-metrics > div { min-width: 0; padding: 18px; border-right: 1px solid var(--line); }
.letterhead-metrics > div:last-child { border-right: 0; }
.letterhead-metrics dt { color: var(--cie-blue); font-size: 15px; font-weight: 700; }
.letterhead-metrics dd { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; }
.letterhead-metrics > div { border-bottom: 1px solid var(--line); }
.letterhead-metrics > div:nth-child(even) { border-right: 0; }
.stationery-download { grid-column: 2 / 4; grid-row: 2; min-height: 58px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; background: var(--cie-blue); color: var(--white); font-size: 13px; font-weight: 700; }
.stationery-download:hover { background: var(--cie-cyan); color: var(--ink); }
.card-mock { padding: 24px; display: flex; flex-direction: column; justify-content: space-between; background: var(--white); box-shadow: 0 10px 28px rgb(12 21 39 / .12); }
.card-mock .master-logo-asset { width: 185px; }
.card-mock p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.card-mock.back { background: var(--cie-blue); }
.envelope-mock, .folder-mock { padding: 24px; display: flex; flex-direction: column; justify-content: flex-end; background: var(--white); box-shadow: 0 10px 28px rgb(12 21 39 / .12); }
.envelope-mock .master-logo-asset { width: 180px; }
.folder-mock { background: var(--cie-blue); color: var(--white); }
.folder-mock .master-logo-asset { width: 200px; }
.folder-mock span { margin-top: auto; font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.digital-board { display: grid; gap: 28px; }
.deck-sequence { padding: clamp(18px, 2.8vw, 38px); display: grid; grid-template-columns: repeat(3, minmax(210px, 1fr)); gap: clamp(12px, 2vw, 26px); background: #dfe3e6; overflow-x: auto; }
.deck-page { min-width: 0; aspect-ratio: 3 / 4; padding: clamp(18px, 2.2vw, 34px); display: flex; flex-direction: column; overflow: hidden; background: var(--cie-blue); color: var(--white); }
.deck-page .master-logo-asset { width: min(78%, 260px); }
.deck-page h3 { margin: auto 0 0; font: 700 clamp(25px, 2.75vw, 50px)/.94 var(--latin); letter-spacing: -.025em; }
.deck-page h3 span { display: block; white-space: nowrap; }
.deck-page small { margin-top: clamp(24px, 4vw, 58px); padding-top: 13px; border-top: 1px solid rgb(255 255 255 / .55); font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.deck-chapter { background: var(--cie-cyan); color: var(--ink); }
.deck-chapter > p { margin: 0; font-size: 12px; font-weight: 700; }
.deck-chapter h3 { color: var(--cie-blue); }
.deck-chapter small { border-top-color: rgb(12 21 39 / .45); }
.deck-data { background: var(--cie-purple); }
.deck-data strong { margin: auto 0 0; font: 900 clamp(54px, 7vw, 118px)/.8 var(--latin); letter-spacing: -.06em; }
.web-preview { min-width: 0; background: var(--white); border: 1px solid var(--line); }
.web-preview > header { min-height: 84px; padding: 16px clamp(20px, 3vw, 42px); display: flex; align-items: center; justify-content: space-between; gap: 36px; background: var(--cie-blue); color: var(--white); }
.web-preview header .master-logo-asset { width: min(265px, 34%); }
.web-preview nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: clamp(12px, 2vw, 28px); font-size: 11px; font-weight: 700; letter-spacing: .05em; }
.web-preview-hero { position: relative; min-height: clamp(430px, 54vw, 720px); overflow: hidden; }
.web-preview-hero::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgb(0 27 82 / .92) 0 38%, rgb(0 27 82 / .16) 68%, transparent); }
.web-preview-hero > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.web-preview-hero > div { position: relative; z-index: 2; min-height: inherit; padding: clamp(38px, 6vw, 88px); display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; }
.web-preview h3 { max-width: 670px; margin: 0 0 42px; color: var(--white); font: 700 clamp(46px, 7vw, 110px)/.9 var(--font); letter-spacing: -.055em; }
.web-preview h3 span { display: block; }
.demo-action { padding: 12px 15px; background: var(--cie-blue); color: var(--white); font-size: 12px; font-weight: 700; }
.web-paths { min-height: 82px; display: grid; grid-template-columns: repeat(4, 1fr); }
.web-paths span { padding: 18px; display: flex; align-items: center; border-right: 1px solid var(--line); color: var(--cie-blue); font-size: 12px; font-weight: 700; }
.web-paths span:last-child { border-right: 0; }
.campaign-board { display: grid; grid-template-columns: minmax(340px, 5fr) minmax(0, 7fr); grid-template-rows: repeat(2, minmax(300px, auto)) 230px; gap: 18px; }
.campaign-board article { min-width: 0; min-height: 300px; padding: clamp(24px, 3vw, 42px); display: flex; flex-direction: column; container-type: inline-size; overflow: hidden; }
.poster-mock { position: relative; grid-row: 1 / 3; min-height: 760px !important; isolation: isolate; background: var(--cie-red); color: var(--white); }
.poster-mock > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.poster-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(231 0 51 / .95), rgb(0 27 82 / .92)); }
.poster-mock .master-logo-asset { width: min(270px, 76%); }
.poster-mock h3 { margin: clamp(88px, 10vw, 150px) 0 0; font: 700 clamp(54px, 20cqi, 92px)/.92 var(--latin); letter-spacing: -.035em; }
.poster-mock h3 span { display: block; white-space: nowrap; }
.poster-mock strong { margin-top: 20px; font: 700 clamp(38px, 4vw, 66px)/1 var(--latin); }
.poster-mock p { margin: auto 0 0; padding-top: 15px; border-top: 8px solid var(--white); font-size: 12px; font-weight: 700; letter-spacing: .07em; }
.social-mock { background: var(--cie-purple); color: var(--white); }
.social-mock > span { font-size: 11px; font-weight: 700; letter-spacing: .09em; }
.social-mock h3 { max-width: 680px; margin: auto 0 0; font: 700 clamp(35px, 10cqi, 68px)/.96 var(--font); letter-spacing: -.035em; }
.social-mock h3 span { display: block; }
.social-mock b { margin-top: 34px; font-size: 12px; letter-spacing: .07em; }
.wayfinding-mock { background: var(--cie-cyan); color: var(--ink); }
.wayfinding-mock b { font-size: clamp(72px, 8vw, 132px); line-height: .8; }
.wayfinding-mock p { margin: auto 0 0; font-size: clamp(22px, 2.8vw, 44px); font-weight: 700; }
.wayfinding-mock span { margin-top: 10px; font-size: 12px; font-weight: 700; letter-spacing: .09em; }
html[lang="zh-CN"] .social-mock h3 { line-height: 1.14; letter-spacing: 0; }
.merch-mock { grid-column: 1 / 3; min-height: 230px !important; flex-direction: row !important; align-items: center; justify-content: space-between; background: var(--cie-blue); color: var(--white); }
.merch-mock .cie-mark { width: min(220px, 35%); }
.merch-mock > span { max-width: 280px; font-size: 14px; line-height: 1.55; }
.governance-list { padding: clamp(34px, 6vw, 88px); background: var(--cie-blue); color: var(--white); }
.governance-list ol { margin: 0 0 80px; padding: 0; list-style: none; border-top: 1px solid rgb(255 255 255 / .5); }
.governance-list li { min-height: 95px; padding: 16px 0; display: grid; grid-template-columns: 58px 1fr; align-items: center; border-bottom: 1px solid rgb(255 255 255 / .27); font-size: clamp(18px, 2vw, 30px); font-weight: 700; }
.governance-list li span { color: var(--white); font-size: 11px; }
.download-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.download-list a { padding-top: 15px; border-top: 2px solid var(--cie-cyan); color: var(--white); font-size: 13px; font-weight: 700; line-height: 1.5; }

/* Footer and errors */
.site-footer { padding: 64px var(--gutter) 26px; background: var(--cie-navy); color: var(--white); }
.footer-primary { padding-bottom: 72px; align-items: start; }
.footer-logo { grid-column: 1 / 4; width: min(300px, 100%); }
.footer-logo img { width: 100%; height: auto; }
.footer-primary p { grid-column: 5 / 9; max-width: 520px; margin: 0; color: rgb(255 255 255 / .78); font-size: 17px; line-height: 1.7; }
.footer-email { grid-column: 9 / 13; padding-top: 14px; display: flex; justify-content: space-between; border-top: 1px solid rgb(255 255 255 / .55); font-size: clamp(18px, 2vw, 30px); font-weight: 700; }
.footer-nav { padding: 24px 0; display: flex; flex-wrap: wrap; gap: 18px 36px; border-top: 1px solid rgb(255 255 255 / .28); border-bottom: 1px solid rgb(255 255 255 / .28); font-size: 13px; font-weight: 700; }
.footer-nav a:hover, .footer-legal a:hover { color: var(--white); text-decoration: underline; }
.footer-legal { padding-top: 22px; display: flex; flex-wrap: wrap; gap: 13px 26px; color: rgb(255 255 255 / .72); font-size: 11px; line-height: 1.55; }
.footer-legal span:last-child { margin-left: auto; }
.error-page { min-height: calc(100svh - var(--header-h)); padding-block: clamp(75px, 10vw, 155px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background: var(--white); }
.error-page h1 { max-width: 1100px; margin: 46px 0 28px; color: var(--cie-blue); font: 700 clamp(62px, 9vw, 145px)/.86 var(--font); letter-spacing: -.07em; }
.error-page h1 em { color: var(--cie-cyan); font-style: normal; font-weight: 100; }
.error-page > p:not(.page-kicker) { max-width: 620px; margin: 0 0 46px; color: var(--muted); font-size: 18px; line-height: 1.6; }
.error-page > div { display: flex; align-items: center; gap: 24px; }
.error-page .line-link { width: auto; margin: 0; padding-inline: 18px; border-top: 0; }

@media (max-width: 1180px) {
  :root { --header-h: 94px; }
  .site-header { grid-template-columns: 238px 1fr auto; padding-inline: clamp(20px, 4vw, 52px); }
  .menu-button { display: grid; grid-column: 2; justify-self: end; }
  .site-nav { position: fixed; z-index: 88; top: var(--header-h); right: 0; bottom: 0; left: 0; padding: 34px var(--gutter) 90px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; background: var(--cie-blue); color: var(--white); overflow-y: auto; visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
  .site-nav[data-open="true"] { visibility: visible; opacity: 1; transform: translateY(0); transition-delay: 0s; }
  .site-nav a { min-height: 68px; padding: 18px 0; display: flex; align-items: center; border-top: 1px solid rgb(255 255 255 / .25); border-bottom: 0; color: var(--white); font-size: 22px; }
  .site-nav a:last-child { border-bottom: 1px solid rgb(255 255 255 / .25); }
  .site-nav a:hover, .site-nav a[aria-current="page"] { border-bottom-color: transparent; color: var(--white); }
  .header-actions { grid-column: 3; grid-row: 1; }
  .header-actions .apply-button { display: none; }
  .page-hero-title { grid-column: 1 / 9; }
  html[lang="zh-CN"] .page-hero-title h1 { word-break: normal; }
  .page-hero-title .title-segment { display: block; white-space: normal; }
  .page-hero-aside { grid-column: 9 / 13; }
  .module-grid h2 { grid-column: 3 / 9; }
  .module-body { grid-column: 9 / 13; }
  .home-hero-copy { width: min(760px, 68vw); }
  .home-evidence-maker { width: min(25vw, 280px); height: min(30vh, 280px); }
  .home-evidence-prototype { width: min(24vw, 270px); height: min(28vh, 260px); }
  .home-evidence-bands { right: clamp(230px, 26vw, 320px); }
  .vi-layout { grid-template-columns: 1fr; }
  .vi-toc { position: sticky; top: var(--header-h); height: auto; padding: 0; overflow: hidden; }
  .vi-toc > p { display: none; }
  .vi-toc nav { display: flex; flex-direction: row; overflow-x: auto; scrollbar-width: thin; }
  .vi-toc a { min-width: 190px; padding: 15px 20px; border-top: 0; border-right: 1px solid rgb(255 255 255 / .22); }
  .vi-hero { min-height: auto; grid-template-columns: minmax(0, 1fr); }
  .vi-hero > div:last-child { padding-top: 80px; }
  .primary-colours, .pathway-colours { min-height: 560px; }
}

@media (max-width: 800px) {
  :root { --gutter: 24px; }
  .grid-12 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .page-hero-grid { min-height: auto; padding-block: 72px; }
  .page-hero-title, .page-hero-aside { grid-column: 1 / 7; }
  .page-hero-aside { margin-top: 56px; }
  .page-hero-image { height: 78svh; min-height: 560px; }
  .content-module { min-height: auto; }
  .module-grid .section-index { grid-column: 1 / 2; }
  .module-grid h2 { grid-column: 2 / 7; }
  .module-body { grid-column: 2 / 7; margin-top: 56px; }
  .stage-section header .section-index, .related-heading .section-index, .audience-section header .section-index, .programme-heading .section-index, .evidence-cycle .section-index, .partner-call .section-index, .cta-section .section-index { grid-column: 1 / 2; }
  .stage-section header h2, .related-heading h2, .audience-section header h2, .programme-heading h2, .evidence-cycle h2, .partner-call h2, .cta-section h2 { grid-column: 2 / 7; }
  .stage-grid { grid-template-columns: repeat(2, 1fr); }
  .stage-card:nth-child(2) { border-right: 0; }
  .stage-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .related-grid { grid-template-columns: repeat(2, 1fr); }
  .related-card:nth-child(2) { border-right: 0; }
  .related-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .cta-section .action-row { grid-column: 2 / 7; }
  .home-hero { min-height: 860px; padding: 62px var(--gutter) 286px; align-items: start; }
  .home-hero-copy { width: 100%; }
  .home-hero-copy h1 { margin-top: 48px; font-size: clamp(52px, 12vw, 76px); }
  .home-hero-copy > p:not(.page-kicker) { max-width: 620px; font-size: 18px; }
  .home-evidence-maker, .home-evidence-bands { display: none; }
  .home-evidence-prototype { right: 0; bottom: 74px; width: 100%; height: 185px; border: 0; border-top: 10px solid var(--cie-navy); }
  .home-evidence-prototype::after { background: linear-gradient(90deg, rgb(0 27 82 / .58), transparent 60%); }
  .home-anchor-nav { overflow-x: auto; grid-template-columns: repeat(4, minmax(155px, 1fr)); scrollbar-width: thin; }
  .home-anchor-nav a { min-width: 155px; }
  .truth-strip { grid-template-columns: 1fr; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-card { min-height: 390px; border-right: 0; border-bottom: 1px solid var(--line); }
  .programme-heading > p:last-child { grid-column: 2 / 7; }
  .programme-list a { grid-template-columns: 55px minmax(0, 1fr) 30px; }
  .programme-list em { display: none; }
  .support-section, .open-status { grid-template-columns: 1fr; }
  .support-section figure, .open-status figure { min-height: 600px; }
  .cycle-diagram { grid-column: 1 / 7; }
  .cycle-copy { grid-column: 2 / 7; }
  .partner-call p, .partner-call .action-link { grid-column: 2 / 7; }
  .footer-logo { grid-column: 1 / 4; }
  .footer-primary p { grid-column: 4 / 7; }
  .footer-email { grid-column: 4 / 7; margin-top: 36px; }
  .vi-chapter-copy { display: block; }
  .vi-chapter-copy h2 { margin-top: 36px; }
  .vi-chapter-copy > p:last-child { margin-top: 24px; }
  .logo-variants { grid-template-columns: 1fr; }
  .logo-variants figure:last-child { grid-column: auto; }
  .primary-colours, .pathway-colours { grid-template-columns: 1fr; }
  .colour-swatch { min-height: 280px; }
  .colour-logo-fields { grid-template-columns: 1fr; }
  .colour-logo-field, .colour-logo-field:nth-child(5) { grid-column: auto; min-height: 430px; }
  .colour-logo-field { grid-template-rows: minmax(320px, 1fr) auto; }
  .colour-rule-card { min-height: 370px; }
  .tint-system > div { grid-template-columns: 74px repeat(4, 1fr); }
  .type-specimen dl { grid-template-columns: 1fr; }
  .photo-direction { grid-template-columns: 1fr; }
  .stationery-board { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .letterhead-mock { grid-column: 1; grid-row: 1 / 7; min-height: 0; }
  .letterhead-metrics { grid-column: 2; grid-row: 1; grid-template-columns: 1fr; }
  .stationery-download { grid-column: 2; grid-row: 2; }
  .letterhead-metrics > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .letterhead-metrics > div:last-child { border-bottom: 0; }
  .campaign-board { grid-template-columns: 1fr; }
  .poster-mock { grid-row: auto; min-height: 620px !important; }
  .merch-mock { grid-column: auto; }
  .web-preview nav { display: none; }
  .web-preview header .master-logo-asset { width: min(260px, 74%); }
  .download-list { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  :root { --gutter: 18px; --header-h: 94px; }
  .site-header { padding-inline: 12px; grid-template-columns: 220px 36px 24px; gap: 8px; }
  .site-brand { width: 220px; }
  .menu-button { width: 36px; height: 42px; }
  .language-link { width: 24px; overflow: hidden; font-size: 12px; text-align: center; }
  .home-hero { min-height: 750px; padding: 52px 18px 252px; }
  .home-hero-copy { padding-inline: 0; }
  .home-hero-copy h1 { margin: 38px 0 24px; font-size: 46px; line-height: .96; }
  .home-hero-copy > p:not(.page-kicker) { margin-bottom: 30px; font-size: 16px; line-height: 1.55; }
  .home-hero-copy .action-row, .home-hero-copy .action-link.primary { width: 100%; }
  .home-evidence-prototype { height: 160px; }
  .page-hero-title h1 { font-size: 50px; line-height: .96; }
  .page-hero-title .title-segment { display: block; }
  .page-hero-image { min-height: 500px; }
  .module-grid .section-index, .module-grid h2, .module-body, .stage-section header .section-index, .stage-section header h2, .related-heading .section-index, .related-heading h2, .audience-section header .section-index, .audience-section header h2, .programme-heading .section-index, .programme-heading h2, .programme-heading > p:last-child, .evidence-cycle .section-index, .evidence-cycle h2, .cycle-copy, .partner-call .section-index, .partner-call h2, .partner-call p, .partner-call .action-link, .cta-section .section-index, .cta-section h2, .cta-section .action-row { grid-column: 1 / 7; }
  .module-grid h2, .stage-section header h2, .related-heading h2, .audience-section header h2, .programme-heading h2, .evidence-cycle h2, .partner-call h2, .cta-section h2 { margin-top: 35px; }
  .module-body { margin-top: 44px; }
  .stage-grid, .related-grid { grid-template-columns: 1fr; }
  .stage-card, .related-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .stage-card { min-height: 320px; }
  .programme-list a { min-height: 96px; }
  .programme-list strong { font-size: 25px; }
  .cycle-diagram { border-radius: 0; grid-template-columns: 1fr 1fr; }
  .cycle-diagram span { aspect-ratio: 1; border-bottom: 1px solid var(--line); }
  .cycle-diagram span:nth-child(2) { border-right: 0; }
  .faq-list summary { grid-template-columns: 42px minmax(0, 1fr) 28px; }
  .faq-list details > div { padding-left: 42px; }
  .footer-primary { display: block; }
  .footer-logo { width: 250px; }
  .footer-primary p { margin-top: 45px; }
  .footer-email { margin-top: 38px; }
  .footer-legal span:last-child { width: 100%; margin: 15px 0 0; }
  .vi-hero h1 { font-size: 51px; }
  .vi-hero h1 span, .vi-hero h1 em { white-space: normal; }
  .vi-toc a { min-width: 165px; }
  .vi-chapter { padding-inline: 18px; }
  .vi-chapter-copy h2 { font-size: 43px; }
  .specimen-stage { min-height: 300px; padding: 34px 18px; }
  .specimen-caption { grid-template-columns: 1fr; }
  .spec-metrics { grid-template-columns: 1fr; }
  .spec-metrics > div { min-height: 74px; border-right: 0; border-bottom: 1px solid var(--line); }
  .spec-metrics > div:last-child { border-bottom: 0; }
  .colour-logo-field { min-height: 370px; grid-template-rows: minmax(270px, 1fr) auto; }
  .colour-logo-field .master-logo-asset { width: 78%; }
  .colour-logo-field figcaption, .colour-rule-card figcaption { grid-template-columns: 1fr; gap: 7px; }
  .colour-rule-card { min-height: 320px; padding-top: 48px; }
  .colour-rule-card > img { width: 88%; }
  .master-centre { padding: 30px 24px; min-height: 450px; }
  .master-centre dl { grid-template-columns: 1fr; }
  .alignment-demo, .clearspace-demo { min-height: 430px; padding-inline: 25px; }
  .stationery-board { padding: 16px; grid-template-columns: 1fr; }
  .letterhead-mock, .letterhead-metrics, .stationery-download { grid-column: auto; grid-row: auto; }
  .card-mock, .envelope-mock, .folder-mock { min-height: 230px; }
  .merch-mock { flex-direction: column !important; align-items: flex-start; }
  .deck-sequence { grid-template-columns: repeat(3, 210px); }
  .web-preview-hero > div { padding: 30px 24px; }
  .web-preview h3 { font-size: 44px; }
  .web-paths { grid-template-columns: repeat(2, 1fr); }
  .web-paths span:nth-child(2) { border-right: 0; }
  .web-paths span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .contrast-table { overflow-x: auto; }
  .contrast-table > div { min-width: 520px; }
  .contrast-table span { padding: 10px 9px; font-size: 11px; }
}

@media (max-width: 340px) {
  .site-header { grid-template-columns: 220px 32px; }
  .header-actions { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
