.scroll-hen { filter:none; }
.scroll-hen { pointer-events:auto; }
.scroll-hen .hen-runner { position:relative; display:block; width:clamp(75px,11vw,160px); transform:scaleX(-1); }
.scroll-hen img { display:block; width:100%; mix-blend-mode:multiply; }
.michelin-mark { width:1.05em; height:1.05em; object-fit:cover; vertical-align:.02em; border-radius:50%; margin-left:.15em; }
.cursor-hen { width:42px; height:42px; background:url('assets/helmet-cursor.png') center/contain no-repeat; filter:invert(1); mix-blend-mode:difference; }
.topbar { mix-blend-mode:normal; }
.topbar .role,.topbar .contact-link { color:var(--lime); }

footer { background-color:var(--blue); background-image:linear-gradient(rgba(40,69,232,.18),rgba(40,69,232,.18)),url('assets/contact-duotone.jpg'); background-position:center 54%; background-size:cover; background-repeat:no-repeat; }
.brand-signature { width:174px; height:65px; align-self:start; display:block; }
.brand-signature img { display:block; width:100%; height:100%; object-fit:contain; filter:brightness(0) invert(1); }
@media (max-width:650px) { .brand-signature { width:142px; height:53px; } }
.hero-note { position:relative; z-index:2; }
.bue-carousel-shell { overflow:hidden; background:#204aa8; padding:14px 0 0; }
.bue-carousel { display:flex; gap:12px; overflow-x:auto; padding:0 14px 14px; scroll-snap-type:x mandatory; scrollbar-width:none; cursor:grab; }
.bue-carousel::-webkit-scrollbar { display:none; }
.bue-carousel:active { cursor:grabbing; }
.bue-carousel figure { position:relative; flex:0 0 min(76vw,980px); height:min(62vw,760px); margin:0; overflow:hidden; scroll-snap-align:start; background:#173b91; }
.bue-carousel img { width:100%; height:100%; object-fit:cover; display:block; }
.bue-carousel figcaption { position:absolute; left:10px; bottom:10px; padding:6px 8px; background:var(--paper); color:var(--ink); font:10px var(--mono); text-transform:uppercase; }
.bue-controls { display:flex; align-items:center; justify-content:flex-end; gap:13px; padding:0 14px 13px; color:var(--paper); font:10px var(--mono); text-transform:uppercase; }
.bue-controls button { width:35px; height:35px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; padding:0; background:transparent; color:inherit; font-size:18px; cursor:pointer; transition:.2s; }
.bue-controls button:hover { background:var(--paper); color:#204aa8; }
@media (max-width:650px) { .bue-carousel { gap:9px; padding:0 9px 9px; } .bue-carousel figure { flex-basis:88vw; height:112vw; } .bue-controls { padding:0 10px 10px; } }
.project-speed .project-image { display:none; }
.speed-showcase { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(270px,.82fr); gap:12px; }
.speed-showcase figure { margin:0; }
.speed-lead { min-height:min(66vw,745px); position:relative; overflow:hidden; background:#e7e5df; }
.speed-lead img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.speed-lead figcaption { position:absolute; left:9px; bottom:9px; padding:6px 8px; background:var(--lime); color:var(--ink); font:10px var(--mono); text-transform:uppercase; }
.speed-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1.12fr .88fr; gap:9px; }
.speed-gallery img { width:100%; height:100%; min-height:0; object-fit:cover; display:block; }
.speed-gallery img:nth-child(1) { grid-column:span 2; object-position:center; }
.speed-gallery img:nth-child(2) { object-position:62% 50%; }
.speed-gallery img:nth-child(3) { object-position:center; }
.speed-gallery img:nth-child(4) { object-position:center; }
@media (max-width:650px) { .speed-showcase { grid-template-columns:1fr; gap:10px; } .speed-lead { min-height:120vw; } .speed-gallery { grid-template-rows:43vw 43vw; } }
.cv-link { display:inline-flex; align-items:center; gap:34px; margin:-92px 0 48px; padding:14px 18px; background:var(--lime); color:var(--ink); font:12px var(--mono); text-transform:uppercase; transition:transform .2s, background .2s; }
.cv-link span { font-size:18px; line-height:0; }
.cv-link:hover { transform:translateY(-3px); background:var(--paper); }
@media (max-width:650px) { .cv-link { margin:-46px 0 43px; } }
.project-feature { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(22px,4vw,70px); align-items:end; }
.feature-copy { min-height:100%; display:flex; flex-direction:column; align-items:flex-start; padding:clamp(15px,3vw,45px) 0 0; }
.feature-copy .eyebrow { margin:0 0 clamp(36px,9vw,120px); }
.feature-copy h2 { margin:0; font-size:clamp(60px,9vw,145px); line-height:.78; letter-spacing:-.1em; }
.feature-summary { max-width:330px; margin:22px 0 0; font:13px/1.3 var(--mono); text-transform:uppercase; }
.feature-description { max-width:360px; margin:12px 0 26px; font:12px/1.4 var(--mono); text-transform:uppercase; }
.feature-thumbs { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; width:min(100%,360px); margin-top:34px; }
.feature-thumb { aspect-ratio:1; overflow:hidden; border:0; padding:0; background:var(--ink); cursor:pointer; }
.feature-thumb img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s, opacity .25s; }
.feature-thumb:hover img,.feature-thumb:focus-visible img { transform:scale(1.08); opacity:.72; }
.feature-thumb:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.feature-main { margin:0; align-self:start; justify-self:end; background:#e4e1da; }
.feature-main img { display:block; width:100%; height:auto; max-height:82svh; object-fit:contain; object-position:center; }
@media (max-width:650px) { .project-feature { grid-template-columns:1fr; gap:18px; } .feature-copy { min-height:0; padding:8px 0 0; } .feature-copy .eyebrow { margin-bottom:34px; } .feature-copy h2 { font-size:20vw; } .feature-thumbs { width:100%; grid-template-columns:repeat(6,1fr); } .feature-main { order:-1; } .feature-main img { max-height:none; } }

@media (max-width:650px) { .scroll-hen .hen-runner { width:68px; } }

.project-abd .project-image { display:none; }
.abd-showcase { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(230px,.8fr); gap:16px; }
.abd-compare { --compare:50%; min-height:min(62vw,710px); position:relative; overflow:hidden; background:#e4e1da; }
.abd-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:51% 52%; }
.abd-before { position:absolute; inset:0; filter:saturate(.76) contrast(.92); }
.abd-after-wrap { position:absolute; inset:0 auto 0 0; width:var(--compare); overflow:hidden; border-right:2px solid var(--lime); }
.abd-after { min-width:100%; width:100%; height:100%; object-position:53% 54%; filter:saturate(.93) contrast(1.02); }
.abd-label { position:absolute; top:13px; z-index:4; padding:7px 9px; background:var(--ink); color:var(--paper); font:10px var(--mono); letter-spacing:.06em; }
.abd-label-before { right:13px; }
.abd-label-after { left:13px; background:var(--lime); color:var(--ink); }
.abd-divider { position:absolute; z-index:4; left:calc(var(--compare) - 22px); top:50%; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--lime); color:var(--ink); transform:translateY(-50%); font:16px var(--mono); pointer-events:none; }
.abd-range { appearance:none; position:absolute; z-index:5; inset:0; width:100%; height:100%; margin:0; background:transparent; cursor:ew-resize; }
.abd-range::-webkit-slider-thumb { appearance:none; width:1px; height:100%; background:transparent; }
.abd-range::-moz-range-thumb { width:1px; height:100%; border:0; background:transparent; }
.abd-detail { margin:0; min-height:0; display:flex; flex-direction:column; justify-content:space-between; background:#fff; }
.abd-detail img { width:100%; height:calc(100% - 33px); min-height:0; object-fit:cover; object-position:55% 50%; display:block; }
.abd-detail figcaption { padding:10px; border-top:1px solid var(--ink); font:10px var(--mono); text-transform:uppercase; }
@media (max-width:650px) { .abd-showcase { grid-template-columns:1fr; gap:10px; } .abd-compare { min-height:125vw; } .abd-detail { min-height:57vw; } .abd-detail img { min-height:48vw; } }

.new-era-showcase { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr); gap:16px; }
.new-era-showcase figure { margin:0; }
.new-era-lead { position:relative; min-height:min(67vw,760px); overflow:hidden; background:var(--ink); }
.new-era-lead img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:52% 50%; display:block; }
.new-era-lead figcaption { position:absolute; left:12px; bottom:12px; background:var(--lime); color:var(--ink); padding:7px 9px; font:10px var(--mono); text-transform:uppercase; }
.new-era-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,1fr); gap:8px; }
.new-era-gallery img { width:100%; height:100%; min-height:0; object-fit:cover; display:block; filter:saturate(.94); transition:transform .3s, filter .3s; }
.new-era-gallery img:hover { transform:scale(.98); filter:saturate(1.2); }
@media (max-width:650px) { .new-era-showcase { grid-template-columns:1fr; gap:10px; } .new-era-lead { min-height:120vw; } .new-era-gallery { grid-template-rows:repeat(3,40vw); } }

.project-escribania .project-image { display:none; }
.escribania-showcase { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:minmax(300px,35vw) minmax(260px,31vw); gap:10px; }
.escribania-showcase figure { margin:0; position:relative; overflow:hidden; background:#d1ccc7; }
.escribania-showcase figure img { width:100%; height:100%; object-fit:cover; display:block; }
.escribania-axo { grid-row:span 2; }
.escribania-axo img { object-position:50% 54%; }
.escribania-mood img { object-position:50% 50%; }
.escribania-render img { object-position:50% 55%; }
.escribania-showcase figcaption { position:absolute; left:9px; bottom:9px; background:var(--blue); color:var(--paper); padding:6px 8px; font:10px var(--mono); text-transform:uppercase; }
.escribania-gallery { grid-column:1 / -1; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.escribania-gallery img { width:100%; height:100%; min-height:210px; object-fit:cover; display:block; }
.escribania-gallery img:nth-child(1) { object-position:48% 52%; }
.escribania-gallery img:nth-child(2) { object-position:56% 52%; }
.escribania-gallery img:nth-child(3) { object-position:52% 48%; }
.escribania-gallery img:nth-child(4) { object-position:50% 42%; }
@media (max-width:650px) { .escribania-showcase { grid-template-columns:1fr; grid-template-rows:100vw 65vw 65vw; } .escribania-axo { grid-row:auto; } .escribania-gallery { grid-template-columns:1fr 1fr; } .escribania-gallery img { min-height:55vw; } }

.project-calvo .project-image { display:none; }
.calvo-showcase { display:grid; grid-template-columns:minmax(0,1.32fr) minmax(250px,.68fr); gap:12px; }
.calvo-showcase figure { margin:0; position:relative; overflow:hidden; }
.calvo-render { min-height:min(64vw,720px); background:#151a20; }
.calvo-render img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.calvo-showcase figcaption { position:absolute; left:9px; bottom:9px; background:var(--blue); color:var(--paper); padding:6px 8px; font:10px var(--mono); text-transform:uppercase; }
.calvo-details { display:grid; grid-template-rows:repeat(3,1fr); gap:10px; }
.calvo-details figure { min-height:0; background:#48577d; }
.calvo-details img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
@media (max-width:650px) { .calvo-showcase { grid-template-columns:1fr; } .calvo-render { min-height:61vw; } .calvo-details { grid-template-columns:repeat(3,1fr); grid-template-rows:45vw; } }

.top-white-showcase { display:grid; grid-template-columns:minmax(0,1.17fr) minmax(270px,.83fr); gap:12px; }
.top-white-showcase figure { margin:0; }
.top-white-lead { min-height:min(66vw,745px); position:relative; overflow:hidden; background:#e9e9e6; }
.top-white-lead img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:50% 55%; display:block; }
.top-white-lead figcaption { position:absolute; left:9px; bottom:9px; padding:6px 8px; background:var(--ink); color:var(--paper); font:10px var(--mono); text-transform:uppercase; }
.top-white-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1.15fr 1fr 1fr; gap:9px; }
.top-white-gallery img { width:100%; height:100%; min-height:0; object-fit:cover; display:block; }
.top-white-gallery img:first-child { grid-row:span 2; object-position:50% 56%; }
.top-white-gallery img:nth-child(2) { object-position:50% 52%; }
.top-white-gallery img:nth-child(3) { object-position:50% 48%; }
.top-white-gallery img:nth-child(4) { object-position:50% 53%; }
.top-white-gallery img:nth-child(5) { object-position:64% 50%; }
@media (max-width:650px) { .top-white-showcase { grid-template-columns:1fr; gap:10px; } .top-white-lead { min-height:120vw; } .top-white-gallery { grid-template-rows:repeat(3,43vw); } }

.trajectory { min-height:100svh; position:relative; padding:115px 30px 92px; background:var(--paper); color:var(--ink); }
.trajectory-head { padding-bottom:54px; }
.trajectory-head .eyebrow { margin:0 0 11px; }
.trajectory-head h1 { max-width:1060px; margin:0; font-size:clamp(50px,7.8vw,124px); line-height:.82; letter-spacing:-.075em; font-weight:500; }
.trajectory-head h1 em { font-family:Georgia,serif; font-weight:400; letter-spacing:.015em; }
.trajectory-list { border-top:1px solid var(--ink); display:grid; grid-template-columns:repeat(4,1fr); }
.trajectory-list .trajectory-item { min-height:174px; display:flex; flex-direction:column; gap:10px; padding:18px 17px 16px 0; border-right:1px solid var(--ink); }
.trajectory-list .trajectory-item:not(:first-child) { padding-left:17px; }
.trajectory-list .trajectory-item:last-child { border-right:0; }
.trajectory-list b { color:var(--blue); font-size:clamp(20px,2.1vw,32px); line-height:.9; letter-spacing:-.06em; }
.trajectory-list .trajectory-item:hover b { text-decoration:underline; text-underline-offset:.12em; }
.trajectory-list p,.trajectory-list span { margin:0; font:12px/1.35 var(--mono); }
.trajectory-list span { margin-top:auto; text-transform:uppercase; }
.trajectory-link { position:absolute; right:30px; bottom:28px; border-color:var(--ink); color:var(--ink); }
.trajectory-link:hover { background:var(--ink); color:var(--paper); }
@media (max-width:800px) { .trajectory-list { grid-template-columns:1fr 1fr; } .trajectory-list .trajectory-item { min-height:140px; border-bottom:1px solid var(--ink); } .trajectory-list .trajectory-item:nth-child(2n) { border-right:0; } .trajectory-list .trajectory-item:nth-last-child(-n+2) { border-bottom:0; } }
@media (max-width:650px) { .trajectory { min-height:0; padding:78px 18px 86px; } .trajectory-head { padding-bottom:38px; } .trajectory-head h1 { font-size:14vw; } .trajectory-list { grid-template-columns:1fr; } .trajectory-list .trajectory-item,.trajectory-list .trajectory-item:not(:first-child) { min-height:0; padding:16px 0; border-right:0; border-bottom:1px solid var(--ink); } .trajectory-list .trajectory-item:last-child { border-bottom:0; } .trajectory-list p { margin-top:1px; } .trajectory-list span { margin-top:0; } .trajectory-link { right:18px; bottom:15px; width:55px; height:55px; } }

/* Project feature layout */
.project-feature { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(22px,4vw,70px); align-items:end; }
.feature-copy { min-height:100%; display:flex; flex-direction:column; align-items:flex-start; padding:clamp(15px,3vw,45px) 0 0; }
.feature-copy .eyebrow { margin:0 0 clamp(36px,9vw,120px); }
.feature-copy h2 { margin:0; font-size:clamp(60px,9vw,145px); line-height:.78; letter-spacing:-.1em; }
.feature-summary { max-width:330px; margin:22px 0 0; font:13px/1.3 var(--mono); text-transform:uppercase; }
.feature-description { max-width:360px; margin:12px 0 26px; font:12px/1.4 var(--mono); text-transform:uppercase; }
.feature-thumbs { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; width:min(100%,360px); margin-top:auto; }
.feature-thumb { aspect-ratio:1; overflow:hidden; border:0; padding:0; background:var(--ink); cursor:pointer; }
.feature-thumb img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s,opacity .25s; }
.feature-thumb:hover img,.feature-thumb:focus-visible img { transform:scale(1.08); opacity:.72; }
.feature-thumb:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.feature-main { margin:0; align-self:start; background:#e4e1da; }
.feature-main img { display:block; width:100%; height:auto; max-height:82svh; object-fit:contain; object-position:center; }
.project-bue .bue-feature { padding:clamp(18px,3vw,45px); background:#204aa8; color:var(--paper); }
.project-bue .feature-copy { padding-top:0; }
.project-bue .feature-main { background:#173b91; }
.project-bue .feature-thumb { background:var(--paper); }
.project-bue .feature-thumb:focus-visible { outline-color:var(--lime); }
.abd-feature-main { align-self:start; position:relative; min-width:0; background:#e4e1da; }
.abd-feature-main .abd-compare { min-height:min(62vw,710px); }
.abd-feature-image { display:block; width:100%; height:auto; max-height:82svh; object-fit:contain; }
.abd-feature-image[hidden] { display:none; }
@media (max-width:650px) { .project-feature { grid-template-columns:1fr; gap:18px; } .feature-copy { min-height:0; padding:8px 0 0; } .feature-copy .eyebrow { margin-bottom:34px; } .feature-copy h2 { font-size:20vw; } .feature-thumbs { width:100%; grid-template-columns:repeat(6,1fr); } .feature-main,.abd-feature-main { order:-1; } .feature-main { justify-self:stretch; } .feature-main img { max-height:none; } .project-bue .bue-feature { padding:18px; } .abd-feature-main .abd-compare { min-height:125vw; } }

/* Three-part desktop composition: text, thumbnails, primary image. */
@media (min-width:651px) {
  .project-feature { grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr); }
  .feature-copy { display:grid; grid-template-columns:minmax(250px,1fr) minmax(230px,.85fr); grid-template-rows:auto auto auto auto 1fr; column-gap:clamp(28px,4vw,75px); align-content:start; }
  .feature-copy .eyebrow { grid-column:1 / -1; margin:0 0 clamp(42px,6vw,82px); }
  .feature-copy h2,.feature-copy .feature-summary,.feature-copy .feature-description { grid-column:1; }
  .feature-copy h2 { font-size:clamp(54px,6.2vw,105px); }
  .feature-thumbs { grid-column:2; grid-row:2 / 6; align-self:end; width:100%; margin:0; }
  .feature-main { align-self:end; justify-self:end; width:fit-content; background:transparent; }
}
@media (max-width:650px) { .feature-copy { display:flex; } }

/* Keep the editorial content centered as one left-aligned group in the free column. */
@media (min-width:651px) {
  .feature-copy { display:flex; width:min(100%,540px); justify-self:center; }
  .feature-copy .eyebrow { margin-bottom:clamp(42px,6vw,82px); }
  .feature-thumbs { align-self:flex-start; width:min(100%,360px); margin-top:34px; }
}
