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

--font-heading:"IBM Plex Mono",monospace;
--font-body:Inter,Arial,sans-serif;

--fs-1:2.75rem;
--fs-2:2rem;
--fs-3:1.375rem;
--fs-4:1.125rem;
--fs-5:1rem;
--fs-6:0.875rem;

--space-1:0.5rem;
--space-2:1rem;
--space-3:1.5rem;
--space-4:2.5rem;
--space-5:4rem;

--radius-sm:2px;
--radius-md:4px;

--container-max:1200px;
--container-narrow:720px;

--transition-fast:0.2s ease;
--transition:0.3s ease;

--shadow-glow:0 0 0 1px rgba(85,239,124,0.2),0 0 12px rgba(85,239,124,0.15);
}

*,
*::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-5);
line-height:1.6;
-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility;
}

img,video{
max-width:100%;
display:block;
height:auto;
object-fit:cover;
}

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

a:hover{
text-decoration:underline;
}

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

button{
cursor:pointer;
}

ul{list-style:none !important;}

h1,h2,h3,h4,h5,h6{
font-family:var(--font-heading);
text-transform:uppercase;
letter-spacing:0.05em;
line-height:1.2;
margin-bottom:var(--space-3);
}

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-6);}

p{
margin-bottom:var(--space-3);
color:var(--color-text-primary);
}

small{
font-size:var(--fs-6);
color:var(--color-text-secondary);
font-family:var(--font-heading);
}

ul,ol{
margin-bottom:var(--space-3);
}

li+li{
margin-top:var(--space-1);
}

blockquote{
margin-bottom:var(--space-3);
padding-left:var(--space-3);
border-left:1px dashed var(--color-border);
color:var(--color-text-secondary);
}

hr{
border:none;
border-top:1px dashed var(--color-border);
margin:var(--space-4) 0;
}

section{
padding:var(--space-5) var(--space-3);
}

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

.container-narrow{
max-width:var(--container-narrow);
margin-inline:auto;
padding-inline:var(--space-3);
}

.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));
}

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

.flex-between{
display:flex;
justify-content:space-between;
align-items:center;
gap:var(--space-3);
}

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

.card{
background:var(--color-bg-surface);
border:1px solid var(--color-border);
border-radius:var(--radius-md);
padding:var(--space-3);
transition:var(--transition);
position:relative;
}

.card:hover{
transform:translateY(-2px);
box-shadow:var(--shadow-glow);
}

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

.panel{
background:var(--color-bg-surface);
border:1px solid var(--color-border);
border-radius:var(--radius-md);
padding:var(--space-4);
box-shadow:var(--shadow-glow);
}

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

.label{
font-family:var(--font-heading);
font-size:var(--fs-6);
color:var(--color-text-secondary);
letter-spacing:0.08em;
text-transform:uppercase;
}

.button{
display:inline-flex;
align-items:center;
justify-content:center;
padding:0.75rem 1.25rem;
border:1px solid var(--color-border);
border-radius:var(--radius-sm);
font-family:var(--font-heading);
font-size:var(--fs-6);
letter-spacing:0.08em;
text-transform:uppercase;
color:var(--color-text-primary);
background:transparent;
transition:var(--transition);
}

.button:hover{
border-color:var(--color-accent);
box-shadow:0 0 10px rgba(85,239,124,0.25);
}

.button:focus-visible{
outline:2px solid var(--color-accent);
outline-offset:2px;
}

.button:active{
background:var(--color-accent);
color:var(--color-bg-primary);
}

.button-group{
display:flex;
flex-wrap:wrap;
gap:var(--space-2);
}

.input,
textarea,
select{
width:100%;
padding:0.75rem;
border:1px solid var(--color-border);
border-radius:var(--radius-sm);
background:var(--color-bg-surface);
color:var(--color-text-primary);
}

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

.form-group{
display:flex;
flex-direction:column;
gap:var(--space-1);
margin-bottom:var(--space-3);
}

.nav-toggle{
display:flex;
flex-direction:column;
gap:4px;
}

.divider{
height:1px;
background:linear-gradient(to right,transparent,var(--color-border),transparent);
margin:var(--space-4) 0;
}

.image-frame{
border:1px solid var(--color-accent);
border-radius:var(--radius-sm);
overflow:hidden;
}

.hero{
position:relative;
min-height:80vh;
display:flex;
align-items:center;
justify-content:center;
padding:var(--space-5) var(--space-3);
}

.hero-overlay{
position:absolute;
inset:0;
background:radial-gradient(circle at center,rgba(85,239,124,0.08),transparent 70%);
pointer-events:none;
}

.hero-panel{
position:relative;
max-width:var(--container-narrow);
background:var(--color-bg-surface);
border:1px solid var(--color-border);
padding:var(--space-4);
border-radius:var(--radius-md);
box-shadow:var(--shadow-glow);
}

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

.process{
display:flex;
gap:var(--space-4);
flex-wrap:wrap;
}

.process-step{
flex:1 1 200px;
position:relative;
padding-top:var(--space-3);
}

.process-step::before{
content:"";
position:absolute;
top:0;
left:0;
right:0;
height:1px;
border-top:1px dashed var(--color-border);
}

.footer{
padding:var(--space-4) var(--space-3);
border-top:1px solid var(--color-border);
}

.footer .container{
display:flex;
flex-wrap:wrap;
gap:var(--space-3);
justify-content:space-between;
}

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

@media (max-width:768px){
h1{font-size:2.2rem;}
h2{font-size:1.75rem;}
h3{font-size:1.25rem;}

.grid-2,
.grid-3{
grid-template-columns:1fr;
gap:var(--space-3);
}

.hero{
min-height:auto;
}

.hero-panel{
padding:var(--space-3);
}

section{
padding:var(--space-4) var(--space-2);
}

.button{
width:100%;
}

.flex-between{
flex-direction:column;
align-items:flex-start;
}

.process{
flex-direction:column;
gap:var(--space-3);
}
}