/* ZenithGryd — site styles.
   Every value mirrors design_handoff_zenithgryd_website/reference/ZenithGryd Website.dc.html,
   the source of truth. Change the design there first, then here. */

:root{
  --ground:#070809;
  --green:#39FF14;
  --display:'Bruno Ace',sans-serif;
  --mono:'IBM Plex Mono',monospace;
  --sans:'IBM Plex Sans',sans-serif;
  --spring:cubic-bezier(.16,1,.3,1);
  --metal-text:linear-gradient(180deg,#FFFFFF 0%,#D2D6DC 38%,#8A9099 50%,#E3E6EA 62%,#A3A9B2 100%);
  --metal-square:linear-gradient(160deg,#FFFFFF 0%,#D7DBE0 28%,#7F8790 47%,#B7BDC5 52%,#F2F4F6 70%,#9AA1AA 100%);
  --green-square:linear-gradient(135deg,#C8FFA6 0%,#39FF14 42%,#1FCB00 100%);
  --hatch:repeating-linear-gradient(170deg,rgba(255,255,255,.16) 0,rgba(255,255,255,.16) 1px,transparent 1px,transparent 3px);
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:#070809;color:#fff;font-family:'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:#fff;-webkit-tap-highlight-color:transparent}
@media (hover:hover){a:hover{color:#39FF14}}
::selection{background:#39FF14;color:#070809}
:focus-visible{outline:2px solid #39FF14;outline-offset:4px}

.skip{position:fixed;left:16px;top:-64px;z-index:40;padding:12px 16px;background:#39FF14;color:#070809;font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.skip:focus,.skip:hover{top:16px;color:#070809}

/* ---------- Keyframes (verbatim from the design) ---------- */
@keyframes zg-blink{0%,100%{opacity:1}50%{opacity:.12}}
@keyframes zg-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes zg-shine{from{left:-45%}to{left:135%}}
@keyframes zg-scan{from{top:-2px;opacity:0}12%{opacity:1}to{top:100%;opacity:0}}
@keyframes zg-drop{0%{transform:translateY(-100%);opacity:0}30%{opacity:1}100%{transform:translateY(100%);opacity:0}}
@keyframes zg-rot{0%,18%{transform:rotate(0deg)}25%,43%{transform:rotate(90deg)}50%,68%{transform:rotate(180deg)}75%,93%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}
@keyframes zg-glitch{0%{clip-path:none;text-shadow:none}8%{clip-path:inset(0 -4px 55% -4px);text-shadow:2px 0 #39FF14,-2px 0 rgba(255,255,255,.8)}16%{clip-path:inset(45% -4px 0 -4px);text-shadow:-2px 0 #39FF14,2px 0 rgba(255,255,255,.8)}24%{clip-path:inset(20% -4px 30% -4px);text-shadow:1px 0 #39FF14}34%{clip-path:none;text-shadow:-1px 0 #39FF14,1px 0 rgba(255,255,255,.6)}46%{clip-path:inset(60% -4px 0 -4px);text-shadow:2px 0 rgba(57,255,20,.7)}56%,100%{clip-path:none;text-shadow:none}}
@keyframes zg-shuf0{0%,18%{left:14%;top:18%}25%,43%{left:54%;top:6%}50%,68%{left:54%;top:58%}75%,93%{left:14%;top:58%}100%{left:14%;top:18%}}
@keyframes zg-shuf1{0%,18%{left:54%;top:6%}25%,43%{left:54%;top:58%}50%,68%{left:14%;top:58%}75%,93%{left:14%;top:18%}100%{left:54%;top:6%}}
@keyframes zg-shuf2{0%,18%{left:54%;top:58%}25%,43%{left:14%;top:58%}50%,68%{left:14%;top:18%}75%,93%{left:54%;top:6%}100%{left:54%;top:58%}}
@keyframes zg-shuf3{0%,18%{left:14%;top:58%}25%,43%{left:14%;top:18%}50%,68%{left:54%;top:6%}75%,93%{left:54%;top:58%}100%{left:14%;top:58%}}
@keyframes zg-sweep{0%{top:-16%;opacity:0}8%{opacity:1}92%{opacity:1}100%{top:104%;opacity:0}}

/* ---------- Scroll reveals (state set by site.js) ---------- */
[data-reveal]{transition:opacity 1s var(--spring),transform 1s var(--spring)}
[data-reveal="out"]{opacity:0;transform:translateY(34px)}

/* ---------- Shared primitives ---------- */
/* Chamfer: cut top-right + bottom-left corners. Set --c per element. */
.chamfer{clip-path:polygon(0 0,calc(100% - var(--c)) 0,100% var(--c),100% 100%,var(--c) 100%,0 calc(100% - var(--c)))}

/* Corner brackets: size --s, offset --o, colour --bc. */
.br{position:absolute;width:var(--s);height:var(--s);border:0 solid var(--bc)}
.br--tl{left:var(--o);top:var(--o);border-top-width:2px;border-left-width:2px}
.br--tr{right:var(--o);top:var(--o);border-top-width:2px;border-right-width:2px}
.br--bl{left:var(--o);bottom:var(--o);border-bottom-width:2px;border-left-width:2px}
.br--br{right:var(--o);bottom:var(--o);border-bottom-width:2px;border-right-width:2px}

.rule{display:block;width:28px;height:1px;background:#39FF14}
.blink{animation:zg-blink 1.8s steps(1) infinite}
.node{display:block;width:6px;height:6px;background:#39FF14;box-shadow:0 0 6px rgba(57,255,20,.9);animation:zg-blink 1.8s steps(1) infinite}
.node--sm{width:5px;height:5px;box-shadow:0 0 5px rgba(57,255,20,.9)}
.diamond{color:rgba(57,255,20,.7);font-size:8px}

.metal-text{background:var(--metal-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hatch-metal{background:var(--hatch),var(--metal-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.accent{color:#39FF14;text-shadow:0 0 10px rgba(57,255,20,.6),0 0 36px rgba(57,255,20,.3)}

/* ---------- Background stack (fixed, behind content) ---------- */
.bg{position:fixed;left:0;right:0;top:-12vh;bottom:-12vh;z-index:0;pointer-events:none;opacity:.7;background:#070809 url('img/grid-still.jpg') center/cover no-repeat;will-change:transform}
.bg__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.vignette{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 75% 65% at 50% 45%,rgba(7,8,9,0) 30%,rgba(7,8,9,.85) 100%),linear-gradient(180deg,rgba(7,8,9,.92) 0%,rgba(7,8,9,0) 22%,rgba(7,8,9,0) 78%,rgba(7,8,9,.75) 100%)}
.scanlines{position:fixed;inset:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);opacity:.55}

.hud{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hud__horizon{position:absolute;left:-10%;right:-10%;top:28%;height:40%;background:radial-gradient(ellipse 50% 42% at 50% 50%,rgba(57,255,20,.3),rgba(57,255,20,0) 70%);opacity:.3}
.hud__streaks{position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(57,255,20,0) 0 56px,rgba(57,255,20,.55) 56px 57px);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 30%,#000 70%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 30%,#000 70%,transparent 100%);opacity:0}
.hud__layer{position:absolute;left:0;right:0;top:0;height:100vh;will-change:transform}
.hud__layer--far{opacity:.55}
.hud__sheet{position:absolute;inset:0}
.hud__node{position:absolute;width:4px;height:4px;background:#39FF14;box-shadow:0 0 8px rgba(57,255,20,.9)}
.hud__node--far{width:3px;height:3px;box-shadow:0 0 6px rgba(57,255,20,.8)}
.hud__label{position:absolute;font:500 9px/1 var(--mono);letter-spacing:.18em;white-space:nowrap;color:rgba(57,255,20,var(--a,.75))}
.hud__plus{position:absolute;font:400 14px/1 var(--mono);color:rgba(57,255,20,.45)}
.hud__line{position:absolute;height:1px}
.hud__square{position:absolute;border:1px solid;animation:zg-rot 12s cubic-bezier(.7,0,.2,1) infinite}
.hud__diamond{position:absolute;width:6px;height:6px;border:1px solid rgba(57,255,20,.7);transform:rotate(45deg)}
.hud__sweep{position:absolute;left:0;right:0;top:-16%;height:140px;animation:zg-sweep 9s linear infinite;background:linear-gradient(180deg,rgba(57,255,20,0),rgba(57,255,20,.05) 70%,rgba(57,255,20,.16) 100%)}
.hud__sweep::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(57,255,20,0),rgba(57,255,20,.7) 30%,rgba(57,255,20,.7) 70%,rgba(57,255,20,0));box-shadow:0 0 12px rgba(57,255,20,.5)}
.hud__readout{position:absolute;left:clamp(20px,4vw,48px);bottom:22px;font:500 9.5px/1 var(--mono);letter-spacing:.2em;white-space:nowrap;color:rgba(57,255,20,.75)}

.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:30;background:#39FF14;box-shadow:0 0 10px rgba(57,255,20,.8);transform:scaleX(0);transform-origin:left;pointer-events:none}

.page{position:relative;z-index:1}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;transform:skewX(-8deg)}
.logo--footer{display:inline-flex;gap:14px}
.glyph{position:relative;width:30px;height:30px;flex:none}
.glyph--lg{width:36px;height:36px}
.glyph__sq{position:absolute;width:32%;height:32%;background:var(--metal-square);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(0,0,0,.65)}
.glyph__sq--green{background:var(--green-square);box-shadow:0 0 6px rgba(57,255,20,.9),0 0 16px rgba(57,255,20,.5)}
.glyph__sq--s1{left:14%;top:18%}
.glyph__sq--s2{left:54%;top:6%}
.glyph__sq--s3{left:54%;top:58%}
.glyph__sq--s4{left:14%;top:58%}
/* Live glyph: each square holds its slot, then slides clockwise to the next — a shuffle every 2.5s. */
.glyph--live .glyph__sq{animation:10s cubic-bezier(.7,0,.2,1) infinite}
.glyph--live .glyph__sq--s1{animation-name:zg-shuf0}
.glyph--live .glyph__sq--s2{animation-name:zg-shuf1}
.glyph--live .glyph__sq--s3{animation-name:zg-shuf2}
.glyph--live .glyph__sq--s4{animation-name:zg-shuf3}
.wordmark{display:flex;gap:.25em;font:400 17px/1 var(--display);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.wordmark--lg{font-size:22px}
.wordmark__gryd{color:#39FF14;text-shadow:0 0 6px rgba(57,255,20,.8),0 0 18px rgba(57,255,20,.45)}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0;box-sizing:border-box;padding:0 clamp(20px,4vw,48px);height:72px;background:rgba(7,8,9,.55);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(57,255,20,.14)}
.nav__links{display:flex;align-items:center;gap:28px;flex:none}
.nav__link{position:relative;display:inline-flex;align-items:center;padding:8px 0;font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#AEB4BC;text-decoration:none;white-space:nowrap;transition:color .25s}
.nav__label{position:relative;display:inline-block;pointer-events:none}
.nav__underline{position:absolute;left:0;right:0;bottom:0;height:1px;background:#39FF14;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--spring);box-shadow:0 0 6px rgba(57,255,20,.8)}
@media (hover:hover){
  .nav__link:hover{color:#fff}
  .nav__link:hover .nav__label{animation:zg-glitch .5s steps(1,end) 1}
  .nav__link:hover .nav__underline{transform:scaleX(1)}
}
.nav__right{display:flex;align-items:center;gap:18px;flex:none}
.nav__status{display:flex;align-items:center;gap:8px;white-space:nowrap;font:500 10px/1 var(--mono);letter-spacing:.16em;color:rgba(57,255,20,.95)}

/* ---------- Buttons ---------- */
.btn-primary{display:inline-block;text-decoration:none;filter:drop-shadow(0 0 0 rgba(57,255,20,0));transition:filter .35s,transform .35s var(--spring)}
.btn-primary__body{position:relative;display:inline-flex;align-items:center;gap:14px;padding:18px 30px;background:#39FF14;color:#070809;white-space:nowrap;font:500 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;--c:12px;overflow:hidden}
.btn-primary__shine{position:absolute;top:-10%;bottom:-10%;left:-45%;width:30%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.65),rgba(255,255,255,0));transform:skewX(-20deg);pointer-events:none}
.btn-primary__label{position:relative}
.btn-primary__arrow{position:relative;font-size:15px;line-height:1}
.btn-primary--sm .btn-primary__body{gap:10px;padding:12px 18px;font-size:10.5px;letter-spacing:.2em;--c:9px}
@media (hover:hover){
  .btn-primary:hover{filter:drop-shadow(0 0 18px rgba(57,255,20,.6));transform:translateY(-2px)}
  .btn-primary:hover .btn-primary__shine{animation:zg-shine .8s cubic-bezier(.4,0,.2,1) forwards}
  .btn-primary--sm:hover{filter:drop-shadow(0 0 14px rgba(57,255,20,.6));transform:translateY(-1px)}
}
.btn-primary:active{transform:translateY(0) scale(.98)}
.btn-primary--sm:active{transform:translateY(0) scale(.97)}

.btn-secondary{position:relative;display:inline-flex;align-items:center;gap:14px;padding:18px 30px;border:1px solid rgba(57,255,20,.45);color:#fff;white-space:nowrap;font:500 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;background:rgba(57,255,20,0);transition:background .3s,border-color .3s,color .3s,box-shadow .3s}
.btn-secondary--email{letter-spacing:.18em;text-transform:none}
.btn-secondary__arrow{font-size:15px;line-height:1}
.btn-secondary>.br{--s:10px;--o:-1px;--bc:#39FF14;transition:transform .3s var(--spring)}
@media (hover:hover){
  .btn-secondary:hover{background:rgba(57,255,20,.08);border-color:#39FF14;color:#39FF14;box-shadow:0 0 24px rgba(57,255,20,.18),inset 0 0 24px rgba(57,255,20,.06)}
  .btn-secondary:hover>.br--tl{transform:translate(-4px,-4px)}
  .btn-secondary:hover>.br--tr{transform:translate(4px,-4px)}
  .btn-secondary:hover>.br--bl{transform:translate(-4px,4px)}
  .btn-secondary:hover>.br--br{transform:translate(4px,4px)}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:140px clamp(20px,4vw,48px) 96px}
.hero__frame{position:relative;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;padding:clamp(36px,5vw,72px) clamp(20px,3.5vw,56px)}
.hero__frame>.br{--s:30px;--o:0;--bc:rgba(57,255,20,.85);filter:drop-shadow(0 0 6px rgba(57,255,20,.6))}
.hero__tag{position:absolute;right:48px;top:14px;display:flex;align-items:center;gap:8px;font:500 10px/1 var(--mono);letter-spacing:.18em;color:rgba(57,255,20,.9)}
.hero__eyebrow{display:flex;align-items:center;gap:14px;font:500 11.5px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:#39FF14;text-shadow:0 0 8px rgba(57,255,20,.5)}
.hero__eyebrow .rule{flex:none}
.hero__title{margin:30px 0 0;font:400 clamp(38px,6.6vw,104px)/.98 var(--display);text-transform:uppercase;letter-spacing:.005em;text-wrap:balance}
.hero__line{display:block}
.hero__line--green{color:#39FF14;text-shadow:0 0 10px rgba(57,255,20,.7),0 0 44px rgba(57,255,20,.35)}
.hero__lead{max-width:660px;margin:34px 0 0;font:400 clamp(16px,1.35vw,19px)/1.6 var(--sans);color:#C4C9CF;text-wrap:pretty}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:44px}
.hero__trust{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:64px;font:500 10.5px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#8A9099}
.hero__cue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font:500 10px/1 var(--mono);letter-spacing:.26em;color:#8A9099}
.hero__cue-track{position:relative;display:block;width:1px;height:48px;background:rgba(57,255,20,.2);overflow:hidden}
.hero__cue-line{position:absolute;left:0;top:0;width:1px;height:100%;background:#39FF14;animation:zg-drop 1.9s cubic-bezier(.4,0,.2,1) infinite}

/* ---------- Sector ticker ---------- */
.ticker{position:relative;border-top:1px solid rgba(57,255,20,.18);border-bottom:1px solid rgba(57,255,20,.18);background:rgba(7,8,9,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:hidden;padding:16px 0}
.ticker__track{display:flex;width:max-content;animation:zg-marquee 44s linear infinite;font:500 12px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:#AEB4BC}
.ticker__group{display:flex;align-items:center;gap:40px;padding-right:40px;white-space:nowrap}
.ticker__sep{color:#39FF14;font-size:8px}

/* ---------- Sections ---------- */
.section{padding:clamp(80px,10vw,140px) clamp(20px,4vw,48px)}
.section--follow{padding-top:clamp(40px,6vw,80px)}
.section--contact{padding:clamp(40px,6vw,80px) clamp(20px,4vw,48px) clamp(90px,11vw,150px)}
/* Anchor jumps land with the section header clear of the 72px fixed nav (layout unchanged). */
.section--follow,.section--contact{scroll-margin-top:calc(96px - clamp(40px,6vw,80px))}
.container{max-width:1200px;margin:0 auto}
.kicker{display:flex;align-items:center;gap:12px;font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#39FF14}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#39FF14}
.section-head__lead{display:flex;align-items:center;gap:12px}
.section-head__aside{color:#8A9099}
.h2{margin:22px 0 0;max-width:900px;font:400 clamp(28px,3.8vw,56px)/1.06 var(--display);text-transform:uppercase;color:#fff}
.h2--pretty{text-wrap:pretty}
.h2--free{max-width:none}
.intro{margin:22px 0 0;max-width:620px;font:400 17px/1.6 var(--sans);color:#AEB4BC;text-wrap:pretty}

/* ---------- 01 Systems ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px;margin-top:56px}
.card{position:relative;display:block;text-decoration:none;color:#fff;transform:translateY(0);transition:transform .45s var(--spring)}
.card__edge{position:absolute;inset:0;background:rgba(57,255,20,.28);--c:20px;transition:background .35s}
.card__fill{position:absolute;inset:1px;background:rgba(10,12,14,.86);--c:19.5px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.card__scanbox{position:absolute;inset:1px;overflow:hidden;pointer-events:none;--c:19.5px}
.card__scan{position:absolute;left:0;right:0;top:-2px;height:2px;background:linear-gradient(90deg,rgba(57,255,20,0),rgba(57,255,20,.9),rgba(57,255,20,0));opacity:0}
.card>.br{--s:14px;--o:-6px;--bc:rgba(57,255,20,.6);transition:transform .35s var(--spring),border-color .35s,box-shadow .35s}
.card__body{position:relative;display:flex;flex-direction:column;min-height:300px;box-sizing:border-box;padding:30px 28px 26px}
.card__meta{display:flex;justify-content:space-between;font:500 10px/1 var(--mono);letter-spacing:.2em;color:#39FF14}
.card__tag{color:#8A9099}
.card__title{margin:24px 0 0;font:400 19px/1.25 var(--display);text-transform:uppercase;color:#fff}
.card__copy{margin:14px 0 0;font:400 15px/1.6 var(--sans);color:#AEB4BC;text-wrap:pretty}
.card__foot{margin-top:auto;padding-top:26px;display:flex;justify-content:space-between;align-items:center}
.card__go{font:500 10.5px/1 var(--mono);letter-spacing:.2em;color:#8A9099;transition:color .3s,letter-spacing .3s}
.card__count{font:500 10px/1 var(--mono);letter-spacing:.14em;color:#8A9099}
@media (hover:hover){
  .card:hover{color:#fff;transform:translateY(-6px)}
  .card:hover .card__edge{background:rgba(57,255,20,.8)}
  .card:hover .card__scan{animation:zg-scan 1.3s cubic-bezier(.4,0,.2,1) forwards}
  .card:hover>.br{border-color:#39FF14;box-shadow:0 0 10px rgba(57,255,20,.7)}
  .card:hover>.br--tl{transform:translate(-6px,-6px)}
  .card:hover>.br--tr{transform:translate(6px,-6px)}
  .card:hover>.br--bl{transform:translate(-6px,6px)}
  .card:hover>.br--br{transform:translate(6px,6px)}
  .card:hover .card__go{color:#39FF14;letter-spacing:.32em}
}

/* ---------- Chamfer panels (live grid, contact) ---------- */
.panel{position:relative}
.panel__edge{position:absolute;inset:0;background:rgba(57,255,20,.4);--c:26px}
.panel__fill{position:absolute;inset:1px;background:rgba(8,10,12,.9);--c:25.5px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.panel>.br{--s:24px;--o:-10px;--bc:#39FF14;filter:drop-shadow(0 0 6px rgba(57,255,20,.7))}
.panel__accent{position:absolute;left:40px;top:-1px;width:64px;height:3px;background:#39FF14;box-shadow:0 0 8px rgba(57,255,20,.8)}

/* ---------- 02 Live grid ---------- */
.livegrid{margin-top:56px}
.livegrid__body{position:relative;padding:24px clamp(16px,2.6vw,34px) 30px}
.livegrid__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;font:500 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#AEB4BC}
.livegrid__client{display:flex;align-items:center;gap:10px;color:#fff}
.livegrid__meta{display:flex;align-items:center;gap:22px}
.livegrid__sources{color:#39FF14}
.livegrid__clock{color:#8A9099}
.livegrid__divider{height:1px;background:rgba(57,255,20,.18);margin:20px 0 22px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:rgba(57,255,20,.14)}
.kpi{background:rgba(7,8,9,.82);padding:22px 22px 20px}
.kpi__label{font:500 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#8A9099}
.kpi__value{margin-top:14px;font:400 clamp(30px,3vw,42px)/1 var(--display);color:#fff}
.kpi__delta{margin-top:12px;font:500 10.5px/1 var(--mono);letter-spacing:.14em;color:#39FF14}
.kpi__delta--flat{color:#AEB4BC}
.livegrid__lower{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:30px;margin-top:30px}
.widget__head{display:flex;justify-content:space-between;align-items:center;gap:12px;font:500 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#8A9099}
.widget__badge{color:#39FF14}
.bars{display:flex;align-items:flex-end;gap:5px;height:200px;margin-top:18px;padding-bottom:1px;border-bottom:1px solid rgba(57,255,20,.3);background:repeating-linear-gradient(180deg,rgba(57,255,20,.07) 0 1px,transparent 1px 50px)}
.bar{flex:1;background:linear-gradient(180deg,rgba(57,255,20,.75),rgba(57,255,20,.12));transform:scaleY(1);transform-origin:bottom;transition:transform .9s var(--spring)}
.bar--peak{background:linear-gradient(180deg,#39FF14,rgba(57,255,20,.25));box-shadow:0 0 14px rgba(57,255,20,.35)}
.bars[data-bars="out"] .bar{transform:scaleY(.03)}
.axis{display:flex;justify-content:space-between;margin-top:10px;font:500 10px/1 var(--mono);letter-spacing:.14em;color:#8A9099}
.feed{display:flex;flex-direction:column;margin:18px 0 0;padding:0;list-style:none;border-top:1px solid rgba(57,255,20,.18)}
.feed__row{display:grid;grid-template-columns:14px 44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid rgba(57,255,20,.12);font:400 12px/1.4 var(--mono);color:#C4C9CF}
.feed__dot{display:block;width:6px;height:6px;background:rgba(57,255,20,.45)}
.feed__time{color:#8A9099}
.feed__status{font-size:10px;letter-spacing:.14em;color:#8A9099}
.feed__status--live{color:#39FF14}
.feed__status--watch{color:#AEB4BC}
.feed__note{margin-top:18px;font:400 12px/1.6 var(--sans);color:#8A9099}

/* ---------- Statement ---------- */
.statement{padding:clamp(90px,14vh,170px) clamp(20px,4vw,48px);text-align:center}
.statement__inner{max-width:1100px;margin:0 auto}
.statement__text{margin:0;font:400 clamp(30px,5.6vw,84px)/1.04 var(--display);text-transform:uppercase;text-wrap:balance}
.statement__green{color:#39FF14;text-shadow:0 0 12px rgba(57,255,20,.7),0 0 48px rgba(57,255,20,.35)}
.statement__caption{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:32px;font:500 11px/1 var(--mono);letter-spacing:.26em;text-transform:uppercase;color:#8A9099}
.statement__caption .rule{background:rgba(57,255,20,.6)}

/* ---------- 03 Process ---------- */
.steps{position:relative;margin-top:64px}
.steps__line{position:absolute;left:0;right:0;top:44px;height:1px;background:linear-gradient(90deg,rgba(57,255,20,0),rgba(57,255,20,.5) 12%,rgba(57,255,20,.5) 88%,rgba(57,255,20,0))}
.steps__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:36px;margin:0;padding:0;list-style:none}
.step{position:relative}
.step__box{position:relative;display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;background:#070809;border:1px solid rgba(57,255,20,.35);transition:border-color .3s,box-shadow .3s}
.step__num{font:400 30px/1 var(--display);color:#fff;transition:color .3s,text-shadow .3s}
@media (hover:hover){
  .step:hover .step__box{border-color:#39FF14;box-shadow:0 0 24px rgba(57,255,20,.25)}
  .step:hover .step__num{color:#39FF14;text-shadow:0 0 28px rgba(57,255,20,.6)}
}
.step__phase{margin-top:24px;font:500 10.5px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:#39FF14}
.step__title{margin:12px 0 0;font:400 26px/1.1 var(--display);text-transform:uppercase;color:#fff}
.step__copy{margin:14px 0 0;font:400 15.5px/1.6 var(--sans);color:#AEB4BC;text-wrap:pretty}
.bullets{display:flex;flex-direction:column;gap:10px;margin:20px 0 0;padding:0;list-style:none;font:400 12px/1.5 var(--mono);color:#C4C9CF}
.bullets li{display:flex;gap:10px}
.bullets__mark{color:#39FF14}

/* ---------- 04 Sectors ---------- */
.sectors{margin-top:52px;border-top:1px solid rgba(57,255,20,.2)}
.sector{display:grid;grid-template-columns:64px minmax(0,1.1fr) minmax(0,1.5fr) 40px;align-items:center;gap:24px;padding:26px 10px;border-bottom:1px solid rgba(57,255,20,.14);text-decoration:none;color:#fff;transition:background .3s,padding .3s,opacity 1s var(--spring),transform 1s var(--spring)}
.sector__code{font:500 10.5px/1 var(--mono);letter-spacing:.16em;color:#8A9099}
.sector__name{font:400 clamp(17px,1.8vw,24px)/1.15 var(--display);text-transform:uppercase;transition:color .3s}
.sector__kpis{font:500 11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#AEB4BC}
.sector__arrow{justify-self:end;font-size:18px;line-height:1;color:#8A9099;transition:transform .3s var(--spring),color .3s}
@media (hover:hover){
  .sector:hover{color:#fff;background:rgba(57,255,20,.05);padding-left:22px;padding-right:0}
  .sector:hover .sector__name{color:#39FF14}
  .sector:hover .sector__arrow{transform:translateX(8px);color:#39FF14}
}
.footnote{margin-top:22px;font:500 10.5px/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8A9099}

/* ---------- 05 Contact ---------- */
.contact{max-width:1200px;margin:0 auto}
.contact .panel__edge{background:rgba(57,255,20,.45);--c:30px}
.contact .panel__fill{--c:29.5px}
.contact__glow{position:absolute;inset:1px;pointer-events:none;background:radial-gradient(ellipse 60% 80% at 100% 50%,rgba(57,255,20,.12),rgba(57,255,20,0) 70%);--c:29.5px}
.contact__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(36px,5vw,72px);align-items:center;padding:clamp(48px,7vw,96px) clamp(24px,5vw,80px)}
.contact__copy{margin:22px 0 0;max-width:560px;font:400 17px/1.6 var(--sans);color:#AEB4BC;text-wrap:pretty}
.contact__side{display:flex;flex-direction:column;gap:26px;min-width:0}
.contact__actions{display:flex;flex-wrap:wrap;gap:14px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(57,255,20,.18);border-left:1px solid rgba(57,255,20,.18);background:rgba(7,8,9,.55)}
.stat{position:relative;box-sizing:border-box;padding:20px 18px 18px;border-right:1px solid rgba(57,255,20,.18);border-bottom:1px solid rgba(57,255,20,.18);background:rgba(57,255,20,0);cursor:default;transition:background .3s,box-shadow .3s}
.stat__scan{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,rgba(57,255,20,0),rgba(57,255,20,.9),rgba(57,255,20,0));opacity:0;pointer-events:none}
.stat__tick{position:absolute;right:8px;top:8px;width:4px;height:4px;background:#39FF14;box-shadow:0 0 6px rgba(57,255,20,.9);opacity:0;transform:scale(.4);transition:opacity .3s,transform .3s var(--spring)}
.stat__value{font:400 clamp(22px,2.2vw,30px)/1 var(--display);white-space:nowrap;color:#fff;transition:color .3s,text-shadow .3s,transform .4s var(--spring)}
.stat__value--lit{color:#39FF14;text-shadow:0 0 10px rgba(57,255,20,.5)}
.stat__label{margin-top:10px;font:500 10px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8A9099;transition:color .3s,letter-spacing .3s}
@media (hover:hover){
  .stat:hover{background:rgba(57,255,20,.07);box-shadow:inset 0 0 0 1px rgba(57,255,20,.55),inset 0 -2px 0 #39FF14,0 0 24px rgba(57,255,20,.14)}
  .stat:hover .stat__scan{animation:zg-scan 1.1s cubic-bezier(.4,0,.2,1) forwards}
  .stat:hover .stat__tick{opacity:1;transform:scale(1)}
  .stat:hover .stat__value{color:#39FF14;text-shadow:0 0 12px rgba(57,255,20,.6);transform:translateY(-2px)}
  .stat:hover .stat__label{color:#C4C9CF;letter-spacing:.22em}
}
.status-line{display:flex;align-items:center;gap:8px;font:500 10.5px/1.7 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8A9099}

/* ---------- Footer ---------- */
.footer{position:relative;z-index:1;border-top:1px solid rgba(57,255,20,.16);background:rgba(7,8,9,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:64px clamp(20px,4vw,48px) 32px}
.footer__grid{display:grid;grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr));gap:40px}
.footer__tagline{display:flex;align-items:center;gap:10px;margin-top:18px;font:500 10px/1 var(--mono);letter-spacing:.18em;color:#39FF14;text-shadow:0 0 6px rgba(57,255,20,.5)}
.footer__tagline .rule{width:18px}
.footer__blurb{margin:20px 0 0;max-width:360px;font:400 14px/1.6 var(--sans);color:#8A9099;text-wrap:pretty}
.footer__col{display:flex;flex-direction:column;gap:14px}
.footer__title{font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#39FF14;margin-bottom:4px}
.footer__link{font:400 14px/1.3 var(--sans);color:#AEB4BC;text-decoration:none;transition:color .25s}
@media (hover:hover){.footer__link:hover{color:#39FF14}}
.footer__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:56px;padding-top:24px;border-top:1px solid rgba(57,255,20,.12);font:500 10px/1.6 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#8A9099}
.footer__online{display:flex;align-items:center;gap:8px;color:rgba(57,255,20,.9)}

/* ---------- Responsive (breakpoints and order from the design) ---------- */
@media (max-width:1180px){.hide-l{display:none!important}}
@media (max-width:980px){.hide-nav{display:none!important}}
@media (max-width:960px){.stack-l{grid-template-columns:minmax(0,1fr)!important}.stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:860px){.hide-m{display:none!important}.stack{grid-template-columns:minmax(0,1fr)!important}.sector{grid-template-columns:48px minmax(0,1fr) 28px!important}}

/* ---------- Phones ----------
   The design's breakpoints stop at tablet; below ~414px some of its type and the nav no longer fit.
   Everything here only applies to small screens or touch input; desktop and tablet stay identical
   to the reference. */
@media (max-width:860px){
  /* The panels are 82–90% opaque, so their background blur is invisible on a phone but re-blurs the video every frame. */
  .card__fill,.panel__fill,.footer,.ticker{-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media (max-width:480px){
  .hero{padding-top:112px;padding-bottom:56px}
  /* "EVERYTHING." is 8.6em wide and can't wrap: size the headline to the frame's inner width
     (container units where supported, so a scrollbar can't push it over; viewport units otherwise). */
  .hero__frame{container-type:inline-size}
  .hero__title{font-size:min(38px,calc((100vw - 80px) / 8.75));font-size:min(38px,calc(100cqi / 8.75))}
  .h2{font-size:clamp(24px,7.4vw,28px)}
  /* Mono labels set at line-height 1 wrap here; give the lines room and keep the rule on the first one. */
  .hero__eyebrow,.footer__tagline,.livegrid__client,.kpi__delta,.statement__caption{line-height:1.45}
  .hero__eyebrow,.footer__tagline{align-items:flex-start}
  .hero__eyebrow .rule,.footer__tagline .rule{margin-top:.72em}
  .section-head,.widget__head{flex-wrap:wrap;row-gap:10px}
  /* Sector names: the longest word, MANUFACTURING, is ~11.25em; size it to the name column. */
  .sectors{container-type:inline-size}
  .sector__name{font-size:min(17px,calc((100cqi - 144px) / 11.4))}
  /* The HUD's text labels are placed by percentage; on a narrow screen they land on the copy and
     parallax slides them across it. Keep the nodes, crosses and squares, drop the words. */
  .hud__label{display:none}
}
@media (max-width:413px){
  /* The design's logo + CTA need ~400px. */
  .nav{padding:0 16px;gap:14px}
  .nav .logo{gap:10px}
  .nav .wordmark{font-size:15px}
  .btn-primary--sm .btn-primary__body{padding:12px;letter-spacing:.14em}
}
@media (max-width:374px){
  .sector{grid-template-columns:48px minmax(0,1fr) 20px!important;gap:12px;padding:22px 6px}
  .sector__name{font-size:clamp(15px,4.6vw,17px);font-size:min(17px,calc((100cqi - 104px) / 11.4))}
  .contact__grid{padding-left:16px;padding-right:16px}
  .stat{padding:18px 14px 16px}
  .stat__value{font-size:clamp(18px,6.2vw,22px)}
  .btn-secondary--email{padding-left:24px;padding-right:24px}
}
@media (max-width:359px){
  .nav-cta__more{display:none}
}
@media (max-width:319px){
  /* Below every mainstream phone (e.g. Galaxy Fold cover screens, ~280px): logo mark only,
     single-column grids, full-width buttons, and type stepped down so no word overflows. */
  .nav .wordmark{display:none}
  .cards,.steps__grid,.stats{grid-template-columns:minmax(0,1fr)!important}
  .h2{font-size:clamp(20px,7.4vw,24px)}
  .statement__text{font-size:clamp(22px,8.6vw,30px)}
  .hero__actions>*,.contact__actions>*{flex:1 1 100%}
  .btn-primary{display:flex}
  .btn-primary__body{flex:1;justify-content:center}
  .btn-secondary{box-sizing:border-box;justify-content:center}
  .btn-primary__body,.btn-secondary{padding-left:16px;padding-right:16px;letter-spacing:.14em}
  .btn-secondary--email{font-size:11px;letter-spacing:.08em}
  .sector{grid-template-columns:minmax(0,1fr) 20px!important}
  .sector__code{display:none}
  .sector__name{font-size:min(17px,calc((100cqi - 44px) / 11.4))}
  .feed__row{grid-template-columns:14px 44px minmax(0,1fr);row-gap:4px}
  .feed__status{grid-column:3}
  .wordmark--lg{font-size:18px}
}

/* Touch: larger hit areas without moving anything, and tap feedback where desktop has hover. */
@media (pointer:coarse){
  .btn-primary--sm{position:relative}
  .nav .logo::after,.btn-primary--sm::after{content:"";position:absolute;inset:-8px -6px}
  .footer__link{padding:7px 0;margin:-7px 0}
}
@media (hover:none){
  .card:active .card__edge{background:rgba(57,255,20,.8)}
  .sector:active{background:rgba(57,255,20,.05)}
  .sector:active .sector__name,.sector:active .sector__arrow,.footer__link:active{color:#39FF14}
  .btn-secondary:active{background:rgba(57,255,20,.08);border-color:#39FF14;color:#39FF14}
}

/* ---------- Reduced motion: hold everything still (site.js also skips video, parallax and reveals) ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .hud__sweep{display:none}
}
