*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:#fff;font-family:'Archivo',system-ui,sans-serif}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
:root{--navy:#031e3a;--navy-2:#08294f;--ink:#4a4a4a;--grey:#757575;--rule:#cbcbcb;
        --paper:#f4f2f3;--red:#d32929;--brass:#A07E42;--brass-hi:#C9A868;--walnut:#2A1B11}

  .site{background:#fff;color:var(--ink)}
  .mono{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
  .disp{font-family:'Newsreader',serif;font-weight:300;line-height:1.15;letter-spacing:-.005em;color:var(--navy)}
  .body{font-family:'Archivo',sans-serif;line-height:1.68;letter-spacing:.01em;color:var(--ink)}
  .lnk{font-family:'Archivo',sans-serif;font-size:12px;letter-spacing:.02em;color:var(--navy);text-decoration:none;
       border-bottom:1px solid var(--navy);padding-bottom:5px;display:inline-block}
  .lnk.q{color:#5f5f5f;border-color:#8f8f8f}
  .lnk.inv{color:#fff;border-color:rgba(255,255,255,.6)}
  .lnk.brass{color:var(--brass-hi);border-color:rgba(201,168,104,.7)}

  /* ---- the sett, recoloured onto RL navy ---- */
  .tt{background-color:#031e3a;background-image:
    repeating-linear-gradient(90deg,transparent 0 88px,rgba(238,232,220,.62) 88px 91px,transparent 91px 97px,rgba(238,232,220,.62) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(0deg,transparent 0 88px,rgba(238,232,220,.62) 88px 91px,transparent 91px 97px,rgba(238,232,220,.62) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(90deg,transparent 0 118px,rgba(184,148,84,.68) 118px 120px,transparent 120px 128px),
    repeating-linear-gradient(0deg,transparent 0 118px,rgba(184,148,84,.68) 118px 120px,transparent 120px 128px),
    repeating-linear-gradient(90deg,transparent 0 18px,rgba(124,32,28,.66) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(0deg,transparent 0 18px,rgba(124,32,28,.66) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(90deg,transparent 0 44px,rgba(1,8,18,.6) 44px 76px,transparent 76px 128px),
    repeating-linear-gradient(0deg,transparent 0 44px,rgba(1,8,18,.6) 44px 76px,transparent 76px 128px),
    repeating-linear-gradient(90deg,rgba(22,48,36,.8) 0 40px,transparent 40px 128px),
    repeating-linear-gradient(0deg,rgba(22,48,36,.8) 0 40px,transparent 40px 128px),
    repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 1px,transparent 1px 4px)}
  .ribbon{height:28px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.45)}
  /* faint sett — safe under text (worst measured contrast 6.16) */
  .tt-f{background-color:#031e3a;background-image:
    repeating-linear-gradient(90deg,transparent 0 88px,rgba(255,255,255,.045) 88px 91px,transparent 91px 97px,rgba(255,255,255,.045) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(0deg,transparent 0 88px,rgba(255,255,255,.045) 88px 91px,transparent 91px 97px,rgba(255,255,255,.045) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(90deg,transparent 0 118px,rgba(201,168,104,.05) 118px 120px,transparent 120px 128px),
    repeating-linear-gradient(0deg,transparent 0 118px,rgba(201,168,104,.05) 118px 120px,transparent 120px 128px),
    repeating-linear-gradient(90deg,transparent 0 18px,rgba(124,32,28,.07) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(0deg,transparent 0 18px,rgba(124,32,28,.07) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(90deg,transparent 0 44px,rgba(0,0,0,.10) 44px 76px,transparent 76px 128px),
    repeating-linear-gradient(0deg,transparent 0 44px,rgba(0,0,0,.10) 44px 76px,transparent 76px 128px),
    repeating-linear-gradient(90deg,rgba(22,48,36,.10) 0 40px,transparent 40px 128px),
    repeating-linear-gradient(0deg,rgba(22,48,36,.10) 0 40px,transparent 40px 128px)}
  /* faint navy sett on paper (worst measured 4.99) */
  .tt-p{background-color:#f4f2f3;background-image:
    repeating-linear-gradient(90deg,transparent 0 88px,rgba(3,30,58,.045) 88px 91px,transparent 91px 97px,rgba(3,30,58,.045) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(0deg,transparent 0 88px,rgba(3,30,58,.045) 88px 91px,transparent 91px 97px,rgba(3,30,58,.045) 97px 100px,transparent 100px 128px),
    repeating-linear-gradient(90deg,transparent 0 18px,rgba(124,32,28,.03) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(0deg,transparent 0 18px,rgba(124,32,28,.03) 18px 24px,transparent 24px 128px),
    repeating-linear-gradient(90deg,rgba(3,30,58,.03) 0 40px,transparent 40px 128px),
    repeating-linear-gradient(0deg,rgba(3,30,58,.03) 0 40px,transparent 40px 128px)}
  .ttframe{padding:7px}


  /* ---- dark set-pieces ---- */
  .room{position:relative;color:#fff;overflow:hidden}
  .room .lamp{position:absolute;inset:0;pointer-events:none;z-index:1;
    background:radial-gradient(ellipse 40% 40% at 26% 6%,rgba(255,198,120,.20),transparent 66%),
               radial-gradient(ellipse 130% 110% at 50% 46%,transparent 52%,rgba(0,0,0,.22) 96%)}
  .room>.inner{position:relative;z-index:2}
  .room .disp,.room h3,.room .shd h2,.room h2{color:#fff}
  .room .body{color:#ccd7e4}

  /* ---- masthead ---- */
  .mh{display:flex;align-items:center;justify-content:space-between;padding:26px 56px;border-bottom:1px solid var(--rule)}
  .wm{font-family:'Newsreader',serif;font-size:21px;font-weight:400;letter-spacing:.05em;color:var(--navy);text-decoration:none;text-transform:uppercase}
  .nav{display:flex;gap:26px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey)}
  .nav a{text-decoration:none;color:inherit;padding-bottom:3px}
  .nav a.cur{color:var(--navy);border-bottom:2px solid var(--red)}

  /* ---- hero ---- */
  .hero{padding:88px 56px 82px;max-width:980px}
  .hero .mono{color:#5f5f5f;margin-bottom:26px}
  .hero h1{font-size:56px;max-width:19ch}
  .hero .lede{margin-top:26px;font-size:16px;max-width:60ch}
  .cta{margin-top:38px;display:flex;gap:34px;align-items:center;flex-wrap:wrap}

  /* ---- section scaffolding ---- */
  .sect{padding:64px 56px}
  .band{border-top:1px solid var(--rule)}
  .shd{display:grid;grid-template-columns:210px 1fr;gap:40px;margin-bottom:46px;align-items:baseline}
  .shd .mono{color:#5f5f5f}
  .room .shd .mono{color:var(--brass-hi)}
  .shd h2{font-family:'Newsreader',serif;font-weight:300;font-size:32px;color:var(--navy);line-height:1.2;max-width:22ch}

  /* ---- leadership (dark room) ---- */
  .lead{display:grid;grid-template-columns:290px 1fr;gap:58px;align-items:start}
  .art{position:relative;padding-top:30px}
  .plight{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:3}
  .glow{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:290px;height:200px;z-index:2;pointer-events:none;
    background:radial-gradient(ellipse at 50% 0%,rgba(255,206,132,.26),transparent 70%)}
  .gilt{position:relative;padding:7px;background:linear-gradient(142deg,#D8BC84,#9C7C40 34%,#6A5228 56%,#C6A96C 78%,#836A36);
    box-shadow:0 12px 30px rgba(0,0,0,.55)}
  .mat{background:#EDE7DA;padding:11px}
  .por{aspect-ratio:4/5;background-image:url(/assets/brandon-flynn.jpg);background-size:cover;background-position:52% 13%;filter:saturate(.82) contrast(1.04) brightness(.95)}
  .pcap{margin-top:16px;border-top:1px solid rgba(255,255,255,.22);padding-top:13px}
  .pcap b{display:block;font-family:'Newsreader',serif;font-size:20px;font-weight:400;color:#fff}
  .pcap span{display:block;font-family:'IBM Plex Mono',monospace;font-weight:300;font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--brass-hi);margin-top:9px;line-height:1.9}
  .lead h3{font-family:'Newsreader',serif;font-weight:300;font-size:29px;line-height:1.24;max-width:20ch}
  .lead p{margin-top:20px;font-size:15px;max-width:56ch}
  .facts{margin-top:34px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.22)}
  .facts>div{padding:20px 22px 0 0}
  .facts b{display:block;font-family:'Newsreader',serif;font-size:29px;font-weight:300;color:#fff}
  .facts span{display:block;font-size:11.5px;color:#adbccd;margin-top:8px;line-height:1.62}

  /* ---- capabilities (light) ---- */
  .cap .row{display:grid;grid-template-columns:64px 250px 1fr 120px;gap:28px;padding:26px 0;border-top:1px solid var(--rule);align-items:baseline;text-decoration:none;color:inherit}
  .cap .row:last-child{border-bottom:1px solid var(--rule)}
  .cap .n{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:11px;color:#7C5F2B}
  .cap h4{font-family:'Newsreader',serif;font-weight:400;font-size:23px;color:var(--navy)}
  .cap p{font-size:14px;line-height:1.62}
  .cap .go{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);text-align:right}

  /* ---- who we serve (tartan set-piece) ---- */
  .serveband{position:relative;color:#fff}
  .serveband{padding:0}
  .ttline{height:28px;box-shadow:inset 0 1px 0 rgba(0,0,0,.45),inset 0 -1px 0 rgba(0,0,0,.45)}
  .serveband .plate{position:relative;z-index:2;background:#04182c;box-shadow:0 10px 34px rgba(0,0,0,.5)}
  .serveband>.inner{position:relative;z-index:2}
  .serveband .shd h2{color:#fff}
  .serveband .shd .mono{color:var(--brass-hi)}
  .serve{display:grid;grid-template-columns:repeat(4,1fr)}
  .serve>div{padding:4px 30px 6px 0;border-right:1px solid rgba(255,255,255,.14)}
  .serve>div:last-child{border-right:none;padding-right:0}
  .serve>div:not(:first-child){padding-left:30px}
  .serve h5{font-family:'Newsreader',serif;font-weight:400;font-size:20px;margin-bottom:12px;color:#fff}
  .serve p{font-size:13px;line-height:1.66;color:#ccd7e4}

  /* ---- close ---- */
  .close{padding:74px 56px 78px;border-top:1px solid var(--rule)}
  .close h2{font-family:'Newsreader',serif;font-weight:300;font-size:40px;color:var(--navy);max-width:18ch;line-height:1.16}
  .close p{margin-top:20px;font-size:15px;max-width:52ch}

  /* ---- footer ---- */
  .walnut{height:2px;background-color:var(--walnut);background-image:
    repeating-linear-gradient(90deg,rgba(255,214,168,.05) 0 1px,transparent 1px 5px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.35) 0 1px,transparent 1px 15px),
    linear-gradient(180deg,#3A2617,#1A110A)}
  .foot{color:#fff;padding:46px 56px 40px}
  .frow{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.18)}
  .foot .wm{color:#fff;font-size:19px}
  .foot .addr{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#a6b8ca;margin-top:16px;line-height:2.1}
  .fcol .mono{color:var(--brass-hi);margin-bottom:16px}
  .fcol a{display:block;font-size:13px;color:#dbe3ec;text-decoration:none;margin-bottom:11px}
  .fine{display:flex;justify-content:space-between;gap:20px;padding-top:24px;font-family:'IBM Plex Mono',monospace;font-weight:300;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:#a6b8ca;flex-wrap:wrap}

  @media(max-width:880px){
    .mh{flex-direction:column;gap:20px;padding:22px}
    .hero{padding:48px 22px 44px}.hero h1{font-size:33px}
    .sect,.close{padding:44px 22px}
    .shd,.lead,.frow,.facts{grid-template-columns:1fr;gap:22px}
    .serve{grid-template-columns:1fr}
    .serve>div{border-right:none;border-bottom:1px solid rgba(255,255,255,.14);padding:22px 0}
    .serve>div:not(:first-child){padding-left:0}
    .serve>div:last-child{border-bottom:none;padding-bottom:0}
    .art{max-width:280px}
    .cap .row{grid-template-columns:1fr;gap:8px}.cap .go{text-align:left}
    .close h2{font-size:28px}
    .foot{padding:36px 22px 30px}
    .ttline,.ribbon{height:20px}
  }
  .hero.inner{padding-top:66px;padding-bottom:60px}
  .hero.inner h1{font-size:50px;max-width:17ch}
  .lead-note{font-family:'Newsreader',serif;font-weight:300;font-size:24px;line-height:1.4;color:#fff;max-width:26ch}
  .note-body{font-size:15px;line-height:1.7;color:#ccd7e4;max-width:56ch}
  @media(max-width:880px){.hero.inner h1{font-size:31px}.lead-note{font-size:20px}}

  /* centred content measure — backgrounds stay full-bleed */
  :root{--maxw:1280px}
  .mh,.hero,.sect,.close,.foot,.serve{
    padding-left:max(56px,calc((100% - var(--maxw))/2));
    padding-right:max(56px,calc((100% - var(--maxw))/2));
  }
  .hero{max-width:none;padding-top:76px;padding-bottom:64px}
  .hero h1{max-width:19ch}
  .hero .lede{max-width:62ch}
  .hero.inner h1{max-width:17ch}
  .sect{padding-top:56px;padding-bottom:56px}
  @media(max-width:880px){
    .mh,.hero,.sect,.close,.foot,.serve{padding-left:22px;padding-right:22px}
    .hero{padding-top:48px;padding-bottom:44px}
    .hero h1,.hero.inner h1{max-width:none}
  }

  /* hero: eyebrow spans, headline + CTAs anchor left, lede tops out right */
  @media(min-width:1080px){
    .hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);
      column-gap:80px;row-gap:0;align-items:start}
    .hero .mono{grid-column:1/-1;grid-row:1;margin-bottom:32px}
    .hero h1{grid-column:1;grid-row:2;margin:0;max-width:16ch}
    .hero .lede{grid-column:2;grid-row:2;margin:0;max-width:42ch;padding-top:14px}
    .hero .cta{grid-column:1;grid-row:3;margin-top:40px}
    .hero.inner h1{max-width:15ch}
  }

  /* one column system: 290px label rail, 60px gutter, content at 350px */
  @media(min-width:1080px){
    .shd{grid-template-columns:290px 1fr;column-gap:60px;align-items:baseline;margin-bottom:44px}
    .lead{grid-template-columns:290px 1fr;column-gap:60px;align-items:start}
    .cap .row{grid-template-columns:60px 290px 1fr 130px;column-gap:0;align-items:baseline}
    .cap .row h4{padding-right:60px}
    .cap .row .go{text-align:right}
    .serve{column-gap:0}
  }

  /* dark sections: label sits with the portrait, columns finish together */
  @media(min-width:1080px){
    .room .shd{margin-bottom:20px}
    .room .lead{align-items:start}
    .room .art{padding-top:26px}
    .room .lead > div:last-child > p:first-child{margin-top:0}
    .room .facts{margin-top:40px}
    .room .pcap{margin-top:14px}
  }

  /* leadership: text column fills the row, stats close it at the bottom */
  @media(min-width:1080px){
    .room .lead{align-items:stretch}
    .room .lead > div:last-child{display:flex;flex-direction:column}
    .room .facts{margin-top:auto}
  }

  @media(min-width:1080px){
    .room .lead{grid-template-columns:200px 1fr;column-gap:150px}
    .room .facts{margin-top:auto;padding-top:34px}
  }

  @media(min-width:1080px){
    .room .lead{grid-template-columns:290px 1fr;column-gap:60px}
    .room .lead > div:last-child > p + p{margin-top:16px}
    .room .facts{margin-top:auto;padding-top:34px}
  }

  /* one left edge down the whole page: labels stack above headings */
  @media(min-width:1080px){
    .shd{display:block;margin-bottom:40px}
    .shd .mono{display:block;margin-bottom:18px}
    .shd h2{max-width:26ch}
  }

  /* kill stray vertical edges: everything on 120 or the 470 content column */
  @media(min-width:1080px){
    .serve>div{padding-left:0;padding-right:40px}
    .serve>div:last-child{padding-right:0}
    .cap .row{grid-template-columns:350px 1fr 130px;column-gap:0}
    .cap .row .n{display:none}
    .cap .row h4{padding-right:60px}
  }
  .sect .serve{padding-left:0;padding-right:0}

  /* leadership: stats close the section full width on the 120 edge */
  @media(min-width:1080px){
    .room .lead{align-items:start}
    .room .lead > div:last-child{display:block}
    .room .facts{margin-top:52px;padding-top:30px;grid-template-columns:repeat(3,1fr);
      border-top:1px solid rgba(255,255,255,.22)}
    .room .facts > div{padding:0 40px 0 0}
  }