*,*::before,*::after{box-sizing:border-box}
img{max-width:100%}
.tech-track{width:max-content;gap:0;animation:skills-loop var(--scroll-duration,30s) linear infinite}
.skills-scroll-group{display:flex;align-items:center;gap:40px;padding-right:40px;flex-shrink:0}
.tech-item{flex-shrink:0;color:rgba(255,255,255,.7)}
@keyframes skills-loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* The skills strip is always an automatic ticker, with no manual scrollbar. */
.tech-marquee{overflow:hidden!important;scrollbar-width:none}
.tech-marquee::-webkit-scrollbar{display:none}
.container{width:100%;padding-inline:clamp(14px,3vw,32px)}
.content-section{padding-inline:0}
.menu-grid{width:min(100%,740px);grid-template-columns:repeat(3,minmax(0,1fr));margin-inline:auto}
.menu-item,.intro-hero-content,.service-row-content,.contact-details,.contact-form,.contact-info,.glass-card{min-width:0}
.brand-name{font-size:clamp(28px,5vw,54px)}
.intro-headline{font-size:clamp(32px,5vw,64px);overflow-wrap:break-word}
.section-title{font-size:clamp(28px,4vw,42px)}
.intro-subtext,.section-subtitle,.contact-details p,.gallery-overlay h4,.service-row-content h4{overflow-wrap:anywhere}
.intro-cta-group,.filter-buttons,.tab-buttons,.footer-socials{flex-wrap:wrap}
.intro-metrics{flex-wrap:wrap;gap:20px}
.metric-item{flex:1 1 120px;min-width:0}
.service-row-icon{width:36%;min-width:0;flex:0 0 36%;height:auto;aspect-ratio:1}
.service-row-arrow{flex-shrink:0}
.gallery-grid,.services-list,.testimonials-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-item{min-width:0}
.contact-form input,.contact-form textarea{max-width:100%;box-sizing:border-box}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#b7c2ca;opacity:1}
.contact-form input,.contact-form textarea{color:#f2f5f7}
.footer-social{min-width:44px;min-height:44px}
.route-breadcrumbs a{display:inline-flex;align-items:center;min-height:44px}
.toast{max-width:calc(100vw - 28px);overflow-wrap:anywhere}
@media(max-width:900px){.intro-hero,.contact-grid{grid-template-columns:minmax(0,1fr)}.intro-hero-visual{max-width:100%;height:280px}.services-list{grid-template-columns:minmax(0,1fr)}.intro-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.container{padding-top:24px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.menu-item{height:135px}.header{margin-bottom:32px}.tagline{font-size:13px;letter-spacing:1px}.loading-text{font-size:12px;letter-spacing:3px;text-align:center;padding-inline:16px}.intro-hero{gap:24px}.intro-hero-visual{height:230px}.intro-floating-card{max-width:48%;padding:12px}.intro-orb{width:190px;height:190px}.gallery-grid,.testimonials-grid,.intro-values{grid-template-columns:minmax(0,1fr)}.tab-btn,.filter-btn{min-height:44px;padding:10px 14px}.tab-buttons,.filter-buttons{gap:8px}.service-row{padding:16px;gap:14px}.service-row-content h4{font-size:16px}.service-row-content p{font-size:13px}.intro-metrics{padding:20px 14px}.metric-divider{display:none}.contact-item{padding:18px;gap:14px}.contact-icon{flex-shrink:0}.intro-cta-primary,.intro-cta-secondary,.submit-btn{min-height:44px}.contact-form input,.contact-form textarea{font-size:16px}.gallery-overlay{opacity:1;background:linear-gradient(transparent,rgba(0,0,0,.85))}.footer p{line-height:1.7}}
@media(max-width:360px){.menu-item{height:120px}.menu-title{font-size:13px}.service-row{flex-wrap:wrap}.service-row-icon{flex-basis:100%;width:100%;aspect-ratio:1}.service-row-content{flex-basis:75%}}
@media(hover:none){.gallery-overlay{opacity:1}.gallery-item:hover,.service-row:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.tech-track{animation-name:skills-loop!important;animation-duration:var(--scroll-duration,30s)!important;animation-timing-function:linear!important;animation-iteration-count:infinite!important;animation-play-state:running!important}
.loader-ring::before{animation:spin 1.2s linear infinite!important}
.loader-ring::after{animation:spin .8s linear infinite reverse!important}
