/* ===========================================
   NationStateActor
   Cyberpunk Theme
=========================================== */

:root{

--bg:#050505;

--bg2:#101010;

--green:#00ff9c;

--greenGlow:#00ff9c88;

--pink:#ff0088;

--blue:#00d9ff;

--white:#ffffff;

--gray:#bdbdbd;

--glass:rgba(255,255,255,.05);

--glassBorder:rgba(255,255,255,.12);

--shadow:0 0 25px rgba(0,255,155,.20);

--radius:18px;

}

*{

margin:0;

padding:0;

box-sizing:border-box;

scroll-behavior:smooth;

}

html{

background:var(--bg);

}

body{

background:#050505;

color:var(--green);

font-family:'Share Tech Mono',monospace;

overflow-x:hidden;

min-height:100vh;

}

/* ==========================
 MATRIX CANVAS
========================== */

#matrix{

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

z-index:-3;

}

/* ==========================
 CRT SCANLINES
========================== */

#scanlineOverlay{

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

pointer-events:none;

background-image:

linear-gradient(

rgba(255,255,255,.03) 1px,

transparent 2px);

background-size:100% 4px;

opacity:.18;

z-index:-1;

}

/* ==========================
 STATIC NOISE
========================== */

#noiseOverlay{

position:fixed;

width:100%;

height:100%;

left:0;

top:0;

pointer-events:none;

opacity:.03;

background-image:url("noise.png");

z-index:-2;

}

/* ==========================
 NAVIGATION
========================== */

nav{

position:fixed;

top:0;

left:0;

width:100%;

display:flex;

justify-content:space-between;

align-items:center;

padding:18px 50px;

backdrop-filter:blur(18px);

background:rgba(0,0,0,.45);

border-bottom:1px solid rgba(0,255,155,.15);

z-index:1000;

transition:.4s;

}

nav ul{

display:flex;

list-style:none;

gap:35px;

}

nav ul li a{

color:var(--green);

text-decoration:none;

font-size:17px;

transition:.35s;

}

nav ul li a:hover{

color:var(--pink);

text-shadow:

0 0 12px var(--pink);

}

.logoNav{

display:flex;

align-items:center;

gap:14px;

font-family:'Orbitron',sans-serif;

font-size:20px;

font-weight:700;

}

.logoNav img{

height:48px;

filter:

drop-shadow(0 0 10px var(--green));

}

/* ==========================
 HERO
========================== */

.hero{

height:100vh;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

padding:50px;

}

.heroContent{

max-width:900px;

}

.heroLogo{

width:220px;

margin-bottom:30px;

filter:

drop-shadow(0 0 35px var(--green));

animation:

float 5s ease-in-out infinite;

}

@keyframes float{

0%{

transform:translateY(0px);

}

50%{

transform:translateY(-15px);

}

100%{

transform:translateY(0px);

}

}

.hero h1{

font-size:5rem;

font-family:'Orbitron',sans-serif;

margin-bottom:15px;

}

.hero h2{

font-size:2rem;

color:var(--pink);

margin-bottom:25px;

}

.hero p{

font-size:1.2rem;

line-height:1.8;

color:#ddd;

margin-bottom:45px;

}

/* ==========================
 GLITCH TITLE
========================== */

.glitch{

position:relative;

display:inline-block;

}

.glitch::before,

.glitch::after{

content:attr(data-text);

position:absolute;

top:0;

left:0;

width:100%;

overflow:hidden;

}

.glitch::before{

left:-3px;

color:#ff00aa;

clip-path:inset(0 0 55% 0);

animation:glitch1 2s infinite;

}

.glitch::after{

left:3px;

color:#00ffff;

clip-path:inset(55% 0 0 0);

animation:glitch2 1.5s infinite;

}

@keyframes glitch1{

0%{transform:translate(0);}
20%{transform:translate(-3px,-2px);}
40%{transform:translate(2px,2px);}
60%{transform:translate(-2px,1px);}
80%{transform:translate(3px,-2px);}
100%{transform:translate(0);}
}

@keyframes glitch2{

0%{transform:translate(0);}
25%{transform:translate(2px,2px);}
50%{transform:translate(-3px,-2px);}
75%{transform:translate(3px,1px);}
100%{transform:translate(0);}
}

/* ==========================
 BUTTONS
========================== */

.heroButtons{

display:flex;

justify-content:center;

gap:25px;

flex-wrap:wrap;

}

.button{

padding:15px 34px;

border:2px solid var(--green);

color:var(--green);

text-decoration:none;

border-radius:10px;

background:rgba(255,255,255,.04);

transition:.35s;

position:relative;

overflow:hidden;

}

.button:hover{

background:var(--green);

color:black;

box-shadow:

0 0 35px var(--green);

transform:translateY(-4px);

}
/* ===========================================
   GLASS PANELS
=========================================== */

.glass{

position:relative;

background:rgba(15,15,15,.55);

border:1px solid rgba(0,255,156,.12);

backdrop-filter:blur(16px);

border-radius:20px;

padding:45px;

box-shadow:

0 0 30px rgba(0,255,156,.10),

inset 0 0 25px rgba(255,255,255,.02);

transition:.35s;

overflow:hidden;

}

.glass:hover{

transform:translateY(-6px);

box-shadow:

0 0 45px rgba(0,255,156,.25);

}

.glass::before{

content:"";

position:absolute;

top:0;

left:-120%;

width:70%;

height:100%;

background:linear-gradient(

90deg,

transparent,

rgba(255,255,255,.08),

transparent);

transition:.8s;

}

.glass:hover::before{

left:150%;

}

/* ===========================================
   SECTIONS
=========================================== */

section{

padding:120px 8%;

position:relative;

}

.sectionTitle{

font-family:'Orbitron',sans-serif;

font-size:2.6rem;

margin-bottom:40px;

text-align:center;

color:var(--green);

text-shadow:0 0 18px var(--greenGlow);

}

.sectionSubtitle{

text-align:center;

margin-bottom:45px;

color:#aaa;

font-size:1.1rem;

}

/* ===========================================
   GRID
=========================================== */

.cardGrid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

gap:30px;

}

.infoCard{

background:rgba(255,255,255,.03);

padding:30px;

border-radius:18px;

border:1px solid rgba(0,255,156,.10);

transition:.35s;

cursor:pointer;

}

.infoCard:hover{

transform:translateY(-10px);

box-shadow:0 0 35px rgba(0,255,156,.18);

border-color:var(--green);

}

.infoCard h3{

margin-bottom:18px;

color:var(--blue);

font-family:'Orbitron',sans-serif;

}

.infoCard p{

line-height:1.8;

color:#ccc;

}

/* ===========================================
   COUNTDOWN
=========================================== */

#countdown{

display:flex;

justify-content:center;

flex-wrap:wrap;

gap:20px;

margin-top:25px;

}

.countBox{

width:120px;

height:120px;

display:flex;

flex-direction:column;

justify-content:center;

align-items:center;

background:rgba(255,255,255,.04);

border:1px solid rgba(0,255,156,.18);

border-radius:18px;

box-shadow:0 0 20px rgba(0,255,156,.08);

}

.countBox span{

font-size:2.4rem;

font-weight:bold;

font-family:'Orbitron',sans-serif;

color:var(--green);

}

.countBox label{

margin-top:8px;

font-size:.85rem;

letter-spacing:2px;

color:#999;

text-transform:uppercase;

}

/* ===========================================
   TERMINAL
=========================================== */

.terminalWindow{

background:#060606;

border:1px solid var(--green);

border-radius:16px;

overflow:hidden;

box-shadow:

0 0 35px rgba(0,255,156,.20);

}

.terminalHeader{

background:#111;

padding:12px 18px;

display:flex;

align-items:center;

gap:10px;

font-size:.9rem;

}

.red,.yellow,.green{

width:12px;

height:12px;

border-radius:50%;

display:inline-block;

}

.red{background:#ff5f57;}

.yellow{background:#ffbd2e;}

.green{background:#28c940;}

#terminalOutput{

height:340px;

overflow-y:auto;

padding:25px;

font-size:16px;

line-height:1.8;

}

.terminalInput{

display:flex;

padding:20px;

border-top:1px solid rgba(0,255,156,.15);

}

.terminalInput span{

margin-right:12px;

color:var(--green);

white-space:nowrap;

}

#terminal{

flex:1;

background:transparent;

border:none;

outline:none;

color:var(--green);

font-family:inherit;

font-size:16px;

}

/* ===========================================
   GALLERY
=========================================== */

.galleryGrid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

gap:25px;

}

.galleryItem{

overflow:hidden;

border-radius:16px;

cursor:pointer;

position:relative;

}

.galleryItem img{

width:100%;

display:block;

transition:.45s;

}

.galleryItem:hover img{

transform:scale(1.08);

filter:brightness(1.15);

}

/* ===========================================
   LIGHTBOX
=========================================== */

#lightbox{

display:none;

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:rgba(0,0,0,.95);

justify-content:center;

align-items:center;

z-index:9999;

}

#lightbox img{

max-width:90%;

max-height:85%;

border:2px solid var(--green);

box-shadow:0 0 45px var(--greenGlow);

}

#closeLightbox{

position:absolute;

top:40px;

right:50px;

font-size:3rem;

cursor:pointer;

color:white;

}

/* ===========================================
   STATS
=========================================== */

.statsGrid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

gap:30px;

}

.statCard{

text-align:center;

padding:40px;

background:rgba(255,255,255,.03);

border-radius:18px;

transition:.35s;

}

.statCard:hover{

transform:translateY(-8px);

box-shadow:0 0 30px rgba(0,255,156,.20);

}

.statCard h2{

font-size:3.5rem;

font-family:'Orbitron',sans-serif;

color:var(--green);

margin-bottom:10px;

}

.statCard p{

color:#bbb;

}

/* ===========================================
   CONTACT FORM
=========================================== */

#contactForm{

display:flex;

flex-direction:column;

gap:18px;

}

#contactForm input,

#contactForm textarea{

padding:16px;

background:#111;

border:1px solid rgba(0,255,156,.18);

border-radius:12px;

color:var(--green);

font-family:inherit;

font-size:15px;

transition:.3s;

}

#contactForm input:focus,

#contactForm textarea:focus{

outline:none;

border-color:var(--green);

box-shadow:0 0 15px rgba(0,255,156,.30);

}

/* ===========================================
   CUSTOM CURSOR
=========================================== */

body{

cursor:none;

}

#cursorGlow{

position:fixed;

width:24px;

height:24px;

border:2px solid var(--green);

border-radius:50%;

pointer-events:none;

transform:translate(-50%,-50%);

box-shadow:

0 0 25px var(--green),

0 0 50px rgba(0,255,156,.4);

z-index:99999;

transition:

transform .08s linear,

width .2s,

height .2s;

}
/*==================================================
      SCROLLBAR
==================================================*/

::-webkit-scrollbar{

width:12px;

background:#050505;

}

::-webkit-scrollbar-track{

background:#050505;

}

::-webkit-scrollbar-thumb{

background:#00ff9c;

border-radius:20px;

box-shadow:

0 0 15px #00ff9c;

}

::-webkit-scrollbar-thumb:hover{

background:#ff0088;

box-shadow:

0 0 25px #ff0088;

}

/* Firefox */

html{

scrollbar-color:#00ff9c #050505;

scrollbar-width:thin;

}


/*==================================================
      FADE IN ANIMATIONS
==================================================*/

.fade{

opacity:0;

transform:translateY(70px);

transition:

opacity .8s ease,

transform .8s ease;

}

.fade.visible{

opacity:1;

transform:translateY(0);

}


/*==================================================
      GLASS SHIMMER
==================================================*/

.glass::after{

content:"";

position:absolute;

left:-120%;

top:0;

width:60%;

height:100%;

background:

linear-gradient(

90deg,

transparent,

rgba(255,255,255,.08),

transparent);

transition:1.1s;

}

.glass:hover::after{

left:160%;

}


/*==================================================
      BUTTON GLOW
==================================================*/

.button{

position:relative;

overflow:hidden;

}

.button::before{

content:"";

position:absolute;

left:-100%;

top:0;

width:100%;

height:100%;

background:

linear-gradient(

90deg,

transparent,

rgba(255,255,255,.3),

transparent);

transition:.5s;

}

.button:hover::before{

left:100%;

}


/*==================================================
      BUTTON PULSE
==================================================*/

.button:hover{

animation:pulse .8s infinite alternate;

}

@keyframes pulse{

from{

box-shadow:

0 0 12px #00ff9c;

}

to{

box-shadow:

0 0 35px #00ff9c,

0 0 60px #00ff9c;

}

}


/*==================================================
      HERO BACKDROP
==================================================*/

.hero::before{

content:"";

position:absolute;

left:50%;

top:50%;

width:700px;

height:700px;

transform:

translate(-50%,-50%);

border-radius:50%;

background:

radial-gradient(

circle,

rgba(0,255,156,.08),

transparent 70%);

filter:blur(15px);

z-index:-1;

}


/*==================================================
      SECTION DIVIDERS
==================================================*/

section{

border-bottom:

1px solid rgba(0,255,156,.06);

}


/*==================================================
      IMAGE OVERLAY
==================================================*/

.galleryItem{

position:relative;

}

.galleryItem::after{

content:"VIEW";

position:absolute;

display:flex;

justify-content:center;

align-items:center;

left:0;

top:0;

width:100%;

height:100%;

background:

rgba(0,0,0,.65);

opacity:0;

transition:.35s;

font-family:'Orbitron',sans-serif;

font-size:1.2rem;

letter-spacing:3px;

}

.galleryItem:hover::after{

opacity:1;

}


/*==================================================
      NAVIGATION SHRINK
==================================================*/

nav.scrolled{

padding:12px 50px;

background:rgba(0,0,0,.75);

box-shadow:

0 0 30px rgba(0,255,156,.08);

}


/*==================================================
      FOOTER
==================================================*/

footer{

padding:70px 10%;

background:#070707;

border-top:

1px solid rgba(0,255,156,.12);

}

.footerGrid{

display:grid;

grid-template-columns:

repeat(auto-fit,minmax(220px,1fr));

gap:40px;

}

footer h3{

font-family:'Orbitron',sans-serif;

margin-bottom:18px;

color:#00ff9c;

}

footer a{

display:block;

color:#bdbdbd;

margin:10px 0;

text-decoration:none;

transition:.3s;

}

footer a:hover{

color:#00ff9c;

padding-left:8px;

}

footer hr{

margin:50px 0;

border:none;

height:1px;

background:

rgba(255,255,255,.08);

}

.copyright{

text-align:center;

color:#777;

}


/*==================================================
      NEWSLETTER
==================================================*/

#newsletterForm{

display:flex;

gap:20px;

flex-wrap:wrap;

justify-content:center;

}

#newsletterForm input{

flex:1;

min-width:250px;

padding:15px;

background:#111;

border:

1px solid rgba(0,255,156,.15);

color:#00ff9c;

}

#newsletterForm button{

padding:15px 35px;

}


/*==================================================
      CRT FLICKER
==================================================*/

body::after{

content:"";

pointer-events:none;

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

opacity:.025;

background:white;

animation:flicker .15s infinite;

}

@keyframes flicker{

0%{opacity:.015;}

50%{opacity:.035;}

100%{opacity:.02;}

}


/*==================================================
      MOBILE
==================================================*/

@media(max-width:900px){

.hero h1{

font-size:3rem;

}

.heroLogo{

width:170px;

}

nav{

padding:15px;

flex-direction:column;

}

nav ul{

margin-top:20px;

flex-wrap:wrap;

justify-content:center;

gap:15px;

}

.cardGrid{

grid-template-columns:1fr;

}

.statsGrid{

grid-template-columns:1fr;

}

.galleryGrid{

grid-template-columns:1fr;

}

.heroButtons{

flex-direction:column;

}

#countdown{

justify-content:center;

}

}
/*=========================================
BOOT SCREEN
=========================================*/

#bootScreen{

position:fixed;

left:0;

top:0;

width:100%;

height:100%;

background:#000;

display:flex;

justify-content:center;

align-items:center;

z-index:999999;

transition:1s;

}

#bootText{

width:900px;

max-width:90%;

font-family:'Share Tech Mono',monospace;

font-size:19px;

color:#00ff66;

line-height:1.7;

text-shadow:

0 0 10px #00ff66;

}

#bootText::after{

content:"_";

animation:blink .8s infinite;

}

@keyframes blink{

50%{

opacity:0;

}

}
.hero{

opacity:0;

}
/*====================================
HERO
====================================*/

.hero{

min-height:100vh;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

padding:100px 30px;

position:relative;

overflow:hidden;

}

.heroContent{

max-width:900px;

z-index:2;

}

.heroLogo{

width:220px;

margin-bottom:35px;

filter:

drop-shadow(0 0 25px rgba(0,255,156,.45));

animation:

logoFloat 4s ease-in-out infinite;

}

@keyframes logoFloat{

0%{

transform:translateY(0px);

}

50%{

transform:translateY(-10px);

}

100%{

transform:translateY(0px);

}

}

.heroDescription{

margin-top:25px;

font-size:1.15rem;

line-height:2;

color:#bfbfbf;

}

.heroButtons{

margin-top:50px;

display:flex;

justify-content:center;

gap:25px;

flex-wrap:wrap;

}

.button.secondary{

background:transparent;

border:2px solid #00ff9c;

}

.button.secondary:hover{

background:#00ff9c;

color:#000;

}

.scrollDown{

margin-top:70px;

font-size:.9rem;

opacity:.7;

animation:

bounce 2s infinite;

}

@keyframes bounce{

0%{transform:translateY(0);}

50%{transform:translateY(12px);}

100%{transform:translateY(0);}

}