/* Reading scale shared by all sections, after the component styles. */
:root{--reading-size:18px;--action-size:16px;--label-size:12px}
body{font-size:var(--reading-size);line-height:1.7}
.desktop-nav a{font-size:16px}
.header-cta{font-size:15px;min-height:46px;gap:16px}
.button,.text-link,.contact-card .button,.service-content .text-link,.about-story .text-link,.result-actions .text-link{font-size:var(--action-size)}
.button{min-height:54px}
.eyebrow,.mono,.section-number,.service-number,.tech-label,.tech-tag,.software .mono,.legacy>.mono,.purpose .mono,.form-heading>.mono,.about-story .mono{font-size:var(--label-size)}
.eyebrow{letter-spacing:.065em}
.section-number{width:27px;height:27px}
.section-intro,.service-content p,.service-content li,.tech-grid p,.about-story>p,.purpose p,.legacy>p,.contact-copy>p:not(.eyebrow){font-size:var(--reading-size);line-height:1.75}
.section-intro{max-width:350px}
.section-heading>div{min-width:0}
.service h3{font-size:24px;line-height:1.25}
.service-content li{margin-block:10px}
.service-content .text-link{line-height:1.5}
.tech-grid h3,.team h3{font-size:32px}
.tech-grid p{max-width:none}
.tech-label{padding-right:35px}
.tech-tag{letter-spacing:.035em}
.software{flex-wrap:wrap}
.software>span:not(.mono){font-size:20px}
.about-story .text-link{flex-wrap:wrap;gap:12px}
.team dt{font-size:18px}
.team dd{font-size:16px;line-height:1.5}
.team dl>div{align-items:flex-start}
.contact-email{font-size:20px;overflow-wrap:anywhere}
.contact-people>a{font-size:17px;flex-wrap:wrap;gap:12px}
.contact-people small{font-size:14px}
.contact-people a>span:last-child{font-size:14px}
.form-heading h3{font-size:26px;line-height:1.3}
.form-intro{font-size:16px;line-height:1.65}
.contact-card label{font-size:16px;margin-bottom:22px}
.contact-card .optional{font-size:13px}
.contact-card input,.contact-card select,.contact-card textarea,.contact-card input::placeholder,.contact-card textarea::placeholder{font-size:16px;line-height:1.6;letter-spacing:0}
.contact-card input,.contact-card select{min-height:48px}
.contact-card .form-note,.form-note{font-size:14px;line-height:1.7}
#message-preview{font-size:16px}
.result-actions{flex-wrap:wrap;gap:12px}
.footer-top>p,.back-top{font-size:16px}
.footer-bottom{font-size:13px;flex-wrap:wrap;gap:15px 28px}
.whatsapp-float>span{font-size:15px}
.terrain-top .mono,.terrain-caption .eyebrow,.north{font-size:11px}
.terrain-top{gap:12px}
.terrain-controls{position:static;width:max-content;max-width:calc(100% - 48px);margin:0 24px 24px;flex-wrap:wrap}
.terrain-controls button{font-size:13px;min-height:44px;padding:9px 12px}
.terrain-disclaimer{position:static;font-size:11px;line-height:1.7;padding:16px 24px}
.terrain-caption h3{font-size:34px}
.story-top .eyebrow,.story-top>.mono{font-size:11px}
.story-panel p{font-size:20px;max-width:480px;line-height:1.65}
.story-copy .button,.story-copy .hero-explore{font-size:16px}
.story-copy .button{min-height:54px}
.story-step{font-size:16px;min-width:116px;gap:10px}
.story-step .mono{font-size:12px}
.story-footer .hero-experience>span{font-size:11px}
.story-scroll{font-size:11px}
.scene-caption .mono{font-size:11px;line-height:1.7}
.terrain-hero:not(.scene-ready) .scene-caption:after{font-size:11px}
.clients-heading p{font-size:18px}
@media(max-width:1200px){
 .story-scroll span{display:none}
 .story-copy{top:110px}
 .story-panel p{max-width:430px}
 .section-heading{align-items:flex-start;gap:35px}
 .section-intro{max-width:300px}
 .team dl>div{flex-direction:column;gap:5px}
 .team dd{text-align:left}
 .contact-people>a{flex-direction:column;align-items:flex-start}
 .form-row{grid-template-columns:1fr}
 .form-heading{align-items:flex-start}
}
@media(min-width:761px) and (max-width:1100px){
 .site-header{gap:18px;padding-inline:24px}
 .desktop-nav{gap:16px;margin-right:0}
 .header-cta{gap:12px;padding-inline:14px}
 .section-heading{display:block}
 .section-intro{max-width:600px;margin-top:24px}
 .services-layout{grid-template-columns:1.1fr 1fr;gap:28px}
 .service summary{gap:12px}
 .service h3{font-size:22px}
 .service-content{padding-left:0;padding-right:10px}
 .story-footer{gap:20px}
 .story-steps{gap:14px}
 .story-step{min-width:90px;font-size:15px}
 .story-footer .hero-experience>span{font-size:10px}
 .contact-email{font-size:18px}
 .tech-grid article,.tech-grid article+article{padding-inline:20px}
 .tech-grid h3{font-size:29px}
 .tech-label{font-size:11px}
}
@media(max-width:760px){
 :root{--reading-size:16px;--action-size:15px;--label-size:12px}
 .header-cta{font-size:14px;padding-inline:14px}
 .mobile-nav>a{font-size:28px}
 .mobile-nav>a span{font-size:13px}
 .story-top .eyebrow{font-size:10px;line-height:1.6;max-width:300px}
 .story-copy{top:88px}
 .story-panel p{font-size:16px;max-width:350px;line-height:1.6;margin-top:18px}
 .story-copy .hero-actions{flex-direction:column;align-items:flex-start;gap:8px;margin-top:20px}
 .story-copy .button,.story-copy .hero-explore{font-size:15px}
 .story-copy .button{min-height:48px;padding:12px 16px;gap:20px}
 .story-copy .hero-explore{min-height:40px;padding-block:6px}
 .story-step{font-size:14px;min-width:0;gap:7px}
 .story-step .mono{font-size:11px}
 .scene-caption{right:22px;bottom:135px}
 .scene-caption .mono{font-size:9px}
 .hero-stage{top:350px;bottom:80px}
 .clients-heading p{font-size:16px}
 .section-intro{max-width:none}
 .service h3{font-size:22px}
 .service-content{padding-left:0;padding-right:0}
 .service summary{gap:12px}
 .tech-grid article,.tech-grid article+article{display:block;padding:28px 0}
 .tech-label{margin-bottom:20px}
 .tech-grid h3{font-size:30px}
 .tech-grid p{margin-top:16px;max-width:520px}
 .tech-tag{margin-top:20px}
 .software>span:not(.mono){font-size:18px}
 .team dt{font-size:17px}
 .team dd{font-size:15px}
 .team dl>div{flex-direction:column;align-items:flex-start;gap:5px}
 .contact-email{font-size:18px}
 .contact-copy>p:not(.eyebrow){font-size:18px}
 .contact-people>a{font-size:17px;align-items:flex-start;flex-direction:column}
 .contact-people small{font-size:14px}
 .contact-people a>span:last-child{font-size:15px}
 .form-heading h3{font-size:25px}
 .form-row{grid-template-columns:1fr}
 .contact-card{padding:24px}
 .footer-top>p,.back-top{font-size:15px}
 .footer-bottom{font-size:12px}
 .terrain-controls{margin:0 24px 24px}
}
@media(max-width:360px){
 .story-copy{top:88px}
 .story-panel h1,.story-panel h2{font-size:36px}
 .story-step{font-size:13px;gap:6px}
 .story-steps{gap:12px}
 .scene-caption{bottom:115px}
 .scene-caption .mono{font-size:8px}
 .story-top .eyebrow{font-size:9px}
 .contact-card{padding:20px}
 .form-heading{flex-wrap:wrap;gap:6px}
 .contact-email{font-size:17px}
}
