@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/f-6a3bedff62.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/f-720bcf674b.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/f-e3bbd78202.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Golos Text";font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/fonts/f-6e2de38ea0.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/fonts/f-aff1b50f64.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/fonts/f-f4b8aa6351.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/fonts/f-2465c50468.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/fonts/f-1924221f8b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Layout: real footage opens, then a fixed blueprint world in WebGL where current runs from plant to city as you scroll; content bands float over it */
:root{
  --ink:#040814;      /* night ground */
  --panel:#0b1630;    /* raised surface */
  --line:#1c2c50;     /* hairlines */
  --fg:#e9eefb;       /* text */
  --mute:#93a2c7;     /* secondary text */
  --volt:#ff9d1c;     /* current, brand orange */
  --wire:#8fb0ff;     /* conductors, completed */
  --plan:#5ee0d0;     /* in design */
  --brand:#1f43a8;    /* logo navy, lifted */
  --paper:#ffffff;    /* logo tiles */
  --display:"Unbounded","Arial Black",system-ui,sans-serif;
  --body:"Golos Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--fg);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden;hyphens:manual;-webkit-hyphens:manual;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:80;background:var(--ink)}
body.lock{overflow:hidden}
a{color:inherit}
img,video{max-width:100%;display:block}
h1,h2,h3,h4,b{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.01em}
h2{font-size:clamp(28px,4.2vw,50px)}
h3{font-size:clamp(19px,2vw,24px)}
p{margin:0}
button{font-family:inherit}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
section{padding-block:clamp(72px,10vw,128px);position:relative}
.lead{color:var(--mute);max-width:60ch;font-size:clamp(16px,1.6vw,19px)}
.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--volt);outline-offset:3px;border-radius:4px}

/* preloader */
#pre{position:fixed;inset:0;z-index:100;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:opacity .6s,visibility .6s}
#pre.done{opacity:0;visibility:hidden}
#pre img{width:min(260px,60vw);height:auto;opacity:0;transform:translateY(8px);animation:preIn .7s .1s cubic-bezier(.2,.8,.2,1) forwards}
#pre .ln{width:min(260px,60vw);height:2px;background:var(--line);border-radius:2px;overflow:hidden}
#pre .ln i{display:block;height:100%;width:100%;background:var(--volt);box-shadow:0 0 12px var(--volt);transform-origin:left;transform:scaleX(0);animation:preLn 1.1s .2s cubic-bezier(.6,0,.2,1) forwards}
@keyframes preIn{to{opacity:1;transform:none}}
@keyframes preLn{to{transform:scaleX(1)}}

/* world */
#world{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
#veil{position:fixed;inset:0;z-index:1;pointer-events:none;background:var(--ink);opacity:0}
.layer{position:relative;z-index:2}

/* nav */
.nav{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);z-index:50;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.solid{background:color-mix(in srgb,var(--ink) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}
.nav .wrap{display:flex;align-items:center;gap:24px;height:72px}
.logo{display:flex;flex:none}
.logo img{height:38px;width:auto}
.nav ul{display:flex;gap:24px;list-style:none;margin:0 0 0 auto;padding:0}
.nav ul a{text-decoration:none;color:#c3cdea;font-size:15px;transition:color .2s;white-space:nowrap}
.nav ul a:hover,.nav ul a.on{color:#fff}
.btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 24px;border-radius:999px;font:500 15px var(--body);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .2s,background .2s,border-color .2s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-volt{background:var(--volt);color:#1a0f00}
.btn-volt:hover{background:#ffb04a}
.btn-ghost{border-color:color-mix(in srgb,var(--fg) 40%,transparent);color:var(--fg);background:color-mix(in srgb,var(--ink) 30%,transparent)}
.btn-ghost:hover{border-color:var(--fg)}
.nav .btn{height:42px;padding:0 20px}
.langs{display:flex;gap:2px;padding:3px;border-radius:999px;border:1px solid color-mix(in srgb,var(--fg) 22%,transparent);flex:none}
.langs button{background:none;border:0;color:var(--mute);padding:5px 10px;border-radius:999px;font:500 12px var(--body);cursor:pointer;transition:background .2s,color .2s;min-width:34px}
.langs button[aria-pressed="true"]{background:var(--fg);color:var(--ink)}
.langs button:not([aria-pressed="true"]):hover{color:var(--fg)}
.burger{display:none;background:none;border:1px solid color-mix(in srgb,var(--fg) 30%,transparent);color:var(--fg);height:42px;border-radius:999px;padding:0 16px;gap:10px;align-items:center;cursor:pointer;font:500 14px var(--body)}
.burger i{width:16px;height:10px;position:relative;display:block}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px}
.burger i::before{top:0}.burger i::after{bottom:0}
@media (max-width:1180px){.nav ul{gap:18px}.nav ul a{font-size:14px}}
@media (max-width:1060px){.nav ul,.nav .langs,.nav .btn{display:none}.burger{display:inline-flex;margin-left:auto}.logo img{height:32px}}

/* mobile menu */
#menu{position:fixed;inset:0;z-index:70;background:color-mix(in srgb,var(--ink) 96%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 8px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 24px) max(16px,env(safe-area-inset-left,0px));overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
#menu.open{opacity:1;visibility:visible}
#menu .top{display:flex;align-items:center;justify-content:space-between;height:64px}
#menu .top img{height:30px;width:auto}
#menu .top .burger{display:inline-flex}
#menu nav{display:flex;flex-direction:column;margin-top:16px}
#menu nav a{font:500 clamp(22px,7vw,34px)/1.2 var(--display);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--line);transform:translateY(12px);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .45s}
#menu.open nav a{transform:none;opacity:1}
#menu.open nav a:nth-child(2){transition-delay:.04s}#menu.open nav a:nth-child(3){transition-delay:.08s}#menu.open nav a:nth-child(4){transition-delay:.12s}#menu.open nav a:nth-child(5){transition-delay:.16s}#menu.open nav a:nth-child(6){transition-delay:.2s}
#menu .bottom{margin-top:auto;padding-top:28px;display:flex;flex-direction:column;gap:12px}
#menu .bottom .btn{justify-content:center;height:54px;font-size:16px}
#menu .langs{align-self:flex-start;margin-bottom:6px}
#menu .langs button{padding:8px 16px;font-size:14px}

/* hero */
.hero{padding:0;min-height:min(100svh,940px);display:flex;flex-direction:column;justify-content:flex-end}
.hero-media{position:absolute;inset:0;overflow:hidden;transform-origin:50% 100%;background:var(--panel)}
.hero-media video{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,20,.88) 0%,rgba(4,8,20,.55) 45%,rgba(4,8,20,.15) 100%),linear-gradient(0deg,rgba(4,8,20,.95) 0%,rgba(4,8,20,0) 45%),linear-gradient(180deg,rgba(4,8,20,.6) 0%,rgba(4,8,20,0) 22%)}
.hero .wrap{position:relative;width:100%}
.hero-copy{padding-block:150px 36px;max-width:820px}
.hero h1{font-size:clamp(26px,7.4vw,82px);line-height:1.03;letter-spacing:-.02em}
.hero h1 .kv{color:var(--volt);white-space:nowrap}
.hero .lead{margin-top:24px;color:#c9d3ee}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.where{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:96px;font-size:13px;color:#c9d3ee;display:flex;align-items:center;gap:8px;background:rgba(4,8,20,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:7px 14px;border-radius:999px;max-width:calc(100% - 32px)}
.where i{width:8px;height:8px;flex:none;border-radius:50%;background:#ff3b30;box-shadow:0 0 10px #ff3b30;animation:blink 1.6s infinite}
@keyframes blink{50%{opacity:.25}}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid color-mix(in srgb,var(--fg) 18%,transparent);margin-bottom:24px}
.stat{padding:22px 18px 4px 0;min-width:0}
.stat+.stat{padding-left:18px;border-left:1px solid color-mix(in srgb,var(--fg) 18%,transparent)}
.stat b{display:block;font:500 clamp(22px,2.8vw,36px)/1.05 var(--display);letter-spacing:-.02em;white-space:nowrap}
.stat b *{white-space:nowrap}
.stat b small{font-size:.5em;color:var(--volt);margin:0 4px;font-weight:500}
.stat > span{display:block;color:#aab6d8;font-size:14px;line-height:1.35;margin-top:8px}
.cue{display:flex;justify-content:center;padding-bottom:18px;color:var(--mute);font-size:13px;gap:10px;align-items:center}
.cue i{width:22px;height:34px;border:1.5px solid currentColor;border-radius:12px;position:relative}
.cue i::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--volt);animation:wheel 1.8s infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}80%{transform:translateY(10px);opacity:0}100%{opacity:0}}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(odd){border-left:0;padding-left:0}.stat:nth-child(even){padding-left:18px}.stat:last-child{grid-column:1/-1;border-left:0;padding-left:0}.where{top:84px;font-size:12px}.cue{display:none}.hero-copy{padding-top:132px}}

/* story */
.story{padding:0}
.ch{min-height:130vh;display:flex;align-items:center;padding-block:20vh}
.ch-card{max-width:520px;background:color-mix(in srgb,var(--ink) 62%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--wire) 18%,transparent);border-radius:24px;padding:clamp(22px,3vw,38px)}
.ch-step{display:inline-flex;align-items:center;gap:10px;color:var(--volt);font:500 14px var(--display)}
.ch-step::before{content:"";width:28px;height:2px;background:var(--volt);box-shadow:0 0 10px var(--volt);flex:none}
.ch h2{margin-top:16px;font-size:clamp(26px,3.6vw,46px)}
.ch p{color:#c3cdea;margin-top:18px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px;padding-top:22px;border-top:1px solid color-mix(in srgb,var(--wire) 20%,transparent)}
.facts > div{min-width:0}
.facts b{display:block;font:500 clamp(22px,2.6vw,32px)/1.05 var(--display);letter-spacing:-.02em}
.facts b small{font-size:.5em;color:var(--volt);margin-left:4px}
.facts span{display:block;color:var(--mute);font-size:14px;line-height:1.35;margin-top:6px}
.ch.final{justify-content:center}
.ch.final .ch-card{max-width:900px}
.epcf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid color-mix(in srgb,var(--wire) 22%,transparent);border-radius:18px;overflow:hidden;margin-top:30px}
.epcf div{padding:22px 20px;min-width:0}
.epcf div+div{border-left:1px solid color-mix(in srgb,var(--wire) 22%,transparent)}
.epcf b{display:block;font:500 clamp(36px,5vw,64px)/1 var(--display);letter-spacing:-.03em}
.epcf .f b{color:var(--volt)}
.epcf span{display:block;color:var(--mute);margin-top:12px;font-size:14px;line-height:1.35}
@media (max-width:640px){.epcf{grid-template-columns:repeat(2,minmax(0,1fr))}.epcf div:nth-child(3){border-left:0}.epcf div:nth-child(n+3){border-top:1px solid color-mix(in srgb,var(--wire) 22%,transparent)}.ch{min-height:110vh}}
.rail{position:fixed;right:max(18px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:5;display:flex;gap:14px;align-items:stretch;opacity:0;pointer-events:none;transition:opacity .4s}
.rail.on{opacity:1}
.rail .bar{width:2px;background:color-mix(in srgb,var(--wire) 25%,transparent);border-radius:2px;position:relative}
.rail .bar i{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--volt);box-shadow:0 0 12px var(--volt);transform-origin:top;transform:scaleY(0)}
.rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:30px;font-size:13px;color:var(--mute)}
.rail li{transition:color .3s}
.rail li.on{color:var(--fg)}
.mrail{display:none;position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 72px);height:3px;z-index:49;background:color-mix(in srgb,var(--wire) 15%,transparent);opacity:0;transition:opacity .3s}
.mrail i{display:block;height:100%;background:var(--volt);box-shadow:0 0 10px var(--volt);transform-origin:left;transform:scaleX(0)}
.mrail.on{opacity:1}
@media (max-width:1060px){.rail{display:none}.mrail{display:block}}

/* bands */
.band{background:color-mix(in srgb,var(--ink) 88%,transparent)}
.band.alt{background:color-mix(in srgb,#07102a 90%,transparent)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,6vw,96px);align-items:end}
.split > *{min-width:0}
@media (max-width:900px){.split{grid-template-columns:1fr}}

/* featured */
.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(12px,2vw,16px);margin-top:48px;align-items:stretch}
.feature > *{min-width:0}
.vid{position:relative;border-radius:22px;overflow:hidden;background:var(--panel);aspect-ratio:16/9;max-width:100%}
.vid video{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:14px;bottom:14px;background:rgba(4,8,20,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:7px 14px;font:500 13px var(--display);max-width:calc(100% - 28px)}
.feature .side{display:flex;flex-direction:column;gap:clamp(12px,2vw,16px)}
.feature .side .vid{aspect-ratio:auto;flex:1;min-height:160px}
.spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin:26px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.spec > div{min-width:0}
.spec dt{color:var(--mute);font-size:13px}
.spec dd{margin:2px 0 0;font-weight:500}
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:40px}
.strip figure{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--panel)}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){.strip figure:hover img{transform:scale(1.08)}}
.feat-text{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,4vw,56px);margin-top:32px}
.feat-text > *{min-width:0}
.feat-text p{color:var(--mute)}
@media (max-width:900px){.feature,.feat-text{grid-template-columns:1fr}.feature .side{display:grid;grid-template-columns:1fr 1fr}.feature .side .vid{aspect-ratio:4/3;min-height:0}.strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.tag{font-size:11px;padding:5px 10px;left:10px;bottom:10px;max-width:calc(100% - 20px)}}
.obj{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:center;margin-top:clamp(64px,8vw,104px)}
.obj > *{min-width:0}
.obj.rev .ph{order:2}
.ph{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:16/10;max-width:100%;background:var(--panel)}
.ph img{width:100%;height:100%;object-fit:cover}
.obj h3{font-size:clamp(22px,2.6vw,32px)}
.obj p{color:var(--mute);margin-top:16px}
@media (max-width:860px){.obj{grid-template-columns:1fr}.obj.rev .ph{order:0}}

/* voltage scale */
.scale{position:relative;margin:64px 22px 0 12px;height:92px}
.scale .rail0{position:absolute;left:0;right:0;top:40px;height:2px;background:var(--line);border-radius:2px}
.scale .fill{position:absolute;left:0;top:39px;height:4px;width:100%;background:linear-gradient(90deg,#ffd27a,var(--volt));border-radius:4px;box-shadow:0 0 18px var(--volt);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.scale .spark{position:absolute;top:33px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:#fff3d6;box-shadow:0 0 0 4px color-mix(in srgb,var(--volt) 40%,transparent),0 0 28px 6px var(--volt);transition:left .9s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.tick{position:absolute;top:0;transform:translateX(-50%);background:none;border:0;color:var(--mute);font:500 15px var(--display);cursor:pointer;padding:0 6px;height:92px;transition:color .2s}
.tick i{display:block;width:2px;height:12px;background:currentColor;opacity:.7;position:absolute;top:35px;left:50%;margin-left:-1px}
.tick span{display:block;margin-top:58px;white-space:nowrap}
.tick.on,.tick:hover{color:var(--fg)}
.scale-cap{display:flex;justify-content:space-between;color:var(--mute);font-size:13px;margin-top:6px}
.range-card{margin-top:40px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px;border:1px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,36px);background:color-mix(in srgb,var(--panel) 60%,transparent)}
.range-card > *{min-width:0}
.range-card .big{font:500 clamp(48px,7vw,88px)/1 var(--display);letter-spacing:-.03em;color:var(--volt)}
.range-card .big small{font-size:.38em;color:var(--fg);margin-left:6px}
.range-card .cap{color:var(--mute);margin-top:12px;font-size:15px}
.range-card ul{list-style:none;margin:0;padding:0}
.range-card li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}
.range-card li:last-child{border-bottom:0}
.range-card li b{font-weight:500}
.range-card li em{font-style:normal;color:var(--mute);font-size:15px;text-align:right;flex:none;max-width:45%}
@media (max-width:760px){.range-card{grid-template-columns:1fr;gap:20px}.range-card li{flex-direction:column;gap:2px}.range-card li em{text-align:left;max-width:none}.tick{font-size:12px;padding:0 3px}.scale{margin-left:8px;margin-right:14px}}

/* numbers */
.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--panel);border:1px solid var(--line);margin-top:36px;flex-wrap:wrap;max-width:100%}
.tabs button{border:0;background:none;color:var(--mute);font:500 15px var(--body);padding:10px 18px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}
.tabs button[aria-selected="true"]{background:var(--fg);color:var(--ink)}
.bars{margin-top:30px;border-top:1px solid var(--line)}
.bar{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr) 110px;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.bar > *{min-width:0}
.bar b{font-weight:500;display:block}
.bar small{color:var(--mute);font-size:14px;display:block}
.bar .track{height:10px;border-radius:10px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}
.bar .track i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,var(--brand),var(--wire));transform-origin:left;animation:grow 1s cubic-bezier(.2,.8,.2,1) both}
.bar.new .track i{background:linear-gradient(90deg,#ffcf7a,var(--volt))}
.bar .v{text-align:right;font:500 18px var(--display);white-space:nowrap}
.bar .v small{display:inline;font-size:12px;color:var(--mute);margin-left:4px;font-family:var(--body)}
.bars .total{display:flex;justify-content:space-between;padding:18px 0;color:var(--mute)}
.bars .total b{color:var(--fg);font:500 22px var(--display)}
.legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:16px;color:var(--mute);font-size:14px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:22px;height:8px;border-radius:8px;display:inline-block;flex:none}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (max-width:640px){.tabs{border-radius:18px;width:100%}.tabs button{flex:1 1 auto;padding:10px 12px;font-size:14px}}
@media (max-width:700px){.bar{grid-template-columns:minmax(0,1fr) auto}.bar .track{grid-column:1/-1;grid-row:2}}

/* map */
.mfilters{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--panel);border:1px solid var(--line);margin-top:32px;flex-wrap:wrap;max-width:100%;width:max-content}
.mfilters button{border:0;background:none;color:var(--mute);font:500 14px var(--body);padding:9px 16px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .25s,color .25s}
.mfilters button i{width:9px;height:9px;border-radius:50%;flex:none}
.mfilters button em{font-style:normal;opacity:.7;font-size:12px}
.mfilters button[aria-pressed="true"]{background:var(--fg);color:var(--ink)}
@media (max-width:640px){.mfilters{border-radius:18px;width:100%}.mfilters button{flex:1 1 calc(50% - 4px);justify-content:center;padding:10px 8px;font-size:13px}}
.map-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:24px;margin-top:20px;align-items:start}
.map-grid > *{min-width:0}
.map-box{position:relative;border:1px solid var(--line);border-radius:22px;background:radial-gradient(120% 100% at 65% 40%,#0a1736,var(--ink));overflow:hidden}
.map-box svg{display:block;width:100%;height:auto;touch-action:manipulation}
.rg{fill:#0e1d42;stroke:#3d5a9c;stroke-width:.8;cursor:pointer;transition:fill .35s,stroke .35s,opacity .7s;outline:none}
.rg.has{fill:color-mix(in srgb,var(--c) 22%,#0e1d42);stroke:color-mix(in srgb,var(--c) 70%,#3d5a9c)}
@media (hover:hover){.rg:hover{fill:color-mix(in srgb,var(--c,#5a78c0) 36%,#0e1d42)}}
.rg.sel{fill:color-mix(in srgb,var(--c,#5a78c0) 46%,#0e1d42);stroke:#fff;stroke-width:1.6}
.rg:focus-visible{stroke:var(--volt);stroke-width:2.2}
.map-box:not(.lit) .rg{opacity:0}
.map-box .rg{transition-delay:0s,0s,calc(var(--d,0)*55ms)}
.mk{pointer-events:none;transition:opacity .4s,transform .6s cubic-bezier(.3,1.6,.5,1) .5s;transform-box:fill-box;transform-origin:center}
.map-box:not(.lit) .mk{opacity:0;transform:scale(.3)}
.mk.off{opacity:0}
.mk .pulse{transform-box:fill-box;transform-origin:center;animation:ring 2.6s ease-out infinite}
@keyframes ring{0%{transform:scale(.6);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.mk text{font-family:var(--body);font-weight:700;fill:#040814}
.lb{font:500 13px var(--body);fill:#dfe6fa;pointer-events:none;paint-order:stroke;stroke:#040814;stroke-width:3.5px;stroke-linejoin:round;transition:opacity .3s}
.lb.off{opacity:.3}
.ctry{font:500 11px var(--body);fill:#3a4d78;letter-spacing:.18em;pointer-events:none}
.tip{position:absolute;pointer-events:none;background:rgba(4,8,20,.92);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:13px;white-space:nowrap;opacity:0;transform:translate(-50%,-140%);transition:opacity .15s;z-index:2}
.tip.on{opacity:1}
.mcap{color:var(--mute);font-size:12.5px;margin-top:12px}
.info{border:1px solid var(--line);border-radius:22px;padding:24px;background:var(--panel)}
.info h3{font-size:clamp(20px,2vw,24px)}
.info .cnt{color:var(--mute);font-size:14px;margin-top:6px}
.info ul{list-style:none;margin:18px 0 0;padding:0}
.info li{padding:14px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:12px minmax(0,1fr);gap:12px}
.info li i{width:10px;height:10px;border-radius:50%;margin-top:7px}
.info li b{font-weight:500;display:block;line-height:1.35}
.info li span{display:block;color:var(--mute);font-size:14px;margin-top:4px;line-height:1.45}
.info li em{font-style:normal;display:inline-block;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 9px;margin-top:8px;color:#c3cdea}
.info .empty{color:var(--mute);margin-top:18px;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips button{background:var(--panel);border:1px solid var(--line);color:var(--fg);border-radius:999px;padding:8px 14px;font:500 14px var(--body);cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.chips button em{font-style:normal;color:var(--mute);font-size:12px}
.chips button[aria-pressed="true"]{border-color:var(--volt);background:color-mix(in srgb,var(--volt) 14%,var(--panel))}
.chips button.dim{opacity:.4}
@media (max-width:980px){.map-grid{grid-template-columns:1fr}}
@media (max-width:640px){.lb,.ctry{display:none}}

/* team + history */
.team{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:center}
.team > *{min-width:0}
.team .ph{aspect-ratio:3/2}
.crew{display:flex;height:14px;border-radius:14px;overflow:hidden;margin-top:26px;gap:3px}
.crew i{transform-origin:left}
.crew i:nth-child(1){flex:50;background:var(--volt)}
.crew i:nth-child(2){flex:30;background:var(--wire)}
.crew i:nth-child(3){flex:20;background:var(--brand)}
.crew-l{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:16px;margin-top:16px}
.crew-l b{font:500 26px var(--display);display:block}
.crew-l span{color:var(--mute);font-size:13.5px;line-height:1.35;display:block}
@media (max-width:860px){.team{grid-template-columns:1fr}}
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(64px,8vw,104px);position:relative}
.timeline .tl-line{position:absolute;left:0;right:0;top:9px;height:2px;background:var(--line)}
.timeline .tl-line i{position:absolute;inset:0;background:linear-gradient(90deg,var(--wire),var(--volt));transform-origin:left;box-shadow:0 0 12px var(--volt)}
.timeline > div:not(.tl-line){padding-right:24px;position:relative;min-width:0}
.timeline > div:not(.tl-line)::before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:var(--ink);border:2px solid var(--volt);margin-bottom:22px;position:relative}
.timeline > div:last-child::before{background:var(--volt);box-shadow:0 0 18px var(--volt)}
.timeline b{font:500 20px var(--display);display:block}
.timeline span{color:var(--mute);font-size:15px;display:block;margin-top:6px}
@media (max-width:760px){.timeline{grid-template-columns:1fr;gap:28px}.timeline .tl-line{left:9px;right:auto;top:0;bottom:0;width:2px;height:auto}.timeline .tl-line i{transform-origin:top}.timeline > div:not(.tl-line){padding-left:42px;padding-right:0}.timeline > div:not(.tl-line)::before{position:absolute;left:0;top:2px;margin:0}}

/* license */
.lic{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,64px);margin-top:44px;align-items:start}
.lic > *{min-width:0}
.scans{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.scans img{border-radius:12px;background:var(--paper);aspect-ratio:929/1315;object-fit:cover;width:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){.scans img:hover{transform:translateY(-6px) rotate(-1deg)}}
.licbig{border-radius:22px;padding:clamp(20px,3vw,34px);background:linear-gradient(135deg,var(--brand),#10235c);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end}
.licbig > div{min-width:0}
.licbig small{color:#c5d2f5;font-size:14px}
.licbig h3{margin-top:6px}
.licbig p{color:#c5d2f5;font-size:15px;margin-top:10px;max-width:46ch}
.licbig .kv{font:500 clamp(40px,5vw,60px)/1 var(--display);color:var(--volt);white-space:nowrap}
.licbig .kv small{font-size:.4em;color:#fff}
.iso{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.iso li{border:1px solid var(--line);border-radius:16px;padding:18px 22px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center;background:color-mix(in srgb,var(--panel) 50%,transparent)}
.iso b{font:500 18px var(--display)}
.iso span{color:var(--mute);font-size:14px;display:block;min-width:0}
.iso span em{font-style:normal;color:var(--fg);display:block;font-size:15px}
.fine{color:var(--mute);font-size:13px;margin-top:14px}
.fine a{color:var(--wire)}
@media (max-width:900px){.lic{grid-template-columns:1fr}}
@media (max-width:520px){.iso li{grid-template-columns:1fr;gap:4px}}

/* clients */
.marquee{overflow:hidden;margin-top:36px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track-m{display:flex;gap:16px;width:max-content;animation:slide 40s linear infinite}
@media (hover:hover){.marquee:hover .track-m{animation-play-state:paused}}
.lg{background:var(--paper);border-radius:16px;width:220px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;flex:none}
.lg img{max-height:62px;max-width:170px;object-fit:contain}
.lg span{color:#3b4a6b;font-size:12px;text-align:center;line-height:1.2}
@keyframes slide{to{transform:translateX(calc(-50% - 8px))}}
@media (max-width:640px){.lg{width:170px;height:100px}.lg img{max-height:48px;max-width:130px}}
.cl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.cl-head .big{font:500 clamp(40px,5vw,64px)/1 var(--display);color:var(--volt)}
.cl-head .big span{display:block;font:400 14px var(--body);color:var(--mute);margin-top:8px;max-width:24ch}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}
.roles > div{min-width:0;border-top:1px solid var(--line);padding-top:14px}
.roles small{color:var(--mute);font-size:13px;display:block}
.roles p{margin-top:6px}
@media (max-width:700px){.roles{grid-template-columns:1fr}}

/* footer */
.foot{background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 88%,transparent),#030610 340px);padding-block:clamp(72px,10vw,120px) 0;position:relative;overflow:hidden}
.cta{position:relative;border-radius:28px;padding:clamp(22px,5vw,64px);background:radial-gradient(120% 140% at 100% 0%,rgba(255,157,28,.22),transparent 55%),linear-gradient(135deg,#0d1d4a,#081232);border:1px solid color-mix(in srgb,var(--wire) 22%,transparent);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px;align-items:end;overflow:hidden}
.cta > *{min-width:0;position:relative}
.cta h2{font-size:clamp(28px,4.6vw,58px)}
.cta p{color:#c3cdea;margin-top:16px;max-width:48ch}
.cta .acts{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.cta .acts .btn{justify-content:space-between;height:60px;font-size:17px}
.cta .acts .btn small{font-size:13px;opacity:.75}
.cta canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}
@media (max-width:820px){.cta{grid-template-columns:1fr}.cta .acts .btn{font-size:16px;padding:0 20px}}
.fgrid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,3fr) minmax(0,3fr);gap:clamp(24px,4vw,48px);margin-top:clamp(56px,7vw,88px);padding-bottom:48px}
.fgrid > *{min-width:0}
.fgrid h4{font:500 13px var(--body);color:var(--mute);margin:0 0 16px;letter-spacing:.02em}
.fgrid .about img{height:44px;width:auto}
.fgrid .about p{color:var(--mute);margin-top:18px;font-size:15px;max-width:36ch}
.fgrid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fgrid ul a{text-decoration:none;color:#c3cdea;font-size:15px;transition:color .2s}
.fgrid ul a:hover{color:#fff}
.crow{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}
.crow:first-of-type{padding-top:0}
.crow small{color:var(--mute);font-size:13px}
.crow .v{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.crow .v span{font-weight:500;font-size:15px;min-width:0}
.crow a.map{display:inline-flex;margin-top:8px;font-size:13px;color:var(--volt);text-decoration:none;gap:6px;align-items:center;width:max-content}
.crow a.map:hover{text-decoration:underline}
.copy{flex:none;background:none;border:1px solid var(--line);color:var(--mute);border-radius:999px;padding:4px 12px;font:500 12px var(--body);cursor:pointer;transition:color .2s,border-color .2s}
.copy:hover{color:var(--fg);border-color:var(--mute)}
.req{display:grid;gap:12px;font-size:15px}
.req div{display:grid;gap:2px}
.req small{color:var(--mute);font-size:13px}
.fbar{border-top:1px solid var(--line);padding-block:22px calc(22px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--mute);font-size:14px}
.fbar .langs{border-color:var(--line)}
.up{background:none;border:1px solid var(--line);color:var(--fg);border-radius:999px;height:38px;padding:0 16px;font:500 14px var(--body);cursor:pointer}
.up:hover{border-color:var(--mute)}
@media (max-width:980px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .track-m{animation:none;flex-wrap:wrap;width:auto}
}

/* ===== shared additions (home + inner pages) ===== */
@media (max-width:1320px){.nav ul{gap:18px}.nav ul a{font-size:14px}.nav .wrap{gap:20px}}
@media (max-width:1180px){.nav ul,.nav .langs,.nav .btn{display:none}.burger{display:inline-flex;margin-left:auto}.logo img{height:32px}.rail{display:none}.mrail{display:block}}
.langs a{color:var(--mute);padding:5px 10px;border-radius:999px;font:500 12px var(--body);min-width:34px;text-align:center;text-decoration:none;transition:background .2s,color .2s}
.langs a[aria-current="true"]{background:var(--fg);color:var(--ink)}
.langs a:not([aria-current="true"]):hover{color:var(--fg)}
#menu.open nav a:nth-child(7){transition-delay:.24s}
#menu .langs a{padding:8px 16px;font-size:14px}
.nav ul a[aria-current="page"]{color:var(--fg)}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--volt);color:#1a0f00;padding:10px 16px;border-radius:999px;font-weight:500;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
/* footer: five columns */
.fgrid{grid-template-columns:minmax(0,3fr) minmax(0,2.4fr) minmax(0,1.8fr) minmax(0,3.2fr)}
.fgrid > div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:28px}
.fgrid > div:last-child .req{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px 28px}
@media (max-width:980px){.fgrid > div:last-child .req{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.fgrid > div:last-child .req{grid-template-columns:1fr}}
.fgrid h2.fh{font:500 13px var(--body);color:var(--mute);margin:0 0 16px;letter-spacing:.02em}
@media (max-width:1180px){.fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.fgrid .about{grid-column:1/-1}}
@media (max-width:760px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
/* home: links into the new pages */
.ch-more{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:var(--fg);font:500 14px var(--body);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--volt) 60%,transparent);padding-bottom:3px;transition:color .2s,border-color .2s}
.ch-more::after{content:"→";color:var(--volt);transition:transform .25s}
.ch-more:hover{color:#fff;border-color:var(--volt)}
.ch-more:hover::after{transform:translateX(4px)}
.more-row{display:flex;justify-content:center;margin-top:clamp(48px,6vw,72px)}
.obj h3 a,.feat-text h3 a,.info b a{color:inherit;text-decoration:none;background:linear-gradient(var(--volt),var(--volt)) 0 100%/0 2px no-repeat;transition:background-size .35s}
.obj h3 a:hover,.feat-text h3 a:hover,.info b a:hover{background-size:100% 2px}
#world{opacity:0;transition:opacity 1s ease}
#world.on{opacity:1}
#pre{animation:preAuto .5s 1.6s forwards}
@keyframes preAuto{to{opacity:0;visibility:hidden}}
:where(main img[width][height]){height:auto}
.ph img,.vid video,.hero-media video,.strip img{height:100%}
.lg img{width:auto;height:auto}

/* ===== inner pages ===== */
.inner{background:var(--ink)}
.inner main{position:relative;z-index:2}
.pg-hero{position:relative;padding:calc(env(safe-area-inset-top,0px) + 132px) 0 clamp(56px,7vw,96px);overflow:hidden;isolation:isolate}
.pg-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(color-mix(in srgb,var(--wire) 7%,transparent) 1px,transparent 1px) 0 0/48px 48px,
  linear-gradient(90deg,color-mix(in srgb,var(--wire) 7%,transparent) 1px,transparent 1px) 0 0/48px 48px;
  mask-image:radial-gradient(120% 90% at 70% 10%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(120% 90% at 70% 10%,#000 30%,transparent 75%)}
.pg-hero::after{content:"";position:absolute;z-index:-1;width:min(70vw,900px);aspect-ratio:1;right:-18%;top:-40%;background:radial-gradient(closest-side,rgba(31,67,168,.45),transparent);pointer-events:none}
.pg-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,72px);align-items:end}
.pg-grid > *{min-width:0}
.pg-grid.solo{grid-template-columns:minmax(0,1fr)}
@media (max-width:900px){.pg-grid{grid-template-columns:minmax(0,1fr);align-items:start}.pg-media{aspect-ratio:16/10}.pg-hero{padding-top:calc(env(safe-area-inset-top,0px) + 104px)}}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;margin:0 0 22px;padding:0;font-size:13px;color:var(--mute)}
.crumbs li{display:flex;align-items:center;gap:10px;min-width:0}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a{color:var(--mute);text-decoration:none}
.crumbs a:hover{color:var(--fg)}
.crumbs [aria-current]{color:var(--fg)}
.pg-hero h1{font-size:clamp(28px,4.1vw,54px);max-width:24ch;hyphens:manual}
.pg-hero .lead{margin-top:22px;font-size:clamp(17px,1.7vw,20px)}
.pg-hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.kicker{display:inline-flex;align-items:center;gap:10px;color:var(--volt);font:500 14px var(--display);margin-bottom:18px}
.kicker::before{content:"";width:28px;height:2px;background:var(--volt);box-shadow:0 0 10px var(--volt);flex:none}
.kicker i{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 10px currentColor}
.pg-media{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:var(--panel);border:1px solid color-mix(in srgb,var(--wire) 18%,transparent)}
.pg-media img,.pg-media video{width:100%;height:100%;object-fit:cover;display:block}
.pg-media .tag{z-index:2}
.pg-media.map{background:radial-gradient(120% 100% at 65% 40%,#0a1736,var(--ink));display:flex;align-items:center;justify-content:center;padding:18px}
.minimap{width:100%;height:auto;display:block}
.minimap path{fill:#0e1d42;stroke:#26407e;stroke-width:1;transition:fill .3s}
.minimap path.on{fill:color-mix(in srgb,var(--c,#ff9d1c) 55%,#0e1d42);stroke:var(--c,#ff9d1c);stroke-width:1.6;filter:drop-shadow(0 0 6px var(--c,#ff9d1c))}
.minimap circle{fill:var(--c,#ff9d1c)}
.minimap .pulse{fill:none;stroke:var(--c,#ff9d1c);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:mp 2.4s ease-out infinite}
@keyframes mp{from{transform:scale(1);opacity:.9}to{transform:scale(3.2);opacity:0}}
.sec{padding-block:clamp(56px,8vw,104px);border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.sec h2{font-size:clamp(26px,3.4vw,42px)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,44px)}
.bigfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid color-mix(in srgb,var(--wire) 20%,transparent);border-radius:22px;overflow:hidden;background:color-mix(in srgb,var(--panel) 45%,transparent)}
.bigfacts > div{padding:clamp(20px,3vw,32px);min-width:0}
.bigfacts > div+div{border-left:1px solid color-mix(in srgb,var(--wire) 20%,transparent)}
.bigfacts b{display:block;font:500 clamp(30px,4vw,52px)/1 var(--display);letter-spacing:-.02em;white-space:nowrap}
.bigfacts b small{font-size:.42em;color:var(--volt);margin-left:6px}
.bigfacts span{display:block;color:var(--mute);margin-top:12px;font-size:15px;line-height:1.4}
@media (max-width:760px){.bigfacts{grid-template-columns:1fr}.bigfacts > div+div{border-left:0;border-top:1px solid color-mix(in srgb,var(--wire) 20%,transparent)}}
.prose{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px)}
.prose > *{min-width:0}
.prose p{color:#c3cdea;font-size:clamp(16px,1.5vw,18px);max-width:66ch}
.prose p+p{margin-top:18px}
@media (max-width:900px){.prose{grid-template-columns:1fr}}
.scope{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:sc}
.scope li{counter-increment:sc;border:1px solid var(--line);border-radius:18px;padding:22px 22px 24px;background:color-mix(in srgb,var(--panel) 55%,transparent);min-width:0;position:relative;transition:border-color .3s,transform .3s}
.scope li::before{content:counter(sc,decimal-leading-zero);display:block;font:500 13px var(--display);color:var(--volt);margin-bottom:14px}
.scope li:hover{border-color:color-mix(in srgb,var(--volt) 50%,transparent);transform:translateY(-3px)}
@media (max-width:980px){.scope{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.scope{grid-template-columns:1fr}}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:980px){.cards,.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.cards,.cards.two{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--panel) 60%,transparent);text-decoration:none;color:inherit;overflow:hidden;min-width:0;transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.card:hover{border-color:color-mix(in srgb,var(--volt) 55%,transparent);transform:translateY(-4px);box-shadow:0 18px 50px -20px rgba(255,157,28,.35)}
.card .cm{aspect-ratio:16/9;background:radial-gradient(120% 100% at 65% 40%,#0a1736,var(--ink));display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--line)}
.card .cm img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.card:hover .cm img{transform:scale(1.05)}
.card .cm .minimap{width:78%}
.card .cb{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.card .st{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--mute)}
.card .st i{width:8px;height:8px;border-radius:50%;flex:none}
.card h3{font-size:clamp(17px,1.6vw,20px);line-height:1.2}
.card p{color:var(--mute);font-size:14px;line-height:1.45}
.card .go{margin-top:auto;padding-top:10px;color:var(--volt);font:500 14px var(--body);display:inline-flex;gap:8px;align-items:center}
.card .go::after{content:"→";transition:transform .25s}
.card:hover .go::after{transform:translateX(4px)}
.card.static{cursor:default}
.card.static:hover{transform:none;box-shadow:none;border-color:var(--line)}
.svc-card .num{font:500 13px var(--display);color:var(--volt)}
.svc-card h3{font-size:clamp(19px,1.9vw,24px)}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font:500 14px var(--body);color:#c3cdea;text-decoration:none;transition:border-color .2s,color .2s}
.pills a:hover{border-color:var(--volt);color:#fff}
.ptable{width:100%;border-collapse:collapse;font-size:15px}
.ptable th,.ptable td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.ptable th{color:var(--mute);font-weight:500;font-size:13px}
.ptable td:last-child,.ptable th:last-child{text-align:right;white-space:nowrap;font-family:var(--display)}
.ptable tfoot td{border-bottom:0;font-family:var(--display);padding-top:18px}
@media (max-width:620px){.ptable thead{display:none}.ptable tr{display:grid;grid-template-columns:1fr auto;padding:12px 0;border-bottom:1px solid var(--line)}.ptable td{border:0;padding:2px 0}.ptable td:nth-child(2),.ptable td:nth-child(3){grid-column:1;color:var(--mute);font-size:14px}.ptable td:last-child{grid-row:1;grid-column:2}}
.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gal figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:var(--panel)}
.gal img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pfilters{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--panel);border:1px solid var(--line);flex-wrap:wrap;width:max-content;max-width:100%}
.pfilters button{border:0;background:none;color:var(--mute);font:500 14px var(--body);padding:9px 16px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .25s,color .25s}
.pfilters button i{width:8px;height:8px;border-radius:50%}
.pfilters button em{font-style:normal;opacity:.6;font-size:12px}
.pfilters button[aria-pressed="true"]{background:var(--fg);color:var(--ink)}
@media (max-width:640px){.pfilters{border-radius:18px;width:100%}.pfilters button{flex:1 1 calc(50% - 4px);justify-content:center}}
.card[hidden]{display:none}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.contact-grid > div{border:1px solid var(--line);border-radius:22px;padding:26px;background:color-mix(in srgb,var(--panel) 55%,transparent);min-width:0}
.contact-grid small{color:var(--mute);font-size:13px;display:block}
.contact-grid .big{font:500 clamp(20px,2.2vw,26px)/1.25 var(--display);margin-top:8px;display:block;text-decoration:none;color:var(--fg);overflow-wrap:anywhere}
.contact-grid a.big:hover{color:var(--volt)}
.contact-grid p{color:var(--mute);font-size:14px;margin-top:10px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.reqs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 32px}
.reqs div{min-width:0;border-top:1px solid var(--line);padding-top:14px}
.reqs small{color:var(--mute);font-size:13px;display:block}
.reqs span{display:block;margin-top:4px;font-weight:500}
@media (max-width:760px){.reqs{grid-template-columns:1fr}}
.nf{min-height:70vh;display:flex;align-items:center}
.inner .foot{background:linear-gradient(180deg,var(--ink),#030610 340px)}
html.js [data-in]{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
html.js [data-in].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js [data-in]{opacity:1;transform:none}}
@media (max-width:420px){.pg-hero h1{font-size:25px;hyphens:auto;-webkit-hyphens:auto}}
/* ===== hero: the 3D drawing instead of a video ===== */
.hero-media{background:transparent}
.hero-media .wposter{position:absolute;inset:0;display:block;transition:opacity 1.4s ease}
.hero-media .wposter img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
html.world-on .hero-media .wposter{opacity:0}
.hero-media::after{background:linear-gradient(90deg,rgba(4,8,20,.92) 0%,rgba(4,8,20,.62) 34%,rgba(4,8,20,0) 62%),linear-gradient(0deg,rgba(4,8,20,.96) 0%,rgba(4,8,20,0) 38%),linear-gradient(180deg,rgba(4,8,20,.55) 0%,rgba(4,8,20,0) 18%)}
@media (max-width:760px){.hero-media::after{background:linear-gradient(0deg,rgba(4,8,20,.94) 0%,rgba(4,8,20,.72) 30%,rgba(4,8,20,.35) 58%,rgba(4,8,20,.1) 80%,rgba(4,8,20,.4) 100%)}}
@media (max-width:760px){.hero .hero-copy{padding-top:calc(var(--hdr,72px) + 28svh)}}
/* ===== soft transitions ===== */
@keyframes softIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
[role="tabpanel"]:not([hidden]){animation:softIn .5s cubic-bezier(.2,.8,.2,1) both}
#info > *,#rlist > li,#rv,#rcap{animation:softIn .45s cubic-bezier(.2,.8,.2,1) both}
#rlist > li:nth-child(2){animation-delay:.04s}#rlist > li:nth-child(3){animation-delay:.08s}#rlist > li:nth-child(4){animation-delay:.12s}
#info ul > li{animation:softIn .45s cubic-bezier(.2,.8,.2,1) both}
#info ul > li:nth-child(2){animation-delay:.05s}#info ul > li:nth-child(3){animation-delay:.1s}#info ul > li:nth-child(4){animation-delay:.15s}
.tabs button,.mfilters button,.pfilters button,.chips button{transition:background .3s cubic-bezier(.2,.8,.2,1),color .3s,border-color .3s,transform .2s}
.tabs button:active,.mfilters button:active,.pfilters button:active,.chips button:active,.btn:active{transform:scale(.97)}
/* page-to-page: header stays, content cross-fades */
@view-transition{navigation:auto}
.nav{view-transition-name:site-nav}
::view-transition-old(root),::view-transition-new(root){animation-duration:.32s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}[role="tabpanel"]:not([hidden]),#info > *,#rlist > li,#rv,#rcap,#info ul > li{animation:none}}
/* ===== no live blur over the moving 3D on phones / weak GPUs ===== */
@media (max-width:760px){.ch-card{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,var(--ink) 88%,transparent)}}
html.lowfx .ch-card,html.lowfx .nav.solid,html.lowfx .tag{backdrop-filter:none;-webkit-backdrop-filter:none}
html.lowfx .ch-card{background:color-mix(in srgb,var(--ink) 90%,transparent)}
html.lowfx .nav.solid{background:color-mix(in srgb,var(--ink) 94%,transparent)}
/* current running along the bottom edge of inner-page heroes */
.pg-hero{border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.pg-hero .spark{position:absolute;left:0;bottom:-1px;height:2px;width:28%;background:linear-gradient(90deg,transparent,var(--volt) 60%,#ffd9a0 92%,transparent);box-shadow:0 0 14px var(--volt);transform:translateX(-110%);animation:spark 5.5s cubic-bezier(.45,.05,.35,1) 1.2s infinite;pointer-events:none}
@keyframes spark{0%{transform:translateX(-110%)}60%,100%{transform:translateX(420%)}}
@media (prefers-reduced-motion:reduce){.pg-hero .spark{display:none}}
/* ===== hero fits one screen on short laptops (1366×768, 1280×720…) ===== */
@media (min-width:901px){
  .hero h1{font-size:clamp(34px,min(7.4vw,calc(6.6vh + 8px)),82px)}
  .hero-copy{padding-top:clamp(104px,17vh,150px)}
}
@media (min-width:901px) and (max-height:860px){.cue{display:none}.hero .lead{margin-top:18px}.actions{margin-top:26px}.hero-copy{padding-bottom:28px}}
.sic-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.sic{width:48px;height:48px;stroke:var(--wire);stroke-width:1.4;filter:drop-shadow(0 0 6px rgba(143,176,255,.35));transition:stroke .3s,filter .3s}
.sic .v{stroke:var(--volt)}
.card:hover .sic{stroke:#b9cdff;filter:drop-shadow(0 0 10px rgba(143,176,255,.6))}
.cards.svc7{grid-template-columns:repeat(12,minmax(0,1fr))}
.cards.svc7 > :nth-child(-n+3){grid-column:span 4}
.cards.svc7 > :nth-child(n+4){grid-column:span 3}
@media (max-width:1180px){.cards.svc7{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.svc7 > *{grid-column:auto!important}.cards.svc7 > :first-child{grid-column:1/-1!important}}
@media (max-width:620px){.cards.svc7{grid-template-columns:1fr}.cards.svc7 > :first-child{grid-column:auto!important}}

/* 3D map */
.map-box.is3d{aspect-ratio:16/9.6}
.map-box.is3d #mapsvg{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.m3{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;opacity:0;transition:opacity .9s ease}
.m3on .m3{opacity:1}
.m3l{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.m3l span{position:absolute;left:0;top:0;white-space:nowrap;will-change:transform}
.m3l .l{font:500 12.5px/1.2 var(--body);color:#e9eefb;background:rgba(4,8,20,.74);border:1px solid rgba(120,150,230,.28);padding:4px 9px;border-radius:999px;opacity:0;transition:opacity .4s,border-color .3s}
.m3l .l.on{opacity:1}
.m3l .l.sel{border-color:var(--volt);background:rgba(20,14,4,.82)}
.m3l .c{font:500 10.5px/1 var(--body);letter-spacing:.2em;color:#34508f;transition:opacity .3s}
.map-box.is3d .tip{z-index:3}
@media (max-width:620px){.map-box.is3d{aspect-ratio:16/11.5}.m3l .l{font-size:11px;padding:3px 7px}.m3l .c{font-size:9px}}
.m3i{background:radial-gradient(120% 100% at 65% 40%,#0a1736,var(--ink))}
.pg-media.m3i img,.ph.m3i img,.cm.m3i img{width:100%;height:100%;object-fit:cover;display:block}
.ph.m3i{border-radius:22px;overflow:hidden;aspect-ratio:3/2;position:relative;border:1px solid color-mix(in srgb,var(--wire) 18%,transparent)}
.gal-v{margin:0 0 12px;border-radius:16px;overflow:hidden;aspect-ratio:16/9;background:var(--panel)}
.gal-v video{width:100%;height:100%;object-fit:cover;display:block}
.gal.one{grid-template-columns:1fr}
.gal.one figure{aspect-ratio:16/8}
@media (max-width:760px){.gal.one{grid-template-columns:1fr}.gal.one figure{aspect-ratio:4/3}}
