@font-face {
  font-family:Manrope;
  src:url('../fonts/manrope.e1d842db4a11.woff') format('woff');
  font-weight:200 800;
  font-style:normal;
  font-display:swap
}
:root {
  --ink:#002453;
  --muted:#6b809c;
  --teal:#1a8ede;
  --teal-deep:#066aab;
  --line:#e2ebf3;
  --page-gutter:clamp(28px,4.1vw,80px);
  --header-height:76px
}
* {
  box-sizing:border-box
}
html {
  min-height:100%;
  scroll-behavior:smooth;
  background:#f9fcff
}
body {
  margin:0;
  min-width:280px;
  color:var(--ink);
  font-family:Manrope,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  position:relative;
  isolation:isolate;
  background:radial-gradient(ellipse at 91% 1%,#e5f2ff9c 0,transparent 34%),radial-gradient(ellipse at 14% 82%,#e3f3ff57 0,transparent 32%),linear-gradient(120deg,#fff 10%,#f8fcff 76%,#f0f8ff 100%)
}
body::before,body::after {
  content:"";
  position:fixed;
  z-index:-1;
  pointer-events:none;
  border-radius:50%;
  border:1px solid #d8e9f8
}
body::before {
  width:450px;
  height:450px;
  right:-240px;
  top:-260px
}
body::after {
  width:480px;
  height:480px;
  left:-350px;
  bottom:-365px;
  border-color:#cce4f3
}
button,input {
  font:inherit
}
button {
  cursor:pointer
}
button,summary {
  -webkit-tap-highlight-color:transparent
}
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible {
  outline:2px solid var(--teal-deep);
  outline-offset:4px
}
button:disabled {
  cursor:default
}
[hidden] {
  display:none!important
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.icon {
  display:block;
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none
}
.icon-definitions {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.page-shell {
  max-width:1840px;
  min-height:100svh;
  margin:auto;
  padding:0 var(--page-gutter)
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  height:var(--header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  isolation:isolate
}
.site-header::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 calc(-1 * var(--page-gutter));
  background:#f9fcffe8;
  backdrop-filter:blur(14px);
  border-bottom:1px solid transparent
}
body.is-scrolled .site-header::before {
  border-bottom-color:#e2ebf3b3
}
.brand {
  display:block;
  width:178px;
  height:auto;
  aspect-ratio:524/92;
  overflow:visible
}
.header-tools {
  display:flex;
  align-items:center;
  gap:22px
}
.section-nav {
  display:flex;
  align-items:center;
  gap:25px
}
.nav-link {
  display:flex;
  align-items:center;
  gap:8px;
  position:relative;
  min-height:36px;
  text-decoration:none;
  color:#8193a7;
  font-size:11px;
  font-weight:600;
  white-space:nowrap
}
.nav-number {
  font-size:9px;
  font-variant-numeric:tabular-nums;
  letter-spacing:.3px;
  opacity:.7
}
.nav-link::after {
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:2px;
  border-radius:2px;
  background:var(--teal);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}
.nav-link:hover,.nav-link.is-active {
  color:var(--ink)
}
.nav-link.is-active::after {
  transform:scaleX(1)
}
.tool-divider {
  width:1px;
  height:19px;
  background:#dce7f1
}
.fullscreen-button {
  border:1px solid #dfebf5;
  border-radius:11px;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  color:#5c7492;
  background:#ffffffa1
}
.fullscreen-button .icon {
  width:17px;
  height:17px
}
.fullscreen-button:hover {
  background:#fff;
  color:var(--ink);
  border-color:#becfdf
}
.presentation-panel {
  scroll-margin-top:var(--header-height)
}
.site-footer {
  height:32px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px
}
.section-index {
  display:flex;
  align-items:center;
  gap:11px;
  color:#8c9db0;
  font-size:9px;
  line-height:1.5;
  letter-spacing:.2px
}
.section-index strong {
  font-size:10px;
  font-weight:700;
  color:#4c8194
}
.index-line {
  width:27px;
  height:1px;
  background:#bedced
}
.section-next {
  display:flex;
  align-items:center;
  gap:8px;
  color:#5c8798;
  text-decoration:none;
  font-size:10px;
  font-weight:600;
  line-height:1.5;
  padding:0 0 6px
}
.section-next:hover {
  color:var(--teal-deep)
}
.section-next .icon {
  width:14px;
  height:14px
}
.section-kicker {
  margin:0 0 9px;
  display:flex;
  align-items:center;
  gap:9px;
  color:#66809c;
  font-size:9px;
  line-height:1.4;
  font-weight:750;
  letter-spacing:1.6px;
  text-transform:uppercase
}
.kicker-line {
  width:25px;
  height:2px;
  border-radius:2px;
  background:var(--teal)
}
.history-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px
}
.history-title {
  margin:0;
  font-size:clamp(30px,2.65vw,43px);
  font-weight:750;
  line-height:1.2;
  letter-spacing:-1.3px
}
.history-title span {
  color:var(--teal-deep)
}
.section-caption {
  font-size:10px;
  line-height:1.5;
  letter-spacing:.3px;
  color:#8299ad;
  padding-bottom:5px
}
/* Map, geographic detail controls and learning-level components. */
.overview.map-overview {
  min-height:calc(100svh - var(--header-height) - 32px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:8px 0
}
.network {
  position:relative;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  --map-width:min(100%,1180px,calc((100svh - 245px)*2.24))
}
.map-stage {
  width:var(--map-width);
  position:relative;
  isolation:isolate;
  aspect-ratio:1019.48/455.06;
  margin:0 auto;
  display:grid;
  align-items:center
}
.map-stage::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:4% 0 -7%;
  background:radial-gradient(ellipse at 50% 54%,#c8e5fa91,transparent 67%);
  pointer-events:none
}
.map-stage::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:68%;
  height:72%;
  left:15%;
  top:15%;
  border:1px solid #cce4f363;
  border-radius:50%;
  transform:rotate(-14deg);
  pointer-events:none
}
.map-stage>svg {
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 14px 13px #086bb02a) drop-shadow(0 3px 3px #00245315)
}
.map-stage .province {
  fill:url(#mapDotFill);
  stroke:#fff;
  stroke-width:1.4;
  transition:fill .15s;
  outline:none
}
.map-stage .province.is-active {
  fill:var(--teal);
  cursor:pointer
}
.map-stage .province.is-active:hover,.map-stage .province.is-active:focus-visible,.map-stage .province.is-active.is-pointed {
  fill:#066aab
}
.map-stage .province.is-active:focus-visible {
  stroke:#002453;
  stroke-width:2
}
.map-footer {
  position:relative;
  width:var(--map-width);
  margin:6px auto 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 3px
}
.map-legend {
  display:flex;
  align-items:center;
  gap:7px;
  color:#718b9f;
  font-size:10px;
  line-height:1.5
}
.swatch {
  width:6px;
  height:6px;
  background:var(--teal);
  border-radius:2px;
  flex:none
}
.cities-toggle {
  display:flex;
  align-items:center;
  gap:6px;
  border:0;
  background:transparent;
  padding:2px 0 2px 10px;
  color:#688099;
  font-size:10px;
  font-weight:600;
  line-height:1.5
}
.cities-toggle .icon {
  width:13px;
  height:13px;
  transition:transform .2s
}
.cities-toggle[aria-expanded="true"] .icon {
  transform:rotate(180deg)
}
.cities-toggle:hover {
  color:var(--teal-deep)
}
.network-metrics {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  max-width:980px;
  margin:10px auto 0;
  padding:10px 20px;
  background:#ffffffdf;
  border:1px solid #dce9f2;
  border-radius:16px;
  box-shadow:0 9px 28px -21px #00245325
}
.network-stat {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:13px;
  min-width:0
}
.network-stat+.network-stat {
  border-left:1px solid #e0eaf2
}
.icon-tile {
  width:34px;
  height:34px;
  border-radius:11px;
  display:grid;
  place-items:center;
  color:#167eba;
  background:linear-gradient(140deg,#e6f4fd,#eff8fd);
  flex:none
}
.icon-tile .icon {
  width:20px;
  height:20px
}
.network-value {
  display:flex;
  align-items:baseline;
  gap:9px;
  line-height:1.1;
  white-space:nowrap
}
.network-value strong {
  font-size:32px;
  font-weight:750;
  letter-spacing:-1.1px;
  font-variant-numeric:tabular-nums
}
.network-value span {
  font-size:12px;
  font-weight:550;
  color:#5a728d
}
.education-section {
  max-width:936px;
  margin:12px auto 0
}
.education-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-bottom:8px
}
.education-heading h3 {
  margin:0;
  font-size:9px;
  line-height:1.5;
  font-weight:700;
  color:#6e849d;
  letter-spacing:1.1px;
  text-transform:uppercase
}
.text-action {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  font-weight:650;
  line-height:1.5;
  color:#066aab;
  border:0;
  background:transparent;
  padding:2px 0;
  white-space:nowrap
}
.text-action .icon {
  width:13px;
  height:13px
}
.text-action .arrow {
  width:12px;
  height:12px
}
.text-action:hover {
  color:#045184
}
.education-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.education-stat {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  min-width:0
}
.education-stat+.education-stat {
  border-left:1px solid #e0eaf1
}
.education-icon {
  width:25px;
  display:grid;
  place-items:center;
  color:#7093aa;
  flex:none
}
.education-icon .icon {
  width:21px;
  height:21px;
  stroke-width:1.6
}
.education-stat>div {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0
}
.education-stat strong {
  font-size:21px;
  line-height:1.1;
  letter-spacing:-.5px;
  font-weight:700;
  font-variant-numeric:tabular-nums
}
.education-stat>div>span {
  font-size:10px;
  line-height:1.4;
  color:#637b93;
  font-weight:500
}
.network-note {
  max-width:936px;
  margin:9px auto 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  color:#899caa;
  font-size:8px;
  line-height:1.5
}
.network-note .text-action {
  font-size:8px
}
.city-list {
  position:absolute;
  z-index:35;
  left:50%;
  bottom:calc(100% + 12px);
  transform:translateX(-50%);
  width:min(760px,100%);
  max-height:330px;
  overflow-y:auto;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  border:1px solid #dcebf1;
  border-radius:17px;
  padding:16px;
  background:#fffffff7;
  backdrop-filter:blur(14px);
  box-shadow:0 15px 42px #00245324
}
.city-chip {
  border:1px solid #e4eff3;
  background:#f7fbfc;
  color:#4d6983;
  border-radius:8px;
  text-align:left;
  padding:8px;
  font-size:10px;
  display:flex;
  gap:7px;
  align-items:center;
  justify-content:space-between
}
.city-chip strong {
  color:#066aab;
  font-size:10px;
  font-weight:650
}
.city-chip:hover {
  background:#eaf6fd;
  border-color:#bde4f9
}
/* V1 and V2 intentionally share every card and layout measurement. */
.prepandemic-overview,.evolution-overview {
  min-height:calc(100svh - var(--header-height) - 32px);
  display:flex;
  align-items:flex-start;
  padding:18px 0
}
.prepandemic-content,.evolution-content {
  width:100%;
  min-width:0
}
.activity-timeline {
  --timeline-gap:24px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--timeline-gap);
  row-gap:18px;
  list-style:none;
  margin:20px 0 0;
  padding:0
}
.activity-item {
  min-width:0
}
.activity-photo,.activity-illustration,.activity-placeholder {
  position:relative;
  display:block;
  width:100%;
  height:clamp(145px,calc((100svh - 390px)/2),340px);
  border:1px solid #dce8ef;
  border-radius:13px;
  padding:0;
  overflow:hidden;
  background:#edf3f6;
  box-shadow:0 10px 25px -20px #00245350
}
.activity-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center
}
.activity-illustration {
  background:linear-gradient(135deg,#f1f8fd,#e8f4fc);
  border-color:#dcecf7;
  box-shadow:none
}
.activity-illustration>svg {
  display:block;
  width:100%;
  height:100%
}
.photo-expand {
  position:absolute;
  right:8px;
  bottom:8px;
  width:24px;
  height:24px;
  border-radius:7px;
  display:grid;
  place-items:center;
  color:#365777;
  background:#ffffffed;
  box-shadow:0 2px 9px #00245318
}
.photo-expand .icon {
  width:13px;
  height:13px
}
.activity-photo:hover .photo-expand {
  color:var(--teal-deep);
  background:#fff
}
.activity-placeholder {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#89a9b5;
  background:linear-gradient(132deg,#f3fafc,#eaf5f8);
  border-style:dashed;
  border-color:#c9e0e6;
  box-shadow:none;
  font-size:10px;
  letter-spacing:.4px
}
.placeholder-frame {
  display:grid;
  place-items:center;
  width:49px;
  height:40px;
  color:#95b9c3
}
.placeholder-frame .icon {
  width:37px;
  height:37px;
  stroke-width:1.1
}
.activity-connector {
  position:relative;
  height:22px;
  display:grid;
  place-items:center;
  isolation:isolate
}
.activity-connector::before {
  content:"";
  position:absolute;
  z-index:-1;
  height:1px;
  top:50%;
  left:calc(var(--timeline-gap)/-2);
  right:calc(var(--timeline-gap)/-2);
  background:#cfe2f2
}
.activity-item:nth-child(3n+1) .activity-connector::before {
  left:50%
}
.activity-item:nth-child(3n) .activity-connector::before {
  right:50%
}
.activity-node {
  width:19px;
  height:19px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f8fcff;
  border:1px solid #bdddf2;
  box-shadow:0 0 0 4px #f8fcff;
  color:#066aab;
  font-size:8px;
  font-weight:700;
  letter-spacing:.1px
}
.activity-heading {
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-height:46px;
  padding:2px 2px 0
}
.activity-symbol {
  display:grid;
  place-items:center;
  flex:none;
  width:32px;
  height:32px;
  border-radius:10px;
  border:1px solid #cfe6f7;
  background:#eaf6fd;
  color:#066aab
}
.activity-symbol .icon {
  width:19px;
  height:19px;
  stroke-width:1.7
}
.activity-title {
  margin:0;
  padding-top:3px;
  color:#284565;
  font-size:15px;
  line-height:1.45;
  letter-spacing:-.18px;
  font-weight:650;
  text-wrap:pretty
}
.photo-label {
  position:absolute;
  left:9px;
  bottom:9px;
  border:1px solid #d7e7ed;
  border-radius:7px;
  padding:5px 8px;
  background:#fffffff0;
  color:#315875;
  font-size:10px;
  line-height:1.35;
  font-weight:650;
  box-shadow:0 2px 9px #00245318;
  pointer-events:none
}
/* Output figures from the supplied final-page PDF. */
.results-overview {
  min-height:calc(100svh - var(--header-height) - 32px);
  display:flex;
  align-items:center;
  padding:22px 0
}
.results-content {
  width:100%;
  max-width:1280px;
  margin:0 auto
}
.results-production {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:17px;
  margin-top:28px
}
.result-card {
  background:#ffffffd9;
  border:1px solid #dfeaf2;
  border-radius:17px;
  padding:19px 23px 21px;
  box-shadow:0 10px 28px -24px #00245340
}
.result-icon {
  width:32px;
  height:32px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#edf6fb;
  color:#3a8eab;
  margin-bottom:17px
}
.result-icon .icon {
  width:19px;
  height:19px
}
.result-card>strong {
  display:block;
  font-size:clamp(38px,3.9vw,58px);
  font-weight:700;
  letter-spacing:-1.8px;
  line-height:1.05;
  font-variant-numeric:tabular-nums
}
.result-card h3 {
  margin:9px 0 0;
  color:#607b94;
  font-size:12px;
  line-height:1.5;
  font-weight:600
}
.results-finance {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:18px
}
.result-finance {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid #c9e2f3;
  border-radius:18px;
  background:linear-gradient(118deg,#e6f4fd,#edf7fd 65%,#dff0fc);
  padding:21px 25px 23px
}
.result-finance::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:220px;
  height:220px;
  right:-90px;
  bottom:-155px;
  border:1px solid #a9d6f177;
  border-radius:50%;
  box-shadow:0 0 0 25px #bfdef41c,0 0 0 50px #bfdef420
}
.result-finance.investment {
  background:linear-gradient(118deg,#edf5fc,#f4f9fd 65%,#e5f2fa);
  border-color:#d5e6f2
}
.result-finance-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px
}
.result-finance h3 {
  display:flex;
  align-items:center;
  gap:9px;
  margin:0;
  font-size:12px;
  font-weight:650;
  color:#387fae
}
.result-finance h3 .icon {
  width:18px;
  height:18px
}
.project-badge {
  border:1px solid #c8e1f3;
  border-radius:20px;
  background:#ffffff70;
  padding:4px 10px;
  font-size:9px;
  color:#4785ad;
  font-weight:650
}
.result-finance p {
  display:flex;
  align-items:baseline;
  gap:10px;
  margin:22px 0 0;
  color:#066aab;
  white-space:nowrap
}
.result-finance p strong {
  font-size:clamp(32px,3.75vw,56px);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-1.8px;
  font-variant-numeric:tabular-nums
}
.result-finance p>span {
  font-size:12px;
  font-weight:650;
  letter-spacing:.5px;
  color:#5c8ead
}
.investment p {
  color:#2b6395
}
.investment p>span,.investment h3 {
  color:#6087a9
}
.investment .project-badge {
  border-color:#cfdfed;
  color:#698ba6
}
.finance-rule {
  height:2px;
  width:34px;
  background:#72b9e8;
  border-radius:2px;
  margin-top:18px
}
.investment .finance-rule {
  background:#84b6d9
}
.results-source {
  font-size:9px;
  line-height:1.5;
  color:#92a4b3;
  margin:14px 0 0
}
.results-content .education-section {
  break-inside:avoid;
  max-width:none;
  margin:18px 0 0;
  padding:15px 22px 17px;
  border:1px solid #dfeaf2;
  border-radius:16px;
  background:#ffffffd9;
  box-shadow:0 10px 28px -24px #00245340
}
.results-content .education-heading {
  margin-bottom:13px
}
.results-content .education-heading h3 {
  margin:0;
  font-size:10px
}
.results-content .education-stat strong {
  font-size:25px
}
.results-content .education-stat>div>span {
  font-size:10px
}
.results-content .education-icon .icon {
  width:23px;
  height:23px
}
/* City details remain interactive while the pointer moves off the map. */
.map-tooltip {
  position:fixed;
  z-index:50;
  width:min(375px,calc(100vw - 24px));
  max-height:min(470px,calc(100svh - 104px));
  display:flex;
  flex-direction:column;
  background:#fffffff5;
  border:1px solid #d6e8ee;
  border-radius:17px;
  box-shadow:0 18px 55px #00245326;
  backdrop-filter:blur(20px);
  overflow:hidden
}
.tooltip-header {
  padding:17px 18px 10px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px
}
.tooltip-eyebrow {
  font-size:8px;
  letter-spacing:1.4px;
  color:#4c8cb4;
  margin:0 0 5px;
  font-weight:750
}
.tooltip-header h2 {
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.5px;
  margin:0
}
.tooltip-header p:last-child {
  font-size:11px;
  color:#5e8198;
  margin:8px 0 0
}
.tooltip-hint {
  font-size:9px;
  line-height:1.4;
  color:#8ba0af;
  padding:0 18px 10px;
  margin:0
}
.tooltip-universities {
  overflow-y:auto;
  min-height:0;
  padding:0 10px 10px;
  scrollbar-width:thin;
  scrollbar-color:#c9dfef transparent
}
.university-details {
  border-top:1px solid #e7eff3
}
.university-details summary {
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 8px;
  list-style:none;
  cursor:pointer;
  font-size:11px;
  line-height:1.5
}
.university-details summary::-webkit-details-marker {
  display:none
}
.university-name {
  flex:1;
  min-width:0;
  font-weight:600
}
.university-details summary>strong {
  font-size:12px;
  color:#066aab;
  font-variant-numeric:tabular-nums
}
.university-chevron {
  width:6px;
  height:6px;
  border-right:1px solid #8da4b4;
  border-bottom:1px solid #8da4b4;
  transform:rotate(45deg);
  margin:0 3px 3px
}
.university-details[open] .university-chevron {
  transform:rotate(225deg);
  margin-bottom:-3px
}
.university-details[open] {
  background:#f1f8fd;
  border-radius:8px;
  border-color:transparent
}
.university-departments {
  list-style:none;
  margin:0;
  padding:0 10px 9px
}
.university-departments li {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:15px;
  font-size:10px;
  line-height:1.5;
  color:#668298;
  padding:5px 0
}
.university-departments strong {
  font-weight:650;
  color:#486e83;
  font-variant-numeric:tabular-nums
}
.dialog-close,.gallery-arrow {
  display:grid;
  place-items:center;
  border:1px solid #dae7ef;
  color:#5c7692;
  background:#fff;
  width:32px;
  height:32px;
  border-radius:10px;
  flex:none
}
.dialog-close:hover,.gallery-arrow:hover {
  background:#eaf6fd;
  border-color:#bde4f9;
  color:#066aab
}
.dialog-close .icon,.gallery-arrow .icon {
  width:16px;
  height:16px
}
.data-dialog {
  padding:0;
  width:min(720px,calc(100vw - 36px));
  max-width:none;
  max-height:calc(100svh - 64px);
  border:1px solid #d7e7ef;
  border-radius:22px;
  background:#fafdff;
  color:var(--ink);
  box-shadow:0 24px 100px #001c394a
}
.data-dialog[open] {
  display:flex;
  flex-direction:column
}
.data-dialog::backdrop {
  background:#00264468;
  backdrop-filter:blur(6px)
}
.data-dialog-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
  padding:25px 28px 19px
}
.data-dialog-heading h2 {
  font-size:28px;
  font-weight:750;
  letter-spacing:-.8px;
  line-height:1.2;
  margin:0
}
.data-dialog-heading p:last-child:not(.section-kicker) {
  margin:9px 0 0;
  font-size:11px;
  color:#7891a7;
  line-height:1.5
}
.department-search {
  margin:0 28px;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #dce8ef;
  border-radius:11px;
  background:#fff;
  padding:11px 13px
}
.department-search>.icon {
  width:17px;
  height:17px;
  color:#82a1b3
}
.department-search input {
  border:0;
  background:transparent;
  min-width:0;
  flex:1;
  color:var(--ink);
  font-size:12px;
  outline:none
}
.department-search:focus-within {
  border-color:#1a8ede;
  box-shadow:0 0 0 2px #bde4f955
}
.department-search input::placeholder {
  color:#91a4b4
}
.department-result-count {
  margin:13px 28px 0;
  font-size:10px;
  line-height:1.5;
  color:#829aad
}
.department-list {
  padding:6px 28px 14px;
  overflow-y:auto;
  min-height:0;
  scrollbar-width:thin;
  scrollbar-color:#c5dde2 transparent
}
.department-row {
  padding:12px 0 7px
}
.department-row-main {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:18px;
  font-size:12px;
  line-height:1.6;
  color:#42627e
}
.department-row-main>span:first-child {
  font-weight:600;
  min-width:0
}
.department-row-metrics {
  display:flex;
  align-items:baseline;
  gap:16px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  flex:none
}
.department-row-metrics strong {
  font-size:14px;
  color:#066aab;
  font-weight:700
}
.department-row-metrics>span {
  font-size:10px;
  color:#819aab;
  width:40px;
  text-align:right
}
.department-track {
  height:3px;
  background:#e9f0f5;
  border-radius:4px;
  overflow:hidden;
  margin-top:8px
}
.department-track span {
  display:block;
  height:100%;
  min-width:3px;
  background:linear-gradient(90deg,#1a8ede,#83c5ef);
  border-radius:4px
}
.department-empty {
  font-size:12px;
  color:#819aab;
  padding:25px 0
}
.data-dialog-note {
  padding:15px 28px 19px;
  margin:0;
  border-top:1px solid #e3edf2;
  font-size:10px;
  line-height:1.65;
  color:#8a9dad;
  background:#f6fafc
}
.source-dialog {
  width:min(650px,calc(100vw - 36px))
}
.source-body {
  overflow-y:auto;
  padding:0 28px 25px;
  font-size:12px;
  line-height:1.85;
  color:#607c94
}
.source-body p {
  margin:0 0 15px
}
.source-body strong {
  font-weight:650;
  color:#365c77
}
.source-links {
  display:grid;
  gap:5px;
  padding-top:6px;
  border-top:1px solid #e3edf2
}
.source-links a {
  font-size:10px;
  color:#066aab;
  text-decoration:none
}
.source-links a:hover {
  text-decoration:underline
}
.photo-dialog {
  padding:0;
  width:min(1110px,calc(100vw - 64px));
  max-width:none;
  max-height:calc(100svh - 48px);
  border:1px solid #e0eaf3;
  border-radius:20px;
  background:#f9fcff;
  color:var(--ink);
  box-shadow:0 24px 100px #001c3966
}
.photo-dialog::backdrop {
  background:#00182fcf;
  backdrop-filter:blur(7px)
}
.photo-dialog-heading {
  display:flex;
  align-items:center;
  gap:15px;
  padding:20px 23px;
  border-bottom:1px solid #e3ecf2
}
.photo-dialog-heading>div {
  flex:1;
  min-width:0
}
.photo-counter {
  margin:0 0 4px;
  font-size:9px;
  letter-spacing:1px;
  color:#6992a0;
  font-weight:700
}
.photo-dialog-heading h2 {
  margin:0;
  font-size:16px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:-.2px
}
.photo-dialog figure {
  margin:0;
  padding:18px 23px 0
}
#dialog-photo {
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:min(60svh,640px);
  margin:0 auto;
  object-fit:contain;
  background:#edf3f6;
  border-radius:9px
}
.photo-dialog figcaption {
  padding:13px 0;
  color:#71889e;
  font-size:11px;
  line-height:1.6
}
.photo-dialog-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 23px 19px
}
.photo-source {
  font-size:10px;
  line-height:1.5;
  color:#899eaf;
  text-decoration:none
}
a.photo-source:hover {
  color:var(--teal-deep);
  text-decoration:underline
}
.gallery-controls {
  display:flex;
  align-items:center;
  gap:9px
}
.toast {
  position:fixed;
  z-index:60;
  bottom:22px;
  left:50%;
  transform:translateX(-50%);
  border:1px solid #d6e8ee;
  border-radius:12px;
  padding:12px 17px;
  background:#fff;
  box-shadow:0 8px 24px #00245313;
  font-size:12px;
  color:#506d87;
  max-width:calc(100vw - 36px);
  text-align:center
}
@media(min-width:1600px) {
  .network {
    --map-width:min(100%,1250px,calc((100svh - 245px)*2.24));
    max-width:1300px
  }
  .network-metrics {
    max-width:1060px
  }
  .education-section,.network-note {
    max-width:1016px
  }
  .network-value strong {
    font-size:35px
  }
  .network-value span {
    font-size:13px
  }
  .education-stat strong {
    font-size:23px
  }
  .education-stat>div>span {
    font-size:11px
  }
  .activity-title {
    font-size:17px
  }
  .activity-heading {
    min-height:53px
  }
  .activity-timeline {
    --timeline-gap:30px;
    row-gap:24px
  }
  .activity-symbol {
    width:36px;
    height:36px
  }
  .activity-symbol .icon {
    width:21px;
    height:21px
  }
}
@media(max-width:1100px) and (min-width:901px) {
  :root {
    --page-gutter:32px
  }
  .section-nav {
    gap:17px
  }
  .header-tools {
    gap:17px
  }
  .activity-title {
    font-size:14px
  }
  .activity-timeline {
    --timeline-gap:20px
  }
  .network-stat {
    gap:9px
  }
  .network-value {
    gap:7px
  }
  .network-value strong {
    font-size:30px
  }
}
@media(max-height:650px) and (min-width:901px) {
  :root {
    --header-height:62px
  }
  .overview.map-overview {
    min-height:calc(100svh - 94px)
  }
  .network {
    --map-width:min(100%,1100px,max(580px,calc((100svh - 223px)*2.24)))
  }
  .activity-photo,.activity-illustration,.activity-placeholder {
    height:130px
  }
  .history-title {
    font-size:30px
  }
  .prepandemic-overview,.evolution-overview {
    padding:14px 0
  }
  .activity-timeline {
    margin-top:15px;
    row-gap:12px
  }
  .activity-title {
    font-size:14px
  }
  .activity-heading {
    min-height:43px
  }
  .result-card {
    padding:16px 20px
  }
  .result-card>strong {
    font-size:38px
  }
  .result-icon {
    margin-bottom:12px
  }
  .results-production {
    margin-top:20px
  }
  .result-finance {
    padding:17px 23px
  }
  .result-finance p {
    margin-top:15px
  }
  .result-finance p strong {
    font-size:36px
  }
}
@media(max-width:900px) {
  :root {
    --header-height:80px
  }
  .brand {
    width:155px
  }
  .section-nav {
    gap:14px
  }
  .header-tools {
    gap:16px
  }
  .nav-link {
    gap:5px;
    font-size:10px
  }
  .network {
    max-width:750px;
    --map-width:100%
  }
  .overview.map-overview {
    padding:25px 0
  }
  .network-metrics {
    margin-top:20px;
    padding:17px 12px
  }
  .network-stat {
    gap:8px
  }
  .network-value {
    gap:6px
  }
  .network-value strong {
    font-size:29px
  }
  .network-value span {
    font-size:11px
  }
  .education-section {
    margin-top:23px
  }
  .education-heading {
    margin-bottom:16px
  }
  .network-note {
    margin-top:17px
  }
  .prepandemic-overview,.evolution-overview {
    padding:25px 0 30px
  }
  .history-title {
    font-size:32px
  }
  .activity-timeline {
    grid-template-columns:repeat(2,minmax(0,1fr));
    row-gap:24px;
    margin-top:27px
  }
  .activity-photo,.activity-illustration,.activity-placeholder {
    height:210px
  }
  .activity-heading {
    min-height:48px
  }
  .activity-item:nth-child(3n+1) .activity-connector::before {
    left:calc(var(--timeline-gap)/-2)
  }
  .activity-item:nth-child(3n) .activity-connector::before {
    right:calc(var(--timeline-gap)/-2)
  }
  .activity-item:nth-child(2n+1) .activity-connector::before {
    left:50%
  }
  .activity-item:nth-child(2n) .activity-connector::before {
    right:50%
  }
  .result-card {
    padding:18px
  }
  .result-card>strong {
    font-size:38px
  }
  .result-finance {
    padding:20px
  }
  .result-finance p strong {
    font-size:34px
  }
  .results-overview {
    padding:30px 0
  }
  .results-finance {
    gap:14px
  }
  .results-production {
    gap:12px
  }
  .city-list {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
}
@media(max-width:700px) {
  .nav-label {
    display:none
  }
  .nav-number {
    font-size:11px;
    opacity:1
  }
  .nav-link {
    justify-content:center;
    min-width:23px
  }
  .section-nav {
    gap:12px
  }
  .tool-divider {
    display:none
  }
  .header-tools {
    gap:15px
  }
  .network-value {
    flex-direction:column;
    align-items:center;
    gap:5px
  }
  .network-stat {
    flex-direction:column;
    gap:7px
  }
  .network-metrics {
    padding:16px 7px
  }
  .network-stat .icon-tile {
    width:30px;
    height:30px
  }
  .network-stat .icon {
    width:18px;
    height:18px
  }
  .education-stat {
    gap:8px
  }
  .education-icon {
    width:21px
  }
  .education-icon .icon {
    width:19px;
    height:19px
  }
  .education-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
    row-gap:20px
  }
  .education-stat {
    justify-content:flex-start;
    padding-left:18px
  }
  .education-stat:nth-child(3) {
    border-left:0
  }
  .network-note {
    align-items:flex-start;
    font-size:8px;
    gap:14px
  }
  .network-note>span {
    max-width:285px
  }
  .education-heading h3 {
    font-size:9px
  }
  .city-list {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .activity-title {
    font-size:14px
  }
  .activity-symbol {
    width:29px;
    height:29px;
    border-radius:9px
  }
  .activity-symbol .icon {
    width:18px;
    height:18px
  }
  .activity-photo,.activity-illustration,.activity-placeholder {
    height:180px
  }
  .activity-timeline {
    --timeline-gap:17px
  }
  .activity-heading {
    gap:8px;
    min-height:65px
  }
  .result-card>strong {
    font-size:34px
  }
  .result-finance p strong {
    font-size:30px
  }
  .result-finance p>span {
    font-size:10px
  }
}
@media(max-width:520px) {
  :root {
    --page-gutter:23px
  }
  .brand {
    width:130px
  }
  .site-header {
    gap:12px
  }
  .section-nav {
    gap:9px
  }
  .header-tools {
    gap:12px
  }
  .fullscreen-button {
    width:31px;
    height:31px;
    border-radius:9px
  }
  .nav-link {
    min-width:21px
  }
  .overview.map-overview {
    padding:24px 0 30px;
    justify-content:flex-start
  }
  .map-stage {
    width:calc(100% + 12px);
    margin-left:-6px
  }
  .map-footer {
    position:static;
    margin-top:12px;
    padding:0;
    gap:10px
  }
  .map-legend,.cities-toggle {
    font-size:8px
  }
  .map-legend {
    gap:5px
  }
  .cities-toggle {
    padding-left:0
  }
  .network-metrics {
    margin-top:23px
  }
  .network-value strong {
    font-size:28px
  }
  .network-value span {
    font-size:10px
  }
  .education-section {
    margin-top:24px
  }
  .education-heading {
    margin-bottom:20px
  }
  .education-stat strong {
    font-size:22px
  }
  .education-stat>div>span {
    font-size:10px
  }
  .network-note {
    margin-top:21px
  }
  .history-title {
    font-size:30px
  }
  .history-heading {
    gap:12px
  }
  .section-caption {
    font-size:8px;
    letter-spacing:0;
    max-width:90px;
    text-align:right
  }
  .activity-timeline {
    grid-template-columns:1fr;
    row-gap:25px;
    margin-top:25px
  }
  .activity-photo,.activity-illustration,.activity-placeholder {
    height:225px
  }
  .activity-heading {
    min-height:44px;
    gap:11px
  }
  .activity-title {
    font-size:15px
  }
  .activity-symbol {
    width:32px;
    height:32px
  }
  .activity-connector {
    height:25px
  }
  .activity-item:nth-child(n) .activity-connector::before {
    left:0;
    right:0
  }
  .site-footer {
    height:38px;
    gap:14px
  }
  .section-index {
    font-size:8px;
    gap:8px
  }
  .section-next {
    font-size:9px;
    gap:6px
  }
  .index-line {
    width:19px
  }
  .city-list {
    width:100%;
    max-height:min(380px,calc(100svh - 220px));
    padding:10px;
    gap:5px;
    top:55px;
    bottom:auto
  }
  .city-chip {
    font-size:9px;
    padding:7px 6px;
    gap:3px
  }
  .city-chip strong {
    font-size:9px
  }
  .results-production {
    grid-template-columns:1fr 1fr;
    margin-top:27px;
    gap:12px
  }
  .result-card {
    padding:20px
  }
  .result-icon {
    margin-bottom:18px
  }
  .result-card>strong {
    font-size:42px
  }
  .result-card h3 {
    font-size:11px
  }
  .results-finance {
    grid-template-columns:1fr;
    gap:14px;
    margin-top:14px
  }
  .result-finance {
    padding:22px
  }
  .result-finance p strong {
    font-size:38px
  }
  .result-finance p>span {
    font-size:11px
  }
  .results-source {
    font-size:8px;
    line-height:1.8
  }
  .data-dialog {
    width:calc(100vw - 24px);
    max-height:calc(100svh - 32px);
    border-radius:17px
  }
  .data-dialog-heading {
    padding:22px 19px 19px;
    gap:14px
  }
  .data-dialog-heading h2 {
    font-size:25px
  }
  .data-dialog-heading p:last-child:not(.section-kicker) {
    font-size:10px
  }
  .department-search {
    margin:0 19px;
    padding:10px 11px
  }
  .department-result-count {
    margin:13px 19px 0
  }
  .department-list {
    padding:6px 19px 14px
  }
  .department-row-main {
    font-size:11px;
    gap:12px
  }
  .department-row-metrics {
    gap:9px
  }
  .department-row-metrics strong {
    font-size:13px
  }
  .department-row-metrics>span {
    font-size:9px;
    width:34px
  }
  .data-dialog-note {
    padding:13px 19px 17px;
    font-size:9px
  }
  .source-body {
    padding:0 19px 22px;
    font-size:11px
  }
  .source-links a {
    font-size:9px
  }
  .photo-dialog {
    width:calc(100vw - 24px);
    border-radius:15px;
    max-height:calc(100svh - 24px)
  }
  .photo-dialog-heading {
    padding:17px 15px;
    gap:10px
  }
  .photo-dialog-heading h2 {
    font-size:14px
  }
  .photo-dialog figure {
    padding:14px 12px 0
  }
  #dialog-photo {
    max-height:52svh
  }
  .photo-dialog figcaption {
    font-size:10px;
    padding:11px 3px
  }
  .photo-dialog-footer {
    padding:0 15px 15px;
    gap:12px
  }
  .photo-source {
    font-size:9px
  }
}
@media(min-width:901px) and (min-height:651px) and (max-height:800px) {
  .results-overview {
    padding:18px 0
  }
  .results-production {
    margin-top:20px
  }
  .result-card {
    padding:16px 22px 18px
  }
  .result-icon {
    margin-bottom:12px
  }
  .result-finance {
    padding:18px 24px 20px
  }
  .result-finance p {
    margin-top:18px
  }
  .results-content .education-section {
    margin-top:14px;
    padding:13px 22px 15px
  }
}
@media(max-width:360px) {
  .brand {
    width:112px
  }
  .header-tools {
    gap:8px
  }
  .section-nav {
    gap:7px
  }
  .network-value strong {
    font-size:26px
  }
  .network-value span {
    font-size:9px
  }
  .education-stat {
    padding-left:12px
  }
  .result-finance p strong {
    font-size:32px
  }
}
:fullscreen {
  --header-height:68px
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important
  }
}
@media print {
  @page {
    size:A4 landscape;
    margin:10mm
  }
  html,body {
    background:#fff;
    min-width:0
  }
  body::before,body::after {
    display:none
  }
  .page-shell {
    padding:0;
    max-width:none
  }
  .site-header {
    position:static;
    height:42px
  }
  .site-header::before,.header-tools,.site-footer,.map-footer,.city-list,.map-tooltip,.toast,.text-action,.photo-expand,.photo-dialog,.data-dialog {
    display:none!important
  }
  .brand {
    width:135px
  }
  .presentation-panel {
    break-after:page
  }
  .presentation-panel:last-of-type {
    break-after:auto
  }
  .overview.map-overview {
    min-height:0;
    padding:0
  }
  .network {
    --map-width:760px;
    max-width:920px
  }
  .map-stage>svg {
    filter:none
  }
  .network-metrics {
    padding:10px 20px
  }
  .education-section {
    margin-top:15px
  }
  .network-note {
    font-size:8px
  }
  .prepandemic-overview,.evolution-overview,.results-overview {
    min-height:0;
    padding:22px 0 0
  }
  .history-title {
    font-size:29px
  }
  .activity-timeline {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px 22px;
    --timeline-gap:22px;
    margin-top:20px
  }
  .activity-photo,.activity-illustration,.activity-placeholder {
    height:130px;
    box-shadow:none
  }
  .activity-title {
    font-size:11px
  }
  .activity-heading {
    min-height:36px;
    gap:9px
  }
  .activity-symbol {
    width:27px;
    height:27px
  }
  .activity-symbol .icon {
    width:16px;
    height:16px
  }
  .activity-connector {
    height:20px
  }
  .activity-item:nth-child(n) .activity-connector::before {
    left:calc(var(--timeline-gap)/-2);
    right:calc(var(--timeline-gap)/-2)
  }
  .activity-item:nth-child(3n+1) .activity-connector::before {
    left:50%
  }
  .activity-item:nth-child(3n) .activity-connector::before {
    right:50%
  }
  .results-production {
    margin-top:25px
  }
  .result-card>strong {
    font-size:38px
  }
  .result-finance p strong {
    font-size:37px
  }
  .result-card,.result-finance {
    box-shadow:none
  }
  * {
    print-color-adjust:exact;
    -webkit-print-color-adjust:exact
  }
}
/* Outcomes: six production figures and three finance groups. */
.outcomes-overview {
  min-height:calc(100svh - var(--header-height) - 32px);
  display:flex;
  align-items:center;
  padding:18px 0
}
.outcomes-content {
  width:100%;
  max-width:1350px;
  margin:0 auto
}
.production-metrics {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin-top:24px;
  border:1px solid #dce9f0;
  border-radius:17px;
  padding:18px 0;
  background:#ffffffd9;
  box-shadow:0 10px 28px -24px #00245330
}
.production-metric {
  padding:0 18px;
  min-width:0
}
.production-metric+.production-metric {
  border-left:1px solid #e2ecf2
}
.production-label {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:31px
}
.production-label .icon {
  width:18px;
  height:18px;
  color:#278ac5;
  stroke-width:1.7
}
.production-label h3 {
  margin:0;
  color:#617c94;
  font-size:11px;
  line-height:1.4;
  font-weight:600
}
.production-number {
  display:flex;
  align-items:baseline;
  gap:5px;
  margin:8px 0 0;
  white-space:nowrap
}
.production-number strong {
  font-size:clamp(28px,2.65vw,39px);
  line-height:1.1;
  letter-spacing:-1.2px;
  font-weight:750;
  font-variant-numeric:tabular-nums
}
.production-number span {
  font-size:10px;
  color:#7791a5
}
.funding-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:16px;
  margin-top:20px
}
.funding-panel {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-width:0;
  min-height:172px;
  border:1px solid #d9e8ee;
  border-radius:17px;
  padding:18px 21px 20px;
  background:#ffffffc9
}
.funding-investment {
  background:linear-gradient(125deg,#e9f5fc,#f3f9fd);
  border-color:#d3e5ef
}
.funding-valuation {
  background:linear-gradient(125deg,#e7f4fd,#f1f8fd);
  border-color:#cce3f4
}
.funding-support {
  background:#f6fafd;
  border-color:#dce8ef
}
.funding-heading {
  display:flex;
  align-items:center;
  gap:9px;
  color:#365f7f
}
.funding-heading .icon {
  width:19px;
  height:19px
}
.funding-heading h3 {
  margin:0;
  font-size:12px;
  font-weight:700;
  line-height:1.5
}
.funding-projects {
  margin:6px 0 0;
  font-size:10px;
  color:#718b9e;
  line-height:1.5
}
.funding-projects strong {
  font-weight:750;
  color:#305e81;
  font-size:12px
}
.funding-projects .icon {
  width:13px;
  height:13px
}
.money-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  margin-top:21px;
  gap:18px
}
.money-unit {
  min-width:0
}
.money-unit+.money-unit {
  padding-left:18px;
  border-left:1px solid #d0e2eb
}
.money-unit h4,.money-label {
  font-size:10px;
  color:#7793a7;
  font-weight:550;
  line-height:1.4;
  margin:0 0 7px
}
.money-value {
  display:flex;
  align-items:baseline;
  gap:6px;
  white-space:nowrap;
  margin:0;
  font-variant-numeric:tabular-nums
}
.money-value strong {
  font-size:clamp(23px,2.28vw,35px);
  font-weight:750;
  line-height:1.15;
  letter-spacing:-.9px;
  color:#285f89
}
.money-value span {
  font-size:10px;
  color:#7292a6;
  font-weight:600;
  flex:none
}
.funding-valuation .money-value strong {
  color:#066aab
}
.funding-valuation .funding-heading {
  color:#387fae
}
.funding-single {
  margin-top:21px
}
.funding-single .money-label {
  margin:0 0 7px
}
.funding-support .money-value strong {
  color:#496e8a
}
.outcomes-content .education-section {
  break-inside:avoid;
  max-width:none;
  margin:20px 0 0;
  padding:15px 21px 17px;
  border:1px solid #dfeaf2;
  border-radius:16px;
  background:#ffffffc9
}
.outcomes-content .education-heading {
  margin-bottom:13px
}
.outcomes-content .education-heading h3 {
  margin:0;
  font-size:10px
}
.outcomes-content .education-stat strong {
  font-size:25px
}
.outcomes-content .education-stat>div>span {
  font-size:10px
}
.outcomes-content .education-icon .icon {
  width:23px;
  height:23px
}
.outcomes-source {
  margin:11px 0 0;
  font-size:8px;
  color:#91a4b2;
  line-height:1.5
}
@media(min-width:1600px) {
  .production-metric {
    padding:0 23px
  }
  .production-label h3 {
    font-size:12px
  }
  .production-label .icon {
    width:20px;
    height:20px
  }
  .funding-panel {
    padding:23px 25px;
    min-height:190px
  }
  .funding-heading h3 {
    font-size:13px
  }
  .funding-projects,.money-unit h4,.money-label {
    font-size:11px
  }
  .funding-grid {
    gap:20px;
    margin-top:24px
  }
  .outcomes-content .education-section {
    margin-top:24px
  }
}
@media(min-width:901px) and (max-width:1100px) {
  .production-metric {
    padding:0 11px
  }
  .production-label {
    gap:6px
  }
  .production-label h3 {
    font-size:10px
  }
  .production-number strong {
    font-size:28px
  }
  .production-number span {
    font-size:9px
  }
  .funding-grid {
    gap:12px
  }
  .funding-panel {
    padding:16px 14px 18px
  }
  .money-row {
    gap:12px
  }
  .money-unit+.money-unit {
    padding-left:12px
  }
  .money-value strong {
    font-size:23px
  }
  .money-value span {
    font-size:9px
  }
}
@media(min-width:901px) and (max-height:680px) {
  .outcomes-overview {
    padding:13px 0
  }
  .production-metrics {
    margin-top:17px;
    padding:13px 0
  }
  .production-label {
    min-height:28px
  }
  .production-number {
    margin-top:6px
  }
  .production-number strong {
    font-size:30px
  }
  .funding-grid {
    margin-top:14px
  }
  .funding-panel {
    min-height:145px;
    padding-top:14px;
    padding-bottom:15px
  }
  .money-row,.funding-single {
    margin-top:15px
  }
  .outcomes-content .education-section {
    margin-top:14px;
    padding-top:11px;
    padding-bottom:12px
  }
  .outcomes-content .education-heading {
    margin-bottom:10px
  }
  .outcomes-source {
    margin-top:8px
  }
}
@media(max-width:900px) {
  .outcomes-overview {
    padding:27px 0 30px
  }
  .production-metrics {
    grid-template-columns:repeat(3,minmax(0,1fr));
    padding:0;
    margin-top:24px
  }
  .production-metric {
    padding:18px 20px
  }
  .production-metric:nth-child(3n+1) {
    border-left:0
  }
  .production-metric:nth-child(n+4) {
    border-top:1px solid #e2ecf2
  }
  .production-label {
    min-height:31px
  }
  .production-number strong {
    font-size:32px
  }
  .funding-grid {
    grid-template-columns:1fr 1fr;
    gap:15px
  }
  .funding-investment {
    grid-column:1/-1
  }
  .funding-panel {
    min-height:167px;
    padding:19px 22px 20px
  }
  .money-value strong {
    font-size:31px
  }
  .money-row {
    margin-top:19px
  }
  .outcomes-content .education-section {
    margin-top:19px
  }
}
@media(max-width:600px) {
  .production-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:23px
  }
  .production-metric {
    padding:15px 14px
  }
  .production-metric:nth-child(n) {
    border-left:0;
    border-top:0
  }
  .production-metric:nth-child(2n) {
    border-left:1px solid #e2ecf2
  }
  .production-metric:nth-child(n+3) {
    border-top:1px solid #e2ecf2
  }
  .production-label h3 {
    font-size:11px
  }
  .production-label .icon {
    width:17px;
    height:17px
  }
  .production-number strong {
    font-size:30px
  }
  .funding-grid {
    grid-template-columns:1fr;
    gap:14px;
    margin-top:18px
  }
  .funding-panel {
    padding:19px 20px 21px;
    min-height:162px
  }
  .funding-heading h3 {
    font-size:12px
  }
  .funding-projects {
    font-size:11px
  }
  .funding-projects strong {
    font-size:13px
  }
  .money-row {
    grid-template-columns:1fr;
    gap:15px;
    margin-top:18px
  }
  .money-unit+.money-unit {
    padding-left:0;
    padding-top:14px;
    border-left:0;
    border-top:1px solid #d3e3eb
  }
  .money-value strong {
    font-size:33px
  }
  .money-unit h4,.money-label {
    font-size:11px
  }
  .money-value span {
    font-size:11px
  }
  .funding-single {
    margin-top:21px
  }
  .outcomes-content .education-section {
    padding:15px 17px 18px
  }
  .outcomes-content .education-heading h3 {
    font-size:9px
  }
  .outcomes-content .education-heading {
    gap:10px
  }
  .outcomes-content .education-stat {
    padding-left:9px;
    gap:8px
  }
  .outcomes-content .education-stat strong {
    font-size:23px
  }
  .outcomes-source {
    font-size:8px
  }
}
@media(max-width:360px) {
  .production-number {
    flex-wrap:wrap;
    row-gap:2px
  }
  .production-number strong {
    font-size:26px
  }
}
@media print {
  .outcomes-overview {
    min-height:0;
    padding:18px 0 0
  }
  .outcomes-content {
    max-width:none
  }
  .production-metrics {
    grid-template-columns:repeat(6,minmax(0,1fr));
    margin-top:18px;
    padding:12px 0;
    box-shadow:none
  }
  .production-metric {
    padding:0 10px
  }
  .production-label h3 {
    font-size:9px
  }
  .production-number strong {
    font-size:27px
  }
  .funding-grid {
    grid-template-columns:2fr 1fr 1fr;
    gap:13px;
    margin-top:15px
  }
  .funding-investment {
    grid-column:auto
  }
  .funding-panel {
    min-height:149px;
    padding:15px
  }
  .money-row {
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:18px
  }
  .money-unit+.money-unit {
    padding-left:12px;
    padding-top:0;
    border-left:1px solid #d0e2eb;
    border-top:0
  }
  .money-value strong {
    font-size:25px
  }
  .outcomes-content .education-section {
    margin-top:15px;
    padding:12px 18px
  }
  .outcomes-content .education-metrics {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .outcomes-source {
    margin-top:9px
  }
}
/* Network overview: readable figures at left, wide map at right. */
.overview.map-overview {
  min-height:calc(100svh - var(--header-height) - 32px);
  padding:24px 0;
  justify-content:center
}
.network-layout {
  display:grid;
  grid-template-columns:minmax(265px,27%) minmax(0,1fr);
  align-items:center;
  gap:clamp(30px,3.7vw,64px);
  width:100%;
  max-width:1650px;
  margin:auto
}
.network-summary {
  min-width:0
}
.network-heading .section-kicker {
  font-size:9px;
  letter-spacing:1.2px;
  margin-bottom:10px;
  color:#5b7895
}
.network-heading h1 {
  font-size:clamp(27px,2.5vw,38px);
  line-height:1.2;
  letter-spacing:-1.1px;
  font-weight:750;
  margin:0
}
.network-heading h1 span {
  color:var(--teal-deep)
}
.network-figures {
  margin-top:25px
}
.network-total {
  padding:0 0 19px;
  border-bottom:1px solid #d9e6f1
}
.network-total>strong {
  display:block;
  font-size:clamp(52px,4.7vw,72px);
  line-height:1.05;
  font-weight:800;
  letter-spacing:-2.4px;
  font-variant-numeric:tabular-nums;
  color:var(--ink)
}
.network-total>span {
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:7px;
  color:#426784;
  font-size:13px;
  font-weight:650;
  line-height:1.5
}
.network-total .icon {
  width:16px;
  height:16px;
  color:var(--teal-deep)
}
.network-reach {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  padding:18px 0
}
.reach-stat {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0
}
.reach-stat+.reach-stat {
  padding-left:18px;
  border-left:1px solid #d9e6f1
}
.reach-stat>.icon {
  width:23px;
  height:23px;
  color:var(--teal-deep);
  stroke-width:1.6
}
.reach-stat>div {
  display:flex;
  flex-direction:column;
  gap:3px
}
.reach-stat strong {
  font-size:33px;
  font-weight:750;
  line-height:1;
  letter-spacing:-1px;
  font-variant-numeric:tabular-nums
}
.reach-stat span {
  font-size:11px;
  font-weight:550;
  color:#5c7691;
  line-height:1.5
}
.network-education.education-section {
  max-width:none;
  margin:0;
  padding:18px 0 0;
  border-top:1px solid #d9e6f1
}
.network-education .education-heading {
  margin:0 0 15px
}
.network-education .education-heading h2 {
  margin:0;
  color:#5b7895;
  font-size:10px;
  font-weight:750;
  line-height:1.4;
  letter-spacing:.75px;
  text-transform:uppercase
}
.network-education .education-metrics {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px 18px
}
.network-education .education-stat {
  justify-content:flex-start;
  gap:8px;
  border:0;
  padding:0
}
.network-education .education-icon {
  width:22px;
  color:#5b8fb3
}
.network-education .education-icon .icon {
  width:20px;
  height:20px
}
.network-education .education-stat strong {
  font-size:24px;
  line-height:1.1;
  font-weight:750;
  letter-spacing:-.6px
}
.network-education .education-stat>div>span {
  font-size:10px;
  color:#5c7691;
  line-height:1.4
}
.network-education>.text-action {
  font-size:10px;
  color:var(--teal-deep);
  font-weight:700;
  margin-top:17px;
  gap:7px;
  padding:2px 0
}
.network-map {
  position:relative;
  min-width:0;
  padding:22px 0
}
.network-map .map-stage {
  width:100%;
  margin:0;
  aspect-ratio:1019.48/455.06
}
.network-map .map-stage::before {
  inset:2% -3% -11%;
  background:radial-gradient(ellipse at 50% 54%,#b9dcf362,transparent 68%)
}
.network-map .map-stage::after {
  display:none
}
.network-map .map-stage>svg {
  filter:drop-shadow(0 17px 15px #0a67a326) drop-shadow(0 3px 3px #00245312)
}
.network-map .map-footer {
  position:relative;
  width:100%;
  margin:22px 0 0;
  padding:0 3px;
  gap:14px
}
.network-map .map-legend {
  font-size:10px;
  color:#597890
}
.network-map .swatch {
  width:7px;
  height:7px;
  background:var(--teal)
}
.network-map .cities-toggle {
  font-size:10px;
  color:var(--teal-deep);
  font-weight:700
}
.network-map .city-list {
  top:auto;
  bottom:calc(100% + 12px);
  width:100%;
  max-height:min(330px,calc(100svh - 190px));
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.map-guide {
  font-size:10px;
  color:#758fa6;
  line-height:1.5;
  margin:10px 3px 0
}
.network-data-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid #e0eaf2;
  margin:23px 3px 0;
  padding-top:11px;
  font-size:8px;
  color:#8096a8;
  line-height:1.55
}
.network-data-note .text-action {
  font-size:9px;
  color:var(--teal-deep)
}
@media(min-width:1600px) {
  .network-layout {
    grid-template-columns:325px minmax(0,1fr);
    gap:70px
  }
  .network-heading h1 {
    font-size:39px
  }
  .network-figures {
    margin-top:30px
  }
  .network-total>strong {
    font-size:76px
  }
  .network-reach {
    padding:22px 0
  }
  .reach-stat strong {
    font-size:37px
  }
  .network-education.education-section {
    padding-top:22px
  }
  .network-education .education-metrics {
    row-gap:20px
  }
  .network-education .education-stat strong {
    font-size:27px
  }
  .network-map .map-legend,.network-map .cities-toggle,.map-guide {
    font-size:11px
  }
  .network-data-note {
    font-size:9px
  }
}
@media(min-width:901px) and (max-height:680px) {
  .overview.map-overview {
    padding:14px 0
  }
  .network-heading h1 {
    font-size:27px
  }
  .network-heading .section-kicker {
    margin-bottom:8px
  }
  .network-figures {
    margin-top:17px
  }
  .network-total {
    padding-bottom:13px
  }
  .network-total>strong {
    font-size:52px
  }
  .network-total>span {
    margin-top:4px
  }
  .network-reach {
    padding:14px 0
  }
  .reach-stat strong {
    font-size:30px
  }
  .network-education.education-section {
    padding-top:14px
  }
  .network-education .education-heading {
    margin-bottom:12px
  }
  .network-education .education-metrics {
    row-gap:13px
  }
  .network-education .education-stat strong {
    font-size:22px
  }
  .network-education>.text-action {
    margin-top:13px
  }
  .network-map {
    padding:15px 0
  }
}
@media(max-width:900px) {
  .overview.map-overview {
    padding:24px 0 28px;
    justify-content:flex-start
  }
  .network-layout {
    grid-template-columns:1fr;
    gap:0;
    max-width:760px
  }
  .network-summary {
    display:contents
  }
  .network-heading {
    order:1
  }
  .network-heading h1 {
    font-size:29px;
    line-height:1.2
  }
  .network-heading h1 br {
    display:none
  }
  .network-heading h1 span::before {
    content:' '
  }
  .network-figures {
    order:2;
    display:grid;
    grid-template-columns:1fr 1.35fr;
    gap:22px;
    align-items:center;
    margin:24px 0 0;
    padding-bottom:20px;
    border-bottom:1px solid #d9e6f1
  }
  .network-total {
    padding:0;
    border:0
  }
  .network-total>strong {
    font-size:48px
  }
  .network-total>span {
    font-size:11px;
    margin-top:5px
  }
  .network-reach {
    padding:0;
    gap:15px
  }
  .reach-stat+.reach-stat {
    padding-left:15px
  }
  .reach-stat>.icon {
    width:20px;
    height:20px
  }
  .reach-stat strong {
    font-size:31px
  }
  .network-map {
    order:3;
    padding:26px 0 0
  }
  .network-map .map-footer {
    margin-top:18px
  }
  .network-map .city-list {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
  .network-education.education-section {
    order:4;
    padding-top:18px;
    margin-top:23px
  }
  .network-education .education-metrics {
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px
  }
  .network-education .education-stat strong {
    font-size:23px
  }
  .network-education>.text-action {
    margin-top:17px
  }
  .network-data-note {
    margin-top:15px
  }
}
@media(max-width:520px) {
  .overview.map-overview {
    padding:18px 0 26px
  }
  .network-heading .section-kicker {
    font-size:8px;
    margin-bottom:8px
  }
  .network-heading h1 {
    font-size:26px;
    letter-spacing:-.8px
  }
  .network-figures {
    grid-template-columns:1.1fr 1.65fr;
    gap:16px;
    margin-top:22px;
    padding-bottom:18px
  }
  .network-total>strong {
    font-size:43px;
    letter-spacing:-1.6px
  }
  .network-total>span {
    font-size:10px;
    gap:5px
  }
  .network-total .icon {
    width:14px;
    height:14px
  }
  .network-reach {
    gap:12px
  }
  .reach-stat {
    display:block
  }
  .reach-stat>.icon {
    display:none
  }
  .reach-stat+.reach-stat {
    padding-left:12px
  }
  .reach-stat strong {
    font-size:29px
  }
  .reach-stat span {
    font-size:10px
  }
  .network-map {
    padding-top:25px
  }
  .network-map .map-stage {
    width:calc(100% + 8px);
    margin-left:-4px
  }
  .network-map .map-footer {
    position:relative;
    margin-top:17px;
    padding:0;
    gap:10px
  }
  .network-map .map-legend,.network-map .cities-toggle {
    font-size:8px
  }
  .network-map .map-legend {
    gap:6px
  }
  .network-map .city-list {
    top:auto;
    bottom:calc(100% + 10px);
    left:50%;
    max-height:245px;
    grid-template-columns:repeat(3,minmax(0,1fr));
    padding:9px;
    gap:5px
  }
  .map-guide {
    font-size:9px;
    margin:9px 0 0;
    max-width:260px
  }
  .network-data-note {
    align-items:flex-start;
    font-size:7px;
    margin:15px 0 0;
    padding-top:9px;
    gap:11px
  }
  .network-data-note .text-action {
    font-size:8px
  }
  .network-education.education-section {
    margin-top:21px;
    padding-top:16px
  }
  .network-education .education-heading {
    margin-bottom:14px
  }
  .network-education .education-heading h2 {
    font-size:9px
  }
  .network-education .education-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 20px
  }
  .network-education .education-stat strong {
    font-size:23px
  }
  .network-education .education-stat>div>span {
    font-size:10px
  }
  .network-education>.text-action {
    font-size:10px;
    margin-top:16px
  }
}
@media(max-width:360px) {
  .network-heading h1 {
    font-size:23px
  }
  .network-total>strong {
    font-size:37px
  }
  .reach-stat strong {
    font-size:26px
  }
  .network-figures {
    gap:11px
  }
  .network-reach {
    gap:9px
  }
  .reach-stat+.reach-stat {
    padding-left:9px
  }
}
@media print {
  .overview.map-overview {
    min-height:0;
    padding:20px 0 0
  }
  .network-layout {
    display:grid;
    grid-template-columns:235px minmax(0,1fr);
    gap:30px;
    max-width:none
  }
  .network-summary {
    display:block
  }
  .network-heading h1 {
    font-size:28px
  }
  .network-heading h1 br {
    display:block
  }
  .network-heading h1 span::before {
    content:none
  }
  .network-figures {
    display:block;
    margin-top:19px;
    padding:0;
    border:0
  }
  .network-total {
    padding-bottom:14px;
    border-bottom:1px solid #d9e6f1
  }
  .network-total>strong {
    font-size:49px
  }
  .network-reach {
    padding:15px 0
  }
  .reach-stat {
    display:flex
  }
  .reach-stat>.icon {
    display:block
  }
  .reach-stat strong {
    font-size:30px
  }
  .network-education.education-section {
    margin:0;
    padding-top:15px
  }
  .network-education .education-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px
  }
  .network-education .education-stat strong {
    font-size:22px
  }
  .network-map {
    padding:15px 0
  }
  .network-map .map-stage {
    width:100%;
    margin:0
  }
  .network-map .map-stage>svg {
    filter:none
  }
  .map-guide {
    display:none
  }
  .network-data-note {
    font-size:7px;
    border-top:0;
    margin-top:15px
  }
}
/* Name-only tooltip for provinces without a university record. */
.map-tooltip.is-name-only {
  width:max-content;
  max-width:calc(100vw - 24px);
  border-radius:10px;
  pointer-events:none
}
.map-tooltip.is-name-only .tooltip-header {
  padding:10px 14px;
  display:block
}
.map-tooltip.is-name-only .tooltip-header h2 {
  font-size:14px;
  font-weight:700;
  letter-spacing:0;
  line-height:1.35
}
.map-tooltip.is-name-only .tooltip-eyebrow,.map-tooltip.is-name-only #tooltip-summary,.map-tooltip.is-name-only .tooltip-hint,.map-tooltip.is-name-only .tooltip-universities,.map-tooltip.is-name-only #close-city {
  display:none
}
.map-stage .province:not(.is-active) {
  cursor:help
}
.map-stage .province:not(.is-active):hover,.map-stage .province:not(.is-active).is-pointed {
  fill:#dceaf4
}
.map-stage .province:focus-visible {
  stroke:var(--ink);
  stroke-width:2
}
/* Giriş ekranı (GreenTİM giriş yapısı) */
:root{--gt-bg:#f7f7f7;--gt-paper:#fff;--gt-ink:#292e32;--gt-muted:#6e777d;--gt-line:#e9eceb;--gt-field-line:#d9dedd;--gt-green:#397e62;--gt-soft:#f0faf6;--gt-danger:#a84343;--gt-danger-bg:#fbefef;--gt-shadow:#10291c0d}
html:not([data-auth="in"]) .page-shell{display:none}
.gt-login{position:fixed;inset:0;overflow-y:auto;background:var(--gt-bg);color:var(--gt-ink);font:400 11px/1.5 Poppins,system-ui,sans-serif;display:flex;padding:24px 16px;box-sizing:border-box}
.gt-login[hidden]{display:none}
.gt-login *{box-sizing:border-box}
.gt-login-card{margin:auto;width:100%;max-width:380px;background:var(--gt-paper);border:1px solid var(--gt-line);border-radius:12px;box-shadow:0 2px 3px var(--gt-shadow);padding:32px 28px 28px}
.gt-login-brand{display:block;width:140px;height:auto;margin-bottom:28px}
.gt-login h1{font-size:15px;font-weight:500;letter-spacing:-.2px;margin:0}
.gt-login-sub{margin:2px 0 22px;color:var(--gt-muted)}
.gt-login-field{display:grid;gap:7px;margin-bottom:14px}
.gt-login-field>span{font-weight:500}
.gt-login-input{position:relative;display:flex}
.gt-login input{width:100%;height:33px;border:1px solid var(--gt-field-line);border-radius:5px;background:var(--gt-paper);padding:6px 10px;font:inherit;color:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
.gt-login input:focus{border-color:var(--gt-green);box-shadow:0 0 0 3px #397e621f}
.gt-login input[readonly]{background:#f5f6f7}
.gt-login-input input{padding-right:38px}
.gt-login-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:32px;display:grid;place-items:center;border:0;background:none;color:var(--gt-muted);cursor:pointer;border-radius:4px}
.gt-login-toggle:hover{color:var(--gt-ink)}
.gt-login-toggle:focus-visible{outline:2px solid var(--gt-green);outline-offset:-2px}
.gt-login-toggle svg{width:16px;height:16px}
.gt-login-toggle .gt-eye-off,.gt-login-toggle[aria-pressed="true"] .gt-eye{display:none}
.gt-login-toggle[aria-pressed="true"] .gt-eye-off{display:block}
.gt-login-error{margin:4px 0 14px;padding:9px 11px;border-left:2px solid var(--gt-danger);border-radius:5px;background:var(--gt-danger-bg);color:var(--gt-danger)}
.gt-login-error[hidden]{display:none}
.gt-login-submit{width:100%;height:33px;margin-top:6px;border:1px solid var(--gt-green);border-radius:5px;background:var(--gt-green);color:#fff;font:500 11px/1 Poppins,system-ui,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.gt-login-submit:hover{filter:brightness(1.06)}
.gt-login-submit:focus-visible{outline:2px solid var(--gt-green);outline-offset:2px}
.gt-login-submit:disabled{opacity:.7;cursor:progress}
.gt-login-submit[aria-busy="true"]::before{content:"";width:12px;height:12px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:gt-spin .7s linear infinite}
@keyframes gt-spin{to{transform:rotate(360deg)}}
@media(pointer:coarse){.gt-login input,.gt-login-submit{height:44px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.gt-login *{transition:none!important;animation-duration:1.5s!important}}
