:root{--navy:#10231e;--ink:#16251f;--blue:#187452;--muted:#61706a;--line:#d9dfda;--pale:#f2f4f1;--max:1440px}body{background:#fafbf8}html{scroll-padding-top:90px}.header{position:absolute;z-index:10;left:0;right:0;max-width:none;padding:0 4.5vw;height:96px;color:#f7faf7;border-bottom:1px solid #ffffff20}.brand-text small{color:#c3d0c8}.brand-logo{background:#fff;border-radius:50%;padding:3px}.header nav>a:hover{color:#7ed2a9}.portal-nav{border:1px solid #d2ddd644;background:transparent;border-radius:2px}.spatial-hero{position:relative;isolation:isolate;min-height:820px;height:100svh;max-height:1120px;background:#0a1512;color:#fff;overflow:hidden}.spatial-art,.spatial-art img,.spatial-shade{position:absolute;inset:0;width:100%;height:100%}.spatial-art{z-index:-3}.spatial-art img{object-fit:cover;object-position:center;transform:scale(1.035) translate(var(--drift-x,0px),var(--drift-y,0px));transition:transform 1.6s cubic-bezier(.2,.65,.3,1)}.spatial-shade{z-index:-2;background:linear-gradient(90deg,rgba(5,15,11,.65),rgba(5,15,11,.24) 45%,transparent 74%),linear-gradient(0deg,rgba(4,12,9,.92),transparent 30%,transparent 80%,rgba(4,12,9,.5))}.spatial-content{position:relative;max-width:1440px;margin:auto;padding:clamp(195px,23vh,310px) 4.5vw 150px}.spatial-eyebrow{font-size:18px;letter-spacing:3px;color:#d4e1d8;margin-bottom:33px}.spatial-content h1{font-size:clamp(65px,7.5vw,114px);font-weight:400;line-height:1.18;letter-spacing:-4px;color:#fcfff8;margin:0}.spatial-content h1 span{color:#dd6759}.spatial-intro{margin-top:32px;color:#d8e2dc;font-size:18px;line-height:1.9;letter-spacing:1px}.spatial-actions{display:flex;gap:30px;align-items:center;margin-top:38px;font-size:15px}.spatial-primary{padding:14px 25px;color:#fff;background:#226a50;border:1px solid #65937f}.spatial-primary:hover{background:#2f805f}.spatial-secondary{padding:12px 0;border-bottom:1px solid #cedbd4}.spatial-baseline{position:absolute;bottom:0;left:4.5vw;right:4.5vw;min-height:90px;border-top:1px solid #ffffff30;display:flex;justify-content:space-between;align-items:center;gap:24px;color:#c6d4cc;font-size:13px;letter-spacing:1px}.spatial-baseline a{color:#fff}.section{padding:105px 4.5vw;max-width:1440px}.section-heading{align-items:end;margin-bottom:48px;gap:40px}.section-heading h2{font-size:clamp(30px,3.2vw,48px);font-weight:450;line-height:1.4;letter-spacing:-1px}.kicker{font-size:13px;letter-spacing:2px;color:#567468;margin-bottom:18px}.section-heading>p{font-size:16px;line-height:1.85;color:#65726a}.service-grid{gap:0;border-top:1px solid #aebdb4}.service-card{border:0;border-right:1px solid #d4ddd5;padding:38px 28px 30px;background:transparent}.service-card:first-child{padding-left:0}.service-card:last-child{border:0}.service-card:hover{background:#f0f4ee;transform:none;box-shadow:none}.service-card h3{font-size:29px;font-weight:500}.service-card p{font-size:16px;line-height:1.85}.service-card svg{stroke:#36765c}.service-number{color:#9a554e}.service-tags{font-size:13px}.service-capabilities{border-top:1px solid #d9dfda;padding-top:25px;gap:12px}.service-capabilities span{background:transparent;border:1px solid #d9dfda;color:#486452}.fto-method{background:#edf2eb;border-top:2px solid #456c56;padding:36px}.fto-method>div>p{font-size:16px}.team-section{background:#e9eee6}.team-inner{max-width:1440px;padding:90px 4.5vw;gap:10vw}.team-title h2{font-weight:400;font-size:48px}.team-lines{display:none}.team-content{border-top-color:#456c56}.team-roster{padding-bottom:65px}.member-card{background:transparent;border:0}.member-info{border-top:1px solid #bac7bf}.member-index{color:#9a554e}.member-portrait{background:#e9eee6}.member-info h3{font-size:23px}.member-info p{font-size:14px}.text-button{color:#2a6048}.team-gallery{padding-top:15px;padding-bottom:95px}.team-gallery .section-heading h2{font-size:32px}.team-photo-open{border:0}.team-photo-open span{background:#10231eef}.insights{border-top:1px solid #d6dfd5}.case-library{border:0;background:transparent}.case-library-heading h3{font-size:30px;font-weight:450}.case-filters{background:#eaf0e7;padding:24px}.case-result-card{box-shadow:none;border:1px solid #d1dbd0;border-radius:2px;background:#fff}.case-labels span{background:#edf3e9;color:#3b6447}.article-card{border-color:#d4dfd2;background:#fff}.article-art{background:#e4ebe0;color:#365a40}.article-category{color:#4c785f}.article-body p{font-size:16px}.portal-section{background:#152a22}.portal-card{background:#21372d;border-color:#54715d}.contact-info{background:#eaf0e6}.contact h2{font-weight:450}footer{background:#10231e;color:#dbe6df}dialog:not(.team-photo-dialog){border-radius:3px;background:#fafcf8}button:focus-visible,a:focus-visible{outline-color:#d57966}.profile-source{color:#2b7554}
@media(min-width:1500px){.spatial-content{padding-left:65px}.spatial-art img{object-position:center 58%}}
@media(max-width:1000px){.header{padding:0 28px}.header nav{gap:18px}.spatial-content h1{font-size:76px}.spatial-content{padding-left:35px}.spatial-baseline{left:35px;right:35px}.spatial-baseline span:nth-child(2){display:none}.service-card{padding:28px 19px}.team-title h2{font-size:38px}}
@media(max-width:760px){.header{height:78px;padding:0 22px}.brand-text{font-size:17px}.brand-text small{font-size:11px}.header .menu-toggle{color:#fff}.header .menu-toggle span{background:#fff}.header nav{background:#13271f;color:#fff;top:78px;border-color:#4e6759}.spatial-hero{min-height:780px;max-height:none;height:100svh}.spatial-content{padding:142px 25px 315px}.spatial-content h1{font-size:61px;line-height:1.2;letter-spacing:-2px}.spatial-eyebrow{font-size:15px;letter-spacing:2px;margin-bottom:24px}.spatial-intro{font-size:16px;margin-top:24px}.spatial-actions{font-size:14px;gap:24px;margin-top:25px}.spatial-primary{padding:12px 18px}.spatial-art img{object-position:65% center;transform:none}.spatial-shade{background:linear-gradient(180deg,rgba(4,13,9,.62),rgba(4,13,9,.28) 48%,transparent 65%,rgba(4,13,9,.94)),linear-gradient(90deg,rgba(4,13,9,.4),transparent)}.spatial-baseline{left:25px;right:25px;min-height:70px;font-size:12px;letter-spacing:0}.section{padding:64px 24px}.section-heading{align-items:start;gap:20px;margin-bottom:30px}.section-heading h2{font-size:31px}.section-heading>p{font-size:15px}.service-grid{grid-template-columns:1fr 1fr}.service-card,.service-card:first-child{padding:25px 16px;border-right:1px solid #d4ddd5;border-bottom:1px solid #d4ddd5}.service-card:nth-child(even){border-right:0}.service-card h3{font-size:24px}.service-card p{font-size:15px}.service-tags{font-size:12px}.fto-method{padding:25px}.team-inner{padding:65px 24px;gap:35px}.team-title h2{font-size:36px}.team-gallery{padding-top:0}.member-info h3{font-size:21px}.member-info p{font-size:13px}.case-filters{padding:18px}.case-library-heading h3{font-size:26px}.spatial-hero+.expertise{padding-top:62px}}
@media(max-width:380px){.spatial-content h1{font-size:53px}.spatial-content{padding-left:20px;padding-right:20px}.spatial-actions{gap:17px}.service-grid{grid-template-columns:1fr}.service-card,.service-card:first-child{padding-left:0;border-right:0}.spatial-eyebrow{letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spatial-art img{transform:none;transition:none}*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.spatial-hero{display:none}}

/* Keep the IP letterforms and engraved plaque in frame. */
.spatial-art img{object-position:right center}@media(max-width:760px){.spatial-art{top:auto;bottom:70px;height:310px}.spatial-art img{object-fit:cover;object-position:right center}.spatial-shade{background:linear-gradient(180deg,rgba(4,13,9,.45),transparent 63%,rgba(4,13,9,.28) 86%,rgba(4,13,9,.8))}}

/* Home hero carousel: keyboard-operable controls, explicit pause, no forced motion. */
.hero-carousel-controls{position:absolute;right:4.5vw;bottom:112px;display:flex;align-items:center;gap:12px;background:#10231ee8;color:white;border:1px solid #ffffff38;border-radius:4px;padding:8px 12px;z-index:3}.hero-carousel-controls[hidden]{display:none}.hero-carousel-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;background:transparent;color:inherit;font:inherit;cursor:pointer}.hero-carousel-dots{display:flex;gap:4px}.hero-carousel-dot::after{content:"";width:7px;height:7px;border-radius:50%;background:#ffffff70}.hero-carousel-dot[aria-current="true"]::after{background:#fff;width:18px;border-radius:6px}.hero-carousel-status{font-size:12px;min-width:88px}.hero-carousel-toggle{font-size:12px!important}.hero-light .header{color:#16251f;border-color:#16251f22}.hero-light .header .brand-text small{color:#42574d}.hero-light .header nav>a:hover{color:#187452}.spatial-hero[data-theme="light"]{background:#f5f4ef;color:#16251f}.spatial-hero[data-theme="light"] .spatial-shade{background:linear-gradient(90deg,#f6f6f2e8,#f6f6f299 38%,transparent 68%),linear-gradient(0deg,#f6f6f2e8,transparent 25%,transparent 80%,#f6f6f2b3)}.spatial-hero[data-theme="light"] h1{color:#16251f}.spatial-hero[data-theme="light"] .spatial-eyebrow,.spatial-hero[data-theme="light"] .spatial-intro,.spatial-hero[data-theme="light"] .spatial-baseline,.spatial-hero[data-theme="light"] .spatial-baseline a{color:#304d40}.spatial-hero[data-theme="light"] .spatial-baseline{border-color:#16251f38}.spatial-hero[data-theme="light"] .spatial-secondary{color:#16251f;border-color:#426b56}@media(max-width:760px){.hero-carousel-controls{left:25px;right:auto;bottom:82px;max-width:calc(100% - 50px);gap:4px;padding:4px 7px}.hero-carousel-status{font-size:11px;min-width:70px}.hero-carousel-controls button{min-width:32px;min-height:36px}.hero-light .header .menu-toggle span{background:#16251f}.hero-light .header nav{color:#fff}.spatial-hero[data-theme="light"] .spatial-shade{background:linear-gradient(180deg,#f6f6f2f2,#f6f6f28c 54%,transparent 73%,#f6f6f2e6)}}

.spatial-hero[data-slide-key="train"]{background:#fff}.spatial-hero[data-slide-key="train"] .spatial-art img{object-fit:contain;object-position:center bottom;transform:none}@media(max-width:760px){.spatial-hero:not([data-slide-key="ip-gallery"]) .spatial-art img{object-fit:contain;object-position:center bottom}.hero-carousel-controls{bottom:80px}.spatial-art{bottom:125px;height:280px}.spatial-content{padding-bottom:365px}.spatial-hero{min-height:840px}}



@media(min-width:1051px){.home-service-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.home-service-grid .service-card{padding-left:18px;padding-right:18px}.home-service-grid .service-card h3{font-size:24px}}@media(min-width:761px) and (max-width:1050px){.home-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.spatial-hero[data-slide-key="protection"] #hero-title .hero-care-line{display:inline-flex;gap:.5em;color:inherit}.spatial-hero[data-slide-key="protection"] #hero-title .hero-care-line>span{color:inherit}

.header .brand-logo-picture{display:block;width:72px;height:72px;flex:0 0 72px}.header .brand-logo{display:block;width:72px;height:72px;object-fit:contain;background:transparent;border-radius:0;padding:0}@media(max-width:760px){.header .brand-logo-picture{width:60px;height:60px;flex-basis:60px}.header .brand-logo{width:60px;height:60px}}@media(min-width:761px) and (max-width:1000px){.header #navigation{gap:10px;font-size:13px}.header .brand-text{font-size:19px}.header .brand-text small{font-size:10px}}
/* Train-only camera push: restart on entering this slide, with text held still. */
@keyframes train-camera-push{from{transform:scale(.8)}to{transform:scale(1)}}
.spatial-hero[data-slide-key="train"] .spatial-art img{transform-origin:top left;animation:train-camera-push 9.8s ease-out both;transition:none}
@media(prefers-reduced-motion:reduce){.spatial-hero[data-slide-key="train"] .spatial-art img{animation:none!important;transform:none!important}}

.hero-carousel-controls{background:transparent;border:0;padding:0;gap:0;left:50%;right:auto;transform:translateX(-50%);bottom:108px}.hero-carousel-dots{gap:9px}.hero-carousel-dot{width:36px;height:36px;padding:0}.hero-carousel-dot::after{width:9px;height:9px;background:#ffffff80;box-shadow:0 0 0 1px #10231e66}.hero-carousel-dot[aria-current="true"]::after{width:22px;height:9px;background:#fff}.spatial-hero[data-theme="light"] .hero-carousel-dot::after{background:#274d3970}.spatial-hero[data-theme="light"] .hero-carousel-dot[aria-current="true"]::after{background:#187452}@media(max-width:760px){.hero-carousel-controls{left:50%;right:auto;bottom:83px;max-width:none;padding:0}.hero-carousel-dots{gap:7px}}
.hero-carousel-dot[aria-current="true"]::after{width:12px;height:12px;border-radius:50%}

.spatial-intro[hidden]{display:none}

/* One shared title scale and line rhythm for all four slides. */
.spatial-hero #hero-title{font-size:clamp(50px,5.8vw,86px);letter-spacing:-2px;line-height:1.3;white-space:nowrap}@media(max-width:760px){.spatial-hero #hero-title{font-size:clamp(24px,8vw,55px);letter-spacing:-1px;line-height:1.3}}

/* Reserve the same title and supporting-copy slots on every slide. */
.spatial-hero #hero-title{height:2.6em}.spatial-hero .spatial-intro{height:3.8em;min-height:3.8em;overflow:visible}.spatial-hero .spatial-intro.is-empty{visibility:hidden}.spatial-hero .spatial-actions{margin-top:38px}@media(max-width:760px){.spatial-hero .spatial-actions{margin-top:25px}}

/* Consistent copy width and three-line mobile slot for every carousel frame. */
.spatial-hero .spatial-intro{max-width:30em}@media(max-width:760px){.spatial-hero .spatial-intro{height:5.7em;min-height:5.7em}}

/* Fill the hero behind the header; keep the figures at the right in frame. */
.spatial-hero[data-slide-key="rumengling"]{background:#e7ddc7}
.spatial-hero[data-slide-key="rumengling"] .spatial-art{inset:0;height:100%}
.spatial-hero[data-slide-key="rumengling"] .spatial-art img{object-fit:cover;object-position:right center;transform:none}
.spatial-hero[data-slide-key="rumengling"] .spatial-shade{background:linear-gradient(90deg,#eee5d4d9,#eee5d47a 40%,transparent 72%),linear-gradient(180deg,#e7ddc78c,transparent 24%,transparent 78%,#e7ddc7c9)}
.home-page.hero-light:has(.spatial-hero[data-slide-key="rumengling"]) .header{border-bottom-color:transparent}

.header .brand .brand-text{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.header .brand .brand-team{font-size:13px;font-weight:450;letter-spacing:0;line-height:1.4;white-space:nowrap}
@media(max-width:760px){.header .brand .brand-text{gap:6px}.header .brand .brand-team{font-size:12px}}
@media(max-width:380px){.header{padding:0 14px;gap:10px}.header .brand{gap:8px}.header .brand .brand-text{font-size:22px;letter-spacing:1.5px;gap:5px}.header .brand .brand-team{font-size:11.5px;letter-spacing:0}.header .brand-logo-picture{width:48px;height:48px;flex-basis:48px}.header .brand-logo{width:48px;height:48px}}
@media(max-width:760px){
 /* Match the mobile landscape ratio, cropping only the left of the scene. */
 .spatial-hero[data-slide-key="rumengling"] .spatial-art{inset:auto 0 125px;height:auto;width:min(100%,calc(280px * 16 / 9));aspect-ratio:16 / 9;margin-inline:auto}
 .spatial-hero[data-slide-key="rumengling"] .spatial-art img{object-fit:cover;object-position:right center;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 92%,transparent)}
 .spatial-hero[data-slide-key="rumengling"] .spatial-shade{background:linear-gradient(180deg,#e7ddc740,transparent 65%,#e7ddc740)}
}
/* Keep homepage section labels and small kicker text consistent. */
.home-page .kicker{font-size:13px}
