  :root{
    --ink:#1d1d1f;
    --ink-2:#6e6e73;
    --ink-3:#86868b;
    --paper:#ffffff;
    --mist:#f5f5f7;
    --line:#d2d2d7;
    --link:#0066cc;
    --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{font-family:var(--font);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.47;letter-spacing:-.022em;-webkit-font-smoothing:antialiased}
  a{color:var(--link);text-decoration:none}
  h1,h2,h3,.lede,.hero p{text-wrap:balance}
  a:hover{text-decoration:underline}
  :focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:4px}
  .wrap{max-width:980px;margin:0 auto;padding:0 22px}

  /* Nav */
  .nav{position:sticky;top:0;z-index:10;height:48px;background:rgba(255,255,255,.8);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.08)}
  .nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
  .brand{display:flex;align-items:center;color:var(--ink)}
  .brand .wm{height:21px;width:auto;display:block}
  .foot-brand{display:inline-block;color:var(--ink);margin-bottom:14px}
  .foot-brand .wm{height:18px;width:auto;display:block}
  .brand:hover{text-decoration:none}
  .nav ul{list-style:none;display:flex;gap:28px}
  .nav ul a{color:var(--ink);font-size:13px;opacity:.85}
  .nav ul a:hover{opacity:1;text-decoration:none}

  /* Header behaviour: slides up out of view on scroll down, back down on scroll up */
  .nav{will-change:transform;transition:transform .38s cubic-bezier(.32,.72,0,1),background-color .3s ease,box-shadow .3s ease}
  .nav.is-scrolled{background:rgba(255,255,255,.72);box-shadow:0 12px 28px -22px rgba(0,0,0,.45)}
  .nav.is-hidden{transform:translate3d(0,-101%,0)}

  /* Header entrance: slides down into place on every page load */
  @keyframes nav-in{from{opacity:0;translate:0 -100%}to{opacity:1;translate:0 0}}
  .nav{animation:nav-in .55s cubic-bezier(.32,.72,0,1) both}

  /* Hero */
  .hero{text-align:center;padding:120px 0 104px}
  .hero h1{font-size:clamp(44px,8vw,88px);line-height:1.04;font-weight:700;letter-spacing:-.045em;max-width:16ch;margin:0 auto;text-wrap:balance}
  .hero p{font-size:clamp(19px,2.4vw,24px);line-height:1.38;color:var(--ink-2);max-width:34ch;margin:24px auto 0;letter-spacing:-.016em}
  .ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:36px}
  .btn{display:inline-block;padding:12px 24px;border-radius:980px;font-size:17px;background:var(--link);color:#fff}
  .btn:hover{text-decoration:none;background:#0077ed}
  .btn.ghost{background:transparent;color:var(--link);border:1px solid var(--link)}
  .btn.ghost:hover{background:var(--link);color:#fff}
  .reveal{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .reveal.d2{animation-delay:.12s}.reveal.d3{animation-delay:.24s}.reveal.d4{animation-delay:.36s}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

  /* Regions */
  .regions{background:var(--mist);padding:96px 0}
  .regions h2,.services h2,.contact h2{font-size:clamp(34px,5vw,56px);line-height:1.07;font-weight:700;letter-spacing:-.04em;text-align:center}
  .regions .lede,.services .lede{text-align:center;color:var(--ink-2);font-size:21px;line-height:1.38;max-width:38ch;margin:16px auto 0}
  .clocks{display:grid;grid-template-columns:repeat(3,1fr);margin-top:64px;border-top:1px solid var(--line)}
  .clock{padding:32px 8px 0;text-align:center}
  .clock + .clock{border-left:1px solid var(--line)}
  .clock .region{font-size:17px;font-weight:600}
  .clock .time{font-size:clamp(40px,6vw,64px);font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:6px 0 2px}
  .clock .city{font-size:14px;color:var(--ink-3)}

  /* Services */
  .services{padding:120px 0}
  .grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:64px}
  .tile{background:var(--mist);border-radius:18px;padding:40px 36px;grid-column:span 2;min-height:250px;display:flex;flex-direction:column}
  .tile.wide{grid-column:span 3;min-height:320px;padding:48px 44px}
  .tile.dark{background:var(--ink);color:#f5f5f7}
  .tile.dark p{color:#a1a1a6}
  .tile h3{font-size:24px;line-height:1.17;font-weight:600;letter-spacing:-.03em}
  .tile.wide h3{font-size:32px;line-height:1.12;letter-spacing:-.035em;max-width:16ch}
  .tile p{color:var(--ink-2);margin-top:12px;font-size:17px;max-width:40ch}
  .tile .glyph{width:40px;height:40px;margin-bottom:auto;padding-bottom:28px;box-sizing:content-box;color:currentColor}
  .tile .glyph svg{width:40px;height:40px;display:block}

  /* Contact */
  .contact{background:var(--paper);padding:120px 0;text-align:center}
  .contact p.lede{color:var(--ink-2);font-size:21px;line-height:1.38;max-width:36ch;margin:16px auto 0}
  .contact-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:560px;margin:56px auto 0;text-align:left}
  .contact-item{background:var(--mist);border-radius:18px;padding:28px}
  .contact-item .k{font-size:14px;color:var(--ink-3)}
  .contact-item .v{font-size:19px;font-weight:600;letter-spacing:-.02em;margin-top:4px}
  .contact-item .v a{color:var(--ink)}
  .contact .ctas{margin-top:48px}

  /* Footer */
  footer{background:var(--mist);border-top:1px solid var(--line);font-size:12px;line-height:1.33;color:var(--ink-2);letter-spacing:-.01em}
  footer .wrap{padding-top:28px;padding-bottom:22px}
  .foot-note{padding-bottom:16px;border-bottom:1px solid var(--line)}
  .foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:20px 0 28px}
  .foot-cols h4{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:10px}
  .foot-cols ul{list-style:none}
  .foot-cols li{margin-bottom:8px}
  .foot-cols a{color:var(--ink-2)}
  .foot-cols a:hover{color:var(--ink)}
  .foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
  .foot-base ul{list-style:none;display:flex;gap:0}
  .foot-base li + li::before{content:"|";color:var(--line);margin:0 10px}
  .foot-base a{color:var(--ink-2)}


  /* Linked tiles */
  a.tile{color:inherit;text-decoration:none;transition:background-color .2s}
  a.tile:hover{text-decoration:none;background:#ececf0}
  a.tile.dark:hover{background:#2c2c2e}
  .tile .more{color:var(--link);margin-top:16px;font-size:17px}
  .tile.dark .more{color:#2997ff}
  a.tile:hover .more{text-decoration:underline}

  /* Service pages */
  .page-hero{text-align:center;padding:104px 0 88px}
  .page-hero h1{font-size:clamp(40px,6.4vw,72px);line-height:1.05;font-weight:700;letter-spacing:-.045em;max-width:18ch;margin:0 auto}
  .page-hero p{font-size:clamp(19px,2.2vw,24px);line-height:1.38;color:var(--ink-2);max-width:36ch;margin:20px auto 0}
  .page-hero .crumb{font-size:14px;margin-bottom:18px;color:var(--ink-3)}
  .page-hero .crumb a{color:var(--ink-3)}
  .page-hero .ctas{margin-top:32px}
  .band{padding:96px 0}
  .band.mist{background:var(--mist)}
  .band h2{font-size:clamp(30px,4.4vw,48px);line-height:1.08;font-weight:700;letter-spacing:-.04em;text-align:center}
  .features{display:grid;grid-template-columns:repeat(2,1fr);column-gap:56px;margin-top:56px}
  .feature{border-top:1px solid var(--line);padding:28px 0 36px}
  .feature h3{font-size:21px;font-weight:600;letter-spacing:-.025em;line-height:1.2}
  .feature p{color:var(--ink-2);margin-top:8px;max-width:42ch}
  .tools{text-align:center;color:var(--ink-2);font-size:19px;max-width:44ch;margin:8px auto 0}
  .steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:56px;counter-reset:s}
  .steps li{background:var(--mist);border-radius:18px;padding:32px 28px;counter-increment:s}
  .steps li::before{content:counter(s);display:block;font-size:40px;font-weight:600;letter-spacing:-.04em;color:var(--ink-3);margin-bottom:20px}
  .steps h3{font-size:19px;font-weight:600;letter-spacing:-.02em}
  .steps p{color:var(--ink-2);font-size:15px;margin-top:6px;line-height:1.45}
  .cta-band{text-align:center;padding:104px 0}
  .cta-band h2{font-size:clamp(30px,4.4vw,48px);line-height:1.08;font-weight:700;letter-spacing:-.04em}
  .cta-band p{color:var(--ink-2);font-size:21px;margin-top:12px}
  .cta-band .ctas{margin-top:32px}
  .others{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:28px}
  .others a{border:1px solid var(--line);border-radius:980px;padding:8px 18px;font-size:15px;color:var(--ink);background:var(--paper)}
  .others a:hover{border-color:var(--ink);text-decoration:none}

  /* 404 page */
  .notfound .error-code{font-size:clamp(88px,17vw,168px);line-height:.88;font-weight:700;letter-spacing:-.06em;color:var(--line);font-variant-numeric:tabular-nums}
  .notfound h1{margin-top:6px}

  /* Legal pages */
  .legal{max-width:720px;margin:0 auto;padding:88px 22px 112px}
  .legal h1{font-size:clamp(36px,5vw,56px);font-weight:700;letter-spacing:-.04em;line-height:1.07}
  .legal .updated{color:var(--ink-3);font-size:15px;margin-top:12px}
  .legal h2{font-size:22px;font-weight:600;letter-spacing:-.025em;margin-top:44px}
  .legal p,.legal li{color:#424245;margin-top:12px;font-size:17px;line-height:1.58}
  .legal ul{padding-left:22px}
  .legal .note{background:var(--mist);border-radius:14px;padding:18px 22px;margin-top:32px;font-size:15px;color:var(--ink-2)}
  .legal dl{display:grid;grid-template-columns:200px 1fr;gap:10px 24px;margin-top:20px}
  .legal dt{color:var(--ink-3);font-size:15px}
  .legal dd{font-size:17px}

  @media (max-width:834px){
    .steps{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:600px){
    .features{grid-template-columns:1fr}
    .steps{grid-template-columns:1fr}
    .band,.cta-band{padding:72px 0}
    .page-hero{padding:72px 0 64px}
    .legal dl{grid-template-columns:1fr;gap:2px}
    .legal dd{margin-bottom:12px}
  }

  @media (max-width:834px){
    .grid{grid-template-columns:repeat(2,1fr)}
    .tile,.tile.wide{grid-column:span 1;min-height:220px;padding:32px 28px}
    .tile.wide h3{font-size:26px}
    .contact-row{grid-template-columns:1fr}
    .foot-cols{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:600px){
    .nav ul{gap:18px}
    .hero{padding:80px 0 72px}
    .grid{grid-template-columns:1fr}
    .clocks{grid-template-columns:1fr}
    .clock + .clock{border-left:0;border-top:1px solid var(--line)}
    .clock{padding:24px 0}
    .regions,.services,.contact{padding:80px 0}
  }
  @media (prefers-reduced-motion:reduce){
    .reveal{animation:none}
    .nav{transition:none;animation:none}
    html{scroll-behavior:auto}
  }
