/* V9 — an editorial sequence of material, manufacture and application. */
:root{--v9-ease:cubic-bezier(.18,.76,.2,1)}
html{scroll-behavior:smooth;scroll-padding-top:100px}body{overflow-x:clip}.eyebrow{display:block;font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:500}
.factory-cinema{background:#e8edf4;color:#152538;padding:82px var(--gutter) 70px;position:relative;overflow:hidden}
.factory-cinema-head{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:end;gap:35px;margin:0 auto 55px;max-width:1600px}.factory-cinema-head h2{font-size:clamp(42px,4.5vw,78px);letter-spacing:-.055em;line-height:1.04;margin:0;max-width:12ch}.factory-cinema-head .text-link{font-size:14px;white-space:nowrap}
.factory-film-grid{display:grid;grid-template-columns:1.65fr 1fr;align-items:start;gap:26px;max-width:1600px;margin:auto}
.v9-film{margin:0;position:relative;overflow:hidden;background:#10294a;isolation:isolate}.v9-film video{display:block;width:100%;height:100%;object-fit:cover}.v9-film figcaption{position:absolute;bottom:20px;left:24px;right:24px;color:white;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:12px;z-index:2;text-shadow:0 1px 12px #0008}.v9-film:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#061b3899);pointer-events:none;z-index:1}
.v9-film-toggle,#process-pause{border:1px solid #ffffff80;border-radius:50%;width:38px;height:38px;background:#12305577;color:white;cursor:pointer;backdrop-filter:blur(8px);font-size:15px;flex-shrink:0}.v9-film-toggle:focus-visible,#process-pause:focus-visible{outline:2px solid white;outline-offset:4px}
.campus-film{height:clamp(360px,36vw,670px);clip-path:inset(0 round 2px)}.campus-film video{object-position:50% 50%;transform:scale(calc(1.04 - var(--cinema-progress,0)*.04))}.workshop-film{height:clamp(290px,26vw,475px);margin-top:100px;transform:translateY(calc((1 - var(--cinema-progress,0))*30px))}.workshop-film video{object-position:40% 50%}
.factory-cinema-bottom{display:grid;grid-template-columns:1fr 1fr auto;gap:60px;align-items:center;border-top:1px solid #9eafc3;margin:44px auto 0;padding-top:30px;max-width:1600px}.factory-cinema-bottom h3{font-size:clamp(26px,2.8vw,43px);font-weight:400;line-height:1.15;letter-spacing:-.04em;max-width:17ch;margin:0}.factory-cinema-bottom p{font-size:17px;line-height:1.6;max-width:36ch;margin:0}.round-arrow{display:grid;place-items:center;border:1px solid #8699b1;border-radius:50%;width:70px;height:70px;font-size:28px;transition:background .3s,color .3s,transform .4s}.round-arrow:hover{background:#1239b0;color:white;transform:rotate(45deg)}
.custom-studio{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:65px 9%;padding:85px var(--gutter) 75px;background:#1235ac;color:white;overflow:hidden;isolation:isolate}.custom-heading .eyebrow{color:#c6d9ff;margin-bottom:40px}.custom-heading h2{font-size:clamp(48px,5.5vw,94px);line-height:1.05;letter-spacing:-.055em;white-space:pre-line;margin:0 0 36px;max-width:13ch}.custom-visual{position:relative;align-self:center;transform:perspective(900px) rotateY(-8deg);transition:transform 1s var(--v9-ease);box-shadow:25px 32px 70px #061c6533}.custom-studio:hover .custom-visual{transform:perspective(900px) rotateY(0)}.custom-visual img{width:100%;display:block}.custom-visual-note{padding:18px 24px;background:#0c2861;color:#bed4ff;font-size:12px;letter-spacing:.03em}.custom-brief{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff44;padding-top:28px;gap:30px}.custom-brief a{display:grid;grid-template-columns:24px 1fr 20px;gap:16px;padding:12px 0 15px;transition:transform .5s var(--v9-ease);color:white}.custom-brief a:hover{transform:translateY(-7px)}.custom-brief small{font-size:11px;color:#acc4ff;margin-top:8px}.custom-brief h3{font-size:22px;font-weight:400;letter-spacing:-.02em;margin:0 0 12px}.custom-brief p{font-size:14px;line-height:1.6;color:#bfd1ff;margin:0;max-width:25ch}.custom-brief a>span{font-size:24px}
/* Six floating specimens form a staggered gallery; captions are outside the image transforms. */
.collection-scroll{height:auto}.collection-intro{position:relative;min-height:740px;height:calc(100svh - 88px);max-height:1100px;padding:110px var(--gutter) 65px;grid-template-columns:.72fr 1.28fr;column-gap:6%;overflow:hidden;align-content:center}.collection-intro:before{inset:15% 1% 12% 20%;border-color:#8ba1c41f;transform:rotate(-15deg)}.collection-intro h1{font-size:clamp(48px,5.9vw,108px);transform:none;opacity:1;grid-row:1;max-width:9ch}.collection-intro>p{transform:none;opacity:1;font-size:17px;line-height:1.6;max-width:29ch;grid-row:2}.collection-kicker{top:43px;left:var(--gutter)}.collection-scroll-cue{left:var(--gutter);bottom:28px;font-size:12px}.collection-objects{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,1fr);gap:32px 20px;height:auto;perspective:none;transform:none;align-items:center;align-self:center;width:100%;margin:0}
.collection-objects a:nth-child(n){width:auto;min-width:0;align-self:center;transform:none!important;filter:none;display:block;position:relative;padding:0 2px}.collection-objects a:nth-child(3n+2){translate:0 -24px}.specimen-image{height:clamp(135px,13.6vw,260px);display:flex;align-items:center;justify-content:center;position:relative;transition:transform .7s var(--v9-ease)}.specimen-image:after{content:'';position:absolute;width:65%;height:12%;bottom:0;background:radial-gradient(ellipse,#2037571c,transparent 67%);transform:scaleX(1.2);filter:blur(4px);z-index:-1}.collection-objects img{height:100%;width:100%;max-height:100%;object-fit:contain;transform:rotate(var(--tilt,-7deg));filter:drop-shadow(7px 14px 8px #21395316);transition:transform .9s var(--v9-ease)}.collection-objects a:nth-child(2n){--tilt:7deg}.collection-objects a:nth-child(3n){--tilt:-4deg}.collection-objects a:hover img,.collection-objects a:focus-visible img{transform:translateY(-12px) rotate(0) scale(1.045)}.collection-objects a:hover .specimen-label{color:#103bbb;border-color:#103bbb}.specimen-label{display:grid;grid-template-columns:18px 1fr 12px;gap:5px;align-items:start;border-top:1px solid #b3c1d055;padding-top:13px;color:#2a405a;font-size:clamp(11px,.9vw,15px);line-height:1.3;transition:color .3s,border .3s;min-height:51px}.specimen-label small{font-size:9px;opacity:.55;padding-top:2px}.specimen-label b{font-size:15px;font-weight:400}.collection-intro .specimen{animation:v9-specimen-in 1s var(--v9-ease) both;animation-delay:calc(var(--object-index)*65ms)}
@keyframes v9-specimen-in{from{opacity:0;translate:0 36px}to{opacity:1}}
/* Raw material photography flows into the process without a change of page background. */
body[data-page=service]{background:#e6ebf2}.material-atlas{padding:80px var(--gutter) 55px;background:#e6ebf2;overflow:hidden}.material-atlas-head{display:grid;grid-template-columns:1fr 3fr;gap:40px;margin-bottom:35px}.material-atlas-head>div{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:end}.material-atlas h2{font-size:clamp(38px,4.4vw,72px);line-height:1.04;letter-spacing:-.05em;white-space:pre-line;margin:0}.material-atlas-head p{font-size:17px;line-height:1.65;max-width:36ch;margin:0}.raw-material-visual{position:relative;overflow:hidden;background:#d4dce8}.raw-material-visual>img{width:100%;display:block;height:clamp(340px,39vw,640px);object-fit:cover;object-position:50% 37%;transform:scale(1.015)}.raw-labels{display:grid;grid-template-columns:repeat(3,1fr);background:#d7dee8d9;position:absolute;bottom:0;left:0;right:0;backdrop-filter:blur(14px);border-top:1px solid #ffffff80}.raw-labels>div{padding:22px 24px;border-right:1px solid #aab8ca88;display:flex;gap:20px;align-items:center}.raw-labels small{font-size:10px;color:#556c87}.raw-labels h3{font-weight:400;font-size:clamp(18px,2vw,30px);letter-spacing:-.025em;margin:0;color:#173352}.material-atlas-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.material-atlas-foot p{font-size:11px;color:#5d728c;margin:0}.material-atlas-foot a{font-size:13px}
.process.section-block{background:#e6ebf2;border-top:1px solid #b7c5d4;padding-top:65px;padding-bottom:85px}.process-layout{align-items:start;gap:7%}.process-visual{position:sticky;top:110px}.process-visual h3{font-size:clamp(27px,3vw,44px);line-height:1.12;letter-spacing:-.04em;white-space:pre-line;margin:25px 0 0}.process-media{margin:0;background:#102f69;position:relative;overflow:hidden;isolation:isolate}.process-media-stack{height:clamp(260px,28vw,475px);position:relative}.process-media-layer{position:absolute;inset:0;opacity:0;transform:scale(1.045);transition:opacity .65s var(--v9-ease),transform 1.2s var(--v9-ease);pointer-events:none}.process-media-layer.active{opacity:1;transform:scale(1)}.process-media-layer img,.process-media-layer video{width:100%;height:100%;object-fit:cover;display:block}.process-media-layer img[src$="svg"]{object-fit:contain}.process-media figcaption{position:relative;display:flex;align-items:center;gap:20px;padding:19px 22px;background:#102b56;color:#e5eeff;font-size:12px;min-height:72px}.process-count{font-size:10px;letter-spacing:.08em;color:#a9c3e8}#process-pause{margin-left:auto}.process-steps details{padding:0;border-bottom:1px solid #adbdcf;overflow:hidden;position:relative}.process-steps details:first-child{border-top:1px solid #adbdcf}.process-steps summary{display:grid;grid-template-columns:30px 1fr 25px;gap:12px;align-items:center;cursor:pointer;padding:25px 0;font-size:clamp(22px,2vw,32px);letter-spacing:-.025em;list-style:none;transition:color .35s}.process-steps summary::-webkit-details-marker{display:none}.process-steps summary small{font-size:10px;letter-spacing:.1em;color:#6681a0}.process-steps summary>span:last-child{transition:transform .5s var(--v9-ease);font-size:26px;text-align:center;font-weight:300}.process-steps details[data-expanded=true] summary>span:last-child{transform:rotate(45deg)}.process-steps details[data-expanded=true] summary{color:#1239b0}.process-steps .step-content p{padding:0 28px 28px 42px;margin:0;font-size:17px;line-height:1.7;color:#48617d}.process-steps details:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:#163eb0;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--v9-ease)}.process-steps details[data-expanded=true]:before{transform:scaleX(1)}
.project-brief{display:grid;grid-template-columns:1.1fr 1fr;background:#0b2449;color:white;overflow:hidden}.brief-film{min-height:560px}.brief-film video{object-position:45% 50%}.project-brief-copy{padding:65px clamp(35px,5vw,100px);align-self:center}.project-brief h2{font-size:clamp(38px,3.9vw,65px);letter-spacing:-.05em;line-height:1.06;white-space:pre-line;margin:28px 0}.project-brief ol{counter-reset:brief;list-style:none;padding:0;margin:0 0 30px}.project-brief li{counter-increment:brief;padding:12px 0;border-bottom:1px solid #ffffff25;display:flex;gap:23px;font-size:15px;color:#d5e2f6}.project-brief li:before{content:'0' counter(brief);font-size:10px;line-height:24px;color:#8aa9d3}.contact-portrait img{object-position:center!important}.contact-portrait{border-radius:2px}
/* Footer: large signature, compact information, and usable destination rows. */
footer.footer-v9{background:#0a2044!important;color:#e6efff;padding:65px var(--gutter) 28px!important;border-top:1px solid #a9c1e328;overflow:hidden}.footer-signature{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;border-bottom:1px solid #809dca44;padding-bottom:38px;margin-bottom:40px}.footer-signature>a{font-size:clamp(74px,12vw,210px);line-height:.8;letter-spacing:-.075em;font-weight:500;color:#c7d8f1}.footer-signature>a>span{font-size:11px;letter-spacing:.16em;vertical-align:top;display:inline-block;margin:9px 0 0 16px}.footer-signature p{font-size:17px;line-height:1.4;max-width:23ch;margin:0;color:#9db7dc}.footer-grid{display:grid;grid-template-columns:1.2fr .9fr 1fr;gap:7%;align-items:start}.footer-company strong{font-size:16px;font-weight:500}.footer-company p{font-size:12px;line-height:1.8;color:#9ab4d9;max-width:35ch}.footer-index{display:block!important;padding:0!important}.footer-index a{display:grid;grid-template-columns:25px 1fr 18px;padding:13px 0;border-bottom:1px solid #809dca30;font-size:14px;gap:8px;transition:padding .4s,color .4s;color:#c4d8f6}.footer-index a:first-child{padding-top:0}.footer-index a:hover{padding-left:9px;color:white}.footer-index small{font-size:9px;opacity:.5;padding-top:4px}.footer-connect{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.footer-connect h3{font-weight:400;margin:0 0 10px;font-size:24px;letter-spacing:-.03em}.footer-connect>a{font-size:13px;color:#b2c9ea}.footer-connect .footer-email{font-size:clamp(16px,1.5vw,24px);color:white;margin-bottom:12px}.footer-connect .text-link{margin-top:13px}.footer-v9 .footer-bottom{margin-top:45px;padding-top:20px;border-top:1px solid #809dca30;font-size:11px;color:#829ec5}
/* Cross-document transitions preserve navigation while content panels reveal together. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:v9-page-out .8s var(--v9-ease) both;mix-blend-mode:normal}
::view-transition-new(root){animation:v9-page-in .85s var(--v9-ease) both;mix-blend-mode:normal}
::view-transition-group(site-header){z-index:10;animation-duration:.6s}
@keyframes v9-page-out{to{transform:translateY(-7%) scale(.96);opacity:.25;filter:blur(2px)}}
@keyframes v9-page-in{from{clip-path:polygon(0 100%,100% 82%,100% 100%,0 100%);transform:translateY(10%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:none}}
.route-veil{position:fixed;z-index:9999;inset:0;display:flex;align-items:center;justify-content:center;background:#1035ab;color:#e3edff;transform:translateY(105%);transition:transform .5s var(--v9-ease);pointer-events:none;font-size:clamp(32px,5vw,80px);letter-spacing:-.04em}.route-veil:after{content:'';position:absolute;top:65%;width:80px;height:1px;background:#bcd0ff}.route-departing .route-veil{transform:translateY(0);pointer-events:all}.route-entering main{animation:v9-fallback-in .75s var(--v9-ease) both}@keyframes v9-fallback-in{from{opacity:.3;transform:translateY(25px)}to{opacity:1;transform:none}}
.v9-reveal{opacity:0;translate:0 35px;transition:opacity .9s var(--v9-ease),translate 1s var(--v9-ease)}.v9-reveal.is-visible{opacity:1;translate:0 0}
@media(min-width:1700px){.factory-cinema,.custom-studio,.material-atlas,.collection-intro,footer.footer-v9{padding-left:max(var(--gutter),calc((100vw - 1600px)/2));padding-right:max(var(--gutter),calc((100vw - 1600px)/2))}.collection-kicker,.collection-scroll-cue{left:max(var(--gutter),calc((100vw - 1600px)/2))}}
@media(max-width:1100px){.factory-cinema-head{grid-template-columns:1fr 1.8fr}.factory-cinema-head>a{grid-column:2}.factory-film-grid{gap:18px}.workshop-film{margin-top:70px}.factory-cinema-bottom{gap:25px}.custom-studio{gap:40px}.custom-brief{gap:20px}.custom-brief a{grid-template-columns:17px 1fr 14px;gap:8px}.custom-brief h3{font-size:19px}.collection-intro{grid-template-columns:.7fr 1.3fr;column-gap:3%;min-height:680px}.collection-objects{gap:25px 10px}.specimen-label{font-size:11px}.material-atlas-head{grid-template-columns:1fr}.material-atlas-head>div{gap:30px}.footer-grid{gap:4%}.footer-signature p{font-size:15px}}
@media(max-width:760px){.factory-cinema{padding:55px var(--gutter) 45px}.factory-cinema-head{display:block;margin-bottom:30px}.factory-cinema-head .eyebrow{margin-bottom:24px}.factory-cinema-head h2{font-size:44px;max-width:12ch;margin-bottom:24px}.factory-film-grid{grid-template-columns:1fr;gap:15px}.campus-film{height:330px}.workshop-film{height:230px;margin:0 0 0 18%;transform:none}.factory-cinema-bottom{grid-template-columns:1fr auto;gap:20px;margin-top:30px}.factory-cinema-bottom h3{font-size:29px}.factory-cinema-bottom p{grid-row:2;font-size:15px}.factory-cinema-bottom .round-arrow{grid-column:2;grid-row:1/3;width:55px;height:55px}.v9-film figcaption{left:16px;right:16px;bottom:15px;font-size:11px}.custom-studio{grid-template-columns:1fr;padding:55px var(--gutter) 45px;gap:36px}.custom-heading h2{font-size:48px}.custom-heading .eyebrow{margin-bottom:28px}.custom-visual{transform:none}.custom-brief{grid-template-columns:1fr;gap:0;padding-top:8px}.custom-brief a{grid-template-columns:25px 1fr 20px;padding:20px 0;border-bottom:1px solid #ffffff25}.custom-brief p{max-width:none}.custom-brief h3{font-size:23px}.custom-visual-note{padding:15px;font-size:11px}
 .collection-intro{display:block;min-height:0;height:auto;max-height:none;padding:88px var(--gutter) 85px;overflow:hidden}.collection-intro h1{font-size:54px;max-width:11ch;margin-bottom:20px}.collection-intro>p{font-size:16px;margin:0 0 40px;max-width:34ch}.collection-objects{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,1fr);gap:30px 20px;height:auto}.collection-objects a:nth-child(n){translate:none}.collection-objects a:nth-child(even){translate:0 18px}.specimen-image{height:155px}.specimen-label{font-size:12px;min-height:46px}.collection-kicker{font-size:9px;top:35px}.collection-scroll-cue{bottom:25px}.collection-intro:before{inset:30% -30% 15%}.product-library{margin-top:0}
 .material-atlas{padding:55px var(--gutter) 40px}.material-atlas-head{gap:24px;margin-bottom:30px}.material-atlas-head>div{display:block}.material-atlas h2{font-size:41px;margin-bottom:25px}.material-atlas-head p{font-size:16px}.raw-material-visual>img{height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 40%;transform:none}.raw-labels{position:relative}.raw-labels>div{display:block;padding:15px 8px}.raw-labels small{display:block;margin-bottom:7px;font-size:9px}.raw-labels h3{font-size:13px;letter-spacing:-.02em;line-height:1.3}.material-atlas-foot{display:block}.material-atlas-foot p{line-height:1.6;margin-bottom:16px}.material-atlas-foot a{font-size:12px}.process.section-block{padding-top:45px;padding-bottom:50px}.process-visual{position:relative;top:auto}.process-media-stack{height:260px}.process-media figcaption{padding:13px 16px;gap:12px;min-height:62px}.process-visual h3{font-size:31px;margin-bottom:10px}.process-steps summary{font-size:24px;padding:23px 0;grid-template-columns:23px 1fr 22px;gap:10px}.process-steps .step-content p{padding-left:33px;padding-right:15px;font-size:16px}.project-brief{grid-template-columns:1fr}.brief-film{min-height:0;height:280px}.project-brief-copy{padding:40px var(--gutter) 50px}.project-brief h2{font-size:42px}.contact-portrait{height:250px!important}
 footer.footer-v9{padding-top:45px!important}.footer-signature{display:block;padding-bottom:30px;margin-bottom:30px}.footer-signature>a{font-size:23vw}.footer-signature>a>span{font-size:8px;margin-left:10px}.footer-signature p{margin-top:25px;max-width:none;font-size:14px}.footer-grid{grid-template-columns:1fr;gap:30px}.footer-company p{max-width:40ch}.footer-index{display:grid!important;grid-template-columns:1fr 1fr;gap:0 25px}.footer-index a:first-child{padding-top:13px}.footer-connect h3{font-size:26px}.footer-connect .footer-email{font-size:22px}.footer-v9 .footer-bottom{margin-top:35px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}@view-transition{navigation:none}::view-transition-old(root),::view-transition-new(root){animation:none}.v9-reveal{opacity:1;translate:none}.collection-intro .specimen{animation:none}.custom-visual,.workshop-film,.campus-film video{transform:none!important}.process-media-layer,.specimen-image,.collection-objects img,.process-steps summary>span:last-child{transition:none}.route-veil{display:none}.route-entering main{animation:none}}

::view-transition-group(root){pointer-events:none}

@media (min-width:761px) and (prefers-reduced-motion:no-preference){
 .collection-objects .specimen-image{animation:v9-float 6s ease-in-out infinite alternate;animation-delay:calc(var(--object-index)*-.9s);animation-play-state:paused}
 .collection-intro.is-inview .specimen-image{animation-play-state:running}
}
@keyframes v9-float{from{transform:translateY(4px)}to{transform:translateY(-7px)}}
.reduced-motion .specimen-image{animation:none!important}

/* Shorter opening scroll travel; cap large-screen travel instead of multiplying its height. */
@media(prefers-reduced-motion:no-preference){
 html:not(.reduced-motion) .precision-story{height:calc(100svh + min(125svh, 1200px))}
 html:not(.reduced-motion) .world{height:calc(100svh + min(275svh, 2500px))}
}
