:root{
  --primary: #00ff41;
  --secondary: #00d9ff;
  --bg: #0d2008;
  --panel-bg: rgba(0,10,5,0.72);
  --mono: "Courier New", monospace;
}

/* Basic reset */
*{box-sizing:border-box;margin:0;padding:0;font-family:var(--mono);}
html,body,#canvas-wrap{height:100%;width:100%}
body{background:var(--bg);color:var(--primary);overflow:hidden}

/* Canvas */
#canvas-wrap{position:relative;z-index:0}
canvas{display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}

/* HERO */
.hero{position:fixed;left:50%;top:40%;transform:translate(-50%,-40%);text-align:center;z-index:4;pointer-events:none;width:100%;max-width:1100px;padding:8px}
.logo{font-size:6rem;letter-spacing:6px;color:transparent;-webkit-text-stroke:2px rgba(0,255,0,0.92);text-shadow:0 0 28px rgba(0,255,65,0.25);filter:drop-shadow(0 0 18px rgba(0,255,65,0.45));margin-bottom:6px;pointer-events:none}
.subtitle{color:var(--primary);opacity:.95;margin-bottom:18px;font-size:1.05rem;pointer-events:none}
.hero-actions{display:flex;gap:14px;justify-content:center;pointer-events:auto}

/* Buttons */
.btn{cursor:pointer;border-radius:10px;padding:10px 16px;border:1px solid rgba(255,255,255,0.04);background:rgba(0,0,0,0.36);color:var(--primary);font-weight:700;transition:all .18s}
.btn.primary{border-color:var(--primary);box-shadow:0 8px 40px rgba(0,255,65,0.04)}
.btn.outline{border-color:rgba(0,217,255,0.86);color:var(--secondary)}
.btn:hover{transform:translateY(-3px)}
.btn.full{display:block;width:100%;margin:8px 0}

/* Features */
.features{position:relative;z-index:2;padding:24px 48px;max-width:1200px;margin:34vh auto 80px}
.features-inner{background:rgba(0,0,0,0.48);border-radius:8px;padding:26px;border:1px solid rgba(0,255,0,0.06);backdrop-filter: blur(6px)}
.features h3{color:var(--primary);font-weight:900;margin-bottom:12px}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature-grid h4{color:var(--primary);font-size:0.95rem;margin-bottom:6px}
.feature-grid p{color:rgba(0,255,65,0.9);font-size:.88rem;opacity:0.95}

/* Sidebar panel */
.config-panel{position:fixed;right:0;top:0;height:100vh;width:360px;background:var(--panel-bg);backdrop-filter:blur(12px);border-left:1px solid rgba(0,255,0,0.06);z-index:8;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s}
.config-panel.open{transform:translateX(0)}

/* header */
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid rgba(255,255,255,0.02)}
.panel-head .title{font-weight:800;color:var(--primary)}
.panel-head .actions button{background:none;border:0;color:var(--primary);cursor:pointer}

/* tabs */
.panel-tabs{display:flex;gap:6px;padding:10px;border-bottom:1px solid rgba(255,255,255,0.02)}
.tab-btn{flex:1;padding:9px;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,0.03);color:#9bb79b;cursor:pointer}
.tab-btn.active{background:linear-gradient(90deg,var(--primary),var(--secondary));color:#001;font-weight:800}

/* body */
.panel-body{padding:14px;overflow:auto;flex:1}
.tab{display:none}
.tab.active{display:block}
.group-label{display:block;color:var(--primary);font-weight:800;margin:12px 0 8px}
.input{width:100%;padding:10px;background:#07120a;border:1px solid rgba(255,255,255,0.03);color:var(--primary);border-radius:8px}

/* preset themes */
.preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.theme.preset{flex:1;padding:8px;background:#000;border:1px solid rgba(255,255,255,0.03);color:#fff;border-radius:8px;cursor:pointer;display:flex;gap:8px;align-items:center}
.theme.preset span{width:16px;height:16px;border-radius:4px;display:inline-block;margin-right:6px}

/* dir buttons */
.direction-row{display:flex;gap:8px;margin-bottom:8px}
.dir-btn{flex:1;padding:8px;border-radius:8px;background:#07120a;border:1px solid rgba(255,255,255,0.03);color:#9bb79b;cursor:pointer}
.dir-btn.active{border-color:var(--primary);box-shadow:inset 0 0 12px rgba(0,255,0,0.06);color:var(--primary)}

/* toggle */
.switch{position:relative;display:inline-block;width:46px;height:26px}
.switch input{display:none}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#0a0a0a;border-radius:26px;border:1px solid rgba(255,255,255,0.03)}
.slider:before{content:"";position:absolute;height:18px;width:18px;left:4px;top:3px;border-radius:50%;background:#fff;transition:.22s}
.switch input:checked + .slider{background:linear-gradient(90deg,var(--primary),var(--secondary))}
.switch input:checked + .slider:before{transform:translateX(20px)}

/* range inputs with fill */
.range{appearance:none;height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,0.06),rgba(255,255,255,0.02));outline:none}
.range::-webkit-slider-runnable-track{height:10px;border-radius:999px}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(90deg,var(--primary),var(--secondary));box-shadow:0 4px 14px rgba(0,0,0,0.6);margin-top:-4px;border:2px solid rgba(255,255,255,0.05)}
.range::-moz-range-thumb{width:18px;height:18px;border-radius:50%}

/* small & adv */
.small{font-size:.85rem;color:#a0d6a6;opacity:0.95}
.adv-sep{height:1px;background:rgba(255,255,255,0.02);margin:10px 0}

/* modal */
.modal{position:fixed;left:0;top:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,0.6);z-index:40}
.modal[aria-hidden="false"]{display:flex}
.modal-inner{width:92%;max-width:540px;background:rgba(3,7,5,0.95);border-radius:10px;padding:18px;border:1px solid rgba(0,255,0,0.06)}
.modal-close{position:absolute;right:18px;top:18px;background:none;border:0;color:var(--primary);cursor:pointer}
.modal-list{margin:12px 0;padding-left:18px;color:#bfe6b8}
.modal-actions{text-align:right;margin-top:12px}

/* info */
.info{margin-top:12px;color:#9fbba0;font-size:.9rem;opacity:0.95}
.cyber-hr{height:1px;background:rgba(255,255,255,0.02);margin:12px 0}

/* footer */
.footer{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;background:rgba(0,0,0,0.6);padding:8px 14px;border-radius:18px;border:1px solid rgba(255,255,255,0.02);z-index:9;display:flex;gap:12px;align-items:center}
.footer a{color:#9fbba0;text-decoration:none}

/* responsive */
@media (max-width:900px){
  .logo{font-size:3.6rem}
  .features{padding:14px;margin-top:42vh}
  .feature-grid{grid-template-columns:1fr;gap:12px}
  .config-panel{width:100%;height:55vh;bottom:0;top:auto;right:0;border-left:none;border-top:1px solid rgba(255,255,255,0.02);transform:translateY(100%)}
  .config-panel.open{transform:translateY(0)}
  .hero{top:34%}
}

/* scrollbar */
::-webkit-scrollbar{height:8px;width:8px}
::-webkit-scrollbar-thumb{background:rgba(0,255,0,0.06);border-radius:8px}
