:root{--bk:#05050a;--em:#2ee68c;--em2:#9dffcf;--vi:#8b5cf6;--wh:#f2fbff;--mute:#b4b2c6;--line:rgba(255,255,255,.12)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bk);color:var(--wh);font:400 17px/1.65 Poppins,system-ui,sans-serif;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body.loading{overflow:hidden}.no-intro body.loading{overflow:auto}.no-intro #intro{display:none}
kbd{font:500 12px 'Space Grotesk';border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-left:6px;opacity:.7}
a{color:inherit}
:focus-visible{outline:2px solid var(--em);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:var(--em);color:#000;padding:8px 14px;border-radius:8px;z-index:200}.skip:focus{left:8px}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px;position:relative;z-index:2}
.mono{font-family:"Space Grotesk",monospace;letter-spacing:.22em;text-transform:uppercase;font-size:12.5px;color:var(--em)}
.ghost{background:rgba(20,19,30,.85);border:1px solid var(--line);color:var(--wh);border-radius:999px;padding:9px 16px;font:500 13px Poppins;cursor:pointer;min-height:40px}
/* intro */
#intro{position:fixed;inset:0;z-index:150;background:#030306;transition:opacity 1s ease}
#intro.done{opacity:0;pointer-events:none}
#introCv{width:100%;height:100%;display:block}
#skipIntro{position:absolute;right:24px;bottom:24px}
/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s}
nav.solid{background:rgba(5,5,10,.88);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.18em;text-decoration:none}
.links{display:flex;gap:26px;font-size:14px;font-weight:500;margin-left:auto}.links a{text-decoration:none;color:var(--mute)}.links a:hover{color:var(--em)}
#sound{display:flex;align-items:center;gap:8px}
.eq{display:flex;gap:2px;align-items:flex-end;height:12px}.eq i{width:2px;height:3px;background:var(--em);border-radius:1px}
#sound.playing .eq i{animation:eq 1s ease-in-out infinite}#sound.playing .eq i:nth-child(2){animation-delay:.2s}#sound.playing .eq i:nth-child(3){animation-delay:.4s}
@keyframes eq{50%{height:12px}}
/* chrome sweep */
.sweep{background:linear-gradient(100deg,#fff 0%,#cfd9ea 28%,#ffffff 34%,#9dffcf 50%,#b9a2ff 68%,#fff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sweep 7s linear infinite;animation-play-state:paused}.sweep.on{animation-play-state:running}
@keyframes sweep{from{background-position:120% 0}to{background-position:-130% 0}}
.btn{position:relative;overflow:hidden;display:inline-block;min-height:48px;padding:14px 30px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid rgba(255,255,255,.22);background:linear-gradient(180deg,rgba(40,38,56,.85),rgba(18,17,28,.85));transition:transform .3s,box-shadow .3s;cursor:pointer;color:var(--wh);font-family:inherit}
.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 48%,rgba(157,255,207,.4) 52%,transparent 70%);transform:translateX(-120%);transition:transform .8s}
.btn:hover:after{transform:translateX(120%)}.btn:hover{transform:translateY(-2px);box-shadow:0 0 36px rgba(46,230,140,.4)}
.btn span{position:relative;z-index:1}
.btn.p{background:linear-gradient(180deg,#5cffaf,#21c777);color:#03140b;border-color:#5cffaf}
/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden}
.aurora{position:absolute;inset:-20%;will-change:transform;background:radial-gradient(40% 30% at 28% 25%,rgba(46,230,140,.26),transparent 70%),radial-gradient(45% 35% at 72% 18%,rgba(139,92,246,.42),transparent 70%),radial-gradient(60% 40% at 50% 85%,rgba(120,40,160,.35),transparent 70%);animation:aur 18s ease-in-out infinite alternate}
@keyframes aur{to{transform:translate3d(4%,-3%,0) rotate(6deg) scale(1.08)}}
#gl{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;transition:opacity .9s ease}body.gl-ready #gl{opacity:1}
.emb-fallback{display:block;transition:opacity .9s ease;position:absolute;left:72%;top:42%;transform:translate(-50%,-50%);width:min(560px,40vw);height:auto;z-index:1;filter:drop-shadow(0 0 60px rgba(125,255,184,.25))}
body.gl-ready .emb-fallback{opacity:0}body.no-gl .emb-fallback{opacity:1}body.no-gl #gl{display:none}
.sky{will-change:transform;position:absolute;left:0;right:0;bottom:0;height:34vh;background:url(assets/skyline.svg) bottom center/cover no-repeat;opacity:.55;z-index:0}
.sky:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,var(--bk))}
.hero-copy{position:absolute;left:0;right:0;bottom:9vh;z-index:3;pointer-events:none}
.hero-copy .cta{pointer-events:auto}
.hero h1{font-size:clamp(36px,4.4vw,74px);font-weight:900;line-height:.98;letter-spacing:-.02em;margin:10px 0 14px;max-width:900px}
.hero h1{max-width:50vw}.hero p{color:#d8d6e6;max-width:460px;margin-bottom:24px;text-shadow:0 2px 14px #000}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.hint{position:absolute;right:28px;bottom:7vh;z-index:3;writing-mode:vertical-rl;opacity:.7}
/* drop teaser */
.drop{padding:120px 0;background:radial-gradient(50% 80% at 80% 50%,rgba(139,92,246,.22),transparent 70%)}
.drop-in{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
h2{font-size:clamp(34px,5vw,68px);font-weight:900;line-height:1.02;letter-spacing:-.02em;margin:12px 0 16px}
.lead{color:var(--mute);max-width:600px;font-size:18px}
.count{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.count div{border:1px solid var(--line);border-radius:18px;padding:22px 8px;text-align:center;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.02));position:relative;overflow:hidden}
.count div:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);animation:sh 3.5s infinite;will-change:transform}
@keyframes sh{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.count b{display:block;font:800 clamp(34px,4vw,56px)/1 "Space Grotesk";color:var(--em2)}.count span{font-size:12px;color:var(--mute);letter-spacing:.2em;text-transform:uppercase}
.count .tba{grid-column:1/-1;text-align:center;margin-top:6px}
/* journey */
.journey{position:relative;height:620vh}
.pin{position:sticky;top:0;height:100vh;overflow:hidden;background:#05050a;contain:strict}
.jhead{position:absolute;top:92px;left:0;right:0;display:flex;align-items:center;gap:24px;z-index:3}
.prog{flex:1;height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}.prog i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--em),var(--vi))}
.route{position:absolute;left:0;top:58%;height:200px;width:600vw;z-index:1}
.track{position:absolute;top:0;left:0;height:100%;display:flex;will-change:transform;z-index:2;contain:layout paint}
.panel{width:100vw;height:100%;display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;padding:150px 7vw 70px;position:relative}
.panel h3{font-size:clamp(34px,4.6vw,66px);font-weight:900;line-height:1;letter-spacing:-.02em;margin:12px 0 18px}
.panel p{color:var(--mute);max-width:480px;margin-bottom:24px}
.pimg{border-radius:28px;overflow:hidden;max-height:62vh;display:grid;place-items:center}
.pimg picture{display:block;width:100%;height:100%}.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.glass{position:relative;background:linear-gradient(145deg,rgba(22,20,34,.92),rgba(10,10,16,.92));border:1px solid var(--line);transition:box-shadow .4s}
.glass:hover{box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 50px var(--glow,rgba(46,230,140,.3))}
.w-cloth{background:radial-gradient(60% 60% at 75% 40%,rgba(139,92,246,.35),transparent 70%)}.w-cloth{--glow:rgba(139,92,246,.5)}
.w-print{background:linear-gradient(rgba(46,230,140,.06) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,rgba(46,230,140,.06) 1px,transparent 1px) 0 0/44px 44px,radial-gradient(50% 60% at 70% 50%,rgba(46,230,140,.18),transparent 70%)}
.w-mobility{background:linear-gradient(180deg,transparent 60%,rgba(127,232,255,.06)),radial-gradient(55% 60% at 70% 45%,rgba(127,232,255,.16),transparent 70%),radial-gradient(40% 40% at 30% 80%,rgba(139,92,246,.16),transparent 70%)}.w-mobility .stop{color:#9fd8ff}.w-mobility{--glow:rgba(127,200,255,.45)}.w-offgrid{background:radial-gradient(55% 60% at 70% 40%,rgba(90,70,180,.18),transparent 70%),radial-gradient(45% 40% at 30% 85%,rgba(46,230,140,.14),transparent 70%)}.w-offgrid .stop{color:#ffd28a}.w-offgrid{--glow:rgba(255,196,110,.4)}
.w-drone{background:radial-gradient(50% 60% at 70% 50%,rgba(127,232,255,.14),transparent 70%)}.w-drone .stop{color:#7fe8ff}.w-drone{--glow:rgba(127,232,255,.4)}
.w-ai{background:radial-gradient(50% 60% at 70% 50%,rgba(139,92,246,.3),transparent 70%)}
.hud{position:relative}.hud .c{position:absolute;width:24px;height:24px;border:2px solid #7fe8ff}.hud .c1{left:16px;top:16px;border-right:0;border-bottom:0}.hud .c2{right:16px;top:16px;border-left:0;border-bottom:0}.hud .c3{left:16px;bottom:16px;border-right:0;border-top:0}.hud .c4{right:16px;bottom:16px;border-left:0;border-top:0}
.hud .hud .scan{position:absolute;inset:0;background:linear-gradient(180deg,#7fe8ff 0,#7fe8ff 2px,transparent 2px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);mask-image:linear-gradient(90deg,transparent,#000 50%,transparent);animation:scan 4s linear infinite;will-change:transform}
@keyframes scan{from{transform:translateY(0)}to{transform:translateY(100%)}}
.circuit{aspect-ratio:4/3;width:100%;background:radial-gradient(circle at 50% 50%,#1a1230,#08070e 70%);backdrop-filter:none}.circuit svg{width:80%}.circuit path[stroke]{stroke-dasharray:6 14;animation:flow 6s linear infinite}@keyframes flow{to{stroke-dashoffset:-200}}
/* about/contact */
.about-s,.contact-s{padding:120px 0;content-visibility:auto;contain-intrinsic-size:auto 700px}
.about{display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:center;padding:46px;border-radius:30px}
.orb{width:220px;height:220px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#1b1430,#07060d);box-shadow:0 0 80px rgba(46,230,140,.18),inset 0 0 40px rgba(139,92,246,.3)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
form{display:grid;gap:14px;padding:28px;border-radius:26px}
input,textarea,select{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--wh);border-radius:14px;padding:15px 16px;font:inherit;font-size:15px}
textarea{min-height:130px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
footer{border-top:1px solid var(--line);padding:30px 0;color:var(--mute);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
/* fallback: vertical journey */
body.vjourney .journey{height:auto}body.vjourney .pin{position:relative;height:auto;overflow:visible;contain:none}
body.vjourney .track{position:relative;flex-direction:column;transform:none!important}
body.vjourney .route,body.vjourney .prog{display:none}body.vjourney .jhead{position:relative;top:auto;padding-top:80px}
body.vjourney .panel{width:auto;height:auto;padding:60px 28px}
@media(max-width:900px){.hero h1{max-width:none}.emb-fallback{left:50%;top:34%;width:min(420px,80vw)}.links{display:none}.drop-in,.g2,.about{grid-template-columns:1fr}.panel{grid-template-columns:1fr;gap:26px}.pimg{max-height:none}.about{padding:28px;text-align:center}.orb{margin:0 auto;width:170px;height:170px}.orb img{width:120px;height:120px}.row2{grid-template-columns:1fr}.drop,.about-s,.contact-s{padding:80px 0}.hint{display:none}.hero-copy{bottom:5vh}#sound .lbl{display:none}.count b{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}#intro{display:none}}

.w-ai h3{font-size:clamp(30px,3.6vw,52px)}

a.tel{color:#30e88e;text-decoration:none;border-bottom:1px solid rgba(48,232,142,.4)}a.tel:hover{border-color:#30e88e}

/* v3.5: infinite animations run only while on screen */
.aurora,.count div:after,.hud .scan,.circuit path[stroke]{animation-play-state:paused}.live .aurora,.live.count div:after,.live .count div:after,.live .hud .scan,.live.hud .scan,.live .circuit path[stroke]{animation-play-state:running}
#sound.playing{border-color:rgba(46,230,140,.55)}#sound .eq i{transition:height .2s}
#sound.playing .eq i:nth-child(1){height:6px}#sound.playing .eq i:nth-child(2){height:11px}#sound.playing .eq i:nth-child(3){height:8px}
/* v4.0 */
#intro{transition:opacity .6s cubic-bezier(.2,.7,.2,1)}
.brand span{text-transform:uppercase}
.fnote{opacity:.7;font-size:12px;margin:6px 0 0}
#menuBtn{display:none}
.specs{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:8px;font-size:12px;opacity:.85}.specs li:before{content:"▸ ";color:var(--em)}
.pimg.devon{margin:0;position:relative}.pimg.devon img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.pimg.devon figcaption{position:absolute;left:12px;bottom:12px;font-size:11px;padding:5px 10px;border-radius:999px;background:rgba(3,3,6,.7);border:1px solid rgba(255,255,255,.18)}
html,body{overflow-x:clip}
@media(max-width:900px){
 .wrap{padding:0 20px}
 nav .wrap{height:60px;padding-left:16px;padding-right:12px}
 .brand{gap:9px;font-size:14px;letter-spacing:.16em}
 #menuBtn{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:0 11px;order:3}
 #menuBtn i{display:block;height:2px;width:100%;background:currentColor;border-radius:2px;transition:transform .25s}
 nav.open #menuBtn i:first-child{transform:translateY(4px) rotate(45deg)}nav.open #menuBtn i:last-child{transform:translateY(-4px) rotate(-45deg)}
 #sound{min-width:44px;min-height:44px;justify-content:center;margin-left:auto}
 nav.open{background:rgba(5,5,10,.96)}
 nav.open .links{display:flex;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;padding:8px 16px 18px;background:rgba(5,5,10,.96);border-bottom:1px solid var(--line)}
 nav.open .links a{padding:14px 4px;font-size:17px;color:#fff;border-bottom:1px solid rgba(255,255,255,.06)}
 .hero h1{font-size:clamp(30px,9.2vw,44px);line-height:1.06}
 .hero-copy p{font-size:16px;line-height:1.55}
 .cta{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cta .btn{min-height:48px;justify-content:center;text-align:center;padding-left:12px;padding-right:12px}
 .btn{min-height:46px}
 .panel h3{font-size:clamp(28px,8.4vw,36px)}
 .pcopy p,.lead{font-size:16px;line-height:1.6}
 input,select,textarea{font-size:16px;min-height:46px}
}
section,article[id]{scroll-margin-top:72px}
.pimg.devon{background:#020204;max-height:none;display:flex;justify-content:center}.pimg.devon picture{display:block}.pimg.devon img{aspect-ratio:4/5;height:min(68vh,600px);width:auto;max-width:100%;object-fit:contain}@media(max-width:900px){.pimg.devon img{height:auto;width:100%}}
.live-nav{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:#e5172f;color:#fff;font:700 12px/1 Poppins,sans-serif;letter-spacing:.12em;text-decoration:none;animation:livepulse 1.6s infinite}.live-nav[hidden]{display:none}.live-nav i{width:8px;height:8px;border-radius:50%;background:#fff;display:inline-block}@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(229,23,47,.55)}70%{box-shadow:0 0 0 12px rgba(229,23,47,0)}100%{box-shadow:0 0 0 0 rgba(229,23,47,0)}}@media(max-width:900px){.live-nav{margin-left:auto}}
.skies{margin-top:14px;font-size:15px;line-height:1.6;color:var(--mute)}.skies .mono{display:block;color:var(--em);margin-bottom:4px}.skies a{color:var(--em)}
/* v4.3 blinking live light */
.live-nav{background:rgba(229,23,47,.14)!important;border:1px solid rgba(255,70,90,.55);color:#fff;padding:0 14px 0 12px!important;min-height:36px;gap:9px!important;animation:none!important;box-shadow:0 0 18px rgba(229,23,47,.35)}
.live-nav i{width:11px!important;height:11px!important;background:#ff2238!important;box-shadow:0 0 6px 2px rgba(255,34,56,.9),0 0 16px 4px rgba(255,34,56,.55);animation:okwblink 1s steps(1,end) infinite}
.live-nav:hover{background:rgba(229,23,47,.28)!important}
@keyframes okwblink{0%{opacity:1}50%{opacity:.08;box-shadow:none}100%{opacity:1}}
@media(max-width:900px){.live-nav{min-height:44px;padding:0 12px!important;order:2}}
@media(prefers-reduced-motion:reduce){.live-nav i,.h-dot,.status.on i,.lp-dot{animation:none!important;opacity:1!important}}
@media(max-width:900px){nav .live-nav{order:1;margin-left:auto}nav .live-nav:not([hidden])~#sound,nav .live-nav:not([hidden])+#sound{margin-left:8px}#sound{order:2}}
/* v4.3 QA fixes */
.brand{min-height:44px}
#menuBtn,#sound,.live-nav{flex:none}
.pin{height:100svh}
#intro{top:0;right:0;bottom:0;left:0}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
nav{padding-top:env(safe-area-inset-top)}
@media(max-width:900px){nav .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}footer{padding-bottom:env(safe-area-inset-bottom)}}
@media(max-width:360px){.brand span{letter-spacing:.1em;font-size:13px}.live-nav{padding:0 10px!important}}
