:root{
    --void: #030308;
    --void-deep: #000001;
    --disk-amber: #ff9d4d;
    --disk-amber-bright: #ffe6c7;
    --lens-blue: #8de3f2;
    --rim: #1a1420;
    --text: #f7f3ed;
    --text-soft: #e2dce4;
    --text-dim: #c4bdc7;
    --text-faint: #99919d;
    --crit: #ff5d5d;
    --high: #ff9d4d;
    --med: #7fd8ea;
    --sp: 0;
    --font-display: 'Fraunces', serif;
    --font-body: 'IBM Plex Sans', sans-serif;
    --font-mono: 'IBM Plex Mono', monospace;
  }

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

  html{ scroll-behavior:smooth; background:var(--void); cursor:none; }

  @media (hover: none), (pointer: coarse){
    html{ cursor:auto; }
  }

  #cursor-dot{
    position:fixed; top:0; left:0; width:6px; height:6px; border-radius:50%;
    background:var(--disk-amber-bright);
    box-shadow:0 0 8px 2px rgba(255,224,176,0.75), 0 0 20px 6px rgba(255,157,77,0.35);
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition:transform 0.15s ease, background 0.3s ease;
    will-change:left, top;
  }

  #cursor-ring{
    position:fixed; top:0; left:0; width:32px; height:32px; border-radius:50%;
    border:1px solid rgba(127,216,234,0.55);
    pointer-events:none; z-index:9998;
    transform:translate(-50%,-50%);
    transition:width 0.28s ease, height 0.28s ease, border-color 0.28s ease, background 0.28s ease;
    will-change:left, top;
  }

  #cursor-ring.hover{
    width:58px; height:58px;
    border-color:var(--disk-amber);
    background:rgba(255,157,77,0.06);
  }

  #cursor-ring.press{ width:22px; height:22px; }

  body{
    background:var(--void);
    color:var(--text);
    font-family:var(--font-body);
    font-weight:400;
    line-height:1.6;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }

  ::selection{ background:var(--disk-amber); color:#0a0708; }

  a{ color:inherit; }

  :focus-visible{ outline:2px solid var(--disk-amber); outline-offset:3px; }

  canvas#bh{
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    z-index:0;
    background:var(--void);
  }

  .grid-overlay{
    position:fixed; inset:0; z-index:1;
    pointer-events:none;
    background-image:
      repeating-linear-gradient(to right, rgba(127,216,234,0.05) 0px, rgba(127,216,234,0.05) 1px, transparent 1px, transparent 64px),
      repeating-linear-gradient(to bottom, rgba(127,216,234,0.05) 0px, rgba(127,216,234,0.05) 1px, transparent 1px, transparent 64px),
      repeating-linear-gradient(to right, rgba(255,157,77,0.04) 0px, rgba(255,157,77,0.04) 1px, transparent 1px, transparent 320px),
      repeating-linear-gradient(to bottom, rgba(255,157,77,0.04) 0px, rgba(255,157,77,0.04) 1px, transparent 1px, transparent 320px);
    background-position: 0 calc(var(--sp, 0) * -80px);
    -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 35%, black 30%, transparent 88%);
    mask-image: radial-gradient(ellipse 80% 70% at 50% 35%, black 30%, transparent 88%);
  }

  .grain{
    position:fixed; inset:0; z-index:50;
    pointer-events:none;
    opacity:0.045;
    mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  .depth-bar{
    position:fixed; left:0; top:0; bottom:0; width:2px; z-index:40;
    background:rgba(255,255,255,0.05);
  }
  .depth-fill{
    width:100%; height:0%;
    background:linear-gradient(to bottom, var(--lens-blue), var(--disk-amber));
    box-shadow:0 0 8px var(--disk-amber);
    transition:height 0.05s linear;
  }

  .wordmark{
    position:fixed; top:28px; left:32px; z-index:40;
    font-family:var(--font-mono); font-size:13px; letter-spacing:0.12em;
    color:var(--text-dim);
  }
  .wordmark span{ color:var(--disk-amber); }

  .telemetry{
    position:fixed; right:32px; top:50%; transform:translateY(-50%);
    z-index:40; text-align:right;
    font-family:var(--font-mono);
    display:flex; flex-direction:column; gap:4px;
  }
  .telemetry-label{ font-size:10px; letter-spacing:0.2em; color:var(--text-faint); }
  .telemetry-value{ font-size:20px; color:var(--disk-amber-bright); font-weight:500; min-width:140px; }
  .telemetry-zone{ font-size:11px; letter-spacing:0.1em; color:var(--text-dim); }

  @media (max-width: 900px){
    .telemetry{ display:none; }
  }

  main{ position:relative; z-index:10; }

  .zone{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:120px 8vw;
    max-width:1180px;
    margin:0 auto;
    opacity:0;
    transform:translateY(28px);
    transition:opacity 0.9s ease, transform 0.9s ease;
  }
  .zone.visible{ opacity:1; transform:translateY(0); }

  .eyebrow{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.22em;
    color:var(--text-dim);
    text-transform:uppercase;
    margin-bottom:22px;
    display:flex; align-items:center; gap:12px;
  }
  .eyebrow::before{
    content:'';
    width:22px; height:1px;
    background:var(--disk-amber);
    display:inline-block;
  }

  h1,h2{ font-family:var(--font-display); font-weight:500; letter-spacing:-0.01em; }

  /* ---------- HERO ---------- */
  .hero{ padding-top:80px; }
  .hero .handle{
    font-family:var(--font-mono);
    font-size:clamp(14px,1.6vw,17px);
    color:var(--disk-amber);
    letter-spacing:0.06em;
    margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(46px,8.4vw,108px);
    line-height:0.98;
    color:var(--text);
  }
  .hero h1 em{
    font-style:italic;
    font-weight:300;
    color:var(--disk-amber-bright);
  }
  .hero .tagline{
    max-width:560px;
    margin-top:28px;
    font-size:clamp(16px,1.9vw,19px);
    color:var(--text-dim);
    font-weight:300;
  }
  .hero .meta-row{
    margin-top:52px;
    display:flex; flex-wrap:wrap; gap:32px 48px;
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--text-faint);
    letter-spacing:0.06em;
  }
  .hero .meta-row div span{ display:block; color:var(--text-dim); margin-top:4px; font-size:13px; }

  .scroll-cue{
    position:absolute; bottom:44px; left:50%; transform:translateX(-50%);
    font-family:var(--font-mono); font-size:11px; letter-spacing:0.2em;
    color:var(--text-dim); text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:10px;
  }
  .scroll-cue .chev{
    width:1px; height:34px;
    background:linear-gradient(to bottom, var(--text-faint), transparent);
    animation:fall 1.8s ease-in-out infinite;
  }
  @keyframes fall{
    0%{ transform:translateY(-6px); opacity:0.2; }
    50%{ opacity:1; }
    100%{ transform:translateY(10px); opacity:0.2; }
  }

  /* ---------- SECTION HEADERS ---------- */
  .zone h2{
    font-size:clamp(30px,4.4vw,50px);
    margin-bottom:10px;
  }
  .zone .depth-tag{
    font-family:var(--font-mono); font-size:12px; color:var(--text-faint);
    letter-spacing:0.1em; margin-bottom:44px;
  }
  .zone .depth-tag b{ color:var(--lens-blue); font-weight:500; }
  .zone-lead{
    max-width:620px; color:var(--text-soft); margin-bottom:52px; font-size:16px;
  }

  /* ---------- ACHIEVEMENTS (photon sphere) ---------- */
  .achv-list{ display:flex; flex-direction:column; }
  .achv-row{
    display:grid; grid-template-columns:100px 1fr;
    gap:24px;
    padding:26px 0;
    border-top:1px solid rgba(255,157,77,0.14);
    align-items:baseline;
  }
  .achv-row:last-child{ border-bottom:1px solid rgba(255,157,77,0.14); }
  .achv-year{ font-family:var(--font-mono); color:var(--disk-amber); font-size:14px; }
  .achv-title{ font-size:17px; color:var(--text); font-weight:400; }
  .achv-sub{ color:var(--text-dim); font-size:14px; margin-top:4px; }

  /* ---------- CVE / RESEARCH (accretion disk) ---------- */
  .cve-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
    gap:22px;
  }
  .cve-card{
    border:1px solid rgba(255,157,77,0.18);
    background:linear-gradient(180deg, rgba(255,157,77,0.045), rgba(0,0,0,0));
    padding:26px 24px 24px;
    position:relative;
    border-radius:2px;
  }
  .cve-card::before{
    content:'';
    position:absolute; left:0; top:0; bottom:0; width:3px;
    background:var(--sev-color, var(--disk-amber));
  }
  .cve-id{ font-family:var(--font-mono); font-size:17px; color:var(--text); letter-spacing:0.02em; }
  .cve-sev{
    display:inline-block; margin-top:10px;
    font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.12em;
    padding:3px 8px; border:1px solid var(--sev-color, var(--disk-amber));
    color:var(--sev-color, var(--disk-amber));
    text-transform:uppercase;
  }
  .cve-redacted{
    margin-top:20px;
    height:64px;
    background:repeating-linear-gradient(135deg, #0c0a0d, #0c0a0d 8px, #100d11 8px, #100d11 16px);
    border:1px solid rgba(255,255,255,0.05);
    position:relative;
    overflow:hidden;
  }
  .cve-redacted::after{
    content:'AWAITING COORDINATED DISCLOSURE';
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-mono); font-size:9.5px; letter-spacing:0.14em;
    color:rgba(247,243,237,0.48);
    text-align:center; padding:0 10px;
  }
  .cve-meta{
    margin-top:16px;
    font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint);
    display:flex; flex-direction:column; gap:4px;
  }
  .cve-meta b{ color:var(--text-dim); font-weight:400; }

  /* ---------- BUG BOUNTY (ergosphere) ---------- */
  .ergo-caption{
    font-style:italic; color:var(--text-soft); font-size:14px; margin-bottom:36px; max-width:560px;
  }
  .ledger-wrap{ overflow-x:auto; border:1px solid rgba(127,216,234,0.16); }
  table.ledger{
    width:100%; border-collapse:collapse; min-width:560px;
    font-family:var(--font-mono); font-size:13px;
  }
  table.ledger th{
    text-align:left; font-weight:500; letter-spacing:0.1em; text-transform:uppercase;
    font-size:10.5px; color:var(--lens-blue);
    padding:14px 18px; border-bottom:1px solid rgba(127,216,234,0.22);
  }
  table.ledger td{
    padding:15px 18px; color:var(--text-dim);
    border-bottom:1px solid rgba(255,255,255,0.05);
  }
  table.ledger tr:last-child td{ border-bottom:none; }
  .status-pill{
    font-size:10.5px; letter-spacing:0.08em; padding:2px 8px;
    border:1px solid var(--text-faint); color:var(--text-dim); text-transform:uppercase;
  }
  .status-pill.resolved{ border-color:var(--lens-blue); color:var(--lens-blue); }
  .status-pill.triaged{ border-color:var(--disk-amber); color:var(--disk-amber); }

  /* ---------- INTERESTS (event horizon) ---------- */
  .horizon-manifesto{
    max-width:600px; font-size:18px; color:var(--text); font-family:var(--font-display);
    font-style:italic; font-weight:400; line-height:1.5; margin-bottom:48px;
  }
  .chip-field{ display:flex; flex-wrap:wrap; gap:12px; }
  .chip{
    font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.03em;
    padding:10px 16px; border:1px solid rgba(237,232,224,0.14);
    color:var(--text-dim);
    transition:border-color 0.3s ease, color 0.3s ease;
  }
  .chip:hover{ border-color:var(--disk-amber); color:var(--disk-amber-bright); }

  /* ---------- SINGULARITY / CONTACT ---------- */
  .singularity{ text-align:center; align-items:center; min-height:100vh; }
  .singularity .eyebrow{ justify-content:center; }
  .singularity .eyebrow::before{ display:none; }
  .singularity h2{ font-size:clamp(34px,5vw,56px); }
  .singularity .zero{ font-family:var(--font-mono); color:var(--text-faint); font-size:12px; margin-bottom:40px; letter-spacing:0.2em; }
  .contact-links{
    display:flex; flex-wrap:wrap; justify-content:center; gap:14px 28px;
    margin-top:8px; font-family:var(--font-mono); font-size:14px;
  }
  .contact-links a{
    color:var(--text-dim); text-decoration:none; border-bottom:1px solid transparent;
    padding-bottom:2px; transition:color 0.3s ease, border-color 0.3s ease;
  }
  .contact-links a:hover{ color:var(--disk-amber-bright); border-color:var(--disk-amber); }

  .pgp-block{
    margin-top:56px;
    font-family:var(--font-mono); font-size:11.5px; color:var(--text-faint);
    background:rgba(255,255,255,0.02);
    border:1px solid rgba(255,255,255,0.07);
    padding:20px 24px;
    max-width:520px;
    text-align:left;
    line-height:1.9;
  }
  .pgp-block .label{ color:var(--lens-blue); letter-spacing:0.1em; font-size:10px; margin-bottom:8px; display:block; }

  footer{
    position:relative; z-index:10;
    text-align:center; padding:48px 24px 60px;
    font-family:var(--font-mono); font-size:11px; color:var(--text-dim); letter-spacing:0.05em;
  }

  @media (max-width:600px){
    .zone{ padding:100px 6vw; }
    .achv-row{ grid-template-columns:1fr; gap:6px; }
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .zone{ transition:none; opacity:1; transform:none; }
    .scroll-cue .chev{ animation:none; }
  }

  /* ---------- PUBLISHED CVE CARD AS LINK ---------- */
  a.cve-card{ display:block; text-decoration:none; transition:transform 0.3s ease, border-color 0.3s ease; }
  a.cve-card:hover{ transform:translateY(-3px); border-color:var(--sev-color, var(--disk-amber)); }
  .cve-readmore{
    margin-top:18px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.08em;
    color:var(--sev-color, var(--disk-amber)); text-transform:uppercase;
  }

  /* ---------- ARTICLE (research.php) ---------- */
  article.zone{ min-height:auto; padding-top:170px; padding-bottom:100px; align-items:flex-start; }
  article .article-title{
    margin-top:14px; font-family:var(--font-display); font-weight:500;
    font-size:clamp(28px,4.2vw,46px); line-height:1.08; max-width:820px;
  }
  article .article-body{
    margin-top:44px; max-width:720px; color:var(--text-soft); font-size:16px; line-height:1.85;
  }
  article .article-body p{ margin-bottom:20px; }
  article .article-body h3{ font-family:var(--font-display); color:var(--text); margin:36px 0 14px; font-weight:500; }
  .back-link{
    display:inline-block; margin-top:60px; font-family:var(--font-mono); font-size:13px;
    color:var(--disk-amber); text-decoration:none;
  }

  /* ---------- ADMIN PANEL ---------- */
  .admin-wrap{ max-width:920px; margin:0 auto; padding:80px 24px 100px; position:relative; z-index:10; }
  .admin-wrap h1{ font-family:var(--font-display); font-size:32px; margin-bottom:6px; }
  .admin-sub{ color:var(--text-faint); font-family:var(--font-mono); font-size:12px; margin-bottom:40px; letter-spacing:0.08em; }
  .admin-card{ border:1px solid rgba(255,157,77,0.16); padding:28px; margin-bottom:22px; background:rgba(255,157,77,0.03); }
  .admin-card h2{ font-family:var(--font-display); font-size:20px; margin-bottom:18px; }
  .admin-row{ display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid rgba(255,255,255,0.06); gap:16px; }
  .admin-row:first-of-type{ border-top:none; }
  .admin-row-title{ font-size:14px; color:var(--text); }
  .admin-row-sub{ font-size:12px; color:var(--text-faint); font-family:var(--font-mono); margin-top:3px; }
  .admin-actions a{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.05em; margin-left:14px; text-decoration:none; }
  .admin-actions .edit{ color:var(--lens-blue); }
  .admin-actions .del{ color:var(--crit); }
  .btn{
    display:inline-block; font-family:var(--font-mono); font-size:13px; letter-spacing:0.05em;
    padding:11px 20px; border:1px solid var(--disk-amber); color:var(--disk-amber-bright);
    background:rgba(255,157,77,0.08); text-decoration:none; cursor:pointer;
  }
  .btn:hover{ background:rgba(255,157,77,0.18); }
  form label{ display:block; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.06em; color:var(--text-dim); margin:18px 0 6px; text-transform:uppercase; }
  form input[type=text], form input[type=password], form select, form textarea{
    width:100%; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.12);
    color:var(--text); font-family:var(--font-body); font-size:14px; padding:11px 14px;
  }
  form textarea{ min-height:200px; font-family:var(--font-mono); font-size:13px; line-height:1.6; }
  .admin-error{ border:1px solid var(--crit); color:var(--crit); padding:12px 16px; font-family:var(--font-mono); font-size:13px; margin-bottom:24px; }
  .admin-notice{ border:1px solid var(--lens-blue); color:var(--lens-blue); padding:16px 20px; font-family:var(--font-mono); font-size:12.5px; line-height:1.7; margin-bottom:30px; }
  .admin-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:34px; }
  .admin-top a{ font-family:var(--font-mono); font-size:12px; color:var(--text-faint); text-decoration:none; }

/* ---------- BRIGHT TYPOGRAPHY OVERRIDE ---------- */
body { color: #f7f3ed; }

.wordmark { color: #c4bdc7; }
.telemetry-label { color: #99919d; }
.telemetry-zone { color: #c4bdc7; }

.eyebrow { color: #c4bdc7; }

.hero .tagline {
  color: #f7f3ed !important;
  font-weight: 400;
}
.hero .meta-row {
  color: #99919d;
}
.hero .meta-row div span {
  color: #c4bdc7 !important;
}

.scroll-cue {
  color: #99919d !important;
}

.zone .depth-tag {
  color: #99919d !important;
}
.zone-lead {
  color: #f7f3ed !important;
}

.achv-title,
.cve-id {
  color: #f7f3ed !important;
}
.achv-sub {
  color: #c4bdc7 !important;
}

.cve-meta {
  color: #99919d !important;
}
.cve-meta b {
  color: #c4bdc7 !important;
}

.ergo-caption {
  color: #f7f3ed !important;
}

table.ledger td {
  color: #c4bdc7 !important;
}

.status-pill {
  color: #c4bdc7;
}

.chip {
  color: #c4bdc7 !important;
}

.horizon-manifesto {
  color: #f7f3ed !important;
}

.singularity .zero {
  color: #99919d !important;
}

.contact-links a {
  color: #c4bdc7 !important;
}

.pgp-block {
  color: #99919d !important;
}
.pgp-block .label {
  color: #8de3f2 !important;
}

footer {
  color: #99919d !important;
}

article .article-body {
  color: #f7f3ed !important;
}

.admin-sub,
.admin-row-sub {
  color: #99919d !important;
}

form label {
  color: #c4bdc7 !important;
}

/* Make borders/backgrounds slightly more visible too */
.cve-card {
  background: linear-gradient(180deg, rgba(255,157,77,0.075), rgba(0,0,0,0));
  border-color: rgba(255,157,77,0.28);
}
.ledger-wrap {
  border-color: rgba(127,216,234,0.25);
}
.chip {
  border-color: rgba(237,232,224,0.22);
}
.pgp-block {
  background: rgba(255,255,255,0.035);
  border-color: rgba(255,255,255,0.11);
}