/* greater-caspian.org — design tokens.
   Brand: the logo's sky blue and leaf green on deep navy and white.
   Type: Plus Jakarta Sans (400–800) for everything; Source Serif 4 italic
   for emphasis words and quotations only. */
@layer tokens, base, components, chrome, pages, print;

@font-face { font-family: "Jakarta"; src: url("/assets/fonts/jakarta-latin.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Jakarta"; src: url("/assets/fonts/jakarta-latin-ext.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Serif4"; src: url("/assets/fonts/serif-italic-latin.woff2") format("woff2"); font-weight: 200 900; font-style: italic; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Serif4"; src: url("/assets/fonts/serif-italic-latin-ext.woff2") format("woff2"); font-weight: 200 900; font-style: italic; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+A720-A7FF; }
@font-face { font-family: "Jakarta-fallback"; src: local("Helvetica Neue"), local("Arial"); size-adjust: 104%; ascent-override: 94%; descent-override: 24%; }

@layer tokens {
  :root {
    /* brand */
    --navy: #0B1F2E; --navy-2: #12324A; --navy-3: #1B4563;
    --blue: #2EA7E0;            /* logo blue: marks, rules, fills on dark */
    --blue-ink: #0A6AA6;        /* blue for text and buttons on white (5.8:1) */
    --blue-deep: #0B4F7C;       /* the blue band */
    --blue-wash: #E6F3FB;
    --green: #8DC63F;           /* logo green: marks, buttons on dark */
    --green-ink: #3F6B12;       /* green for text on white (6.3:1) */
    --green-wash: #EEF6E2;
    /* neutrals */
    --white: #FFFFFF; --mist: #F2F6F9; --mist-2: #E4ECF2; --mist-3: #CFDCE6;
    --ink: #0B1F2E; --ink-2: #3D5266; --ink-3: #5A6B7B;
    --on-dark: #FFFFFF; --on-dark-2: #C7D5E0; --on-dark-3: #A9BCCB;

    /* type */
    --f-sans: "Jakarta", "Jakarta-fallback", "Helvetica Neue", Arial, sans-serif;
    --f-serif: "Serif4", Georgia, "Times New Roman", serif;
    --t-display: clamp(2.55rem, 1.5rem + 4.6vw, 5.6rem);
    --t-h1: clamp(2.3rem, 1.5rem + 3.4vw, 4.4rem);
    --t-h2: clamp(1.95rem, 1.35rem + 2.5vw, 3.4rem);
    --t-h3: clamp(1.3rem, 1.1rem + 0.8vw, 1.75rem);
    --t-h4: clamp(1.1rem, 1.04rem + 0.3vw, 1.25rem);
    --t-lead: clamp(1.15rem, 1.06rem + 0.45vw, 1.4rem);
    --t-body: clamp(1.0625rem, 1.02rem + 0.18vw, 1.125rem);
    --t-small: 0.9375rem;
    --t-label: 0.8125rem;
    --t-figure: clamp(2.8rem, 1.8rem + 4vw, 5.2rem);
    --w-body: 420; --w-ui: 600; --w-head: 720; --w-display: 780;

    /* space & layout */
    --gutter: clamp(16px, 4vw, 64px);
    --gap: clamp(16px, 2.2vw, 36px);
    --wrap: 1440px;
    --measure: 64ch;
    --sec-y: clamp(72px, 9vw, 144px);
    --sec-y-sm: clamp(48px, 6vw, 88px);
    --header-h: 76px;
    --r: 6px;         /* buttons, inputs, cards */
    --r-img: 4px;     /* photographs */

    /* motion */
    --e-out: cubic-bezier(0.16, 1, 0.3, 1);
    --e-inout: cubic-bezier(0.65, 0, 0.35, 1);
    --d-micro: 0.18s; --d-ui: 0.4s; --d-reveal: 0.9s;

    color-scheme: light;
  }

  /* Environments. Every top-level section declares one; components read these. */
  :root, [data-theme="white"] {
    --bg: var(--white); --bg-2: var(--mist); --bg-3: var(--mist-2);
    --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
    --line: rgba(11, 31, 46, 0.12); --line-2: rgba(11, 31, 46, 0.24);
    --accent: var(--blue-ink); --accent-2: var(--green-ink); --mark: var(--blue); --mark-2: var(--green);
    --btn-bg: var(--blue-ink); --btn-fg: var(--white); --btn-hover: var(--navy);
    --focus: var(--blue-ink);
  }
  [data-theme="mist"] {
    --bg: var(--mist); --bg-2: var(--white); --bg-3: var(--mist-2);
    --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
    --line: rgba(11, 31, 46, 0.12); --line-2: rgba(11, 31, 46, 0.24);
    --accent: var(--blue-ink); --accent-2: var(--green-ink); --mark: var(--blue); --mark-2: var(--green);
    --btn-bg: var(--blue-ink); --btn-fg: var(--white); --btn-hover: var(--navy);
    --focus: var(--blue-ink);
  }
  [data-theme="leaf"] {
    --bg: var(--green-wash); --bg-2: var(--white); --bg-3: #DDEDC8;
    --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-2);
    --line: rgba(11, 31, 46, 0.14); --line-2: rgba(11, 31, 46, 0.26);
    --accent: var(--green-ink); --accent-2: var(--blue-ink); --mark: var(--green); --mark-2: var(--blue);
    --btn-bg: var(--blue-ink); --btn-fg: var(--white); --btn-hover: var(--navy);
    --focus: var(--blue-ink);
  }
  [data-theme="navy"] {
    --bg: var(--navy); --bg-2: var(--navy-2); --bg-3: var(--navy-3);
    --fg: var(--on-dark); --fg-2: var(--on-dark-2); --fg-3: var(--on-dark-3);
    --line: rgba(255, 255, 255, 0.14); --line-2: rgba(255, 255, 255, 0.3);
    --accent: var(--blue); --accent-2: var(--green); --mark: var(--blue); --mark-2: var(--green);
    --btn-bg: var(--green); --btn-fg: var(--navy); --btn-hover: var(--white);
    --focus: var(--green);
    color-scheme: dark;
  }
  [data-theme="blue"] {
    --bg: var(--blue-deep); --bg-2: #0D5C90; --bg-3: #1469A0;
    --fg: var(--on-dark); --fg-2: #D6E9F5; --fg-3: #BFE3F5;
    --line: rgba(255, 255, 255, 0.18); --line-2: rgba(255, 255, 255, 0.36);
    --accent: #BFE3F5; --accent-2: #C3E59A; --mark: var(--green); --mark-2: var(--blue);
    --btn-bg: var(--white); --btn-fg: var(--blue-deep); --btn-hover: var(--green);
    --focus: var(--green);
    color-scheme: dark;
  }
}

/* Base: reset, type, layout primitives, photographs, motion states. */
@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
  html.lenis, html.lenis body { height: auto; }
  .lenis.lenis-smooth { scroll-behavior: auto !important; }
  body {
    margin: 0; background: var(--white); color: var(--ink);
    font-family: var(--f-sans); font-size: var(--t-body); font-weight: var(--w-body); line-height: 1.65;
    font-feature-settings: "kern", "liga"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility; overflow-x: clip;
  }
  body.menu-open { overflow: hidden; }
  img, svg, video { display: block; max-width: 100%; }
  img { height: auto; }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
  input, textarea, select { font: inherit; color: inherit; }
  h1, h2, h3, h4, h5, p, figure, blockquote, dl, dd, ol, ul { margin: 0; }
  ol, ul { padding: 0; list-style: none; }
  table { border-collapse: collapse; }
  [hidden] { display: none !important; }
  ::selection { background: var(--green); color: var(--navy); }

  /* environments paint themselves */
  [data-theme] { background-color: var(--bg); color: var(--fg); }

  /* headings */
  h1, h2, h3, h4, .h1, .h2, .h3, .h4 { font-weight: var(--w-head); line-height: 1.08; letter-spacing: -0.022em; text-wrap: balance; color: var(--fg); }
  h1, .h1 { font-size: var(--t-h1); font-weight: var(--w-display); line-height: 1.03; letter-spacing: -0.032em; }
  h2, .h2 { font-size: var(--t-h2); letter-spacing: -0.028em; }
  h3, .h3 { font-size: var(--t-h3); line-height: 1.18; letter-spacing: -0.016em; }
  h4, .h4 { font-size: var(--t-h4); line-height: 1.3; letter-spacing: -0.01em; }
  /* the editorial accent: a serif italic, in the brand blue */
  h1 em, h2 em, h3 em, .display em, .em-serif { font-family: var(--f-serif); font-style: italic; font-weight: 560; letter-spacing: -0.02em; color: var(--accent); }
  p { text-wrap: pretty; }
  strong, b { font-weight: 700; }
  .lead { font-size: var(--t-lead); line-height: 1.5; font-weight: 450; color: var(--fg-2); max-width: 46ch; }
  .label {
    font-size: var(--t-label); font-weight: 680; letter-spacing: 0.07em; text-transform: uppercase; line-height: 1.35; color: var(--fg-2);
  }
  /* the kicker: two brand dots, then the label */
  .kicker { display: inline-flex; align-items: center; gap: 12px; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); line-height: 1.3; }
  .kicker::before { content: ""; flex: none; width: 22px; height: 10px; background:
    radial-gradient(circle at 5px 5px, var(--mark) 4.2px, transparent 4.8px),
    radial-gradient(circle at 15px 5px, var(--mark-2) 4.2px, transparent 4.8px); }
  .num { font-variant-numeric: tabular-nums lining-nums; }
  .nowrap { white-space: nowrap; }
  .note { font-size: var(--t-small); color: var(--fg-2); max-width: var(--measure); }
  small, .small { font-size: var(--t-small); }

  /* text links */
  .link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.22em; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); transition: color var(--d-micro), text-decoration-color var(--d-micro); }
  .link:hover { color: var(--accent); text-decoration-color: currentColor; }
  .out-mark { display: inline-block; width: 0.6em; height: 0.6em; margin-left: 0.25em; vertical-align: 0.1em; }

  /* layout */
  .wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
  .wrap--narrow { max-width: calc(980px + var(--gutter) * 2); }
  .visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 12px 18px; background: var(--navy); color: var(--white); font-weight: 650; border-radius: var(--r); transform: translateY(-200%); transition: transform var(--d-ui) var(--e-out); }
  .skip-link:focus { transform: none; }
  main:focus { outline: none; }

  /* focus: always visible on keyboard */
  :focus-visible { outline: 2.5px solid var(--focus); outline-offset: 3px; border-radius: 2px; }

  /* icons */
  .i { display: inline-block; vertical-align: -0.125em; width: 1em; height: 1em; flex: none; }

  /* photographs: a frame that crops, a blurred placeholder underneath */
  .photo { position: relative; display: block; overflow: hidden; background-size: cover; background-position: center; background-color: var(--mist-2); border-radius: var(--r-img); }
  .photo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--focus, 50% 50%); }
  .photo img[data-parallax] { position: absolute; left: 0; top: -9%; width: 100%; height: 118%; will-change: transform; }
  .fig { margin: 0; }
  .cap { display: flex; flex-wrap: wrap; gap: 2px 10px; margin-top: 12px; font-size: 0.875rem; line-height: 1.45; color: var(--fg-2); }
  .cap__k { font-weight: 680; color: var(--fg-2); }
  .cap__line { display: block; flex-basis: 100%; }
  .cap__line + .cap__line { margin-top: 2px; }
  .cap__k::after { content: "·"; margin-left: 10px; color: var(--fg-3); font-weight: 400; }
  /* a caption laid over the photograph */
  .cap--over { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 40px 18px 14px; color: #fff; background: linear-gradient(to top, rgba(6, 18, 28, 0.78), transparent); border-radius: 0 0 var(--r-img) var(--r-img); }
  .cap--over .cap__k { color: #fff; }
  .cap--over .cap__k::after { color: rgba(255,255,255,.7); }

  /* motion states: hidden only once <html> carries .motion (set by the runtime) */
  .motion [data-reveal]:not(.is-in) { opacity: 0; }
  .motion [data-reveal="mask"]:not(.is-in) { opacity: 1; clip-path: inset(100% 0 0 0); }
  .motion [data-stagger] > :not(.is-in) { opacity: 0; }
  .motion [data-split]:not(.is-split) { opacity: 0; }

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

/* Chrome: header, mega panels, mobile menu, breadcrumb, footer, progress. */
@layer chrome {
  /* ---------- header ---------- */
  .hdr { position: fixed; inset: 0 0 auto 0; z-index: 100; color: var(--ink); transition: transform var(--d-ui) var(--e-out); }
  .hdr::before { content: ""; position: absolute; inset: 0; background: var(--white); box-shadow: 0 1px 0 rgba(11, 31, 46, 0.1); opacity: 1; transition: opacity var(--d-ui); pointer-events: none; }
  .hdr__bar { position: relative; display: flex; align-items: center; gap: 20px; height: var(--header-h); }
  .hdr__btn, .hdr__util, .hdr__cta { white-space: nowrap; }
  .hdr__brand { flex: none; display: block; position: relative; }
  .hdr__logo { height: 38px; width: auto; transition: opacity var(--d-micro); }
  .hdr__logo--light { position: absolute; inset: 0; opacity: 0; }
  .hdr__nav { margin-left: auto; }
  .hdr__list { display: flex; gap: 0; }
  .hdr__btn { display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 11px; font-size: 0.96875rem; font-weight: 620; border-radius: var(--r); transition: background var(--d-micro), color var(--d-micro); }
  .hdr__btn .i { width: 13px; height: 13px; transition: transform var(--d-ui) var(--e-out); }
  .hdr__btn[aria-expanded="true"] .i { transform: rotate(180deg); }
  .hdr__btn:hover, .hdr__btn[aria-expanded="true"] { background: var(--mist); }
  .hdr__item.is-active .hdr__btn { color: var(--blue-ink); box-shadow: inset 0 -2px 0 var(--green); border-radius: var(--r) var(--r) 0 0; }
  .hdr__aux { display: flex; align-items: center; gap: 18px; }
  .hdr__utils { display: flex; gap: 14px; padding-left: 16px; border-left: 1px solid rgba(11, 31, 46, 0.14); }
  .hdr__util { display: inline-flex; align-items: center; gap: 4px; font-size: 0.875rem; font-weight: 560; color: var(--ink-2); transition: color var(--d-micro); }
  .hdr__util .i { width: 11px; height: 11px; }
  .hdr__util:hover, .hdr__util.is-current { color: var(--blue-ink); }
  .hdr__menu { display: none; align-items: center; gap: 10px; height: 42px; padding: 0 14px; border-radius: var(--r); border: 1.5px solid currentColor; font-size: 0.9375rem; font-weight: 650; }
  .hdr__menu-icon { display: grid; gap: 5px; width: 18px; }
  .hdr__menu-icon i { display: block; height: 2px; background: currentColor; border-radius: 1px; transition: transform var(--d-ui) var(--e-out); }
  .hdr__menu[aria-expanded="true"] .hdr__menu-icon i:first-child { transform: translateY(3.5px) rotate(45deg); }
  .hdr__menu[aria-expanded="true"] .hdr__menu-icon i:last-child { transform: translateY(-3.5px) rotate(-45deg); }

  /* transparent over a dark page head, until it scrolls */
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) { color: var(--white); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open)::before { opacity: 0; }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__logo--light { opacity: 1; }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__logo--dark { opacity: 0; }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__util { color: rgba(255, 255, 255, 0.86); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__utils { border-color: rgba(255, 255, 255, 0.24); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__btn:hover { background: rgba(255, 255, 255, 0.12); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__item.is-active .hdr__btn { color: var(--white); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open) .hdr__cta { --btn-bg: var(--green); --btn-fg: var(--navy); --btn-hover: var(--white); }
  .hdr[data-on="dark"]:not(.is-condensed):not(.is-open)::after { content: ""; position: absolute; inset: 0 0 -40px 0; z-index: -1; background: linear-gradient(to bottom, rgba(6, 18, 28, 0.55), transparent); pointer-events: none; }
  .hdr.is-hidden { transform: translateY(-100%); }
  .menu-open .hdr { color: var(--white); }
  .menu-open .hdr::before { background: var(--navy); box-shadow: none; }
  .menu-open .hdr .hdr__logo--light { opacity: 1; }
  .menu-open .hdr .hdr__logo--dark { opacity: 0; }

  /* ---------- mega panels ---------- */
  .mega { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); color: var(--ink); border-top: 1px solid var(--mist-2); box-shadow: 0 30px 60px -30px rgba(11, 31, 46, 0.35); }
  .mega__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr); gap: 48px; padding-block: 40px 44px; }
  .mega__lead { margin: 14px 0 20px; font-size: 1.1875rem; line-height: 1.45; font-weight: 560; color: var(--ink); max-width: 28ch; }
  .mega__links { display: grid; gap: 4px 28px; align-content: start; }
  .mega__links--2 { grid-template-columns: 1fr 1fr; }
  .mega__link { display: grid; gap: 3px; padding: 14px 16px; border-radius: var(--r); transition: background var(--d-micro); }
  .mega__link:hover, .mega__link.is-current { background: var(--mist); }
  .mega__label { font-weight: 680; font-size: 1.0625rem; color: var(--ink); }
  .mega__link:hover .mega__label { color: var(--blue-ink); }
  .mega__desc { font-size: 0.9375rem; line-height: 1.45; color: var(--ink-3); }
  .mega__fig .photo { aspect-ratio: 4 / 3; }
  .mega__fig .cap { font-size: 0.875rem; }
  .mega-scrim { position: fixed; inset: 0; top: var(--header-h); z-index: -2; background: rgba(11, 31, 46, 0.38); opacity: 0; pointer-events: none; transition: opacity var(--d-ui); }
  .hdr.is-mega .mega-scrim { opacity: 1; pointer-events: auto; }
  .hdr.is-mega { color: var(--ink); }

  /* ---------- mobile menu ---------- */
  .menu { position: fixed; inset: 0; z-index: 90; overflow-y: auto; overscroll-behavior: contain; padding-top: calc(var(--header-h) + 12px); }
  .menu__inner { display: grid; gap: 40px; padding-bottom: 48px; }
  .menu__groups { border-top: 1px solid var(--line); }
  .menu__group { border-bottom: 1px solid var(--line); }
  .menu__gbtn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 18px 0; font-size: clamp(1.5rem, 5vw, 2rem); font-weight: 720; letter-spacing: -0.02em; text-align: left; }
  .menu__gbtn .i { width: 20px; height: 20px; color: var(--green); transition: transform var(--d-ui) var(--e-out); }
  .menu__gbtn[aria-expanded="true"] .i { transform: rotate(45deg); }
  .menu__kids { display: grid; gap: 2px; padding: 0 0 20px; }
  .menu__kids a { display: block; padding: 9px 0; font-size: 1.125rem; font-weight: 500; color: var(--fg-2); }
  .menu__kids a[aria-current="page"], .menu__kids a:hover { color: var(--white); }
  .menu__kids a[aria-current="page"]::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: var(--green); vertical-align: 0.1em; }
  .menu__util { display: flex; flex-wrap: wrap; gap: 10px 24px; }
  .menu__util a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
  .menu__util .i { width: 12px; height: 12px; }
  .menu__foot { display: grid; gap: 14px; justify-items: start; }
  .menu__foot .link { font-weight: 600; }

  @media (max-width: 1380px) {
    .hdr__utils { display: none; }
  }
  @media (max-width: 1023px) {
    .hdr__nav, .hdr__cta { display: none; }
    .hdr__menu { display: inline-flex; }
    .hdr__aux { margin-left: auto; }
    :root { --header-h: 68px; }
    .hdr__logo { height: 34px; }
  }
  @media (min-width: 1024px) { .menu { display: none !important; } }

  /* ---------- breadcrumb ---------- */
  .crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 0.875rem; font-weight: 560; color: var(--fg-2); }
  .crumbs li:not(:last-child)::after { content: "/"; margin: 0 10px; color: var(--fg-3); opacity: 0.7; }
  .crumbs a { color: var(--fg-2); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.2em; transition: color var(--d-micro), text-decoration-color var(--d-micro); }
  .crumbs a:hover { color: var(--fg); text-decoration-color: currentColor; }
  .crumbs [aria-current] { color: var(--fg); }

  /* ---------- footer ---------- */
  .ftr { padding-top: clamp(56px, 7vw, 96px); }
  .ftr__close { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 32px 64px; align-items: end; padding-bottom: clamp(40px, 5vw, 64px); border-bottom: 1px solid var(--line); }
  .ftr__lead { margin-top: 14px; font-size: var(--t-h2); font-weight: 740; line-height: 1.06; letter-spacing: -0.03em; text-wrap: balance; }
  .ftr__ways { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
  .ftr__way { display: flex; gap: 16px; align-items: flex-start; padding: 22px 24px; border-radius: var(--r); background: var(--navy-2); border: 1px solid var(--line); transition: background var(--d-ui), border-color var(--d-ui); }
  .ftr__way:hover { background: var(--navy-3); border-color: var(--green); }
  .ftr__way > .i { width: 24px; height: 24px; margin-top: 2px; color: var(--green); }
  .ftr__way > span { display: grid; gap: 6px; min-width: 0; }
  .ftr__wk { font-size: 0.875rem; color: var(--fg-2); line-height: 1.4; }
  .ftr__wv { font-size: clamp(1.05rem, 0.9rem + 0.5vw, 1.3rem); font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; }
  .ftr__main { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 48px 64px; padding-block: clamp(40px, 5vw, 64px); }
  .ftr__id img { height: 42px; width: auto; }
  .ftr__tag { margin-top: 20px; max-width: 34ch; font-size: 1.0625rem; color: var(--fg); font-weight: 500; line-height: 1.5; }
  .ftr__addr { margin-top: 16px; font-size: 0.9375rem; color: var(--fg-2); line-height: 1.6; }
  .ftr__social { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
  .ftr__soc { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: var(--r); border: 1px solid var(--line-2); font-size: 0.9375rem; font-weight: 620; transition: background var(--d-micro), border-color var(--d-micro); }
  .ftr__soc:hover { background: var(--navy-2); border-color: var(--green); }
  .ftr__soc .i { width: 17px; height: 17px; }
  .ftr__soc img { height: 21px; width: auto; }
  .ftr__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
  .ftr__h { margin-bottom: 14px; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--green); }
  .ftr__col ul { display: grid; gap: 10px; }
  .ftr__col a { font-size: 0.96875rem; color: var(--fg-2); transition: color var(--d-micro); }
  .ftr__col a:hover { color: var(--white); text-decoration: underline; text-underline-offset: 0.2em; }
  .ftr__legal { display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: center; padding-block: 24px 32px; border-top: 1px solid var(--line); font-size: 0.875rem; color: var(--fg-2); }
  .ftr__legal-links { display: flex; gap: 24px; }
  .ftr__legal a:hover { color: var(--white); }
  .ftr__credits { margin-left: auto; max-width: 100%; }
  .ftr__credits summary { cursor: pointer; text-decoration: underline; text-underline-offset: 0.2em; }
  .ftr__credits ul { margin-top: 12px; display: grid; gap: 6px; font-size: 0.875rem; max-width: 90ch; overflow-wrap: anywhere; }
  @media (max-width: 1023px) {
    .ftr__close, .ftr__main { grid-template-columns: 1fr; }
    .ftr__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 600px) {
    .ftr__ways { grid-template-columns: 1fr; }
    .ftr__credits { margin-left: 0; }
  }

  /* ---------- reading progress ---------- */
  .progress { position: fixed; z-index: 101; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--blue), var(--green)); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
}

/* Components shared by every page. */
@layer components {
  /* ---------- buttons ---------- */
  .btn { display: inline-flex; align-items: center; gap: 10px; min-height: 50px; padding: 0 22px; border-radius: var(--r); font-size: 1rem; font-weight: 680; line-height: 1.2; letter-spacing: -0.005em; text-align: left; transition: background var(--d-ui) var(--e-out), color var(--d-ui) var(--e-out), border-color var(--d-ui) var(--e-out), box-shadow var(--d-ui); }
  .btn__icon { display: inline-flex; transition: transform var(--d-ui) var(--e-out); }
  .btn__icon .i { width: 16px; height: 16px; }
  .btn:hover .btn__icon { transform: translateX(4px); }
  .btn:hover .i--out { transform: translate(1px, -1px); }
  .btn--solid { background: var(--btn-bg); color: var(--btn-fg); }
  .btn--solid:hover { background: var(--btn-hover); color: var(--btn-hover-fg, var(--bg)); }
  [data-theme="navy"] .btn--solid:hover, [data-theme="blue"] .btn--solid:hover { color: var(--navy); }
  .btn--line { border: 1.5px solid var(--line-2); color: var(--fg); background: transparent; }
  .btn--line:hover { border-color: var(--fg); background: color-mix(in srgb, var(--fg) 6%, transparent); }
  .btn--text { min-height: 44px; padding: 0; gap: 8px; color: var(--accent); background: none; }
  .btn--text .btn__label { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; padding-bottom: 2px; transition: background-size var(--d-ui) var(--e-out); }
  .btn--text:hover .btn__label { background-size: 100% 1.5px; }
  .btn--sm { min-height: 42px; padding: 0 16px; font-size: 0.9375rem; }
  .btn--text.btn--sm { padding: 0; }
  .btn-row { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }

  /* ---------- section scaffold ---------- */
  .sec { padding-block: var(--sec-y); position: relative; }
  .sec--tight { padding-block: var(--sec-y-sm); }
  .sec__head { margin-bottom: clamp(36px, 5vw, 64px); }
  .sec__head--split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 20px 64px; align-items: end; }
  .sec__head--center { text-align: center; justify-items: center; display: grid; }
  .sec__titles { display: grid; gap: 16px; justify-items: start; }
  .sec__head--center .sec__titles { justify-items: center; }
  .sec__title { max-width: 20ch; }
  .sec__aside { display: grid; gap: 14px; justify-items: start; }
  .sec__lead { font-size: var(--t-lead); line-height: 1.5; color: var(--fg-2); font-weight: 450; max-width: 44ch; }
  @media (max-width: 860px) { .sec__head--split { grid-template-columns: 1fr; } }

  /* ---------- page heads ---------- */
  .ph { position: relative; }
  .ph__title { max-width: 18ch; overflow-wrap: break-word; }
  .ph__kicker { margin-bottom: 18px; }
  .ph__stand { margin-top: 24px; font-size: var(--t-lead); line-height: 1.5; font-weight: 450; color: var(--fg-2); max-width: 48ch; }
  .ph__role { margin-top: 18px; font-size: 1.0625rem; font-weight: 650; color: var(--accent); }
  .ph__actions { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 32px; }
  .ph .crumbs { margin-bottom: clamp(28px, 4vw, 48px); }
  /* feature: full-bleed photograph */
  .ph--feature { min-height: min(86svh, 860px); display: flex; overflow: hidden; isolation: isolate; color: var(--white); }
  .ph--feature .ph__media { position: absolute; inset: 0; z-index: -2; }
  .ph--feature .ph__media .photo { height: 100%; border-radius: 0; }
  .ph--feature .ph__veil { position: absolute; inset: 0; z-index: -1; background:
      linear-gradient(to right, rgba(8, 24, 36, 0.92) 0%, rgba(8, 24, 36, 0.74) 46%, rgba(8, 24, 36, 0.18) 82%),
      linear-gradient(to top, rgba(8, 24, 36, 0.8) 0%, transparent 46%); }
  .ph--feature .ph__inner { position: relative; display: flex; flex-direction: column; padding-top: calc(var(--header-h) + clamp(24px, 4vw, 48px)); padding-bottom: clamp(40px, 6vw, 80px); }
  .ph--feature .ph__text { margin-top: auto; max-width: 860px; }
  .ph--feature .ph__title { color: var(--white); font-size: var(--t-display); max-width: 16ch; }
  .ph--feature .ph__title em { color: var(--green); }
  .ph--feature .ph__stand { color: rgba(255, 255, 255, 0.9); }
  .ph--feature .crumbs ol, .ph--feature .crumbs a { color: rgba(255, 255, 255, 0.85); }
  .ph--feature .crumbs [aria-current] { color: #fff; }
  .ph--feature .kicker { color: #fff; }
  .ph__cap { position: absolute; right: var(--gutter); bottom: 20px; max-width: 36ch; font-size: 0.875rem; color: rgba(255, 255, 255, 0.8); text-align: right; }
  .ph-facts { padding-block: 28px; border-bottom: 1px solid var(--line); }
  .ph-facts .facts { margin-top: 0; }
  /* split: title beside a tall photograph */
  .ph--split { padding-top: calc(var(--header-h) + clamp(32px, 5vw, 72px)); padding-bottom: clamp(48px, 6vw, 88px); overflow: hidden; }
  .ph--split .ph__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(32px, 5vw, 88px); align-items: center; }
  .ph--split .ph__fig .photo { aspect-ratio: 5 / 4; }
  .ph--split .ph__fig { position: relative; }
  .ph--split .ph__fig .cap { padding-top: 10px; border-top: 3px solid var(--green); width: fit-content; }
  /* band: title and standfirst side by side, then a cinematic strip */
  .ph--band { padding-top: calc(var(--header-h) + clamp(28px, 4vw, 56px)); padding-bottom: clamp(32px, 4vw, 56px); }
  .ph--band .ph__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px clamp(32px, 5vw, 88px); align-items: end; }
  .ph--band .ph__stand { margin-top: 0; }
  .ph__strip { margin-top: clamp(32px, 4vw, 56px); }
  .ph__strip .photo { aspect-ratio: 21 / 8; }
  @media (max-width: 960px) { .ph--band .ph__grid { grid-template-columns: 1fr; } .ph__strip .photo { aspect-ratio: 3 / 2; } }
  /* plain: typographic */
  .ph--plain { padding-top: calc(var(--header-h) + clamp(32px, 5vw, 72px)); padding-bottom: clamp(48px, 6vw, 88px); border-bottom: 4px solid transparent; border-image: linear-gradient(90deg, var(--blue) 0 50%, var(--green) 50% 100%) 1; }
  .ph--plain .ph__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 40px 64px; align-items: end; }
  .ph__index { padding: 24px; background: var(--white); border-radius: var(--r); border: 1px solid var(--line); }
  .ph__index-k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
  .ph__index ol { display: grid; gap: 2px; counter-reset: ix; }
  .ph__index li { counter-increment: ix; }
  .ph__index a { display: flex; gap: 12px; padding: 7px 0; font-weight: 560; font-size: 0.96875rem; color: var(--fg); }
  .ph__index a::before { content: counter(ix, decimal-leading-zero); color: var(--fg-3); font-variant-numeric: tabular-nums; }
  .ph__index a:hover { color: var(--accent); }
  /* profile */
  .ph--profile { padding-top: calc(var(--header-h) + clamp(32px, 5vw, 72px)); padding-bottom: clamp(48px, 6vw, 88px); }
  .ph--profile .ph__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 32px 64px; align-items: center; }
  .ph--profile .ph__title { color: var(--white); }
  .ph__portrait .photo { width: 100%; max-width: 240px; aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 6px var(--navy), 0 0 0 9px var(--green); }
  @media (max-width: 960px) {
    .ph--split .ph__grid, .ph--plain .ph__grid, .ph--profile .ph__grid { grid-template-columns: 1fr; }
    .ph--split .ph__fig .photo { aspect-ratio: 3 / 2; }
    .ph__cap { position: static; margin-top: 24px; text-align: left; }
    .ph--feature { min-height: 0; }
    .ph--feature .ph__inner { padding-top: calc(var(--header-h) + 160px); }
    .ph--feature .ph__veil { background: linear-gradient(to top, rgba(8, 24, 36, 0.94) 0%, rgba(8, 24, 36, 0.7) 55%, rgba(8, 24, 36, 0.25) 100%); }
  }

  /* facts row */
  .facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; margin-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
  .facts__cell { padding: 20px 24px 4px 0; }
  .facts__cell + .facts__cell { padding-left: 24px; border-left: 1px solid var(--line); }
  .facts dt { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .facts dd { margin-top: 6px; font-size: 1.0625rem; font-weight: 600; color: var(--fg); }
  @media (max-width: 640px) { .facts { grid-template-columns: 1fr 1fr; } .facts__cell, .facts__cell + .facts__cell { padding: 16px 12px 4px 0; border-left: 0; } .facts__cell:nth-child(n+3) { border-top: 1px solid var(--line); } .facts dd { font-size: 1rem; } }

  /* ---------- prose ---------- */
  .prose { max-width: var(--measure); }
  .prose > * + * { margin-top: 1.1em; }
  .prose h2 { font-size: var(--t-h3); margin-top: 1.8em; }
  .prose h3 { font-size: var(--t-h4); margin-top: 1.6em; }
  .prose p, .prose li { color: var(--fg-2); }
  .prose strong { color: var(--fg); }
  .prose a:not(.btn) { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
  .prose a:not(.btn):hover { text-decoration-thickness: 2px; }
  .prose ul { display: grid; gap: 10px; }
  .prose ul li { position: relative; padding-left: 26px; }
  .prose ul li::before { content: ""; position: absolute; left: 2px; top: 0.62em; width: 9px; height: 9px; border-radius: 50%; background: var(--mark-2); }
  .prose--lead p { font-size: var(--t-lead); line-height: 1.55; color: var(--fg); font-weight: 450; }
  .pull { padding-left: 24px; border-left: 4px solid var(--mark-2); }
  .pull p { font-family: var(--f-serif); font-style: italic; font-weight: 520; font-size: var(--t-h3); line-height: 1.35; color: var(--fg) !important; }
  .footnote { margin-top: 16px; font-size: var(--t-small); color: var(--fg-2); max-width: var(--measure); }
  .source { margin-top: 28px; font-size: var(--t-small); color: var(--fg-2); max-width: 70ch; }
  .source .label { color: var(--accent); margin-right: 6px; }

  /* ---------- figures ---------- */
  .figs__cells { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; border-top: 1px solid var(--line); }
  .figs__cell { padding: 24px 24px 8px 0; }
  .figs__fig { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 8px; line-height: 1; }
  .fig__n { font-size: var(--t-figure); font-weight: 780; letter-spacing: -0.04em; color: var(--fg); }
  .fig__unit { font-size: clamp(1.1rem, 1.6vw, 1.5rem); font-weight: 700; color: var(--accent); letter-spacing: -0.01em; }
  .fig__word { font-size: calc(var(--t-figure) * 0.72); font-weight: 760; letter-spacing: -0.03em; }
  .figs__label { margin-top: 12px; font-size: 1rem; font-weight: 600; color: var(--fg-2); }
  .figs__note { margin-top: 6px; font-size: var(--t-small); color: var(--fg-3); }

  /* ---------- link rows ---------- */
  .ix__list { border-top: 1px solid var(--line); }
  .ix__row { border-bottom: 1px solid var(--line); }
  .ix__link { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) auto; gap: 8px 32px; align-items: center; padding: 26px 0; transition: padding var(--d-ui) var(--e-out), background var(--d-ui); }
  .ix__label { font-size: var(--t-h3); font-weight: 720; letter-spacing: -0.02em; line-height: 1.2; color: var(--fg); transition: color var(--d-micro); }
  .ix__desc { color: var(--fg-2); }
  .ix__meta { grid-column: 2; font-size: var(--t-small); color: var(--fg-3); }
  .ix__arrow { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--line-2); color: var(--accent); transition: background var(--d-ui) var(--e-out), color var(--d-ui), border-color var(--d-ui), transform var(--d-ui) var(--e-out); }
  .ix__arrow .i { width: 16px; height: 16px; }
  .ix__link:hover { padding-inline: 16px; background: var(--bg-2); }
  .ix__link:hover .ix__label { color: var(--accent); }
  .ix__link:hover .ix__arrow { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
  @media (max-width: 760px) { .ix__link { grid-template-columns: 1fr auto; } .ix__desc, .ix__meta { grid-column: 1; } .ix__arrow { grid-row: 1 / span 2; grid-column: 2; } }

  /* ---------- photo cards ---------- */
  .pcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--gap); }
  .pcard__a { display: grid; height: 100%; grid-template-rows: auto 1fr; border-radius: var(--r); overflow: hidden; background: var(--bg-2); transition: transform var(--d-ui) var(--e-out), box-shadow var(--d-ui); }
  .pcard__media .photo { border-radius: 0; }
  .pcard__media img { transition: transform 1.2s var(--e-out); }
  .pcard__a:hover .pcard__media img { transform: scale(1.06); }
  .pcard__a:hover { box-shadow: 0 24px 48px -28px rgba(11, 31, 46, 0.45); }
  .pcard__body { display: grid; gap: 10px; align-content: start; padding: 24px 24px 28px; position: relative; }
  .pcard__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .pcard__t { font-size: var(--t-h4); font-weight: 720; line-height: 1.25; color: var(--fg); }
  .pcard__d { color: var(--fg-2); font-size: 1rem; }
  .pcard__go { margin-top: 6px; color: var(--accent); }
  .pcard__go .i { width: 18px; height: 18px; transition: transform var(--d-ui) var(--e-out); }
  .pcard__a:hover .pcard__go .i { transform: translateX(6px); }

  /* ---------- tags & badges ---------- */
  .tag { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 0.78125rem; font-weight: 700; letter-spacing: 0.02em; background: var(--blue-wash); color: var(--blue-deep); white-space: nowrap; }
  .tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
  .tag--forum { background: var(--blue-wash); color: var(--blue-deep); }
  .tag--partner { background: var(--green-wash); color: var(--green-ink); }
  .tag--ours { background: #FFF1D6; color: #7A4B00; }
  .tag--part { background: var(--mist-2); color: var(--ink-2); }
  [data-theme="navy"] .tag, [data-theme="blue"] .tag { background: rgba(255,255,255,.12); color: #fff; }
  [data-theme="navy"] .tag--forum::before { background: var(--blue); }
  [data-theme="navy"] .tag--partner::before { background: var(--green); }
  .badge { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px; font-size: 0.875rem; font-weight: 650; background: var(--bg-3); color: var(--fg-2); }
  .badge--ok { background: var(--green-wash); color: var(--green-ink); }

  /* ---------- events: ruled rows ---------- */
  .evs { border-top: 1px solid var(--line); }
  .ev { display: grid; grid-template-columns: minmax(120px, 2fr) minmax(0, 6fr) minmax(0, 3fr); gap: 16px 40px; padding: 32px 0; border-bottom: 1px solid var(--line); }
  .ev:not(.ev--pic) .ev__main { grid-column: 2 / span 2; }
  .ev__date { display: grid; gap: 4px; align-content: start; }
  .ev__d { font-size: 1.125rem; font-weight: 700; color: var(--fg); }
  .ev__y { font-size: 0.9375rem; font-weight: 600; color: var(--fg-3); }
  .ev__main { display: grid; gap: 10px; justify-items: start; }
  .ev__name { font-size: var(--t-h4); font-weight: 720; line-height: 1.3; max-width: 46ch; }
  .ev__meta { display: flex; gap: 8px; align-items: flex-start; font-size: 0.96875rem; color: var(--fg-2); }
  .ev__meta .i { width: 16px; height: 16px; margin-top: 3px; color: var(--accent); }
  .ev__conv { font-size: 0.9375rem; color: var(--fg-3); }
  .ev__sum { color: var(--fg-2); max-width: 60ch; }
  .ev__go { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 680; color: var(--accent); }
  .ev__go .i { width: 15px; height: 15px; transition: transform var(--d-ui) var(--e-out); }
  .ev__go:hover .i { transform: translate(3px, -1px); }
  .ev__more summary { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 650; cursor: pointer; list-style: none; color: var(--fg); }
  .ev__more summary::-webkit-details-marker { display: none; }
  .ev__more summary .i { width: 14px; height: 14px; color: var(--accent); transition: transform var(--d-ui) var(--e-out); }
  .ev__more[open] summary .i { transform: rotate(45deg); }
  .ev__more-body { overflow: hidden; }
  .ev__more-body p { padding: 6px 0 8px; color: var(--fg-2); max-width: 64ch; }
  .ev__pic .photo { aspect-ratio: 4 / 3; }
  .ev__piccap { margin-top: 8px; font-size: 0.875rem; color: var(--fg-3); }
  .ev--compact { padding: 22px 0; }
  .evyear { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 10fr); gap: 0 40px; }
  .evyear + .evyear { margin-top: 48px; }
  .evyear__y { position: sticky; top: calc(var(--header-h) + 24px); align-self: start; font-size: var(--t-h2); font-weight: 780; color: var(--accent); letter-spacing: -0.03em; }
  @media (max-width: 860px) {
    .ev, .ev--pic { grid-template-columns: 1fr; gap: 12px; }
    .ev:not(.ev--pic) .ev__main { grid-column: auto; }
    .ev__pic { order: -1; }
    .evyear { grid-template-columns: 1fr; }
    .evyear__y { position: static; margin-bottom: 8px; }
  }

  /* ---------- events: image-led card ---------- */
  .evc { display: grid; gap: 20px; align-content: start; }
  .evc__media { position: relative; }
  .evc__media .photo { aspect-ratio: 3 / 2; }
  .evc__media img { transition: transform 1.2s var(--e-out); }
  .evc:hover .evc__media img { transform: scale(1.04); }
  .evc__cap { margin-top: 8px; font-size: 0.875rem; color: var(--fg-3); }
  .evc__media--type { display: grid; place-items: end start; aspect-ratio: 3 / 2; padding: 24px; border-radius: var(--r-img); background: linear-gradient(135deg, var(--blue-deep), var(--navy)); color: #fff; overflow: hidden; }
  .evc__media--type { place-items: start; align-content: space-between; grid-template-rows: auto 1fr auto; gap: 10px; }
  .evc__online { margin-top: 0 !important; }
  .evc__logo { width: clamp(120px, 14vw, 180px); height: auto; }
  .evc__yr { align-self: end; font-size: clamp(1.6rem, 2.8vw, 2.9rem); font-weight: 800; letter-spacing: -0.04em; line-height: 0.98; color: #fff; }
  .evc__online { margin-top: 12px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(141, 198, 63, 0.18); color: var(--green); font-weight: 700; font-size: 0.875rem; }
  .evc__body { display: grid; gap: 12px; justify-items: start; }
  .evc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 0.9375rem; font-weight: 650; color: var(--fg-2); }
  .evc__t { font-size: var(--t-h3); line-height: 1.2; }
  .evc__t a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size var(--d-ui) var(--e-out), color var(--d-micro); }
  .evc__t a:hover { color: var(--accent); background-size: 100% 2px; }
  .evc__t .i { width: 0.6em; height: 0.6em; margin-left: 0.25em; vertical-align: 0.1em; }
  .evc__place { display: flex; gap: 8px; font-size: 0.96875rem; color: var(--fg-2); }
  .evc__place .i { width: 16px; height: 16px; margin-top: 3px; color: var(--accent); }
  .evc__sum { color: var(--fg-2); max-width: 58ch; }
  .evc--feature .evc__t { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.5rem); line-height: 1.12; }

  /* ---------- tables ---------- */
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .dt { width: 100%; font-size: 1rem; }
  .dt caption { text-align: left; padding-bottom: 12px; color: var(--fg-2); font-size: var(--t-small); }
  .dt th, .dt td { padding: 14px 16px 14px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
  .dt thead th { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); border-bottom: 2px solid var(--fg); }
  .dt tbody th { font-weight: 650; color: var(--fg); }
  .dt td { color: var(--fg-2); }
  .dt .num-col { text-align: right; }
  .dt.is-sortable thead button { display: inline-flex; align-items: center; gap: 6px; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; min-height: 32px; }
  .dt.is-sortable thead button .i { width: 12px; height: 12px; opacity: 0.4; transition: transform var(--d-ui), opacity var(--d-micro); }
  .dt th[aria-sort] button .i { opacity: 1; }
  .dt th[aria-sort="ascending"] button .i { transform: rotate(180deg); }
  .bar-cell { min-width: 220px; }
  .bar-cell__v { display: inline-block; min-width: 4.5ch; font-weight: 700; color: var(--fg); }
  .bar-track { position: relative; display: inline-block; vertical-align: middle; width: calc(100% - 7ch); max-width: 220px; height: 10px; margin-left: 12px; }
  .bar-track::before { content: ""; position: absolute; left: var(--z); top: -4px; bottom: -4px; width: 1px; background: var(--line-2); }
  .bar { position: absolute; top: 0; left: var(--z); width: var(--w); height: 10px; border-radius: 5px; background: linear-gradient(90deg, var(--blue), var(--green)); }
  .bar--neg { left: auto; right: calc(100% - var(--z)); background: #C9725B; }

  /* register sheet */
  .reg { border-top: 1px solid var(--line); }
  .reg__row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 8px 32px; padding: 18px 0; border-bottom: 1px solid var(--line); }
  .reg dt { font-weight: 650; color: var(--fg-2); }
  .reg dd { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-weight: 600; color: var(--fg); }
  .copy-btn { position: relative; display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--r); border: 1px solid var(--line-2); color: var(--accent); transition: background var(--d-micro), border-color var(--d-micro); }
  .copy-btn:hover { background: var(--bg-2); border-color: var(--accent); }
  .copy-btn .i { width: 15px; height: 15px; }
  .copy-btn__done { position: absolute; left: calc(100% + 8px); white-space: nowrap; font-size: 0.875rem; font-weight: 650; color: var(--accent-2); opacity: 0; transition: opacity var(--d-micro); }
  .copy-btn.is-done .copy-btn__done { opacity: 1; }
  @media (max-width: 640px) { .reg__row { grid-template-columns: 1fr; } }

  /* document list */
  .docs { border-top: 1px solid var(--line); }
  .docs__row { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
  .docs__row > .i { width: 26px; height: 26px; color: var(--accent); }
  .docs__main { display: grid; gap: 2px; }
  .docs__title { font-weight: 650; color: var(--fg); }
  .docs__meta { font-size: var(--t-small); color: var(--fg-3); }

  /* ---------- get involved ---------- */
  .inv { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gap); }
  .inv__a { position: relative; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: 10px; height: 100%; padding: 0 0 24px; border-radius: var(--r); overflow: hidden; background: var(--bg-2); transition: box-shadow var(--d-ui), transform var(--d-ui) var(--e-out); }
  .inv__media .photo { aspect-ratio: 4 / 3; border-radius: 0; }
  .inv__media img { transition: transform 1.2s var(--e-out); }
  .inv__a:hover .inv__media img { transform: scale(1.06); }
  .inv__a:hover { box-shadow: 0 24px 48px -28px rgba(11, 31, 46, 0.45); }
  .inv__n { position: absolute; top: 14px; left: 14px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--white); color: var(--navy); font-weight: 760; font-size: 0.9375rem; }
  .inv__t { padding: 10px 22px 0; font-size: 1.25rem; font-weight: 740; line-height: 1.2; letter-spacing: -0.015em; color: var(--fg); }
  .inv__d { padding: 0 22px; font-size: 0.96875rem; line-height: 1.55; color: var(--fg-2); }
  .inv__cta { display: inline-flex; align-items: center; gap: 8px; padding: 8px 22px 0; font-weight: 700; color: var(--accent); }
  .inv__cta .i { width: 15px; height: 15px; transition: transform var(--d-ui) var(--e-out); }
  .inv__a:hover .inv__cta .i { transform: translateX(5px); }
  .inv__foot { margin-top: 36px; color: var(--fg-2); max-width: 70ch; }
  .inv__foot a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  @media (max-width: 1180px) { .inv { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 760px) { .inv { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 520px) { .inv { grid-template-columns: 1fr; } .inv__a { grid-template-columns: 112px 1fr; grid-template-rows: auto; padding: 0; } .inv__media { grid-row: 1 / span 3; } .inv__media .photo { height: 100%; aspect-ratio: auto; } .inv__t { padding: 16px 16px 0 0; font-size: 1.125rem; } .inv__d { padding: 0 16px 0 0; } .inv__cta { padding: 0 16px 16px 0; grid-column: 2; } .inv__n { width: 32px; height: 32px; font-size: 0.875rem; top: 8px; left: 8px; } }

  /* ---------- doors (closing band) ---------- */
  .doors { padding-block: var(--sec-y-sm); }
  .doors__head { display: grid; gap: 14px; margin-bottom: 36px; }
  .doors__title { color: var(--fg); }
  .doors__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
  .door { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); border-radius: var(--r); overflow: hidden; background: var(--bg-2); min-height: 240px; transition: background var(--d-ui); }
  .door { box-shadow: 0 1px 0 var(--line); }
  .door:hover { box-shadow: 0 24px 48px -28px rgba(11, 31, 46, 0.4); }
  .door__media .photo { height: 100%; border-radius: 0; }
  .door__media img { transition: transform 1.2s var(--e-out); }
  .door:hover .door__media img { transform: scale(1.06); }
  .door__body { display: grid; gap: 10px; align-content: start; padding: 28px; position: relative; }
  .door__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-2); }
  .door__t { font-size: var(--t-h3); font-weight: 740; letter-spacing: -0.02em; color: var(--fg); }
  .door__d { color: var(--fg-2); }
  .door__go { display: inline-grid; place-items: center; width: 46px; height: 46px; margin-top: 8px; border-radius: 50%; background: var(--navy); color: var(--white); transition: transform var(--d-ui) var(--e-out), background var(--d-ui); }
  .door__go .i { width: 17px; height: 17px; }
  .door:hover .door__go { transform: translateX(6px); background: var(--green); color: var(--navy); }
  @media (max-width: 860px) { .doors__grid { grid-template-columns: 1fr; } }
  @media (max-width: 520px) { .door { grid-template-columns: 1fr; } .door__media .photo { aspect-ratio: 16 / 9; height: auto; } }

  /* ---------- empty states & slots ---------- */
  .empty { display: grid; gap: 12px; justify-items: start; padding: clamp(28px, 4vw, 48px); border-radius: var(--r); background: var(--bg-2); border: 1px dashed var(--line-2); }
  .empty__text { font-size: var(--t-lead); font-weight: 500; color: var(--fg); max-width: 46ch; line-height: 1.45; }
  .slot { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5; width: 100%; border-radius: var(--r-img); background: linear-gradient(150deg, var(--blue-deep), var(--navy)); color: #fff; overflow: hidden; }
  .slot::after { content: ""; position: absolute; right: -20%; bottom: -20%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: var(--green); opacity: 0.22; }
  .slot__mono { font-size: clamp(3rem, 8vw, 5.5rem); font-weight: 800; letter-spacing: -0.04em; }
  .slot__label { position: absolute; left: 16px; bottom: 14px; font-size: 0.875rem; font-weight: 600; color: rgba(255, 255, 255, 0.85); }
  .notice { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 24px 48px; padding: clamp(28px, 4vw, 48px); border-radius: var(--r); background: var(--bg-2); box-shadow: inset 5px 0 0 var(--mark-2); }
  .notice--slim { grid-template-columns: 1fr; }
  .notice__body { display: grid; gap: 14px; justify-items: start; align-content: start; }
  .notice__text { font-size: var(--t-lead); font-weight: 500; line-height: 1.45; color: var(--fg); max-width: 52ch; }
  .notice__chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .notice__chips li { padding: 8px 14px; border-radius: 999px; background: var(--bg); border: 1px solid var(--line-2); font-weight: 650; font-size: 0.96875rem; }
  .notice__sub { font-size: var(--t-small); color: var(--fg-2); }
  .notice__link { margin-top: 6px; }
  .notice__will { align-self: start; padding: 20px 22px; border-radius: var(--r); background: var(--bg); border: 1px solid var(--line); }
  .notice__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
  .notice__will ul { display: grid; gap: 8px; }
  .notice__will li { display: flex; gap: 10px; align-items: center; font-weight: 600; color: var(--fg-2); }
  .notice__will li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--mark); flex: none; }
  @media (max-width: 760px) { .notice { grid-template-columns: 1fr; } }

  /* ---------- quote ---------- */
  .quote { display: grid; gap: 32px; max-width: 1100px; }
  .quote__text { position: relative; padding-top: 56px; }
  .quote__text::before { content: "“"; position: absolute; top: -18px; left: -6px; font-family: var(--f-serif); font-style: italic; font-weight: 700; font-size: 9rem; line-height: 1; color: var(--mark); }
  .quote__text p { font-family: var(--f-serif); font-style: italic; font-weight: 520; font-size: clamp(1.7rem, 1.1rem + 2.4vw, 3.1rem); line-height: 1.22; letter-spacing: -0.015em; color: var(--fg); text-wrap: balance; }
  .quote__by { display: flex; align-items: center; gap: 18px; }
  .quote__pic .photo { width: 76px; height: 76px; border-radius: 50%; box-shadow: 0 0 0 3px var(--white), 0 0 0 5px var(--mark); }
  .quote__who { display: grid; gap: 4px; }
  .quote__name { font-weight: 740; font-size: 1.125rem; color: var(--fg); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.2em; transition: text-decoration-color var(--d-micro); }
  .quote__name:hover { text-decoration-color: currentColor; }
  .quote__role { font-size: 0.96875rem; color: var(--fg-2); max-width: 60ch; }

  /* ---------- partner logos ---------- */
  .plogos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
  .plogo { background: var(--white); }
  .plogo__a { position: relative; display: grid; grid-template-rows: 1fr auto auto; gap: 6px; height: 100%; min-height: 190px; padding: 22px 20px 18px; transition: background var(--d-ui); }
  .plogo__img { display: grid; place-items: center; min-height: 96px; }
  .plogo__img img { max-width: min(150px, 86%); max-height: 72px; width: auto; height: auto; object-fit: contain; filter: grayscale(1) contrast(1.05); opacity: 0.86; transition: filter var(--d-ui), opacity var(--d-ui), transform var(--d-ui) var(--e-out); }
  .plogo__name { font-size: 0.875rem; font-weight: 650; line-height: 1.35; color: var(--ink); }
  .plogo__host { display: inline-flex; align-items: center; gap: 4px; font-size: 0.875rem; color: var(--ink-3); }
  .plogo__host .i { width: 11px; height: 11px; }
  .plogo__a:hover { background: var(--mist); }
  .plogo__a:hover .plogo__img img, .plogo__a:focus-visible .plogo__img img { filter: none; opacity: 1; transform: scale(1.04); }
  .plogo__a:hover .plogo__host { color: var(--blue-ink); }
  @media (hover: none) { .plogo__img img { filter: none; opacity: 1; } }
  @media (max-width: 680px) { .plogos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .plogo__a { min-height: 160px; padding: 16px 14px; } .plogo__img { min-height: 72px; } }

  /* ---------- stepper ---------- */
  .stepper { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--gap); counter-reset: st; }
  .stepper__a { display: grid; gap: 10px; align-content: start; height: 100%; padding: 26px; border-radius: var(--r); background: var(--bg-2); border-top: 4px solid var(--mark); transition: background var(--d-ui), transform var(--d-ui) var(--e-out); }
  .stepper__step:nth-child(even) .stepper__a { border-top-color: var(--mark-2); }
  .stepper__a:hover { background: var(--bg-3); transform: translateY(-4px); }
  .stepper__n { font-size: 2.25rem; font-weight: 800; letter-spacing: -0.04em; color: var(--accent); line-height: 1; }
  .stepper__t { font-size: var(--t-h4); font-weight: 720; }
  .stepper__d { color: var(--fg-2); font-size: 0.96875rem; }

  /* ---------- accordion ---------- */
  .acc { border-top: 1px solid var(--line); }
  .acc__item { border-bottom: 1px solid var(--line); }
  .acc__sum { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 22px 0; cursor: pointer; list-style: none; }
  .acc__sum::-webkit-details-marker { display: none; }
  .acc__n { font-size: 0.9375rem; font-weight: 700; color: var(--accent); min-width: 2ch; }
  .acc__titles { display: grid; gap: 4px; }
  .acc__t { font-size: var(--t-h4); font-weight: 700; color: var(--fg); transition: color var(--d-micro); }
  .acc__sub { color: var(--fg-2); font-size: 0.96875rem; }
  .acc__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--line-2); color: var(--accent); transition: transform var(--d-ui) var(--e-out), background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .acc__icon .i { width: 15px; height: 15px; }
  .acc__sum:hover .acc__t { color: var(--accent); }
  .acc__item[open] .acc__icon { transform: rotate(45deg); background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
  .acc__body { overflow: hidden; }
  .acc__inner { padding: 0 60px 26px calc(2ch + 20px); color: var(--fg-2); max-width: 80ch; }
  .acc__inner > * + * { margin-top: 0.9em; }
  @media (max-width: 600px) { .acc__inner { padding: 0 0 22px; } }
  .eng + .eng { margin-top: clamp(48px, 6vw, 80px); }
  .eng__head { display: grid; gap: 10px; margin-bottom: 24px; }
  .eng__t { font-size: var(--t-h3); }
  .eng__lead { color: var(--fg-2); max-width: 60ch; }

  /* ---------- tabs ---------- */
  .tabs__list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
  .tabs__tab { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--line-2); font-weight: 650; color: var(--fg-2); transition: background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .tabs__n { font-size: 0.875rem; color: var(--fg-3); }
  .tabs__tab:hover { color: var(--fg); border-color: var(--fg); }
  .tabs__tab[aria-selected="true"] { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-fg); }
  .tabs__tab[aria-selected="true"] .tabs__n { color: inherit; }
  .tabs__panel:focus-visible { outline-offset: 8px; }

  /* ---------- table of contents ---------- */
  .with-toc { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 40px 64px; }
  .toc { position: sticky; top: calc(var(--header-h) + 32px); align-self: start; }
  .toc__label { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); margin-bottom: 12px; }
  .toc ol { display: grid; gap: 2px; border-left: 2px solid var(--line); }
  .toc a { display: block; padding: 8px 0 8px 16px; margin-left: -2px; border-left: 2px solid transparent; font-weight: 560; font-size: 0.96875rem; color: var(--fg-2); transition: color var(--d-micro), border-color var(--d-micro); }
  .toc a:hover { color: var(--fg); }
  .toc a.is-active { color: var(--accent); border-left-color: var(--mark-2); }
  @media (max-width: 960px) { .with-toc { grid-template-columns: 1fr; } .toc { position: static; } }

  /* ---------- form ---------- */
  .form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
  .field { display: grid; gap: 8px; align-content: start; }
  .field--wide { grid-column: 1 / -1; }
  .field label { font-weight: 650; font-size: 0.96875rem; color: var(--fg); }
  .field input[type="text"], .field input[type="email"], .field textarea { width: 100%; min-height: 52px; padding: 14px 16px; border-radius: var(--r); border: 1.5px solid var(--line-2); background: var(--white); color: var(--ink); font-size: 1.0625rem; transition: border-color var(--d-micro), box-shadow var(--d-micro); }
  .field textarea { min-height: 170px; resize: vertical; line-height: 1.55; }
  .field input:hover, .field textarea:hover { border-color: var(--ink-3); }
  .field input:focus, .field textarea:focus { outline: none; border-color: var(--blue-ink); box-shadow: 0 0 0 4px rgba(46, 167, 224, 0.22); }
  .field.is-invalid input, .field.is-invalid textarea { border-color: #B3261E; }
  .field__err { font-size: 0.9375rem; font-weight: 600; color: #B3261E; }
  .field--check { grid-template-columns: auto 1fr; align-items: start; gap: 12px; margin-top: 22px; }
  .field--check input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--blue-ink); }
  .field--check label { font-weight: 450; color: var(--fg-2); }
  .field--check .field__err { grid-column: 2; }
  .form__status { margin-top: 16px; font-weight: 600; color: var(--accent); min-height: 1.5em; }
  .form__done { display: grid; gap: 8px; padding: 28px; border-radius: var(--r); background: var(--green-wash); border-left: 4px solid var(--green); color: var(--ink); }
  .form__done:focus { outline: none; }
  .form__done-t { font-size: var(--t-h4); font-weight: 700; color: var(--green-ink); }
  .form__actions { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; margin-top: 8px; }
  .form__note { font-size: var(--t-small); color: var(--fg-3); max-width: 46ch; }
  @media (max-width: 640px) { .form__grid { grid-template-columns: 1fr; } }

  /* ---------- Caspian Week edition cards (home, Partner with us) ---------- */
  .cwes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 40px; }
  .cwe { display: grid; grid-template-rows: auto auto auto 1fr; gap: 6px; padding: 0 0 18px; border-radius: var(--r); background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.12); }
  .cwe__media .photo { aspect-ratio: 4 / 3; border-radius: 0; }
  .cwe__media--online { display: grid; place-items: center; align-content: center; gap: 10px; aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--blue-deep), var(--navy-2)); font-weight: 700; font-size: 0.9375rem; color: #fff; }
  .cwe__icon { width: 56px; height: 56px; color: var(--blue); }
  .cwes__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 18px; }
  .cwes__next { font-size: 1rem; color: #fff; }
  .cwes__next strong { color: var(--green); }
  .cwe__y { padding: 10px 16px 0; font-size: 0.875rem; font-weight: 700; color: var(--green); letter-spacing: 0.02em; }
  .cwe__city { padding: 0 16px; font-size: 1.375rem; font-weight: 760; letter-spacing: -0.02em; color: #fff; }
  .cwe__note { padding: 0 16px; font-size: 0.875rem; line-height: 1.45; color: var(--on-dark-2); }
  .cwe--next { padding: 18px 0; border-style: dashed; border-color: rgba(141, 198, 63, 0.6); background: rgba(141, 198, 63, 0.08); align-content: center; }
  .cwe--next .cwe__city { font-size: 1.125rem; }
  .cwes__note { font-size: 0.875rem; color: var(--on-dark-2); }
  @media (max-width: 1023px) { .cwes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 640px) { .cwes { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; } .cwe { flex: 0 0 68%; scroll-snap-align: start; } .cwe__city { font-size: 1.125rem; } }


  /* ---------- layered photo pair (used across pages) ---------- */
  .duo { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: auto auto; }
  .duo__a { grid-column: 1 / span 10; grid-row: 1; }
  .duo__a .photo { aspect-ratio: 4 / 3; }
  .duo__b { grid-column: 6 / span 7; grid-row: 1 / span 2; align-self: end; margin-bottom: -48px; z-index: 1; }
  .duo__b .photo { aspect-ratio: 3 / 2; box-shadow: 0 0 0 8px var(--bg); }
  .duo .cap { grid-column: 1 / span 5; grid-row: 2; padding-right: 16px; }
}

/* Home page. */
@layer pages {
  /* ---------- hero ---------- */
  .hero { position: relative; overflow: hidden; padding-top: calc(var(--header-h) + clamp(28px, 4vw, 56px)); padding-bottom: 0; isolation: isolate; }
  .hero::before { content: ""; position: absolute; z-index: -1; right: -12vw; top: -20vw; width: 52vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(46, 167, 224, 0.2), transparent 65%); }
  .hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(32px, 4.5vw, 80px); align-items: center; }
  .hero__kicker { color: var(--white); margin-bottom: 24px; }
  .hero__title { font-size: clamp(2.5rem, 1.3rem + 3.7vw, 5rem); font-weight: 790; line-height: 1.02; letter-spacing: -0.036em; color: var(--white); max-width: 15ch; }
  .hero__title em { color: var(--green); font-weight: 600; }
  .hero__stand { margin-top: 28px; font-size: var(--t-lead); line-height: 1.55; color: var(--on-dark-2); max-width: 44ch; font-weight: 450; }
  .hero__actions { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: 36px; }
  .hero__stage { position: relative; }
  .hero__stage { margin-right: calc(-1 * var(--gutter)); }
  .hero__frame { position: relative; aspect-ratio: 6 / 5; border-radius: var(--r-img) 0 0 var(--r-img); overflow: hidden; background: var(--navy-2); }
  .hero__under { padding-right: var(--gutter); }
  .hero__frame::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(to top, rgba(8, 24, 36, 0.45), transparent); pointer-events: none; }
  .hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s var(--e-inout); }
  .hero__slide.is-on { opacity: 1; z-index: 1; }
  .hero__slide .photo { height: 100%; border-radius: 0; }
  .hero__slide img { transform: scale(1.08); transition: transform 7s linear; }
  .hero__slide.is-on img { transform: scale(1); }
  .hero__under { display: flex; justify-content: space-between; align-items: center; gap: 16px 24px; margin-top: 16px; flex-wrap: wrap; }
  .hero__cap { font-size: 0.875rem; color: var(--on-dark-2); min-height: 1.4em; max-width: 44ch; }
  .hero__controls { display: flex; align-items: center; gap: 10px; }
  .hero__thumbs { display: flex; gap: 8px; }
  .hero__thumb { position: relative; display: grid; gap: 8px; width: 56px; padding: 8px 0; text-align: left; opacity: 0.6; outline-offset: 2px; transition: opacity var(--d-ui); }
  .hero__tn { font-size: 0.875rem; font-weight: 700; color: #fff; }
  .hero__thumb:hover, .hero__thumb.is-on { opacity: 1; }
  .hero__bar { position: relative; display: block; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, 0.28); overflow: hidden; }
  .hero__bar i { display: block; height: 100%; width: 0; background: var(--green); }
  .hero__thumb.is-on .hero__bar i { width: 100%; }
  .hero.is-playing .hero__thumb.is-on .hero__bar i { animation: hero-bar var(--slide-ms, 6500ms) linear forwards; }
  @keyframes hero-bar { from { width: 0; } to { width: 100%; } }
  .hero__pause { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, 0.4); color: #fff; }
  .hero__pause:hover { border-color: var(--green); color: var(--green); }
  .hero__pause .i { width: 16px; height: 16px; }
  .hero__pause .i:last-child { display: none; }
  .hero__pause[aria-pressed="true"] .i:first-child { display: none; }
  .hero__pause[aria-pressed="true"] .i:last-child { display: block; }
  .hero__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(48px, 6vw, 80px); border-top: 1px solid var(--line); }
  .hero__facts > div { padding: 24px 24px 32px 0; }
  .hero__facts > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
  .hero__facts dt { font-size: 1.0625rem; font-weight: 740; color: var(--white); }
  .hero__facts dd { margin-top: 4px; font-size: 0.9375rem; color: var(--on-dark-2); }
  .hero__facts > div:nth-child(odd) dt::before { background: var(--blue); }
  .hero__facts dt::before { content: ""; display: block; width: 28px; height: 4px; margin-bottom: 14px; border-radius: 2px; background: var(--green); }
  /* entrance: CSS, from first paint */
  .motion .hero__kicker, .motion .hero__title, .motion .hero__stand, .motion .hero__actions, .motion .hero__facts { animation: rise 1s var(--e-out) both; }
  .motion .hero__title { animation-delay: 0.08s; }
  .motion .hero__stand { animation-delay: 0.18s; }
  .motion .hero__actions { animation-delay: 0.28s; }
  .motion .hero__facts { animation-delay: 0.5s; }
  .motion .hero__frame { animation: unmask 1.4s var(--e-inout) 0.1s both; }
  .motion .hero__under { animation: rise 1s var(--e-out) 0.6s both; }
  @keyframes rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
  @keyframes unmask { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
  @media (max-width: 960px) {
    .hero__grid { grid-template-columns: 1fr; }
    .hero__frame { aspect-ratio: 4 / 3; }
    .hero__facts { grid-template-columns: 1fr 1fr; }
    .hero__facts > div:nth-child(3) { padding-left: 0; border-left: 0; }
    .hero__facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  }
  @media (max-width: 520px) {
    .hero__thumb { width: 44px; }
    .hero__facts > div { padding: 18px 12px 22px 0; }
    .hero__facts > div + div { padding-left: 12px; }
    .hero__facts > div:nth-child(3) { padding-left: 0; }
    .hero__facts dt { font-size: 0.96875rem; }
    .hero__facts dd { font-size: 0.875rem; }
  }

  /* ---------- who we are ---------- */
  .hwho__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 56px clamp(40px, 6vw, 112px); align-items: center; }
  .hwho__title { margin-top: 16px; max-width: 14ch; }
  .hwho__lead { margin-top: 28px; font-size: var(--t-lead); line-height: 1.55; font-weight: 480; color: var(--fg); max-width: 50ch; }
  .hwho__line { margin-top: 18px; padding-left: 18px; border-left: 4px solid var(--green); font-size: 1.125rem; font-weight: 680; color: var(--fg); }
  .hwho__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; margin: 36px 0; border-top: 1px solid var(--line); }
  .hwho__facts > div { padding: 18px 0; border-bottom: 1px solid var(--line); }
  .hwho__facts dt { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .hwho__facts dd { margin-top: 4px; font-weight: 600; }
  .hwho__media { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); padding-bottom: 56px; }
  .hwho__a { grid-column: 1 / span 11; grid-row: 1; }
  .hwho__a .photo { aspect-ratio: 4 / 5; }
  .hwho__b { grid-column: 6 / span 7; grid-row: 1; align-self: end; margin-bottom: -56px; z-index: 1; }
  .hwho__b .photo { aspect-ratio: 16 / 10; box-shadow: 0 0 0 10px var(--white); }
  .hwho__media { isolation: isolate; }
  .hwho__cap { grid-column: 1 / span 5; margin-top: 18px; padding-right: 12px; }
  @media (max-width: 960px) { .hwho__grid { grid-template-columns: 1fr; } .hwho__a .photo { aspect-ratio: 4 / 3; } .hwho__media::before { display: none; } }
  @media (max-width: 520px) { .hwho__facts { grid-template-columns: 1fr; } .hwho__cap { grid-column: 1 / -1; margin-top: 72px; } }

  /* ---------- what we do: expanding photo panels ---------- */
  .xp { display: flex; gap: 12px; height: clamp(460px, 56vw, 620px); }
  .xp__item { position: relative; flex: 1 1 0; min-width: 0; transition: flex-grow 0.8s var(--e-out); }
  .xp__item.is-active { flex-grow: 2.6; }
  .xp__a { position: absolute; inset: 0; display: block; border-radius: var(--r); overflow: hidden; color: #fff; }
  .xp__media, .xp__media .photo { position: absolute; inset: 0; height: 100%; border-radius: 0; }
  .xp__media img { transition: transform 1.4s var(--e-out); }
  .xp__item.is-active .xp__media img { transform: scale(1.04); }
  .xp__veil { position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 24, 36, 0.92) 0%, rgba(8, 24, 36, 0.55) 45%, rgba(8, 24, 36, 0.2) 100%); transition: background var(--d-ui); }
  .xp__item:not(.is-active) .xp__veil { background: linear-gradient(to top, rgba(8, 24, 36, 0.92), rgba(11, 79, 124, 0.55)); }
  .xp__n { position: absolute; top: 22px; left: 22px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--green); color: var(--navy); font-weight: 780; font-size: 0.9375rem; }
  .xp__body { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 12px; padding: 28px; }
  .xp__t { font-size: var(--t-h3); font-weight: 760; letter-spacing: -0.02em; line-height: 1.15; }
  .xp__d, .xp__go { max-width: 40ch; opacity: 0; transform: translateY(12px); transition: opacity var(--d-ui), transform var(--d-ui) var(--e-out); }
  .xp__d { color: rgba(255, 255, 255, 0.9); font-size: 1.0625rem; }
  .xp__go { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--green); }
  .xp__go .i { width: 16px; height: 16px; }
  .xp__item.is-active .xp__d, .xp__item.is-active .xp__go { opacity: 1; transform: none; transition-delay: 0.2s; }
  @media (max-width: 960px) {
    .xp { flex-direction: column; height: auto; gap: 16px; }
    .xp__item, .xp__item.is-active { flex: none; }
    .xp__a { position: relative; min-height: 300px; }
    .xp__d, .xp__go { opacity: 1; transform: none; }
    .xp__veil, .xp__item:not(.is-active) .xp__veil { background: linear-gradient(to top, rgba(8, 24, 36, 0.95) 0%, rgba(8, 24, 36, 0.72) 55%, rgba(8, 24, 36, 0.35) 100%); }
  }

  /* ---------- sectors (tabs) ---------- */
  .hsec .tabs__list { margin-bottom: 40px; }
  .sx { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px clamp(32px, 5vw, 80px); align-items: center; }
  .sx__fig .photo { aspect-ratio: 16 / 10; }
  .sx__fig .cap { color: var(--fg-2); }
  .sx__fig .cap__k { color: var(--fg); }
  .sx__text { display: grid; gap: 18px; justify-items: start; }
  .sx__t { font-size: var(--t-h2); color: #fff; }
  .sx__p { font-size: var(--t-lead); line-height: 1.55; color: var(--fg-2); max-width: 44ch; }
  .hsec .tabs__panel:not([hidden]) .sx__fig { animation: fade-in 0.7s var(--e-out) both; }
  .hsec .tabs__panel:not([hidden]) .sx__text { animation: rise 0.8s var(--e-out) 0.08s both; }
  @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
  @media (max-width: 960px) { .sx { grid-template-columns: 1fr; } .hsec .tabs__list { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; } .hsec .tabs__tab { flex: none; } .hsec .tabs { position: relative; } .hsec .tabs::after { content: ""; position: absolute; top: 0; right: calc(var(--gutter) * -1); width: 48px; height: 48px; background: linear-gradient(to right, transparent, var(--bg)); pointer-events: none; } }

  /* ---------- events ---------- */
  .hev { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
  .hev__up { margin-bottom: 48px; }
  .hev__list { display: grid; border-top: 1px solid var(--line); }
  .hev__row { display: grid; grid-template-columns: 104px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: start; }
  .hev__thumb .photo { aspect-ratio: 4 / 3; }
  .hev__thumb--type { display: grid; place-items: center; aspect-ratio: 4 / 3; border-radius: var(--r-img); background: var(--blue-deep); color: #fff; font-weight: 780; font-size: 1.375rem; letter-spacing: -0.03em; }
  .hev__body { display: grid; gap: 6px; justify-items: start; }
  .hev__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 0.875rem; font-weight: 650; color: var(--fg-2); }
  .hev__t { font-size: 1.125rem; font-weight: 720; line-height: 1.3; color: var(--fg); }
  .hev__t a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  .hev__t .i { width: 0.65em; height: 0.65em; margin-left: 0.25em; vertical-align: 0.05em; }
  .hev__place { font-size: 0.9375rem; color: var(--fg-3); }
  @media (max-width: 960px) { .hev { grid-template-columns: 1fr; } }

  /* ---------- Caspian Week ---------- */
  .hcw { position: relative; overflow: hidden; isolation: isolate; padding-block: var(--sec-y); }
  .hcw__bg { position: absolute; inset: 0; z-index: -2; }
  .hcw__bg .photo { height: 100%; border-radius: 0; }
  .hcw__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(8, 24, 36, 0.92) 0%, rgba(8, 24, 36, 0.7) 38%, rgba(8, 24, 36, 0.1) 70%), linear-gradient(to top, rgba(8, 24, 36, 0.96) 0%, rgba(8, 24, 36, 0.6) 30%, transparent 55%); }
  .hcw__inner { position: relative; min-height: clamp(380px, 42vw, 520px); display: flex; flex-direction: column; }
  .hcw__head { display: grid; gap: 24px; justify-items: start; max-width: 760px; }
  .hcw__logo { width: clamp(200px, 22vw, 300px); height: auto; }
  .hcw__statement { font-size: var(--t-h2); font-weight: 730; line-height: 1.12; letter-spacing: -0.025em; color: #fff; text-wrap: balance; }
  .hcw__note { color: var(--on-dark-2); font-size: 1.0625rem; max-width: 52ch; }
  .hcw__piccap { margin-top: auto; padding-top: 24px; align-self: flex-end; font-size: 0.875rem; color: rgba(255, 255, 255, 0.75); }
  /* ---------- quote ---------- */
  .hquote .wrap { display: grid; justify-items: center; }
  .hquote .quote { justify-items: start; }

  /* ---------- news ---------- */
  .hnews { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 32px clamp(32px, 5vw, 80px); align-items: start; }
  .nw { display: grid; gap: 10px; align-content: start; }
  .nw__media .photo { aspect-ratio: 16 / 10; }
  .nw__media img { transition: transform 1.2s var(--e-out); }
  .nw:hover .nw__media img { transform: scale(1.04); }
  .nw--big .nw__media { margin-bottom: 12px; }
  .nw__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 0.875rem; font-weight: 650; }
  .nw__date { color: var(--accent); }
  .nw__outlet { color: var(--fg-2); }
  .nw__t { font-size: 1.1875rem; font-weight: 700; line-height: 1.3; color: var(--fg); transition: color var(--d-micro); }
  .nw--big .nw__t { font-size: var(--t-h3); line-height: 1.2; }
  .nw:hover .nw__t { color: var(--accent); }
  .nw__host { display: inline-flex; align-items: center; gap: 5px; font-size: 0.875rem; color: var(--fg-3); }
  .nw__host .i { width: 12px; height: 12px; }
  .hnews__top .cap { margin-top: 10px; }
  .hnews__list { display: grid; border-top: 1px solid var(--line); }
  .hnews__list li { border-bottom: 1px solid var(--line); }
  .hnews__list .nw { padding: 22px 0; }
  @media (max-width: 960px) { .hnews { grid-template-columns: 1fr; } }

  /* ---------- partners ---------- */
  .hpart__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
  .hpart__head { display: grid; gap: 20px; justify-items: start; position: sticky; top: calc(var(--header-h) + 32px); }
  @media (max-width: 1023px) { .hpart__grid { grid-template-columns: 1fr; } .hpart__head { position: static; } }

  /* ---------- region in brief ---------- */
  .hreg__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
  .hreg__head { display: grid; gap: 18px; justify-items: start; }
  .hreg__title { color: #fff; }
  .hreg__lead { color: var(--fg-2); font-size: 1.125rem; max-width: 40ch; }
  .hreg .figs__cells { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hreg .fig__unit { color: var(--green); }
  .hreg .btn--text { color: #fff; }
  @media (max-width: 960px) { .hreg__grid { grid-template-columns: 1fr; } }
  @media (max-width: 440px) { .hreg .figs__cells { grid-template-columns: 1fr; } }
}

/* The region: definition, figures, photo story (Greater Caspian page);
   atlas, growth, country table, participation (Countries page). */
@layer pages {
  /* ---------- definition ---------- */
  .rdef__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(40px, 6vw, 104px); align-items: start; }
  .rdef__text { display: grid; gap: 24px; justify-items: start; }
  .rdef__q p { font-size: clamp(1.6rem, 1.05rem + 2.2vw, 2.9rem); font-weight: 720; line-height: 1.16; letter-spacing: -0.026em; color: var(--fg); text-wrap: balance; }
  .rdef__go { margin-top: 8px; }
  .rgroups { display: grid; gap: 0; border-top: 2px solid var(--fg); }
  .rgroups__g { padding: 18px 0 20px; border-bottom: 1px solid var(--line); }
  .rgroups__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .rgroups__list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
  .rgroups__list a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: var(--white); border: 1px solid var(--line); font-size: 0.9375rem; font-weight: 620; color: var(--fg); transition: background var(--d-micro), border-color var(--d-micro), color var(--d-micro); }
  .rgroups__list a:hover { background: var(--navy); border-color: var(--navy); color: var(--white); }
  @media (max-width: 960px) { .rdef__grid { grid-template-columns: 1fr; } }

  /* ---------- the figures we publish ---------- */
  .figs--grid3 .figs__cells { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; gap: 0 var(--gap); }
  .figs--grid3 .figs__cell { padding: 28px 0 28px; border-top: 1px solid var(--line); }
  .figs--grid3 .figs__cell::before { content: ""; display: block; width: 28px; height: 4px; margin-bottom: 18px; border-radius: 2px; background: var(--blue); }
  .figs--grid3 .figs__cell:nth-child(even)::before { background: var(--green); }
  .figs--grid3 .fig__n { font-size: clamp(2.4rem, 1.6rem + 2.6vw, 4rem); }
  .figs--grid3 .fig__unit { font-size: clamp(1rem, 0.9rem + 0.5vw, 1.25rem); max-width: 16ch; line-height: 1.25; }
  .figs--grid3 .fig__word { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); line-height: 1.1; }
  .figs--grid3 .figs__label { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fg-2); }
  .figs--grid3 .figs__note { font-size: 0.96875rem; max-width: 34ch; }
  .rfigs .footnote { margin-top: 20px; }
  @media (max-width: 960px) { .figs--grid3 .figs__cells { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .figs--grid3 .figs__cells { grid-template-columns: 1fr; } }

  /* ---------- why the region matters: the photo story ---------- */
  .story__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
  .story__media { position: sticky; top: calc(var(--header-h) + 32px); }
  .story__frame { position: relative; aspect-ratio: 4 / 5; max-height: calc(100svh - var(--header-h) - 96px); width: 100%; }
  .story__pic { position: absolute; inset: 0; display: grid; grid-template-rows: 1fr auto; opacity: 0; transition: opacity 0.8s var(--e-inout); }
  .story__pic.is-on { opacity: 1; z-index: 1; }
  .story__pic .photo { height: 100%; }
  .story__pic img { transform: scale(1.06); transition: transform 1.6s var(--e-out); }
  .story__pic.is-on img { transform: none; }
  .story__text { display: grid; }
  .story__step { min-height: 62svh; display: grid; align-content: center; gap: 16px; padding-block: 32px; border-top: 1px solid var(--line); box-shadow: inset 4px 0 0 transparent; padding-left: 0; transition: box-shadow 0.6s var(--e-out), padding 0.6s var(--e-out); }
  .story__step:first-child { border-top: 0; }
  .motion .story__step.is-on { box-shadow: inset 4px 0 0 var(--green); padding-left: 24px; }
  .story__k { display: flex; align-items: center; gap: 14px; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .story__n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--navy); color: var(--white); font-size: 0.875rem; letter-spacing: 0; }
  .story__step:nth-child(even) .story__n { background: var(--green); color: var(--navy); }
  .story__t { font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.6rem); line-height: 1.5; font-weight: 500; color: var(--fg); max-width: 40ch; }
  .story__t a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  .story__inline { display: none; }
  /* without the scroll script (reduced motion, no JS): each paragraph carries its own photograph */
  html:not(.motion) .story__grid { grid-template-columns: 1fr; }
  html:not(.motion) .story__media { display: none; }
  html:not(.motion) .story__step { min-height: 0; opacity: 1; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto 1fr; column-gap: clamp(32px, 5vw, 80px); align-content: start; }
  html:not(.motion) .story__inline { display: block; grid-row: 1 / span 2; }
  html:not(.motion) .story__inline .photo { aspect-ratio: 16 / 10; }
  html:not(.motion) .story__k { align-self: end; }
  @media (max-width: 960px) {
    .story__grid { grid-template-columns: 1fr; }
    .story__media { display: none; }
    .story__step, html:not(.motion) .story__step { min-height: 0; opacity: 1; padding-block: 28px; grid-template-columns: 1fr; }
    .story__inline, html:not(.motion) .story__inline { display: block; grid-row: auto; margin-bottom: 8px; }
    .story__inline .photo { aspect-ratio: 16 / 10; }
  }

  /* ---------- the atlas ---------- */
  .atlas__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin-bottom: 24px; }
  .atlas__filters { display: flex; flex-wrap: wrap; gap: 8px; }
  .atlas__f { min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--line-2); font-size: 0.9375rem; font-weight: 620; color: var(--fg-2); transition: background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .atlas__f:hover { color: var(--fg); border-color: var(--fg); }
  .atlas__f[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
  .atlas__count { font-size: 0.9375rem; font-weight: 650; color: var(--fg-2); }
  .atlas__body { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--gap); align-items: start; }
  .atlas__fig { position: relative; margin: 0; }
  .atlas__map { position: relative; overflow: hidden; border-radius: var(--r); background: var(--blue-wash); border: 1px solid var(--line); }
  .atlas__map .map { width: 100%; height: auto; display: block; }
  .atlas__reset { position: absolute; right: 14px; top: 14px; background: var(--white); }
  .atlas__cap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: 12px; font-size: 0.875rem; color: var(--fg-3); }
  .atlas__key { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--fg-2); }
  .atlas__sw { width: 14px; height: 14px; border-radius: 3px; }
  .atlas__sw--gcr { background: var(--blue); }
  .atlas__sw--sel { background: var(--green); }
  .atlas__src { margin-left: auto; }
  /* the map */
  .map__water { fill: #DCEEF8; }
  .map__nb { fill: #F4F7F9; stroke: #C9D7E2; stroke-width: 0.7; vector-effect: non-scaling-stroke; }
  .map__c { fill: var(--blue); stroke: var(--white); stroke-width: 1; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill 0.3s ease, opacity 0.45s ease; }
  .map__region a:focus { outline: none; }
  .map__region a:focus-visible .map__c { stroke: var(--navy); stroke-width: 3; }
  .map__c[data-gk^="caspian-littoral"] { fill: #0A6AA6; }
  .map__c[data-gk^="south-caucasus"] { fill: #2EA7E0; }
  .map__c[data-gk^="central-asia"] { fill: #1B87C4; }
  .map__c[data-gk^="south-asia"] { fill: #5DBBE6; }
  .map__c[data-gk^="black-sea-basin-and-eastern-europe"] { fill: #0B4F7C; }
  .map__c.is-hot { fill: var(--navy); }
  .map__c.is-sel, .map__c[data-gk].is-sel { fill: var(--green); }
  .map__c.is-dim, .map__c[data-gk].is-dim { fill: #A9D7EF; opacity: 0.55; }
  @media (max-width: 640px) { .map__lbl, .map__geneva text { display: none; } }
  .map__lbl { font-family: var(--f-sans); font-size: calc(10px * var(--z, 1)); font-weight: 720; fill: var(--white); paint-order: stroke; stroke: rgba(11, 79, 124, 0.55); stroke-width: calc(2.2px * var(--z, 1)); pointer-events: none; transition: opacity 0.4s ease; }
  .map__lbl.is-dim { opacity: 0.25; }
  .map__sea { font-family: var(--f-serif); font-style: italic; font-weight: 600; font-size: calc(10.5px * var(--z, 1)); fill: var(--blue-deep); paint-order: stroke; stroke: #DCEEF8; stroke-width: calc(2.4px * var(--z, 1)); stroke-linejoin: round; pointer-events: none; }
  .map__geneva circle { fill: var(--navy); }
  .map__geneva text { font-family: var(--f-sans); font-weight: 700; font-size: calc(10px * var(--z, 1)); fill: var(--navy); }
  /* the panel */
  .atlas__panel { display: grid; gap: 24px; }
  @media (min-height: 900px) and (min-width: 1024px) { .atlas__panel { position: sticky; top: calc(var(--header-h) + 24px); } }
  .atlas__card { min-height: 19rem; padding: 26px; border-radius: var(--r); background: var(--navy); color: var(--white); }
  .atlas__card-k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--green); }
  .atlas__card-n { margin-top: 10px; font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.5rem); font-weight: 780; line-height: 1.05; letter-spacing: -0.03em; }
  .atlas__card-d { margin-top: 14px; color: var(--on-dark-2); font-size: 1rem; }
  .atlas__stats { margin-top: 20px; display: grid; gap: 16px; }
  .atlas__stats dt { font-size: 0.875rem; font-weight: 600; color: var(--on-dark-3); }
  .atlas__stats dd { margin-top: 4px; color: var(--white); font-weight: 500; }
  .atlas__stats dd.num { font-size: 2.4rem; font-weight: 780; letter-spacing: -0.03em; line-height: 1; color: var(--green); }
  .atlas__card-r { margin-top: 16px; font-weight: 650; color: var(--blue); }
  .atlas__card-r:empty { display: none; }
  .atlas__card-more { margin-top: 10px; }
  .atlas__card .btn--text { color: var(--white); }
  .atlas__list { display: grid; gap: 16px; }
  .atlas__gk { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .atlas__g { transition: opacity 0.4s ease; }
  .atlas__g.is-dim { opacity: 0.35; }
  .atlas__g ul { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; }
  .atlas__c { display: inline-block; padding: 3px 0; font-weight: 600; font-size: 0.96875rem; color: var(--fg); border-bottom: 2px solid transparent; transition: color var(--d-micro), border-color var(--d-micro); }
  .atlas__c:hover, .atlas__c.is-hot { color: var(--accent); border-bottom-color: var(--blue); }
  .atlas__c[aria-current="true"] { color: var(--green-ink); border-bottom-color: var(--green); }
  @media (max-width: 1023px) { .atlas__body { grid-template-columns: 1fr; } .atlas__src { margin-left: 0; } .atlas__card { min-height: 0; } }

  /* ---------- growth ---------- */
  .growth { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
  .growth__cap { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fg-2); margin-bottom: 24px; }
  .gbars { display: grid; gap: 26px; }
  .gbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label v" "track track"; gap: 10px 16px; align-items: end; }
  .gbar__label { grid-area: label; font-weight: 600; color: var(--fg); }
  .gbar__v { grid-area: v; font-size: 2rem; font-weight: 780; letter-spacing: -0.03em; line-height: 1; color: var(--white); }
  .gbar__track { grid-area: track; display: block; height: 18px; border-radius: 9px; background: rgba(255, 255, 255, 0.1); overflow: hidden; }
  .gbar__fill { display: block; height: 100%; width: var(--w); border-radius: 9px; background: linear-gradient(90deg, var(--blue), var(--green)); transform-origin: 0 50%; transition: transform 1.4s var(--e-out); }
  .gbar--ref .gbar__fill { background: var(--on-dark-3); }
  .gbar--ref .gbar__v { color: var(--on-dark-2); }
  .motion .gbars:not(.is-in) .gbar__fill { transform: scaleX(0); }
  .gbar:nth-child(2) .gbar__fill { transition-delay: 0.12s; }
  .gbar:nth-child(3) .gbar__fill { transition-delay: 0.24s; }
  .gbars__scale { position: relative; height: 22px; margin-top: 14px; font-size: 0.875rem; color: var(--fg-3); }
  .gbars__scale span { position: absolute; left: var(--x); transform: translateX(-50%); }
  .gbars__scale span:first-child { transform: none; }
  .gbars__scale span:last-child { transform: translateX(-100%); }
  .growth__side { display: grid; gap: 28px; }
  .growth__total { padding: 26px; border-radius: var(--r); background: var(--navy-2); border-left: 5px solid var(--green); }
  .growth__fig { font-size: clamp(3rem, 2rem + 3.4vw, 5rem); font-weight: 800; letter-spacing: -0.045em; line-height: 1; color: var(--green); }
  .growth__tl { margin-top: 10px; font-weight: 600; color: var(--fg); }
  .rgrowth .footnote { margin-top: 36px; color: var(--fg-3); }
  @media (max-width: 960px) { .growth { grid-template-columns: 1fr; } }

  /* ---------- country table ---------- */
  .dt--countries td:last-child { min-width: 260px; }
  .dt--countries tbody tr { transition: background var(--d-micro); }
  .dt--countries tbody tr:hover, .dt--countries tbody tr:target { background: var(--mist); }
  .dt--countries tbody tr:target th { color: var(--accent); }
  /* phones: each country becomes a two-line row — name and growth, then exports */
  @media (max-width: 700px) {
    .rtable .table-wrap { overflow: visible; }
    .dt--countries, .dt--countries thead, .dt--countries tbody, .dt--countries tr { display: block; }
    .dt--countries thead tr { display: flex; flex-wrap: wrap; gap: 4px 18px; padding-bottom: 10px; border-bottom: 2px solid var(--fg); }
    .dt--countries thead th { display: block; padding: 0; border: 0; }
    .dt--countries tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
    .dt--countries tbody th, .dt--countries tbody td { display: block; padding: 0; border: 0; }
    .dt--countries .bar-cell { min-width: 0; text-align: right; white-space: nowrap; }
    .dt--countries .bar { display: none; }
    .dt--countries td:last-child { grid-column: 1 / -1; min-width: 0; font-size: 0.9375rem; }
  }

  /* ---------- participation ---------- */
  .reach { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(40px, 6vw, 104px); align-items: start; }
  .reach__main { display: grid; gap: 32px; }
  .reach__fig { display: grid; grid-template-columns: auto 1fr; gap: 8px 24px; align-items: center; }
  .reach__n { display: flex; align-items: baseline; gap: 6px; font-size: clamp(3.6rem, 2.4rem + 4vw, 6rem); font-weight: 800; letter-spacing: -0.05em; line-height: 0.95; color: var(--green-ink); }
  .reach__of { font-size: 0.4em; font-weight: 700; letter-spacing: -0.02em; color: var(--fg-2); }
  .reach__l { font-size: 1.125rem; font-weight: 600; color: var(--fg); max-width: 30ch; }
  .reach__list { display: flex; flex-wrap: wrap; gap: 8px; }
  .reach__c { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-2); font-size: 0.9375rem; font-weight: 600; color: var(--fg-3); background: transparent; }
  .reach__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-2); }
  .reach__c.is-on { background: var(--white); border-color: var(--white); color: var(--fg); box-shadow: 0 1px 0 rgba(11, 31, 46, 0.08); }
  .reach__c.is-on .reach__dot { background: var(--green); }
  .reach__pic .photo { aspect-ratio: 4 / 5; }
  @media (max-width: 960px) { .reach { grid-template-columns: 1fr; } .reach__pic .photo { aspect-ratio: 3 / 2; } }
  @media (max-width: 520px) { .reach__fig { grid-template-columns: 1fr; } }
}

/* Who we are: about, mission, governance, people, leadership, council, secretariat, profile. */
@layer pages {
  /* ---------- the President card ---------- */
  .w-pres { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px clamp(28px, 4vw, 56px); align-items: center; }
  .w-pres__pic .photo { width: clamp(140px, 16vw, 200px); aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 5px var(--bg), 0 0 0 8px var(--mark-2); }
  .w-pres__body { display: grid; gap: 12px; justify-items: start; }
  .w-pres__name { font-size: var(--t-h2); }
  .w-pres__name a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 3px no-repeat; transition: background-size var(--d-ui) var(--e-out), color var(--d-micro); }
  .w-pres__name a:hover { color: var(--accent); background-size: 100% 3px; }
  .w-pres__role { font-weight: 650; color: var(--accent); font-size: 1.0625rem; max-width: 50ch; }
  .w-pres__sum { color: var(--fg-2); font-size: var(--t-lead); line-height: 1.55; max-width: 58ch; }
  .w-pres__more { margin-top: 8px; }
  .w-pres--lead { padding: clamp(28px, 4vw, 56px); border-radius: var(--r); background: var(--mist); border-top: 5px solid var(--blue); }
  .w-pres--lead .w-pres__pic .photo { width: clamp(160px, 18vw, 240px); box-shadow: 0 0 0 6px var(--mist), 0 0 0 9px var(--green); }
  .w-pres--compact { grid-template-columns: auto minmax(0, 1fr); padding: 24px; border-radius: var(--r); background: var(--white); }
  .w-pres--compact .w-pres__pic .photo { width: 96px; box-shadow: 0 0 0 3px var(--white), 0 0 0 5px var(--green); }
  .w-pres--compact .w-pres__name { font-size: var(--t-h3); }
  .w-pres--compact .w-pres__role { font-size: 0.9375rem; }
  .w-pres--compact .btn { min-height: 44px; padding: 0 16px; font-size: 0.9375rem; }
  @media (max-width: 600px) { .w-pres, .w-pres--compact { grid-template-columns: 1fr; } }

  /* ---------- governance diagram ---------- */
  .w-org { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px; align-items: stretch; }
  .w-org__node { display: grid; gap: 4px; align-content: start; padding: 22px; border-radius: var(--r); background: var(--white); border-top: 4px solid var(--blue); color: var(--ink); }
  .w-org__node--to { border-top-color: var(--green); }
  .w-org__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--blue-ink); }
  .w-org__node--to .w-org__k { color: var(--green-ink); }
  .w-org__name { font-size: 1.3125rem; font-weight: 760; letter-spacing: -0.015em; }
  .w-org__desc { font-size: 0.9375rem; color: var(--ink-3); }
  .w-org__edge { display: grid; place-items: center; align-content: center; gap: 4px; padding: 0 6px; color: var(--fg); }
  .w-org__edge .i { width: 26px; height: 26px; color: var(--mark-2); }
  .w-org__verb { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fg-2); }
  @media (max-width: 560px) { .w-org { grid-template-columns: 1fr; } .w-org__edge .i { transform: rotate(90deg); } .w-org__edge { grid-auto-flow: column; justify-content: center; gap: 10px; padding: 4px 0; } }

  /* ---------- photo tiles (not links) ---------- */
  .w-tiles { display: grid; gap: var(--gap); }
  .w-tiles--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .w-tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .w-tile { display: grid; gap: 16px; align-content: start; }
  .w-tile__fig { position: relative; }
  .w-tile__fig img { transition: transform 1.2s var(--e-out); }
  .w-tile:hover .w-tile__fig img { transform: scale(1.05); }
  .w-tile__cap { margin-top: 8px; min-height: 2.8em; font-size: 0.875rem; line-height: 1.4; color: var(--fg-3); }
  .w-tile__body { display: grid; gap: 8px; padding-top: 14px; border-top: 3px solid var(--mark); }
  .w-tile:nth-child(even) .w-tile__body { border-top-color: var(--mark-2); }
  .w-tile__n { font-size: 0.875rem; font-weight: 760; color: var(--accent); }
  .w-tile__t { font-size: var(--t-h4); line-height: 1.25; }
  .w-tile__d { color: var(--fg-2); font-size: 1rem; }
  @media (max-width: 1180px) { .w-tiles--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 960px) { .w-tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 600px) { .w-tiles--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .w-tile__t { font-size: 1.0625rem; } }
  @media (max-width: 420px) { .w-tiles--4 { grid-template-columns: 1fr; } }

  /* ---------- layered photo pair ---------- */
  .w-duo { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); isolation: isolate; padding-bottom: 8px; }
  .w-duo__a { grid-column: 1 / span 11; grid-row: 1; }
  .w-duo__a .photo { aspect-ratio: 4 / 3; }
  .w-duo__b { grid-column: 7 / span 6; grid-row: 1; align-self: end; margin-bottom: -64px; z-index: 1; }
  .w-duo__b .photo { aspect-ratio: 4 / 3; box-shadow: 0 0 0 10px var(--bg); }
  .w-duo__cap { grid-column: 1 / span 6; grid-row: 2; margin-top: 16px; padding-right: 12px; display: block; }
  @media (max-width: 520px) { .w-duo__b { margin-bottom: -40px; } .w-duo__cap { grid-column: 1 / -1; margin-top: 56px; } }

  /* ---------- numbered list ---------- */
  .w-num { display: grid; margin-top: 28px; border-top: 1px solid var(--line); }
  .w-num__item { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
  .w-num__n { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.03em; color: var(--accent-2); }
  .w-num__t { font-size: 1.125rem; font-weight: 560; color: var(--fg); line-height: 1.5; }

  /* ---------- About ---------- */
  .w-ident__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 56px clamp(40px, 6vw, 112px); align-items: center; }
  .w-ident__text { display: grid; gap: 20px; justify-items: start; }
  .w-ident__t { max-width: 16ch; }
  .w-ident__lead { font-size: var(--t-lead); line-height: 1.55; font-weight: 480; color: var(--fg); max-width: 50ch; }
  .w-ident__more { color: var(--fg-2); max-width: 56ch; }
  .w-ident__lead a, .w-ident__more a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  @media (max-width: 960px) { .w-ident__grid { grid-template-columns: 1fr; } }

  .w-mv__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(40px, 6vw, 112px); align-items: end; }
  .w-mv__m, .w-mv__v { display: grid; gap: 22px; justify-items: start; }
  .w-mv__q p { font-weight: 640; font-size: clamp(1.8rem, 1.1rem + 2.6vw, 3.25rem); line-height: 1.2; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
  .w-mv__v { padding-left: 28px; border-left: 4px solid var(--green); }
  .w-mv__vq p { font-size: var(--t-lead); line-height: 1.55; font-weight: 500; color: var(--fg-2); }
  @media (max-width: 960px) { .w-mv__grid { grid-template-columns: 1fr; } }

  .w-acts__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px clamp(40px, 6vw, 112px); align-items: start; }
  .w-acts__media { position: sticky; top: calc(var(--header-h) + 32px); }
  .w-acts__media .photo { aspect-ratio: 4 / 5; }
  .w-acts__text { display: grid; gap: 18px; justify-items: start; }
  .w-acts__text .w-num { width: 100%; }
  @media (max-width: 960px) { .w-acts__grid { grid-template-columns: 1fr; } .w-acts__media { position: static; } .w-acts__media .photo { aspect-ratio: 3 / 2; } }

  .w-gov { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
  .w-gov__text p { font-size: 1.125rem; }
  .w-gov__side { display: grid; gap: 20px; }
  @media (max-width: 960px) { .w-gov { grid-template-columns: 1fr; } }

  /* ---------- Mission and priorities ---------- */
  .w-mission__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 48px clamp(40px, 6vw, 96px); align-items: center; }
  .w-mission__m { display: grid; gap: 24px; justify-items: start; }
  .w-mission__q p { font-family: var(--f-sans); font-style: normal; font-weight: 650; font-size: clamp(1.6rem, 1rem + 2.2vw, 2.8rem); line-height: 1.22; letter-spacing: -0.02em; color: #fff; text-wrap: balance; }
  .w-mission__fig .photo { aspect-ratio: 4 / 5; }
  .w-mission__fig .cap { color: var(--fg-2); }
  .w-vision__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 20px 64px; align-items: start; }
  .w-vision__q p { font-size: clamp(1.4rem, 1rem + 1.4vw, 2.2rem); font-weight: 650; line-height: 1.3; letter-spacing: -0.02em; color: var(--fg); text-wrap: balance; }
  @media (max-width: 960px) { .w-mission__grid, .w-vision__grid { grid-template-columns: 1fr; } .w-mission__fig .photo { aspect-ratio: 3 / 2; } }

  .w-focus { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
  .w-focus__media { position: sticky; top: calc(var(--header-h) + 32px); aspect-ratio: 4 / 5; }
  .w-focus__pic { position: absolute; inset: 0; opacity: 0; transition: opacity 0.7s var(--e-inout); }
  .w-focus__pic.is-on { opacity: 1; }
  .w-focus__pic .photo { position: absolute; inset: 0 0 34px 0; height: auto; }
  .w-focus__cap { position: absolute; left: 0; right: 0; bottom: 0; font-size: 0.875rem; color: var(--fg-3); }
  .w-focus__list { border-top: 1px solid var(--line); }
  .w-focus__item { border-bottom: 1px solid var(--line); }
  .w-focus__a { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: 6px 18px; align-items: center; padding: 26px 8px 26px 0; transition: padding var(--d-ui) var(--e-out), background var(--d-ui); }
  .w-focus__thumb { display: none; }
  .w-focus__n { grid-row: 1 / span 2; font-size: 1.375rem; font-weight: 800; color: var(--fg-3); transition: color var(--d-ui); }
  .w-focus__t { grid-column: 2; grid-row: 1; font-size: var(--t-h3); font-weight: 740; letter-spacing: -0.02em; color: var(--fg); transition: color var(--d-micro); }
  .w-focus__d { grid-column: 2; grid-row: 2; color: var(--fg-2); }
  .w-focus__go { grid-column: 3; grid-row: 1 / span 2; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--line-2); color: var(--accent); transition: background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .w-focus__go .i { width: 16px; height: 16px; }
  .w-focus__item.is-on .w-focus__a { padding-left: 16px; background: var(--white); }
  .w-focus__item.is-on .w-focus__n { color: var(--accent-2); }
  .w-focus__item.is-on .w-focus__t { color: var(--accent); }
  .w-focus__item.is-on .w-focus__go, .w-focus__a:hover .w-focus__go { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-fg); }
  .w-focus__notes { display: grid; gap: 12px; margin-top: 36px; max-width: 70ch; color: var(--fg-2); }
  .w-focus__notes a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  @media (max-width: 960px) {
    .w-focus { grid-template-columns: 1fr; }
    .w-focus__media { display: none; }
    .w-focus__a { grid-template-columns: 2.6rem minmax(0, 1fr) auto; }
    .w-focus__thumb { display: block; grid-column: 1 / -1; grid-row: 1; margin-bottom: 14px; }
    .w-focus__n { grid-row: 2; grid-column: 1; }
    .w-focus__t { grid-row: 2; grid-column: 2; font-size: 1.375rem; }
    .w-focus__go { grid-row: 2; grid-column: 3; }
    .w-focus__d { grid-row: 3; grid-column: 2 / -1; }
    .w-focus__item.is-on .w-focus__a { padding-left: 0; background: none; }
  }

  /* ---------- Governance ---------- */
  /* the title carries the register number, one unbreakable token */
  main:has(#the-association-at-a-glance) .ph__title { font-size: clamp(2rem, 1.1rem + 2.7vw, 3.6rem); max-width: 20ch; overflow-wrap: anywhere; }
  .w-dossier { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
  .w-dossier__side { display: grid; gap: 24px; position: sticky; top: calc(var(--header-h) + 32px); }
  .w-seal { display: grid; gap: 10px; padding: 28px; border-radius: var(--r); background: var(--navy); color: #fff; border-top: 5px solid var(--green); }
  .w-seal .kicker { color: #fff; }
  .w-seal__n { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem); font-weight: 800; letter-spacing: -0.03em; white-space: nowrap; }
  .w-seal__d { color: var(--on-dark-2); font-size: 0.96875rem; }
  @media (max-width: 960px) { .w-dossier { grid-template-columns: 1fr; } .w-dossier__side { position: static; } }

  .w-pair { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px clamp(40px, 6vw, 96px); align-items: start; }
  .w-pair__lead { font-size: clamp(1.35rem, 1rem + 1.2vw, 2rem); line-height: 1.38; font-weight: 600; letter-spacing: -0.015em; color: var(--fg); }
  .w-pair__body { font-size: 1.125rem; color: var(--fg-2); padding-left: 24px; border-left: 4px solid var(--mark); }
  @media (max-width: 860px) { .w-pair { grid-template-columns: 1fr; } }

  .w-bodies { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
  .w-bodies__text p { font-size: 1.125rem; }
  .w-bodies__text strong { color: #fff; }
  .w-powers { grid-column: 1 / -1; }
  .w-powers__h { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--green); margin-bottom: 16px; }
  .w-powers__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .w-powers__list li { display: grid; gap: 10px; align-content: start; padding: 22px; border-radius: var(--r); background: var(--navy-2); border: 1px solid var(--line); }
  .w-powers__list .num { font-size: 1.5rem; font-weight: 800; color: var(--blue); letter-spacing: -0.03em; }
  .w-powers__list span:last-child { font-weight: 600; color: #fff; line-height: 1.45; }
  @media (max-width: 960px) { .w-bodies { grid-template-columns: 1fr; } .w-powers__list { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 480px) { .w-powers__list { grid-template-columns: 1fr; } }

  .w-sources { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gap); }
  .w-sources__item { display: grid; gap: 14px; align-content: start; padding: 24px; border-radius: var(--r); background: var(--mist); border-top: 4px solid var(--mark); }
  .w-sources__item:nth-child(even) { border-top-color: var(--mark-2); }
  .w-sources__n { font-size: 2rem; font-weight: 800; letter-spacing: -0.04em; color: var(--accent); line-height: 1; }
  .w-sources__t { font-weight: 600; color: var(--fg); line-height: 1.45; }
  @media (max-width: 1180px) { .w-sources { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 640px) { .w-sources { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 400px) { .w-sources { grid-template-columns: 1fr; } }
  .w-docs { display: grid; gap: 16px; max-width: 980px; }

  /* ---------- People ---------- */
  .w-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w-groups .pcard__t { font-size: var(--t-h3); }
  .w-groups__note { margin-top: 20px; font-size: 0.875rem; }
  @media (max-width: 960px) { .w-groups { grid-template-columns: 1fr; } }

  /* ---------- Leadership ---------- */
  .w-reg { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 32px clamp(32px, 5vw, 72px); align-items: start; }
  .w-reg .notice { background: var(--white); }
  .w-reg__aside { display: grid; gap: 12px; justify-items: start; padding: 26px; border-radius: var(--r); background: var(--white); border-left: 4px solid var(--mark-2); color: var(--fg-2); }
  @media (max-width: 960px) { .w-reg { grid-template-columns: 1fr; } }
  [data-theme="mist"] > .wrap > .notice { background: var(--white); }

  /* ---------- Council ---------- */
  .w-cx__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(40px, 6vw, 112px); align-items: start; }
  .w-cx__text { display: grid; gap: 20px; justify-items: start; }
  .w-cx__t { max-width: 16ch; }
  .w-cx__lead { font-size: var(--t-lead); line-height: 1.55; font-weight: 480; color: var(--fg); max-width: 50ch; }
  .w-cx__notes { display: grid; gap: 24px; }
  .w-cx__note { padding: 22px 24px; border-radius: var(--r); background: var(--leaf-bg, var(--green-wash)); border-left: 4px solid var(--green); color: var(--ink); font-weight: 500; }
  .w-cx__lead a, .w-cx__note a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  @media (max-width: 960px) { .w-cx__grid { grid-template-columns: 1fr; } }

  /* ---------- Named members (Council, team) ---------- */
  .w-mems { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 20px; }
  .w-mem { display: flex; flex-direction: column; gap: 10px; padding: 26px 26px 28px; border-radius: var(--r); background: var(--white); border-top: 4px solid var(--green); box-shadow: 0 1px 0 var(--line); }
  .w-mem__n { font-size: var(--t-h4); line-height: 1.25; }
  .w-mem__r { font-size: 0.9375rem; font-weight: 650; line-height: 1.45; color: var(--accent); }
  .w-mem__s { color: var(--fg-2); line-height: 1.55; }
  .w-mem__s a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 0.2em; }
  .w-mems--team { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); max-width: 820px; }

  /* ---------- Full biography ---------- */
  .w-bio { max-width: 68ch; }
  .w-bio p { line-height: 1.7; }
  .w-bio .w-bio__lead { font-size: var(--t-lead); line-height: 1.55; font-weight: 500; color: var(--fg); }
  .w-bio a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }

  /* ---------- Profile record ---------- */
  .w-rec { position: relative; max-width: 960px; }
  .w-rec__line { position: absolute; left: calc(5.5rem + 15px); top: 10px; bottom: 10px; width: 2px; background: var(--line); }
  .w-rec__line i { display: block; height: 100%; background: linear-gradient(var(--blue), var(--green)); transform-origin: 50% 0; }
  .w-rec__item { position: relative; display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 36px; padding: 0 0 36px; }
  .w-rec__item::before { content: ""; position: absolute; left: calc(5.5rem + 9px); top: 10px; width: 14px; height: 14px; border-radius: 50%; background: var(--white); border: 3px solid var(--line-2); transition: border-color var(--d-ui), background var(--d-ui); }
  .w-rec__item.is-reached::before { border-color: var(--blue); background: var(--green); }
  .w-rec__y { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.03em; color: var(--accent); line-height: 1.1; }
  .w-rec__body { display: grid; gap: 6px; padding-left: 12px; }
  .w-rec__role { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent-2); }
  .w-rec__ev { font-size: var(--t-h4); line-height: 1.3; }
  .w-rec__ev a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }
  .w-rec__ev .i { width: 0.65em; height: 0.65em; margin-left: 0.25em; vertical-align: 0.05em; }
  .w-rec__meta { color: var(--fg-2); font-size: 0.96875rem; }
  .w-rec__detail { margin-top: 6px; color: var(--fg-2); max-width: 60ch; padding: 16px 18px; border-radius: var(--r); background: var(--mist); }
  @media (max-width: 600px) {
    .w-rec__item { grid-template-columns: 1fr; gap: 4px; padding-left: 36px; }
    .w-rec__line { left: 7px; }
    .w-rec__item::before { left: 1px; top: 8px; }
    .w-rec__body { padding-left: 0; }
    .w-rec__y { font-size: 1.375rem; }
  }
}

/* What we do and Partner with us. */
@layer pages {
  /* ---------- how we work: mandate ---------- */
  .wk-mandate__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 6vw, 112px); align-items: start; }
  .wk-mandate__is { display: grid; gap: 22px; justify-items: start; }
  .wk-mandate__lead { font-size: var(--t-h2); font-weight: 740; line-height: 1.1; letter-spacing: -0.028em; color: var(--fg); max-width: 18ch; text-wrap: balance; }
  .wk-mandate__not { padding: clamp(24px, 3vw, 40px); border-radius: var(--r); background: var(--mist); border-top: 4px solid var(--green); }
  .wk-limits { display: grid; margin-top: 18px; border-top: 1px solid var(--line); }
  .wk-limits li { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
  .wk-limits__x { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--white); color: var(--blue-ink); border: 1px solid var(--line); }
  .wk-limits__x .i { width: 13px; height: 13px; }
  .wk-limits__t { font-size: 1.1875rem; font-weight: 700; color: var(--fg); line-height: 1.3; }
  .wk-limits__q { font-weight: 450; color: var(--fg-2); font-size: 1rem; }
  @media (max-width: 900px) { .wk-mandate__grid { grid-template-columns: 1fr; } }

  /* ---------- how we work: chapters ---------- */
  .wk-chapters .with-toc { align-items: start; }
  .wk-ch + .wk-ch { margin-top: clamp(56px, 7vw, 104px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
  .wk-ch__head { display: grid; gap: 12px; margin-bottom: 28px; }
  .wk-ch__n { font-size: 1rem; font-weight: 780; color: var(--accent); }
  .wk-ch__n span { margin-left: 6px; font-weight: 600; color: var(--fg-3); }
  .wk-ch__t { font-size: var(--t-h2); max-width: 20ch; }
  .wk-ch__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 28px clamp(28px, 4vw, 56px); align-items: start; }
  .wk-ch--alt .wk-ch__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
  .wk-ch--alt .wk-ch__fig { order: -1; }
  .wk-ch__body p:first-child { font-size: var(--t-lead); line-height: 1.5; color: var(--fg); font-weight: 480; }
  @media (max-width: 900px) { .wk-ch__grid, .wk-ch--alt .wk-ch__grid { grid-template-columns: 1fr; } .wk-ch--alt .wk-ch__fig { order: 0; } }
  @media (max-width: 960px) { .wk-chapters .toc { display: none; } }
  @media (max-width: 900px) { .wk-ch__fig .photo, .wk-coop__fig .photo, .wk-problem__fig .photo { aspect-ratio: 3 / 2 !important; } }

  /* ---------- next steps band ---------- */
  .wk-next .pcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  @media (max-width: 900px) { .wk-next .pcards { grid-template-columns: 1fr; } }
  @media (min-width: 521px) and (max-width: 900px) {
    .wk-next .pcard__a { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); grid-template-rows: auto; }
    .wk-next .pcard__media .photo { height: 100%; aspect-ratio: auto !important; }
  }

  /* ---------- what we work on: sector rail ---------- */
  .wk-rail { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); transition: top var(--d-ui) var(--e-out); }
  body:has(.hdr:not(.is-hidden)) .wk-rail { top: var(--header-h); }
  .wk-rail ol { display: flex; gap: 6px; overflow-x: auto; padding-block: 12px; scrollbar-width: none; }
  .wk-rail ol::-webkit-scrollbar { display: none; }
  @media (max-width: 1023px) { .wk-rail::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 56px; background: linear-gradient(to right, transparent, var(--bg)); pointer-events: none; } }
  .wk-rail a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border-radius: 999px; white-space: nowrap; font-weight: 650; font-size: 0.96875rem; color: var(--fg-2); border: 1.5px solid transparent; transition: background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .wk-rail a .num { font-size: 0.875rem; color: var(--fg-3); }
  .wk-rail a:hover { color: var(--fg); border-color: var(--line-2); }
  .wk-rail a.is-current { background: var(--blue-ink); color: var(--white); }
  .wk-rail a.is-current .num { color: rgba(255, 255, 255, 0.75); }

  /* ---------- what we work on: sectors ---------- */
  .wk-sx { scroll-margin-top: calc(var(--header-h) + 70px); }
  .wk-sx__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 5vw, 88px); align-items: center; }
  .wk-sx--b .wk-sx__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .wk-sx__text { display: grid; gap: 20px; justify-items: start; }
  .wk-sx__n { font-size: 1rem; font-weight: 780; color: var(--accent); }
  .wk-sx__n span { margin-left: 6px; font-weight: 600; color: var(--fg-3); }
  .wk-sx__t { font-size: var(--t-h2); max-width: 14ch; }
  .wk-sx__body p { font-size: var(--t-lead); line-height: 1.55; color: var(--fg-2); max-width: 46ch; font-weight: 450; }
  .wk-sx__media { position: relative; }
  .wk-sx__main .photo { aspect-ratio: 4 / 3; }
  .wk-sx__media.has-inset { padding-bottom: 72px; }
  .wk-sx__inset { position: absolute; right: -12px; bottom: 0; width: 46%; z-index: 1; }
  .wk-sx__inset .photo { aspect-ratio: 3 / 2; box-shadow: 0 0 0 8px var(--bg); }
  .wk-sx__inset .cap { background: var(--bg); padding: 4px 8px 0 0; }
  .wk-sx__media.has-inset .cap::before { content: "Main photograph"; flex-basis: 100%; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .wk-sx__media.has-inset .wk-sx__inset .cap::before { content: "Inset"; }
  .wk-sx__media.has-inset .wk-sx__main .cap { max-width: 50%; }
  .wk-sx--c .wk-sx__main .photo { aspect-ratio: 5 / 4; }
  .wk-sx--c .wk-sx__t { color: var(--white); }
  .wk-pulls { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; width: 100%; margin-top: 8px; border-top: 1px solid var(--line); }
  .wk-pulls__c { display: flex; flex-direction: column-reverse; justify-content: start; gap: 8px; padding-top: 20px; }
  .wk-pulls__fig { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 6px; line-height: 1; }
  .wk-pulls__fig .fig__n { font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.8rem); }
  .wk-pulls__fig .fig__unit { color: var(--green); }
  .wk-pulls__l { font-weight: 600; color: var(--fg-2); font-size: 1rem; }
  .wk-topics { display: grid; gap: 14px; }
  .wk-topics ul { display: flex; flex-wrap: wrap; gap: 8px; }
  .wk-topics li { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; background: var(--blue-wash); color: var(--blue-deep); font-weight: 650; font-size: 0.9375rem; }
  [data-theme="mist"] .wk-topics li { background: var(--white); }
  @media (max-width: 960px) {
    .wk-sx__grid, .wk-sx--b .wk-sx__grid { grid-template-columns: 1fr; }
    .wk-sx--b .wk-sx__media { order: -1; }
    .wk-sx__inset { right: 0; width: 52%; }
  }
  @media (max-width: 520px) { .wk-pulls { grid-template-columns: 1fr; } .wk-sx__inset { position: relative; width: 70%; margin: 16px 0 0 auto; } .wk-sx__media.has-inset { padding-bottom: 0; } .wk-sx__media.has-inset .wk-sx__main .cap { max-width: none; } }

  /* ---------- for business ---------- */
  .wk-problem__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 6vw, 104px); align-items: center; }
  .wk-problem__text { display: grid; gap: 24px; justify-items: start; }
  .wk-problem__lead { font-size: clamp(1.35rem, 1rem + 1.25vw, 2.05rem); font-weight: 560; line-height: 1.38; letter-spacing: -0.018em; color: var(--fg); max-width: 34ch; }
  .wk-problem__note { padding-left: 18px; border-left: 4px solid var(--green); font-size: 1.125rem; font-weight: 550; color: var(--fg); max-width: 52ch; }
  @media (max-width: 900px) { .wk-problem__grid { grid-template-columns: 1fr; } .wk-problem__fig .photo { aspect-ratio: 3 / 2 !important; } }
  .wk-eng__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 40px clamp(32px, 5vw, 80px); align-items: start; }
  @media (max-width: 960px) { .wk-stages { display: none !important; } }
  .wk-stages { position: sticky; top: calc(var(--header-h) + 32px); display: grid; gap: 12px; }
  .wk-stages ol { display: grid; gap: 4px; }
  .wk-stages a { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: var(--r); font-weight: 650; font-size: 0.96875rem; color: var(--fg-2); transition: background var(--d-micro), color var(--d-micro); }
  .wk-stages a .num:first-child { color: var(--fg-3); font-size: 0.875rem; }
  .wk-stages a:hover { background: var(--mist); color: var(--fg); }
  .wk-stages a.is-current { background: var(--blue-ink); color: var(--white); }
  .wk-stages a.is-current .num { color: rgba(255, 255, 255, 0.8); }
  .wk-stages__c { display: grid; place-items: center; min-width: 28px; height: 28px; border-radius: 999px; background: var(--mist-2); color: var(--ink-2); font-size: 0.875rem; font-weight: 700; }
  .wk-stages a.is-current .wk-stages__c { background: rgba(255, 255, 255, 0.18); color: #fff; }
  .wk-stages__fig { margin-top: 20px; }
  .wk-stages__fig .cap { font-size: 0.875rem; }
  @media (max-width: 960px) {
    .wk-eng__grid { grid-template-columns: 1fr; }
    .wk-stages { position: static; }
    .wk-stages ol { grid-template-columns: 1fr 1fr; }
    .wk-stages__fig { display: none; }
  }
  @media (max-width: 520px) { .wk-stages ol { grid-template-columns: 1fr; } }
  .wk-start__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(32px, 6vw, 104px); align-items: center; }
  .wk-start__text { display: grid; gap: 22px; justify-items: start; }
  .wk-start__t { max-width: 14ch; }
  .wk-start__body p { font-size: var(--t-lead); line-height: 1.55; color: var(--fg); font-weight: 450; }
  @media (max-width: 900px) { .wk-start__grid { grid-template-columns: 1fr; } }

  /* ---------- projects ---------- */
  .wk-register__grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 32px clamp(24px, 4vw, 56px); align-items: start; }
  .wk-policy { display: grid; gap: 14px; padding: clamp(24px, 3vw, 36px); border-radius: var(--r); background: var(--navy); color: var(--on-dark); }
  .wk-policy .kicker { color: var(--green); }
  .wk-policy .kicker::before { background: radial-gradient(circle at 5px 5px, var(--blue) 4.2px, transparent 4.8px), radial-gradient(circle at 15px 5px, var(--green) 4.2px, transparent 4.8px); }
  .wk-policy__body p { color: var(--on-dark-2); font-size: 1.0625rem; }
  .wk-policy__body p + p { margin-top: 0.9em; }
  @media (max-width: 960px) { .wk-register__grid { grid-template-columns: 1fr; } }

  /* ---------- partner with us: two routes ---------- */
  .wk-routes__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 24px; align-items: stretch; }
  .wk-route { display: grid; gap: 18px; align-content: start; justify-items: start; padding: clamp(28px, 3.5vw, 48px); border-radius: var(--r); background: var(--mist); }
  .wk-route--a { border-top: 4px solid var(--blue); }
  .wk-route--b { border-top: 4px solid var(--green); }
  .wk-route__text { font-size: 1.125rem; line-height: 1.6; color: var(--fg); max-width: 48ch; }
  .wk-routes__sep { display: grid; place-items: center; position: relative; }
  .wk-routes__sep::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1.5px dashed var(--line-2); }
  .wk-routes__sep span { position: relative; padding: 10px 0; background: var(--white); writing-mode: vertical-rl; transform: rotate(180deg); font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-3); }
  @media (max-width: 900px) {
    .wk-routes__grid { grid-template-columns: 1fr; }
    .wk-routes__sep::before { top: 50%; bottom: auto; left: 0; right: 0; border-left: 0; border-top: 1.5px dashed var(--line-2); }
    .wk-routes__sep span { writing-mode: horizontal-tb; transform: none; padding: 0 12px; }
  }

  /* three kinds */
  .wk-kinds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
  .wk-kind__a { display: grid; gap: 14px; align-content: start; height: 100%; padding: clamp(24px, 3vw, 36px); border-radius: var(--r); background: var(--navy-2); border: 1px solid var(--line); transition: background var(--d-ui), border-color var(--d-ui), transform var(--d-ui) var(--e-out); }
  .wk-kind__a:hover { background: var(--navy-3); border-color: var(--green); transform: translateY(-4px); }
  .wk-kind__n { font-family: var(--f-serif); font-style: italic; font-weight: 600; font-size: 3rem; line-height: 1; color: var(--green); }
  .wk-kind__t { font-size: var(--t-h3); color: var(--white); }
  .wk-kind__d { color: var(--fg-2); }
  .wk-kind__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-weight: 700; color: var(--blue); }
  .wk-kind__go .i { width: 15px; height: 15px; transition: transform var(--d-ui) var(--e-out); }
  .wk-kind__a:hover .wk-kind__go .i { transform: translateX(5px); }
  @media (max-width: 900px) { .wk-kinds { grid-template-columns: 1fr; } }

  /* institutional cooperation / joint initiatives */
  .wk-coop__grid, .wk-joint__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(32px, 6vw, 104px); align-items: center; }
  .wk-joint__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .wk-coop__text, .wk-joint__text { display: grid; gap: 22px; justify-items: start; }
  .wk-coop__t, .wk-joint__t { max-width: 16ch; }
  .wk-coop__text .prose p:first-child, .wk-joint__text .prose p:first-child { font-size: var(--t-lead); color: var(--fg); line-height: 1.5; }
  .wk-coop__pull { margin-top: 8px; padding-left: 20px; border-left: 4px solid var(--green); font-family: var(--f-serif); font-style: italic; font-weight: 560; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.2rem); line-height: 1.25; color: var(--blue-ink); }
  @media (max-width: 900px) { .wk-coop__grid, .wk-joint__grid { grid-template-columns: 1fr; } .wk-coop__fig .photo { aspect-ratio: 3 / 2 !important; } }

  /* partnering on a forum */
  .wk-cw__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px clamp(32px, 6vw, 104px); align-items: start; }
  .wk-cw__head { display: grid; gap: 20px; justify-items: start; }
  .wk-cw__t { color: var(--white); max-width: 14ch; }
  .wk-cw__logo { width: 200px; height: auto; margin-top: 8px; }
  .wk-cw__body { display: grid; gap: 24px; justify-items: start; }
  .wk-cw__body .prose p { font-size: 1.125rem; color: var(--fg-2); }
  .wk-cw__places { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: clamp(40px, 5vw, 64px); }
  .wk-cw__places .cwe { background: var(--navy-2); backdrop-filter: none; -webkit-backdrop-filter: none; }
  @media (max-width: 1180px) { .wk-cw__places { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 900px) { .wk-cw__grid { grid-template-columns: 1fr; } }
  @media (max-width: 640px) { .wk-cw__places { grid-template-columns: 1fr 1fr; } }

  /* propose */
  .wk-propose__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px clamp(32px, 6vw, 104px); align-items: start; }
  .wk-propose__t { margin-top: 16px; max-width: 12ch; }
  .wk-propose__body { display: grid; gap: 28px; justify-items: start; }
  .wk-propose__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; }
  .wk-propose__list li { display: grid; gap: 8px; padding: 18px 20px; border-radius: var(--r); background: var(--white); font-weight: 650; color: var(--fg); line-height: 1.35; }
  .wk-propose__list .num { font-size: 0.875rem; font-weight: 780; color: var(--green-ink); }
  @media (max-width: 900px) { .wk-propose__grid { grid-template-columns: 1fr; } }
  @media (max-width: 600px) { .wk-propose__list { grid-template-columns: 1fr; } }
}

/* Events, insights, careers, contact, legal and the 404. */
@layer pages {
  /* ---------- events: next ---------- */
  .evnext { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 0; border-radius: var(--r); overflow: hidden; background: var(--white); border: 1px dashed var(--line-2); }
  .evnext__fig { position: relative; }
  .evnext__fig .photo { height: 100%; min-height: 320px; border-radius: 0; }
  .evnext__fig .cap { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 36px 18px 14px; color: #fff; background: linear-gradient(to top, rgba(6, 18, 28, 0.78), transparent); }
  .evnext__fig .cap__k { color: #fff; }
  .evnext__body { display: grid; gap: 16px; align-content: center; justify-items: start; padding: clamp(28px, 4vw, 56px); }
  .evnext__t { font-size: var(--t-h2); font-weight: 760; letter-spacing: -0.03em; line-height: 1.05; color: var(--fg); }
  .evnext__p { font-size: var(--t-lead); line-height: 1.5; color: var(--fg-2); max-width: 40ch; }
  .evnext__body .btn-row { margin-top: 8px; }
  .evnext-list { display: grid; gap: var(--gap); }
  .evlatest { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--gap); align-items: stretch; }
  .evlatest__card { padding: clamp(20px, 2.5vw, 32px); border-radius: var(--r); background: var(--white); }
  .evlatest__card .evc { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; gap: 28px; }
  .evnext-strip { display: grid; gap: 14px; align-content: center; justify-items: start; padding: clamp(24px, 3vw, 36px); border-radius: var(--r); background: var(--navy); color: #fff; }
  .evnext-strip .kicker { color: var(--green); }
  .evnext-strip__t { font-size: 1.125rem; line-height: 1.5; color: var(--on-dark-2); }
  .evnext-strip__t strong { display: block; margin-bottom: 4px; font-size: var(--t-h3); color: #fff; letter-spacing: -0.02em; }
  .evnext-strip .btn--solid { --btn-bg: var(--green); --btn-fg: var(--navy); --btn-hover: var(--white); }
  .evnext-strip .btn--text { color: var(--blue); }
  @media (max-width: 1023px) { .evlatest, .evlatest__card .evc { grid-template-columns: 1fr; } }
  @media (max-width: 860px) { .evnext { grid-template-columns: 1fr; } .evnext__fig .photo { min-height: 0; aspect-ratio: 16 / 9; } }

  /* ---------- events: the record ---------- */
  .evrec__bar { display: grid; gap: 14px; margin-bottom: 48px; padding: 18px 20px; border-radius: var(--r); background: var(--mist); }
  .evf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
  .evf__k, .evrail__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
  .evf__chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .evf__chip { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 8px 0 16px; border-radius: 999px; border: 1.5px solid var(--line-2); font-weight: 650; font-size: 0.96875rem; color: var(--fg-2); transition: background var(--d-ui), color var(--d-ui), border-color var(--d-ui); }
  .evf__n { display: inline-grid; place-items: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; background: var(--mist-2); color: var(--ink); font-size: 0.875rem; font-weight: 720; }
  .evf__chip:hover { border-color: var(--fg); color: var(--fg); }
  .evf__chip[aria-pressed="true"] { background: var(--blue-ink); border-color: var(--blue-ink); color: #fff; }
  .evf__chip[aria-pressed="true"] .evf__n { background: var(--navy); color: #fff; }
  .evf__status { margin-left: auto; font-size: 0.9375rem; font-weight: 600; color: var(--fg-3); }
  .evrail { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding-top: 14px; border-top: 1px solid var(--line-2); }
  .evrail ol { display: flex; flex-wrap: wrap; gap: 4px; }
  .evrail a:hover, .evrail a:focus-visible { background: var(--white); }
  .evrail a { display: inline-grid; place-items: center; min-width: 56px; min-height: 36px; padding: 0 10px; border-radius: var(--r); font-weight: 680; font-size: 0.9375rem; color: var(--fg-2); transition: background var(--d-micro), color var(--d-micro); }
  .evrail a:hover { background: var(--mist); color: var(--accent); }
  .evrail li.is-off a { opacity: 0.35; pointer-events: none; }
  .evrec .evyear .ev__y { display: none; }
  .evrec .ev--pic .ev__pic .photo { aspect-ratio: 3 / 2; }
  @media (max-width: 860px) {
    .evrec__bar { position: static; padding: 14px; }
    .evf__status { margin-left: 0; width: 100%; }
  }

  /* ---------- events: gallery rail ---------- */
  .evgal { overflow: hidden; }
  .evgal .sec__aside { justify-items: start; }
  .evgal__nav { display: flex; gap: 10px; }
  .evgal__btn { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--line-2); color: #fff; transition: background var(--d-ui), border-color var(--d-ui), color var(--d-ui), opacity var(--d-micro); }
  .evgal__btn .i { width: 18px; height: 18px; }
  .evgal__btn[data-rail-prev] .i { transform: rotate(180deg); }
  .evgal__btn:hover:not(:disabled) { background: var(--green); border-color: var(--green); color: var(--navy); }
  .evgal__btn:disabled { opacity: 0.35; cursor: default; }
  .evgal__rail { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); padding-inline: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); padding-bottom: 12px; scrollbar-width: thin; scrollbar-color: var(--navy-3) transparent; }
  .evgal__rail:focus-visible { outline-offset: -4px; }
  .evgal__item { flex: none; width: clamp(260px, 30vw, 460px); scroll-snap-align: start; }
  .evgal__item:nth-child(3n + 2) { width: clamp(220px, 22vw, 330px); }
  .evgal__item .photo { aspect-ratio: 4 / 3; }
  .evgal__item:nth-child(3n + 2) .photo { aspect-ratio: 4 / 5; }
  .evgal__item img { transition: transform 1.2s var(--e-out); }
  .evgal__item:hover img { transform: scale(1.04); }
  .evgal__item .cap { color: var(--fg-2); }
  .evgal__item .cap__k { color: var(--fg); }
  .evgal__more { margin-top: 28px; }

  .evtook__note { margin-top: 32px; }

  /* ---------- JCC forum ---------- */
  .jccd__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 24px; align-items: center; }
  .jccd__col { display: grid; gap: 14px; align-content: start; justify-items: start; height: 100%; padding: clamp(24px, 3vw, 40px); border-radius: var(--r); background: var(--white); border-top: 5px solid var(--green); }
  .jccd__col--cw { border-top-color: var(--blue); }
  .jccd__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
  .jccd__name { font-size: var(--t-h3); font-weight: 760; letter-spacing: -0.02em; line-height: 1.15; }
  .jccd__dl { display: grid; width: 100%; border-top: 1px solid var(--line); }
  .jccd__dl > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .jccd__dl dt { color: var(--fg-3); font-weight: 600; font-size: 0.9375rem; }
  .jccd__dl dd { font-weight: 650; }
  .jccd__vs { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--navy); color: var(--green); font-size: 2.25rem; font-weight: 700; }
  @media (max-width: 860px) { .jccd__grid { grid-template-columns: 1fr; justify-items: center; } .jccd__col { width: 100%; } }
  .stgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-bottom: 28px; }
  .stg { position: relative; display: grid; gap: 12px; align-content: start; padding: clamp(24px, 3vw, 36px); border-radius: var(--r); background: var(--mist); overflow: hidden; }
  .stg__n { position: absolute; top: 20px; right: 22px; font-weight: 720; color: var(--fg-3); }
  .stg__day { display: flex; align-items: baseline; gap: 10px; font-size: clamp(4rem, 3rem + 4vw, 7rem); font-weight: 800; letter-spacing: -0.06em; line-height: 0.9; color: var(--blue-ink); }
  .stg:nth-child(2) .stg__day { color: var(--green-ink); }
  .stg__day span { font-size: 1.25rem; letter-spacing: 0; text-transform: uppercase; color: var(--fg-2); }
  .stg__date { font-size: var(--t-h4); }
  .stg__city { display: flex; gap: 8px; align-items: center; font-weight: 650; color: var(--fg-2); }
  .stg__city .i { width: 17px; height: 17px; color: var(--accent); }
  .stg__dl { display: grid; gap: 10px; margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); }
  .stg__dl dt { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .stg__dl dd { margin-top: 2px; color: var(--fg); }
  .tbc { color: var(--fg-3); font-style: normal; }
  @media (max-width: 960px) { .stgs { grid-template-columns: 1fr; } }
  .jccm { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(32px, 5vw, 88px); align-items: start; }
  .jccm__text p { font-size: 1.125rem; }
  .jccm__cor { display: grid; gap: 22px; padding: clamp(24px, 3vw, 40px); border-radius: var(--r); background: var(--navy-2); border: 1px solid var(--line); }
  .jccm__groups { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .jccm__gk { margin-bottom: 12px; font-weight: 700; color: #fff; }
  .jccm__chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .jccm__chips li { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); border: 1px solid var(--line-2); font-weight: 600; font-size: 0.9375rem; }
  .jccm__chips li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
  .jccm__groups > div:last-child .jccm__chips li::before { background: var(--blue); }
  .jccm__note { font-size: var(--t-small); color: var(--fg-2); }
  @media (max-width: 960px) { .jccm { grid-template-columns: 1fr; } }
  @media (max-width: 480px) { .jccm__groups { grid-template-columns: 1fr; } }
  .jccr { display: grid; gap: 28px; justify-items: start; }

  /* ---------- publications ---------- */
  .arch__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(32px, 5vw, 88px); align-items: center; }
  .arch__body { display: grid; gap: 18px; justify-items: start; }
  .arch__n { font-size: clamp(5rem, 3rem + 8vw, 10rem); font-weight: 800; letter-spacing: -0.06em; line-height: 0.85; color: var(--green); }
  .arch__t { font-size: var(--t-h2); color: #fff; max-width: 16ch; }
  .arch__go { margin-top: 8px; }
  .arch__fig .photo { aspect-ratio: 16 / 10; }
  .arch__fig .cap { color: var(--fg-2); }
  .arch__fig .cap__k { color: #fff; }
  @media (max-width: 960px) { .arch__grid { grid-template-columns: 1fr; } }
  .cite-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px clamp(32px, 5vw, 80px); align-items: start; }
  .cite { display: grid; gap: 14px; justify-items: start; padding: 28px; border-radius: var(--r); background: var(--white); border-left: 5px solid var(--green); }
  .cite__t { font-size: var(--t-h4); font-weight: 720; color: var(--fg); }
  @media (max-width: 860px) { .cite-grid { grid-template-columns: 1fr; } }

  /* ---------- media centre ---------- */
  .mc-cards { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
  .mc-cards .pcard__t { font-size: var(--t-h3); }
  .mcnote { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--fg-2); max-width: 70ch; }
  .mcnote a { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; }

  /* ---------- press kit ---------- */
  .pk-reg { max-width: 980px; }
  .pk-who { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 32px clamp(32px, 5vw, 72px); align-items: start; }
  .pk-who__pic .photo { width: clamp(120px, 14vw, 200px); aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 6px var(--navy), 0 0 0 9px var(--green); }
  .pk-who__body { display: grid; gap: 18px; justify-items: start; max-width: 860px; }
  .pk-who__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--green); }
  .pk-who__name { font-family: var(--f-serif); font-style: italic; font-weight: 540; font-size: clamp(1.6rem, 1.1rem + 2vw, 2.75rem); line-height: 1.2; color: #fff; text-wrap: balance; }
  .pk-who .prose p { color: var(--fg-2); }
  @media (max-width: 640px) { .pk-who { grid-template-columns: 1fr; } }
  .pk-figs__note { margin-top: 28px; }
  .pk-figs .figs__cells { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 12px; }
  @media (max-width: 760px) { .pk-figs .figs__cells { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 420px) { .pk-figs .figs__cells { grid-template-columns: 1fr; } }
  .pk-boiler { display: grid; gap: 20px; justify-items: start; max-width: 980px; padding: clamp(24px, 4vw, 48px); border-radius: var(--r); background: var(--white); border-left: 5px solid var(--blue); }
  .pk-boiler__text { font-size: 1.125rem; line-height: 1.7; color: var(--fg); }
  .pk-errs { display: grid; gap: 16px; }
  .pk-err { display: grid; grid-template-columns: auto minmax(0, 5fr) minmax(0, 7fr); gap: 16px 32px; align-items: start; padding: 24px; border-radius: var(--r); background: var(--mist); }
  .pk-err__i { font-weight: 760; color: var(--fg-3); padding-top: 2px; }
  .pk-err__k { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
  .pk-err__k .i { width: 16px; height: 16px; }
  .pk-err__x .pk-err__k { color: #A02A1F; }
  .pk-err__ok .pk-err__k { color: var(--green-ink); }
  .pk-err__wrong { color: var(--fg-2); }
  .pk-err__wrong s { text-decoration-color: #C0392B; text-decoration-thickness: 2px; }
  .pk-err__ok p:last-child { color: var(--fg); font-weight: 500; }
  @media (max-width: 760px) { .pk-err { grid-template-columns: 1fr; } }
  .pk-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--gap); margin-bottom: 24px; }
  .pk-logo { border-radius: var(--r); overflow: hidden; background: var(--white); box-shadow: 0 0 0 1px var(--line); }
  .pk-logo__views { display: grid; grid-template-columns: 1fr 1fr; }
  .pk-logo__view { display: grid; place-items: center; min-height: 160px; padding: 28px; }
  .pk-logo__view img { max-width: 100%; height: auto; max-height: 52px; width: auto; }
  .pk-logo__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; border-top: 1px solid var(--line); }
  .pk-logo__k { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .pk-logo__t { font-size: var(--t-h4); margin-top: 2px; }
  .pk-logo__f { font-size: var(--t-small); color: var(--fg-3); margin-top: 2px; }

  /* ---------- in the media ---------- */
  .cov__sum { display: flex; flex-wrap: wrap; gap: 16px 56px; margin-bottom: 48px; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
  .cov__sum dt { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); }
  .cov__sum dd { margin-top: 4px; font-size: var(--t-figure); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
  .cov__year { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 10fr); gap: 0 40px; }
  .cov__year + .cov__year { margin-top: 48px; }
  .cov__y { position: sticky; top: calc(var(--header-h) + 24px); align-self: start; display: grid; gap: 4px; }
  .cov__y .num { font-size: var(--t-h2); font-weight: 780; letter-spacing: -0.03em; color: var(--accent); }
  .cov__c { font-size: 0.9375rem; font-weight: 600; color: var(--fg-3); }
  .cov__list { border-top: 1px solid var(--line); }
  .cov__row { border-bottom: 1px solid var(--line); }
  .cov__a { display: grid; grid-template-columns: minmax(120px, 2fr) minmax(0, 7fr) minmax(0, 3fr); gap: 8px 28px; align-items: start; padding: 22px 0; transition: background var(--d-ui), padding var(--d-ui) var(--e-out); }
  .cov__a:hover { background: var(--mist); padding-inline: 14px; }
  .cov__date { font-weight: 700; color: var(--fg); }
  .cov__main { display: grid; gap: 4px; }
  .cov__outlet { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); }
  .cov__what { font-size: 1.125rem; font-weight: 650; line-height: 1.4; color: var(--fg); }
  .cov__a:hover .cov__what { color: var(--accent); }
  .cov__host { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; font-size: 0.9375rem; color: var(--fg-3); overflow-wrap: anywhere; }
  .cov__host .i { width: 12px; height: 12px; flex: none; }
  @media (max-width: 860px) {
    .cov__year { grid-template-columns: 1fr; }
    .cov__y { position: static; margin-bottom: 10px; }
    .cov__a { grid-template-columns: 1fr; }
    .cov__host { justify-content: flex-start; }
  }

  /* ---------- careers ---------- */
  .car-cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

  /* ---------- contact ---------- */
  .ct__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px clamp(32px, 5vw, 88px); align-items: start; }
  .ct__reg { display: grid; gap: 18px; }
  .ct__h { font-size: var(--t-h2); }
  .ct__note { font-size: var(--t-lead); line-height: 1.5; color: var(--fg-2); max-width: 48ch; margin-bottom: 12px; }
  .ct__fig { position: sticky; top: calc(var(--header-h) + 24px); }
  .ct__fig .photo { aspect-ratio: 4 / 5; }
  .ct__card { position: relative; z-index: 1; margin: -96px 20px 0; padding: 22px 24px; border-radius: var(--r); background: var(--navy); color: #fff; box-shadow: 0 24px 48px -24px rgba(11, 31, 46, 0.5); }
  .ct__card-k { display: flex; align-items: center; gap: 8px; font-size: var(--t-label); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--green); }
  .ct__card-k .i { width: 16px; height: 16px; }
  .ct__card-t { margin-top: 6px; font-size: var(--t-h4); font-weight: 740; }
  .ct__clock { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 0.9375rem; color: var(--on-dark-2); }
  .ct__clock-dot { width: 10px; height: 10px; flex: none; border-radius: 50%; background: var(--on-dark-3); }
  .ct__clock.is-open .ct__clock-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(141, 198, 63, 0.25); }
  .ct__fig .cap { margin-top: 14px; }
  .ct__routes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  @media (max-width: 1180px) { .ct__routes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 960px) { .ct__grid { grid-template-columns: 1fr; } .ct__fig { position: static; } .ct__fig .photo { aspect-ratio: 16 / 10; } }
  @media (max-width: 560px) { .ct__routes { grid-template-columns: 1fr; } }
  .ctf__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px clamp(32px, 5vw, 88px); align-items: start; }
  .ctf__head { display: grid; gap: 16px; justify-items: start; position: sticky; top: calc(var(--header-h) + 24px); }
  .ctf__lead { color: var(--fg-2); font-size: 1.0625rem; max-width: 36ch; }
  .ctf__form { padding: clamp(24px, 3vw, 40px); border-radius: var(--r); background: var(--mist); }
  @media (max-width: 960px) { .ctf__grid { grid-template-columns: 1fr; } .ctf__head { position: static; } }

  /* ---------- legal ---------- */
  .legal__doc { max-width: 76ch; }
  .legal__intro p { font-size: var(--t-lead); line-height: 1.55; color: var(--fg); }
  .legal__sec { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 0 12px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
  .legal__n { font-size: 1.125rem; font-weight: 780; color: var(--accent); padding-top: 4px; }
  .legal__h { font-size: var(--t-h3); margin-top: 0 !important; }
  .legal__body { margin-top: 14px; }
  .legal__body > * + * { margin-top: 1em; }
  @media (max-width: 520px) { .legal__sec { grid-template-columns: 1fr; } }
}

/* Membership and support. */
@layer pages {
  .mb-who { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gap); }
  .mb-who__i { display: grid; gap: 18px; align-content: space-between; min-height: 150px; padding: 24px; border-radius: var(--r); background: var(--mist); border-top: 4px solid var(--blue); }
  .mb-who__i:nth-child(even) { border-top-color: var(--green); }
  .mb-who__n { font-size: 0.9375rem; font-weight: 760; color: var(--blue-ink); }
  .mb-who__t { font-size: var(--t-h4); font-weight: 740; line-height: 1.25; letter-spacing: -0.01em; }
  @media (max-width: 1023px) { .mb-who { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mb-who__i { min-height: 140px; } }
  @media (max-width: 480px) { .mb-who { grid-template-columns: 1fr; } .mb-who__i { min-height: 0; grid-template-columns: auto 1fr; align-items: center; } }

  .mb-means__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px clamp(32px, 5vw, 96px); align-items: center; }
  .mb-means__text { display: grid; gap: 18px; justify-items: start; }
  .mb-means__text .sec__title { color: #fff; }
  .mb-means__facts { display: grid; gap: 12px; }
  .mb-means__facts > div { padding: 22px 24px; border-radius: var(--r); background: var(--navy-2); border-left: 4px solid var(--green); }
  .mb-means__facts dt { font-size: var(--t-label); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--green); }
  .mb-means__facts dd { margin-top: 6px; font-size: 1.125rem; font-weight: 650; color: #fff; }
  @media (max-width: 960px) { .mb-means__grid { grid-template-columns: 1fr; } }

  .mb-apply { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px clamp(32px, 5vw, 80px); align-items: start; }
  .mb-steps { display: grid; gap: 14px; counter-reset: st; }
  .mb-step { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; padding: 24px 26px; border-radius: var(--r); background: var(--white); }
  .mb-step__n { grid-row: 1 / span 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--blue-ink); color: #fff; font-weight: 780; font-size: 1.125rem; }
  .mb-step:nth-child(2) .mb-step__n { background: var(--green); color: var(--navy); }
  .mb-step:nth-child(3) .mb-step__n { background: var(--navy); }
  .mb-step__t { font-size: var(--t-h4); }
  .mb-step__d { color: var(--fg-2); }
  .mb-ways { display: grid; gap: 14px; }
  .mb-way { display: flex; gap: 16px; align-items: flex-start; padding: 24px; border-radius: var(--r); background: var(--navy); color: #fff; transition: background var(--d-ui); }
  a.mb-way:hover { background: var(--blue-deep); }
  .mb-way > .i { width: 24px; height: 24px; margin-top: 2px; color: var(--green); }
  .mb-way > span { display: grid; gap: 6px; }
  .mb-way__k { font-size: 0.875rem; color: var(--on-dark-2); }
  .mb-way__v { font-size: 1.1875rem; font-weight: 700; line-height: 1.4; }
  .mb-way--post { background: var(--white); color: var(--ink); border: 1px solid var(--line); }
  .mb-way--post .mb-way__k { color: var(--ink-3); }
  .mb-way--post > .i { color: var(--blue-ink); }
  @media (max-width: 960px) { .mb-apply { grid-template-columns: 1fr; } .mb-ways { position: static; } }

  .mb-support__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 40px clamp(32px, 5vw, 96px); align-items: center; }
  .mb-support__fig .photo { aspect-ratio: 5 / 4; }
  .mb-support__text { display: grid; gap: 20px; justify-items: start; }
  .mb-support__p { font-size: var(--t-lead); line-height: 1.5; max-width: 42ch; }
  @media (max-width: 960px) { .mb-support__grid { grid-template-columns: 1fr; } }
}

/* Print: content only. */
@layer print {
  @media print {
    .hdr, .menu, .mega, .ftr__ways, .hero__controls, .progress, .skip-link, .doors, .inv { display: none !important; }
    [data-theme] { background: #fff !important; color: #000 !important; }
    .ph--feature .ph__media, .ph--feature .ph__veil, .hcw__bg, .hcw__veil { display: none; }
    a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
  }
}
