/* A shared reading scale for both languages. Essential text never uses micro type. */
:root{--reading-size:18px;--reading-small:16px;--reading-label:14px;--header:88px}
body{font-size:var(--reading-size);line-height:1.75}
html{scroll-padding-top:calc(var(--header) + 16px)}
.build-story:not(.story-dark){--scene-accent:#006ca6}
p{line-height:1.75}
h1,h2,h3{text-wrap:balance}
.eyebrow,.hero-copy>.eyebrow,.home .hero-copy>.eyebrow,.build-step .eyebrow,.project-caption .eyebrow,.program-card .eyebrow,.structure-copy>.eyebrow,.brand-statement>.container>.eyebrow,.contact-top .eyebrow,.contact-compose>.eyebrow{font-size:14px;line-height:1.6;letter-spacing:.075em}
.section-heading>p,.section-heading>div:last-child:not(:first-child),.story-heading>p:last-child,.build-step>p:last-of-type,.structure-copy>p:not(.eyebrow):not(.structure-note),.duality p,.brand-equation p,.service-card p,.program-card p:not(.eyebrow),.faq-list details p,.contact-copy>p,.contact-compose .form-intro,.service-hero-grid>div>p:not(.eyebrow),.service-body p,.privacy p,.article-lede,.form-success p,.transformation-title>p:not(.eyebrow),.comparison-heading>div:last-child{font-size:18px;line-height:1.8}
.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:32px 60px}
.section-heading>p,.section-heading>div:last-child:not(:first-child){max-width:44ch;min-width:0;justify-self:end}
.section-heading>div:first-child{min-width:0}
.section-heading h2{overflow-wrap:break-word}
.build-step>p:last-of-type{max-width:45ch}
.structure-points p,.technical-line p,.service-body aside ul,.related{font-size:17px;line-height:1.8}
.structure-points strong{font-size:18px;line-height:1.5}
.structure-points>div>span,.step-index small,.space-no,.service-index{font-size:14px}
.space-link p{font-size:16px;line-height:1.65}
.text-link,.button,.hero .button,.home .hero-secondary,.build-steps>.text-link,.transformation-title .text-link,.comparison-heading .text-link,.faq-section .text-link,.service-body aside .text-link,.service-more{font-size:16px;line-height:1.5}
.button{min-height:58px;padding-block:17px}
.text-link{min-height:44px}
.service-more{margin-top:24px}
.service-card h3{font-size:clamp(26px,2.15vw,34px);line-height:1.25}
.space-link h3{font-size:clamp(28px,2.4vw,38px)}
.project-caption h3{font-size:clamp(25px,2.2vw,33px);line-height:1.35}
.story-heading h2{font-size:clamp(36px,3.5vw,54px);line-height:1.18}
.build-step h3{font-size:clamp(31px,3vw,43px);line-height:1.25}
.service-body h2,.privacy h2{font-size:34px;line-height:1.25}
.faq-list summary{font-size:19px;line-height:1.55;padding-block:24px}
.faq-list details p{padding-bottom:24px}
.duality h2{font-size:clamp(29px,2.8vw,40px);line-height:1.25}
.brand-equation>span,.technical-line,.contact-top>span,.experience-foot{font-size:14px;line-height:1.7;letter-spacing:.06em}
.model-meta,.model-meta>span:last-child,.model-note,.model-note>span,.structure-coordinate,.structure-note,.hero-coordinate,.home .hero-concept,.hero-bottom,.hero-bottom a{font-size:12px;line-height:1.6;letter-spacing:.045em}
.build-controls button,.build-controls button>span{font-size:15px;line-height:1.5;min-height:54px}
.build-controls{gap:16px}
.build-controls button{gap:8px;overflow-wrap:anywhere}
.build-visual{padding-bottom:16px}
.project-caption .eyebrow{font-size:14px}
.transformation figcaption,.comparison-pair figcaption,.gallery-card figcaption,.photo-caption-text,.service-hero figcaption,#lightbox-caption{font-size:16px;line-height:1.7;letter-spacing:0;text-transform:none}
.photo-caption-text{margin-top:10px}
.comparison-note,.gallery-count,#lightbox-count{font-size:15px;line-height:1.7}
.gallery-filters{flex-wrap:wrap;gap:12px}
.gallery-filters button{font-size:16px;min-height:48px;padding:10px 18px}
.gallery-card figcaption{padding-top:18px}
.gallery-grid{gap:42px 28px}
.contact .contact-number,.email-link{font-size:18px;line-height:1.5;min-height:48px}
.contact .contact-number{padding:14px 20px}
.contact-form label,.contact label{font-size:16px;line-height:1.6}
.contact-form label small,.contact .form-note{font-size:14px;line-height:1.75}
.contact-form input,.contact-form select,.contact-form textarea,.contact input,.contact select,.contact textarea{font-size:18px;line-height:1.6;padding:14px;min-height:52px}
.contact .form-submit .submit-label,.contact .button{font-size:16px}
.contact .form-status,#form-status{font-size:16px;line-height:1.7}
.contact-compose .form-title{font-size:32px;line-height:1.25}
.contact-compose .form-intro{margin-top:16px}
.footer-top>p,.footer-top>div,.footer-bottom{font-size:15px;line-height:1.7}
.footer-bottom{flex-wrap:wrap;gap:16px 28px}
.footer-bottom a,.footer-top>div a{display:inline-flex;align-items:center;min-height:44px;gap:9px}
.breadcrumb,.page-wayfinding .breadcrumb,.service-hero .page-wayfinding .breadcrumb{font-size:15px;line-height:1.6}
.page-return{font-size:16px;min-height:48px;padding:12px 18px}
.page-wayfinding{gap:18px;margin-bottom:32px}
.desktop-nav,.nav-contact{font-size:16px;line-height:1.5}
.desktop-nav{gap:24px}
.desktop-nav a{padding-block:15px}
.nav-wrap{gap:24px}
.nav-contact{gap:16px;min-height:48px;white-space:nowrap}
.language-switch{display:flex;align-items:center;flex:0 0 auto;gap:2px;padding:3px;border:1px solid #708493;border-radius:6px;margin-left:0}
.language-switch a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;font-size:15px;font-weight:600;line-height:1;color:#d8e4ed;border-radius:3px}
.language-switch a[aria-current=page]{background:#d9efff;color:#102c40}
.language-switch a:hover{background:#223c4f;color:#fff}
.language-switch a:focus-visible{outline:2px solid #80d9ff;outline-offset:3px}
.home .hero-copy{width:79%;max-width:1080px}
.home .hero h1{font-size:clamp(66px,7.1vw,112px);line-height:1.16}
.home .hero-description{font-size:21px;line-height:1.65;max-width:47ch;text-wrap:balance;margin-top:30px}
.home .hero-description>span{display:inline;white-space:normal}
.home .hero-actions{gap:24px;margin-top:32px}
.home .hero-secondary{min-height:48px}
.hero-signature p,.home .hero-signature p{font-size:13px;line-height:1.8;letter-spacing:.06em}
.home .hero{min-height:760px}
.home .hero-bottom{align-items:center;min-height:74px}
.home .hero-bottom>span{max-width:65%}
.home .hero-bottom a{min-height:44px}
.home .hero-concept{max-width:260px;color:#edf5fa;background:#0a1219e8;border:1px solid #627888;padding:8px 11px;text-shadow:none}
.service-hero h1{font-size:clamp(48px,5vw,80px);line-height:1.15}
.article-head h1{font-size:clamp(48px,6vw,88px);line-height:1.15}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-card{padding:34px}
.service-hero-grid>div,.service-body>div,.service-body aside,.contact-grid>div,.build-steps,.section-heading>div{min-width:0}
.service-body p,.privacy p{max-width:70ch}
.structure-points{gap:20px}
.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,6vw,100px);align-items:start}
.contact-compose{width:100%;min-width:0}
.contact .form-grid{grid-template-columns:minmax(0,1fr);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.contact-form label{min-width:0}
.contact .contact-number{max-width:100%}
.program-card>div{min-width:0;flex:1}
.program-card .circle-link{flex:0 0 auto}
.brand{display:grid;grid-template-columns:40px auto;column-gap:10px;row-gap:4px;align-items:center}
.brand img{grid-column:1;grid-row:1}
.brand>span:not(.brand-descriptor){grid-column:2;grid-row:1}
.brand-descriptor{display:block;grid-column:1/-1;grid-row:2;font-size:9px;line-height:1.35;letter-spacing:.08em;white-space:nowrap;border:0;padding:0;margin:0}
.brand-descriptor br{display:none}
@media(max-width:1180px){
  :root{--header:80px}
  .nav-wrap{gap:18px;width:calc(100% - 40px)}
  .desktop-nav{display:none}
  .language-switch{margin-left:auto}
  .nav-contact{margin-left:0}
  .menu-toggle{display:block;width:48px;height:48px;flex:0 0 auto}
  .mobile-nav.is-open{display:flex;position:absolute;top:var(--header);left:0;width:100%;background:#0a1219;flex-direction:column;padding:22px 30px 32px;max-height:calc(100svh - var(--header));overflow:auto;box-shadow:0 20px 30px #0004}
  .mobile-nav a,.mobile-nav a:last-child{font-size:20px;line-height:1.5;min-height:52px;padding:14px 0;border-bottom:1px solid #ffffff25}
  .home .hero-copy{width:92%;max-width:1000px}
  .home .hero h1{font-size:clamp(58px,7.6vw,90px)}
  .build-controls{gap:12px}
  .mobile-nav.is-open{animation:bre-menu-slide .4s cubic-bezier(.22,1,.36,1) both;transform-origin:50% 0}
  .mobile-nav.is-open a{animation:bre-menu-link .32s ease-out .06s both}
  .mobile-nav.is-open a:nth-child(2){animation-delay:.085s}
  .mobile-nav.is-open a:nth-child(3){animation-delay:.11s}
  .mobile-nav.is-open a:nth-child(4){animation-delay:.135s}
  .mobile-nav.is-open a:nth-child(5){animation-delay:.16s}
  .mobile-nav.is-open a:nth-child(6){animation-delay:.185s}
}
@keyframes bre-menu-slide{from{opacity:0;transform:translateY(-20px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}
@keyframes bre-menu-link{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.mobile-nav.is-open,.mobile-nav.is-open a{animation:none!important}}
@media(min-width:601px) and (max-width:900px){
  .home .hero-description{font-size:20px;max-width:43ch}
  .home .hero-layout{justify-content:center}
  .service-card{padding:26px}
}
/* Use a vertical reading order before the enlarged copy gets squeezed into columns. */
@media(max-width:1100px){
  .section-heading{grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
  .section-heading>p,.section-heading>div:last-child:not(:first-child){justify-self:start;max-width:60ch;margin-top:0}
  .contact-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .contact h2{font-size:clamp(43px,5.7vw,64px)}
  .contact-copy>p{max-width:58ch}
  .contact-compose{padding:32px}
  .contact-top{align-items:flex-start;flex-wrap:wrap;gap:14px 28px}
  .comparison-heading{grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
  .comparison-heading>div:last-child{max-width:60ch;justify-self:start}
}
@media(max-width:700px){
  .contact .form-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .contact-compose{padding:28px 22px}
  .program-card{gap:20px;flex-wrap:wrap}
  .program-card>div{flex-basis:calc(100% - 85px)}
}
@media(max-width:600px){
  :root{--header:78px}
  body{font-size:18px;padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .nav-wrap{width:calc(100% - 32px);gap:12px}
  .nav-contact{display:none}
  .brand>span:not(.brand-descriptor){font-size:21px}
  .brand i{font-size:16px}
  .brand small{font-size:8px}
  .brand img{width:32px;height:auto}
  .brand{grid-template-columns:32px auto;column-gap:8px;row-gap:3px}
  .brand-descriptor{font-size:8px;letter-spacing:.06em}
  .language-switch{gap:0;padding:2px}
  .language-switch a{min-width:44px;min-height:44px;font-size:14px}
  .menu-toggle{width:44px;height:44px}
  .home .hero{height:auto;min-height:calc(100vh - var(--header));min-height:calc(100svh - var(--header));max-height:none;padding-bottom:96px}
  .home .hero-layout{height:auto;justify-content:flex-start;padding-top:clamp(96px,17svh,148px);padding-bottom:30px}
  .home .hero-copy{width:100%;max-width:100%;padding:0}
  .home .hero-copy>.eyebrow{font-size:12px;gap:9px;letter-spacing:.065em;line-height:1.5}
  .home .hero h1{font-size:clamp(42px,12vw,70px);line-height:1.18;margin-top:24px;letter-spacing:-.06em}
  .home .hero-description{font-size:18px;line-height:1.65;margin-top:26px;max-width:36ch;width:100%;text-wrap:balance}
  .home .hero-description>span{display:inline;white-space:normal}
  .home .hero-actions{flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}
  .home .hero .button{font-size:16px;min-height:58px;max-width:100%;gap:22px;padding:17px 20px}
  .home .hero-secondary{font-size:16px;line-height:1.5;min-height:48px;padding-block:10px}
  .home .hero-bottom{position:relative;inset:auto;margin-top:22px;min-height:0;padding-top:24px;display:flex;gap:20px;flex-wrap:wrap}
  .home .hero-bottom>span{max-width:none;font-size:12px;line-height:1.8}
  .home .hero-bottom a{font-size:12px;min-height:44px}
  .home .hero-concept{font-size:11px;line-height:1.5;max-width:190px;bottom:14px}
  .hero-coordinate{font-size:11px}
  .section-heading h2,.faq-section h2{font-size:clamp(34px,9vw,46px);line-height:1.2}
  .section-heading>p,.section-heading>div:last-child:not(:first-child){font-size:18px}
  .story-heading h2{font-size:36px}
  .story-heading>.eyebrow,.story-heading>.eyebrow>span{font-size:14px}
  .build-step h3{font-size:32px}
  .build-step>p:last-of-type{font-size:18px;line-height:1.8}
  .build-step{min-height:70svh;padding-block:36px}
  .build-visual{padding:14px 20px 12px}
  .model-meta,.model-meta>span:last-child{font-size:12px;letter-spacing:.03em;line-height:1.4;align-items:flex-start}
  .build-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
  .build-controls button,.build-controls button>span{font-size:15px;min-height:46px;line-height:1.4}
  .build-controls button{gap:10px;padding-block:10px}
  .model-note,.model-note>span{font-size:12px;line-height:1.4;letter-spacing:0;flex-wrap:wrap;gap:8px;margin-top:8px}
  .photo-scene{height:26svh;min-height:130px;max-height:245px}
  .model-note>span{display:inline-flex}
  .step-index{font-size:34px}
  .space-link{padding:24px 14px}
  .space-link h3{font-size:28px;line-height:1.25}
  .space-link p{font-size:16px;line-height:1.6}
  .experience-foot{font-size:13px;flex-direction:column;gap:10px}
  .structure-copy h2{font-size:38px;line-height:1.2}
  .structure-copy>p:not(.eyebrow):not(.structure-note){font-size:18px}
  .structure-points strong{font-size:18px}
  .structure-points p{font-size:17px}
  .structure-note{font-size:13px}
  .project-caption h3{font-size:27px}
  .transformation-title h3,.comparison-heading h3{font-size:32px}
  .transformation-title>p:not(.eyebrow),.comparison-heading>div:last-child{font-size:18px}
  .transformation figcaption,.comparison-pair figcaption,.gallery-card figcaption,.photo-caption-text{font-size:16px;line-height:1.7}
  .duality{grid-template-columns:1fr;gap:30px}
  .duality h2{font-size:30px}
  .duality p,.brand-equation p{font-size:18px}
  .brand-equation>span,.technical-line{font-size:14px;line-height:1.7}
  .service-grid{grid-template-columns:1fr}
  .service-card{padding:30px 26px}
  .service-card h3{font-size:30px}
  .service-card p{font-size:18px;line-height:1.8}
  .technical-line{flex-direction:column;gap:12px}
  .technical-line p{font-size:17px}
  .program-card{gap:20px;flex-wrap:wrap}
  .program-card h3{font-size:29px;line-height:1.25}
  .program-card p:not(.eyebrow){font-size:18px}
  .program-symbol{font-size:48px}
  .faq-list summary{font-size:19px}
  .faq-list details p{font-size:18px}
  .contact-top{gap:16px;flex-wrap:wrap}
  .contact-top .eyebrow,.contact-top>span{font-size:14px}
  .contact h2{font-size:clamp(43px,11.6vw,62px);line-height:1.15}
  .contact-copy>p,.contact-compose .form-intro{font-size:18px}
  .contact-compose .form-title{font-size:31px}
  .contact .contact-number,.email-link{font-size:18px}
  .contact .form-note,.contact-form label small{font-size:14px}
  .contact .form-submit .submit-label{font-size:16px}
  .contact-form .form-grid{grid-template-columns:1fr}
  .footer-top>p,.footer-top>div,.footer-bottom{font-size:15px}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:12px}
  .mobile-call{min-height:calc(66px + env(safe-area-inset-bottom,0px));padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:10px;font-size:13px;line-height:1.4}
  .mobile-call strong{font-size:16px;line-height:1.4;white-space:nowrap}
  .mobile-call>span:not(.status-dot){max-width:48%}
  .breadcrumb,.page-wayfinding .breadcrumb,.service-hero .page-wayfinding .breadcrumb{font-size:14px}
  .page-return{font-size:16px}
  .service-hero h1,.article-head h1{font-size:clamp(40px,10.8vw,54px);line-height:1.18}
  .service-hero-grid>div>p:not(.eyebrow),.article-lede{font-size:18px;line-height:1.8}
  .service-hero figcaption{font-size:16px}
  .service-body h2,.privacy h2{font-size:32px}
  .service-body p,.privacy p{font-size:18px;line-height:1.8}
  .service-body aside h2{font-size:29px}
  .service-body aside ul,.related{font-size:17px}
  .gallery-grid{grid-template-columns:1fr;gap:38px}
  .gallery-filters button{font-size:16px;min-height:48px;padding:10px 15px}
  .gallery-count{font-size:15px}
  #lightbox-caption{font-size:16px;line-height:1.6}
  #lightbox-count{font-size:15px}
  .lightbox-bottom{gap:16px;flex-wrap:wrap}
}
@media(max-width:360px){
  .nav-wrap{gap:8px;width:calc(100% - 24px)}
  .brand{gap:7px}
  .brand{grid-template-columns:28px auto;row-gap:3px}
  .brand>span:not(.brand-descriptor){font-size:19px}
  .brand img{width:28px}
  .language-switch a{min-width:44px;font-size:14px}
  .home .hero h1{font-size:41px}
  .home .hero-copy>.eyebrow{font-size:11px}
  .home .hero .button{gap:15px;padding-inline:16px}
  .mobile-call{padding-inline:12px;font-size:12px}
  .space-link h3{font-size:25px}
}
@media(max-width:600px) and (max-height:650px){
  .home .hero-layout{padding-top:80px}
  .photo-scene{height:23svh;min-height:110px}
  .build-visual{padding-block:10px}
}
@media(min-width:601px) and (max-height:600px){
  .photo-scene{height:calc(100svh - 270px);min-height:100px}
  .build-controls button,.build-controls button>span{font-size:14px;min-height:44px}
  .model-note{font-size:12px}
}
@media print{.language-switch{display:none}}
@supports(-webkit-backdrop-filter:blur(1px)){.site-header,.mobile-call{-webkit-backdrop-filter:blur(15px)}}

/* The sticky scene leaves a real reading area below it, without reducing body copy. */
.build-controls button>span{min-height:0}
@media(max-width:900px){
  .build-visual{padding:10px 16px;top:var(--header)}
  .model-meta,.model-meta>span:last-child{font-size:12px;line-height:1.4;min-height:0}
  .model-meta{padding-bottom:8px;align-items:center}
  .photo-scene{height:clamp(100px,22svh,220px);min-height:0;max-height:none}
  .build-controls{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
  .build-controls button{flex:1 0 auto;min-height:44px;padding:8px 6px;font-size:15px;line-height:1.4;white-space:nowrap;overflow-wrap:normal;justify-content:center;gap:0}
  .build-controls button>span{display:none}
  .scene-progress{margin-top:4px}
  .build-step{justify-content:flex-start;min-height:58svh;padding-block:28px 36px}
  .build-step:first-child{padding-top:28px}
  .build-step .step-index{display:none}
}
@media(max-width:600px) and (max-height:650px){
  .build-visual{padding-block:8px}
  .photo-scene{height:clamp(90px,18svh,116px)}
}
/* Very short windows get ordinary document flow instead of a pinned obstruction. */
@media(max-width:600px) and (max-height:480px){
  .build-visual{position:relative;top:auto}
}

/* A single downward cue complements the main hero action. */
.home .hero-bottom{flex-wrap:nowrap;gap:18px}
.home .hero-bottom>span{flex:1 1 auto;min-width:0;max-width:none}
.home .hero-bottom .hero-scroll-arrow{display:inline-flex;flex:0 0 48px;align-items:center;justify-content:center;width:48px;min-height:48px;padding:0;gap:0}
.home .hero-scroll-arrow .ui-arrow{width:24px;height:24px}

/* Two equally visible contact choices, including on narrow screens. */
.contact-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;width:320px;max-width:100%;margin-top:28px}
.contact .contact-actions .contact-number{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:100%;min-height:58px;margin:0;gap:20px;letter-spacing:normal}
.contact-actions .contact-number>span{display:flex;flex:0 0 auto;align-items:center}
.contact-actions .ui-arrow{width:26px;height:26px}
