:root{--ink:#101510;--muted:#647064;--paper:#fbfcf9;--line:#e4eade;--green:#3f7d18;--green-dark:#234d12;--lime:#c6e68f;--night:#09130e;--sans:Inter,Arial,sans-serif;--mono:"JetBrains Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}a{color:inherit}.site-header{width:min(1740px,calc(100% - 80px));height:88px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;gap:0;font-size:15px;font-weight:800;letter-spacing:.22em;line-height:.82;text-decoration:none}.brand span+span{font-size:12px;letter-spacing:.29em}.site-header nav{display:flex;gap:38px}.site-header nav a{font-size:13px;font-weight:700;text-decoration:none}.site-header nav a:hover,.text-link:hover{color:var(--green)}.header-cta{font-size:13px;font-weight:800;text-decoration:none;background:var(--green);color:#fff;padding:13px 17px}.header-cta b,.button b{font-size:18px;margin-left:8px}.hero-shell{width:min(1740px,calc(100% - 80px));min-height:665px;margin:auto;display:grid;grid-template-columns:minmax(380px,.75fr) minmax(640px,1.25fr);align-items:center;gap:clamp(40px,6vw,140px);position:relative;padding:66px 0 82px}.hero-copy{position:relative;z-index:1}.eyebrow{margin:0 0 22px;color:var(--green);font:600 11px var(--mono);letter-spacing:.03em}.hero-copy h1{font-size:clamp(54px,5.2vw,94px);line-height:.98;letter-spacing:-.075em;margin:0;max-width:760px}.hero-copy h1 em{font-style:normal;color:var(--green)}.lede{font-size:18px;line-height:1.75;color:var(--muted);max-width:535px;margin:29px 0 34px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;font-size:13px;font-weight:800;text-decoration:none}.button-primary{background:var(--green);color:#fff}.button-quiet{border:1px solid #b9cbb1;color:var(--ink)}.hero-visual{align-self:stretch;min-height:500px;display:flex;align-items:center;overflow:hidden}.hero-visual img{width:126%;max-width:none;height:auto;margin-left:-18%;mix-blend-mode:multiply}.hero-note{position:absolute;bottom:23px;left:0;right:0;display:flex;justify-content:space-between;color:#859180;font:500 10px var(--mono);letter-spacing:.04em}.intro{width:min(1270px,calc(100% - 80px));margin:0 auto;padding:135px 0 66px;display:grid;grid-template-columns:.38fr 1fr;gap:8vw;border-top:1px solid var(--line)}.intro h2,.systems h2,.webcatalogue h2,.approach h2,.contact h2{font-size:clamp(35px,4vw,64px);letter-spacing:-.065em;line-height:1.04;margin:0}.intro p:not(.eyebrow){color:var(--muted);font-size:18px;line-height:1.75;max-width:720px;margin:26px 0 0}.capability-rail{width:min(1640px,calc(100% - 80px));margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.capability-rail article{padding:35px 30px 39px 0;border-right:1px solid var(--line)}.capability-rail article+article{padding-left:30px}.capability-rail article:last-child{border-right:0}.capability-rail span,.approach ol span{font:600 11px var(--mono);color:var(--green)}.capability-rail h3{font-size:19px;letter-spacing:-.04em;margin:28px 0 11px}.capability-rail p{font-size:14px;line-height:1.65;color:var(--muted);margin:0}.systems{margin:clamp(95px,11vw,180px) auto;width:min(1740px,calc(100% - 80px));min-height:570px;background:var(--night);color:#fff;display:grid;grid-template-columns:1.18fr .82fr;align-items:center;overflow:hidden}.systems-image{align-self:stretch;overflow:hidden}.systems-image img{width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:screen;opacity:.93}.systems-copy{padding:clamp(45px,6vw,110px);position:relative}.systems-copy .eyebrow{color:var(--lime)}.systems-copy p:not(.eyebrow){color:#bfcbc1;line-height:1.75;margin:27px 0}.systems-copy ul{padding:0;margin:31px 0 0;list-style:none;border-top:1px solid rgba(255,255,255,.16)}.systems-copy li{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:14px}.systems-copy li::before{content:"â†—";color:var(--lime);margin-right:12px}.webcatalogue{width:min(1540px,calc(100% - 80px));margin:0 auto;padding:30px 0 clamp(105px,12vw,195px);display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(38px,7vw,130px);align-items:center}.webcatalogue-copy p:not(.eyebrow){color:var(--muted);line-height:1.75;margin:27px 0 30px}.text-link{font-size:14px;font-weight:800;text-decoration:none}.text-link b{color:var(--green);font-size:21px;margin-left:8px}.webcatalogue-image{min-height:425px;display:flex;align-items:center;overflow:hidden}.webcatalogue-image img{width:120%;max-width:none;height:auto;margin-left:-9%;mix-blend-mode:multiply}.approach{width:min(1740px,calc(100% - 80px));margin:auto;padding:clamp(74px,8vw,132px);position:relative;overflow:hidden;background:#f0f6e9;display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(38px,7vw,120px)}.approach-copy{position:relative;z-index:1}.approach-copy p:not(.eyebrow){color:var(--muted);line-height:1.7;max-width:390px}.approach ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);position:relative;z-index:1;border-top:1px solid #d5e2ca}.approach li{padding:25px 25px 24px 0;border-bottom:1px solid #d5e2ca}.approach li:nth-child(odd){border-right:1px solid #d5e2ca}.approach li:nth-child(even){padding-left:25px}.approach h3{font-size:20px;letter-spacing:-.04em;margin:25px 0 8px}.approach li p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.approach-art{position:absolute;width:57%;right:-13%;bottom:-45%;opacity:.15;mix-blend-mode:multiply;pointer-events:none}.contact{width:min(1270px,calc(100% - 80px));padding:clamp(105px,13vw,190px) 0;margin:auto}.contact h2{max-width:850px}.contact p:not(.eyebrow){max-width:590px;color:var(--muted);line-height:1.75;margin:28px 0 34px}footer{width:min(1740px,calc(100% - 80px));margin:auto;padding:30px 0;display:flex;align-items:center;gap:35px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer p{margin:0}footer>span{margin-left:auto}@media(max-width:1000px){.site-header,.hero-shell,.intro,.capability-rail,.systems,.webcatalogue,.approach,.contact,footer{width:calc(100% - 48px)}.site-header nav{gap:18px}.hero-shell{grid-template-columns:1fr;gap:10px;padding-top:54px}.hero-visual{min-height:380px;order:-1}.hero-visual img{width:112%;margin-left:-7%}.intro{grid-template-columns:1fr;padding-top:86px;gap:15px}.capability-rail{grid-template-columns:repeat(2,1fr)}.capability-rail article:nth-child(2){border-right:0}.capability-rail article:nth-child(n+3){border-top:1px solid var(--line)}.systems,.webcatalogue,.approach{grid-template-columns:1fr}.systems-image{min-height:360px}.webcatalogue-image{order:-1}.approach-art{width:90%}.contact{padding:105px 0}}@media(max-width:640px){.site-header{height:74px}.site-header nav{display:none}.header-cta{padding:10px 12px;font-size:11px}.brand{font-size:13px}.hero-shell{padding-top:30px;min-height:0}.hero-copy h1{font-size:53px}.lede{font-size:16px}.hero-visual{min-height:260px}.hero-visual img{width:140%;margin-left:-19%}.hero-note{display:none}.intro{padding-top:72px}.intro p:not(.eyebrow){font-size:16px}.capability-rail{grid-template-columns:1fr}.capability-rail article,.capability-rail article+article{padding:25px 0;border-right:0;border-top:1px solid var(--line)}.capability-rail article:first-child{border-top:0}.systems,.approach{margin-left:0;margin-right:0;width:100%}.systems-copy,.approach{padding:55px 24px}.systems-image{min-height:260px}.webcatalogue{padding-top:75px}.webcatalogue-image{min-height:260px}.approach ol{grid-template-columns:1fr}.approach li:nth-child(odd){border-right:0}.approach li:nth-child(even){padding-left:0}.contact{padding:86px 0}footer{flex-wrap:wrap;gap:16px}footer>span{margin-left:0}}

.brand{flex-direction:row;align-items:center;gap:9px;letter-spacing:0}.brand-symbol{width:23px;height:23px;display:grid;place-items:center;border:1.5px solid var(--green);color:var(--green);font:700 15px/1 var(--sans)}.brand-name{display:flex!important;flex-direction:column;gap:1px;line-height:.8}.brand-name b{font-size:12px;letter-spacing:.2em}.brand-name b+ b{font-size:10px;letter-spacing:.24em}.intro-graphic{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:39px;color:var(--green-dark);font:600 10px var(--mono);letter-spacing:.03em}.intro-graphic span{padding:9px 10px;border:1px solid #cfddc6;background:#f6faf2}.intro-graphic i{width:27px;height:1px;background:linear-gradient(90deg,#9dc27c,var(--green));position:relative}.intro-graphic i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border:1px solid var(--green);background:var(--paper);border-radius:50%}.systems-image{position:relative;z-index:2}.systems-image img{object-position:left center;transform:translateX(-8%);width:113%;max-width:none}.systems-copy{z-index:3}.webcatalogue-image{overflow:visible}.webcatalogue-image img{width:100%;max-width:100%;height:auto;margin:0;object-fit:contain;image-rendering:auto}.approach{isolation:isolate}.approach-art{width:68%;right:-8%;bottom:-21%;opacity:.48;mix-blend-mode:multiply;z-index:-1;object-fit:contain}.contact{position:relative;overflow:hidden}.contact-graphic{height:50px;width:min(580px,75%);display:flex;align-items:center;gap:0;margin:0 0 33px}.contact-graphic span{width:20px;height:20px;border-radius:50%;border:2px solid var(--green);background:var(--paper);box-shadow:0 0 0 7px rgba(63,125,24,.07)}.contact-graphic span:nth-of-type(2){width:30px;height:30px;background:var(--green);box-shadow:0 0 0 9px rgba(63,125,24,.12)}.contact-graphic span:nth-of-type(3){width:17px;height:17px;border-color:#8bb46c}.contact-graphic i{height:1px;flex:1;background:linear-gradient(90deg,var(--green),#c7dfb9);position:relative}.contact-graphic i::before{content:"";position:absolute;left:45%;top:-3px;width:7px;height:7px;background:#9cc781;border-radius:50%}.contact .button{position:relative;z-index:1}.hero-note{color:#657563}@media(max-width:640px){.intro-graphic{gap:8px}.intro-graphic i{width:15px}.intro-graphic span{font-size:9px;padding:8px}.systems-image img{transform:translateX(-3%);width:106%}.approach-art{width:115%;right:-30%;bottom:-8%;opacity:.35}.contact-graphic{width:100%}}

.systems-image{overflow:hidden}.systems-image img{width:100%;max-width:100%;height:100%;object-fit:contain;object-position:left center;transform:none!important}@media(max-width:640px){.systems-image img{width:100%;height:100%;transform:none!important}}

.systems-image{overflow:hidden}.systems-image img{width:calc(100% + 50px)!important;max-width:none!important;height:100%;object-fit:cover;object-position:left center;transform:none!important}@media(max-width:640px){.systems-image img{width:100%!important;max-width:100%!important;object-fit:cover;object-position:left center}}

.hero-visual img{width:100%;height:100%;min-height:0;margin:0;object-fit:contain;object-position:right center;mix-blend-mode:normal;filter:none}

.site-header .brand{gap:11px}.site-header .brand-symbol{width:34px;height:34px;font-size:20px;border-width:2px}.site-header .brand-name b{font-size:15px;letter-spacing:.22em}.site-header .brand-name b+b{font-size:11px;letter-spacing:.29em}@media(max-width:640px){.site-header .brand-symbol{width:29px;height:29px;font-size:17px}.site-header .brand-name b{font-size:13px}.site-header .brand-name b+b{font-size:10px}}

.platform-index{width:min(1540px,calc(100% - 80px));margin:clamp(95px,11vw,175px) auto 0;display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(45px,8vw,145px);padding-bottom:clamp(92px,11vw,170px);border-bottom:1px solid var(--line)}.platform-index-intro{position:sticky;top:35px;align-self:start}.platform-index h2{font-size:clamp(33px,3.7vw,58px);line-height:1.05;letter-spacing:-.065em;margin:0}.platform-index-intro>p:not(.eyebrow){max-width:380px;margin:24px 0 0;color:var(--muted);line-height:1.7}.platform-list{border-top:1px solid var(--line)}.platform-list article{display:grid;grid-template-columns:54px 1fr auto;gap:20px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line)}.platform-list article>span{font:600 11px var(--mono);color:var(--green)}.platform-list h3{font-size:19px;letter-spacing:-.035em;margin:0 0 6px}.platform-list p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}.platform-list b{font:600 10px var(--mono);letter-spacing:.04em;color:var(--green-dark);padding:8px 9px;background:#f1f7ea;white-space:nowrap}@media(max-width:1000px){.platform-index{width:calc(100% - 48px);grid-template-columns:1fr;gap:42px}.platform-index-intro{position:static}}@media(max-width:640px){.platform-index{width:calc(100% - 48px);margin-top:78px}.platform-list article{grid-template-columns:35px 1fr;gap:12px;padding:19px 0}.platform-list b{display:none}.platform-list h3{font-size:18px}}

.site-header nav{gap:20px}.site-header nav a{font-size:12px}.approach::after{content:"";position:absolute;right:3%;bottom:4%;width:45%;height:54%;opacity:.45;pointer-events:none;background:radial-gradient(circle at 10% 82%,var(--green) 0 4px,transparent 5px),radial-gradient(circle at 37% 58%,var(--green) 0 5px,transparent 6px),radial-gradient(circle at 64% 35%,var(--green) 0 5px,transparent 6px),radial-gradient(circle at 91% 13%,var(--green) 0 4px,transparent 5px),linear-gradient(145deg,transparent 0 18%,#b8d7a5 18.2% 18.6%,transparent 18.8% 39%,#b8d7a5 39.2% 39.6%,transparent 39.8% 61%,#b8d7a5 61.2% 61.6%,transparent 61.8%);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);z-index:0}.research-notes{width:min(1540px,calc(100% - 80px));margin:0 auto;padding:clamp(100px,12vw,180px) 0;display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(45px,8vw,145px);border-top:1px solid var(--line)}.research-notes h2,.insights h2,.about h2{font-size:clamp(34px,3.8vw,60px);line-height:1.05;letter-spacing:-.065em;margin:0}.research-notes-list{border-top:1px solid var(--line)}.research-notes-list article{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:25px 0;border-bottom:1px solid var(--line)}.research-notes-list span{font:600 11px var(--mono);color:var(--green)}.research-notes-list h3{margin:0 0 8px;font-size:20px;letter-spacing:-.04em}.research-notes-list p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}.insights{width:min(1540px,calc(100% - 80px));margin:clamp(95px,11vw,175px) auto 0;padding-top:clamp(70px,8vw,120px);border-top:1px solid var(--line)}.insights-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px}.insights-heading h2{max-width:730px}.insights-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:58px;border-top:1px solid var(--line)}.insights-list article{padding:28px 30px 26px 0;border-right:1px solid var(--line)}.insights-list article+article{padding-left:30px}.insights-list article:last-child{border-right:0}.insights-list span{font:600 10px var(--mono);color:var(--green);letter-spacing:.04em}.insights-list h3{font-size:22px;line-height:1.18;letter-spacing:-.045em;margin:28px 0 13px}.insights-list p{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 24px}.insights-list a{font-size:13px;font-weight:800;text-decoration:none}.insights-list a b{font-size:19px;color:var(--green);margin-left:7px}.about{width:min(1270px,calc(100% - 80px));margin:clamp(100px,12vw,185px) auto 0;padding:clamp(65px,8vw,120px) 0;display:grid;grid-template-columns:.38fr 1fr;gap:8vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about>div>p{font-size:18px;line-height:1.75;color:var(--muted);max-width:710px;margin:25px 0 0}@media(max-width:1200px){.site-header nav{gap:13px}.site-header nav a{font-size:11px}}@media(max-width:1000px){.research-notes,.insights,.about{width:calc(100% - 48px);grid-template-columns:1fr}.research-notes{gap:42px}.insights-heading{display:block}.insights-heading .eyebrow{margin-bottom:19px}.about{gap:15px}.approach::after{width:70%;right:-12%;bottom:5%}}@media(max-width:640px){.research-notes,.insights,.about{width:calc(100% - 48px);padding-top:76px}.insights-list{grid-template-columns:1fr;margin-top:38px}.insights-list article,.insights-list article+article{padding:25px 0;border-right:0;border-bottom:1px solid var(--line)}.research-notes-list article{grid-template-columns:35px 1fr;gap:12px}.approach::after{width:95%;right:-31%;opacity:.3}}

.research-notes-list p{grid-column:2}.about-intro{margin-top:0;border-top:0}.about-intro+.intro{padding-top:clamp(95px,11vw,170px)}@media(max-width:640px){.research-notes-list p{grid-column:2}.about-intro+.intro{padding-top:76px}}

.site-header .brand-symbol{width:40px;height:40px;font-size:40px;border-width:2px}.site-header .brand-name b{font-size:20px;letter-spacing:.22em}.site-header .brand-name b+b{font-size:20px;letter-spacing:.29em}

.site-header nav a{font-size:18px}

/* Platform illustrations: compact, transparent and subordinate to the content. */
.platform-list article {
  grid-template-columns: 54px 92px minmax(0, 1fr) auto;
  align-items: center;
}

.platform-art {
  display: block;
  width: 82px;
  height: 66px;
  object-fit: contain;
  object-position: center;
  filter: saturate(.9) contrast(.98);
  transition: transform .25s ease, filter .25s ease;
}

.platform-list article:hover .platform-art {
  transform: translateX(3px) scale(1.04);
  filter: saturate(1.08) contrast(1.02);
}

@media (max-width: 760px) {
  .platform-list article { grid-template-columns: 32px 64px minmax(0, 1fr); gap: 12px; }
  .platform-list article > b { display: none; }
  .platform-art { width: 60px; height: 48px; }
}

/* WCAG AA contrast: text and small metadata retain the original visual hierarchy. */
:root {
  --muted: #4d5e4e;
  --green: #2e6b15;
  --green-dark: #1d4b0e;
}

.hero-note { color: #526653; }
.systems-copy p:not(.eyebrow) { color: #d2ddd2; }

.contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
  max-width: 820px;
  padding-top: 6px;
}

.contact-form-field { display: grid; gap: 8px; }
.contact-form-field-wide { grid-column: 1 / -1; }
.contact-form label { color: var(--ink); font-size: 14px; font-weight: 800; }
.contact-form label span, .contact-form-note { color: var(--muted); font-weight: 500; }
.contact-form input, .contact-form textarea {
  width: 100%;
  border: 1px solid #9aac99;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  font: 500 16px/1.45 var(--sans);
  padding: 13px 14px;
}
.contact-form textarea { min-height: 118px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus {
  outline: 3px solid rgba(46, 107, 21, .28);
  outline-offset: 2px;
  border-color: var(--green-dark);
}
.contact-form .button { width: max-content; border: 0; cursor: pointer; }
.contact-form-note { align-self: center; margin: 0; font-size: 13px; line-height: 1.5; }

@media (max-width: 640px) {
  .contact-form { grid-template-columns: 1fr; gap: 16px; }
  .contact-form-field-wide { grid-column: auto; }
  .contact-form .button { width: 100%; }
}

/* Section imagery is embedded into the existing editorial structure. */
.about { position: relative; }
.about-art { position: absolute; right: -10px; bottom: 30px; width: min(23vw, 260px); height: auto; object-fit: contain; opacity: .92; }
.intro > div { position: relative; }
.intro-art { position: absolute; right: -20px; top: -44px; width: min(19vw, 220px); height: auto; object-fit: contain; opacity: .88; pointer-events: none; }
.intro > div > h2, .intro > div > p, .intro-graphic { position: relative; z-index: 1; }

.capability-rail article { position: relative; overflow: hidden; min-height: 244px; }
.capability-rail article > img { position: absolute; right: 5px; top: 9px; width: 112px; height: 84px; object-fit: contain; opacity: .54; pointer-events: none; }
.capability-rail article > span, .capability-rail article > h3, .capability-rail article > p { position: relative; z-index: 1; }
.capability-rail h3 { margin-top: 54px; }

.research-notes-list article { position: relative; padding-right: 142px; }
.research-notes-list article > img { position: absolute; right: 0; top: 14px; width: 108px; height: 82px; object-fit: contain; opacity: .82; }

.insights-list article { position: relative; overflow: hidden; min-height: 282px; }
.insights-list article > img { display: block; width: 92px; height: 66px; margin: -4px 0 21px auto; object-fit: contain; opacity: .82; }
.insights-list h3 { margin-top: 0; }

.contact-art { position: absolute; right: 0; bottom: 26px; width: min(30vw, 390px); height: auto; object-fit: contain; opacity: .88; pointer-events: none; }
.contact > :not(.contact-art) { position: relative; z-index: 1; }

@media (max-width: 1000px) {
  .about-art { position: static; display: block; width: 190px; margin: 24px 0 0 auto; }
  .intro-art { right: 0; width: 170px; opacity: .45; }
  .contact-art { width: 230px; opacity: .3; }
}

@media (max-width: 640px) {
  .intro-art { display: none; }
  .capability-rail article { min-height: 210px; }
  .capability-rail article > img { width: 100px; opacity: .35; }
  .research-notes-list article { padding-right: 84px; }
  .research-notes-list article > img { width: 68px; height: 58px; opacity: .58; }
  .insights-list article > img { width: 78px; height: 55px; }
  .contact-art { display: none; }
}

/* Give the platform illustrations the scale their detail deserves. */
.platform-list article {
  grid-template-columns: 54px 178px minmax(0, 1fr) auto;
  min-height: 142px;
  padding: 16px 0;
}

.platform-art {
  width: 164px;
  height: 116px;
  filter: saturate(.96) contrast(1);
}

.platform-list h3 { font-size: 22px; margin-bottom: 9px; }
.platform-list p { font-size: 15px; max-width: 520px; }
.platform-list b { font-size: 11px; padding: 9px 11px; }

@media (max-width: 760px) {
  .platform-list article { grid-template-columns: 30px 104px minmax(0, 1fr); min-height: 104px; gap: 12px; }
  .platform-art { width: 96px; height: 74px; }
  .platform-list h3 { font-size: 18px; margin-bottom: 5px; }
  .platform-list p { font-size: 13px; }
}

/* Unique compositional crops retain their own character on the paper canvas. */
.capability-rail article > img,
.research-notes-list article > img,
.insights-list article > img {
  border-radius: 2px;
  mix-blend-mode: multiply;
}
.capability-rail article > img { opacity: .62; }
.research-notes-list article > img { opacity: .88; }
.insights-list article > img { opacity: .88; }

/* Clean transparent assets: retain their complete silhouette and sit in the document flow. */
.about { grid-template-columns: .32fr minmax(0, 1fr) minmax(210px, 300px); align-items: center; }
.about-art { position: static; width: 100%; max-width: 300px; height: auto; margin: 0; transform: none; object-fit: contain; justify-self: end; align-self: center; opacity: 1; }

.intro > div { display: grid; grid-template-columns: minmax(0, 1fr) 230px; column-gap: 30px; align-items: center; }
.intro > div > h2, .intro > div > p, .intro-graphic { grid-column: 1; }
.intro-art { position: static; grid-column: 2; grid-row: 1 / span 3; width: 100%; height: auto; opacity: 1; transform: none; object-fit: contain; pointer-events: auto; }

.capability-rail article { min-height: 0; padding-top: 25px; }
.capability-rail article > img { position: static; display: block; width: 122px; height: 92px; margin: 0 0 14px auto; opacity: 1; object-fit: contain; }
.capability-rail h3 { margin-top: 0; }

.research-notes-list article { grid-template-columns: 52px minmax(0, 1fr) 142px; padding-right: 0; align-items: center; }
.research-notes-list article > img { position: static; grid-column: 3; grid-row: 1 / span 2; width: 132px; height: 102px; margin: 0; opacity: 1; object-fit: contain; }
.research-notes-list p { grid-column: 2; }

.insights-list article > img { width: 126px; height: 94px; margin: 0 0 18px auto; opacity: 1; object-fit: contain; }
.contact-art { width: min(29vw, 340px); height: auto; right: 0; bottom: 54px; opacity: 1; object-fit: contain; }

@media (max-width: 1000px) {
  .about { grid-template-columns: 1fr; }
  .about-art { width: 210px; margin: 24px 0 0 auto; }
  .intro > div { grid-template-columns: 1fr 160px; }
  .research-notes-list article { grid-template-columns: 42px minmax(0, 1fr) 100px; }
  .research-notes-list article > img { width: 90px; height: 72px; }
}
@media (max-width: 640px) {
  .intro > div { display: block; }
  .intro-art { display: block; width: 160px; margin: 22px 0 0 auto; }
  .capability-rail article > img { width: 108px; height: 82px; }
  .research-notes-list article { grid-template-columns: 35px minmax(0, 1fr) 74px; }
  .research-notes-list article > img { width: 66px; height: 58px; }
  .insights-list article > img { width: 110px; height: 82px; }
  .contact-art { display: block; position: static; width: 180px; margin: 30px 0 0 auto; }
}

/* Shared editorial grid: label, content, fixed visual area. */
.about,
.intro {
  grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr) 300px;
  column-gap: clamp(42px, 6vw, 110px);
  align-items: center;
}

.about > .eyebrow,
.intro > .eyebrow { grid-column: 1; align-self: start; margin-top: 10px; }
.about > div { grid-column: 2; }
.about-art,
.intro-art {
  width: 300px;
  height: 230px;
  object-fit: contain;
  justify-self: end;
  align-self: center;
}

.about { padding: clamp(76px, 9vw, 132px) 0; }
.about-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 24px 0 0;
  margin: 31px 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.about-points li { display: grid; gap: 7px; padding-right: 18px; }
.about-points li + li { padding-left: 18px; border-left: 1px solid var(--line); }
.about-points b { font-size: 13px; letter-spacing: -.02em; }
.about-points span { color: var(--muted); font-size: 12px; line-height: 1.55; }

/* Let the What we do content join the same parent grid without an extra layout. */
.intro > div { display: contents; }
.intro > div > h2,
.intro > div > p,
.intro > div > .intro-graphic { grid-column: 2; }
.intro > div > h2 { grid-row: 1; }
.intro > div > p { grid-row: 2; }
.intro > div > .intro-graphic { grid-row: 3; }
.intro-art { display: block; position: static; grid-column: 3; grid-row: 1 / span 3; margin: 0; opacity: 1; transform: none; }

/* Research uses the exact same numbered-image-content rhythm as Our Platforms. */
.research-notes-list article {
  grid-template-columns: 52px 178px minmax(0, 1fr);
  min-height: 142px;
  padding: 16px 0;
}
.research-notes-list article > img {
  grid-column: 2;
  grid-row: 1 / span 2;
  width: 164px;
  height: 116px;
  margin: 0;
  object-fit: contain;
}
.research-notes-list article > span { grid-column: 1; grid-row: 1; }
.research-notes-list article > h3 { grid-column: 3; grid-row: 1; align-self: end; margin: 0 0 7px; font-size: 22px; }
.research-notes-list article > p { grid-column: 3; grid-row: 2; align-self: start; font-size: 15px; }

@media (max-width: 1000px) {
  .about, .intro { grid-template-columns: 1fr 220px; gap: 28px; }
  .about > .eyebrow, .intro > .eyebrow { grid-column: 1 / -1; margin: 0; }
  .about > div { grid-column: 1; }
  .about-art { grid-column: 2; }
  .intro > div > h2, .intro > div > p, .intro > div > .intro-graphic { grid-column: 1; }
  .intro-art { grid-column: 2; }
  .about-art, .intro-art { width: 220px; height: 185px; }
}

@media (max-width: 640px) {
  .about, .intro { display: grid; grid-template-columns: 1fr; }
  .about > .eyebrow, .intro > .eyebrow, .about > div, .about-art, .intro > div > h2, .intro > div > p, .intro > div > .intro-graphic, .intro-art { grid-column: 1; grid-row: auto; }
  .about-art, .intro-art { width: min(230px, 70vw); height: 175px; justify-self: end; }
  .about-points { grid-template-columns: 1fr; gap: 15px; }
  .about-points li, .about-points li + li { padding: 0; border-left: 0; }
  .research-notes-list article { grid-template-columns: 30px 84px minmax(0, 1fr); min-height: 105px; gap: 12px; }
  .research-notes-list article > img { width: 76px; height: 64px; }
  .research-notes-list article > h3 { font-size: 18px; }
  .research-notes-list article > p { font-size: 13px; }
}

/* About and What we do use the same heading-first editorial composition. */
.about,
.intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(48px, 8vw, 140px);
  align-items: center;
}
.about > .about-copy,
.intro > .intro-copy { display: block; grid-column: 1; }
.about .eyebrow,
.intro .eyebrow { margin: 0 0 22px; }
.about h2,
.intro h2 { max-width: 760px; }
.about-copy > p:not(.eyebrow),
.intro-copy > p:not(.eyebrow) { max-width: 730px; margin: 22px 0 0; color: var(--muted); font-size: 17px; line-height: 1.72; }
.about-art,
.intro-art { position: static; display: block; grid-column: 2; width: 300px; height: 240px; margin: 0; opacity: 1; transform: none; object-fit: contain; justify-self: end; }
.about-points { max-width: 760px; }
.intro-graphic { margin-top: 31px; }

@media (max-width: 1000px) {
  .about, .intro { grid-template-columns: minmax(0, 1fr) 220px; gap: 34px; }
  .about-art, .intro-art { width: 220px; height: 185px; }
}
@media (max-width: 640px) {
  .about, .intro { grid-template-columns: 1fr; }
  .about > .about-copy, .intro > .intro-copy, .about-art, .intro-art { grid-column: 1; }
  .about-art, .intro-art { width: min(230px, 72vw); height: 180px; justify-self: end; }
}

/* The insights introduction follows the same label-first editorial hierarchy. */
.insights-heading { display: block; max-width: 760px; }
.insights-heading .eyebrow { margin: 0 0 22px; }
.insights-heading h2 { max-width: 700px; }
.insights-heading > p:not(.eyebrow) { max-width: 620px; margin: 22px 0 0; color: var(--muted); font-size: 17px; line-height: 1.72; }
.insights-list { margin-top: 52px; }

/* Keep the final call-to-action aligned to the editorial width above it. */
.contact { width: min(1540px, calc(100% - 80px)); }

@media (max-width: 1000px) {
  .contact { width: calc(100% - 48px); }
}

@media (max-width: 640px) {
  .contact { width: calc(100% - 48px); }
}

/* One shared wide container for all primary editorial sections. */
.about,
.intro,
.contact { width: min(1540px, calc(100% - 80px)); }

.menu-toggle { display: none; }

@media (max-width: 1000px) {
  .about, .intro, .contact { width: calc(100% - 48px); }
}

@media (max-width: 640px) {
  .site-header { position: relative; }
  .header-cta { display: none; }
  .menu-toggle {
    display: grid;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 1px solid var(--green);
    border-radius: 0;
    background: var(--paper);
    cursor: pointer;
    place-content: center;
    gap: 5px;
  }
  .menu-toggle span { display: block; width: 20px; height: 2px; background: var(--green-dark); transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-header nav {
    display: none;
    position: absolute;
    z-index: 20;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    padding: 14px 0 18px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    box-shadow: 0 16px 24px rgba(16, 21, 16, .08);
    flex-direction: column;
    gap: 0;
  }
  .site-header nav.is-open { display: flex; }
  .site-header nav a { padding: 13px 0; font-size: 17px; }
  .about, .intro, .contact { width: calc(100% - 48px); }
}

/* Mobile and tablet layout: a single readable column and a persistent menu trigger. */
@media (max-width: 900px) {
  .site-header { position: relative; height: 76px; }
  .site-header .brand-symbol { width: 30px; height: 30px; font-size: 27px; }
  .site-header .brand-name b { font-size: 14px; letter-spacing: .2em; }
  .site-header .brand-name b + b { font-size: 12px; letter-spacing: .24em; }
  .header-cta { display: none; }
  .menu-toggle {
    display: grid;
    width: 46px;
    height: 46px;
    padding: 11px;
    border: 1px solid var(--green);
    border-radius: 0;
    background: var(--paper);
    cursor: pointer;
    place-content: center;
    gap: 5px;
  }
  .menu-toggle span { display: block; width: 22px; height: 2px; background: var(--green-dark); transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-header nav {
    display: none;
    position: absolute;
    z-index: 30;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    padding: 12px 0 18px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    box-shadow: 0 16px 24px rgba(16, 21, 16, .1);
    flex-direction: column;
    gap: 0;
  }
  .site-header nav.is-open { display: flex; }
  .site-header nav a { padding: 13px 0; font-size: 17px; }

  .about, .intro { grid-template-columns: 1fr; gap: 24px; }
  .about > .about-copy, .intro > .intro-copy, .about-art, .intro-art { grid-column: 1; }
  .about-art, .intro-art { width: min(260px, 74vw); height: 190px; justify-self: end; }
  .about-copy > p:not(.eyebrow), .intro-copy > p:not(.eyebrow), .insights-heading > p:not(.eyebrow) { font-size: 16px; line-height: 1.7; }
  .about-points { grid-template-columns: 1fr; gap: 16px; }
  .about-points li + li { padding-left: 0; border-left: 0; }

  .platform-list article { grid-template-columns: 30px 110px minmax(0, 1fr); min-height: 112px; gap: 13px; }
  .platform-art { width: 102px; height: 80px; }
  .platform-list h3 { font-size: 19px; }
  .platform-list p { font-size: 14px; }
  .platform-list article > b { display: none; }

  .research-notes-list article { grid-template-columns: 30px 96px minmax(0, 1fr); min-height: 112px; gap: 13px; }
  .research-notes-list article > img { width: 88px; height: 72px; }
  .research-notes-list article > h3 { font-size: 19px; }
  .research-notes-list article > p { font-size: 14px; }
}

/* Keep below-the-fold sections out of the initial layout work when supported. */
@supports (content-visibility: auto) {
  main > section:not(.hero-shell) {
    content-visibility: auto;
    contain-intrinsic-size: auto 760px;
  }
}

/* Self-hosted subsets replace the render-blocking Google Fonts stylesheet. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2192, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: optional;
  src: url('fonts/inter-greek.woff2') format('woff2');
  unicode-range: U+0370-03FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500 600;
  font-display: optional;
  src: url('fonts/jetbrains-mono.woff2') format('woff2');
}

@media (max-width: 480px) {
  .site-header, .hero-shell, .intro, .capability-rail, .systems, .webcatalogue, .approach, .contact, footer, .about, .platform-index, .research-notes, .insights { width: calc(100% - 40px); }
  .hero-copy h1 { font-size: clamp(42px, 13vw, 54px); }
  .hero-visual { min-height: 240px; }
  .capability-rail article { padding: 26px 0; }
  .insights-list article { padding: 26px 0; }
}

/* Density and alignment pass. */
.about, .intro, .contact { width: min(1540px, calc(100% - 80px)) !important; }
.about-copy > p:not(.eyebrow), .intro-copy > p:not(.eyebrow) { max-width: 780px; }

.platform-index { margin-top: clamp(72px, 8vw, 120px); padding-bottom: clamp(70px, 8vw, 120px); }
.research-notes { padding: clamp(72px, 8vw, 120px) 0; }
.systems { margin: clamp(72px, 8vw, 120px) auto; }
.insights { margin-top: clamp(72px, 8vw, 120px); padding-top: clamp(62px, 7vw, 100px); }
.contact { padding: clamp(76px, 9vw, 130px) 0; }

/* Four core capabilities: illustration and copy share one compact row. */
.capability-rail article { display: grid; grid-template-columns: 112px minmax(0, 1fr); column-gap: 18px; align-items: center; }
.capability-rail article > img { grid-column: 1; grid-row: 1 / span 3; width: 108px; height: 92px; margin: 0; object-fit: contain; }
.capability-rail article > span, .capability-rail article > h3, .capability-rail article > p { grid-column: 2; }
.capability-rail article > span { margin-bottom: 6px; }
.capability-rail h3 { margin: 0 0 7px; }

.platform-list article > span,
.research-notes-list article > span { align-self: center; }
.research-notes-list article > span { grid-row: 1 / span 2; }

/* Insight article art shares the same horizontal reading line as its content. */
.insights-list article { display: grid; grid-template-columns: 108px minmax(0, 1fr); column-gap: 20px; min-height: 0; }
.insights-list article > img { grid-column: 1; grid-row: 1 / span 4; width: 100px; height: 86px; margin: 0; object-fit: contain; align-self: start; }
.insights-list article > span, .insights-list article > h3, .insights-list article > p, .insights-list article > a { grid-column: 2; }
.insights-list article > h3 { margin-top: 11px; }
.insights-list article > p { margin-bottom: 15px; }

.webcatalogue-image { min-height: 0; overflow: visible; }
.webcatalogue-image img { width: 100%; height: auto; margin: 0; max-width: 100%; object-fit: contain; mix-blend-mode: normal; }
.contact-art { top: 50%; bottom: auto; transform: translateY(-50%); }

@media (max-width: 1000px) {
  .about, .intro, .contact { width: calc(100% - 48px) !important; }
}
@media (max-width: 640px) {
  .about, .intro, .contact { width: calc(100% - 40px) !important; }
  .capability-rail article { grid-template-columns: 92px minmax(0, 1fr); column-gap: 15px; }
  .capability-rail article > img { width: 82px; height: 72px; }
  .insights-list article { grid-template-columns: 88px minmax(0, 1fr); column-gap: 14px; }
  .insights-list article > img { width: 80px; height: 68px; }
  .contact-art { top: auto; transform: none; }
}

/* Bring narrative sections closer together and give their illustrations a defined home. */
.about { padding: clamp(54px, 6vw, 86px) 0; }
.about-intro + .intro { padding: clamp(54px, 6vw, 86px) 0; }
.about-copy > p:not(.eyebrow),
.intro-copy > p:not(.eyebrow) { max-width: 600px; font-size: 17px; line-height: 1.72; }

.about-art,
.intro-art {
  width: 320px;
  height: 258px;
  box-sizing: border-box;
  padding: 18px;
  border: 1px solid #dce8d6;
  background: linear-gradient(135deg, #f6faf3 0%, #fbfcf9 72%);
  object-fit: contain;
}
.about-art { box-shadow: inset 0 0 0 10px rgba(63, 125, 24, .025); }
.intro-art { box-shadow: inset 0 0 0 10px rgba(47, 107, 21, .025); }

.platform-index { margin-top: clamp(56px, 6vw, 88px); padding-bottom: clamp(56px, 6vw, 88px); }
.research-notes { padding: clamp(56px, 6vw, 88px) 0; }
.systems { margin: clamp(58px, 6vw, 92px) auto; }
.webcatalogue { padding-bottom: clamp(62px, 7vw, 100px); }
.insights { margin-top: clamp(58px, 6vw, 92px); padding-top: clamp(54px, 6vw, 82px); }
.contact { padding: clamp(62px, 7vw, 104px) 0; }

.webcatalogue-image { align-self: center; }
.webcatalogue-image img { display: block; width: 100%; height: auto; }

@media (max-width: 1000px) {
  .about-art, .intro-art { width: 250px; height: 205px; }
}
@media (max-width: 640px) {
  .about-art, .intro-art { width: min(270px, 76vw); height: 210px; padding: 14px; }
  .about-copy > p:not(.eyebrow), .intro-copy > p:not(.eyebrow) { font-size: 16px; }
}

/* Cohesive responsive and accessibility layer. */
:root { --page-gutter: clamp(20px, 4vw, 80px); --content-width: 1440px; }
html { scroll-padding-top: 92px; }
body { overflow-x: hidden; }
.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 12px 16px; background: #101510; color: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
:focus-visible { outline: 3px solid #3f7d18; outline-offset: 4px; }
.language-select select { min-height: 42px; padding: 0 28px 0 10px; border: 1px solid #b9cbb1; border-radius: 0; background: #fbfcf9; color: #101510; font: 700 12px var(--mono); letter-spacing: .05em; }
.site-header { gap: 20px; }
.site-header nav { margin-inline: auto; }
.hero-shell,.about,.intro,.capability-rail,.platform-index,.research-notes,.systems,.webcatalogue,.approach,.insights,.contact,footer { width: min(var(--content-width), calc(100% - (var(--page-gutter) * 2))) !important; }
.hero-visual,.webcatalogue-image,.systems-image { min-width: 0; }
.hero-visual img,.webcatalogue-image img,.systems-image img,.about-art,.intro-art,.contact-art { display: block; object-position: center; }
.about-art img,.intro-art img,.contact-art img { display:block; width:100%; height:100%; object-fit:contain; }

/* High-resolution supporting visuals: occupy their composition without overpowering the copy. */
.research-visual { transform:scaleX(-1); }
@media (min-width:1001px) {
  .about-art,.intro-art { width:min(100%,420px) !important; height:330px !important; }
  .contact-art { width:min(38vw,480px) !important; }
}
@media (max-width:1000px) {
  .about-art,.intro-art { width:min(88vw,360px) !important; height:275px !important; }
  .contact-art { width:min(100%,360px) !important; }
}

/* Supporting artwork should read as artwork, not as a card inside a constrained grid cell. */
@media (min-width:1001px) {
  .about,.intro { grid-template-columns:minmax(0,1fr) minmax(380px,460px) !important; gap:clamp(48px,6vw,100px) !important; }
  .about-art,.intro-art { width:min(100%,420px) !important; height:auto !important; }
}
.about-art,.intro-art { max-width:none !important; padding:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; }
.about-art img,.intro-art img { height:auto !important; }
.systems-image { display:flex; align-items:center; justify-content:center; overflow:hidden; }
.systems-image .research-visual { width:100% !important; max-width:100% !important; height:100% !important; object-fit:cover !important; object-position:right center !important; transform:scaleX(-1) !important; }

/* CSS Unicode escape avoids mojibake in the systems-topic marker. */
.systems-copy li::before { content:"\2197"; }
@media (max-width:1000px) {
  .about-art,.intro-art { width:min(88vw,360px) !important; height:auto !important; }
}
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 760px; position: relative; z-index: 2; }
.contact-form-field { display: grid; gap: 7px; }
.contact-form-field-wide,.contact-form-note { grid-column: 1 / -1; }
.contact-form label { font-size: 13px; font-weight: 700; }
.contact-form input,.contact-form textarea { width: 100%; border: 1px solid #b9cbb1; border-radius: 0; background: #fff; color: #101510; font: 16px var(--sans); padding: 12px; }
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-form button[disabled] { opacity: .65; cursor: wait; }
.contact-form-note { margin: 0; font-size: 13px; color: var(--muted); }
@media (max-width: 900px) {
  .site-header { width: calc(100% - 40px) !important; height: 76px; position: relative; }
  .site-header nav { display: none; position: absolute; z-index: 40; top: calc(100% + 1px); left: 0; right: 0; margin: 0; padding: 12px 20px 18px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 16px 24px rgba(16,21,16,.12); }
  .site-header nav.is-open { display: flex; }
  .site-header nav a { min-height: 44px; display: flex; align-items: center; font-size: 16px; }
  .menu-toggle { display: grid; }
  .header-cta { display: none; }
  .language-select { margin-left: auto; }
  .hero-shell { grid-template-columns: 1fr; min-height: 0; gap: 20px; padding-block: 38px 58px; }
  .hero-visual { order: -1; min-height: 240px; justify-content: center; }
  .hero-visual img { width: min(100%, 620px); max-width: 100%; height: auto; margin: 0; object-fit: contain; }
  .about,.intro,.webcatalogue,.systems,.approach { grid-template-columns: 1fr; }
  .about-art,.intro-art { justify-self: center; margin: 0 auto; }
  .webcatalogue-image { order: -1; min-height: 0; justify-content: center; overflow: visible; }
  .webcatalogue-image img { width: min(100%, 720px); margin: 0 auto; object-fit: contain; }
  .systems-image { min-height: 0; justify-content: center; display: flex; }
  .systems-image img { width: 100%; max-width: 720px; height: auto; transform: none; object-fit: contain; }
  .contact-art { position: static; width: min(100%, 300px); height: auto; margin: 20px auto; }
}
@media (max-width: 640px) {
  .hero-copy h1 { font-size: clamp(42px, 12vw, 58px); }
  .hero-note { display: none; }
  .capability-rail { grid-template-columns: 1fr; }
  .capability-rail article,.capability-rail article+article { padding: 26px 0; border-right: 0; border-top: 1px solid var(--line); }
  .platform-list article,.research-notes-list article,.insights-list article { grid-template-columns: 1fr !important; gap: 10px; padding: 24px 0; }
  .platform-list article > span,.research-notes-list article > span { grid-column: 1; grid-row: auto; }
  .platform-art,.research-notes-list article > img,.insights-list article > img { width: min(100%, 220px) !important; height: auto !important; margin: 0 auto; justify-self: center; }
  .platform-list article > div,.research-notes-list article > h3,.research-notes-list article > p,.insights-list article > span,.insights-list article > h3,.insights-list article > p,.insights-list article > a { grid-column: 1; }
  .about,.intro,.platform-index,.research-notes,.webcatalogue,.approach,.insights,.contact,footer { width: calc(100% - 40px) !important; }
  .systems { width: 100% !important; }
  .systems-copy { padding: 40px 20px; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form-field-wide,.contact-form-note { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* Language selection belongs to the mobile navigation, not the header chrome. */
.mobile-language { display: none; }
@media (max-width: 900px) {
  .site-header { justify-content: space-between; }
  .menu-toggle { margin-left: auto; order: 3; width: 46px; height: 46px; }
  .language-select-desktop { display: none; }
  .site-header nav { padding: 16px 20px 20px; }
  .site-header nav a { border-bottom: 1px solid var(--line); }
  .mobile-language { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--line); }
  .mobile-language legend { width: 100%; margin-bottom: 2px; color: var(--muted); font: 600 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
  .mobile-language button { min-width: 48px; min-height: 42px; padding: 0 11px; border: 1px solid #b9cbb1; background: var(--paper); color: var(--ink); font: 700 12px var(--mono); cursor: pointer; }
  .mobile-language button[aria-pressed="true"] { border-color: var(--green); background: var(--green); color: #fff; }
}
