.hero{height:100vh;height:100svh;min-height:480px;max-height:1100px}
.hero .ph{inset:0 0 0 auto;width:min(calc(100svh*928/1152),62vw);max-width:none}[dir=rtl] .hero .ph{inset:0 auto 0 0}
.hero .ph img,[dir=rtl] .hero .ph img{object-fit:cover;object-position:center}
.hero .in{padding-block:96px clamp(24px,5vh,72px)}
.hero h1{font-size:clamp(44px,min(8vw,12vh),124px)}
.hero p.l{margin-top:clamp(12px,2.4vh,26px)}.hero .cta{margin-top:clamp(16px,3vh,34px)}
.strip{margin-top:clamp(20px,5vh,72px)}
@media(max-height:640px){.strip{display:none}}
.glass-nav{background:linear-gradient(155deg,rgba(232,238,240,.14),rgba(232,238,240,.04));-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(232,238,240,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
nav.top .links{padding:8px 20px;border-radius:22px}
nav.top .lang{background:linear-gradient(155deg,rgba(232,238,240,.14),rgba(232,238,240,.04));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-color:rgba(232,238,240,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.22);color:var(--fr)}
@media(max-width:700px){.hero{height:auto;min-height:100svh;max-height:none}.hero .ph,[dir=rtl] .hero .ph{inset:0;width:auto}.hero .ph img,[dir=rtl] .hero .ph img{object-fit:cover;object-position:30% 30%}}

#contact{background:radial-gradient(ellipse 70% 80% at 50% 0%,#1d4a54 0%,#123840 35%,#08141a 80%);padding-block:140px 120px;overflow:hidden}
#contact .cta-b{background:none;border-radius:0;padding:0;overflow:visible}
.c-ax{position:absolute;left:50%;top:-140px;height:calc(140px + 48px);width:1px;background:linear-gradient(transparent,var(--ion));box-shadow:0 0 18px 1px rgba(111,243,240,.45);pointer-events:none}
#contact .demo input{background:rgba(8,20,26,.35);border-color:rgba(232,238,240,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@media(max-width:960px){#contact{padding-block:110px 90px}.c-ax{top:-110px;height:calc(110px + 48px)}}
.ph-cam{position:absolute;inset:0;transform-origin:55% 67%;will-change:transform}
[dir=rtl] .ph-cam{transform-origin:45% 67%}
.ph-cam img{width:100%;height:100%;display:block}
.ph-cam.intro img{animation:focusPull 1.8s cubic-bezier(.2,.7,.2,1) both}
@keyframes focusPull{from{filter:blur(14px) brightness(.6);transform:scale(1.08)}to{filter:none;transform:none}}
[dir=rtl] .ph-cam.intro img{animation-name:focusPullR}@keyframes focusPullR{from{filter:blur(14px) brightness(.6);transform:scaleX(-1) scale(1.08)}to{filter:none;transform:scaleX(-1)}}
.hud{position:absolute;left:55%;top:67%;width:0;height:0;pointer-events:none;animation:hudIn .8s 1.4s both}
[dir=rtl] .hud{left:45%}
@keyframes hudIn{from{opacity:0}to{opacity:1}}
.hud-m{position:absolute;width:22px;height:31px;left:-11px;top:-15px;filter:drop-shadow(0 0 6px rgba(111,243,240,.7))}
.hud-a{transition:none}
.hud-l{position:absolute;left:12px;top:0;height:1px;width:44px;background:linear-gradient(90deg,rgba(111,243,240,.85),rgba(111,243,240,.3))}[dir=rtl] .hud-l{left:auto;right:12px;background:linear-gradient(270deg,rgba(111,243,240,.85),rgba(111,243,240,.3))}
.hud-t{position:absolute;left:56px;bottom:-14px;width:128px;padding:9px 11px;border-radius:16px;background:linear-gradient(155deg,rgba(232,238,240,.14),rgba(232,238,240,.04));-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(232,238,240,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
[dir=rtl] .hud-t{left:auto;right:56px}
.hud-t .mo{font-size:10px;display:block}.hud-t b{display:block;font-size:21px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:2px}.hud-t small{font-size:11px;color:var(--mu);font-weight:500}
.hud-s{display:block;width:100%;height:24px;margin-top:4px}
@media(max-width:700px){.hud{display:none}.ph-cam{transform-origin:50% 40%}}
.meter>i{transform-origin:left center;transform:scaleX(0);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .2s}[dir=rtl] .meter>i{transform-origin:right center}.meter.go>i{transform:scaleX(1)}
.shi{display:inline-flex;flex:none}.vals .vi{display:block;margin-bottom:14px}
.mot .acc,.mot .ln{transform-box:fill-box}
.a-connect .acc{animation:aC 2.4s cubic-bezier(.65,0,.35,1) infinite}@keyframes aC{0%,15%{transform:translateX(5px)}50%,85%{transform:translateX(0)}100%{transform:translateX(5px)}}
.a-cleared .acc{animation:aCl 2s cubic-bezier(.3,1.5,.5,1) infinite}@keyframes aCl{0%{transform:translateY(5px)}35%,100%{transform:translateY(0)}}
.a-live .acc{animation:aL 1.6s ease-in-out infinite}.a-live .ln{animation:aL2 1.6s ease-in-out infinite}@keyframes aL{0%,100%{opacity:1}50%{opacity:.45}}@keyframes aL2{0%,100%{opacity:.4}50%{opacity:1}}
.a-test .ln{stroke-dasharray:6 30;animation:aT 1.4s linear infinite}@keyframes aT{to{stroke-dashoffset:-36}}
.a-symmetry .acc,.a-symmetry .ln{transform-origin:12px 12px;transform-box:view-box;animation:aS 1.8s linear infinite}@keyframes aS{to{transform:rotate(360deg)}}
.a-force .acc{animation:aF 1.4s cubic-bezier(.5,0,.3,1) infinite}@keyframes aF{0%,100%{transform:translateY(-3px)}45%,60%{transform:translateY(0)}}
.a-flag .acc{animation:aN 2s ease-in-out infinite}@keyframes aN{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}
.a-calibrate .acc{animation:aCa 2.6s cubic-bezier(.65,0,.35,1) infinite}@keyframes aCa{0%,100%{transform:translateX(0)}50%{transform:translateX(-3px)}}
.a-device .acc{animation:aL 2s ease-in-out infinite}
.rv:not(.in) .mot *{animation-play-state:paused}
.amk{height:clamp(150px,20vw,240px)}
@media(prefers-reduced-motion:reduce){.mot *,.ph-cam.intro img,.hud{animation:none!important}}