:root{
  --bg0:#050607;
  --bg1:#0b0f0d;
  --ink:#e8f3ee;
  --muted:#a7b7b0;
  --green:#39ff88;
  --green2:#12c96a;
  --card:#0c1110cc;
  --stroke:#1f2b26;
  --shadow: 0 10px 40px rgba(0,0,0,.45);
  --radius: 18px;
  --fontDisplay: "Creepster", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --fontBody: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--fontBody);
  background: radial-gradient(1200px 800px at 50% 10%, #102017 0%, var(--bg0) 55%, #020303 100%);
  overflow-x:hidden;
}

/* Background FX */
.bg{position:fixed; inset:0; pointer-events:none; z-index:-1;}
.bgFog{
  position:absolute; inset:-40%;
  background:
    radial-gradient(closest-side at 30% 40%, rgba(57,255,136,.08), transparent 60%),
    radial-gradient(closest-side at 70% 50%, rgba(57,255,136,.06), transparent 62%),
    radial-gradient(closest-side at 50% 70%, rgba(255,255,255,.04), transparent 65%);
  filter: blur(22px);
  animation: drift 18s linear infinite;
  opacity:.9;
}
.bgNoise{
  position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity:.18;
}

@keyframes drift{
  0%{transform:translate3d(-2%, -1%, 0) rotate(0deg)}
  50%{transform:translate3d(2%, 1%, 0) rotate(6deg)}
  100%{transform:translate3d(-2%, -1%, 0) rotate(0deg)}
}

.wrap{max-width:1100px; margin:0 auto; padding:24px 16px 70px;}
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border-bottom:1px solid rgba(31,43,38,.8);
  backdrop-filter: blur(10px);
  background: rgba(5,6,7,.55);
  position:sticky; top:0; z-index:50;
}

.brand{display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none;}
.brandMark{
  width:38px; height:38px; display:grid; place-items:center;
  border-radius:12px;
  background: linear-gradient(180deg, rgba(57,255,136,.18), rgba(57,255,136,.05));
  border:1px solid rgba(57,255,136,.28);
  box-shadow: 0 0 28px rgba(57,255,136,.14);
  font-weight:800;
}
.brandText{font-weight:700; letter-spacing:.3px; opacity:.95}

.topnav{display:flex; gap:14px; flex-wrap:wrap; justify-content:center}
.topnav a{
  color:var(--muted); text-decoration:none; font-weight:600;
  padding:8px 10px; border-radius:12px;
}
.topnav a:hover{color:var(--ink); background:rgba(57,255,136,.06)}
.topnav a.active{color:var(--ink); background:rgba(57,255,136,.10); border:1px solid rgba(57,255,136,.18)}

.statusPill{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(12,17,16,.55);
}
.dot{width:10px; height:10px; border-radius:50%}
.dot--yellow{background:#ffd36a}
.dot--green{background:var(--green)}
.dot--red{background:#ff5e5e}
.statusText{color:var(--muted); font-weight:700; font-size:13px; white-space:nowrap}

.hero{
  display:grid; grid-template-columns: 1.2fr .8fr;
  gap:18px; margin-top:18px;
}
.heroLeft, .panel{
  background: var(--card);
  border:1px solid rgba(31,43,38,.85);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.heroLeft{padding:22px;}
.hero h1{
  font-family: var(--fontDisplay);
  font-size: 44px;
  margin: 0 0 8px;
  letter-spacing: 1px;
}
.glow{color:var(--green); text-shadow: 0 0 18px rgba(57,255,136,.3)}
.sub{margin:0 0 16px; color:var(--muted); line-height:1.5; font-size:16px;}
.heroActions{display:flex; gap:10px; flex-wrap:wrap; margin:10px 0 14px}

.btn{
  border:1px solid rgba(31,43,38,.95);
  background: rgba(10,14,13,.6);
  color:var(--ink);
  border-radius: 14px;
  padding: 10px 14px;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{transform: translateY(-1px); border-color: rgba(57,255,136,.25)}
.btn--primary{
  background: linear-gradient(180deg, rgba(57,255,136,.20), rgba(57,255,136,.06));
  border-color: rgba(57,255,136,.35);
  box-shadow: 0 0 20px rgba(57,255,136,.12);
}
.btn--ghost{background: rgba(255,255,255,.03)}

.micro{display:flex; gap:8px; flex-wrap:wrap}
.chip{
  font-size:12px; font-weight:800;
  padding:7px 10px; border-radius:999px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  color: var(--muted);
}

.panel{padding:18px;}
.panelTitle{font-weight:900; letter-spacing:.4px; color:var(--ink); margin-bottom:10px;}
.progressRow{display:flex; justify-content:space-between; color:var(--muted); font-weight:700; font-size:13px;}
.progressBar{
  height:12px; border-radius:999px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  overflow:hidden;
  margin-top:10px;
}
.progressFill{
  height:100%;
  background: linear-gradient(90deg, rgba(57,255,136,.05), rgba(57,255,136,.35), rgba(57,255,136,.12));
}
.divider{height:1px; background: rgba(31,43,38,.85); margin:14px 0;}

.featureRoom{display:flex; gap:12px; align-items:flex-start}
.featureIcon{
  width:42px; height:42px; display:grid; place-items:center;
  border-radius:14px;
  border:1px solid rgba(57,255,136,.25);
  background: rgba(57,255,136,.08);
}
.featureName{font-weight:900}
.featureDesc{color:var(--muted); margin-top:3px; line-height:1.35; font-size:13px;}

.toggle{
  width:100%;
  text-align:left;
  border-radius:14px;
  padding:10px 12px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  color: var(--muted);
  font-weight:800;
  cursor:pointer;
}
.toggle:hover{border-color: rgba(57,255,136,.2); color:var(--ink)}

.roomsHeader{margin:22px 4px 10px}
.roomsHeader h2{margin:0; font-size:20px}
.roomsHeader p{margin:6px 0 0; color:var(--muted); line-height:1.5}

.roomsGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top: 14px;
}
.room{
  position:relative;
  background: rgba(12,17,16,.62);
  border:1px solid rgba(31,43,38,.9);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: var(--shadow);
  cursor:pointer;
  overflow:hidden;
}
.room:hover{border-color: rgba(57,255,136,.25)}
.room::before{
  content:"";
  position:absolute; inset:-40%;
  background: radial-gradient(closest-side at 30% 30%, rgba(57,255,136,.10), transparent 60%);
  filter: blur(18px);
  opacity:.8;
}
.roomTop{display:flex; align-items:center; justify-content:space-between; gap:10px; position:relative}
.roomTitle{font-weight:1000; letter-spacing:.3px}
.badge{
  font-size:11px; font-weight:1000;
  padding:6px 9px; border-radius:999px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  color:var(--muted);
}
.roomDesc{position:relative; margin:10px 0 12px; color:var(--muted); line-height:1.45; font-size:13px;}
.roomFoot{position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px}
.locked{display:flex; align-items:center; gap:8px; color:#ffd36a; font-weight:900; font-size:12px}
.roomBtn{
  padding:8px 10px;
  border-radius: 12px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
}
.roomBtn:disabled{opacity:.45; cursor:not-allowed}

.footerNote{margin-top:18px}
.note{
  background: rgba(12,17,16,.55);
  border:1px solid rgba(31,43,38,.9);
  border-radius: var(--radius);
  padding: 14px 16px;
  color:var(--muted);
}
.noteTitle{color:var(--ink); font-weight:1000; margin-bottom:6px}
.note ul{margin:8px 0 0; padding-left:18px}
.note li{margin:6px 0}

/* Modal */
.modal{position:fixed; inset:0; display:none; z-index:100}
.modal[aria-hidden="false"]{display:block}
.modalBackdrop{position:absolute; inset:0; background: rgba(0,0,0,.65)}
.modalCard{
  position:relative;
  max-width: 780px;
  margin: 8vh auto 0;
  background: rgba(9,12,11,.92);
  border:1px solid rgba(57,255,136,.22);
  border-radius: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,.6);
  padding: 16px;
}
.modalTop{display:flex; justify-content:space-between; align-items:flex-start; gap:12px}
.modalKicker{font-weight:1000; color:#ffd36a; letter-spacing:.5px; font-size:12px}
.modalDesc{color:var(--muted); line-height:1.5; margin-top:8px}

.iconBtn{
  width:38px; height:38px;
  border-radius: 14px;
  border:1px solid rgba(31,43,38,.9);
  background: rgba(255,255,255,.03);
  color: var(--ink);
  cursor:pointer;
}

.keyhole{
  margin-top: 12px;
  border:1px solid rgba(31,43,38,.9);
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  overflow:hidden;
  position:relative;
}
.keyholeTitle{padding:10px 12px; font-weight:1000; border-bottom:1px solid rgba(31,43,38,.85)}
.preview{
  padding: 12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height: 220px;
  overflow:hidden;
}
.bubble{
  width: fit-content;
  max-width: 92%;
  padding:10px 12px;
  border-radius: 16px;
  border:1px solid rgba(31,43,38,.85);
  background: rgba(12,17,16,.72);
  color: var(--muted);
  font-weight:700;
  filter: blur(1.2px);
}
.bubble strong{color:var(--ink)}
.previewFade{
  position:absolute; left:0; right:0; bottom:0; height:70px;
  background: linear-gradient(to bottom, transparent, rgba(9,12,11,.98));
}

.modalActions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.modalFineprint{margin-top:10px; color:var(--muted); font-size:12px; font-weight:800}

/* Responsive */
@media (max-width: 960px){
  .hero{grid-template-columns: 1fr}
  .topnav{display:none} /* keep simple; you can swap to your mobile nav later */
  .roomsGrid{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 560px){
  .hero h1{font-size:36px}
  .roomsGrid{grid-template-columns: 1fr}
}

/* Reduce motion class */
.reduce-motion *{
  animation: none !important;
  transition: none !important;
}