
  :root{
    --navy-900:#1a222c; --navy-800:#202b36; --navy-700:#2c3a49;
    --slate-400:#8b97a3; --slate-600:#56616c;
    --amber-500:#d99a2b; --amber-600:#b97f1d;
    --cream:#f0ede4; --paper:#faf8f2; --line:#ddd7c8;
    --ease:cubic-bezier(0.32,0.72,0,1);
    --cond:"Barlow Condensed","Arial Narrow",sans-serif;
    --body:"Barlow","Segoe UI",sans-serif;
    --gutter:20px; --sect:64px;
  }
  @media(min-width:900px){:root{--gutter:32px;--sect:96px}}
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{font-family:var(--body);font-size:17px;line-height:1.6;color:var(--navy-900);background:var(--cream);text-wrap:pretty}
  img,svg{display:block;max-width:100%}
  ul,ol{list-style:none}
  a{color:var(--amber-600);text-decoration:none}
  a:hover{text-decoration:underline}
  :focus-visible{outline:2px solid var(--amber-500);outline-offset:3px}
  h1,h2,h3{font-family:var(--cond);letter-spacing:.02em;text-wrap:balance;color:var(--navy-800)}
  h1{font-weight:700;font-size:40px;line-height:1.1;text-transform:uppercase}
  h2{font-weight:600;font-size:28px;line-height:1.2}
  h3{font-weight:600;font-size:20px;line-height:1.3}
  .overline{font-family:var(--body);font-weight:600;font-size:13px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-600)}
  .num{font-family:var(--cond);font-weight:700}
  .wrap{max-width:1120px;margin:0 auto;padding:0 var(--gutter)}
  section{padding:var(--sect) 0}
  .sect-head{max-width:640px;margin-bottom:40px}
  .sect-head p{font-size:17px;line-height:1.6;margin-top:12px;color:var(--slate-600)}
  .skip{position:absolute;left:12px;top:-64px;background:var(--navy-800);color:var(--cream);padding:8px 12px;z-index:100;font-weight:600}
  .skip:focus{top:12px}

  .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:6px;font-family:var(--body);font-weight:600;font-size:16px;line-height:1.5;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .7s var(--ease),color .7s var(--ease),transform .7s var(--ease),border-color .7s var(--ease)}
  .btn:hover{text-decoration:none}
  .btn:active{transform:scale(0.98)}
  .btn-primary{background:var(--amber-500);color:var(--navy-900)}
  .btn-primary:hover{background:var(--amber-600)}
  .btn-secondary{border-color:var(--navy-800);color:var(--navy-800)}
  .btn-secondary:hover{background:var(--navy-800);color:var(--cream)}
  .btn-secondary.on-dark{border-color:var(--cream);color:var(--cream)}
  .btn-secondary.on-dark:hover{background:var(--cream);color:var(--navy-900)}
  .btn-sm{min-height:40px;padding:8px 16px;font-size:14px}

  /* header */
  .site-header{position:sticky;top:0;z-index:50;background:var(--cream);height:64px;border-bottom:1px solid var(--line)}
  .site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
  .brand{display:block;height:36px}
  .brand svg{height:100%;width:auto}
  .nav{display:none;align-items:center;gap:32px;font-weight:600;font-size:16px}
  .nav>a,.nav summary{color:var(--navy-800);padding:20px 0;display:flex;gap:4px;align-items:center;border-bottom:2px solid transparent;margin-bottom:-2px}
  .nav a[aria-current="page"]{border-bottom-color:var(--amber-500)}
  .nav>a:hover{text-decoration:none;border-bottom-color:var(--slate-400)}
  .nav details{position:relative}
  .nav summary{list-style:none;cursor:pointer}
  .nav summary::-webkit-details-marker{display:none}
  .nav .menu{position:absolute;top:100%;left:0;background:var(--paper);border:1px solid var(--line);padding:8px;min-width:240px;display:grid;gap:2px;box-shadow:0 2px 8px rgba(26,34,44,0.10)}
  .nav .menu a{display:block;padding:8px 12px;color:var(--navy-800);font-weight:500}
  .nav .menu a:hover{background:var(--cream);text-decoration:none}
  .header-actions{display:none;gap:16px;align-items:center}
  .header-actions .text{font-weight:600;font-size:16px;color:var(--navy-800)}
  .burger{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer;position:relative;margin-right:-12px}
  .burger span{position:absolute;left:12px;width:20px;height:2px;background:var(--navy-900);transition:transform .7s var(--ease),opacity .7s var(--ease)}
  .burger span:nth-child(1){transform:translateY(-6px)}
  .burger span:nth-child(3){transform:translateY(6px)}
  .burger[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}
  .burger[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}
  .mobile-menu{position:fixed;inset:64px 0 0 0;background:var(--cream);z-index:40;padding:32px var(--gutter) 96px;overflow:auto;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .mobile-menu.open{opacity:1;transform:none;pointer-events:auto}
  .mobile-menu .group{margin-bottom:32px}
  .mobile-menu .group h4{font-family:var(--body);font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-600);margin-bottom:8px}
  .mobile-menu a{display:block;font-family:var(--cond);font-weight:600;font-size:24px;line-height:1.3;padding:8px 0;color:var(--navy-800);transform:translateY(12px);opacity:0;transition:transform .7s var(--ease),opacity .7s var(--ease)}
  .mobile-menu.open a{transform:none;opacity:1}
  @media(min-width:900px){.nav,.header-actions{display:flex}.burger{display:none}.brand{height:44px}}

  /* hero on navy */
  .hero{background:var(--navy-800);color:var(--cream);padding:48px 0 64px}
  .hero .grid{display:grid;gap:40px}
  .hero h1{color:var(--cream);margin-bottom:16px;font-size:44px}
  .hero .sub{font-size:19px;line-height:1.6;max-width:520px;margin-bottom:32px;color:var(--cream)}
  .hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:32px}
  .chips{display:flex;flex-wrap:wrap;gap:8px}
  .chip{font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;padding:8px 12px;background:var(--navy-700);color:var(--slate-400)}
  .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
  .media{position:relative;background:var(--paper);border:1px solid var(--line);overflow:hidden}
  .hero .media{background:var(--navy-700);border-color:var(--navy-700)}
  .media .ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:16px;font-size:14px;line-height:1.5;color:var(--slate-600);background:repeating-linear-gradient(135deg,transparent 0 22px,rgba(26,34,44,0.05) 22px 24px)}
  .hero .media .ph{color:var(--slate-400);background:repeating-linear-gradient(135deg,transparent 0 22px,rgba(240,237,228,0.06) 22px 24px)}
  .media .ph b{font-weight:600;display:block;margin-top:2px;color:var(--navy-900)}
  .hero .media .ph b{color:var(--cream)}
  .hero .media{aspect-ratio:4/3}
  @media(min-width:900px){
    .hero{padding:80px 0 96px}
    .hero .grid{grid-template-columns:5fr 6fr;align-items:center;gap:64px}
    .hero h1{font-size:64px;line-height:1;margin-bottom:24px}
    h2{font-size:36px}
    h3{font-size:22px}
  }

  /* treeline divider (once per page) */
  .treeline{display:flex;align-items:flex-end;justify-content:center;margin:0 auto 40px;max-width:640px}
  .treeline svg{width:100%;height:auto}

  /* problem */
  .problem .cols{display:grid;gap:32px}
  .problem .cols>div{padding-top:16px;border-top:2px solid var(--navy-800)}
  .problem h3{margin-bottom:8px}
  .problem p{font-size:16px;color:var(--slate-600)}
  @media(min-width:900px){.problem .cols{grid-template-columns:repeat(3,1fr);gap:48px}}

  /* methods bento */
  .bento{display:grid;gap:16px}
  .tile{background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;transition:border-color .7s var(--ease),transform .7s var(--ease)}
  .tile:hover{border-color:var(--slate-400);transform:translateY(-2px)}
  .tile .media{border:0;border-bottom:1px solid var(--line);aspect-ratio:16/9;background:var(--cream)}
  .tile .body{padding:24px;display:flex;flex-direction:column;gap:8px;flex:1}
  .tile p{font-size:16px;color:var(--slate-600)}
  .tile .go{margin-top:auto;padding-top:8px;font-weight:600;font-size:15px;color:var(--amber-600)}
  .tile.small{background:var(--cream)}
  .tile.small h3{font-size:20px}
  @media(min-width:640px){.bento{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1000px){.bento{grid-template-columns:repeat(4,1fr);gap:24px}.tile.large{grid-column:span 2}}

  /* tagline */
  .tagline{background:var(--cream);padding-top:var(--sect)}
  .tagline p{font-family:var(--cond);font-weight:700;font-size:36px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;max-width:820px;text-wrap:balance;color:var(--navy-800)}
  .tagline .w{color:rgba(32,43,54,0.28);transition:color .7s var(--ease)}
  .tagline .w.on{color:var(--navy-800)}
  @media(min-width:900px){.tagline p{font-size:56px;line-height:1.05}}

  /* local */
  .local .grid{display:grid;gap:40px}
  .facts{display:grid;gap:24px}
  .facts div{display:grid;gap:4px}
  .facts .k{font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber-600)}
  .facts p{font-size:16px}
  .map{background:var(--paper);border:1px solid var(--line);padding:24px}
  .map .cap{font-size:14px;color:var(--slate-600);margin-top:16px}
  .gbp{margin-top:32px;padding:16px;border:1px solid var(--line);font-size:14px;color:var(--slate-600);background:var(--paper)}
  @media(min-width:900px){.local .grid{grid-template-columns:1fr 1fr;gap:64px;align-items:start}.map{position:sticky;top:96px}}

  /* process rail */
  .process{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .process ol{display:grid;gap:32px;position:relative}
  .process li{position:relative;padding-left:32px}
  .process li::before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;background:var(--navy-800)}
  .process li::after{content:"";position:absolute;left:5px;top:22px;bottom:-32px;width:2px;background:var(--line)}
  .process li:last-child::after{display:none}
  .process h3{margin-bottom:8px}
  .process p{font-size:16px;color:var(--slate-600)}
  @media(min-width:900px){
    .process ol{grid-template-columns:repeat(4,1fr);gap:40px}
    .process li{padding-left:0;padding-top:32px}
    .process li::before{top:0;left:0}
    .process li::after{top:5px;left:24px;right:-40px;bottom:auto;height:2px;width:auto}
  }

  /* work */
  .pairs{display:grid;gap:24px}
  .pair{background:var(--paper);border:1px solid var(--line);padding:8px}
  .pair .ba{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .pair .media{aspect-ratio:16/10;background:var(--cream)}
  .pair .meta{font-size:14px;color:var(--slate-600);padding:16px 8px 8px}
  @media(min-width:900px){.pairs{grid-template-columns:1fr 1fr}}

  /* towns */
  .towns ul{display:grid;border-top:1px solid var(--line)}
  .towns li a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);color:var(--navy-800);font-family:var(--cond);font-weight:600;font-size:24px;transition:padding-left .7s var(--ease)}
  .towns li a:hover{text-decoration:none;padding-left:8px;color:var(--amber-600)}
  .towns li a .d{font-family:var(--body);font-weight:400;font-size:14px;color:var(--slate-600);text-align:right}
  @media(min-width:900px){.towns ul{grid-template-columns:1fr 1fr;column-gap:64px}}

  /* cost + faq */
  .cost{background:var(--paper);border-top:1px solid var(--line)}
  .cost .grid{display:grid;gap:48px}
  .rate-chip{display:inline-block;font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line);background:var(--cream);color:var(--slate-600)}
  table{width:100%;border-collapse:collapse;font-size:16px;margin:24px 0}
  caption{text-align:left;font-size:14px;color:var(--slate-600);padding-bottom:8px}
  th,td{text-align:left;padding:12px 0;vertical-align:top}
  thead th{font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-600);border-bottom:1px solid var(--navy-800)}
  tbody tr+tr td{border-top:1px solid var(--line)}
  td.num{font-family:var(--cond);font-weight:700;font-size:20px;white-space:nowrap;text-align:right;color:var(--navy-800)}
  th:last-child{text-align:right}
  .cost .tbl p{font-size:16px}
  .faq{border-top:1px solid var(--line)}
  .faq details{border-bottom:1px solid var(--line)}
  .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-family:var(--cond);font-weight:600;font-size:22px;line-height:1.3;color:var(--navy-800);transition:color .7s var(--ease)}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"";width:10px;height:10px;border-right:2px solid var(--amber-600);border-bottom:2px solid var(--amber-600);transform:rotate(45deg);flex:none;transition:transform .7s var(--ease);margin:0 4px 4px 0}
  .faq details[open] summary::after{transform:rotate(225deg);margin-bottom:-4px}
  .faq summary:hover{color:var(--amber-600)}
  .faq .a{padding:0 0 24px;font-size:16px}
  .faq .a p+p{margin-top:8px}
  .callout{border:1px solid var(--line);padding:16px;background:var(--cream);margin-top:16px}
  .callout .lbl{font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber-600);display:block;margin-bottom:4px}
  @media(min-width:900px){.cost .grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}.cost .tbl{position:sticky;top:96px}}

  /* cta band + form on navy */
  .cta-band{background:var(--navy-800);color:var(--cream)}
  .cta-band .grid{display:grid;gap:48px}
  .cta-band h2{color:var(--cream);margin-bottom:12px;text-transform:uppercase;font-weight:700}
  .cta-band .lead{font-size:19px;line-height:1.6;max-width:440px;margin-bottom:32px}
  .cta-band .ctas{display:flex;flex-wrap:wrap;gap:12px}
  .nap{font-style:normal;font-size:15px;line-height:1.6;margin-top:48px;padding-top:24px;border-top:1px solid var(--navy-700);color:var(--slate-400)}
  .nap .fill{color:var(--amber-500)}
  .form-card{background:var(--paper);color:var(--navy-900);padding:24px;border:1px solid var(--line)}
  .form-card .fields{display:grid;gap:20px}
  @media(min-width:640px){.form-card .fields{grid-template-columns:1fr 1fr}.form-card .full{grid-column:1/-1}}
  @media(min-width:900px){.cta-band .grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}.form-card{padding:32px}}
  label{font-weight:600;font-size:14px;line-height:1.5;display:block;margin-bottom:8px}
  input,select,textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--navy-900);min-height:48px;transition:border-color .7s var(--ease)}
  ::placeholder{color:var(--slate-600)}
  input:hover,select:hover,textarea:hover{border-color:var(--slate-400)}
  input:focus,select:focus,textarea:focus{outline:0;border:2px solid var(--amber-500);padding:11px 13px}
  [aria-invalid="true"]{border-color:#9a2436}
  .err{display:none;font-size:14px;color:#9a2436;margin-top:8px}
  .err.show{display:block}
  .photo-drop{border:2px dashed var(--line);border-radius:6px;padding:16px;background:var(--cream);display:grid;gap:8px}
  .photo-drop input{border:0;padding:0;min-height:0;background:transparent}
  .photo-drop .files{font-size:14px;color:var(--slate-600)}
  .success{display:none;padding:32px;border:1px solid var(--line);background:var(--paper);color:var(--navy-900)}
  .success.show{display:block}
  .success h3{margin-bottom:8px}
  .success p{font-size:16px}
  .skeleton{display:none;height:48px;border-radius:6px;background:linear-gradient(90deg,var(--cream) 25%,var(--paper) 50%,var(--cream) 75%);background-size:200% 100%;animation:sk 1.2s var(--ease) infinite}
  .skeleton.show{display:block}
  @keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}

  /* footer */
  footer{background:var(--navy-900);color:var(--cream);padding:64px 0 120px}
  footer .cols{display:grid;gap:40px}
  @media(min-width:700px){footer .cols{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1000px){footer .cols{grid-template-columns:4fr 3fr 3fr 3fr;gap:32px}footer{padding:80px 0}}
  footer .flogo{height:64px;margin-bottom:24px}
  footer .flogo svg{height:100%;width:auto}
  footer h4{font-family:var(--body);font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-400);margin-bottom:16px}
  footer ul{display:grid;gap:8px;font-size:16px}
  footer a{color:var(--cream)}
  footer .legal{margin-top:64px;padding-top:24px;border-top:1px solid var(--navy-700);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:14px;color:var(--slate-400)}
  footer .legal a{color:var(--slate-400)}

  .sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:3fr 2fr;height:56px}
  .sticky-cta a{display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;text-decoration:none}
  .sticky-cta .call{background:var(--amber-500);color:var(--navy-900)}
  .sticky-cta .photos{background:var(--navy-800);color:var(--cream)}
  @media(min-width:900px){.sticky-cta{display:none}}

  .rv{opacity:0;transform:translateY(16px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
  .rv.in{opacity:1;transform:none;filter:none}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{transition-duration:0s!important;animation:none!important}
    .rv{opacity:1;transform:none;filter:none}
    .tagline .w{color:var(--navy-800)}
  }

  /* shared additions for inner pages */
  .hero.light{background:var(--cream);color:var(--navy-900);border-bottom:1px solid var(--line)}
  .hero.light h1,.hero.light .sub{color:var(--navy-900)}
  .hero .grid.single{grid-template-columns:1fr}
  .hero .grid.single>div{max-width:720px}
  .hero .note{font-size:15px;color:var(--slate-400);margin:-16px 0 24px;max-width:520px}
  .hero.light .note{color:var(--slate-600)}
  .prose{max-width:720px}
  .prose p+p{margin-top:16px}
  .prose h3{margin:32px 0 8px}
  .prose ul{list-style:disc;padding-left:24px;margin:8px 0 16px}
  .prose li+li{margin-top:4px}
  .grid-2{display:grid;gap:40px}
  @media(min-width:900px){.grid-2{grid-template-columns:7fr 5fr;gap:64px;align-items:start}}
  .problem .cols.n2{grid-template-columns:1fr}
  @media(min-width:900px){.problem .cols.n2{grid-template-columns:repeat(2,1fr)}.problem .cols.n4{grid-template-columns:repeat(4,1fr);gap:32px}}
  .bento.tiles4{grid-template-columns:1fr}
  @media(min-width:640px){.bento.tiles4{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1000px){.bento.tiles4{grid-template-columns:repeat(4,1fr)}}
  .tbl-sect table{max-width:720px}
  .tbl-sect+.faq-sect,.problem+.faq-sect{padding-top:0}
  .faq-sect .faq{max-width:820px}
  .callout+p{margin-top:16px}
  .disamb{border:2px solid var(--navy-800);padding:24px;background:var(--paper);max-width:720px;margin:0 0 40px}
  .disamb h3{margin:0 0 8px}
  .disamb p{font-size:16px}
  .cta-band .grid.single{grid-template-columns:1fr}
  .cta-band .grid.single>div{max-width:640px}
  .service-area h3{margin-top:0}
  .towns-block{display:grid;gap:48px}
  .towns-block>div{padding-top:24px;border-top:2px solid var(--navy-800)}
  .towns-block p+p{margin-top:12px}
  @media(min-width:900px){.towns-block{grid-template-columns:1fr 1fr;gap:48px 64px}}
  .contact-grid{display:grid;gap:40px}
  @media(min-width:900px){.contact-grid{grid-template-columns:5fr 7fr;gap:64px;align-items:start}}
  .contact-side .big{font-family:var(--cond);font-weight:700;font-size:32px;color:var(--navy-800);display:block;margin:8px 0 24px}
  .map-embed{background:var(--paper);border:1px solid var(--line);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;color:var(--slate-600);font-size:14px;margin-top:24px}
  main>section:not([class])+section:not([class]),main>section:not([class])+section.problem,main>section.problem+section:not([class]){padding-top:0}
  th,td{padding:12px 24px 12px 0}
  th:last-child,td:last-child{padding-right:0}
  th:last-child{text-align:left}
  .cost th:last-child,.tbl-sect table.two th:last-child{text-align:right}
  .tbl-sect td.num{text-align:left;font-size:17px}
  .cost td.num{text-align:right;font-size:20px}

  /* project collection (work page) */
  .projects{display:grid;gap:24px}
  @media(min-width:640px){.projects{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1000px){.projects{grid-template-columns:repeat(3,1fr)}}
  .proj{background:var(--paper);border:1px solid var(--line);padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;transition:border-color .2s ease,transform .2s ease}
  .proj:hover,.proj:focus-visible{border-color:var(--navy-800);transform:translateY(-2px)}
  .proj .media{aspect-ratio:16/10;border:0;border-bottom:1px solid var(--line)}
  .proj .media img{transition:transform .35s ease}
  .proj:hover .media img{transform:scale(1.03)}
  .proj .body{padding:20px 20px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
  .proj h3{margin:0}
  .proj p{font-size:15px;color:var(--slate-600);margin:0}
  .proj .count{margin-top:auto;padding-top:8px;font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-600, #b97f1d)}

  /* lightbox gallery */
  .lb{position:fixed;inset:0;z-index:120;background:#1a222c;display:none;flex-direction:column}
  .lb.open{display:flex}
  .lb-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 20px;color:#f0ede4}
  .lb-title{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:22px;letter-spacing:.02em}
  .lb-count{font-size:14px;color:#8b97a3;white-space:nowrap}
  .lb-close{background:none;border:1px solid #56616c;color:#f0ede4;font:inherit;font-weight:600;font-size:14px;padding:8px 14px;cursor:pointer;min-height:40px}
  .lb-close:hover{border-color:#d99a2b;color:#d99a2b}
  .lb-track{flex:1;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .lb-track::-webkit-scrollbar{display:none}
  .lb-slide{flex:0 0 100%;min-width:100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;padding:0 16px 16px}
  .lb-slide img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
  .lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(32,43,54,.8);border:1px solid #56616c;color:#f0ede4;font-size:26px;line-height:1;width:48px;height:48px;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .lb-nav:hover{border-color:#d99a2b;color:#d99a2b}
  .lb-prev{left:12px}
  .lb-next{right:12px}
  .lb-cap{padding:0 20px 18px;text-align:center;font-size:14px;color:#8b97a3}
  @media(max-width:639px){.lb-nav{display:none}}

  /* header: keep actions on one line; text action only when there is room */
  .nav>a,.nav summary{white-space:nowrap}
  .header-actions .text{display:none;white-space:nowrap}
  @media(min-width:1140px){.header-actions .text{display:inline}}

  /* featured project card */
  @media(min-width:640px){
    .proj-feat{grid-column:span 2}
    .proj-feat .media{aspect-ratio:16/8}
    .proj-feat h3{font-size:24px}
  }
