
:root{
  --bg:#05080f; --bg2:#0a111f; --navy:#101728; --ink:#e8f6fb; --mute:#8fa3b8;
  --cy:#b3f0fc; --cy2:#38d5f5; --cy3:#0aa7d6; --line:rgba(179,240,252,.14);
  --glow:0 0 40px rgba(56,213,245,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Montserrat,system-ui,sans-serif;background:var(--bg);color:var(--ink);overflow-x:hidden;line-height:1.6}
a{color:inherit;text-decoration:none}
img,video,canvas{display:block;max-width:100%}
.wrap{width:min(1240px,92vw);margin:auto}
.eyebrow{font-size:.75rem;letter-spacing:.35em;text-transform:uppercase;color:var(--cy2);font-weight:600;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:40px;height:1px;background:var(--cy2)}
h2{font-size:clamp(2rem,4.6vw,3.6rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:18px 0 22px}
.grad{background:linear-gradient(100deg,#fff 0%,var(--cy) 40%,var(--cy2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
p.lead{color:var(--mute);font-size:1.08rem;max-width:62ch}
section{position:relative;padding:130px 0}

/* progress + cursor glow */
#bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--cy3),var(--cy));z-index:100;box-shadow:var(--glow)}
#glow{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(56,213,245,.10),transparent 65%);transform:translate(-50%,-50%);left:50%;top:50%}

/* nav */
nav{position:fixed;inset:0 0 auto 0;z-index:90;padding:18px 0;transition:.4s}
nav.s{background:rgba(5,8,15,.78);backdrop-filter:blur(16px);padding:10px 0;border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.18em;font-size:.95rem}
.logo img{height:44px;width:auto;filter:drop-shadow(0 0 14px rgba(56,213,245,.45))}
.logo small{display:block;font-size:.5rem;letter-spacing:.3em;color:var(--mute);font-weight:500}
.links{display:flex;gap:34px;align-items:center;font-size:.82rem;font-weight:500;letter-spacing:.08em}
.links a:not(.btn){opacity:.8;transition:.3s;position:relative}
.links a:not(.btn):hover{opacity:1;color:var(--cy)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:999px;font-weight:600;font-size:.85rem;letter-spacing:.06em;border:1px solid var(--cy2);color:var(--cy);background:rgba(56,213,245,.06);transition:.35s;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--cy2);color:#03222c;box-shadow:var(--glow);transform:translateY(-2px)}
.btn.solid{background:linear-gradient(110deg,var(--cy3),var(--cy2));color:#03222c;border:0}
.burger{display:none;background:none;border:0;color:var(--ink);font-size:1.6rem}

/* hero */
#hero{min-height:100vh;padding:0;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-3}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero-media img{animation:kb 28s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1.05) translate(0,0)}to{transform:scale(1.22) translate(-2%,-2%)}}
#net{position:absolute;inset:0;z-index:-2;width:100%;height:100%}
#hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 45%,rgba(5,8,15,.25),rgba(5,8,15,.92) 78%),linear-gradient(180deg,rgba(5,8,15,.5),transparent 30%,var(--bg))}
.hero-in{text-align:center;padding:140px 0 100px}
.chip{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border:1px solid var(--line);border-radius:999px;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cy);background:rgba(5,8,15,.5);backdrop-filter:blur(8px)}
.chip b{width:8px;height:8px;border-radius:50%;background:#35f0a0;box-shadow:0 0 12px #35f0a0;animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.3}}
h1{font-size:clamp(2.6rem,8vw,7rem);font-weight:900;line-height:1;letter-spacing:-.035em;margin:28px 0 26px}
h1 span{display:block}
.sub{font-size:clamp(1rem,1.6vw,1.3rem);color:#c4d6e2;max-width:760px;margin:0 auto 42px;font-weight:400}
.cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.scroll{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);font-size:.65rem;letter-spacing:.35em;color:var(--mute);text-align:center}
.scroll::after{content:"";display:block;width:1px;height:46px;margin:12px auto 0;background:linear-gradient(var(--cy2),transparent);animation:drop 2s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* marquee */
.marq{border-block:1px solid var(--line);background:var(--bg2);overflow:hidden;padding:22px 0}
.track{display:flex;gap:70px;width:max-content;animation:mq 38s linear infinite;font-weight:700;font-size:1.05rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(179,240,252,.45)}
.track span::after{content:"◆";margin-left:70px;color:var(--cy3);font-size:.6rem;vertical-align:middle}
@keyframes mq{to{transform:translateX(-50%)}}

/* showreel */
#reel{background:radial-gradient(ellipse at 50% 0,#0d1a30,var(--bg) 70%)}
.reel-head{text-align:center;margin-bottom:56px}
.reel-head .eyebrow{justify-content:center}
.reel-head p{margin:auto}
.screen{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 120px rgba(0,0,0,.6),0 0 90px rgba(56,213,245,.12);aspect-ratio:16/8.2;background:#02050a}
.screen canvas,.screen video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hud{position:absolute;inset:0;pointer-events:none;padding:28px 34px;display:flex;flex-direction:column;justify-content:space-between;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--cy)}
.hud .row{display:flex;justify-content:space-between}
.rec{display:flex;gap:10px;align-items:center}.rec b{width:9px;height:9px;border-radius:50%;background:#ff4d5e;animation:pulse 1.2s infinite}
#cap{font-size:clamp(1.2rem,3.2vw,2.6rem);font-weight:800;letter-spacing:-.01em;text-transform:none;color:#fff;max-width:20ch;line-height:1.1;text-shadow:0 4px 30px rgba(0,0,0,.8)}
#cap small{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cy2);margin-bottom:10px;font-weight:600}
.dots{display:flex;gap:8px}.dots i{width:34px;height:3px;background:rgba(255,255,255,.2);border-radius:2px;overflow:hidden;position:relative}
.dots i.on::after{content:"";position:absolute;inset:0;background:var(--cy2);animation:fill var(--d,6s) linear forwards}
@keyframes fill{from{transform:translateX(-100%)}to{transform:none}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-top:70px}
.stat{background:var(--bg2);padding:44px 28px;text-align:center}
.stat b{display:block;font-size:clamp(2.2rem,4.4vw,3.8rem);font-weight:900;line-height:1}
.stat span{display:block;margin-top:12px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}

/* divisions */
.div-list{display:grid;gap:34px;margin-top:70px}
.card{display:grid;grid-template-columns:1.05fr 1fr;border-radius:26px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(145deg,var(--navy),var(--bg2));min-height:470px;transition:.5s;position:relative}
.card:hover{border-color:rgba(56,213,245,.5);box-shadow:0 30px 90px rgba(0,0,0,.5),var(--glow);transform:translateY(-6px)}
.card:nth-child(even){grid-template-columns:1fr 1.05fr}.card:nth-child(even) .vis{order:2}
.vis{position:relative;overflow:hidden;min-height:320px;background:#000}
.vis img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s}
.card:hover .vis img{transform:scale(1.08)}
.vis canvas{position:absolute;inset:0;width:100%;height:100%}
.vis::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,var(--navy))}
.card:nth-child(even) .vis::after{background:linear-gradient(270deg,transparent 60%,var(--navy))}
.body{padding:54px 50px;display:flex;flex-direction:column;justify-content:center}
.num{font-size:5rem;font-weight:900;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(56,213,245,.4)}
.body h3{font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:800;margin:18px 0 14px;line-height:1.15}
.body p{color:var(--mute);margin-bottom:24px}
.tags{display:flex;flex-wrap:wrap;gap:10px}
.tags span{padding:8px 16px;border-radius:999px;border:1px solid var(--line);font-size:.75rem;letter-spacing:.06em;color:var(--cy);background:rgba(56,213,245,.05)}

/* globe */
#global{background:linear-gradient(180deg,var(--bg),#07101f 50%,var(--bg))}
.globe-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center}
#globe{width:100%;aspect-ratio:1;filter:drop-shadow(0 0 50px rgba(56,213,245,.25))}
.feat{display:grid;gap:18px;margin-top:34px}
.feat div{display:flex;gap:18px;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:rgba(10,17,31,.6);transition:.35s}
.feat div:hover{border-color:var(--cy2);transform:translateX(8px)}
.feat em{font-style:normal;width:46px;height:46px;flex:none;border-radius:12px;background:linear-gradient(135deg,var(--cy3),var(--cy2));display:grid;place-items:center;color:#03222c;font-weight:900}
.feat h4{font-size:1rem;margin-bottom:2px}.feat p{font-size:.88rem;color:var(--mute)}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:64px;counter-reset:s}
.step{padding:34px 26px;border-top:2px solid var(--line);position:relative;transition:.4s}
.step::before{counter-increment:s;content:"0" counter(s);font-size:.8rem;letter-spacing:.3em;color:var(--cy2);font-weight:700}
.step::after{content:"";position:absolute;top:-2px;left:0;height:2px;width:0;background:var(--cy2);box-shadow:var(--glow);transition:width 1s}
.step.in::after{width:100%}
.step h4{font-size:1.2rem;margin:14px 0 8px}.step p{color:var(--mute);font-size:.92rem}

/* cta */
#contact{overflow:hidden}
.cta-box{position:relative;border-radius:30px;padding:90px 6vw;text-align:center;overflow:hidden;border:1px solid var(--line);isolation:isolate}
.cta-box::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../img/ddd4c4a8a156049530d3412237fc4f0c.jpg) center/cover;opacity:.55;filter:saturate(1.2)}
.cta-box::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(5,8,15,.55),rgba(5,8,15,.92))}
.cta-box h2{max-width:18ch;margin-inline:auto}
.cta-box .lead{margin:0 auto 38px}
.contact-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px;text-align:left}
.contact-row div{padding:24px;border:1px solid var(--line);border-radius:16px;background:rgba(5,8,15,.6);backdrop-filter:blur(8px)}
.contact-row small{display:block;letter-spacing:.25em;text-transform:uppercase;font-size:.65rem;color:var(--cy2);margin-bottom:6px}
footer{padding:40px 0;border-top:1px solid var(--line);color:var(--mute);font-size:.8rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}
footer a:hover{color:var(--cy)}

.rv{opacity:0;transform:translateY(46px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media(max-width:900px){
  section{padding:90px 0}
  .links{position:fixed;inset:0 0 auto 0;top:62px;background:rgba(5,8,15,.96);flex-direction:column;padding:30px;gap:22px;display:none}
  .links.open{display:flex}.burger{display:block}
  .card,.card:nth-child(even){grid-template-columns:1fr}.card:nth-child(even) .vis{order:0}
  .vis{min-height:240px}.vis::after{background:linear-gradient(180deg,transparent 60%,var(--navy))!important}
  .body{padding:34px 26px}
  .globe-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr 1fr}
  .contact-row{grid-template-columns:1fr}.screen{aspect-ratio:16/11}.hud{padding:16px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important}.rv{opacity:1;transform:none}}

.lang{display:flex;gap:4px;border:1px solid var(--line);border-radius:999px;padding:3px}
.lang a{padding:5px 12px;border-radius:999px;font-size:.72rem;letter-spacing:.1em;opacity:.7}
.lang a.on{background:var(--cy2);color:#03222c;opacity:1;font-weight:700}
.page-hero{padding:170px 0 60px;background:radial-gradient(ellipse at 50% 0,#0d1a30,var(--bg) 70%)}
.page-hero h1{font-size:clamp(2.2rem,5vw,4rem);margin:18px 0 0}
.legal{padding:40px 0 120px}
.legal .wrap{max-width:860px}
.legal h2{font-size:1.5rem;margin:44px 0 12px;letter-spacing:0}
.legal p,.legal li{color:#b9c9d6;margin-bottom:12px}
.legal ul{padding-left:22px}
.legal a{color:var(--cy2);text-decoration:underline}
.todo{background:rgba(255,200,60,.12);border:1px dashed #ffc83c;color:#ffd978;padding:1px 8px;border-radius:6px;font-weight:600}
.notice{border:1px solid #ffc83c;background:rgba(255,200,60,.07);border-radius:14px;padding:18px 22px;margin-bottom:30px;color:#ffd978;font-size:.9rem}
.foot-logo{height:30px;opacity:.85}

.more{display:inline-block;margin-top:22px;color:var(--cy2);font-weight:600;font-size:.85rem;letter-spacing:.06em;transition:.3s}.more:hover{letter-spacing:.12em;color:var(--cy)}
.dhero{position:relative;padding:190px 0 100px;isolation:isolate;overflow:hidden}
.dhero::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--img) center/cover;opacity:.5;animation:kb 30s ease-in-out infinite alternate}
.dhero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,8,15,.95) 20%,rgba(5,8,15,.5)),linear-gradient(180deg,transparent 60%,var(--bg))}
.dhero h1{max-width:16ch}.dhero .lead{font-size:1.2rem;color:#c4d6e2}
.back{font-size:.8rem;letter-spacing:.12em;color:var(--mute)}.back:hover{color:var(--cy)}
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}
.cap{padding:34px 28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(160deg,var(--navy),var(--bg2));transition:.4s}
.cap:hover{border-color:var(--cy2);transform:translateY(-6px);box-shadow:var(--glow)}
.cap span{color:var(--cy2);font-size:.8rem;letter-spacing:.3em;font-weight:700}.cap h4{font-size:1.2rem;margin:12px 0 8px}.cap p{color:var(--mute);font-size:.93rem}
.others{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.ocard{display:flex;align-items:center;gap:20px;padding:30px;border:1px solid var(--line);border-radius:18px;transition:.35s;background:var(--bg2)}
.ocard:hover{border-color:var(--cy2);transform:translateX(6px)}.ocard small{color:var(--cy2);font-weight:800}.ocard b{flex:1;font-size:1.1rem}.ocard span{color:var(--cy2);font-size:1.4rem}
footer .wrap>span:last-child{line-height:2}
@media(max-width:900px){.caps,.others{grid-template-columns:1fr}.dhero{padding:140px 0 70px}}

.tl-h{font-size:1.4rem;margin:70px 0 26px}
.tls{border-left:1px solid var(--line);margin-left:6px}
.tl{display:grid;grid-template-columns:170px 1fr;gap:26px;padding:0 0 38px 30px;position:relative}
.tl::before{content:"";position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;background:var(--cy2);box-shadow:var(--glow)}
.tl time{color:var(--cy2);font-weight:700;font-size:.85rem;letter-spacing:.1em;padding-top:2px}
.tl h4{font-size:1.15rem}.tl small{display:block;color:var(--cy);margin:4px 0 8px;font-size:.8rem}.tl p{color:var(--mute);font-size:.93rem;max-width:68ch}
.tags.big span{font-size:.85rem;padding:10px 18px}
.fine{margin-top:40px;color:var(--mute);font-size:.75rem;opacity:.8}
@media(max-width:700px){.tl{grid-template-columns:1fr;gap:6px}}

#mailpick{position:fixed;inset:0;z-index:200;background:rgba(2,5,10,.7);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
#mailpick[hidden]{display:none}
.mp-card{width:min(420px,100%);background:linear-gradient(160deg,var(--navy),var(--bg2));border:1px solid var(--line);border-radius:22px;padding:30px;display:grid;gap:10px;box-shadow:0 30px 100px rgba(0,0,0,.7),var(--glow)}
.mp-card h4{font-size:1.2rem}.mp-addr{color:var(--cy);font-size:.9rem;margin-bottom:8px;word-break:break-all}
.mp-card a,.mp-card button{display:block;text-align:left;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(56,213,245,.05);color:var(--ink);font:inherit;font-size:.92rem;cursor:pointer;transition:.25s}
.mp-card a:hover,.mp-card button:hover{border-color:var(--cy2);background:rgba(56,213,245,.14)}
.mp-card .mp-x{text-align:center;color:var(--mute);border-color:transparent;background:none}
h1{line-height:1.1}
h1 span{padding-bottom:.12em}
h1 span+span{margin-top:-.08em}
.grad{padding-bottom:.06em}
