/* styles.css */
:root{
  --bg:#000;
  --fg:#fff;
  --muted: rgba(255,255,255,.70);
  --dim: rgba(255,255,255,.40);
  --hair: rgba(255,255,255,.14);
  --hair2: rgba(255,255,255,.08);

  --max: 1080px;
  --pad: 24px;
  --radius: 18px;

  --mono: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family: var(--mono);
  letter-spacing: .2px;
  animation: fadeInPage 900ms ease-out;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  overflow-x: hidden;
}
@keyframes fadeInPage { from{opacity:0} to{opacity:1} }

img{ max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

.wrap{
  width: min(var(--max), 100%);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.scrollbar{
  position: fixed;
  top:0; left:0; right:0;
  height: 2px;
  background: transparent;
  z-index: 9999;
}
.scrollbar__fill{
  height:100%;
  width:0%;
  background: rgba(255,255,255,.75);
}

/* vignette + grain (no center halo) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(120% 120% at 50% 50%, rgba(0,0,0,0) 55%, rgba(0,0,0,.65) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.02) 0px, rgba(255,255,255,.02) 1px, rgba(0,0,0,0) 2px, rgba(0,0,0,0) 4px);
  opacity: .22;
  mix-blend-mode: normal;
}

/* NAV */
.nav{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 2000;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 260ms cubic-bezier(.2,.8,.2,1), transform 260ms cubic-bezier(.2,.8,.2,1);
}
.nav.isVisible{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.nav__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px var(--pad);
  background: rgba(0,0,0,.70);
  border-bottom: 1px solid var(--hair2);
  backdrop-filter: blur(10px);
}
.nav__brand{ display:flex; align-items:center; gap:10px; }
.nav__dot{
  width:8px;height:8px;border-radius:999px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 0 18px rgba(255,255,255,.25);
}
.nav__name{ opacity:.95; }
.nav__links{ display:flex; align-items:center; gap:18px; }
.nav__links a{
  opacity:.70;
  font-size: 13px;
  transition: opacity 180ms ease;
}
.nav__links a:hover{ opacity: 1; }

.nav__ghost{
  background: transparent;
  color: var(--fg);
  border: 1px solid var(--hair);
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  opacity: .85;
  transition: opacity 180ms ease, border-color 180ms ease;
  cursor: pointer;
}
.nav__ghost:hover{ opacity: 1; border-color: rgba(255,255,255,.30); }

.nav__burger{
  display:none;
  width:44px;
  height:38px;
  border:1px solid var(--hair);
  border-radius: 999px;
  background: transparent;
  cursor:pointer;
  gap:4px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
}
.nav__burger span{ width:18px; height:2px; background: rgba(255,255,255,.75); display:block; }

.nav__mobile{
  display:none;
  background: rgba(0,0,0,.88);
  border-bottom: 1px solid var(--hair2);
  padding: 14px var(--pad) 18px;
}
.nav__mobile a{
  display:block;
  padding: 10px 0;
  opacity: .82;
  border-bottom: 1px solid var(--hair2);
}
.nav__ghost--mobile{ margin-top: 12px; width:100%; }

/* HERO */
.hero{
  min-height: 100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  position: relative;
  overflow:hidden;
  z-index: 1;
}

/* hard disable glow */
.hero__bg{ display: none !important; }

.hero__center{
  text-align:center;
  position: fixed;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);
  opacity: 1;
  z-index: 5;
  will-change: opacity, transform;
}

.hero__logoBtn{
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0;
  cursor: pointer;
  line-height: 0;
  border-radius: 0 !important;
  appearance: none;
  -webkit-appearance: none;
}
.hero__logoBtn:focus,
.hero__logoBtn:focus-visible{
  outline: none !important;
  box-shadow: none !important;
}
.hero__logoBtn img{
  width: 210px;
  user-select:none;
  -webkit-user-drag:none;
  filter: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  transition: transform 260ms cubic-bezier(.2,.8,.2,1), opacity 260ms cubic-bezier(.2,.8,.2,1);
  opacity: .98;
}
.hero__logoBtn:hover img{ transform: scale(1.06); }

.hero__wordmark{
  margin-top: 18px;
  font-size: clamp(32px, 6vw, 72px);
  font-weight: 300;
  letter-spacing: 2px;
  opacity: .92;
}

.hero__hint{
  margin-top: 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  opacity: .55;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.hero__hintLine{ width: 26px; height:1px; background: var(--hair); }

/* SECTIONS */
.section{ padding: 110px 0; position: relative; z-index: 1; }
.section--first{ padding-top: 120px; }
.section__head h2{ margin:0 0 10px; font-size: 22px; font-weight: 400; }
.section__head p{ margin:0 0 28px; color: var(--muted); max-width: 64ch; line-height: 1.6; }

.title{ margin:0 0 10px; font-size: 34px; font-weight: 400; }
.lead{ margin:0; color: var(--muted); line-height: 1.7; max-width: 60ch; }

.chips{ display:flex; flex-wrap:wrap; gap:10px; margin: 18px 0 22px; }
.chip{ border:1px solid var(--hair); padding: 7px 12px; border-radius: 999px; font-size: 12px; opacity: .85; }

.grid2{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 22px; align-items: start; }
@media (max-width: 900px){ .grid2{ grid-template-columns: 1fr; } }

.panel{ border:1px solid var(--hair2); border-radius: var(--radius); padding: 18px 18px 16px; background: rgba(255,255,255,.02); }
.panel__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 14px; }
.panel__kicker{ font-size: 12px; opacity: .75; text-transform: uppercase; letter-spacing: 2px; }
.panel__tag{ font-size: 12px; opacity: .75; border: 1px solid var(--hair); padding: 6px 10px; border-radius: 999px; }

.terminal{ border: 1px solid var(--hair2); border-radius: 14px; padding: 14px; background: rgba(0,0,0,.45); }
.terminal__line{ font-size: 12px; line-height: 1.7; opacity: .92; white-space: pre-wrap; }
.tDim{ color: var(--dim); } .tOk{ color: rgba(255,255,255,.92); } .tHi{ color: rgba(255,255,255,.98); text-decoration: underline; } .tOut{ margin-left: 2px; }
.terminal__inputRow{ display:flex; align-items:center; gap: 10px; margin-top: 10px; }
.terminal__input{ width: 100%; background: transparent; border: 0; outline: none; color: var(--fg); font-size: 12px; padding: 8px 0; }

.now{ border: 1px solid var(--hair2); border-radius: 14px; padding: 12px 14px; background: rgba(255,255,255,.01); max-width: 520px; }
.now__row{ display:flex; align-items:center; justify-content:space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--hair2); }
.now__row:last-child{ border-bottom:0; }
.now__label{ color: var(--dim); font-size: 12px; }
.now__value{ font-size: 12px; opacity: .92; }
.dot{ display:inline-block; width:8px;height:8px;border-radius:999px; margin-right: 8px; transform: translateY(1px); }
.dot--ok{ background: rgba(255,255,255,.85); box-shadow: 0 0 18px rgba(255,255,255,.22); }

.cards{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 980px){ .cards{ grid-template-columns: 1fr; } }
.card{ border:1px solid var(--hair2); border-radius: var(--radius); padding: 18px; background: rgba(255,255,255,.02); transition: transform 220ms ease, border-color 220ms ease; }
.card:hover{ transform: translateY(-2px); border-color: rgba(255,255,255,.18); }
.card__top{ display:flex; align-items:center; justify-content:space-between; gap: 12px; }
.card h3{ margin: 0; font-size: 15px; font-weight: 400; }
.card p{ margin: 10px 0 14px; color: var(--muted); line-height: 1.6; font-size: 13px; }
.badge{ font-size: 11px; border:1px solid var(--hair); padding: 6px 10px; border-radius: 999px; opacity:.82; }
.meta{ display:flex; gap: 10px; flex-wrap:wrap; color: var(--dim); font-size: 11px; }

.stack{ border: 1px solid var(--hair2); border-radius: var(--radius); padding: 18px; background: rgba(255,255,255,.02); }
.stack__row{ display:grid; grid-template-columns: 220px 1fr 48px; gap: 14px; align-items:center; padding: 12px 0; border-bottom: 1px solid var(--hair2); }
.stack__row:last-of-type{ border-bottom:0; }
@media (max-width: 720px){ .stack__row{ grid-template-columns: 1fr; } .stack__val{ justify-self: start; text-align:left; } }
.stack__label{ display:flex; flex-direction:column; gap:3px; }
.stack__name{ font-size: 13px; opacity: .92; }
.stack__sub{ font-size: 11px; color: var(--dim); }
.bar{ height: 10px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--hair2); overflow:hidden; }
.bar__fill{ height:100%; background: rgba(255,255,255,.75); border-radius: 999px; transition: width 240ms ease; }
.stack__val{ text-align:right; font-size: 12px; color: var(--muted); }
.note{ margin: 14px 0 0; color: var(--dim); font-size: 12px; line-height: 1.6; }

.section--mystery{ padding-top: 80px; }
.mystery{ text-align:center; display:flex; flex-direction:column; gap: 16px; align-items:center; }
.mystery__img{ width: min(520px, 90vw); opacity: .95; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.mystery__text{ max-width: 72ch; color: var(--muted); line-height: 1.75; font-size: 13px; }
.mystery__btn{ background: transparent; color: var(--fg); border: 1px solid rgba(255,255,255,.45); padding: 11px 22px; border-radius: 999px; font-size: 12px; cursor: pointer; letter-spacing: 2px; text-transform: uppercase; transition: background 180ms ease, color 180ms ease, transform 180ms ease; }
.mystery__btn:hover{ background: var(--fg); color: var(--bg); transform: translateY(-1px); }
.mystery__toast{ min-height: 18px; color: var(--dim); font-size: 12px; }

.contact{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 900px){ .contact{ grid-template-columns: 1fr; } }
.contact__item{ border: 1px solid var(--hair2); border-radius: var(--radius); padding: 16px; background: rgba(255,255,255,.02); display:flex; align-items:center; justify-content:space-between; transition: border-color 200ms ease, transform 200ms ease; }
.contact__item:hover{ border-color: rgba(255,255,255,.18); transform: translateY(-1px); }
.contact__k{ color: var(--dim); font-size: 12px; }
.contact__v{ font-size: 12px; opacity: .92; }

.footer{ padding: 40px 0 60px; }
.footer__line{ height: 1px; background: var(--hair2); margin: 28px 0 18px; }
.footer__meta{ display:flex; align-items:center; justify-content:space-between; gap: 14px; font-size: 12px; color: var(--muted); }
.footer__dim{ color: var(--dim); }

.modal{ position: fixed; inset: 0; display:none; z-index: 3000; }
.modal.isOpen{ display:block; }
.modal__backdrop{ position:absolute; inset:0; background: rgba(0,0,0,.65); backdrop-filter: blur(6px); }
.modal__panel{ position: relative; width: min(520px, calc(100% - 36px)); margin: 10vh auto 0; border: 1px solid var(--hair2); border-radius: var(--radius); background: rgba(0,0,0,.92); padding: 18px; animation: pop 180ms ease-out; }
@keyframes pop{ from{ transform: translateY(8px); opacity:0; } to{ transform: translateY(0); opacity:1; } }
.modal__top{ display:flex; justify-content:space-between; gap: 16px; align-items:flex-start; margin-bottom: 14px; }
.modal__title{ font-size: 14px; opacity:.95; }
.modal__sub{ font-size: 12px; color: var(--dim); margin-top: 6px; line-height:1.5; }
.modal__close{ width: 38px; height: 38px; border-radius: 999px; border: 1px solid var(--hair); background: transparent; color: var(--fg); font-size: 18px; cursor:pointer; opacity: .9; }
.modal__content{ display:flex; flex-direction:column; gap: 12px; }
.field{ display:flex; flex-direction:column; gap: 6px; }
.field label{ font-size: 12px; color: var(--dim); }
.field input{ background: rgba(255,255,255,.04); border: 1px solid var(--hair2); border-radius: 12px; padding: 10px 12px; color: var(--fg); outline: none; font-family: var(--mono); font-size: 12px; }
.btn{ border-radius: 999px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.10); color: var(--fg); cursor: pointer; opacity:.9; }
.modal__note{ color: var(--dim); font-size: 12px; line-height: 1.6; margin: 6px 0 0; }

/* Reveal Animations */
.reveal{
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity 900ms cubic-bezier(.16,1,.3,1),
    transform 900ms cubic-bezier(.16,1,.3,1);
  transition-delay: var(--d, 0ms);
  will-change: opacity, transform;
}
.reveal.isIn{ opacity: 1; transform: translateY(0); }

/* Mobile Nav */
@media (max-width: 820px){
  .nav__links{ display:none; }
  .nav__burger{ display:flex; }
  .nav__mobile.isOpen{ display:block; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; animation:none !important; }
  .reveal{ transform:none !important; opacity:1 !important; }
}

/* =========================
   VAULT / INTEL DASHBOARD
   ========================= */

.section--vault{ padding-top: 90px; }

.vault{
  border:1px solid var(--hair2);
  border-radius: var(--radius);
  background: rgba(255,255,255,.02);
  padding: 18px;
  position: relative;
}

.vault__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--hair2);
  margin-bottom: 14px;
}

.vault__who{ display:flex; gap: 10px; align-items:center; flex-wrap: wrap; }
.vault__who .k{ color: var(--dim); font-size: 12px; }
.vault__who .v{
  font-size: 12px;
  opacity: .92;
  padding: 6px 10px;
  border:1px solid var(--hair2);
  border-radius: 999px;
}
.vault__who .v--mini{ opacity: .78; }

.vault__actions{ display:flex; gap: 10px; align-items:center; }

.vault__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
}
@media (max-width: 980px){
  .vault__grid{ grid-template-columns: 1fr; }
}

.intel__filters{
  display:grid;
  grid-template-columns: 1.2fr .7fr .7fr auto;
  gap: 12px;
  align-items:end;
  margin-bottom: 14px;
}
@media (max-width: 820px){
  .intel__filters{ grid-template-columns: 1fr; }
}

select{
  background: rgba(255,255,255,.04);
  border: 1px solid var(--hair2);
  border-radius: 12px;
  padding: 10px 12px;
  color: var(--fg);
  outline: none;
  font-family: var(--mono);
  font-size: 12px;
}

.intel__cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 14px 0;
}
@media (max-width: 900px){
  .intel__cards{ grid-template-columns: 1fr; }
}

.intelCard{
  border:1px solid var(--hair2);
  border-radius: 14px;
  background: rgba(0,0,0,.35);
  padding: 12px;
}
.intelCard__k{
  color: var(--dim);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.intelCard__v{ font-size: 16px; margin-top: 8px; opacity: .94; }
.intelCard__d{ font-size: 11px; color: var(--dim); margin-top: 6px; }

.intel__table{
  border:1px solid var(--hair2);
  border-radius: 14px;
  overflow:hidden;
}
.intel__thead{
  display:grid;
  grid-template-columns: 1.2fr .6fr 1fr;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,.03);
  color: var(--dim);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.intel__row{
  display:grid;
  grid-template-columns: 1.2fr .6fr 1fr;
  gap: 12px;
  padding: 10px 12px;
  border-top: 1px solid var(--hair2);
  font-size: 12px;
  align-items:center;
}
.dim{ color: var(--dim); }

.dl{
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.dlItem{
  border:1px solid var(--hair2);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.35);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
}
.dlItem__left{ display:flex; flex-direction:column; gap: 4px; }
.dlItem__name{ font-size: 12px; opacity: .92; }
.dlItem__meta{ font-size: 11px; color: var(--dim); }
.dlItem__btn{
  border-radius: 999px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.08);
  color: var(--fg);
  cursor: pointer;
  font-size: 12px;
}
.dlItem__btn[disabled]{ cursor:not-allowed; opacity:.55; }

.staff{
  display:flex;
  flex-direction:column;
  gap: 12px;
}
.staff__row{
  display:grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 12px;
  align-items:end;
}
@media (max-width: 820px){
  .staff__row{ grid-template-columns: 1fr; }
}

.staff__headRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-top: 6px;
}
.staff__headTitle{
  font-size: 12px;
  color: var(--muted);
}

.staff__list{
  border:1px solid var(--hair2);
  border-radius: 14px;
  padding: 8px;
  background: rgba(0,0,0,.35);
  font-size: 12px;
  color: var(--muted);
  line-height: 1.7;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.userRow{
  border:1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  padding: 10px;
  display:flex;
  flex-direction:column;
  gap: 8px;
  background: rgba(255,255,255,.01);
}
.userRow__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
}
.userRow__name{ color: rgba(255,255,255,.92); font-size: 12px; }
.userRow__perms{ color: var(--dim); font-size: 11px; }
.userRow__actions{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}
.smallBtn{
  border-radius: 999px;
  padding: 7px 10px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
  color: var(--fg);
  cursor: pointer;
  font-size: 11px;
  opacity: .9;
}
.smallBtn:hover{ opacity: 1; border-color: rgba(255,255,255,.32); }

/* UI gates */
.isLocked{
  filter: blur(6px);
  opacity: .55;
  pointer-events: none;
  user-select: none;
}

.isSealed .vault__seal{
  opacity: 1;
  pointer-events: auto;
}
.vault__seal{
  position:absolute;
  inset: 0;
  border-radius: var(--radius);
  background: rgba(0,0,0,.78);
  border: 1px solid var(--hair2);
  backdrop-filter: blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
  z-index: 5;
}
.vault__sealInner{
  text-align:center;
  padding: 18px;
  max-width: 44ch;
}
.vault__sealTitle{
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 12px;
  color: rgba(255,255,255,.90);
  margin-bottom: 8px;
}
.vault__sealSub{
  font-size: 12px;
  color: var(--dim);
  line-height: 1.7;
}