:root{
  --paper:#f6f1e8;--paper-soft:#fbf8f2;--ink:#0d2038;--muted:#5d6670;
  --gold:#b77c26;--navy:#001f3b;--navy-2:#062a49;--line:rgba(13,32,56,.14);
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  --sans:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --container:min(1280px,calc(100% - 54px));
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%} svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.container{width:var(--container);margin:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.skip-link{position:fixed;left:12px;top:12px;transform:translateY(-160%);background:var(--ink);color:#fff;padding:.7rem 1rem;z-index:1000}.skip-link:focus{transform:none}

.site-header{position:sticky;top:0;z-index:100;background:rgba(246,241,232,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{min-height:70px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2.2rem}
.brand{font-family:var(--serif);font-size:2rem;font-weight:600;letter-spacing:-.02em}
.site-nav{display:flex;gap:1.8rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.055em}
.site-nav a:hover{color:var(--gold)}.social-links{justify-self:end;display:flex;gap:1rem;font-size:.78rem;font-weight:600}
.menu-toggle{display:none;background:none;border:0;width:42px}.menu-toggle span:not(.sr-only){display:block;height:1px;background:var(--ink);margin:7px 0}

.hero{background:var(--paper-soft)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.92fr) minmax(205px,.48fr);min-height:470px}
.hero-copy{align-self:center;padding:3.7rem 2.7rem 3.2rem 0}
.hero h1{font-family:var(--serif);font-size:clamp(3.45rem,4.7vw,5.25rem);line-height:.96;letter-spacing:-.037em;margin:0 0 1.35rem;font-weight:600;max-width:620px}
.hero h1 em{color:var(--gold);font-weight:500}.hero-copy p{max-width:550px;color:#2f3a46;font-size:1rem}
.hero-actions{display:flex;gap:1.45rem;align-items:center;margin-top:1.8rem}.button{display:inline-flex;align-items:center;gap:.55rem;font-size:.77rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.button.primary{background:var(--ink);color:#fff;padding:.9rem 1.12rem;border-radius:3px}.button.secondary{color:var(--ink)}
.hero-photo{position:relative;overflow:hidden;min-height:470px}
.hero-photo:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,var(--paper-soft),transparent 23%)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:68% 42%;filter:saturate(.9) contrast(.98)}
.hero-quote{align-self:start;margin:4.6rem 0 0;padding:0 0 0 1.8rem;border-left:1px solid rgba(183,124,38,.35);font-family:var(--serif);font-size:1.24rem;line-height:1.34}
.quote-mark{display:block;color:var(--gold);font-size:3.7rem;line-height:.8}.hero-quote p{margin:.65rem 0 1.25rem}.hero-quote cite{font-style:italic;color:#626b75}

.portfolio-strip{background:var(--paper-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1rem 0 0}
.portfolio-kicker{margin:0 0 .6rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.065em;font-weight:600}
.metrics{display:grid;grid-template-columns:repeat(5,1fr)}.metric{display:grid;grid-template-columns:44px 1fr;gap:.9rem;align-items:center;padding:1.1rem 1.15rem;border-right:1px solid var(--line)}
.metric:last-child{border-right:0}.metric-svg{width:40px;height:40px;color:var(--gold)}.metric strong{display:block;font-family:var(--serif);font-size:2rem;line-height:1}.metric span{font-size:.78rem}

.section{padding:2.7rem 0}.section-title{margin:0 0 1.8rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.065em;font-weight:600}
.timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:1.4rem}.timeline:before{content:"";position:absolute;left:5%;right:5%;top:66px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),var(--gold),transparent)}
.timeline-item{text-align:center;position:relative}.year{display:block;font-weight:600;font-size:.84rem;margin-bottom:1rem}.timeline-icon{position:relative;z-index:2;display:grid;place-items:center;width:56px;height:56px;margin:0 auto .8rem;background:var(--paper);color:var(--ink)}
.timeline-icon svg{width:48px;height:48px}.timeline-item h3{font-family:var(--serif);font-size:1.2rem;margin:.15rem 0}.timeline-item p{font-size:.8rem;color:#3a4450;max-width:190px;margin:.4rem auto}.center-link{text-align:center;margin-top:1.65rem;font-size:.75rem;font-weight:600;text-transform:uppercase}

.patent-domains{background:linear-gradient(90deg,var(--navy),var(--navy-2));color:#fff;padding:1.35rem 0 1rem}
.patent-grid{display:grid;grid-template-columns:245px 1fr;gap:2rem}.patent-intro{padding-right:1.8rem;border-right:1px solid rgba(183,124,38,.7)}.patent-intro h2{margin:0 0 1rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.065em}.patent-intro p{margin:.42rem 0;color:rgba(255,255,255,.88);font-size:.83rem}
.domain-list{display:grid}.domain-row{display:grid;grid-template-columns:36px 1fr auto;gap:1rem;align-items:center;padding:.62rem 0;border-bottom:1px solid rgba(255,255,255,.09)}.domain-row:last-child{border-bottom:0}.domain-svg{width:27px;height:27px;color:#fff}.domain-row span{font-family:var(--serif);font-size:1.04rem}.domain-row b{color:#f2a93f;font-size:.77rem;font-weight:500;white-space:nowrap}
.patent-note{display:flex;align-items:flex-start;gap:.7rem;margin-top:.9rem;font-size:.76rem;color:rgba(255,255,255,.86)}.patent-note span{color:var(--gold);font-size:1.5rem;line-height:1}.patent-note p{margin:0}

.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.principle{padding:1.45rem 1.7rem;border-right:1px solid var(--line)}.principle:last-child{border-right:0}.principle-svg{width:36px;height:36px}.principle h3{font-family:var(--serif);font-size:1.25rem;margin:.6rem 0}.principle p{font-size:.8rem;color:#3c4650;min-height:68px}.principle a{font-size:.73rem;color:var(--gold);font-weight:600;text-transform:uppercase}

.section-head{display:flex;justify-content:space-between;align-items:center}.section-head>a{font-size:.73rem;text-transform:uppercase;font-weight:600}
.industry-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.85rem}.industry-card{position:relative;overflow:hidden;min-height:235px;color:#fff;border-radius:4px;background-size:100% auto;background-repeat:no-repeat;background-position:top center;background-color:#071b2e}.industry-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,18,36,.98) 15%,rgba(0,18,36,.68) 52%,rgba(0,18,36,.05) 100%)}.industry-card>div{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.15rem}.industry-card h3{font-family:var(--serif);font-size:1.22rem;margin:0}.industry-card p{font-size:.77rem;color:rgba(255,255,255,.8)}.industry-card a{font-size:.69rem;text-transform:uppercase;color:#efb45c;font-weight:600}
.weather{background-image:url("assets/images/weather.jpg")}.agriculture{background-image:url("assets/images/agriculture.jpg")}.assets{background-image:url("assets/images/assets.jpg")}.fraud{background-image:url("assets/images/fraud.jpg")}.energy{background-image:url("assets/images/energy.jpg")}

.lower{padding-top:.2rem}.lower-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;border-top:1px solid var(--line)}.lower-grid>div{padding:1.55rem 1.6rem;border-right:1px solid var(--line)}.lower-grid>div:last-child{border-right:0}
.recent ul{list-style:none;padding:0;margin:0}.recent li{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.75rem}.recent li span{color:#858b91;white-space:nowrap}.about p,.contact p{font-size:.82rem;color:#343f49}.about>a{display:inline-block;margin-top:.9rem;color:var(--gold);font-size:.73rem;text-transform:uppercase;font-weight:600}.location{margin-top:.9rem;color:#737b83}
.site-footer{border-top:1px solid var(--line);padding:1rem 0;font-size:.72rem}.footer-inner{display:flex;justify-content:space-between}.footer-inner div{display:flex;gap:1rem}

.reveal{opacity:0;transform:translateY(12px);transition:.65s ease}.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
@media(max-width:1050px){
  .header-inner{grid-template-columns:1fr auto auto}.menu-toggle{display:block}.site-nav{position:fixed;top:70px;left:0;right:0;display:none;flex-direction:column;background:var(--paper);padding:2rem 24px;border-bottom:1px solid var(--line)}.site-nav.open{display:flex}
  .hero-grid{grid-template-columns:1fr 1fr}.hero-copy{padding-right:2rem}.hero-quote{grid-column:1/-1;margin:0;padding:1.2rem 0;border-left:0;border-top:1px solid var(--line)}
  .metrics{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2n){border-right:0}.timeline{grid-template-columns:1fr 1fr}.timeline:before{display:none}
  .patent-grid{grid-template-columns:1fr}.patent-intro{border-right:0;border-bottom:1px solid rgba(183,124,38,.7);padding-bottom:1rem}.principle-grid{grid-template-columns:1fr 1fr}.principle:nth-child(2){border-right:0}.industry-grid{grid-template-columns:1fr 1fr}.lower-grid{grid-template-columns:1fr}.lower-grid>div{border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:650px){
  :root{--container:min(100% - 28px,1280px)}.brand{font-size:1.45rem}.social-links{display:none}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:3rem 0}.hero h1{font-size:3.25rem}.hero-photo{min-height:390px}.hero-quote{grid-column:auto}.metrics{grid-template-columns:1fr}.metric{border-right:0;border-bottom:1px solid var(--line)}.timeline{grid-template-columns:1fr}.principle-grid{grid-template-columns:1fr}.principle{border-right:0;border-bottom:1px solid var(--line)}.industry-grid{grid-template-columns:1fr}.domain-row{grid-template-columns:32px 1fr}.domain-row b{grid-column:2}.footer-inner{flex-direction:column;gap:.5rem}
}
.reveal{opacity:1!important;transform:none!important;transition:none!important}

@media (min-width: 1051px) {
/* Hero balance refinement */
  .hero-grid {
    grid-template-columns: minmax(0, 1.04fr) minmax(520px, .96fr) !important;
    min-height: 455px !important;
  }
  .hero-copy {
    padding: 3.6rem 3.5rem 3.15rem 0 !important;
  }
  .hero h1 {
    max-width: 590px !important;
    font-size: clamp(3rem, 3.8vw, 4rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -0.032em !important;
    margin-bottom: 1.25rem !important;
  }
  .hero-copy p {
    max-width: 510px !important;
    font-size: .96rem !important;
    line-height: 1.62 !important;
  }
  .hero-actions {
    margin-top: 1.65rem !important;
  }
  .hero-photo {
    min-height: 455px !important;
  }
  .hero-photo img {
    object-position: 66% 42% !important;
  }
}

/* One exact visual system for every top-level section heading */
  .section-heading {
    display: block !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    font-family: var(--sans) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-style: normal !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  .patent-intro .section-heading {
    color: #fff !important;
  }

  .section-head {
    align-items: flex-start !important;
  }

  .section-head .section-heading {
    margin-bottom: 22px !important;
  }

  /* One exact size for the next-level titles inside sections */
  .timeline-item h3,
  .principle h3,
  .industry-card h3,
  .domain-row span {
    font-family: var(--serif) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.18 !important;
    letter-spacing: 0 !important;
  }

  .timeline-item h3,
  .principle h3,
  .industry-card h3 {
    margin-top: .55rem !important;
    margin-bottom: .45rem !important;
  }

  .domain-row span {
    margin: 0 !important;
  }

:root {
    --section-heading-size: 15px;
  }

  /* Hard reset for every top-level section heading */
  h2.section-heading,
  .portfolio-strip h2.section-heading,
  .journey h2.section-heading,
  .patent-intro h2.section-heading,
  .principles h2.section-heading,
  .industries h2.section-heading,
  .lower h2.section-heading,
  .section-head h2.section-heading {
    display: block !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    font-family: var(--sans) !important;
    font-size: var(--section-heading-size) !important;
    font-weight: 600 !important;
    font-style: normal !important;
    font-variant: normal !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
  }

  /* Keep the industries heading in the same visual position as the others */
  .industries .section-head {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 2rem !important;
  }

  .industries .section-head h2.section-heading {
    margin-bottom: 22px !important;
  }

  .industries .section-head > a {
    margin-top: 1px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }

  /* Prevent browser text autosizing from changing isolated headings */
  html {
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

.patent-showcase {
    position: relative;
    overflow: hidden;
    padding: 30px 0 18px;
    color: #fff;
    background:
      radial-gradient(circle at 86% 28%, rgba(31, 101, 148, .22), transparent 28%),
      linear-gradient(112deg, #00172c 0%, #03213a 53%, #001a30 100%);
  }

  .patent-showcase::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .12;
    background-image:
      linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(90deg, transparent 0%, transparent 65%, #000 100%);
  }

  .patent-showcase-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 285px;
    gap: 28px;
    align-items: stretch;
  }

  .patent-showcase .section-heading {
    color: rgba(255,255,255,.92) !important;
    margin-bottom: 18px !important;
  }

  .patent-showcase-stats {
    padding-right: 27px;
    border-right: 1px solid rgba(239,180,92,.42);
  }

  .patent-big-stat {
    display: grid;
    gap: 2px;
  }

  .patent-big-stat strong {
    font-family: var(--serif);
    font-size: 48px;
    font-weight: 500;
    line-height: .95;
    letter-spacing: -.025em;
  }

  .patent-big-stat span {
    white-space: pre-line;
    color: rgba(255,255,255,.83);
    font-size: 12px;
    line-height: 1.45;
  }

  .patent-stat-divider {
    width: 132px;
    height: 1px;
    margin: 18px 0;
    background: linear-gradient(90deg, #d89535, rgba(216,149,53,.16));
  }

  .patent-outline-button {
    display: inline-flex;
    align-items: center;
    margin-top: 20px;
    padding: 10px 13px;
    border: 1px solid #dc9533;
    border-radius: 2px;
    color: #f0b45e;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .055em;
    text-transform: uppercase;
  }

  .patent-outline-button:hover {
    color: #fff;
    background: rgba(220,149,51,.12);
  }

  .patent-showcase-portfolio {
    min-width: 0;
  }

  .showcase-domain-list {
    display: grid;
  }

  .showcase-domain-row {
    display: grid;
    grid-template-columns: 30px minmax(205px, 1fr) 180px 105px;
    gap: 10px;
    align-items: center;
    min-height: 42px;
    border-bottom: 1px solid rgba(255,255,255,.12);
  }

  .showcase-domain-row:last-child {
    border-bottom: 0;
  }

  .showcase-domain-icon {
    display: grid;
    place-items: center;
    color: rgba(255,255,255,.92);
  }

  .showcase-domain-icon svg {
    width: 24px;
    height: 24px;
  }

  .showcase-domain-title {
    overflow: hidden;
    color: rgba(255,255,255,.93);
    font-family: var(--serif);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .showcase-domain-depth {
    display: flex;
    gap: 4px;
  }

  .showcase-domain-depth i {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: rgba(116,149,174,.25);
  }

  .showcase-domain-depth i.active {
    background: #e6a041;
    box-shadow: 0 0 8px rgba(230,160,65,.16);
  }

  .showcase-domain-action {
    justify-self: end;
    color: #efae50;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
  }

  .showcase-domain-row:hover .showcase-domain-title,
  .showcase-domain-row:hover .showcase-domain-action {
    color: #fff;
  }

  .patent-blueprint {
    position: relative;
    display: flex;
    min-height: 260px;
    flex-direction: column;
    justify-content: space-between;
    padding-left: 24px;
    border-left: 1px solid rgba(239,180,92,.25);
  }

  .blueprint-art {
    width: 100%;
    height: 198px;
    color: #e3a351;
  }

  .blueprint-grid {
    fill: none;
    stroke: rgba(126,173,205,.22);
    stroke-width: .65;
  }

  .blueprint-machine {
    fill: none;
    stroke: url(#blueprintGlow);
    stroke-width: 1.15;
  }

  .blueprint-nodes {
    fill: #e5a049;
    stroke: none;
  }

  .patent-blueprint p {
    max-width: 250px;
    margin: 4px 0 0;
    font-family: var(--serif);
    font-size: 20px;
    line-height: 1.18;
    color: rgba(255,255,255,.95);
  }

  .patent-showcase-note {
    position: relative;
    z-index: 1;
    margin-top: 15px;
    padding-top: 11px;
    border-top: 1px solid rgba(255,255,255,.09);
    color: rgba(255,255,255,.60);
    font-size: 10px;
    line-height: 1.4;
  }

  @media (max-width: 1100px) {
    .patent-showcase-grid {
      grid-template-columns: 190px minmax(0, 1fr);
    }
    .patent-blueprint {
      display: none;
    }
    .showcase-domain-row {
      grid-template-columns: 28px minmax(180px, 1fr) 150px 96px;
    }
  }

  @media (max-width: 760px) {
    .patent-showcase-grid {
      grid-template-columns: 1fr;
    }
    .patent-showcase-stats {
      border-right: 0;
      border-bottom: 1px solid rgba(239,180,92,.35);
      padding: 0 0 22px;
    }
    .showcase-domain-row {
      grid-template-columns: 28px minmax(0, 1fr) auto;
      padding: 10px 0;
    }
    .showcase-domain-depth {
      display: none;
    }
  }

.showcase-domain-row {
    grid-template-columns: 30px minmax(205px, 1fr) 110px 105px !important;
  }

  .showcase-domain-motif {
    display: grid;
    justify-items: center;
    align-items: center;
  }

  .domain-motif-svg {
    width: 88px;
    height: 24px;
    fill: none;
    stroke: rgba(236, 171, 73, .95);
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .92;
  }

  .domain-motif-svg circle {
    fill: rgba(236, 171, 73, .95);
    stroke: none;
  }

  .showcase-domain-row:hover .domain-motif-svg {
    stroke: #fff;
  }

  .showcase-domain-row:hover .domain-motif-svg circle {
    fill: #fff;
  }

  @media (max-width: 1100px) {
    .showcase-domain-row {
      grid-template-columns: 28px minmax(180px, 1fr) 95px 96px !important;
    }
  }

  @media (max-width: 760px) {
    .showcase-domain-row {
      grid-template-columns: 28px minmax(0, 1fr) auto !important;
    }

    .showcase-domain-motif {
      display: none !important;
    }
  }

.leadership-scope .section-head {
    display: block !important;
  }

  .leadership-scope .section-heading {
    margin-bottom: 14px !important;
  }

  .scope-list {
    display: grid;
    gap: 12px;
  }

  .scope-item {
    padding-bottom: 11px;
    border-bottom: 1px solid var(--line);
  }

  .scope-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }

  .scope-item h3 {
    margin: 0 0 5px;
    font-family: var(--serif);
    font-size: 18px;
    line-height: 1.16;
    font-weight: 600;
    color: var(--ink);
  }

  .scope-item p {
    margin: 0;
    font-size: 12.8px;
    line-height: 1.5;
    color: #3c4650;
  }

.lower-grid .about p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
  }

  .lower-grid .about > a {
    margin-top: 14px;
  }

.portfolio-strip .metric strong {
    white-space: nowrap;
  }

  .portfolio-strip .metric span {
    line-height: 1.25;
  }

  .portfolio-strip .metric:last-child span {
    max-width: 125px;
  }

.principle p {
    min-height: 0 !important;
    margin-bottom: 0 !important;
  }

  .principle {
    padding-bottom: 1.55rem !important;
  }

.social-links a {
    min-width: 20px;
    text-align: center;
  }

  .site-footer .footer-inner > div {
    flex-wrap: wrap;
    justify-content: flex-end;
    column-gap: 1rem;
    row-gap: .4rem;
  }

.lower-grid {
    grid-template-columns: .95fr 1.2fr .85fr !important;
    align-items: stretch !important;
  }

  .lower-grid > .about,
  .lower-grid > .leadership-scope,
  .lower-grid > .contact {
    height: 100%;
  }

  .lower-grid > .leadership-scope {
    border-left: 0 !important;
  }

  .lower-grid > .contact {
    display: flex;
    flex-direction: column;
  }

  .lower-grid > .contact .location {
    margin-top: auto !important;
    padding-top: 1rem;
  }

.lower-grid > .contact {
    display: block !important;
  }

  .lower-grid > .contact .location {
    margin-top: 12px !important;
    padding-top: 0 !important;
  }

.portfolio-citation-note {
    margin: 0;
    padding: .7rem 0 .85rem;
    border-top: 1px solid var(--line);
    color: #59636e;
    font-size: .72rem;
    line-height: 1.45;
    text-align: center;
  }

  .portfolio-citation-note strong {
    color: var(--ink);
    font-weight: 600;
  }

  @media (max-width: 650px) {
    .portfolio-citation-note {
      text-align: left;
      padding-top: .85rem;
    }
  }

.portfolio-strip .metric:nth-child(2) span {
    display: block;
  }

  .portfolio-strip .metric:nth-child(2) .metric-detail {
    display: block;
    margin-top: 5px;
    max-width: 150px;
    color: #707983;
    font-size: 9.5px;
    font-weight: 500;
    line-height: 1.25;
  }

.portfolio-strip .metric:nth-child(2) span {
    display: inline !important;
    line-height: 1.25 !important;
  }

  .portfolio-strip .metric:nth-child(2) .metric-detail {
    display: none !important;
  }

.contact .location {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 12px !important;
    padding-top: 0 !important;
    color: #59636e !important;
  }

  .contact .location-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: var(--gold);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

.site-footer .footer-inner > div a {
    min-width: 22px;
    text-align: center;
    font-weight: 600;
  }

.site-footer .footer-inner {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    gap: 1rem !important;
  }

  .site-footer .back-to-top {
    justify-self: center;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .7rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .045em;
    text-transform: uppercase;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
  }

  .site-footer .back-to-top:hover {
    color: var(--gold);
    border-color: rgba(183,124,38,.55);
    background: rgba(183,124,38,.06);
  }

  .site-footer .footer-inner > div {
    justify-self: end;
  }

  @media (max-width: 650px) {
    .site-footer .footer-inner {
      grid-template-columns: 1fr !important;
      justify-items: center !important;
      text-align: center !important;
    }

    .site-footer .footer-inner > div {
      justify-self: center !important;
    }

    .site-footer .back-to-top {
      order: -1;
    }
  }

.site-nav a[aria-current="page"] {
    color: var(--gold);
  }

  .mobile-menu-checkbox,
  .mobile-menu-label {
    display: none;
  }

  .page-kicker {
    margin: 0 0 .9rem;
    color: var(--gold);
    font-size: .75rem;
    font-weight: 650;
    letter-spacing: .09em;
    text-transform: uppercase;
  }

  .page-hero-title {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(3.4rem, 5vw, 5.8rem);
    font-weight: 600;
    line-height: .94;
    letter-spacing: -.045em;
  }

  .page-hero-lead {
    max-width: 700px;
    margin: 1.4rem 0 0;
    color: #46515c;
    font-size: 1rem;
    line-height: 1.68;
  }

  .page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.7rem;
  }

  .page-actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .editorial-section {
    padding: 4.4rem 0;
  }

  .editorial-section + .editorial-section {
    border-top: 1px solid var(--line);
  }

  .editorial-intro {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 3rem;
    margin-bottom: 2rem;
  }

  .editorial-intro h2 {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(2.25rem, 3.2vw, 3.6rem);
    line-height: 1;
    letter-spacing: -.03em;
  }

  .editorial-intro p {
    max-width: 680px;
    margin: .25rem 0 0;
    color: #4e5964;
    line-height: 1.68;
  }

  .text-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--gold);
    font-size: .78rem;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .text-link:hover {
    color: var(--ink);
  }

  .footer-inner a:hover {
    color: var(--gold);
  }

  @media (max-width: 850px) {
    .header-inner {
      position: relative !important;
      min-height: 62px !important;
      grid-template-columns: 1fr auto !important;
      gap: 1rem !important;
    }

    .brand {
      font-size: 1.55rem !important;
    }

    .mobile-menu-checkbox {
      position: absolute !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }

    .mobile-menu-label {
      display: grid !important;
      justify-self: end !important;
      align-content: center !important;
      width: 42px !important;
      height: 42px !important;
      padding: 8px !important;
      cursor: pointer !important;
      z-index: 125 !important;
    }

    .mobile-menu-label span {
      display: block !important;
      width: 24px !important;
      height: 2px !important;
      margin: 3px auto !important;
      background: var(--ink) !important;
      transition: transform .2s ease !important;
    }

    .site-nav {
      display: none !important;
      position: absolute !important;
      top: 62px !important;
      left: -14px !important;
      right: -14px !important;
      z-index: 120 !important;
      flex-direction: column !important;
      gap: 0 !important;
      padding: 10px 14px 14px !important;
      background: rgba(246,241,232,.99) !important;
      border-top: 1px solid var(--line) !important;
      border-bottom: 1px solid var(--line) !important;
      box-shadow: 0 12px 24px rgba(13,32,56,.12) !important;
    }

    .site-nav a {
      display: block !important;
      padding: 12px 2px !important;
      border-bottom: 1px solid var(--line) !important;
      font-size: .76rem !important;
      letter-spacing: .065em !important;
    }

    .site-nav a:last-child {
      border-bottom: 0 !important;
    }

    #mobile-menu-toggle:checked ~ .site-nav {
      display: flex !important;
    }

    #mobile-menu-toggle:checked + .mobile-menu-label span:first-child {
      transform: translateY(4px) rotate(45deg) !important;
    }

    #mobile-menu-toggle:checked + .mobile-menu-label span:last-child {
      transform: translateY(-4px) rotate(-45deg) !important;
    }

    .social-links {
      display: none !important;
    }

    .editorial-intro {
      grid-template-columns: 1fr;
      gap: 1rem;
    }
  }

.projects-hero {
    background: var(--paper-soft);
    border-bottom: 1px solid var(--line);
  }

  .projects-hero-grid {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    min-height: 470px;
    align-items: center;
    gap: 3.5rem;
  }

  .projects-hero-copy {
    padding: 4rem 0;
  }

  .eyebrow {
    margin: 0 0 .9rem;
    color: var(--gold);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .085em;
    text-transform: uppercase;
  }

  .projects-hero h1 {
    max-width: 710px;
    margin: 0 0 1.4rem;
    font-family: var(--serif);
    font-size: clamp(3.2rem, 4.5vw, 4.8rem);
    font-weight: 600;
    line-height: .98;
    letter-spacing: -.035em;
  }

  .projects-lead {
    max-width: 650px;
    margin: 0;
    color: #34404b;
    font-size: 1rem;
    line-height: 1.65;
  }

  .projects-hero-art {
    display: grid;
    justify-items: center;
    color: var(--gold);
  }

  .projects-hero-art svg {
    width: 100%;
    max-width: 520px;
  }

  .project-grid-lines {
    fill: none;
    stroke: rgba(13,32,56,.09);
    stroke-width: 1;
  }

  .project-network,
  .project-orbits {
    fill: none;
    stroke: url(#g1);
    stroke-width: 2;
  }

  .project-network circle {
    fill: var(--paper-soft);
    stroke: var(--gold);
  }

  .projects-hero-art p {
    margin: -.8rem 0 0;
    color: #66717c;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .projects-arc {
    padding: 1.6rem 0 2rem;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
  }

  .arc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .arc-grid article {
    position: relative;
    padding: 1.35rem 1.5rem;
    border-right: 1px solid var(--line);
  }

  .arc-grid article:last-child {
    border-right: 0;
  }

  .arc-grid article > span {
    color: var(--gold);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
  }

  .arc-grid h3 {
    margin: .35rem 0 .45rem;
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1.15;
  }

  .arc-grid p {
    margin: 0;
    color: #4f5964;
    font-size: .82rem;
  }

  .current-portfolio .section-head p,
  .selected-projects .section-head p {
    margin: 0;
    color: #6d7680;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .05em;
  }

  .current-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .9rem;
  }

  .current-card {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    border-radius: 4px;
    color: #fff;
    background-position: center;
    background-size: cover;
  }

  .current-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(0,18,36,.98) 10%, rgba(0,18,36,.66) 58%, rgba(0,18,36,.06) 100%);
  }

  .current-card > div {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.25rem;
  }

  .current-card span {
    color: #efb45c;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  .current-card h3 {
    margin: .35rem 0 .45rem;
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1.12;
  }

  .current-card p {
    margin: 0;
    color: rgba(255,255,255,.8);
    font-size: .78rem;
  }

  .selected-projects {
    background: var(--paper-soft);
    border-top: 1px solid var(--line);
  }

  .project-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .project-card {
    padding: 1.45rem;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 4px;
  }

  .project-card.featured {
    background: linear-gradient(135deg, #08253f, #001a30);
    color: #fff;
    border-color: transparent;
  }

  .project-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.1rem;
  }

  .project-tag {
    color: var(--gold);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .075em;
    text-transform: uppercase;
  }

  .project-number {
    color: rgba(13,32,56,.35);
    font-family: var(--serif);
    font-size: 1.45rem;
  }

  .project-card.featured .project-number {
    color: rgba(255,255,255,.25);
  }

  .project-card h3 {
    margin: 0 0 .65rem;
    font-family: var(--serif);
    font-size: 1.65rem;
    line-height: 1.08;
  }

  .project-summary {
    margin: 0 0 1.15rem;
    color: #46515c;
    font-size: .88rem;
    line-height: 1.55;
  }

  .project-card.featured .project-summary {
    color: rgba(255,255,255,.78);
  }

  .project-card dl {
    display: grid;
    gap: .7rem;
    margin: 0;
  }

  .project-card dl div {
    display: grid;
    grid-template-columns: 82px 1fr;
    gap: .8rem;
    padding-top: .7rem;
    border-top: 1px solid var(--line);
  }

  .project-card.featured dl div {
    border-top-color: rgba(255,255,255,.13);
  }

  .project-card dt {
    color: var(--gold);
    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .project-card dd {
    margin: 0;
    color: #4e5964;
    font-size: .77rem;
    line-height: 1.48;
  }

  .project-card.featured dd {
    color: rgba(255,255,255,.82);
  }

  .projects-note {
    padding: 1rem 0;
    background: var(--paper-soft);
    border-top: 1px solid var(--line);
  }

  .projects-note p {
    margin: 0;
    color: #69737d;
    font-size: .72rem;
    text-align: center;
  }

  .projects-cta {
    padding: 2.6rem 0;
    color: #fff;
    background: linear-gradient(110deg, var(--navy), var(--navy-2));
  }

  .projects-cta-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
  }

  .projects-cta h2 {
    max-width: 760px;
    margin: 0;
    font-family: var(--serif);
    font-size: 2rem;
    line-height: 1.12;
  }

  .projects-cta .button.primary {
    flex: 0 0 auto;
    background: var(--gold);
    color: #0a2138;
  }

  @media (max-width: 1050px) {
    .projects-hero-grid {
      grid-template-columns: 1fr;
      gap: 0;
    }

    .projects-hero-art {
      padding-bottom: 2rem;
    }

    .current-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (max-width: 700px) {
    .projects-hero-grid,
    .arc-grid,
    .current-grid,
    .project-card-grid {
      grid-template-columns: 1fr;
    }

    .projects-hero-copy {
      padding: 2.8rem 0 1.5rem;
    }

    .projects-hero h1 {
      font-size: 3rem;
    }

    .projects-hero-art {
      display: none;
    }

    .arc-grid article {
      border-right: 0;
      border-bottom: 1px solid var(--line);
      padding-left: 0;
      padding-right: 0;
    }

    .arc-grid article:last-child {
      border-bottom: 0;
    }

    .current-card {
      min-height: 260px;
    }

    .project-card dl div {
      grid-template-columns: 1fr;
      gap: .25rem;
    }

    .projects-cta-inner {
      display: grid;
    }
  }

.project-card.featured .project-tag {
    color: #f0b45e;
  }

@media (min-width: 701px) {
    .project-card-grid .project-card:nth-child(n+3):nth-child(4n+1),
    .project-card-grid .project-card:nth-child(n+3):nth-child(4n+2) {
      background: #f7f2e9;
    }
  }

.projects-cta-links {
    display: grid;
    justify-items: start;
    gap: .7rem;
    flex: 0 0 auto;
  }
  .projects-cta-links .text-link { color: #efb45c; }
  @media (max-width: 700px) {
    .projects-cta-links { justify-items: start; }
  }

/* Keep the hero network visible even when the preview rewrites SVG IDs. */
  .projects-hero-art .project-network,
  .projects-hero-art .project-orbits {
    fill: none !important;
    stroke: #d79a40 !important;
    stroke-width: 2 !important;
    vector-effect: non-scaling-stroke;
  }

  .projects-hero-art .project-network path {
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .projects-hero-art .project-orbits {
    opacity: .58;
  }

  /* Give long labels and descriptions their own space. */
  .project-card-grid {
    align-items: stretch;
  }

  .project-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
  }

  .project-card-top {
    align-items: flex-start !important;
  }

  .project-tag {
    min-width: 0;
    max-width: calc(100% - 48px);
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  .project-number {
    flex: 0 0 auto;
    line-height: 1;
  }

  .project-card h3,
  .project-summary,
  .project-card dd {
    overflow-wrap: anywhere;
  }

  .project-card dl {
    margin-top: auto;
  }

  .project-card dl div {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    align-items: start;
  }

  .current-card {
    min-height: 330px;
  }

  .current-card > div {
    position: relative !important;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    box-sizing: border-box;
  }

  @media (max-width: 980px) {
    .project-card-grid {
      grid-template-columns: 1fr !important;
    }

    .project-card dl {
      margin-top: 0;
    }
  }

  @media (max-width: 700px) {
    .projects-hero-art svg {
      max-width: 100%;
    }

    .project-card dl div {
      grid-template-columns: 1fr !important;
      gap: .28rem !important;
    }

    .current-card {
      min-height: 285px;
    }
  }

.journey-page-hero {
    overflow: hidden;
    background:
      radial-gradient(circle at 84% 30%, rgba(183,124,38,.16), transparent 22%),
      linear-gradient(135deg, var(--paper-soft), #f1eadf);
    border-bottom: 1px solid var(--line);
  }

  .journey-page-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    min-height: 520px;
    align-items: center;
    gap: 3.5rem;
  }

  .journey-page-copy {
    padding: 4.5rem 0;
  }

  .journey-page-art {
    position: relative;
    min-height: 420px;
    display: grid;
    place-items: center;
  }

  .journey-page-art svg {
    width: min(100%, 540px);
    color: var(--gold);
  }

  .journey-art-grid {
    stroke: rgba(13,32,56,.08);
    stroke-width: 1;
  }

  .journey-art-path {
    stroke: currentColor;
    stroke-width: 2;
  }

  .journey-art-node {
    fill: var(--paper-soft);
    stroke: currentColor;
    stroke-width: 2;
  }

  .journey-art-label {
    fill: var(--ink);
    stroke: none;
    font-family: var(--sans);
    font-size: 11px;
    letter-spacing: .06em;
  }

  .journey-impact-strip {
    background: var(--navy);
    color: #fff;
  }

  .journey-impact-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
  }

  .journey-impact-item {
    padding: 1.45rem 1.3rem;
    border-right: 1px solid rgba(255,255,255,.12);
  }

  .journey-impact-item:last-child {
    border-right: 0;
  }

  .journey-impact-item strong {
    display: block;
    color: #efb45c;
    font-family: var(--serif);
    font-size: 2rem;
    line-height: 1;
  }

  .journey-impact-item span {
    display: block;
    margin-top: .35rem;
    color: rgba(255,255,255,.72);
    font-size: .73rem;
    letter-spacing: .045em;
    text-transform: uppercase;
  }

  .journey-chapters {
    background: var(--paper);
  }

  .journey-chapter {
    display: grid;
    grid-template-columns: 245px 1fr;
    gap: 3.5rem;
    padding: 3.5rem 0;
    border-top: 1px solid var(--line);
  }

  .journey-chapter:first-child {
    border-top: 0;
  }

  .chapter-label {
    position: sticky;
    top: 105px;
    align-self: start;
  }

  .chapter-number {
    display: block;
    margin-bottom: .6rem;
    color: var(--gold);
    font-size: .72rem;
    font-weight: 650;
    letter-spacing: .09em;
  }

  .chapter-label h2 {
    margin: 0;
    font-family: var(--serif);
    font-size: 2rem;
    line-height: 1.02;
    letter-spacing: -.025em;
  }

  .chapter-label p {
    margin: .85rem 0 0;
    color: #65707a;
    font-size: .82rem;
  }

  .chapter-events {
    position: relative;
    display: grid;
    gap: .9rem;
  }

  .chapter-events::before {
    content: "";
    position: absolute;
    left: 51px;
    top: 22px;
    bottom: 22px;
    width: 1px;
    background: var(--line);
  }

  .journey-event {
    position: relative;
    display: grid;
    grid-template-columns: 84px 1fr;
    gap: 1.25rem;
    padding: 1.25rem 1.3rem;
    background: var(--paper-soft);
    border: 1px solid var(--line);
    border-radius: 4px;
  }

  .journey-event::before {
    content: "";
    position: absolute;
    left: 46px;
    top: 29px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--paper-soft);
    border: 2px solid var(--gold);
    z-index: 2;
  }

  .event-year {
    padding-top: .05rem;
    color: var(--gold);
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1;
  }

  .event-type {
    display: inline-block;
    margin-bottom: .35rem;
    color: #77818a;
    font-size: .65rem;
    font-weight: 650;
    letter-spacing: .075em;
    text-transform: uppercase;
  }

  .journey-event h3 {
    margin: 0 0 .35rem;
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1.1;
  }

  .journey-event p {
    margin: 0;
    color: #4f5964;
    font-size: .84rem;
    line-height: 1.55;
  }

  .journey-event .text-link {
    margin-top: .65rem;
    font-size: .68rem;
  }

  .journey-page-cta {
    padding: 3.3rem 0;
    background: linear-gradient(115deg, var(--navy), var(--navy-2));
    color: #fff;
  }

  .journey-page-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
  }

  .journey-page-cta h2 {
    max-width: 760px;
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
  }

  .journey-page-cta p {
    margin: .7rem 0 0;
    color: rgba(255,255,255,.72);
  }

  @media (max-width: 900px) {
    .journey-page-hero-grid {
      grid-template-columns: 1fr;
      min-height: 0;
    }

    .journey-page-art {
      min-height: 310px;
      padding-bottom: 2rem;
    }

    .journey-chapter {
      grid-template-columns: 1fr;
      gap: 1.5rem;
    }

    .chapter-label {
      position: static;
    }
  }

  @media (max-width: 700px) {
    .journey-page-copy {
      padding: 3rem 0 1.5rem;
    }

    .journey-page-art {
      display: none;
    }

    .journey-impact-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .journey-impact-item:nth-child(2) {
      border-right: 0;
    }

    .journey-impact-item:nth-child(-n+2) {
      border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .journey-event {
      grid-template-columns: 62px 1fr;
      gap: .85rem;
      padding: 1.05rem;
    }

    .chapter-events::before {
      left: 38px;
    }

    .journey-event::before {
      left: 33px;
      top: 25px;
    }

    .event-year {
      font-size: 1.15rem;
    }

    .journey-page-cta-inner {
      display: grid;
    }
  }

/* Place the chronology line and marker in the gutter between year and content. */
  .chapter-events::before {
    left: 112px !important;
  }

  .journey-event::before {
    left: 106px !important;
  }

  @media (max-width: 700px) {
    .chapter-events::before {
      left: 85px !important;
    }

    .journey-event::before {
      left: 79px !important;
    }
  }

.journey-art-label {
    fill: var(--ink) !important;
    stroke: none !important;
    font-weight: 650;
    text-rendering: geometricPrecision;
  }

.ideas-page-hero {
    overflow: hidden;
    background: linear-gradient(135deg, #001d37, #062d4d);
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.12);
  }

  .ideas-page-hero-grid {
    display: grid;
    grid-template-columns: 1fr .92fr;
    min-height: 540px;
    align-items: center;
    gap: 4rem;
  }

  .ideas-page-copy {
    padding: 4.7rem 0;
  }

  .ideas-page-copy .page-hero-lead {
    color: rgba(255,255,255,.74);
  }

  .ideas-page-copy .button.secondary {
    color: #fff;
    border-color: rgba(255,255,255,.4);
  }

  .ideas-page-copy .button.secondary:hover {
    border-color: #fff;
  }

  .ideas-page-art {
    display: grid;
    place-items: center;
  }

  .ideas-page-art svg {
    width: min(100%, 520px);
    color: #efb45c;
  }

  .ip-grid-line {
    stroke: rgba(255,255,255,.1);
    stroke-width: 1;
  }

  .ip-core {
    fill: rgba(239,180,92,.08);
    stroke: currentColor;
    stroke-width: 2;
  }

  .ip-node {
    fill: var(--navy);
    stroke: currentColor;
    stroke-width: 2;
  }

  .ip-link {
    stroke: currentColor;
    stroke-width: 2;
  }

  .ideas-metrics {
    background: var(--paper-soft);
    border-bottom: 1px solid var(--line);
  }

  .ideas-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
  }

  .ideas-metric {
    padding: 1.5rem 1.25rem;
    border-right: 1px solid var(--line);
  }

  .ideas-metric:last-child {
    border-right: 0;
  }

  .ideas-metric strong {
    display: block;
    font-family: var(--serif);
    font-size: 2.15rem;
    line-height: 1;
  }

  .ideas-metric span {
    display: block;
    margin-top: .4rem;
    color: #64707a;
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
  }

  .innovation-philosophy {
    background: var(--paper);
  }

  .philosophy-panel {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 3rem;
    padding: 3rem;
    background: linear-gradient(125deg, #062a49, #001f3b);
    color: #fff;
    border-radius: 4px;
  }

  .philosophy-panel::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -100px;
    width: 280px;
    height: 280px;
    border: 1px solid rgba(239,180,92,.28);
    border-radius: 50%;
    box-shadow:
      0 0 0 38px rgba(239,180,92,.05),
      0 0 0 76px rgba(239,180,92,.035);
  }

  .philosophy-panel h2 {
    position: relative;
    z-index: 2;
    margin: 0;
    font-family: var(--serif);
    font-size: 2.15rem;
    line-height: 1;
  }

  .philosophy-copy {
    position: relative;
    z-index: 2;
  }

  .philosophy-copy blockquote {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(1.7rem, 2.6vw, 2.7rem);
    line-height: 1.12;
    letter-spacing: -.025em;
  }

  .philosophy-copy p {
    max-width: 720px;
    margin: 1rem 0 0;
    color: rgba(255,255,255,.72);
    font-size: .86rem;
    line-height: 1.6;
  }

  .domain-map {
    background: var(--paper-soft);
  }

  .domain-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .9rem;
  }

  .domain-card {
    min-height: 210px;
    padding: 1.35rem;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 4px;
  }

  .domain-card svg {
    width: 42px;
    height: 42px;
    margin-bottom: 1.1rem;
    color: var(--gold);
  }

  .domain-card h3 {
    margin: 0 0 .45rem;
    font-family: var(--serif);
    font-size: 1.45rem;
    line-height: 1.1;
  }

  .domain-card p {
    margin: 0;
    color: #59636d;
    font-size: .8rem;
    line-height: 1.52;
  }

  .selected-ip {
    background: var(--paper);
  }

  .patent-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .9rem;
  }

  .patent-card {
    display: grid;
    grid-template-columns: 66px 1fr;
    gap: 1rem;
    min-height: 205px;
    padding: 1.3rem;
    background: var(--paper-soft);
    border: 1px solid var(--line);
    border-radius: 4px;
  }

  .patent-card-index {
    color: var(--gold);
    font-family: var(--serif);
    font-size: 1.7rem;
    line-height: 1;
  }

  .patent-card-type {
    display: block;
    margin-bottom: .35rem;
    color: #77818a;
    font-size: .64rem;
    font-weight: 650;
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  .patent-card h3 {
    margin: 0 0 .45rem;
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1.12;
  }

  .patent-card p {
    margin: 0;
    color: #57616b;
    font-size: .78rem;
    line-height: 1.5;
  }

  .patent-card .text-link {
    margin-top: .75rem;
    font-size: .66rem;
  }

  .publications-section {
    background: var(--paper-soft);
  }

  .publication-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .9rem;
  }

  .publication-card {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 1.2rem;
    padding: 1.25rem;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 4px;
  }

  .publication-mark {
    display: grid;
    place-items: center;
    min-height: 118px;
    padding: .8rem;
    background: var(--navy);
    color: #efb45c;
    font-family: var(--serif);
    font-size: 1.45rem;
    line-height: 1;
    text-align: center;
  }

  .publication-type {
    display: block;
    margin-bottom: .35rem;
    color: var(--gold);
    font-size: .64rem;
    font-weight: 650;
    letter-spacing: .075em;
    text-transform: uppercase;
  }

  .publication-card h3 {
    margin: 0 0 .45rem;
    font-family: var(--serif);
    font-size: 1.35rem;
    line-height: 1.12;
  }

  .publication-card p {
    margin: 0;
    color: #59636d;
    font-size: .78rem;
    line-height: 1.5;
  }

  .publication-card .text-link {
    margin-top: .7rem;
    font-size: .66rem;
  }

  .ideas-page-cta {
    padding: 3.2rem 0;
    background: linear-gradient(115deg, #082b49, #001b33);
    color: #fff;
  }

  .ideas-page-cta-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
  }

  .ideas-page-cta h2 {
    max-width: 760px;
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.06;
  }

  @media (max-width: 900px) {
    .ideas-page-hero-grid {
      grid-template-columns: 1fr;
      gap: 0;
    }

    .ideas-page-art {
      padding-bottom: 2.5rem;
    }

    .philosophy-panel {
      grid-template-columns: 1fr;
      gap: 1.3rem;
    }

    .domain-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (max-width: 700px) {
    .ideas-page-copy {
      padding: 3rem 0 1.2rem;
    }

    .ideas-page-art {
      display: none;
    }

    .ideas-metrics-grid,
    .domain-grid,
    .patent-card-grid,
    .publication-grid {
      grid-template-columns: 1fr;
    }

    .ideas-metric {
      border-right: 0;
      border-bottom: 1px solid var(--line);
    }

    .ideas-metric:last-child {
      border-bottom: 0;
    }

    .philosophy-panel {
      padding: 1.5rem;
    }

    .patent-card,
    .publication-card {
      grid-template-columns: 1fr;
    }

    .publication-mark {
      width: 80px;
      min-height: 80px;
    }

    .ideas-page-cta-inner {
      display: grid;
    }
  }

/* Production hardening */
:root { color-scheme: light; }
html { scroll-padding-top: 84px; }
body { min-width: 0; overflow-x: hidden; }
section[id], div[id], article[id] { scroll-margin-top: 84px; }
a, button, label { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, label:focus-visible {
  outline: 3px solid rgba(183,124,38,.72);
  outline-offset: 4px;
}
.hero-photo img { aspect-ratio: 1536 / 1137; }
.projects-hero-art .project-network,
.projects-hero-art .project-orbits {
  stroke: #d79a40 !important;
}
.project-card, .publication-card, .patent-card, .domain-card,
.current-card, .journey-event { min-width: 0; }
.project-card h3, .project-summary, .project-card dd,
.publication-card h3, .publication-card p,
.patent-card h3, .patent-card p { overflow-wrap: break-word; }
.mobile-menu-checkbox:focus-visible + .mobile-menu-label {
  outline: 3px solid rgba(183,124,38,.72);
  outline-offset: 3px;
}
@media (max-width: 850px) {
  body.menu-open { overflow: hidden; }
  .site-header { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
  .site-nav { max-height: calc(100vh - 62px); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Final responsive correction */
html,
body {
  min-width: 0 !important;
  max-width: 100%;
  overflow-x: hidden;
}

.container {
  width: var(--container) !important;
  max-width: 100% !important;
}

.site-header {
  position: sticky !important;
  top: 0;
}

.hero-grid,
.projects-hero-grid,
.journey-page-hero-grid,
.ideas-page-hero-grid {
  min-width: 0;
}

.hero-copy,
.hero-photo,
.projects-hero-copy,
.projects-hero-art,
.journey-page-copy,
.journey-page-art,
.ideas-page-copy,
.ideas-page-art {
  min-width: 0;
}

@media (min-width: 1051px) {
  .lower-grid {
    grid-template-columns: .95fr 1.2fr .85fr !important;
  }
}

@media (max-width: 1050px) {
  .header-inner {
    position: relative !important;
    min-height: 62px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 1rem !important;
  }

  .brand {
    min-width: 0;
    font-size: 1.55rem !important;
    white-space: nowrap;
  }

  .mobile-menu-checkbox {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .mobile-menu-label {
    display: grid !important;
    justify-self: end !important;
    align-content: center !important;
    width: 42px !important;
    height: 42px !important;
    padding: 8px !important;
    cursor: pointer !important;
    z-index: 125 !important;
  }

  .mobile-menu-label span {
    display: block !important;
    width: 24px !important;
    height: 2px !important;
    margin: 3px auto !important;
    background: var(--ink) !important;
    transition: transform .2s ease !important;
  }

  .site-nav {
    display: none !important;
    position: absolute !important;
    top: 62px !important;
    left: -14px !important;
    right: -14px !important;
    z-index: 120 !important;
    flex-direction: column !important;
    gap: 0 !important;
    max-height: calc(100vh - 62px);
    overflow-y: auto;
    padding: 10px 14px 14px !important;
    background: rgba(246,241,232,.99) !important;
    border-top: 1px solid var(--line) !important;
    border-bottom: 1px solid var(--line) !important;
    box-shadow: 0 12px 24px rgba(13,32,56,.12) !important;
  }

  .site-nav a {
    display: block !important;
    padding: 12px 2px !important;
    border-bottom: 1px solid var(--line) !important;
    font-size: .76rem !important;
    letter-spacing: .065em !important;
  }

  .site-nav a:last-child {
    border-bottom: 0 !important;
  }

  #mobile-menu-toggle:checked ~ .site-nav {
    display: flex !important;
  }

  #mobile-menu-toggle:checked + .mobile-menu-label span:first-child {
    transform: translateY(4px) rotate(45deg) !important;
  }

  #mobile-menu-toggle:checked + .mobile-menu-label span:last-child {
    transform: translateY(-4px) rotate(-45deg) !important;
  }

  .social-links {
    display: none !important;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .hero-copy {
    padding: 3rem 2rem 3rem 0 !important;
  }

  .hero h1 {
    max-width: none !important;
    font-size: clamp(2.9rem, 6vw, 4rem) !important;
  }

  .hero-photo {
    width: 100%;
    min-height: 430px !important;
  }

  .metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .timeline::before {
    display: none !important;
  }

  .principle-grid,
  .industry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .patent-grid,
  .lower-grid {
    grid-template-columns: 1fr !important;
  }

  .lower-grid > div {
    border-right: 0 !important;
    border-bottom: 1px solid var(--line) !important;
  }
}

@media (max-width: 700px) {
  :root {
    --container: calc(100% - 28px);
  }

  .hero-grid {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  .hero-copy {
    padding: 2.55rem 0 2rem !important;
  }

  .hero h1 {
    max-width: none !important;
    margin-bottom: 1.1rem !important;
    font-size: clamp(2.65rem, 13vw, 3.35rem) !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
  }

  .hero-copy p {
    max-width: none !important;
    font-size: .96rem !important;
    line-height: 1.58 !important;
  }

  .hero-actions {
    display: grid !important;
    justify-items: start;
    gap: 1rem !important;
    margin-top: 1.5rem !important;
  }

  .hero-actions .button {
    max-width: 100%;
    white-space: normal;
  }

  .hero-photo {
    width: 100% !important;
    min-height: 350px !important;
    height: 350px !important;
  }

  .hero-photo::before {
    background: linear-gradient(180deg, var(--paper-soft), transparent 18%) !important;
  }

  .hero-photo img {
    width: 100% !important;
    height: 100% !important;
    object-position: 66% 38% !important;
  }

  .metrics,
  .timeline,
  .principle-grid,
  .industry-grid,
  .lower-grid {
    grid-template-columns: 1fr !important;
  }

  .metric,
  .principle {
    border-right: 0 !important;
    border-bottom: 1px solid var(--line) !important;
  }

  .industries .section-head,
  .section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .35rem !important;
  }

  .industries .section-head > a,
  .section-head > a {
    margin: -8px 0 18px !important;
    justify-self: start;
  }

  .page-hero-title,
  .projects-hero h1 {
    max-width: 100%;
    font-size: clamp(2.7rem, 13vw, 3.35rem) !important;
    overflow-wrap: break-word;
  }

  .projects-hero-copy,
  .journey-page-copy,
  .ideas-page-copy {
    padding-top: 2.7rem !important;
  }

  .projects-hero-grid,
  .journey-page-hero-grid,
  .ideas-page-hero-grid {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  .projects-hero-art,
  .journey-page-art,
  .ideas-page-art {
    display: none !important;
  }

  .page-actions,
  .projects-cta-inner,
  .journey-page-cta-inner,
  .ideas-page-cta-inner {
    display: grid !important;
    justify-items: start;
  }

  .site-footer .footer-inner {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
  }
}

/* Mobile homepage journey timeline correction */
@media (max-width: 700px) {
  .journey h2.section-heading {
    font-size: 13px !important;
    line-height: 1.35 !important;
    letter-spacing: .12em !important;
    margin-bottom: 24px !important;
  }

  .timeline {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.55rem !important;
  }

  .timeline::before {
    display: none !important;
  }

  .timeline-item {
    display: grid !important;
    grid-template-columns: 56px 58px minmax(0, 1fr) !important;
    column-gap: .9rem !important;
    row-gap: .2rem !important;
    align-items: start !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  .timeline-item .year {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    margin: .7rem 0 0 !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .timeline-icon {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    width: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    place-self: start center !important;
  }

  .timeline-icon svg {
    width: 46px !important;
    height: 46px !important;
  }

  .timeline-item h3 {
    grid-column: 3 !important;
    grid-row: 1 !important;
    margin: .05rem 0 .3rem !important;
    font-size: 1.42rem !important;
    line-height: 1.08 !important;
    text-align: left !important;
    overflow-wrap: normal !important;
  }

  .timeline-item p {
    grid-column: 3 !important;
    grid-row: 2 !important;
    max-width: none !important;
    margin: 0 !important;
    font-size: .98rem !important;
    line-height: 1.48 !important;
    text-align: left !important;
  }

  .journey .center-link {
    margin-top: 1.9rem !important;
    text-align: left !important;
  }
}

@media (max-width: 380px) {
  .timeline-item {
    grid-template-columns: 50px 50px minmax(0, 1fr) !important;
    column-gap: .7rem !important;
  }

  .timeline-icon {
    width: 46px !important;
    height: 46px !important;
  }

  .timeline-icon svg {
    width: 42px !important;
    height: 42px !important;
  }

  .timeline-item h3 {
    font-size: 1.28rem !important;
  }

  .timeline-item p {
    font-size: .92rem !important;
  }
}

/* Journey chronology: preserve a clear gutter around the timeline marker */
@media (max-width: 700px) {
  .journey-event {
    grid-template-columns: 62px minmax(0, 1fr) !important;
    column-gap: 1.25rem !important;
  }

  .journey-event > div {
    min-width: 0;
  }

  .chapter-events::before {
    left: 82px !important;
  }

  .journey-event::before {
    left: 75px !important;
    top: 25px !important;
  }

  .event-type {
    padding-left: .1rem;
    line-height: 1.35;
  }
}

@media (max-width: 380px) {
  .journey-event {
    grid-template-columns: 56px minmax(0, 1fr) !important;
    column-gap: 1.15rem !important;
  }

  .chapter-events::before {
    left: 75px !important;
  }

  .journey-event::before {
    left: 68px !important;
  }
}

/* Homepage patent domains: show full labels on phones */
@media (max-width: 760px) {
  .showcase-domain-row {
    grid-template-columns: 36px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: .85rem !important;
    row-gap: .35rem !important;
    min-height: 0 !important;
    padding: 14px 0 !important;
    align-items: start !important;
  }

  .showcase-domain-icon {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: start !important;
    padding-top: .15rem;
  }

  .showcase-domain-icon svg {
    width: 28px !important;
    height: 28px !important;
  }

  .showcase-domain-title {
    grid-column: 2 !important;
    grid-row: 1 !important;
    overflow: visible !important;
    font-size: 1.15rem !important;
    line-height: 1.22 !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .showcase-domain-action {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .showcase-domain-motif {
    display: none !important;
  }
}

@media (max-width: 380px) {
  .showcase-domain-title {
    font-size: 1.05rem !important;
  }
}

/* v6: keep compact section labels on one line on phones */
@media (max-width: 700px) {
  h2.section-heading,
  .portfolio-strip h2.section-heading,
  .journey h2.section-heading,
  .patent-intro h2.section-heading,
  .principles h2.section-heading,
  .industries h2.section-heading,
  .lower h2.section-heading,
  .section-head h2.section-heading {
    max-width: 100% !important;
    margin-bottom: 20px !important;
    font-size: clamp(10px, 2.85vw, 12px) !important;
    line-height: 1.15 !important;
    letter-spacing: .075em !important;
    white-space: nowrap !important;
  }

  .current-portfolio .section-head p,
  .selected-projects .section-head p {
    max-width: 100% !important;
    font-size: clamp(8.5px, 2.35vw, 10.5px) !important;
    line-height: 1.2 !important;
    letter-spacing: .045em !important;
    white-space: nowrap !important;
  }

  .selected-projects .section-head,
  .current-portfolio .section-head {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .35rem !important;
  }
}

/* v6: Journey chronology line remains visible through the card gutter */
.chapter-events {
  isolation: isolate;
}

.chapter-events::before {
  z-index: 3 !important;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    transparent 0,
    var(--line) 18px,
    var(--line) calc(100% - 18px),
    transparent 100%
  ) !important;
}

.journey-event {
  z-index: 1;
  overflow: visible;
}

.journey-event::before {
  z-index: 5 !important;
}

.event-year,
.journey-event > div {
  position: relative;
  z-index: 4;
}

/* v7: continue the homepage Journey timeline vertically on phones */
@media (max-width: 700px) {
  .journey .timeline {
    position: relative !important;
    isolation: isolate;
  }

  .journey .timeline::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: calc(56px + .9rem + 29px) !important;
    top: 26px !important;
    bottom: 26px !important;
    width: 1px !important;
    height: auto !important;
    background: var(--line) !important;
    z-index: 0 !important;
    pointer-events: none;
  }

  .journey .timeline-item {
    position: relative !important;
    z-index: 1 !important;
  }

  .journey .timeline-icon {
    position: relative !important;
    z-index: 2 !important;
    background: var(--paper) !important;
    border-radius: 50%;
  }

  .journey .timeline-item .year,
  .journey .timeline-item h3,
  .journey .timeline-item p {
    position: relative;
    z-index: 2;
  }
}

@media (max-width: 380px) {
  .journey .timeline::before {
    left: calc(50px + .7rem + 25px) !important;
    top: 23px !important;
    bottom: 23px !important;
  }
}
