@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono/IBMPlexMono-SemiBold.woff2") format("woff2");}
:root{--bg:#f0eee8;--surface:#e5e2da;--ink:#292b28;--muted:#6b6e66;--line:#c9cbc2;--dark:#232923;--light:#efeee8;--space:clamp(64px,9vw,140px);--max:1440px;--radius:2px;--ease:300ms ease;font-family:var(--font-body);color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}p{font-size:1rem;line-height:1.85;font-weight:400;letter-spacing:0;color:var(--muted)}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.03em;overflow-wrap:break-word}h2{font-size:clamp(2rem,4.2vw,3.75rem);line-height:1.16}h3{font-size:clamp(1.375rem,2.3vw,2.125rem);line-height:1.3}h4{font-size:1.0625rem;font-weight:500;line-height:1.5;letter-spacing:-.01em}section{scroll-margin-top:85px}.wrap{max-width:var(--max);margin:auto;padding:0 clamp(24px,5vw,80px)}.section{padding:var(--space) 0}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.1em;line-height:1.6;font-weight:500}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:56px}.section-head p{max-width:490px}.number{font-size:12px;letter-spacing:.1em;color:var(--muted);display:block;margin-bottom:24px}.header{position:fixed;top:0;width:100%;z-index:30;padding:27px clamp(24px,5vw,80px);display:flex;align-items:center;justify-content:space-between;color:var(--light);transition:background var(--ease),padding var(--ease)}.header.scrolled{padding-top:18px;padding-bottom:18px;background:var(--dark)}.brand{font-size:1.25rem;font-weight:600;letter-spacing:-.045em;display:flex;gap:12px;align-items:center}.brand-mark{font-size:23px;font-weight:400;letter-spacing:-5px;padding-right:5px;transform:skew(-12deg)}.header-actions{display:flex;align-items:center;gap:36px}.languages{display:flex;align-items:center;gap:9px;font-size:13px}.languages button,.menu-button{background:none;border:0;padding:9px 0}.languages button[aria-pressed=false]{opacity:.55}.menu-button{display:flex;align-items:center;gap:17px;letter-spacing:.14em;font-size:12px}.hamburger{display:inline-block;width:25px;height:10px;border-top:1px solid;border-bottom:1px solid}.hero{min-height:760px;height:100svh;max-height:1300px;position:relative;background:#343c33;color:var(--light);display:flex;align-items:center;isolation:isolate;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,rgba(18,25,19,.5),transparent),radial-gradient(ellipse at 75% 40%,#65715c 0,#404b3d 35%,#222b24 80%);z-index:-1}.hero .wrap{width:100%;padding-top:50px}.hero h1{font-size:clamp(2.5rem,6.1vw,5.5rem);font-weight:600;line-height:1.12;letter-spacing:-.045em;max-width:1280px}.hero h1 span{color:#bbc3b5}.hero p{color:#d5dacd;max-width:52ch;margin-top:32px;font-size:1rem;line-height:1.85}.hero-bottom{position:absolute;left:clamp(24px,5vw,80px);right:clamp(24px,5vw,80px);bottom:32px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff38;padding-top:23px}.asset-note{font-size:12px;letter-spacing:.08em;color:#b9c2b2}.hero-label{margin-bottom:40px}.placeholder{aspect-ratio:4/3;background:linear-gradient(135deg,#d4d7ce,#e2e3dc);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:#687064}.placeholder:before,.placeholder:after{content:'';position:absolute;inset:16px;border:1px solid currentColor;opacity:.15}.placeholder:after{inset:auto 16px 16px;height:12px;border-width:0 1px 1px}.placeholder span{font-size:12px;text-transform:uppercase;letter-spacing:.13em;text-align:center;padding:25px;max-width:280px}.placeholder img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.engineering-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.engineering-card:nth-child(even){padding-top:60px}.engineering-card .placeholder{margin-bottom:26px;aspect-ratio:4/5}.engineering-card h3{font-size:1.25rem;letter-spacing:-.025em;line-height:1.35;margin-bottom:16px}.engineering-card p{font-size:1rem;line-height:1.85}.link{display:inline-flex;gap:32px;align-items:center;border-bottom:1px solid currentColor;padding:13px 0;font-size:.875rem;font-weight:500;line-height:1.6;letter-spacing:.025em}.link:hover{gap:43px}.link{transition:gap var(--ease)}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:var(--bg);padding:15px}.skip:focus{top:10px}.menu-dialog{position:fixed;inset:0;border:0;max-width:none;max-height:none;width:100%;height:100dvh;margin:0;background:var(--dark);color:var(--light);padding:30px clamp(24px,7vw,110px);overflow:auto}.menu-dialog::backdrop{background:var(--dark)}.menu-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:55px}.menu-close{background:none;border:0;padding:12px;font-size:16px}.menu-nav>a{display:block;width:fit-content;font-size:clamp(1.5rem,3.4vw,3rem);font-weight:500;line-height:1.3;letter-spacing:-.025em;text-transform:uppercase;margin:20px 0}.menu-sub{display:flex;gap:30px;margin:18px 0 32px;color:#c1c8ba}.menu-bottom{margin-top:42px;display:flex;gap:45px;align-items:center}.future{opacity:.65;font-size:14px}.footer{background:var(--dark);color:var(--light);padding:80px 0 28px}.footer p{color:#b9c2b2}.footer-top{display:flex;justify-content:space-between;gap:40px}.footer h2{margin-bottom:30px}.footer-links{display:flex;flex-wrap:wrap;gap:25px;padding:40px 0}.contact-placeholder{font-size:14px;opacity:.7}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff28;padding-top:25px;font-size:12px;color:#b9c2b2}.footer-logo{font-size:clamp(2.05rem,9vw,8rem);font-weight:600;letter-spacing:-.05em;padding-top:40px;padding-bottom:30px;line-height:1}.muted{color:var(--muted)}.notice{font-size:13px;color:var(--muted);margin-top:15px}.paths{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.path{padding:45px 45px 45px 0}.path+.path{padding-left:45px;padding-right:0;border-left:1px solid var(--line)}.path .eyebrow{margin-bottom:28px}.path h3{margin-bottom:28px;max-width:490px}.path h4{margin:28px 0 12px}.path p{font-size:16px}.path ul{padding-left:18px;margin:20px 0 30px}.path li{padding:8px 0;color:var(--muted);font-size:1rem;line-height:1.85}.path .key{color:var(--ink);margin-top:24px}.path .placeholder{margin-bottom:32px;aspect-ratio:16/9}.models{background:var(--surface)}.models-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.model .placeholder{aspect-ratio:3/4;background:#eeeee7;margin-bottom:25px}.model h3{font-size:clamp(1rem,1.55vw,1.375rem);line-height:1.4;font-weight:500;letter-spacing:-.025em;margin-bottom:18px}.spec{display:flex;gap:16px;font-size:.8125rem;line-height:1.6;text-transform:uppercase;letter-spacing:.04em;padding-bottom:20px;border-bottom:1px solid var(--line)}.model .link{border:0;width:100%;justify-content:space-between}.platform-note{margin-top:32px;max-width:680px;font-size:13px}.transition{padding:90px 0;border-bottom:1px solid var(--line)}.transition .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.transition h2{font-size:clamp(1.75rem,3vw,2.75rem)}.transition p{margin-bottom:15px}.intro-project{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:50px 0 90px}.intro-project .placeholder{aspect-ratio:5/4}.intro-project p{align-self:center;font-size:1.125rem;line-height:1.85}.process-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px}.process{display:grid;grid-template-columns:repeat(5,1fr);gap:25px}.process article{border-top:1px solid var(--line);padding-top:22px}.process .step{font-size:13px;color:var(--muted);margin-bottom:42px;display:block}.process h3{font-size:1.25rem;letter-spacing:-.025em;margin-bottom:18px}.process p{font-size:1rem;line-height:1.85}.work{background:#e3e5dc}.build{border-top:1px solid #bfc4b7;padding-top:25px;margin-top:45px}.build-summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:20px;cursor:pointer;padding-bottom:25px;align-items:center}.build-summary::-webkit-details-marker{display:none}.build-summary h3{font-size:1.625rem;line-height:1.4}.build-summary span{font-size:14px}.build[open] .build-summary .expand{transform:rotate(45deg)}.build-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;padding-bottom:35px}.build-main .placeholder{aspect-ratio:16/10}.details-photos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.passport h4{margin:22px 0 12px}.passport p{font-size:1rem;line-height:1.85}.passport dl{margin-top:28px;font-size:14px}.passport dl div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #bfc4b7;gap:15px}.passport dd{margin:0;color:var(--muted)}.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.service-card{border-top:1px solid var(--line);padding-top:30px}.service-card h3{margin-bottom:24px}.equipment{font-size:.9375rem;line-height:1.9;color:var(--muted);margin-top:22px}.aachen{margin-top:80px;background:#e3e4dc;padding:40px;display:grid;grid-template-columns:1fr 1fr;gap:60px}.status{border:1px solid #92998b;border-radius:20px;font-size:12px;padding:7px 13px;display:inline-block;margin-bottom:22px}.aachen h3{font-size:1.75rem;margin-bottom:24px}.aachen strong{display:block;font-size:1.25rem;font-weight:500;line-height:1.5;margin-top:30px}.story{background:#343e33;color:var(--light)}.story .eyebrow{color:#c1c8ba;margin-bottom:28px}.story-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:80px}.story .placeholder{aspect-ratio:4/5;background:#4c5747;color:#c2cbbb}.story h2{font-size:clamp(2rem,3.7vw,3.25rem);margin-bottom:35px}.story p{color:#c1c8ba;margin-bottom:24px}.story-end{margin-top:70px;padding-top:35px;border-top:1px solid #ffffff30;font-size:clamp(1.5rem,3.2vw,2.875rem);font-weight:500;letter-spacing:-.025em;line-height:1.35}.product-hero{height:70svh;min-height:550px}.product-nav{display:flex;flex-wrap:wrap;gap:18px;margin:35px 0}.product-nav a{font-size:14px;border-bottom:1px solid var(--line);padding:10px 0}.product-modules{display:grid;grid-template-columns:1fr 1fr;gap:50px}.product-module h3{margin-top:22px}.product-module{scroll-margin-top:100px}.variants{grid-template-columns:1fr 1fr;max-width:850px;margin:auto}.variants .placeholder{aspect-ratio:5/4}.contact-state{border:1px solid #ffffff38;padding:14px 18px;margin-top:20px;max-width:400px;font-size:14px;color:#c1c8ba}[hidden]{display:none!important}@media(min-width:1600px){.hero .wrap{padding-left:0;padding-right:0}}@media(max-width:1000px){.engineering-grid,.models-grid{grid-template-columns:1fr 1fr;gap:40px 24px}.engineering-card:nth-child(even){padding-top:40px}.process{grid-template-columns:repeat(3,1fr)}.section-head{gap:35px}.story-grid{gap:40px}.path{padding-right:28px}.path+.path{padding-left:28px}}@media(max-width:650px){.header{padding-top:20px}.brand{font-size:1.0625rem;gap:8px}.header-actions{gap:16px}.languages{font-size:12px}.menu-button{font-size:0;gap:0}.hero{min-height:650px;max-height:1000px}.hero h1{font-size:clamp(2rem,9.8vw,3.5rem);line-height:1.15}.hero p{font-size:16px;max-width:290px}.hero-label{margin-bottom:30px}.hero-bottom{bottom:25px;gap:30px}.asset-note{max-width:140px;text-align:right;font-size:11px}.section-head{grid-template-columns:1fr;gap:26px;margin-bottom:35px}.section-head p{font-size:16px}.engineering-grid{gap:34px 18px}.engineering-card:nth-child(even){padding-top:35px}.engineering-card h3{font-size:1.125rem}.engineering-card p{font-size:1rem}.engineering-card .placeholder{margin-bottom:20px}.placeholder span{font-size:.75rem;letter-spacing:.04em;padding:20px 12px;line-height:1.6;overflow-wrap:anywhere}.paths{grid-template-columns:1fr}.path,.path+.path{padding:35px 0;border-left:0}.path+.path{border-top:1px solid var(--line)}.models-grid{gap:32px 18px}.model h3{font-size:1rem}.spec{gap:8px;font-size:.75rem;letter-spacing:0}.model .link{font-size:14px}.transition .wrap,.intro-project,.services-grid,.aachen,.story-grid,.build-grid{grid-template-columns:1fr;gap:32px}.transition{padding:65px 0}.intro-project{margin:35px 0 65px}.intro-project p{font-size:18px}.process-head{display:block}.process-head p{margin-top:14px}.process{grid-template-columns:1fr;gap:0}.process article{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:24px 0}.process .step{grid-row:1/4;margin:0;padding-top:5px}.process h3{margin:0;font-size:1.25rem}.process p,.process .notice{grid-column:2}.aachen{padding:28px;margin-top:50px}.story .placeholder{aspect-ratio:4/3}.story-end{margin-top:45px}.menu-sub{flex-direction:column;gap:16px}.menu-nav>a{margin:25px 0}.menu-bottom{flex-direction:column;align-items:start;gap:20px}.footer-top{flex-direction:column}.footer-bottom{gap:30px;font-size:11px}.footer-links{gap:22px}.product-modules{grid-template-columns:1fr}.product-hero{min-height:530px}.build-summary h3{font-size:1.375rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
:root{--font-body:"IBM Plex Mono","Courier New",monospace;--space-small:24px;--space-medium:48px;--space-large:96px}.footer-lang{border:0;background:none;color:inherit;padding:8px 0;font-size:13px}.footer-lang[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:has(.hero-image):before{background:linear-gradient(90deg,rgba(18,25,19,.78),rgba(18,25,19,.2)),linear-gradient(0deg,rgba(18,25,19,.5),transparent)}.product-module h2{font-size:clamp(1.5rem,2.5vw,2.5rem);margin-top:22px}.placeholder:has(img):before,.placeholder:has(img):after{display:none}

.model .placeholder img{object-fit:contain}

/* Monospaced metrics: let long translated words wrap without changing the grids. */
body{font-weight:400;line-height:1.75}
b,strong{font-weight:600}
p,li,dt,.contact-state{overflow-wrap:break-word}
.engineering-card p,.process p{hyphens:auto}
.section-head>*,.engineering-card,.model,.path,.process article,.story-grid>*,.aachen>*,.footer-top>*{min-width:0}
.menu-sub,.menu-bottom{flex-wrap:wrap}
.menu-nav>a{max-width:100%;overflow-wrap:break-word}
.link{max-width:100%;gap:24px}
.link:hover{gap:28px}
.link>span{flex-shrink:0}
.build-summary h3 span{font-size:inherit}
.footer-bottom{flex-wrap:wrap;gap:16px}
.footer-top>div:last-child{flex-shrink:0;max-width:40%}
@media(max-width:650px){
 .footer-top>div:last-child{max-width:100%}
 .footer h2{font-size:clamp(1.75rem,6.8vw,2.5rem)}
 .brand-mark{font-size:1.125rem}
 .languages{gap:6px}
 .menu-dialog{padding-inline:24px}
 .menu-top{gap:12px}
 .menu-close{padding:8px 0;font-size:.875rem}
 .asset-note{font-size:.75rem;letter-spacing:.025em}
 .engineering-card p{hyphens:auto;overflow-wrap:anywhere}
 .model .link{font-size:.8125rem;gap:8px}
 .hero .wrap{padding-top:35px;padding-bottom:85px}
}

/* Official square PNG: retain the complete asset and its natural proportions.
   Its transparent canvas extends outside the layout slot; nothing is clipped. */
.brand{display:block;position:relative;flex:0 0 auto;width:184px;height:68px;overflow:visible}
.brand-logo{display:block;position:absolute;width:316px;height:auto;max-width:none;left:-61px;top:50%;transform:translateY(-50%);pointer-events:none}
.header.scrolled .brand{width:150px;height:50px}
.header.scrolled .brand-logo{width:258px;left:-50px}
@media(max-width:650px){
 .brand,.header.scrolled .brand{width:144px;height:54px}
 .brand-logo,.header.scrolled .brand-logo{width:248px;left:-48px}
}

/* Suppress the stray frame embedded at the outer edge of the PNG canvas.
   The complete symbol/wordmark sits well inside this transparent margin. */
.brand,.brand-logo{border:0;outline:none;box-shadow:none;background:transparent}
.brand-logo{-webkit-mask-image:linear-gradient(#000,#000);mask-image:linear-gradient(#000,#000);-webkit-mask-size:96% 96%;mask-size:96% 96%;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.brand:focus-visible{outline:none}
.brand:focus-visible .brand-logo{opacity:.75}

/* Homepage photo: keep the open sliding door in the portrait crop. */
@media(max-width:650px){.hero[data-hero-asset="hero/main"] .hero-image{object-position:65% center!important}}
.hero[data-hero-asset="hero/main"] .asset-note[hidden]{display:block!important;visibility:hidden}

/* Homepage overlay: retain body detail on the left, shade the cab on the right. */
.hero[data-hero-asset="hero/main"]:has(.hero-image):before{background:linear-gradient(90deg,rgba(18,25,19,.22) 0%,rgba(18,25,19,.28) 35%,rgba(18,25,19,.48) 70%,rgba(18,25,19,.66) 100%),radial-gradient(ellipse at 30% 55%,rgba(18,25,19,.18) 0%,rgba(18,25,19,0) 62%),linear-gradient(0deg,rgba(18,25,19,.28),transparent 42%)}

/* First project: requests lead to solutions, with energy as the conclusion. */
.build-case .build-grid{display:block}
.build-case .build-main{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:48px}
.build-case .details-photos{display:grid;grid-template-columns:1fr;gap:16px;margin:0}
.build-case .build-main>.placeholder{height:100%}
.case-pairs{list-style:none;padding:0;margin:0}
.case-pair{display:grid;grid-template-columns:32px minmax(0,1fr) 24px minmax(0,1.35fr);gap:24px;padding:32px 0;border-top:1px solid #bfc4b7}
.case-number,.case-arrow{font-size:14px;color:var(--muted);padding-top:2px}
.case-pair h4{font-size:14px;letter-spacing:.08em;line-height:1.5;margin:0 0 16px;font-weight:500}
.case-request h4{color:var(--muted)}
.case-solution h4{font-weight:600}
.case-pair p{font-size:16px;line-height:1.85;margin:0;max-width:65ch}
.case-energy{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;background:var(--dark);color:var(--light);padding:clamp(24px,4vw,56px);margin-top:24px}
.case-energy h4{font-size:clamp(20px,2vw,28px);margin:16px 0 24px;line-height:1.4}
.case-energy p{font-size:16px;line-height:1.85;color:inherit}
.case-energy-intro p:last-child{margin-bottom:0}
.case-energy-result{align-self:center;border-left:1px solid #60685c;padding-left:40px}
.case-capacity{display:block;font-size:clamp(52px,6vw,88px);font-weight:500;line-height:1.1;letter-spacing:-.045em;white-space:nowrap}
.case-capacity span{font-size:.4em;letter-spacing:0}
.case-energy-result>p{margin:16px 0 24px}
.case-energy-components{display:grid;gap:12px;font-size:14px;line-height:1.6;border-top:1px solid #60685c;padding-top:24px}
@media(max-width:1000px){.case-pair{grid-template-columns:24px minmax(0,1fr) 16px minmax(0,1.2fr);gap:16px}.case-energy{gap:24px}.case-energy-result{padding-left:24px}}
@media(max-width:650px){.build-case .build-main{display:block;margin-bottom:32px}.build-case .details-photos{grid-template-columns:1fr 1fr;margin-top:16px}.case-pair{grid-template-columns:24px minmax(0,1fr);gap:16px;padding:28px 0}.case-request,.case-solution{grid-column:2}.case-arrow{display:none}.case-solution{padding-top:4px}.case-pair h4{margin-bottom:10px}.case-energy{grid-template-columns:1fr;gap:32px}.case-energy-result{border-left:0;border-top:1px solid #60685c;padding:28px 0 0}.case-capacity{font-size:64px}}

/* First case gallery: compact overview, uncropped fullscreen photography. */
.build-case .case-subtitle{font-size:16px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.project-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;aspect-ratio:8/3;margin:0 0 48px}
.gallery-tile{position:relative;display:block;min-width:0;min-height:0;overflow:hidden;background:var(--dark);border:0}
.gallery-tile[hidden]{display:none}
.gallery-tile:first-child{grid-row:span 2}
.gallery-tile img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity 250ms ease}
.gallery-tile:hover img{opacity:.88}
.gallery-tile:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.gallery-more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(20,26,21,.62);color:var(--light);font-size:clamp(14px,1.6vw,22px);pointer-events:none}
.project-lightbox{border:0;padding:0;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:var(--dark);color:var(--light);overflow:hidden}
.project-lightbox::backdrop{background:var(--dark)}
.lightbox-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;padding:24px clamp(16px,3vw,48px);gap:16px}
.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lightbox-top>span{font-size:14px;letter-spacing:.08em}
.project-lightbox button{font:inherit;color:inherit;border:1px solid #60685c;background:transparent;cursor:pointer;min-width:48px;min-height:48px;padding:10px 16px;border-radius:0}
.project-lightbox button:hover{background:#394236}
.project-lightbox button:focus-visible{outline:2px solid var(--light);outline-offset:3px}
.lightbox-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom}
.lightbox-photo{width:100%;height:100%;min-height:0;object-fit:contain;opacity:1;transition:opacity 180ms ease;user-select:none}
.lightbox-photo.is-loading{opacity:0}
.lightbox-status{position:absolute;inset:40% 16px auto;text-align:center;font-size:16px;color:var(--light)}
.lightbox-bottom{max-width:340px;width:100%;justify-self:center}
.lightbox-counter{font-size:16px;font-variant-numeric:tabular-nums}
.lightbox-caption{font-size:14px;line-height:1.6;color:var(--light);text-align:center;margin:0;max-width:85ch;justify-self:center;min-height:2.5em}
.case-energy-components{margin-top:24px}
@media(max-width:650px){.project-gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto;aspect-ratio:auto;gap:8px;margin-bottom:32px}.gallery-tile:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:4/3}.gallery-tile:not(:first-child){aspect-ratio:1}.gallery-more{font-size:12px;text-align:center;padding:4px}.lightbox-shell{padding:16px 12px max(16px,env(safe-area-inset-bottom));gap:12px}.lightbox-caption{font-size:13px}.lightbox-top>span{font-size:13px}.build-case .case-subtitle{max-width:28ch}}
@media(prefers-reduced-motion:reduce){.gallery-tile img,.lightbox-photo{transition:none}}

/* Fill the overview hero tile; fullscreen photos retain contain. */
.project-gallery .gallery-tile:first-child img{object-fit:cover}

/* Landscape temporary floorplans keep the Coming Soon label legible. */
#models .model .placeholder{aspect-ratio:4/3}
#models .model .placeholder img{object-fit:cover}

/* Project 02: landscape hero and portrait overview tiles match the originals. */
#compact-family .project-gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto;aspect-ratio:auto}
#compact-family .gallery-tile:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:auto}
#compact-family .gallery-tile:not(:first-child){aspect-ratio:3/4}
#compact-family .gallery-tile img{width:100%;height:auto;object-fit:contain}

/* Project 03: preserve each photograph's native proportions. */
#sprinter-family .project-gallery{grid-template-columns:.75fr .75fr .558fr .566fr;grid-template-rows:auto auto;aspect-ratio:auto}
#sprinter-family .gallery-tile:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:auto}
#sprinter-family .gallery-tile{align-self:start;aspect-ratio:auto}
#sprinter-family .gallery-tile img{display:block;width:100%;height:auto;object-fit:contain}
#sprinter-family .case-solution p+p,#sprinter-family .case-solution ul+p{margin-top:1em}
#sprinter-family .case-solution ul{padding-left:1.2em;margin:1em 0;line-height:1.7}

#sprinter-family .case-request-title{font-weight:600;margin-bottom:1em}

/* Project 04: full-width hero and a proportional image row, matching Project 03. */
#off-grid-digital-nomad .project-gallery{grid-template-columns:0.7500fr 0.7500fr 1.3333fr 1.3333fr;grid-template-rows:auto auto;aspect-ratio:auto}
#off-grid-digital-nomad .gallery-tile:first-child{grid-column:1/-1;grid-row:auto;aspect-ratio:auto}
#off-grid-digital-nomad .gallery-tile{align-self:start;aspect-ratio:auto}
#off-grid-digital-nomad .gallery-tile img{display:block;width:100%;height:auto;object-fit:contain}

.legal-document .header{background:var(--dark)}
.legal-page{padding-top:150px;padding-bottom:80px;max-width:1000px}
.legal-page h1{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:24px}
.legal-page section{margin-top:40px}
.legal-page h2{font-size:1.3rem;margin-bottom:16px}
.legal-page p{margin-bottom:16px;overflow-wrap:anywhere}
