:root{
      --blue:#0a67b2;
      --blue-deep:#064779;
      --blue-soft:#eaf4fb;
      --ink:#101214;
      --muted:#6b7075;
      --paper:#f7f6f2;
      --white:#ffffff;
      --line:rgba(16,18,20,.18);
      --max:1320px;
      --pad:clamp(20px,4.8vw,72px);
      --ease:cubic-bezier(.22,.61,.36,1);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:var(--paper);
      color:var(--ink);
      font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
      -webkit-font-smoothing:antialiased;
      overflow-x:hidden;
    }

    a{color:inherit;text-decoration:none}
    button{font:inherit}
    img{display:block;width:100%}

    .shell{max-width:var(--max);margin:auto;padding-left:var(--pad);padding-right:var(--pad)}
    .eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}

    /* Header */
    .site-header{
      position:fixed; inset:0 0 auto 0; z-index:1000;
      height:120px;
      display:flex;align-items:center;
      transition:transform .45s var(--ease), background .35s ease, border-color .35s ease;
      border-bottom:1px solid transparent;
    }
    .site-header.scrolled{
      background:color-mix(in srgb,var(--paper) 90%, transparent);
      backdrop-filter:blur(14px);
      border-color:var(--line);
    }
    .site-header.hide{transform:translateY(-100%)}
    .nav{
      width:100%;max-width:var(--max);margin:auto;padding:0 var(--pad);
      display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;
    }
    .brand{font-weight:800;letter-spacing:-.035em;font-size:20px}
    .brand span{color:var(--blue)}
    .nav-links{display:flex;gap:28px;font-size:15px}
    .nav-links a{position:relative}
    .nav-links a:after{
      content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;
      background:currentColor;transform:scaleX(0);transform-origin:right;transition:.3s var(--ease);
    }
    .nav-links a:hover:after{transform:scaleX(1);transform-origin:left}
    .nav-cta{justify-self:end;font-size:15px;font-weight:650}
    .mobile-toggle{display:none;background:none;border:0;padding:8px;justify-self:end}

    /* Hero */
    .hero{
      min-height:100svh;
      display:flex;align-items:flex-end;
      padding:160px 0 70px;
      position:relative;
    }
    .hero:after{
      content:"";position:absolute;right:-10vw;top:12vh;width:46vw;height:46vw;border-radius:50%;
      border:1px solid rgba(10,103,178,.22);pointer-events:none;
    }
    .hero h1{
      margin:0;
      max-width:1130px;
      font-size:clamp(58px,8.1vw,116px);
      line-height:.92;
      letter-spacing:-.065em;
      font-weight:600;
    }
    .hero h1 em{font-style:normal;color:var(--blue)}
    .hero-bottom{
      margin-top:58px;
      display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end
    }
    .hero-copy{max-width:580px;font-size:clamp(18px,1.45vw,22px);line-height:1.45;color:#303438}
    .hero-link{justify-self:end;font-size:18px;border-bottom:1px solid;padding-bottom:4px}

    /* Sections */
    section{padding:clamp(95px,11vw,180px) 0}
    .section-head{
      display:grid;grid-template-columns:1fr 2fr;gap:50px;margin-bottom:clamp(58px,7vw,110px)
    }
    .section-head h2{
      margin:0;font-size:clamp(48px,6.3vw,88px);line-height:.96;letter-spacing:-.055em;font-weight:550
    }
    .section-head p{margin:8px 0 0;max-width:650px;font-size:20px;line-height:1.5;color:var(--muted)}

    /* Work */
    .work{background:var(--white)}
    .project{margin-bottom:clamp(90px,12vw,170px)}
    .project:last-child{margin-bottom:0}
    .project-media{
      aspect-ratio:16/9;overflow:hidden;position:relative;background:#dcecf7
    }
    .project-media::before{
      content:"";position:absolute;inset:0;
      background:
        radial-gradient(circle at 80% 20%,rgba(255,255,255,.8),transparent 30%),
        linear-gradient(135deg,var(--blue-deep),var(--blue) 45%,#55b3e8);
      transition:transform .7s var(--ease);
    }
    .project:nth-child(2) .project-media::before{
      background:linear-gradient(135deg,#20252a,#4f6673 52%,#b4d5e7);
    }
    .project:nth-child(3) .project-media::before{
      background:linear-gradient(135deg,#d8eefb,#70b5dc 45%,#0a67b2);
    }
    .project-media::after{
      content:attr(data-mark);
      position:absolute;right:4%;bottom:2%;
      color:rgba(255,255,255,.82);
      font-size:clamp(76px,12vw,180px);font-weight:800;letter-spacing:-.08em
    }
    .project:hover .project-media::before{transform:scale(1.035)}
    .project-meta{
      display:grid;grid-template-columns:1fr auto;gap:25px;
      padding-top:24px;border-top:1px solid var(--ink);margin-top:20px
    }
    .project-title{font-size:clamp(32px,4vw,58px);letter-spacing:-.045em}
    .project-category{text-align:right;color:var(--muted);line-height:1.6}

    /* Capabilities */
    .capabilities{background:var(--blue);color:white}
    .capabilities .section-head p{color:rgba(255,255,255,.7)}
    .cap-row{
      border-top:1px solid rgba(255,255,255,.32);
      display:grid;grid-template-columns:90px 1.45fr 1fr 40px;gap:25px;
      align-items:center;padding:30px 0;transition:padding .35s var(--ease),background .35s ease
    }
    .cap-row:last-child{border-bottom:1px solid rgba(255,255,255,.32)}
    .cap-row:hover{padding-left:18px;padding-right:18px;background:rgba(255,255,255,.07)}
    .cap-index{opacity:.65}
    .cap-name{font-size:clamp(27px,3.1vw,47px);letter-spacing:-.04em}
    .cap-desc{opacity:.72;line-height:1.55}
    .cap-arrow{font-size:27px;transition:transform .35s var(--ease)}
    .cap-row:hover .cap-arrow{transform:translateX(8px)}

    /* Team */
    .team{background:var(--paper)}
    .team-top{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}
    .team-top h2{
      margin:0;font-size:clamp(58px,7vw,100px);line-height:.9;letter-spacing:-.065em;font-weight:550
    }
    .filters{display:flex;gap:10px;flex-wrap:wrap}
    .filter{
      border:1px solid var(--ink);background:transparent;border-radius:999px;
      padding:10px 16px;cursor:pointer;transition:.25s ease
    }
    .filter:hover,.filter.active{background:var(--ink);color:white}
    .team-grid{
      display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.3vw,36px)
    }
    .person{
      opacity:1;transform:translateY(0);transition:opacity .45s var(--ease),transform .45s var(--ease);
    }
    .person.hidden{display:none}
    .portrait{
      aspect-ratio:.76;overflow:hidden;position:relative;background:#d8dde1
    }
    .portrait .portrait-art{
      position:absolute;inset:0;
      display:flex;align-items:flex-end;justify-content:center;
      background:
        radial-gradient(circle at 50% 30%,rgba(255,255,255,.8),transparent 25%),
        linear-gradient(145deg,#b9d5e6,#5ba6d1 56%,var(--blue-deep));
      transition:transform .65s var(--ease),filter .5s ease;
    }
    .person:nth-child(3n+2) .portrait-art{
      background:radial-gradient(circle at 48% 30%,rgba(255,255,255,.7),transparent 25%),linear-gradient(145deg,#ced5da,#718b9a 60%,#243944)
    }
    .person:nth-child(3n+3) .portrait-art{
      background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.8),transparent 25%),linear-gradient(145deg,#e5f2f8,#8fc4df 55%,#1872ad)
    }
    .initials{
      font-size:clamp(92px,10vw,155px);line-height:.8;
      font-weight:750;letter-spacing:-.075em;color:rgba(255,255,255,.9);
      margin-bottom:-8px
    }
    .person:hover .portrait-art{transform:scale(1.045)}
    .person-meta{padding:16px 0 34px}
    .person-name{font-size:clamp(23px,2vw,31px);letter-spacing:-.035em;margin-bottom:4px}
    .person-role{font-size:14px;color:var(--muted)}
    .person-tag{font-size:12px;margin-top:8px;text-transform:uppercase;letter-spacing:.09em;color:var(--blue)}

    /* About */
    .about{background:#111;color:white}
    .about-big{
      font-size:clamp(45px,6vw,84px);line-height:1.02;letter-spacing:-.055em;
      max-width:1050px;margin:0
    }
    .about-copy{
      display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:80px;
      border-top:1px solid rgba(255,255,255,.25);padding-top:32px
    }
    .about-copy p{font-size:20px;line-height:1.55;color:rgba(255,255,255,.74);max-width:650px}

    /* CTA */
    .cta{
      min-height:84svh;display:flex;align-items:center;background:var(--blue-soft);
      position:relative;overflow:hidden
    }
    .cta h2{
      margin:0;font-size:clamp(60px,8vw,118px);line-height:.9;letter-spacing:-.07em;font-weight:560;max-width:1080px
    }
    .cta h2 span{color:var(--blue)}
    .cta-link{
      display:inline-flex;margin-top:55px;font-size:21px;border-bottom:1px solid;padding-bottom:5px
    }

    footer{background:var(--ink);color:white;padding:70px 0 35px}
    .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}
    .footer-brand{font-size:28px;font-weight:750;letter-spacing:-.04em}
    .footer-col{display:flex;flex-direction:column;gap:12px;color:rgba(255,255,255,.74)}
    .footer-bottom{
      margin-top:80px;padding-top:25px;border-top:1px solid rgba(255,255,255,.18);
      display:flex;justify-content:space-between;color:rgba(255,255,255,.55);font-size:13px
    }

    /* Reveals */
    [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
    [data-reveal].in{opacity:1;transform:none}

    /* Mobile menu */
    .mobile-menu{
      position:fixed;inset:0;background:var(--paper);z-index:999;
      display:flex;flex-direction:column;justify-content:center;
      padding:var(--pad);transform:translateY(-105%);transition:transform .55s var(--ease)
    }
    .mobile-menu.open{transform:none}
    .mobile-menu a{font-size:clamp(44px,12vw,72px);letter-spacing:-.05em;line-height:1.12}

    @media(max-width:900px){
      .nav{grid-template-columns:1fr auto}
      .nav-links,.nav-cta{display:none}
      .mobile-toggle{display:block}
      .hero-bottom,.section-head,.about-copy{grid-template-columns:1fr}
      .hero-link{justify-self:start}
      .section-head{gap:28px}
      .team-top{align-items:flex-start;flex-direction:column}
      .team-grid{grid-template-columns:repeat(2,1fr)}
      .cap-row{grid-template-columns:55px 1fr 32px}
      .cap-desc{display:none}
    }
    @media(max-width:620px){
      .site-header{height:68px}
      .hero{padding-top:125px}
      .hero h1{font-size:clamp(54px,15vw,75px)}
      .hero-bottom{margin-top:38px}
      .team-grid{grid-template-columns:1fr}
      .portrait{aspect-ratio:.78}
      .project-meta{grid-template-columns:1fr}
      .project-category{text-align:left}
      .footer-grid{grid-template-columns:1fr 1fr}
      .footer-brand{grid-column:1/-1}
      .footer-bottom{flex-direction:column;gap:10px}
      .filters{gap:7px}
      .filter{font-size:13px;padding:8px 12px}
    }

    @media(prefers-reduced-motion:reduce){
      *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
    }

/* External team photos */
.team-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  transition:transform .65s var(--ease), filter .5s ease;
}
.person:hover .team-photo{transform:scale(1.045)}

/* Team filters are links in index.html */
.filter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}


/* =========================================================
   HERO — DOWNEASTER LADY ARTWORK
   Replaces the original decorative circle on the right.
   ========================================================= */

.hero{
  min-height:100svh;
  display:flex;
  align-items:center;
  padding:125px 0 58px;
  overflow:hidden;
}

.hero:after{
  display:none;
}

.hero-layout{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);
  gap:clamp(34px,5vw,82px);
  align-items:center;
}

.hero-content{
  position:relative;
  z-index:2;
}

.hero-content h1{
  max-width:790px;
  font-size:clamp(58px,7.1vw,105px);
}

.hero-content .hero-bottom{
  margin-top:46px;
  grid-template-columns:minmax(0,1fr) auto;
  gap:32px;
}

.hero-illustration{
  position:relative;
  min-height:590px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  align-self:stretch;
}

.hero-illustration img{
  position:relative;
  z-index:2;
  width:min(100%,530px);
  height:auto;
  max-height:650px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 24px 45px rgba(6,71,121,.10));
}

.hero-glow{
  position:absolute;
  z-index:1;
  width:500px;
  height:500px;
  right:-90px;
  top:40px;
  border-radius:50%;
  background:
    radial-gradient(circle,
      rgba(10,103,178,.10) 0%,
      rgba(10,103,178,.045) 42%,
      rgba(10,103,178,0) 72%);
  pointer-events:none;
}

@media(max-width:900px){
  .hero{
    padding-top:115px;
    align-items:flex-end;
  }

  .hero-layout{
    grid-template-columns:1fr;
    gap:22px;
  }

  .hero-content h1{
    max-width:900px;
  }

  .hero-illustration{
    min-height:400px;
    justify-content:flex-end;
  }

  .hero-illustration img{
    width:min(82vw,500px);
    max-height:500px;
  }

  .hero-glow{
    width:420px;
    height:420px;
    right:-100px;
  }
}

@media(max-width:620px){
  .hero{
    padding-top:105px;
    padding-bottom:32px;
  }

  .hero-content h1{
    font-size:clamp(52px,14vw,72px);
  }

  .hero-content .hero-bottom{
    grid-template-columns:1fr;
    margin-top:30px;
  }

  .hero-illustration{
    min-height:330px;
  }

  .hero-illustration img{
    width:min(94vw,430px);
    max-height:430px;
  }
}


/* =========================================================
   UPDATED DOWNEASTER LOGO
   ========================================================= */

.site-logo{
  width:46px;
  height:46px;
  object-fit:contain;
  border-radius:50%;
  mix-blend-mode:screen;
}

.footer-site-logo{
  width:42px;
  height:42px;
}

.logo-with-image{
  display:inline-flex;
  align-items:center;
  gap:11px;
}

.logo-with-image img{
  width:44px;
  height:44px;
  object-fit:contain;
  border-radius:50%;
  mix-blend-mode:screen;
}

.logo-with-image span{
  white-space:nowrap;
}

@media(max-width:620px){
  .site-logo,
  .logo-with-image img{
    width:38px;
    height:38px;
  }
}


/* =========================================================
   LOGO SECTION
   Replace images/downeaster.jpg whenever you update the logo.
   ========================================================= */
.navbar-brand{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  line-height:0;
}

.navbar-brand img{
  display:block;
  width:auto;
  max-width:90px;
  height:58px;
  object-fit:contain;
  border:0;
}

@media(max-width:620px){
  .navbar-brand img{
    height:48px;
    max-width:74px;
  }
}


/* =========================================================
   SELECTED WORK — PROJECT IMAGE HOLDERS
   ========================================================= */
.selected-work-custom{padding:90px 0;background:var(--paper,#f7fbfd)}
.selected-work-heading{margin-bottom:32px}
.selected-work-heading h2{margin:6px 0 0;font-size:clamp(38px,5vw,66px);letter-spacing:-.045em}
.selected-projects{display:grid;gap:22px}
.project-card{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  overflow:hidden;
  border:1px solid rgba(6,71,121,.18);
  border-radius:18px;
  background:#fff;
}
.project-image-link{display:block;min-width:0}
.project-image-holder{
  position:relative;
  min-height:360px;
  overflow:hidden;
  background:#dbeef8;
}
.project-image-holder img{
  width:100%;height:100%;min-height:360px;object-fit:cover;
  transition:transform .6s var(--ease,ease);
}
.project-card:hover .project-image-holder img{transform:scale(1.025)}
.project-image-placeholder{display:none}
.project-card-content{padding:34px;display:flex;flex-direction:column;align-items:flex-start}
.project-number{font-size:13px;color:var(--blue,#0a67b2);margin-bottom:12px}
.project-card-content h3{font-size:34px;margin:0 0 5px;color:var(--ink,#064779)}
.project-category{font-size:13px;color:var(--blue,#0a67b2);font-weight:700;margin-bottom:22px}
.project-card-content p{font-size:15px;line-height:1.65;color:var(--muted,#667b8b)}
.project-external-link{margin-top:auto;padding-top:26px;color:var(--blue,#0a67b2);font-weight:800}
.placeholder-holder{display:grid;place-items:center;text-align:center;color:var(--ink,#064779);font-weight:800}
.placeholder-holder small{font-weight:500;opacity:.65}
@media(max-width:820px){
  .project-card{grid-template-columns:1fr}
  .project-image-holder,.project-image-holder img{min-height:260px}
}
\n\n/* 2026 homepage visual update */\n.site-header{height:126px;background:rgba(247,246,242,.97);border-bottom:1px solid rgba(16,18,20,.08)}\n.nav{grid-template-columns:minmax(300px,1fr) auto minmax(180px,1fr);gap:44px}\n.navbar-brand img{height:96px;max-width:390px;width:auto;object-fit:contain}\n.nav-links{gap:48px;font-size:17px;font-weight:600}\n.nav-cta{background:#5830b5;color:#fff;padding:18px 28px;border-radius:5px;font-size:17px}\n.hero{padding-top:170px;padding-bottom:70px;min-height:750px}\n.hero-layout{grid-template-columns:minmax(0,1fr) minmax(520px,.95fr);gap:38px}\n.hero-content h1{font-size:clamp(64px,6.1vw,96px);line-height:.96;max-width:760px;color:#061844;font-weight:700}\n.hero-content h1 em{color:#5938bb}\n.hero-copy{color:#1c2b4d;font-size:19px;max-width:590px}\n.hero-link{color:#5432b4;font-weight:700;border:0}\n.hero-illustration{min-height:570px;align-items:center}\n.hero-illustration img{width:min(100%,720px);max-height:590px;object-fit:contain;filter:none}\n.hero-glow{display:none}\n.capabilities{background:#fbfaf7;color:#071a43;border-top:1px solid rgba(16,18,20,.05)}\n.capabilities .section-head p{color:#263654}\n.capabilities .eyebrow,.cap-index,.cap-arrow{color:#5938bb}\n.cap-row{border-top:1px solid rgba(7,26,67,.14);grid-template-columns:70px 1.35fr 1fr 40px;padding:25px 0}\n.cap-row:last-child{border-bottom:1px solid rgba(7,26,67,.14)}\n.cap-row:hover{background:rgba(89,56,187,.035)}\n.cap-desc{color:#263654;opacity:1}\n@media(max-width:1000px){.site-header{height:96px}.navbar-brand img{height:72px;max-width:290px}.nav-links{gap:24px}.hero-layout{grid-template-columns:1fr}.hero-illustration{min-height:390px}.hero-illustration img{width:min(88vw,650px)}}\n@media(max-width:620px){.site-header{height:76px}.navbar-brand img{height:56px;max-width:225px}.hero{padding-top:115px}.hero-illustration{min-height:290px}.hero-illustration img{width:100%}}\n