:root {
  --ink: #07090d;
  --ink-soft: #0e1219;
  --panel: #121822;
  --panel-light: #f0eee8;
  --white: #f8f7f3;
  --muted: #a7adb8;
  --gold: #d2a14c;
  --gold-light: #f1cc78;
  --silver: #bdc5cf;
  --purple: #5d2d63;
  --line: rgba(255,255,255,.13);
  --shadow: 0 28px 80px rgba(0,0,0,.36);
  --radius: 24px;
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  color: var(--white);
  background: var(--ink);
  font-family: Montserrat, "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 85% 5%, rgba(210,161,76,.13), transparent 30rem),
    radial-gradient(circle at 5% 52%, rgba(93,45,99,.11), transparent 32rem),
    var(--ink);
}
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { color: inherit; }
::selection { color: #090b0f; background: var(--gold-light); }
:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  padding: 10px 16px;
  color: var(--ink);
  background: var(--gold-light);
  border-radius: 999px;
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 78px;
  padding: 0 clamp(20px, 4vw, 64px);
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease, height .25s ease;
}
.site-header.scrolled,
.site-header.nav-open {
  height: 68px;
  background: rgba(7,9,13,.92);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}
.wordmark {
  display: inline-flex;
  align-items: baseline;
  gap: 9px;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .14em;
}
.wordmark span { color: var(--gold-light); font-size: .67rem; letter-spacing: .21em; }
.main-nav { display: flex; align-items: center; gap: clamp(16px, 2.1vw, 32px); }
.main-nav a {
  position: relative;
  color: #e5e6e8;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.main-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 1px;
  background: var(--gold-light);
  transition: right .2s ease;
}
.main-nav a:hover::after { right: 0; }
.nav-cta { padding: 9px 16px; border: 1px solid rgba(241,204,120,.5); border-radius: 999px; }
.language-picker {
  display: flex;
  align-items: center;
  min-height: 38px;
  gap: 7px;
  padding: 5px 10px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  background: rgba(7,9,13,.5);
}
.language-picker-icon { color: var(--gold-light); font-size: 1.1rem; line-height: 1; }
.language-picker-loading { color: #e5e6e8; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.language-picker .goog-te-gadget { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: .58rem; line-height: 1; white-space: nowrap; }
.language-picker .goog-te-gadget img { display: inline-block; }
.language-picker .goog-te-combo {
  max-width: 150px;
  margin: 0;
  padding: 4px 6px;
  color: var(--white);
  background: #111722;
  border: 0;
  border-radius: 6px;
  font: 700 .68rem/1.2 Montserrat, "Segoe UI", Arial, sans-serif;
  cursor: pointer;
}
.menu-toggle { display: none; border: 0; background: none; cursor: pointer; padding: 10px; }
.menu-toggle span { display: block; width: 25px; height: 1px; margin: 6px 0; background: var(--white); transition: .2s ease; }

.section-shell {
  width: min(calc(100% - 40px), var(--max));
  margin-inline: auto;
  padding-block: clamp(80px, 10vw, 132px);
}
.section-kicker {
  margin: 0 0 14px;
  color: var(--gold-light);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.section-title {
  max-width: 850px;
  margin: 0;
  font-size: clamp(2rem, 5vw, 4.3rem);
  line-height: 1.03;
  letter-spacing: -.045em;
}
.section-intro { max-width: 760px; margin: 24px 0 0; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.18rem); }
.eyebrow { color: var(--gold-light); font-size: .73rem; font-weight: 800; letter-spacing: .21em; text-transform: uppercase; }

.hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  align-items: center;
  gap: clamp(10px, 4vw, 70px);
  width: min(calc(100% - 40px), 1420px);
  margin-inline: auto;
  padding: 120px 0 70px;
}
.hero-copy { position: relative; z-index: 2; }
.hero-logo { width: min(590px, 100%); margin: 18px 0 14px; }
.hero h1 { max-width: 760px; margin: 10px 0 24px; font-size: clamp(2.55rem, 6.1vw, 6.6rem); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.hero h1 span { display: block; color: var(--gold-light); }
.hero-copy > p { max-width: 650px; margin: 0; color: #c6cad0; font-size: clamp(1rem, 1.35vw, 1.18rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid var(--gold);
  border-radius: 999px;
  text-decoration: none;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button.primary { color: var(--ink); background: var(--gold-light); }
.button.secondary { color: var(--white); background: transparent; border-color: rgba(255,255,255,.38); }
.hero-visual { position: relative; min-height: 650px; display: grid; place-items: center; isolation: isolate; }
.hero-visual::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: min(48vw, 700px);
  aspect-ratio: 1;
  border: 1px solid rgba(210,161,76,.2);
  border-radius: 50%;
  box-shadow: inset 0 0 120px rgba(210,161,76,.05), 0 0 150px rgba(210,161,76,.07);
}
.hero-visual img { width: min(760px, 58vw); filter: drop-shadow(0 32px 50px rgba(0,0,0,.42)); }
.scroll-cue { position: absolute; left: clamp(20px, 4vw, 64px); bottom: 24px; display: flex; align-items: center; gap: 10px; color: #777f8a; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; }
.scroll-cue::before { content: ""; width: 48px; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }

.proof-strip { border-block: 1px solid var(--line); background: rgba(255,255,255,.025); }
.proof-strip-inner { width: min(calc(100% - 40px), var(--max)); margin: auto; display: grid; grid-template-columns: repeat(3, 1fr); }
.proof-item { padding: 34px clamp(20px, 3vw, 45px); border-right: 1px solid var(--line); }
.proof-item:first-child { border-left: 1px solid var(--line); }
.proof-item strong { display: block; color: var(--gold-light); font-size: clamp(1.65rem, 3vw, 2.7rem); line-height: 1; letter-spacing: -.04em; }
.proof-item span { display: block; margin-top: 11px; color: var(--muted); font-size: .82rem; }

.technology { position: relative; overflow: hidden; }
.technology::after { content: ""; position: absolute; top: 15%; right: -10%; z-index: -1; width: 520px; aspect-ratio: 1; background: url('/images/kawa-globe.png') center/contain no-repeat; opacity: .12; }
.evidence-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin: 44px 0 22px; }
.evidence-tab {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 11px 18px;
  background: rgba(255,255,255,.025);
  color: var(--muted);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}
.evidence-tab[aria-selected="true"] { color: var(--ink); border-color: var(--gold-light); background: var(--gold-light); }
.evidence-card { display: grid; grid-template-columns: 1.03fr .97fr; min-height: 480px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.015)); box-shadow: var(--shadow); }
.evidence-copy { padding: clamp(30px, 5vw, 64px); }
.evidence-source { color: var(--gold-light); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.evidence-copy h3 { margin: 16px 0 30px; font-size: clamp(1.5rem, 3vw, 2.55rem); line-height: 1.12; }
.evidence-values { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 22px 44px; margin-bottom: 28px; }
.evidence-value strong { display: block; color: var(--gold-light); font-size: clamp(2.5rem, 5vw, 5rem); line-height: .9; letter-spacing: -.06em; }
.evidence-value span, .evidence-comparison span { display: block; margin-top: 8px; color: var(--muted); font-size: .78rem; }
.evidence-comparison strong { font-size: clamp(1.3rem, 2.5vw, 2.1rem); color: var(--silver); }
.evidence-copy > p { color: #bdc2ca; }
.evidence-image { min-height: 420px; background: #161a20; }
.evidence-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) contrast(1.08); }

.simulator-wrap { background: var(--panel-light); color: #12151a; }
.simulator-wrap .section-kicker { color: #875c13; }
.simulator-wrap .section-intro { color: #59606a; }
.simulator { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(34px, 7vw, 100px); margin-top: 52px; align-items: center; }
.controls { display: grid; gap: 30px; }
.control-label { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 10px; font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.color-row { display: grid; grid-template-columns: 58px 1fr; gap: 12px; }
input[type="color"] { width: 58px; height: 48px; padding: 3px; border: 1px solid #bbb5aa; border-radius: 12px; background: white; cursor: pointer; }
input[type="text"], input[type="email"], textarea { width: 100%; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: 14px 15px; color: var(--white); background: rgba(255,255,255,.045); }
.simulator input[type="text"] { color: #171a20; border-color: #c9c5bc; background: white; }
input[type="range"] { width: 100%; accent-color: #a06f1c; }
.control-hint { margin: 8px 0 0; color: #686e76; font-size: .76rem; }
.sim-preview { position: relative; min-height: 490px; overflow: hidden; border-radius: var(--radius); box-shadow: 0 24px 60px rgba(31,31,29,.18); background: #d7d3c9; }
.sim-sky { position: absolute; inset: 0 0 47%; background: linear-gradient(#a9c5dc, #e7d9bb); }
.sim-building { position: absolute; left: 8%; right: 8%; bottom: 0; height: 66%; background: #d6d0c6; clip-path: polygon(0 28%, 54% 28%, 54% 8%, 100% 8%, 100% 100%, 0 100%); }
.sim-roof { position: absolute; left: 8%; right: 8%; bottom: 57%; height: 14%; background: #d8d8d0; clip-path: polygon(0 100%, 9% 0, 100% 0, 92% 100%); transition: background .2s ease; }
.sim-building::before { content: ""; position: absolute; inset: 48% 9% 0; background: repeating-linear-gradient(90deg, #3e4b56 0 13%, transparent 13% 20%); opacity: .75; }
.sim-results { position: absolute; right: 18px; bottom: 18px; left: 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border-radius: 15px; background: rgba(255,255,255,.35); backdrop-filter: blur(14px); }
.sim-result { min-height: 100px; padding: 17px; color: #11151b; background: rgba(248,247,243,.83); }
.sim-result strong { display: block; font-size: clamp(1.25rem, 2.5vw, 2rem); line-height: 1.1; }
.sim-result span { display: block; margin-top: 7px; color: #545a62; font-size: .68rem; line-height: 1.3; text-transform: uppercase; }
.sim-disclaimer { grid-column: 1 / -1; margin: -12px 0 0; color: #646971; font-size: .73rem; }

.structure { overflow: hidden; }
.structure-map { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 64px; padding-top: 94px; }
.structure-map::before { content: "KAWA GROUP"; position: absolute; top: 0; left: 50%; min-width: 190px; padding: 13px 20px; color: #111; background: linear-gradient(135deg, var(--gold-light), #b17a25); border-radius: 999px; text-align: center; font-weight: 900; letter-spacing: .09em; transform: translateX(-50%); }
.structure-map::after { content: ""; position: absolute; top: 53px; left: 16.66%; right: 16.66%; height: 41px; border: solid rgba(210,161,76,.42); border-width: 1px 1px 0; }
.structure-card { position: relative; z-index: 1; min-height: 300px; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, #151b24, #0c1016); }
.structure-card::before { content: ""; position: absolute; top: -41px; left: 50%; width: 1px; height: 41px; background: rgba(210,161,76,.42); }
.structure-card.partner { border-color: rgba(93,45,99,.72); }
.structure-card .tag { display: inline-block; padding: 5px 9px; color: var(--gold-light); border: 1px solid rgba(210,161,76,.25); border-radius: 999px; font-size: .63rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.structure-card.partner .tag { color: #e0a8e7; border-color: rgba(145,75,154,.45); }
.structure-card h3 { margin: 18px 0 12px; font-size: 1.35rem; line-height: 1.2; }
.structure-card p { margin: 0; color: var(--muted); font-size: .9rem; }
.structure-card ul { margin: 20px 0 0; padding: 0; list-style: none; color: #d9dce1; font-size: .8rem; }
.structure-card li { padding: 8px 0; border-top: 1px solid var(--line); }

.team { background: linear-gradient(180deg, rgba(255,255,255,.025), transparent); }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 52px; }
.team-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ink-soft); }
.team-photo { aspect-ratio: 4 / 4.4; overflow: hidden; background: #252a30; }
.team-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.78); transition: filter .3s ease, transform .5s ease; }
.team-card:hover .team-photo img { filter: saturate(1); transform: scale(1.025); }
.team-info { padding: 26px; }
.team-info h3 { margin: 0 0 7px; font-size: 1.25rem; }
.team-role { min-height: 45px; margin: 0; color: var(--gold-light); font-size: .74rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.team-info p:last-child { color: var(--muted); font-size: .86rem; }

.projects-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 240px; gap: 14px; margin-top: 50px; }
.project-card { position: relative; grid-column: span 4; overflow: hidden; padding: 0; border: 0; border-radius: 18px; background: #171b22; cursor: zoom-in; }
.project-card:nth-child(1), .project-card:nth-child(6) { grid-column: span 8; }
.project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .3s ease; }
.project-card::after { content: attr(data-label); position: absolute; inset: auto 0 0; padding: 40px 20px 16px; color: white; background: linear-gradient(transparent, rgba(0,0,0,.8)); text-align: left; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.project-card:hover img { transform: scale(1.045); filter: brightness(1.08); }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 18px; }
.video-card { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--ink-soft); }
.video-card video { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: black; }
.video-card p { margin: 0; padding: 15px 18px; color: #d7d9dd; font-size: .78rem; font-weight: 700; }

.reports { background: #0c0f14; }
.reports-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 46px; }
.report-card { display: flex; flex-direction: column; min-height: 230px; padding: 25px; border: 1px solid var(--line); border-radius: 17px; text-decoration: none; background: rgba(255,255,255,.025); transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.report-card:hover { transform: translateY(-3px); border-color: rgba(210,161,76,.55); background: rgba(210,161,76,.045); }
.report-card .report-source { color: var(--gold-light); font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.report-card h3 { margin: 17px 0; font-size: 1rem; line-height: 1.45; }
.report-card footer { display: flex; justify-content: space-between; gap: 15px; margin-top: auto; color: var(--muted); font-size: .7rem; }
.reports-actions { margin-top: 25px; text-align: center; }

.contact { position: relative; overflow: hidden; }
.contact::before { content: ""; position: absolute; right: -10%; bottom: -25%; width: 60%; height: 100%; background: url('/images/kawa-skyline.png') right bottom/contain no-repeat; opacity: .09; pointer-events: none; }
.contact-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(45px, 9vw, 120px); align-items: start; }
.contact-details { margin-top: 35px; color: #d5d8dc; }
.contact-details a { color: var(--gold-light); text-underline-offset: 4px; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.035); box-shadow: var(--shadow); }
.form-field { display: grid; gap: 7px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.form-field textarea { min-height: 140px; resize: vertical; }
.contact-form .button { justify-self: start; border: 0; }
.form-status { grid-column: 1 / -1; min-height: 24px; margin: 0; color: var(--gold-light); font-size: .78rem; }

.site-footer { display: grid; grid-template-columns: 1.1fr 1.5fr .9fr; gap: 30px; align-items: end; padding: 40px clamp(20px, 4vw, 64px); border-top: 1px solid var(--line); color: #7f8791; font-size: .72rem; }
.site-footer strong { display: block; color: var(--white); font-size: 1rem; letter-spacing: .11em; }
.site-footer span { color: var(--gold-light); font-size: .62rem; letter-spacing: .16em; }
.site-footer p { margin: 2px 0; }
.site-footer > div:last-child { text-align: right; }

dialog { width: min(1100px, calc(100% - 30px)); max-height: calc(100svh - 30px); padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; color: white; background: #090c10; box-shadow: var(--shadow); }
dialog::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(8px); }
.lightbox-image { width: 100%; max-height: calc(100svh - 120px); object-fit: contain; }
.lightbox-caption { margin: 0; padding: 16px 56px 16px 20px; color: #c9ccd1; }
.lightbox-close { position: absolute; top: 12px; right: 12px; z-index: 2; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; background: rgba(0,0,0,.68); font-size: 1.4rem; cursor: pointer; }

.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .menu-toggle { display: block; }
  .main-nav { position: fixed; top: 68px; right: 0; left: 0; display: grid; gap: 0; padding: 14px 20px 24px; background: rgba(7,9,13,.97); border-bottom: 1px solid var(--line); transform: translateY(-130%); opacity: 0; pointer-events: none; transition: .25s ease; }
  .site-header.nav-open .main-nav { transform: none; opacity: 1; pointer-events: auto; }
  .main-nav a { padding: 15px 8px; border-bottom: 1px solid var(--line); }
  .language-picker { justify-content: flex-start; margin: 10px 0; padding: 10px 8px; border-radius: 10px; }
  .language-picker .goog-te-combo { max-width: min(260px, 70vw); }
  .nav-cta { margin-top: 10px; text-align: center; border-bottom: 1px solid rgba(241,204,120,.5) !important; }
  .site-header.nav-open .menu-toggle span:first-child { transform: translateY(7px) rotate(45deg); }
  .site-header.nav-open .menu-toggle span:nth-child(2) { opacity: 0; }
  .site-header.nav-open .menu-toggle span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .hero { grid-template-columns: 1fr; padding-top: 125px; }
  .hero-copy { max-width: 760px; }
  .hero-visual { min-height: 430px; margin-top: -45px; }
  .hero-visual img { width: min(760px, 95vw); }
  .scroll-cue { display: none; }
  .evidence-card, .simulator, .contact-grid { grid-template-columns: 1fr; }
  .evidence-image { min-height: 340px; }
  .structure-map { grid-template-columns: 1fr; padding-top: 90px; gap: 16px; }
  .structure-map::after { display: none; }
  .structure-card::before { display: none; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .reports-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .site-footer > div:last-child { grid-column: 1 / -1; text-align: left; }
}

@media (max-width: 680px) {
  .section-shell { width: min(calc(100% - 28px), var(--max)); padding-block: 72px; }
  .site-header { padding-inline: 14px; }
  .wordmark { font-size: .88rem; }
  .hero { width: calc(100% - 28px); padding-top: 110px; }
  .hero h1 { font-size: clamp(2.55rem, 15vw, 4.3rem); }
  .hero-visual { min-height: 320px; }
  .proof-strip-inner { width: 100%; grid-template-columns: 1fr; }
  .proof-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .proof-item:first-child { border-left: 0; }
  .evidence-tabs { display: grid; grid-template-columns: 1fr; }
  .evidence-tab { text-align: left; }
  .evidence-copy { padding: 26px 22px; }
  .evidence-values { align-items: flex-start; }
  .sim-preview { min-height: 430px; }
  .sim-results { grid-template-columns: 1fr; }
  .sim-result { min-height: auto; padding: 11px 14px; }
  .sim-result strong { display: inline; margin-right: 7px; }
  .sim-result span { display: inline; }
  .team-grid, .reports-grid, .video-grid { grid-template-columns: 1fr; }
  .projects-grid { grid-template-columns: 1fr; grid-auto-rows: 230px; }
  .project-card, .project-card:nth-child(1), .project-card:nth-child(6) { grid-column: 1; }
  .contact-form { grid-template-columns: 1fr; }
  .form-field.full { grid-column: 1; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > div:last-child { grid-column: auto; }
}

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

/* Current page composition */
.menu-toggle b { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.wordmark span { color: var(--white); font-size: inherit; letter-spacing: inherit; }
.wordmark small { color: var(--gold-light); font-size: .62rem; letter-spacing: .2em; }
.hero h1 em, .section-heading h2 em, .contact h2 em { color: var(--gold-light); font-family: Georgia, serif; font-weight: 400; font-style: italic; text-transform: none; }
.hero .lead { max-width: 650px; }
.button-gold { color: var(--ink); background: var(--gold-light); }
.button-ghost { color: var(--white); background: transparent; border-color: rgba(255,255,255,.38); }
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 28px; color: #7f8791; font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.hero-meta i { width: 3px; height: 3px; border-radius: 50%; background: var(--gold); }

.proof-strip { display: grid; grid-template-columns: repeat(3, 1fr); padding-inline: max(20px, calc((100% - var(--max)) / 2)); }
.proof-strip article { padding: 34px clamp(20px,3vw,45px); border-right: 1px solid var(--line); }
.proof-strip article:first-child { border-left: 1px solid var(--line); }
.proof-strip article strong { display: block; color: var(--gold-light); font-size: clamp(1.65rem,3vw,2.7rem); line-height: 1; letter-spacing: -.04em; }
.proof-strip article span { display: block; margin-top: 11px; color: var(--muted); font-size: .82rem; }
.proof-strip > p { grid-column: 1 / -1; margin: 0; padding: 12px 20px 16px; color: #747c86; border-top: 1px solid var(--line); text-align: center; font-size: .68rem; }

.technology, .simulator, .structure, .team, .practice, .reports, .contact { position: relative; display: block; width: 100%; max-width: none; margin: 0; padding: clamp(78px,9vw,128px) max(20px, calc((100% - var(--max)) / 2)); overflow: hidden; }
.section-light { color: #16202b; background: #f2efe8; }
.section-dark { color: var(--white); background: transparent; }
.section-heading { position: relative; z-index: 1; max-width: 940px; }
.section-heading .eyebrow, .contact .eyebrow { margin: 0 0 15px; color: var(--gold-light); font-size: .73rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.section-heading .eyebrow.dark, .contact .eyebrow.dark { color: #8c6119; }
.section-heading h2, .contact h2 { margin: 0; font-size: clamp(2.2rem,5vw,4.7rem); line-height: 1; letter-spacing: -.05em; }
.section-heading > p:last-child, .contact-grid > div > p { max-width: 760px; margin: 24px 0 0; color: var(--muted); font-size: clamp(1rem,1.4vw,1.15rem); }
.section-light .section-heading > p:last-child, .section-light .contact-grid > div > p { color: #5c646c; }

.technology::after { opacity: .08; }
.evidence-tabs button { border: 1px solid #bcb6aa; border-radius: 999px; padding: 11px 18px; color: #5e6670; background: transparent; font-size: .76rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.evidence-tabs button span { margin-right: 8px; font-size: .65rem; }
.evidence-tabs button[aria-selected="true"] { color: white; border-color: #18222e; background: #18222e; }
.technology .evidence-card { grid-template-columns: .95fr 1.05fr; color: white; background: #111b28; }
.evidence-photo { position: relative; min-height: 450px; overflow: hidden; }
.evidence-photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; filter: saturate(.75) contrast(1.06); }
.evidence-copy > p:first-child { margin: 0; color: var(--gold-light); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.evidence-copy small { display: block; margin-top: 24px; color: #8e98a5; font-size: .7rem; }

.simulator-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(34px,7vw,90px); align-items: stretch; margin-top: 52px; }
.simulator .sim-preview { position: relative; min-height: 520px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(155deg, color-mix(in srgb, var(--surface) 76%, white), var(--surface)); box-shadow: var(--shadow); }
.simulator .sim-preview::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg,rgba(255,255,255,.28),transparent 38%), repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 62px); }
.sim-sun { position: absolute; top: 9%; right: 12%; width: 100px; aspect-ratio: 1; border-radius: 50%; background: #f8d36f; box-shadow: 0 0 80px rgba(248,211,111,.5); }
.sim-surface { position: absolute; right: 28px; bottom: 28px; left: 28px; padding: 22px; border: 1px solid rgba(255,255,255,.28); border-radius: 16px; background: rgba(8,10,14,.66); backdrop-filter: blur(10px); }
.sim-surface span, .sim-room span { display: block; color: #d6d9dd; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.sim-surface strong { font-size: 2rem; }
.sim-room { position: absolute; top: 28px; left: 28px; padding: 14px 17px; border-radius: 13px; color: #111; background: rgba(248,247,243,.86); backdrop-filter: blur(10px); }
.sim-room span { color: #5a626b; }
.sim-room strong { font-size: 1.4rem; }
.sim-controls { display: flex; flex-direction: column; justify-content: center; padding: clamp(26px,4vw,48px); border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.035); }
.color-picker, .range-label { display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #c7ccd3; font-size: .77rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.color-picker input { width: 76px; height: 46px; }
.swatches { display: grid; grid-template-columns: repeat(6,1fr); gap: 9px; margin: 22px 0 34px; }
.swatches button { aspect-ratio: 1; border: 2px solid transparent; border-radius: 50%; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); cursor: pointer; }
.swatches button.active { border-color: var(--gold-light); outline: 1px solid rgba(241,204,120,.4); outline-offset: 3px; }
.range-label strong { color: var(--gold-light); }
#pigment-strength { margin: 15px 0 7px; }
.range-scale { display: flex; justify-content: space-between; color: #737c87; font-size: .65rem; }
.simulator .sim-results { position: static; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 35px; background: none; backdrop-filter: none; }
.simulator .sim-results article { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.035); }
.simulator .sim-results span { display: block; min-height: 34px; color: #8f98a4; font-size: .62rem; line-height: 1.35; text-transform: uppercase; }
.simulator .sim-results strong { display: block; margin-top: 8px; font-size: 1.4rem; }
.simulator .sim-results strong small { color: var(--gold-light); font-size: .65em; }
.simulator .sim-results i { display: block; height: 3px; margin-top: 12px; background: rgba(255,255,255,.1); }
.simulator .sim-results i em { display: block; height: 100%; background: var(--gold-light); }
.simulator .sim-results p { margin: 7px 0 0; color: #7f8893; font-size: .65rem; line-height: 1.4; }
.disclaimer { max-width: 900px; margin: 25px 0 0; color: #747e89; font-size: .7rem; }

.structure-map { display: block; margin-top: 58px; padding-top: 0; }
.structure-map::before, .structure-map::after { display: none; }
.structure-card.umbrella { width: min(520px,100%); min-height: auto; margin: 0 auto; padding: 25px 30px; color: white; text-align: center; background: #121c28; }
.structure-card.umbrella::before { display: none; }
.structure-card > span { color: #a27428; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.structure-card.umbrella > span { color: var(--gold-light); }
.structure-branches { position: relative; width: 67%; height: 54px; margin: 0 auto; border: solid rgba(170,124,44,.42); border-width: 0 1px 1px; }
.structure-branches i:nth-child(2) { position: absolute; bottom: -1px; left: 50%; width: 1px; height: 55px; background: rgba(170,124,44,.42); }
.structure-columns { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.structure-columns .structure-card { min-height: 355px; color: white; }
.structure-columns .structure-card::before { display: none; }
.structure-columns .featured { border-color: rgba(210,161,76,.62); background: linear-gradient(145deg,#22202a,#111821); }
.structure-card dl { margin: 24px 0 0; }
.structure-card dl div { padding: 10px 0; border-top: 1px solid var(--line); }
.structure-card dt { color: #848e99; font-size: .65rem; text-transform: uppercase; }
.structure-card dd { margin: 2px 0 0; font-size: .8rem; }

.team-grid { margin-top: 50px; }
.team-card { padding-bottom: 25px; }
.team-card .portrait { aspect-ratio: 4/4.3; overflow: hidden; background: #272d35; }
.team-card .portrait { position: relative; display: block; width: 100%; padding: 0; border: 0; color: white; cursor: pointer; }
.team-card .portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.78); transition: filter .3s ease, transform .5s ease; }
.team-card .portrait > span { position: absolute; right: 16px; bottom: 16px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; background: rgba(7,12,18,.72); backdrop-filter: blur(10px); font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; opacity: 0; transform: translateY(7px); transition: opacity .25s ease, transform .25s ease; }
.team-card .portrait:hover img, .team-card .portrait:focus-visible img { filter: saturate(1); transform: scale(1.025); }
.team-card .portrait:hover > span, .team-card .portrait:focus-visible > span { opacity: 1; transform: none; }
.team-card > span, .team-card > h3, .team-card > strong, .team-card > p { display: block; margin-right: 25px; margin-left: 25px; }
.team-card > span { margin-top: 24px; color: var(--gold-light); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.team-card > h3 { margin-top: 10px; margin-bottom: 4px; font-size: 1.25rem; }
.team-card > strong { min-height: 43px; color: #d5b774; font-size: .72rem; line-height: 1.45; text-transform: uppercase; }
.team-card > p { color: var(--muted); font-size: .84rem; }
.featured-person { border-color: rgba(210,161,76,.55); }

.bio-dialog { width: min(1040px, calc(100% - 30px)); overflow: auto; color: #f7f4ed; background: linear-gradient(145deg, #111b25, #070b10); }
.bio-dialog-grid { display: grid; grid-template-columns: minmax(290px, .8fr) 1.2fr; min-height: 610px; }
.bio-dialog-portrait { min-height: 610px; background: #1d2730; }
.bio-dialog-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.bio-dialog-content { align-self: center; padding: clamp(36px, 6vw, 72px); }
.bio-dialog-content .eyebrow { margin: 0 0 12px; color: var(--gold-light); }
.bio-dialog-content h3 { margin: 0 0 8px; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; }
.bio-dialog-content > strong { display: block; margin-bottom: 28px; color: #e2bd69; font-size: .78rem; line-height: 1.5; letter-spacing: .06em; text-transform: uppercase; }
.bio-dialog-content > p:not(.eyebrow) { color: #c5ccd2; font-size: .95rem; }
.bio-story { margin-top: 26px; padding: 22px 24px; border-left: 2px solid var(--gold); background: rgba(255,255,255,.045); }
.bio-story h4 { margin: 0 0 9px; color: #f1cc78; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.bio-story p { margin: 0; color: #d0d5da; font-size: .88rem; }
.bio-dialog-content dl { margin: 30px 0 0; }
.bio-dialog-content dl div { display: grid; grid-template-columns: 105px 1fr; gap: 16px; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.13); }
.bio-dialog-content dt { color: #86919a; font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bio-dialog-content dd { margin: 0; color: #f1eadc; font-size: .78rem; }
.bio-close { position: absolute; top: 16px; right: 16px; z-index: 2; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; color: white; background: rgba(0,0,0,.64); font-size: 1.4rem; cursor: pointer; }

@media (hover: none) {
  .team-card .portrait > span { opacity: 1; transform: none; }
}

@media (max-width: 760px) {
  .bio-dialog-grid { grid-template-columns: 1fr; }
  .bio-dialog-portrait { min-height: 0; aspect-ratio: 4/3.4; }
  .bio-dialog-content { padding: 30px 22px 36px; }
  .bio-dialog-content dl div { grid-template-columns: 1fr; gap: 3px; }
}

.project-grid { display: grid; grid-template-columns: repeat(12,1fr); grid-auto-rows: 250px; gap: 14px; margin-top: 48px; }
.practice .project-card { position: relative; grid-column: span 4; overflow: hidden; padding: 0; border: 0; border-radius: 18px; background: #161a20; cursor: zoom-in; }
.practice .project-card.tall { grid-row: span 2; }
.practice .project-card.wide { grid-column: span 8; }
.practice .project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.practice .project-card:hover img { transform: scale(1.04); }
.practice .project-card > span { position: absolute; inset: auto 0 0; padding: 50px 20px 18px; color: white; background: linear-gradient(transparent,rgba(0,0,0,.86)); text-align: left; font-size: .65rem; text-transform: uppercase; }
.practice .project-card > span b { display: block; margin-top: 5px; font-size: .82rem; }
.video-grid figure { overflow: hidden; margin: 0; border: 1px solid rgba(10,20,30,.15); border-radius: 18px; background: #111922; }
.video-grid figcaption { padding: 15px 18px; color: white; font-size: .77rem; }
.gallery-feature { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: 0; align-items: stretch; margin-top: 48px; overflow: hidden; border: 1px solid rgba(20,35,48,.14); border-radius: 22px; background: #132739; box-shadow: 0 24px 60px rgba(30,42,51,.12); }
.gallery-feature video { display: block; width: 100%; height: 100%; min-height: 330px; aspect-ratio: 16/9; object-fit: cover; background: #06090c; }
.gallery-feature > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px,4vw,52px); color: white; }
.gallery-feature .eyebrow { margin: 0 0 14px; color: var(--gold-light); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.gallery-feature h3 { margin: 0; font-size: clamp(1.65rem,3vw,2.7rem); line-height: 1.05; }
.gallery-feature p:last-child { margin: 18px 0 0; color: #c4cbd1; line-height: 1.65; }
.media-section { margin-top: clamp(72px,9vw,120px); padding: clamp(28px,4vw,52px); border: 1px solid rgba(20,35,48,.14); border-radius: 24px; background: linear-gradient(145deg,#edf1f3,#f7f3e9); box-shadow: 0 22px 60px rgba(30,42,51,.09); }
.media-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.7fr); column-gap: 50px; align-items: end; }
.media-heading .eyebrow { grid-column: 1 / -1; margin: 0 0 12px; color: #8c6119; font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.media-heading h3 { margin: 0; font-size: clamp(1.8rem,3.4vw,3.3rem); line-height: 1.05; }
.media-heading > p:last-child { margin: 0; color: #5c6670; line-height: 1.65; }
.media-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 13px; margin-top: 34px; }
.media-card { display: flex; min-width: 0; flex-direction: column; padding: 0 0 20px; overflow: hidden; color: #172330; border: 1px solid rgba(20,35,48,.14); border-radius: 16px; background: rgba(255,255,255,.76); text-align: left; cursor: zoom-in; transition: transform .25s ease,box-shadow .25s ease; }
.media-card:hover,.media-card:focus-visible { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(30,42,51,.13); }
.media-card img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: top; background: white; }
.media-card span,.media-card h4,.media-card p { margin-right: 18px; margin-left: 18px; }
.media-card span { margin-top: 18px; color: #8c6119; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.media-card h4 { margin-top: 10px; margin-bottom: 0; font-size: 1rem; line-height: 1.25; }
.media-card p { margin-top: 10px; margin-bottom: 0; color: #616b74; font-size: .78rem; line-height: 1.55; }
.media-note { margin: 22px 0 0; color: #707982; font-size: .72rem; line-height: 1.55; }

/* Curated current affairs hub */
.current-section {
  position: relative;
  margin-top: clamp(72px,9vw,120px);
  padding: clamp(30px,5vw,64px);
  overflow: hidden;
  color: #f4f1e9;
  border: 1px solid rgba(241,204,120,.24);
  border-radius: 28px;
  background:
    radial-gradient(circle at 94% 3%,rgba(210,161,76,.20),transparent 28%),
    linear-gradient(145deg,#08131e 0%,#101c28 62%,#0a1119 100%);
  box-shadow: 0 28px 80px rgba(8,19,30,.2);
}
.current-section::before { content: ""; position: absolute; top: -150px; right: -110px; width: 360px; aspect-ratio: 1; border: 1px solid rgba(241,204,120,.18); border-radius: 50%; box-shadow: inset 0 0 80px rgba(210,161,76,.06); pointer-events: none; }
.current-heading { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 36px; align-items: end; }
.current-heading .eyebrow { margin: 0 0 14px; color: var(--gold-light); font-size: .68rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.current-heading h3 { margin: 0; font-size: clamp(2rem,4vw,4rem); line-height: 1; letter-spacing: -.045em; }
.current-heading h3 em { color: var(--gold-light); font-family: Georgia,serif; font-weight: 400; }
.current-heading > p { max-width: 520px; margin: 0; color: #bdc7d0; line-height: 1.65; }
.current-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 42px; }
.current-card { display: flex; min-width: 0; min-height: 290px; flex-direction: column; padding: 25px; color: #f6f2e8; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: rgba(255,255,255,.052); text-decoration: none; box-shadow: 0 15px 40px rgba(0,0,0,.12); transition: transform .22s ease,border-color .22s ease,background .22s ease; }
.current-card:hover,.current-card:focus-visible { transform: translateY(-4px); border-color: rgba(241,204,120,.55); background: rgba(210,161,76,.09); }
.current-card-lead { grid-column: span 2; background: linear-gradient(135deg,rgba(210,161,76,.17),rgba(255,255,255,.05)); }
.current-card-deadline { border-color: rgba(241,204,120,.42); }
.current-card-video { background: linear-gradient(150deg,rgba(29,58,82,.68),rgba(255,255,255,.04)); }
.current-card-art { position: relative; display: grid; min-height: 118px; place-items: center; margin: -25px -25px 22px; overflow: hidden; border-bottom: 1px solid rgba(241,204,120,.24); background: linear-gradient(135deg,#f8fafb 0%,#e8edf1 62%,#d4dde4 100%); }
.current-card-lead .current-card-art { min-height: 142px; }
.current-card-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg,transparent 35%,rgba(255,255,255,.72) 50%,transparent 65%); transform: translateX(-120%); transition: transform .55s ease; }
.current-card-press:hover .current-card-art::after,.current-card-press:focus-visible .current-card-art::after { transform: translateX(120%); }
.current-card-art img { display: block; width: min(180px,58%); max-height: 62px; object-fit: contain; }
.current-card-art b { position: absolute; right: 14px; bottom: 12px; padding: 7px 10px; color: #f5d693; border: 1px solid rgba(241,204,120,.38); border-radius: 999px; background: rgba(8,19,30,.9); font-size: .59rem; letter-spacing: .11em; text-transform: uppercase; }
.current-type { color: var(--gold-light); font-size: .64rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.current-card time { margin-top: 9px; color: #91a0ad; font-size: .69rem; }
.current-card h4 { margin: 24px 0 10px; font-size: clamp(1.05rem,1.55vw,1.38rem); line-height: 1.24; }
.current-card p { margin: 0 0 28px; color: #bdc7d0; font-size: .84rem; line-height: 1.62; }
.current-card strong { display: flex; gap: 8px; align-items: center; margin-top: auto; color: #f1cc78; font-size: .71rem; letter-spacing: .05em; text-transform: uppercase; }
.play-mark { display: inline-grid; width: 24px; aspect-ratio: 1; place-items: center; border: 1px solid rgba(241,204,120,.52); border-radius: 50%; font-size: .55rem; }
.current-footer { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-top: 24px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.11); }
.current-footer p { margin: 0; color: #8f9aa5; font-size: .7rem; }
.current-footer a { color: #f1cc78; font-size: .7rem; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.gallery-intro { display: flex; justify-content: space-between; gap: 40px; align-items: end; margin-top: clamp(72px,9vw,120px); padding-top: 34px; border-top: 1px solid rgba(20,35,48,.15); }
.gallery-intro .eyebrow { margin: 0 0 12px; color: #8c6119; font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.gallery-intro h3 { margin: 0; font-size: clamp(1.8rem,3.5vw,3.35rem); line-height: 1.05; }
.gallery-intro > p { max-width: 500px; margin: 0; color: #606a73; line-height: 1.65; }
.gallery-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin-top: 30px; }
.gallery-card { position: relative; aspect-ratio: 1; overflow: hidden; padding: 0; border: 0; border-radius: 14px; background: #172431; cursor: zoom-in; }
.gallery-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease,filter .3s ease; }
.gallery-card span { position: absolute; inset: auto 0 0; padding: 34px 12px 11px; color: white; background: linear-gradient(transparent,rgba(4,9,13,.88)); text-align: left; font-size: .67rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.gallery-card:hover img,.gallery-card:focus-visible img { transform: scale(1.05); filter: brightness(1.08); }

.reports-grid, .report-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 46px; }
.report-toggle { display: flex; margin: 26px auto 0; }

.contact { color: #18212c; background: #e8e1d5; }
.contact-visual { position: absolute; inset: auto 0 0 45%; opacity: .15; pointer-events: none; }
.contact-visual img { width: 100%; }
.contact-grid { grid-template-columns: .85fr 1.15fr; }
.contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 34px; }
.contact-links span { color: #50545b; font-weight: 700; }
.contact-links a { color: #6d4b14; font-weight: 700; text-underline-offset: 4px; }

.knowledge { padding-bottom: clamp(82px,10vw,132px); }
.knowledge-grid {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 18px;
  width: min(calc(100% - 40px),var(--max));
  margin: 46px auto 0;
}
.knowledge-grid a {
  grid-column: span 2;
  display: flex;
  min-height: 270px;
  flex-direction: column;
  padding: 30px;
  color: #17202a;
  border: 1px solid rgba(20,28,35,.15);
  border-radius: var(--radius);
  background: rgba(255,255,255,.55);
  box-shadow: 0 18px 48px rgba(30,25,18,.08);
  text-decoration: none;
  transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.knowledge-grid a:nth-child(4) { grid-column: 2 / span 2; }
.knowledge-grid a:hover { transform: translateY(-5px); border-color: rgba(151,104,31,.5); box-shadow: 0 24px 60px rgba(30,25,18,.14); }
.knowledge-grid span { color: #835c20; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.knowledge-grid h3 { margin: 22px 0 12px; font-size: clamp(1.25rem,2vw,1.7rem); line-height: 1.12; }
.knowledge-grid p { margin: 0 0 24px; color: #59616a; }
.knowledge-grid strong { margin-top: auto; color: #6d4b14; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer a { text-underline-offset: 4px; }

@media (max-width: 980px) {
  .knowledge-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .knowledge-grid a,.knowledge-grid a:nth-child(4) { grid-column: auto; }
  .knowledge-grid a:last-child { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .knowledge-grid { grid-template-columns: 1fr; width: calc(100% - 28px); }
  .knowledge-grid a,.knowledge-grid a:last-child { grid-column: auto; min-height: 0; }
}
#contact-form { position: relative; display: grid; gap: 20px; padding: clamp(25px,4vw,44px); border: 1px solid rgba(20,28,35,.16); border-radius: var(--radius); background: rgba(255,255,255,.58); box-shadow: 0 25px 70px rgba(30,25,18,.12); }
#contact-form label { display: grid; gap: 8px; color: #4d555e; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
#contact-form input, #contact-form select, #contact-form textarea { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid #b7aea0; border-radius: 0; color: #161b21; background: transparent; outline: none; text-transform: none; }
#contact-form input:focus, #contact-form select:focus, #contact-form textarea:focus { border-color: #8a5f18; }
#contact-form textarea { resize: vertical; }
#contact-form small { color: #70757a; text-align: center; }

@media (max-width: 980px) {
  .proof-strip { grid-template-columns: 1fr; padding: 0; }
  .proof-strip article, .proof-strip article:first-child { border-right: 0; border-bottom: 1px solid var(--line); border-left: 0; }
  .technology .evidence-card, .simulator-grid { grid-template-columns: 1fr; }
  .structure-branches { display: none; }
  .structure-columns { grid-template-columns: 1fr; margin-top: 16px; }
  .structure-columns .structure-card { min-height: auto; }
  .contact-grid { grid-template-columns: 1fr; }
  .gallery-feature { grid-template-columns: 1fr; }
  .gallery-feature video { min-height: 0; }
  .media-heading { grid-template-columns: 1fr; }
  .media-heading > p:last-child { margin-top: 18px; }
  .media-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .current-heading { grid-template-columns: 1fr; }
  .current-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .current-card-lead { grid-column: span 2; }
  .gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 680px) {
  .technology, .simulator, .structure, .team, .practice, .reports, .contact { padding-right: 14px; padding-left: 14px; }
  .evidence-tabs { display: grid; }
  .technology .evidence-card { display: flex; flex-direction: column; }
  .evidence-photo { min-height: 280px; }
  .simulator .sim-results { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: 1fr; }
  .project-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .practice .project-card, .practice .project-card.tall, .practice .project-card.wide { grid-column: 1; grid-row: auto; }
  .gallery-intro { display: block; }
  .gallery-intro > p { margin-top: 18px; }
  .media-section { padding: 22px 14px; }
  .media-grid { grid-template-columns: 1fr; }
  .current-section { padding: 28px 16px; border-radius: 22px; }
  .current-grid { grid-template-columns: 1fr; }
  .current-card,.current-card-lead { grid-column: 1; min-height: 0; }
  .current-footer { align-items: flex-start; flex-direction: column; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .reports-grid, .report-grid { grid-template-columns: 1fr; }
}

/* Lighter art direction · centered brand opening */
body {
  color: #172330;
  background: #f3f1eb;
}
body::before { display: none; }

.hero {
  position: relative;
  isolation: isolate;
  grid-template-columns: 1fr;
  place-items: center;
  width: 100%;
  max-width: none;
  min-height: 100svh;
  margin: 0;
  padding: 104px max(20px, calc((100% - var(--max)) / 2)) 78px;
  overflow: hidden;
  color: var(--white);
  text-align: center;
  background:
    radial-gradient(circle at 50% 18%, rgba(238,191,99,.17), transparent 34rem),
    linear-gradient(180deg, #19334a 0%, #10263a 38%, #09121d 100%);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 80px 80px,
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px) 0 0 / 80px 80px;
  mask-image: linear-gradient(to bottom, black, transparent 72%);
}
.hero-copy {
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(920px, 100%);
  margin: 0 auto;
}
.hero-copy::before {
  content: "";
  position: absolute;
  inset: -5% -12%;
  z-index: -1;
  background: radial-gradient(ellipse, rgba(5,8,12,.82) 0%, rgba(5,8,12,.48) 43%, transparent 72%);
  filter: blur(10px);
}
.hero .eyebrow { margin-bottom: 3px; color: #f1cc78; }
.hero-logo {
  width: min(670px, 86vw);
  margin: 0 auto -6px;
  border-radius: 20px;
  mix-blend-mode: normal;
  filter: drop-shadow(0 26px 44px rgba(0,0,0,.3));
}
.hero h1 {
  max-width: none;
  margin: 0 0 18px;
  font-size: clamp(2.15rem, 4.6vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.hero .lead { max-width: 690px; color: #e2e8ed; }
.hero-actions { justify-content: center; margin-top: 25px; }
.hero-meta { justify-content: center; color: #b7c1cb; }
.hero-visual {
  position: absolute;
  inset: auto 0 -6% 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 0;
  height: 66%;
  overflow: hidden;
  opacity: .68;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.65) 26%, black 61%, transparent 100%);
}
.hero-visual::before { display: none; }
.hero-visual img {
  width: min(1420px, 112vw);
  max-width: none;
  margin: 0 auto;
  transform: translateY(8%);
  filter: saturate(.9) brightness(1.15) drop-shadow(0 28px 55px rgba(0,0,0,.28));
}
.scroll-cue { z-index: 4; color: #c9d1d8; }

.proof-strip {
  color: #172330;
  border-color: rgba(20,35,48,.13);
  background: linear-gradient(180deg, #fffefa, #f2eee5);
  box-shadow: 0 18px 55px rgba(31,42,50,.07);
}
.proof-strip article, .proof-strip article:first-child { border-color: rgba(20,35,48,.12); }
.proof-strip article strong { color: #9a671a; }
.proof-strip article span { color: #59646f; }
.proof-strip > p { color: #6d747b; border-color: rgba(20,35,48,.1); }

.technology { background: #fbfaf6; }
.structure { background: #f1eee7; }
.practice { background: #fcfbf8; }
.contact { background: linear-gradient(145deg, #f3ede1, #e9eef1); }

.simulator {
  color: #172330;
  background:
    radial-gradient(circle at 8% 25%, rgba(205,157,68,.14), transparent 24rem),
    #e8edf1;
}
.simulator .section-heading .eyebrow { color: #8c6119; }
.simulator .section-heading > p:last-child { color: #596570; }
.simulator .sim-controls {
  border-color: rgba(28,43,56,.13);
  background: rgba(255,255,255,.78);
  box-shadow: 0 24px 65px rgba(35,48,58,.1);
}
.simulator .color-picker, .simulator .range-label { color: #3f4c57; }
.simulator .range-label strong { color: #946519; }
.simulator .range-scale, .simulator .disclaimer { color: #626d77; }
.simulator .sim-results article {
  border-color: rgba(30,44,57,.12);
  background: #f8f7f3;
}
.simulator .sim-results span, .simulator .sim-results p { color: #68737d; }
.simulator .sim-results strong { color: #172330; }
.simulator .sim-results i { background: rgba(20,35,48,.12); }

.structure-card.umbrella {
  color: white;
  background: linear-gradient(145deg, #20384d, #122536);
  box-shadow: 0 22px 55px rgba(25,38,49,.15);
}
.structure-columns .structure-card {
  color: #172330;
  border-color: rgba(27,40,52,.13);
  background: rgba(255,255,255,.86);
  box-shadow: 0 18px 45px rgba(32,42,50,.07);
}
.structure-columns .featured {
  border-color: rgba(171,121,37,.4);
  background: linear-gradient(145deg, #fffdf7, #f2e7ce);
}
.structure-columns .structure-card p { color: #59646d; }
.structure-columns .structure-card dl div { border-color: rgba(28,41,52,.1); }
.structure-columns .structure-card dt { color: #7c6a4c; }

.team {
  color: #172330;
  background: linear-gradient(180deg, #eef1f3, #f8f6f0);
}
.team .section-heading .eyebrow { color: #8c6119; }
.team-card {
  border-color: rgba(28,42,54,.12);
  background: rgba(255,255,255,.92);
  box-shadow: 0 20px 50px rgba(30,42,51,.08);
}
.team-card > h3 { color: #172330; }
.team-card > strong { color: #8f621a; }
.team-card > p { color: #606b74; }
.team-card > span { color: #95671b; }
.featured-person { border-color: rgba(178,126,38,.45); }

.participate {
  position: relative;
  isolation: isolate;
  width: 100%;
  padding: clamp(82px,9vw,128px) max(20px, calc((100% - var(--max)) / 2));
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 88% 12%, rgba(215,164,70,.18), transparent 30rem),
    radial-gradient(circle at 10% 90%, rgba(96,130,157,.16), transparent 27rem),
    linear-gradient(145deg, #0b1a28 0%, #102b40 54%, #07111b 100%);
}
.participate::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px) 0 0 / 92px 92px;
  mask-image: linear-gradient(to bottom, #000, transparent 78%);
}
.participate .section-heading { max-width: 900px; }
.participate .section-heading > p:last-child { max-width: 830px; color: #c4ced6; }
.participate-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
  margin-top: clamp(38px,5vw,62px);
}
.participate-grid article {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  padding: clamp(23px,2.4vw,32px);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 20px;
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 1px rgba(255,255,255,.05), 0 22px 48px rgba(0,0,0,.12);
  backdrop-filter: blur(9px);
  transition: transform .2s ease,border-color .2s ease,background .2s ease;
}
.participate-grid article:hover { transform: translateY(-4px); border-color: rgba(241,204,120,.44); background: rgba(255,255,255,.075); }
.participate-grid article > span { color: #efcb7b; font-size: .75rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.participate-grid h3 { margin: 24px 0 14px; font-size: clamp(1.25rem,1.8vw,1.65rem); line-height: 1.12; letter-spacing: -.025em; }
.participate-grid p { margin: 0 0 28px; color: #bdc8d1; font-size: 1rem; line-height: 1.65; }
.participate-grid a {
  align-self: flex-start;
  margin-top: auto;
  padding-bottom: 6px;
  color: #f2d28d;
  border-bottom: 1px solid rgba(242,210,141,.48);
  font-size: .88rem;
  font-weight: 800;
  text-decoration: none;
}
.participate-grid a:hover { color: #fff0c5; border-color: #fff0c5; }
.participate-grid .participate-business {
  border-color: rgba(231,184,90,.55);
  background: linear-gradient(155deg, rgba(208,151,52,.23), rgba(255,255,255,.055));
}
.participate-note { max-width: 980px; margin: 24px 0 0; color: #8796a3; font-size: .78rem; line-height: 1.6; }

.reports {
  color: #172330;
  background: #e6ecef;
}
.reports .section-heading .eyebrow { color: #8c6119; }
.reports .section-heading > p:last-child { color: #596570; }
.report-summary-link { max-width: 780px; line-height: 1.65; overflow-wrap: anywhere; }
.report-summary-link a { color: #66460f; text-decoration: underline; text-underline-offset: 3px; }
.report-summary-link a:focus-visible { outline: 2px solid #66460f; outline-offset: 3px; }
.reports .report-card {
  color: #172330;
  border-color: rgba(27,41,53,.12);
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 35px rgba(33,46,56,.06);
}
.reports .report-card:hover {
  border-color: rgba(170,119,35,.5);
  background: #fffaf0;
}
.reports .report-card .report-source { color: #8c6119; }
.reports .report-card footer { color: #64707a; }
.reports .button-ghost { color: #172330; border-color: rgba(23,35,48,.35); }
.technical-library {
  display: grid;
  grid-template-columns: minmax(240px,.72fr) minmax(0,1.8fr);
  gap: clamp(24px,4vw,58px);
  align-items: stretch;
  margin-top: clamp(42px,6vw,72px);
  padding: clamp(22px,3.2vw,42px);
  border: 1px solid rgba(27,41,53,.13);
  border-radius: 24px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 24px 70px rgba(31,45,56,.09);
}
.technical-library-brand {
  display: flex;
  min-height: 250px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(20px,3vw,34px);
  color: #172330;
  border: 1px solid rgba(151,81,145,.22);
  border-radius: 18px;
  background: #fff;
  text-decoration: none;
  transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.technical-library-brand:hover {
  transform: translateY(-3px);
  border-color: rgba(151,81,145,.5);
  box-shadow: 0 18px 40px rgba(53,36,53,.1);
}
.technical-library-brand > span {
  color: #8c6119;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.technical-library-brand img {
  width: 100%;
  max-width: 330px;
  margin: 27px auto 22px;
}
.technical-library-brand small { color: #6d747b; font-size: .74rem; line-height: 1.5; }
.technical-library-content { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
.technical-library-kicker { margin: 0 0 10px; color: #8c6119; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.technical-library-content h3 { max-width: 760px; margin: 0; font-size: clamp(1.55rem,2.5vw,2.35rem); line-height: 1.08; letter-spacing: -.035em; }
.product-lines { display: flex; flex-wrap: wrap; gap: 8px; margin: 23px 0; padding: 0; list-style: none; }
.product-lines li { padding: 8px 12px; color: #33404b; border: 1px solid rgba(28,42,54,.14); border-radius: 999px; background: #f7f5ef; font-size: .74rem; font-weight: 700; }
.document-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.document-links a { display: flex; min-width: 0; flex-direction: column; gap: 4px; padding: 15px 17px; color: #172330; border: 1px solid rgba(27,41,53,.13); border-radius: 12px; background: #fff; text-decoration: none; transition: border-color .2s ease,background .2s ease; }
.document-links a:hover { border-color: rgba(170,119,35,.55); background: #fffaf0; }
.document-links strong { font-size: .83rem; }
.document-links span { color: #6d7780; font-size: .7rem; }
.technical-library-footer { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 18px; }
.technical-library-footer a { color: #765018; font-size: .78rem; font-weight: 800; text-underline-offset: 4px; }
.technical-library-note { display: block; max-width: 850px; margin-top: 17px; color: #707981; font-size: .7rem; line-height: 1.55; }

@media (max-width: 980px) {
  .technical-library { grid-template-columns: 1fr; }
  .technical-library-brand { min-height: 0; }
  .technical-library-brand img { width: min(420px,100%); margin-right: 0; margin-left: 0; }
  .participate-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .participate-grid article { min-height: 320px; }
}

@media (max-width: 680px) {
  .technical-library { padding: 16px; border-radius: 18px; }
  .document-links { grid-template-columns: 1fr; }
  .participate { padding-right: 14px; padding-left: 14px; }
  .participate-grid { grid-template-columns: 1fr; }
  .participate-grid article { min-height: 0; }
}

.site-footer { color: #9da8b2; background: #112536; }

@media (max-width: 980px) {
  .hero { padding-top: 100px; }
  .hero-visual { height: 58%; }
  .hero-visual img { width: 135vw; }
}

@media (max-width: 680px) {
  .hero { min-height: 100svh; padding: 88px 14px 58px; }
  .hero-logo { width: min(560px, 96vw); margin-bottom: -2px; border-radius: 12px; }
  .hero h1 { font-size: clamp(2.05rem, 10.8vw, 3.3rem); }
  .hero .lead { font-size: .95rem; }
  .hero-actions { align-items: stretch; width: min(360px,100%); }
  .hero-actions .button { width: 100%; }
  .hero-meta { font-size: .58rem; }
  .hero-visual { inset: auto -38% -2%; width: 176%; height: 52%; opacity: .58; }
  .hero-visual img { width: 175vw; transform: translateY(12%); }
}

/* Unified hero artwork */
.hero-brand-stage {
  position: relative;
  width: min(1180px, 100vw);
  height: clamp(390px, 35vw, 515px);
  margin: -2px auto -24px;
  isolation: isolate;
}
.hero-brand-stage .hero-visual {
  position: absolute;
  inset: auto auto -27% 50%;
  z-index: 1;
  display: block;
  width: min(1320px, 116vw);
  height: auto;
  overflow: visible;
  opacity: .9;
  transform: translateX(-47%);
  pointer-events: none;
  mask-image: radial-gradient(ellipse 72% 64% at 56% 55%, black 55%, rgba(0,0,0,.82) 75%, transparent 100%);
}
.hero-brand-stage .hero-visual img {
  width: 100%;
  max-width: none;
  margin: 0;
  transform: none;
  filter: saturate(.96) brightness(1.16) drop-shadow(0 28px 55px rgba(0,0,0,.28));
}
.hero-brand-stage .hero-logo {
  position: absolute;
  top: -8%;
  left: 50%;
  z-index: 2;
  width: min(650px, 72vw);
  margin: 0;
  border-radius: 0;
  mix-blend-mode: screen;
  transform: translateX(-50%);
  filter: saturate(1.04) contrast(1.05) drop-shadow(0 28px 44px rgba(0,0,0,.36));
  mask-image: radial-gradient(ellipse 78% 72% at 50% 48%, black 63%, rgba(0,0,0,.9) 78%, transparent 100%);
}
.hero-brand-stage::after {
  content: "";
  position: absolute;
  right: 7%;
  bottom: 7%;
  left: 7%;
  z-index: 3;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(239,198,111,.9), transparent);
  box-shadow: 0 0 24px rgba(225,169,67,.55);
}

/* Simulator 2.0 */
.simulator-grid {
  grid-template-columns: minmax(360px,.88fr) minmax(520px,1.12fr);
  gap: clamp(22px,3vw,42px);
  align-items: stretch;
}
.simulator .sim-preview {
  --reflection: 35%;
  min-height: 610px;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 32px;
  background:
    radial-gradient(circle at 78% 19%, rgba(255,240,173,.62), transparent 18%),
    linear-gradient(145deg, color-mix(in srgb, var(--surface) 72%, white), var(--surface));
  box-shadow: 0 28px 80px rgba(37,48,56,.16), inset 0 1px 0 rgba(255,255,255,.58);
}
.simulator .sim-preview::before {
  z-index: 2;
  background:
    linear-gradient(135deg,rgba(255,255,255,.34),transparent 35%),
    repeating-linear-gradient(118deg,transparent 0 46px,rgba(255,255,255,.09) 47px,transparent 48px);
}
.sim-substrate-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.28) contrast(1.05) brightness(.88);
  transition: opacity .25s ease;
}
.sim-color-wash {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--surface);
  mix-blend-mode: color;
  opacity: .72;
  transition: background .2s ease;
}
.sim-preview-top {
  position: absolute;
  top: 22px;
  right: 22px;
  left: 22px;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: rgba(255,255,255,.9);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.sim-preview-top span { display: flex; align-items: center; gap: 8px; }
.sim-preview-top span i { width: 8px; height: 8px; border-radius: 50%; background: #f3cf7e; box-shadow: 0 0 0 5px rgba(243,207,126,.18); }
.sim-preview-top strong { padding: 8px 12px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: rgba(12,17,23,.16); backdrop-filter: blur(10px); }
.simulator .sim-sun { top: 15%; right: 10%; z-index: 3; width: 130px; opacity: .82; }
.simulator .sim-reflection-dial {
  position: absolute;
  top: 31%;
  left: 50%;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 210px;
  aspect-ratio: 1;
  border-radius: 50%;
  color: white;
  background: conic-gradient(#f2cf7d 0 var(--reflection), rgba(255,255,255,.18) var(--reflection) 100%);
  box-shadow: 0 24px 55px rgba(0,0,0,.22);
  transform: translate(-50%,-50%);
}
.simulator .sim-reflection-dial::before {
  content: "";
  position: absolute;
  inset: 11px;
  border-radius: 50%;
  background: rgba(18,25,32,.78);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter: blur(14px);
}
.sim-reflection-dial > * { position: relative; z-index: 1; }
.sim-reflection-dial > span { color: #d9dfe5; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sim-reflection-dial > strong { margin: 2px 0; font-size: 3.35rem; line-height: 1; }
.sim-reflection-dial > strong small { color: #f2cf7d; font-size: .42em; }
.sim-reflection-dial > em { color: #aeb8c1; font-size: .66rem; font-style: normal; }
.simulator .sim-surface { right: 22px; bottom: 22px; left: 22px; display: flex; align-items: end; justify-content: space-between; }
.simulator .sim-surface strong { letter-spacing: .04em; }
.simulator .sim-room { top: auto; bottom: 112px; left: 22px; z-index: 5; }
.simulator .sim-surface { z-index: 5; }

.simulator .sim-controls {
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 18px;
  padding: clamp(22px,3vw,36px);
  border-radius: 32px;
}
.control-block {
  padding: 22px;
  border: 1px solid rgba(27,41,53,.1);
  border-radius: 20px;
  background: rgba(250,250,248,.76);
}
.control-heading { display: flex; align-items: center; gap: 13px; color: #172330; }
.control-heading > span {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #f7e3b5;
  background: #1b3043;
  font-size: .68rem;
  font-weight: 900;
}
.control-heading > div { display: grid; gap: 2px; }
.control-heading strong { font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; }
.control-heading small { color: #74808a; font-size: .7rem; }
.control-heading > b { margin-left: auto; color: #936218; font-size: 1.25rem; }
.substrate-options {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 8px;
  margin-top: 17px;
}
.substrate-options button {
  min-width: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(27,41,53,.12);
  border-radius: 13px;
  color: #34414c;
  background: white;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.substrate-options button:hover { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(30,42,50,.12); }
.substrate-options button.active { border-color: #a8721d; box-shadow: 0 0 0 2px rgba(183,126,34,.18); }
.substrate-options img { width: 100%; height: 58px; object-fit: cover; filter: saturate(.82); }
.substrate-options span { display: block; padding: 8px 4px; font-size: .67rem; font-weight: 800; line-height: 1.15; }
.substrate-options small { display: block; margin-top: 3px; color: #7a858d; font-size: .55rem; font-weight: 600; }
.color-control { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 17px; }
.simulator .color-picker, .hex-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 6px 8px 6px 14px;
  border: 1px solid rgba(27,41,53,.13);
  border-radius: 14px;
  color: #5c6872;
  background: white;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.simulator .color-picker input { width: 54px; height: 36px; padding: 2px; border: 0; border-radius: 9px; }
.hex-field span { color: #8b949c; }
.hex-field input {
  width: 92px;
  padding: 5px 6px;
  border: 0;
  color: #172330;
  background: transparent;
  font-weight: 800;
  text-align: right;
  text-transform: uppercase;
}
.simulator .swatches { grid-template-columns: repeat(12,1fr); gap: 7px; margin: 17px 0 0; }
.simulator .swatches button { min-width: 0; border-width: 2px; transition: transform .18s ease, box-shadow .18s ease; }
.simulator .swatches button:hover { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(30,42,50,.16); }
.simulator .swatches button.active { border-color: #172330; outline-color: rgba(145,97,22,.45); }
.pigment-block #pigment-strength {
  appearance: none;
  height: 10px;
  margin: 24px 0 10px;
  border-radius: 999px;
  background: linear-gradient(90deg,#b77e22 0 var(--range-progress),#d9dee1 var(--range-progress) 100%);
}
.pigment-block #pigment-strength::-webkit-slider-thumb {
  appearance: none;
  width: 24px;
  height: 24px;
  border: 4px solid white;
  border-radius: 50%;
  background: #bd852d;
  box-shadow: 0 4px 14px rgba(32,42,50,.28);
}
.pigment-block #pigment-strength::-moz-range-thumb {
  width: 17px;
  height: 17px;
  border: 4px solid white;
  border-radius: 50%;
  background: #bd852d;
  box-shadow: 0 4px 14px rgba(32,42,50,.28);
}
.simulator .sim-results { margin-top: 0; }
.simulator .sim-results article { min-height: 126px; padding: 17px; border-radius: 18px; }
.simulator .sim-results .primary-metric { color: white; border-color: #1b3043; background: linear-gradient(145deg,#213a50,#132638); }
.simulator .sim-results .primary-metric span, .simulator .sim-results .primary-metric p { color: #c3ced7; }
.simulator .sim-results .primary-metric strong { color: white; }

@media (max-width: 980px) {
  .hero-brand-stage { height: 470px; }
  .simulator-grid { grid-template-columns: 1fr; }
  .simulator .sim-preview { min-height: 560px; }
}

@media (max-width: 680px) {
  .hero-brand-stage { width: 115vw; height: 330px; margin: 0 -7.5vw -6px; }
  .hero-brand-stage .hero-logo { top: -2%; width: 90vw; }
  .hero-brand-stage .hero-visual { bottom: -18%; width: 176vw; opacity: .84; transform: translateX(-48%); }
  .hero-brand-stage::after { right: 17%; bottom: 8%; left: 17%; }
  .simulator .sim-preview { min-height: 500px; border-radius: 24px; }
  .simulator .sim-reflection-dial { width: 175px; }
  .sim-reflection-dial > strong { font-size: 2.8rem; }
  .simulator .sim-controls { padding: 14px; border-radius: 24px; }
  .control-block { padding: 17px; }
  .color-control { grid-template-columns: 1fr; }
  .simulator .swatches { grid-template-columns: repeat(6,1fr); }
  .substrate-options { grid-template-columns: repeat(2,1fr); }
  .substrate-options button:last-child { grid-column: 1 / -1; }
  .substrate-options img { height: 74px; }
}

/* Cinematic KAWA opening · inspired by the approved city/world composition */
.hero.hero-poster {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  min-height: 100svh;
  margin: 0;
  padding: 82px 0 34px;
  overflow: hidden;
  color: #fff;
  text-align: left;
  background: #03080d;
}
.hero.hero-poster::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(1,6,10,.46) 0%, rgba(2,8,13,.14) 50%, rgba(1,6,10,.46) 100%),
    linear-gradient(180deg, rgba(1,6,10,.36) 0%, transparent 28%, transparent 68%, rgba(1,5,9,.9) 100%);
  pointer-events: none;
  mask-image: none;
}
.hero.hero-poster::after {
  content: "";
  position: absolute;
  right: 4%;
  bottom: 12%;
  left: 24%;
  z-index: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(247,198,91,.95), transparent);
  box-shadow: 0 0 26px rgba(244,169,46,.78);
}
.hero-poster-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hero-poster-scene img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.06) contrast(1.04) brightness(1.03);
  transform: translateX(-18%) scale(1.3);
}
.hero-europe-globe {
  position: absolute;
  top: clamp(150px, 18vh, 210px);
  right: clamp(18px, 3vw, 58px);
  z-index: 1;
  width: clamp(190px, 17vw, 320px);
  aspect-ratio: 1;
  opacity: .32;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 47%, rgba(0,0,0,.88) 61%, transparent 78%);
  mask-image: radial-gradient(circle at 50% 50%, #000 47%, rgba(0,0,0,.88) 61%, transparent 78%);
  filter: saturate(.9) drop-shadow(0 0 24px rgba(231,169,52,.18));
}
.hero-europe-globe img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.hero-poster-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr;
  justify-items: center;
  width: min(1240px, calc(100% - 7vw));
  min-height: calc(100svh - 116px);
  margin: 0 auto;
}
.hero-poster-brand {
  align-self: start;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(900px, 100%);
  padding-top: clamp(8px, 2.5vh, 32px);
}
.hero-poster-logo {
  display: block;
  width: min(650px, 66vw);
  max-width: 100%;
  margin: -6% 0 clamp(8px, 1.4vh, 16px);
  mix-blend-mode: normal;
  filter: drop-shadow(0 22px 44px rgba(0,0,0,.46));
  -webkit-mask-image: none;
  mask-image: none;
}
.hero-poster-descriptor {
  display: flex;
  align-items: center;
  gap: 13px;
  justify-content: center;
  margin: 0 0 24px;
  color: #f2f3f4;
  font-size: clamp(.64rem, .8vw, .78rem);
  font-weight: 600;
  letter-spacing: .17em;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: nowrap;
}
.hero-poster-descriptor::before,
.hero-poster-descriptor::after {
  content: "";
  width: 34px;
  height: 1px;
  background: #e6ae3e;
  box-shadow: 0 0 9px rgba(231,169,52,.55);
}
.hero-poster-pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
  width: min(850px, 100%);
  max-width: none;
  margin: 0;
  padding: 0;
  list-style: none;
}
.hero-poster-pillars li {
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 13px;
  color: #f1f3f4;
  font-size: clamp(.76rem, .98vw, .96rem);
  font-weight: 500;
  letter-spacing: .075em;
  line-height: 1.3;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(0,0,0,.85);
}
.hero-poster-pillars span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: #ffc95b;
  border: 1px solid rgba(242,183,69,.72);
  border-radius: 50%;
  font-size: .57rem;
  font-weight: 800;
  letter-spacing: .06em;
  box-shadow: inset 0 0 12px rgba(237,174,54,.1), 0 0 16px rgba(233,163,40,.08);
}
.hero-poster-note {
  justify-self: center;
  margin: 22px 0 0;
  color: rgba(255,255,255,.88);
  font-size: clamp(.78rem, 1.05vw, 1rem);
  font-weight: 400;
  letter-spacing: .09em;
  line-height: 1.65;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 2px 14px rgba(0,0,0,.75);
}
.hero-poster-note strong {
  display: inline-block;
  padding-bottom: 10px;
  color: #fff;
  border-bottom: 2px solid #e4ad3c;
  font-weight: 500;
}
.hero.hero-poster .hero-poster-claim {
  grid-column: 1 / -1;
  align-self: end;
  justify-self: center;
  width: min(970px, 74vw);
  margin: 0 0 clamp(36px, 6vh, 72px);
  padding-left: 0;
  font-size: clamp(3rem, 5.6vw, 6.1rem);
  font-weight: 750;
  letter-spacing: -.045em;
  line-height: .88;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 5px 25px rgba(0,0,0,.72);
}
.hero.hero-poster .hero-poster-claim span,
.hero.hero-poster .hero-poster-claim em { display: block; }
.hero.hero-poster .hero-poster-claim span {
  color: #f7f8f8;
  background: linear-gradient(180deg, #fff 12%, #eef0f1 48%, #9da4a8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero.hero-poster .hero-poster-claim em {
  color: #f3bd45;
  font-family: inherit;
  font-style: normal;
  font-weight: 780;
  background: linear-gradient(180deg, #fff2ad 4%, #f5c755 48%, #c57a12 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.hero.hero-poster .scroll-cue {
  right: max(22px, 3.5vw);
  bottom: 28px;
  left: auto;
  z-index: 3;
  color: rgba(255,255,255,.72);
  transform: none;
}

@media (max-width: 980px) {
  .hero.hero-poster { min-height: 920px; padding-top: 78px; }
  .hero.hero-poster::before {
    background:
      linear-gradient(90deg, rgba(1,6,10,.5) 0%, rgba(2,8,13,.12) 50%, rgba(1,6,10,.5) 100%),
      linear-gradient(180deg, rgba(1,6,10,.25), transparent 44%, rgba(1,5,9,.92) 100%);
  }
  .hero-poster-grid {
    grid-template-columns: 1fr;
    width: calc(100% - 44px);
    min-height: 808px;
  }
  .hero-poster-scene img {
    object-position: 70% center;
    transform: scale(1.1);
  }
  .hero-europe-globe {
    top: 330px;
    right: -18px;
    width: 210px;
    opacity: .24;
  }
  .hero-poster-logo { width: min(610px, 72vw); }
  .hero.hero-poster .hero-poster-claim { width: 90vw; padding-left: 0; }
}

@media (max-width: 680px) {
  .hero.hero-poster {
    min-height: 920px;
    padding: 78px 0 28px;
  }
  .hero.hero-poster::before {
    background:
      linear-gradient(180deg, rgba(1,6,10,.78) 0%, rgba(1,6,10,.26) 35%, rgba(1,5,9,.62) 62%, rgba(1,5,9,.96) 100%),
      linear-gradient(90deg, rgba(1,6,10,.72), rgba(1,6,10,.12), rgba(1,6,10,.42));
  }
  .hero.hero-poster::after { right: 8%; bottom: 11%; left: 8%; }
  .hero-poster-scene img {
    object-position: 72% center;
    transform: scale(1.08);
  }
  .hero-europe-globe {
    top: 404px;
    right: -32px;
    width: 168px;
    opacity: .19;
  }
  .hero-poster-grid {
    display: flex;
    flex-direction: column;
    width: calc(100% - 28px);
    min-height: 814px;
  }
  .hero-poster-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding-top: 0;
  }
  .hero-poster-logo {
    width: min(500px, 98vw);
    max-width: none;
    margin: -8% -5% 8px;
  }
  .hero-poster-descriptor {
    margin-bottom: 20px;
    font-size: .56rem;
    letter-spacing: .13em;
  }
  .hero-poster-descriptor::before,
  .hero-poster-descriptor::after { width: 22px; }
  .hero-poster-pillars {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 7px 15px;
    width: 100%;
    max-width: 430px;
  }
  .hero-poster-pillars li {
    grid-template-columns: 28px 1fr;
    gap: 7px;
    font-size: .61rem;
    letter-spacing: .04em;
  }
  .hero-poster-pillars span { width: 25px; height: 25px; font-size: .5rem; }
  .hero-poster-note {
    align-self: flex-end;
    margin: 24px 2px 0;
    font-size: .63rem;
    line-height: 1.5;
  }
  .hero.hero-poster .hero-poster-claim {
    width: 100%;
    margin: auto 0 58px;
    padding: 0;
    font-size: clamp(2.55rem, 12vw, 4.1rem);
    line-height: .91;
  }
  .hero.hero-poster .scroll-cue {
    right: 50%;
    bottom: 20px;
    transform: translateX(50%);
  }
}

/* Europa & Innovation */
.europe {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(84px, 10vw, 138px) max(20px, calc((100% - var(--max)) / 2));
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 83% 18%, rgba(210,161,76,.17), transparent 26rem),
    radial-gradient(circle at 14% 86%, rgba(44,105,151,.2), transparent 31rem),
    linear-gradient(145deg, #07111c, #102a3d 56%, #07121d);
}
.europe::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 78px 78px,
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px) 0 0 / 78px 78px;
  mask-image: linear-gradient(135deg, black, transparent 72%);
  pointer-events: none;
}
.europe .section-heading { max-width: 780px; min-height: clamp(290px, 23vw, 340px); }
.europe .section-heading > p:last-child { color: #c0cad3; }
.europe-globe {
  position: absolute;
  top: clamp(42px, 6vw, 86px);
  right: max(20px, calc((100% - var(--max)) / 2 - 12px));
  z-index: 1;
  width: clamp(270px, 30vw, 430px);
  margin: 0;
  pointer-events: none;
}
.europe-globe::before {
  content: "";
  position: absolute;
  inset: 18% 13% 11%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(210,161,76,.22);
  filter: blur(48px);
}
.europe-globe img {
  width: 100%;
  filter: drop-shadow(0 28px 45px rgba(0,0,0,.48));
}
.europe-globe figcaption {
  margin-top: -12px;
  color: #e2c57f;
  font-size: .65rem;
  font-weight: 850;
  letter-spacing: .18em;
  text-align: center;
  text-transform: uppercase;
}
.europe-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
  margin-top: 58px;
}
.europe-lead-card,
.europe-action-card,
.europe-frameworks a {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 26px;
  background: rgba(255,255,255,.055);
  box-shadow: 0 25px 70px rgba(0,0,0,.18);
  backdrop-filter: blur(12px);
}
.europe-lead-card {
  position: relative;
  grid-column: span 7;
  min-height: 450px;
  padding: clamp(30px, 5vw, 58px);
  overflow: hidden;
}
.europe-lead-card::after {
  content: "";
  position: absolute;
  right: -12%;
  bottom: -31%;
  width: 360px;
  aspect-ratio: 1;
  border: 1px solid rgba(241,204,120,.2);
  border-radius: 50%;
  box-shadow: inset 0 0 70px rgba(210,161,76,.08);
}
.europe-card-number { display: block; color: var(--gold-light); font-size: .72rem; font-weight: 900; letter-spacing: .18em; }
.europe-card-kicker { margin: 20px 0 10px; color: var(--gold-light); font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.europe-lead-card h3,
.europe-action-card h3 { max-width: 700px; margin: 0; font-size: clamp(1.8rem, 3.4vw, 3.45rem); line-height: 1.04; letter-spacing: -.04em; }
.europe-lead-card > p:not(.europe-card-kicker),
.europe-action-card > p:not(.europe-card-kicker) { max-width: 690px; color: #c4cdd5; }
.europe-topics { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.europe-topics span { padding: 8px 12px; border: 1px solid rgba(241,204,120,.26); border-radius: 999px; color: #f0dfb4; font-size: .69rem; font-weight: 750; }
.europe-frameworks { grid-column: span 5; display: grid; gap: 20px; }
.europe-frameworks a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 215px;
  padding: 30px;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.europe-frameworks a:hover { transform: translateY(-3px); border-color: rgba(241,204,120,.48); background: rgba(210,161,76,.08); }
.europe-frameworks span { color: #8fa6b9; font-size: .64rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.europe-frameworks strong { margin-top: 11px; color: #f2d18a; font-size: clamp(1.1rem, 1.8vw, 1.48rem); line-height: 1.2; }
.europe-frameworks p { margin: 12px 0; color: #bdc7d0; font-size: .86rem; }
.europe-frameworks em { margin-top: auto; color: #f1cc78; font-size: .68rem; font-style: normal; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.europe-action-card {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: 18px 48px;
  align-items: end;
  padding: clamp(30px, 5vw, 54px);
  border-color: rgba(241,204,120,.28);
  background: linear-gradient(135deg, rgba(210,161,76,.13), rgba(255,255,255,.035));
}
.europe-action-card .europe-card-kicker { grid-column: 1 / -1; margin: 0; }
.europe-action-card h3 { grid-column: 1; }
.europe-action-card > p:not(.europe-card-kicker) { grid-column: 1; margin: 0; }
.europe-actions { grid-column: 2; grid-row: 2 / span 2; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }
.europe-disclosure { position: relative; z-index: 1; max-width: 980px; margin: 24px 0 0; color: #8494a2; font-size: .69rem; }

/* Six balanced knowledge cards */
.knowledge-grid a:nth-child(4) { grid-column: span 2; }

@media (min-width: 981px) and (max-width: 1280px) {
  .site-header { padding-right: 18px; padding-left: 18px; }
  .main-nav { gap: 8px; }
  .main-nav a { font-size: .62rem; }
  .language-picker { padding-inline: 7px; }
}

@media (min-width: 981px) and (max-width: 1180px) {
  .europe .section-heading { max-width: 63%; }
  .europe-globe { width: 31vw; }
}

@media (max-width: 980px) {
  .europe .section-heading { max-width: 100%; min-height: 0; }
  .europe-globe { position: relative; top: auto; right: auto; width: min(430px, 82vw); margin: 38px auto -12px; }
  .europe-lead-card, .europe-frameworks { grid-column: 1 / -1; }
  .europe-action-card { grid-template-columns: 1fr; }
  .europe-action-card .europe-card-kicker,
  .europe-action-card h3,
  .europe-action-card > p:not(.europe-card-kicker),
  .europe-actions { grid-column: 1; grid-row: auto; }
  .europe-actions { justify-content: flex-start; }
  .knowledge-grid a:last-child { grid-column: auto; }
}

@media (max-width: 680px) {
  .europe { padding-right: 14px; padding-left: 14px; }
  .europe-grid { grid-template-columns: 1fr; }
  .europe-lead-card, .europe-frameworks, .europe-action-card { grid-column: 1; }
  .europe-lead-card { min-height: 0; padding: 28px 22px; }
  .europe-frameworks a, .europe-action-card { padding: 25px 22px; }
  .europe-actions { display: grid; width: 100%; }
  .europe-actions .button { width: 100%; }
  .europe-globe { width: min(360px, 94vw); margin-top: 30px; }
  .europe-globe figcaption { font-size: .58rem; letter-spacing: .12em; }
  .knowledge-grid a:nth-child(4) { grid-column: auto; }
}

/* Compact navigation, direct contact and separate project video page. */
.site-header, .site-header.scrolled, .site-header.nav-open { height: 76px; gap: 20px; background: rgba(7,9,13,.96); border-bottom-color: var(--line); backdrop-filter: blur(18px); }
.site-header .main-nav { margin-left: auto; gap: clamp(15px,2vw,28px); }
.site-header .main-nav > a, .nav-more > summary { font-size: .72rem; letter-spacing: .045em; }
.header-actions { display: flex; align-items: center; flex-shrink: 0; gap: 12px; }
.header-phone, .header-contact { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; text-decoration: none; font-size: .76rem; font-weight: 750; white-space: nowrap; }
.header-phone { color: #f1cc78; }
.header-contact { padding: 0 18px; border: 1px solid #d2a14c; border-radius: 999px; background: #f1cc78; color: #10202e; }
.phone-mobile { display: none; }
.nav-more { position: relative; }
.nav-more > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; color: #e5e6e8; font-weight: 750; text-transform: uppercase; cursor: pointer; list-style: none; }
.nav-more > summary::-webkit-details-marker { display: none; }
.nav-more[open] > summary { color: var(--gold-light); }
.nav-more-panel { position: absolute; top: calc(100% + 12px); right: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; width: 530px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #0d1823; box-shadow: var(--shadow); }
.nav-more-panel p { margin: 0 0 8px; color: #a5b2be; font-size: .67rem; letter-spacing: .07em; }
.site-header .nav-more-panel a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; font-size: .75rem; letter-spacing: 0; text-transform: none; }
.nav-more-panel .language-picker { grid-column: 1 / -1; justify-self: start; }
.quick-contact { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px 18px; margin-top: 76px; padding: 9px 16px; color: #dfe6ec; background: #142a3b; font-size: .8rem; }
.quick-contact a { display: inline-flex; align-items: center; min-height: 28px; text-decoration: none; }
.quick-contact a:hover { color: #f1cc78; }
.hero.hero-poster { padding-top: 30px; }
.video-preview { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); align-items: center; gap: 30px; margin-top: 24px; overflow: hidden; padding: 20px; color: #182938; background: #e5e9eb; border: 1px solid #c7d1d7; border-radius: 20px; text-decoration: none; }
.video-preview-image { position: relative; overflow: hidden; border-radius: 12px; }
.video-preview-image img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.video-preview-image > span { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; transform: translate(-50%,-50%); color: #162330; background: #f1cc78; }
.video-preview h3 { margin: 0; font-size: clamp(1.3rem,2.4vw,2rem); line-height: 1.15; }
.video-preview p { margin: 12px 0; }
.video-preview .eyebrow { margin-top: 0; }
.video-preview strong { color: #795217; }
.videos-shell { width: min(1200px,calc(100% - 48px)); margin: 0 auto; }
.videos-intro { padding: 64px 0 56px; background: radial-gradient(circle at 88% 30%,#183851,transparent 55%); }
.videos-intro h1 { margin: 0; font-size: clamp(2.7rem,6vw,5.5rem); line-height: 1.04; letter-spacing: -.045em; }
.videos-intro h1 em { font-family: Georgia,serif; font-weight: 400; color: var(--gold-light); }
.videos-intro p:not(.eyebrow) { max-width: 760px; color: #b9c8d3; }
.videos-intro .button { margin-top: 16px; }
.videos-library { padding: 44px 0 68px; }
.videos-library .video-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; gap: 24px; }
.videos-library video { width: 100%; aspect-ratio: 16/9; object-fit: contain; background: #07090d; }
.videos-library .video-grid figure:last-child { grid-column: 1 / -1; max-width: 760px; width: 100%; justify-self: center; }
.videos-contact { padding: 54px 0; text-align: center; }
.videos-contact h2 { margin-top: 0; font-size: clamp(1.6rem,3vw,2.6rem); }
.videos-contact p { color: #b9c8d3; }
@media (max-width: 1180px) and (min-width: 981px) { .site-header { gap: 14px; padding-inline: 18px; } .header-actions { gap: 10px; } .header-phone { font-size: .69rem; } }
@media (max-width: 980px) {
  .site-header .main-nav { top: 76px; margin: 0; padding: 18px 20px; max-height: calc(100dvh - 76px); overflow-y: auto; gap: 0; }
  .js .site-header .main-nav { visibility: hidden; }
  .js .site-header.nav-open .main-nav { visibility: visible; }
  .site-header .main-nav > a, .nav-more > summary { min-height: 48px; padding: 12px 8px; font-size: .87rem; }
  .nav-more-panel { position: static; width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 8px 0; padding: 16px; box-shadow: none; }
  .site-header .nav-more-panel a { padding: 10px 0; font-size: .82rem; }
  .menu-toggle { min-width: 44px; min-height: 44px; }
  .site-header.nav-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .phone-desktop { display: none; } .phone-mobile { display: inline; }
  .hero.hero-poster { padding-top: 24px; }
  html:not(.js) .site-header { position: relative; flex-wrap: wrap; height: auto; min-height: 76px; }
  html:not(.js) .site-header .main-nav { position: static; order: 3; flex-basis: 100%; transform: none; opacity: 1; pointer-events: auto; }
  html:not(.js) .menu-toggle { display: none; }
  html:not(.js) .quick-contact { margin-top: 0; }
}
@media (max-width: 680px) {
  .site-header { padding-inline: 12px; gap: 8px; }
  .wordmark { gap: 5px; font-size: .76rem; letter-spacing: .1em; }
  .wordmark small { font-size: .5rem; }
  .header-actions { gap: 6px; }
  .header-phone, .header-contact { font-size: .7rem; }
  .header-contact { padding-inline: 12px; }
  .header-phone { gap: 5px; }
  .quick-contact { gap: 0 8px; padding: 7px 12px; font-size: .74rem; }
  .video-preview { grid-template-columns: 1fr; gap: 18px; padding: 16px; }
  .video-preview-image img { aspect-ratio: 16/7; }
  .videos-shell { width: calc(100% - 28px); }
  .videos-intro { padding: 36px 0 32px; }
  .videos-library { padding-block: 28px 44px; }
  .videos-library .video-grid { grid-template-columns: 1fr; gap: 18px; }
  .videos-library .video-grid figure:last-child { grid-column: auto; }
  .videos-contact .hero-actions { width: 100%; }
  #contact-form input, #contact-form select, #contact-form textarea { font-size: 16px; max-width: 100%; }
}
@media (max-width: 420px) {
  .nav-more-panel { grid-template-columns: 1fr; }
  .header-phone > span[aria-hidden] { display: none; }
  .menu-toggle { padding-inline: 8px; }
}

/* A concise first impression with a clear purpose. */
.hero.hero-poster { min-height: 720px; padding: 30px 0 70px; }
.hero.hero-poster .hero-poster-grid { display: flex; flex-direction: column; align-items: center; min-height: 0; gap: 22px; }
.hero.hero-poster .hero-poster-brand { width: 100%; padding-top: 0; }
.hero.hero-poster .hero-poster-logo { width: min(460px,70vw); max-width: 100%; margin: 0; }
.hero.hero-poster .hero-poster-descriptor { margin: 4px 0 0; font-size: .7rem; letter-spacing: .18em; }
.hero.hero-poster .hero-poster-claim { width: min(1000px,100%); margin: 0; font-size: clamp(2.1rem,5.2vw,4.6rem); line-height: 1.08; letter-spacing: -.045em; text-transform: none; white-space: normal; }
.hero-purpose { width: min(740px,100%); padding: 0 10px; text-align: center; }
.hero-purpose > p { margin: 0 0 12px; color: #f0f2f4; font-size: clamp(.94rem,1.3vw,1.1rem); line-height: 1.65; text-shadow: 0 2px 12px #05090e; }
.hero-purpose > p + p { color: #c3cfda; }
.hero-purpose > .hero-measurement { color: #f0d697; font-size: clamp(1.05rem,1.7vw,1.35rem); line-height: 1.5; }
.hero-purpose > .hero-measurement-context { font-size: .85rem; line-height: 1.6; }
.hero-measurement-context a { color: #f0d697; text-decoration: underline; text-underline-offset: 3px; }
.hero-measurement-context a:focus-visible { outline: 2px solid #f0d697; outline-offset: 3px; }
.hero-purpose .hero-actions { width: 100%; justify-content: center; }
.hero.hero-poster::before { background: linear-gradient(180deg,rgba(2,8,13,.45),rgba(2,8,13,.72) 64%,rgba(2,8,13,.96)),linear-gradient(90deg,rgba(2,8,13,.45),transparent,rgba(2,8,13,.45)); }
.hero.hero-poster .hero-europe-globe { top: 40px; right: 20px; opacity: .22; }
@media (max-width: 680px) {
  .hero.hero-poster { min-height: 0; padding: 24px 0 68px; }
  .hero.hero-poster .hero-poster-grid { width: calc(100% - 28px); gap: 20px; }
  .hero.hero-poster .hero-poster-logo { width: min(310px,90vw); }
  .hero.hero-poster .hero-poster-claim { font-size: clamp(1.65rem,7.8vw,2.9rem); }
  .hero.hero-poster .hero-poster-descriptor { font-size: .6rem; letter-spacing: .12em; }
  .hero-purpose { padding: 0; }
  .hero-purpose .hero-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .hero-purpose .button { width: 100%; min-height: 48px; }
  .hero.hero-poster .hero-europe-globe { width: 120px; top: 160px; right: 0; opacity: .15; }
  .hero.hero-poster .scroll-cue { font-size: .7rem; right: 16px; bottom: 20px; }
}

/* A quieter, compact homepage with progressively disclosed technical detail. */
.home-page .hero.hero-poster { min-height: 550px; padding: 36px 0 72px; }
.home-page .hero.hero-poster .hero-poster-grid { width: min(1240px,calc(100% - 80px)); align-items: flex-start; gap: 20px; }
.home-page .hero.hero-poster .hero-poster-brand { width: min(360px,100%); align-items: center; }
.home-page .hero.hero-poster .hero-poster-logo { width: 360px; filter: none; }
.home-page .hero.hero-poster .hero-poster-descriptor { width: 100%; justify-content: center; text-align: center; font-size: .88rem; letter-spacing: .12em; line-height: 1.5; margin-top: 12px; white-space: normal; }
.home-page .hero-poster-descriptor::before,.home-page .hero-poster-descriptor::after { display: none; }
.home-page .hero.hero-poster .hero-poster-claim { width: min(660px,63%); font-size: clamp(2.5rem,4.5vw,4.5rem); font-weight: 500; line-height: 1.08; letter-spacing: -.045em; text-align: left; text-shadow: none; }
.home-page .hero.hero-poster .hero-poster-claim span { color: #f7f5ef; background: none; -webkit-text-fill-color: currentColor; }
.home-page .hero.hero-poster .hero-poster-claim em { color: #e0c181; background: none; -webkit-text-fill-color: currentColor; font-family: Georgia,serif; font-weight: 400; font-style: italic; }
.home-page .hero-purpose { width: min(470px,48%); padding: 0; text-align: left; }
.home-page .hero-purpose > p { color: #d0d9df; font-size: 1rem; line-height: 1.65; margin-bottom: 24px; text-shadow: none; }
.home-page .hero-purpose .hero-actions { justify-content: flex-start; align-items: center; gap: 18px; }
.home-page .hero-purpose .button { min-height: 46px; padding: 13px 20px; border-radius: 5px; font-size: .78rem; }
.home-page .hero-text-link { padding: 12px 0; color: #e2e7ea; font-size: .8rem; text-underline-offset: 5px; }
.home-page .hero-poster-scene img { transform: none; object-position: center right; filter: saturate(.78); }
.home-page .hero.hero-poster::before { background: linear-gradient(90deg,#03080d 0%,rgba(3,8,13,.92) 25%,rgba(3,8,13,.35) 60%,rgba(3,8,13,.08) 100%); }
.home-page .hero.hero-poster::after { display: none; }
.home-page .hero.hero-poster .hero-europe-globe { top: 28px; right: 28px; width: 90px; opacity: .16; }
.home-page .proof-strip { grid-template-columns: repeat(3,minmax(0,1fr)); }
.home-page .proof-strip article { min-width: 0; padding: 24px 18px; border-bottom: 0; }
.home-page .proof-strip article strong { font-size: clamp(1.3rem,2.5vw,2rem); font-weight: 500; letter-spacing: -.035em; }
.home-page .proof-strip article span { font-size: .74rem; line-height: 1.5; }
.home-page .proof-strip > p { padding: 10px 16px; }
.home-page .proof-strip > p a { color: #4d5f6b; text-underline-offset: 3px; }
.home-page :is(.technology,.simulator,.structure,.team,.practice,.participate,.reports,.contact,.europe) { padding-block: clamp(36px,5vw,64px); }
.home-page .section-heading h2,.home-page .contact h2 { font-size: clamp(1.8rem,3.2vw,3rem); font-weight: 500; line-height: 1.1; }
.home-page .section-heading > p:last-child,.home-page .contact-grid > div > p { margin-top: 16px; font-size: 1rem; line-height: 1.6; max-width: 650px; }
.home-page .section-heading .eyebrow { margin-bottom: 10px; font-size: .65rem; }
.home-page .home-fold { position: relative; z-index: 2; min-width: 0; color: inherit; }
.home-page .home-fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 52px; padding: 16px 0; border-top: 1px solid currentColor; list-style: none; font-size: .9rem; cursor: pointer; }
.home-page .home-fold > summary::-webkit-details-marker { display: none; }
.home-page .home-fold > summary > span[aria-hidden] { flex: 0 0 auto; font-size: 1.4rem; font-weight: 400; }
.home-page .home-fold[open] > summary > span[aria-hidden] { transform: rotate(45deg); }
.home-page .home-fold > summary:focus-visible,.home-page .hero-text-link:focus-visible { outline: 2px solid #b38a41; outline-offset: 5px; }
.home-page .section-fold > summary { border-top: 0; padding-block: 0; }
.home-page .section-fold > summary h2 { margin: 0; font-size: clamp(1.2rem,2vw,1.65rem); line-height: 1.3; font-weight: 500; letter-spacing: -.025em; }
.home-page .knowledge { padding-inline: max(20px,calc((100% - var(--max)) / 2)); }
.home-page :is(.simulator,.structure,.participate,.knowledge,.reports):has(> .section-fold) { padding-block: 22px; }
.home-page .fold-content { padding-top: 26px; }
.home-page .evidence-fold { margin-top: 28px; }
.home-page .evidence-layout { margin-top: 24px; }
.home-page .europe .section-heading { width: calc(100% - 220px); max-width: 760px; min-height: 175px; }
.home-page .europe-globe { width: 185px; top: 30px; }
.home-page .europe-globe figcaption { margin-top: 0; font-size: .5rem; }
.home-page .europe-grid { margin-top: 22px; }
.home-page .team-grid { gap: 16px; margin-top: 26px; }
.home-page .team-card { box-shadow: none; }
.home-page .team-card .portrait { aspect-ratio: 4/3; }
.home-page .team-card > p { margin-top: 10px; font-size: .8rem; }
.home-page .team-card > h3 { font-size: 1.2rem; }
.home-page .project-grid { margin-top: 28px; }
.home-page .media-gallery,.home-page .gallery-intro { margin-top: 40px; }
.home-page .media-grid { gap: 12px; }
.home-page .media-card { padding: 12px; }
.home-page .media-card p { display: none; }
.home-page .current-section { margin-top: 40px; padding: 24px; border-radius: 12px; }
.home-page .current-heading h3 { font-size: clamp(1.4rem,2.4vw,2rem); }
.home-page .current-heading > p { font-size: .85rem; }
.home-page .news-fold { margin-top: 18px; }
.home-page .gallery-grid { gap: 9px; margin-top: 20px; }
.home-page .gallery-card { aspect-ratio: 4/3; border-radius: 6px; }
.home-page .contact-grid { gap: 36px; }
.home-page .contact-links { margin-top: 20px; }
.home-page .contact-fold { align-self: start; }
.home-page #contact-form { margin-top: 12px; box-shadow: none; }
@media (max-width: 980px) {
  .home-page .hero.hero-poster .hero-poster-grid { width: calc(100% - 48px); }
  .home-page .hero.hero-poster .hero-poster-claim { width: 72%; }
  .home-page .hero-purpose { width: 58%; }
  .home-page .proof-strip { padding-inline: 10px; }
}
@media (max-width: 680px) {
  .home-page .hero.hero-poster { min-height: 490px; padding: 28px 0 64px; }
  .home-page .hero.hero-poster .hero-poster-grid { width: calc(100% - 36px); gap: 22px; }
  .home-page .hero.hero-poster .hero-poster-brand { width: min(230px,100%); }
  .home-page .hero.hero-poster .hero-poster-logo { width: 230px; }
  .home-page .hero.hero-poster .hero-poster-descriptor { font-size: .72rem; letter-spacing: .08em; }
  .home-page .hero.hero-poster .hero-poster-claim { width: 100%; max-width: 470px; font-size: clamp(2rem,8vw,3rem); }
  .home-page .hero-purpose { width: 100%; max-width: 340px; }
  .home-page .hero-purpose > p { font-size: .94rem; }
  .home-page .hero-purpose .hero-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; }
  .home-page .hero-purpose .button { width: auto; }
  .home-page .hero-poster-scene img { object-position: 68% center; opacity: .6; }
  .home-page .hero.hero-poster::before { background: linear-gradient(90deg,rgba(3,8,13,.94),rgba(3,8,13,.58)),linear-gradient(0deg,rgba(3,8,13,.45),transparent 70%); }
  .home-page .hero.hero-poster .hero-europe-globe { width: 70px; top: 24px; right: 14px; }
  .home-page .proof-strip article { padding: 19px 9px; border-right: 1px solid rgba(20,35,48,.12); }
  .home-page .proof-strip article:last-of-type { border-right: 0; }
  .home-page .proof-strip article strong { font-size: clamp(.98rem,4.4vw,1.4rem); white-space: nowrap; }
  .home-page .proof-strip article span { font-size: .62rem; margin-top: 8px; }
  .home-page .proof-strip > p { font-size: .62rem; line-height: 1.6; }
  .home-page .europe .section-heading { width: calc(100% - 120px); min-height: 160px; }
  .home-page .europe .section-heading > p { font-size: .85rem; }
  .home-page .europe-globe { width: 115px; top: 45px; right: 8px; }
  .home-page .europe-globe figcaption { display: none; }
  .home-page .team-grid { grid-template-columns: 1fr; gap: 10px; }
  .home-page .team-card { display: grid; grid-template-columns: 96px minmax(0,1fr); align-content: center; padding: 0; }
  .home-page .team-card .portrait { grid-column: 1; grid-row: 1 / 5; width: 96px; height: 136px; aspect-ratio: auto; }
  .home-page .team-card > :not(.portrait) { grid-column: 2; margin-left: 14px; margin-right: 10px; }
  .home-page .team-card > h3 { margin-top: 4px; margin-bottom: 4px; font-size: 1rem; line-height: 1.25; }
  .home-page .team-card > strong { display: block; font-size: .6rem; line-height: 1.4; }
  .home-page .team-card > span { margin-top: 10px; font-size: .52rem; }
  .home-page .team-card > p { margin-top: 7px; margin-bottom: 10px; font-size: .7rem; }
  .home-page .team-card .portrait > span { inset: auto 5px 5px; padding: 5px; font-size: .45rem; text-align: center; }
  .home-page .media-grid,.home-page .gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
  .home-page .media-card { padding: 6px; }
  .home-page .media-card h4 { font-size: .7rem; }
  .home-page .media-card > span { font-size: .5rem; }
  .home-page .gallery-card span { padding: 18px 6px 6px; font-size: .48rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .home-page .current-section { padding: 20px 14px; }
  .home-page .current-heading { gap: 10px; }
}
