:root{
--color-bg-primary:#080C08;
--color-bg-secondary:#141F14;
--color-accent:#55EF7C;
--color-text-primary:#FFFFFF;
--color-text-meta:#55EF7C;
--color-border-grid:rgba(85,239,124,0.18);
--color-surface-glow:rgba(85,239,124,0.28);

--font-heading:'Orbitron','Segoe UI',Arial,sans-serif;
--font-body:'IBM Plex Mono','Fira Mono',monospace;

--fs-1:2.25rem;
--fs-2:1.5rem;
--fs-3:1.125rem;
--fs-4:1rem;
--fs-5:0.875rem;

--space-1:0.25rem;
--space-2:0.5rem;
--space-3:1rem;
--space-4:2rem;
--space-5:4rem;

--radius-0:0px;
--radius-1:2px;

--container-max:1200px;
--container-pad:2rem;
--container-pad-sm:1rem;

--transition-fast:120ms linear;
}

*,
*::before,
*::after{
box-sizing:border-box;
margin:0;
padding:0;
}

html,body{
height:100%;
}

body{
background:var(--color-bg-primary);
color:var(--color-text-primary);
font-family:var(--font-body);
font-size:var(--fs-4);
line-height:1.6;
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility;
}

img,video,canvas,svg{
display:block;
max-width:100%;
height:auto;
}

a{
color:inherit;
text-decoration:none;
transition:color var(--transition-fast);
}

a:hover,
a:focus-visible{
color:var(--color-accent);
}

button,
input,
select,
textarea{
font:inherit;
color:inherit;
background:none;
border:none;
outline:none;
}

button{
cursor:pointer;
}

ul,ol{
list-style:none;
}

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
font-weight:700;
line-height:1.2;
letter-spacing:0.02em;
}

h1{font-size:var(--fs-1);}
h2{font-size:var(--fs-2);}
h3{font-size:var(--fs-3);}
h4{font-size:var(--fs-4);}
h5{font-size:var(--fs-5);}
h6{font-size:var(--fs-5);}

p{
font-size:var(--fs-4);
}

small{
font-size:var(--fs-5);
}

label{
font-size:var(--fs-5);
text-transform:uppercase;
letter-spacing:0.05em;
color:var(--color-text-meta);
}

h1:not(:last-child),
h2:not(:last-child),
h3:not(:last-child),
h4:not(:last-child),
h5:not(:last-child),
h6:not(:last-child){
margin-bottom:var(--space-3);
}

p:not(:last-child),
ul:not(:last-child),
ol:not(:last-child),
blockquote:not(:last-child),
form:not(:last-child){
margin-bottom:var(--space-3);
}

section:not(:last-child){
margin-bottom:var(--space-5);
}

.container{
width:100%;
max-width:var(--container-max);
margin-inline:auto;
padding-inline:var(--container-pad);
}

@media (max-width:768px){
.container{
padding-inline:var(--container-pad-sm);
}
h1{font-size:1.9rem;}
h2{font-size:1.3rem;}
h3{font-size:1.05rem;}
body{font-size:0.95rem;}
}

.stack > * + *{
margin-top:var(--space-3);
}

.stack-lg > * + *{
margin-top:var(--space-4);
}

.grid{
display:grid;
gap:var(--space-4);
}

.grid-2{
grid-template-columns:repeat(2,minmax(0,1fr));
}

.grid-3{
grid-template-columns:repeat(3,minmax(0,1fr));
}

.grid-4{
grid-template-columns:repeat(4,minmax(0,1fr));
}

@media (max-width:1024px){
.grid-4{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:768px){
.grid-2,
.grid-3,
.grid-4{
grid-template-columns:1fr;
}
}

.flex{
display:flex;
gap:var(--space-3);
}

.flex-center{
align-items:center;
justify-content:center;
}

.flex-between{
align-items:center;
justify-content:space-between;
}

.card{
background:var(--color-bg-secondary);
border:1px solid var(--color-border-grid);
border-radius:var(--radius-1);
padding:var(--space-4);
position:relative;
overflow:hidden;
}

.card > *:last-child{
margin-bottom:0;
}

.surface{
background:var(--color-bg-secondary);
}

.border-grid{
border:1px solid var(--color-border-grid);
}

.label{
font-family:var(--font-body);
font-size:var(--fs-5);
text-transform:uppercase;
letter-spacing:0.08em;
color:var(--color-text-meta);
}

.button{
display:inline-flex;
align-items:center;
justify-content:center;
padding:0.6rem 1.2rem;
font-family:var(--font-body);
font-size:var(--fs-5);
text-transform:uppercase;
letter-spacing:0.08em;
border-radius:var(--radius-1);
border:1px solid var(--color-accent);
color:var(--color-accent);
transition:all var(--transition-fast);
}

.button-primary{
background:var(--color-accent);
color:#000;
}

.button:hover,
.button:focus-visible{
box-shadow:0 0 8px var(--color-surface-glow);
}

.button-primary:hover,
.button-primary:focus-visible{
box-shadow:0 0 10px var(--color-surface-glow);
}

input,
textarea,
select{
width:100%;
padding:0.6rem;
border:1px solid var(--color-border-grid);
background:transparent;
border-radius:var(--radius-1);
}

input:focus,
textarea:focus,
select:focus{
border-color:var(--color-accent);
box-shadow:0 0 6px var(--color-surface-glow);
}

table{
width:100%;
border-collapse:collapse;
font-size:var(--fs-5);
}

th,td{
border:1px solid var(--color-border-grid);
padding:0.5rem;
text-align:left;
}

th{
color:var(--color-text-meta);
text-transform:uppercase;
letter-spacing:0.05em;
}

.scanlines{
position:relative;
}

.scanlines::after{
content:"";
position:absolute;
inset:0;
pointer-events:none;
background:linear-gradient(rgba(255,255,255,0.03) 50%, transparent 50%);
background-size:100% 3px;
opacity:0.2;
}

.no-overflow{
overflow-x:hidden;
}