
  /* FOCUS corporate — single, fixed light identity. No prefers-color-scheme:
     a brand site must look the same to every visitor. */
  :root{
    --paper:#FFFFFF; --paper-2:#F5F5F6; --paper-3:#ECECEE;
    --line:#E3E3E5; --line-2:#C9CACC;
    --grey:#85878B; --ink-3:#4F5155; --ink-2:#3A3B3D; --ink:#0F1012; --void:#0A0B0C;
    --on-void:#F3F3F4; --on-void-2:#A7A9AC; --void-line:rgba(255,255,255,.15);
    --sh-1:0 1px 2px rgba(15,16,18,.05), 0 14px 34px -18px rgba(15,16,18,.26);
    --sh-2:0 2px 4px rgba(15,16,18,.06), 0 40px 80px -40px rgba(15,16,18,.46);
    --ease:cubic-bezier(.22,.61,.36,1);
    --r-xs:10px; --r-sm:14px; --r:18px; --r-lg:24px; --r-xl:32px; --pill:999px;
    color-scheme:light;
  }
  *{box-sizing:border-box;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:"Lato","Helvetica Neue",Arial,sans-serif; font-size:17.5px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
  p{margin:0;} a{color:inherit;} img{max-width:100%; display:block;}
  h1,h2,h3,h4{margin:0; font-family:"Ubuntu","Ubuntu Sans","Cantarell",system-ui,sans-serif; font-weight:700; letter-spacing:-.03em; text-wrap:balance;}
  .shell{max-width:1200px; margin:0 auto; padding:0 26px;}
  .eyebrow{font-family:"Ubuntu Mono","DejaVu Sans Mono",monospace; font-size:12px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--grey);}
  :focus-visible{outline:2px solid var(--ink); outline-offset:3px; border-radius:4px;}
  .sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

  /* ---------- header ---------- */
  header.site{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.86); backdrop-filter:blur(14px) saturate(120%); border-bottom:1px solid transparent; transition:border-color .3s var(--ease);}
  header.site.stuck{border-bottom-color:var(--line);}
  .bar{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; transition:padding .3s var(--ease);}
  header.site.stuck .bar{padding:11px 0;}
  .mark{width:150px; color:var(--ink); --mark-bg:var(--paper); transition:width .3s var(--ease);}
  header.site.stuck .mark{width:128px;}
  .mark svg{width:100%; height:auto;}
  nav.main{display:none; gap:34px; align-items:center;}
  @media(min-width:960px){ nav.main{display:flex;} }
  nav.main a{position:relative; font-size:15.5px; font-weight:700; text-decoration:none; color:var(--ink-3); padding:4px 0; transition:color .22s var(--ease);}
  nav.main a::after{content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--ink); transition:right .3s var(--ease);}
  nav.main a:hover, nav.main a.on{color:var(--ink);}
  nav.main a:hover::after, nav.main a.on::after{right:0;}
  .btn{position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:11px; font-family:"Ubuntu",system-ui,sans-serif; font-weight:700; font-size:16px; letter-spacing:-.01em; text-decoration:none; padding:13px 24px; border-radius:var(--pill); border:1px solid transparent; cursor:pointer; transition:transform .25s var(--ease);}
  .btn span{position:relative; z-index:1; display:inline-flex; align-items:center; gap:10px;}
  .btn em{font-style:normal; transition:transform .28s var(--ease);}
  .btn:hover{transform:translateY(-2px);} .btn:hover em{transform:translateX(5px);}
  .btn-dark{background:var(--ink); color:var(--paper);}
  .btn-dark::after{content:""; position:absolute; inset:0; background:var(--ink-2); transform:translateY(101%); transition:transform .35s var(--ease);}
  .btn-dark:hover::after{transform:translateY(0);}
  .btn-light{background:var(--paper); color:var(--ink);}
  .btn-line{border-color:var(--line-2); color:var(--ink);}
  .btn-line:hover{border-color:var(--ink);}
  .btn-ghost{border-color:rgba(255,255,255,.34); color:#F5F5F6; background:rgba(255,255,255,.06);}
  .btn-ghost:hover{background:rgba(255,255,255,.14);}
  @media(max-width:600px){ .bar .btn{padding:11px 17px; font-size:15px;} .mark{width:124px;} }

  /* ---------- hero ---------- */
  .hero{padding:26px 0 34px;}
  .hero-panel{position:relative; border-radius:var(--r-xl); overflow:hidden; background:var(--void); min-height:clamp(520px,74vh,700px); display:flex; align-items:flex-end; box-shadow:var(--sh-2);}
  .hero-panel img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62;}
  .hero-panel .veil{position:absolute; inset:0; background:
     linear-gradient(90deg, rgba(6,7,8,.94) 0%, rgba(6,7,8,.84) 38%, rgba(6,7,8,.46) 68%, rgba(6,7,8,.62) 100%),
     linear-gradient(0deg, rgba(6,7,8,.86) 0%, transparent 52%);}
  .hero-in{position:relative; z-index:3; width:100%; padding:clamp(30px,4.6vw,64px); display:flex; flex-direction:column; gap:32px;}
  .hero-in .eyebrow{color:rgba(243,243,244,.72);}
  .hero h1{font-size:clamp(36px,5.4vw,66px); line-height:1.02; color:#FAFAFA; max-width:19ch;}
  .hero .lede{font-size:clamp(17px,1.5vw,20px); color:rgba(243,243,244,.80); max-width:58ch;}
  .hero .word{display:inline-block; overflow:hidden; vertical-align:top;}
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px;}
  .hero-meta{display:flex; flex-wrap:wrap; gap:12px 34px; padding-top:24px; border-top:1px solid rgba(255,255,255,.18);}
  .hero-meta div{display:flex; flex-direction:column; gap:2px;}
  .hero-meta b{font-family:"Ubuntu",system-ui,sans-serif; font-size:26px; letter-spacing:-.03em; color:#FAFAFA; font-variant-numeric:tabular-nums;}
  .hero-meta span{font-family:"Ubuntu Mono",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(243,243,244,.62);}

  /* ---------- marquee ---------- */
  .marq{border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; padding:17px 0; background:var(--paper-2);}
  .marq-track{display:flex; gap:0; width:max-content; will-change:transform;}
  .marq-track span{font-family:"Ubuntu Mono",monospace; font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); padding:0 26px; white-space:nowrap; display:inline-flex; align-items:center; gap:26px;}
  .marq-track span::after{content:""; width:5px; height:5px; border-radius:50%; background:var(--line-2);}

  /* ---------- sections ---------- */
  section.block{padding:112px 0;}
  .head{max-width:60ch; display:flex; flex-direction:column; gap:16px; margin-bottom:56px;}
  .head h2{font-size:clamp(30px,4.2vw,50px); line-height:1.05;}
  .head p{font-size:19px; color:var(--ink-3);}

  .split{display:grid; gap:46px; align-items:center;}
  @media(min-width:960px){ .split{grid-template-columns:1.02fr .98fr; gap:76px;} }
  .figure{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-1);}
  .figure img{width:100%; height:auto;}
  .figure figcaption{position:absolute; left:0; right:0; bottom:0; padding:22px; background:linear-gradient(0deg, rgba(6,7,8,.82), transparent); color:#F3F3F4; font-family:"Ubuntu Mono",monospace; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;}
  .prose p + p{margin-top:18px;}
  .prose p{font-size:18.5px; color:var(--ink-3);}
  .prose strong{color:var(--ink);}
  .quote{margin-top:34px; padding:26px 30px; border-radius:var(--r); background:var(--paper-2); border:1px solid var(--line);}
  .quote p{font-family:"Ubuntu",system-ui,sans-serif; font-size:19px; font-weight:700; letter-spacing:-.02em; color:var(--ink); line-height:1.4;}
  .quote cite{display:block; margin-top:12px; font-style:normal; font-family:"Ubuntu Mono",monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey);}

  /* ---------- services ---------- */
  .cards{display:grid; gap:18px;}
  @media(min-width:680px){ .cards{grid-template-columns:repeat(2,1fr);} }
  @media(min-width:1040px){ .cards{grid-template-columns:repeat(3,1fr);} }
  .card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 28px 32px; display:flex; flex-direction:column; gap:14px; box-shadow:var(--sh-1); transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);}
  .card:hover{transform:translateY(-5px); border-color:var(--line-2); box-shadow:var(--sh-2);}
  .card .ic{width:46px; height:46px; border-radius:var(--r-xs); background:var(--ink); color:var(--paper); display:grid; place-items:center;}
  .card .ic svg{width:22px; height:22px;}
  .card h3{font-size:20px; line-height:1.25;}
  .card p{font-size:16px; color:var(--ink-3);}

  /* ---------- numbers ---------- */
  .figures{background:var(--void); color:var(--on-void); border-radius:var(--r-xl); padding:clamp(38px,4.4vw,60px) clamp(26px,3.4vw,52px);}
  .figures .top{display:flex; flex-wrap:wrap; gap:20px; align-items:flex-end; justify-content:space-between; margin-bottom:44px;}
  .figures h2{font-size:clamp(28px,3.6vw,42px); line-height:1.06; color:var(--on-void); max-width:20ch;}
  .figures .top p{color:var(--on-void-2); max-width:42ch; font-size:17px;}
  .fgrid{display:grid; gap:1px; background:var(--void-line); border:1px solid var(--void-line); border-radius:var(--r); overflow:hidden;}
  @media(min-width:640px){ .fgrid{grid-template-columns:repeat(2,1fr);} }
  @media(min-width:1000px){ .fgrid{grid-template-columns:repeat(4,1fr);} }
  .fgrid div{background:var(--void); padding:30px 26px; display:flex; flex-direction:column; gap:8px;}
  .fgrid b{font-family:"Ubuntu",system-ui,sans-serif; font-size:clamp(32px,4.2vw,46px); font-weight:700; letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums;}
  .fgrid span{font-family:"Ubuntu Mono",monospace; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-void-2);}

  /* ---------- gallery ---------- */
  .gal{display:grid; gap:16px;}
  @media(min-width:720px){ .gal{grid-template-columns:repeat(6,1fr);} }
  .gal figure{position:relative; margin:0; border-radius:var(--r-lg); overflow:hidden; background:var(--paper-3); box-shadow:var(--sh-1);}
  .gal img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease);}
  .gal figure:hover img{transform:scale(1.05);}
  .gal figcaption{position:absolute; left:0; right:0; bottom:0; padding:20px; background:linear-gradient(0deg, rgba(6,7,8,.80), transparent); color:#F3F3F4; font-family:"Ubuntu Mono",monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; transform:translateY(8px); opacity:0; transition:transform .4s var(--ease), opacity .4s var(--ease);}
  .gal figure:hover figcaption{transform:none; opacity:1;}
  @media(min-width:720px){
    .gal .g1{grid-column:span 4; aspect-ratio:16/9;}
    .gal .g2{grid-column:span 2; aspect-ratio:4/5;}
    .gal .g3{grid-column:span 2; aspect-ratio:4/3;}
    .gal .g4{grid-column:span 2; aspect-ratio:4/3;}
    .gal .g5{grid-column:span 2; aspect-ratio:4/3;}
  }
  @media(max-width:719px){ .gal figure{aspect-ratio:16/10;} }

  /* ---------- locations ---------- */
  .locwrap{position:relative;}
  .link-svg{position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); width:100%; height:130px; pointer-events:none; z-index:1;}
  @media(max-width:899px){ .link-svg{display:none;} }
  .locs{position:relative; z-index:2; display:grid; gap:20px;}
  @media(min-width:900px){ .locs{grid-template-columns:1fr 1fr; gap:120px;} }
  .loc{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:32px 30px; box-shadow:var(--sh-1); display:flex; flex-direction:column; gap:16px;}
  .loc .tag{font-family:"Ubuntu Mono",monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey);}
  .loc h3{font-size:24px;}
  .loc p{font-size:16.5px; color:var(--ink-3);}
  .loc .rows{display:flex; flex-direction:column; gap:9px; margin-top:4px;}
  .loc .rows a, .loc .rows span{display:flex; gap:12px; align-items:flex-start; font-size:16px; color:var(--ink-3); text-decoration:none;}
  .loc .rows a:hover{color:var(--ink);}
  .loc .rows svg{width:17px; height:17px; flex:none; margin-top:4px; color:var(--ink);}

  /* ---------- contact ---------- */
  .contact{display:grid; gap:46px;}
  @media(min-width:1000px){ .contact{grid-template-columns:1fr 520px; gap:80px; align-items:start;} }
  .form-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:34px; box-shadow:var(--sh-2);}
  .form-card h3{font-size:25px;}
  .form-card .sub{font-size:15px; color:var(--grey); margin-top:9px;}
  form{display:flex; flex-direction:column; gap:16px; margin-top:26px;}
  .row{display:grid; gap:16px;}
  @media(min-width:480px){ .row.two{grid-template-columns:1fr 1fr;} }
  label{display:flex; flex-direction:column; gap:7px; font-family:"Ubuntu Mono",monospace; font-size:11px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; color:var(--grey);}
  input,select,textarea{min-width:0; width:100%; font-family:inherit; font-size:16.5px; color:var(--ink); background:var(--paper); border:1px solid var(--line-2); border-radius:var(--r-xs); padding:14px 15px; transition:border-color .2s var(--ease), box-shadow .2s var(--ease);}
  textarea{resize:vertical; min-height:120px; line-height:1.55;}
  input:focus,select:focus,textarea:focus{border-color:var(--ink); box-shadow:0 0 0 3px rgba(15,16,18,.10); outline:none;}
  .submit{position:relative; overflow:hidden; font-family:"Ubuntu",system-ui,sans-serif; font-size:18px; font-weight:700; letter-spacing:-.02em; background:var(--ink); color:var(--paper); border:none; border-radius:var(--pill); padding:18px; cursor:pointer; transition:transform .25s var(--ease);}
  .submit span{position:relative; z-index:1; display:inline-flex; align-items:center; gap:12px;}
  .submit em{font-style:normal; transition:transform .3s var(--ease);}
  .submit::after{content:""; position:absolute; inset:0; background:var(--ink-2); transform:translateY(101%); transition:transform .35s var(--ease);}
  .submit:hover::after{transform:translateY(0);}
  .submit:hover{transform:translateY(-2px);} .submit:hover em{transform:translateX(6px);}
  .fine{font-size:12.5px; color:var(--grey); text-align:center;}
  .done{display:none; flex-direction:column; gap:12px; padding:26px 0; text-align:center;}
  .done h3{font-size:24px;}
  .done p{font-size:16px; color:var(--ink-3);}
  .done .tick{width:52px; height:52px; border-radius:50%; background:var(--ink); color:var(--paper); display:grid; place-items:center; margin:0 auto 4px;}
  form.sent{display:none;} .done.sent{display:flex;}

  /* ---------- footer ---------- */
  footer.site{background:var(--void); color:var(--on-void-2); border-radius:var(--r-xl) var(--r-xl) 0 0; padding:66px 0 44px; margin-top:40px;}
  .fg{display:grid; gap:34px;}
  @media(min-width:880px){ .fg{grid-template-columns:1.5fr 1fr 1fr 1fr;} }
  footer h4{font-family:"Ubuntu Mono",monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--on-void-2); margin:0 0 14px; font-weight:700;}
  footer p, footer a{font-size:15px; color:var(--on-void); text-decoration:none; line-height:1.8; opacity:.82;}
  footer a:hover{opacity:1; text-decoration:underline; text-underline-offset:3px;}
  .fl{display:flex; flex-direction:column;}
  .fmark{width:168px; color:var(--on-void); --mark-bg:var(--void); margin-bottom:16px;}
  .fmark svg{width:100%; height:auto;}
  .legal{margin-top:46px; padding-top:26px; border-top:1px solid var(--void-line); font-size:12.5px; line-height:1.7; color:var(--on-void-2); display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:space-between;}

  .js .rv{opacity:0;}
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation:none !important; transition:none !important;}
    .js .rv{opacity:1 !important; transform:none !important;}
    .gal figcaption{opacity:1; transform:none;}
  }

  .self-start{align-self:flex-start;}
  .p-lead{font-size:19px; color:var(--ink-3); max-width:46ch;}
  .h-contact{font-size:clamp(30px,4.2vw,48px); line-height:1.05; margin:16px 0 20px;}
  .cta-stack{margin-top:30px; display:flex; flex-direction:column; gap:12px;}
  .pt0{padding-top:0;}
