*,*::before,*::after{ box-sizing:border-box; }
  :root{
    --ink:#071A2F; --space:#071A2F; --space-deep:#05101E;
    --cream:#F7F5EF; --sand:#F4F1E8; --stone:#F2EFE6; --mist:#EEF1F0; --footer:#E9E3D6;
    --forest:#2F4A3D; --glacier:#6096C8; --glacier-deep:#2D6296; --glacier-light:#9EC8EC;
    --ink-rev:#E9EFF0; --border-neutral:#DDD8CC; --border-cool:#D7DDDF; --hairline:rgba(7,26,47,.12);
    --hairline-rev:rgba(233,239,240,.18);
    --serif:'Old Standard TT', Georgia, serif;
    --sans:'Source Sans 3', system-ui, -apple-system, sans-serif;
    --ease-expo:cubic-bezier(0.16,1,0.3,1);
    --ease-quart:cubic-bezier(0.25,1,0.5,1);
    --spring:cubic-bezier(0.34,1.28,0.44,1);
    --pad:clamp(72px, 11vw, 150px);
    --gutter:clamp(20px, 5vw, 64px);
    --maxw:1220px;
  }
  html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
  body{
    margin:0; background:var(--cream); color:var(--ink);
    font-family:var(--sans); font-size:clamp(15px,1.15vw,17.5px); line-height:1.62;
    letter-spacing:-0.01em; -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }

  /* ---------- Type ---------- */
  .display, h1, h2{ font-family:var(--serif); font-weight:400; letter-spacing:-0.006em; text-wrap:balance; }
  h3{ font-family:var(--sans); font-weight:600; letter-spacing:-0.01em; }
  p{ text-wrap:pretty; }
  .eyebrow{
    font-family:var(--sans); font-weight:600; font-size:12.5px; line-height:1.3;
    letter-spacing:0.14em; text-transform:uppercase; color:var(--glacier-deep);
    margin:0 0 clamp(18px,2vw,26px);
  }
  .eyebrow--rev{ color:var(--glacier-light); }
  .lead{ font-size:clamp(18px,1.7vw,23px); line-height:1.5; letter-spacing:-0.012em; }
  .measure{ max-width:64ch; }
  /* ---------- Layout helpers ---------- */
  .wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
  .section{ padding-block:var(--pad); }
  .atmos-line{ height:1px; border:0; margin:0; transform-origin:50% 50%; opacity:.55;
    background:linear-gradient(90deg, transparent, var(--glacier-light) 16%, var(--glacier) 50%, var(--glacier-light) 84%, transparent); }

  /* ---------- Text link (no buttons, ever) ---------- */
  .tlink{ display:inline-flex; align-items:baseline; gap:.5ch; text-decoration:none; font-weight:600; color:var(--ink); }
  .tlink .lbl{ border-bottom:1px solid var(--ink); padding-bottom:2px; transition:border-color .25s var(--ease-quart); }
  .tlink .arrow{ transition:transform .3s var(--ease-expo); }
  .tlink:hover .arrow{ transform:translateX(5px); }
  .tlink--rev{ color:var(--ink-rev); }
  .tlink--rev .lbl{ border-bottom-color:var(--hairline-rev); }
  .tlink--rev:hover .lbl{ border-bottom-color:var(--ink-rev); }
  a:focus-visible, button:focus-visible{ outline:2px solid var(--glacier); outline-offset:3px; border-radius:2px; }

  /* ---------- Nav ---------- */
  .nav{ position:fixed; inset:0 0 auto 0; z-index:50; display:flex; align-items:center;
    justify-content:space-between; padding:18px var(--gutter);
    transition:background .4s var(--ease-quart), box-shadow .4s, padding .4s var(--ease-quart); }
  .nav__logo{ height:34px; width:auto; }
  .nav__logo--dark{ display:none; }
  .nav__links{ display:flex; gap:clamp(18px,2.4vw,38px); list-style:none; margin:0; padding:0; }
  .nav__links a{ text-decoration:none; font-size:14.5px; font-weight:400; color:var(--ink-rev);
    opacity:.9; padding:6px 0; transition:opacity .2s; }
  .nav__links a:hover{ opacity:1; }
  .nav__links a[aria-current="page"]{ opacity:1; border-bottom:1px solid currentColor; }
  .nav.is-solid{ background:rgba(247,245,239,.92); backdrop-filter:blur(8px);
    box-shadow:0 1px 0 var(--hairline); padding-block:14px; }
  .nav.is-solid .nav__logo--white{ display:none; }
  .nav.is-solid .nav__logo--dark{ display:block; }
  .nav.is-solid .nav__links a{ color:var(--ink); }
  .nav__burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; flex-direction:column; gap:5px; position:relative; z-index:60; }
  .nav__burger span{ width:24px; height:2px; background:var(--ink-rev); transition:background .3s, transform .3s var(--ease-quart), opacity .2s; }
  .nav.is-solid .nav__burger span{ background:var(--ink); }

  /* ---------- Language switcher (Weglot, re-skinned into the nav) ---------- */
  .nav__lang{ position:relative; contain:layout; }
  .nav__lang .wg-flag{
    display:inline-block !important; vertical-align:-3px !important;
    width:16px !important; height:auto !important; margin-right:7px !important; border-radius:1px;
  }
  .nav__lang .weglot_switcher.wg-drop{ background:none !important; box-shadow:none !important; height:auto !important; width:auto !important; border:0 !important; contain:layout; }
  .nav__lang .weglot_switcher.wg-drop .wg-li{ background:none !important; height:auto !important; border:0 !important; }
  .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent{ cursor:pointer; }
  .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent a{
    display:inline !important; position:relative !important; top:2px; height:auto !important;
    padding:6px 18px 6px 0 !important; text-decoration:none !important;
    font-family:var(--sans) !important; font-size:14.5px !important; font-weight:400; color:var(--ink-rev) !important;
    opacity:.9; transition:opacity .2s;
  }
  .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent:hover a{ opacity:1; }
  .nav.is-solid .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent a{ color:var(--ink) !important; }
  .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent::after{
    background-image:none !important; content:"" !important; position:absolute !important; right:2px !important; top:50% !important;
    width:6px !important; height:6px !important; margin-top:-5px !important;
    border:0 !important; border-right:1.5px solid currentColor !important; border-bottom:1.5px solid currentColor !important;
    transform:rotate(45deg); transition:transform .25s var(--ease-quart);
  }
  .nav__lang .wg-drop:not(.closed) .wg-li.wgcurrent::after{ transform:rotate(-135deg) !important; margin-top:-2px !important; }
  .nav__lang #weglot-listbox{
    top:calc(100% + 12px) !important; bottom:auto !important; left:auto !important; right:0 !important; min-width:130px !important;
    height:auto !important; max-height:none !important; overflow:visible !important;
    background:rgba(5,16,30,.92) !important; backdrop-filter:blur(10px);
    border:1px solid var(--hairline-rev) !important; border-radius:2px !important;
    box-shadow:0 16px 34px rgba(0,0,0,.3) !important; padding:6px 0 !important; z-index:5;
  }
  .nav__lang #weglot-listbox .wg-li{ border:0 !important; height:auto !important; }
  .nav__lang #weglot-listbox .wg-li a{
    display:block !important; width:100% !important; box-sizing:border-box !important;
    height:auto !important; line-height:1.2 !important; padding:6px 16px !important; text-decoration:none !important;
    font-family:var(--sans) !important; font-size:13.5px !important; color:var(--ink-rev) !important; opacity:.78;
    transition:opacity .15s, background .15s;
  }
  .nav__lang #weglot-listbox .wg-li a:hover{ opacity:1; background:rgba(233,239,240,.1); }

  /* Solid (scrolled) desktop nav sits on a cream bar, so the panel flips light to match */
  .nav.is-solid:not(.is-open) .nav__lang #weglot-listbox{
    background:var(--cream) !important; backdrop-filter:none;
    border:1px solid var(--hairline) !important; box-shadow:0 16px 34px rgba(7,26,47,.18) !important;
  }
  .nav.is-solid:not(.is-open) .nav__lang #weglot-listbox .wg-li a{ color:var(--ink) !important; }
  .nav.is-solid:not(.is-open) .nav__lang #weglot-listbox .wg-li a:hover{ background:rgba(7,26,47,.05); }

  @keyframes nav-menu-in{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:translateY(0); } }
  @media (max-width:860px){
    body.nav-locked{ overflow:hidden; }
    .nav.is-open .nav__links{
      display:flex; position:fixed; inset:0; z-index:55;
      flex-direction:column; align-items:center; justify-content:center; gap:32px;
      margin:0; padding:0; background:var(--space);
      animation:nav-menu-in .3s var(--ease-quart);
    }
    .nav.is-open .nav__links a{ font-size:22px; color:var(--ink-rev); opacity:1; }
    .nav.is-open .nav__lang .weglot_switcher.wg-drop .wg-li.wgcurrent a{ font-size:22px !important; color:var(--ink-rev) !important; opacity:1; padding:0 18px 0 0 !important; }
    .nav.is-open .nav__lang #weglot-listbox{ left:50% !important; right:auto !important; transform:translateX(-50%); }
    .nav.is-open .nav__lang #weglot-listbox .wg-li a{ text-align:center !important; }
    .nav.is-open .nav__burger span{ background:var(--ink-rev); }
    .nav__burger.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .nav__burger.is-active span:nth-child(2){ opacity:0; }
    .nav__burger.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  }

  /* ---------- Footer ---------- */
  .footer{ background:var(--footer); color:var(--ink); padding-block:clamp(56px,7vw,90px) 40px; }
  .footer__top{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);
    gap:clamp(28px,5vw,64px); padding-bottom:clamp(40px,5vw,64px); border-bottom:1px solid var(--border-neutral); }
  .footer__logo{ height:46px; width:auto; margin:0 0 20px; }
  .footer__tag{ margin:0; max-width:34ch; color:rgba(7,26,47,.78); }
  .footer h4{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--glacier-deep); margin:0 0 16px; font-weight:600; }
  .footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
  .footer a{ text-decoration:none; color:var(--ink); opacity:.82; }
  .footer a:hover{ opacity:1; }
  .footer__support a{ font-weight:600; opacity:1; display:inline-flex; gap:.4ch; }
  .footer__legal{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;
    padding-top:26px; font-size:13px; color:rgba(7,26,47,.7); }
