/* BlindSquid — matrix green palette
   #00FF41  phosphor white-hot  — h1, blink, critical alerts
   #00CC33  primary green       — body text, links
   #009922  mid green           — h2, pre, list items
   #006614  dim green           — metadata, secondary pre
   #003308  deep tint           — pre background wash
*/

:root {
    --green-hot:   #00FF41;
    --green-body:  #00CC33;
    --green-mid:   #009922;
    --green-dim:   #006614;
    --green-deep:  #003308;
}

body {
    background-color: #000000;
    color: var(--green-body);
    text-shadow: 0 0 4px rgba(0, 204, 51, 0.6);
}

h1 {
    color: var(--green-hot);
    text-shadow: 0 0 10px var(--green-hot), 0 0 20px rgba(0,255,65,0.4);
}

h2 {
    color: var(--green-mid);
    text-shadow: 0 0 6px rgba(0,153,34,0.7);
}

h3, h4 {
    color: var(--green-mid);
}

p {
    color: var(--green-body);
}

pre {
    color: var(--green-mid);
    background: rgba(0, 51, 8, 0.25);
    border-left: 2px solid var(--green-dim);
    padding-left: 8px;
    text-shadow: 0 0 3px rgba(0,153,34,0.5);
}

a {
    color: var(--green-body);
    text-decoration: none;
}

a:hover {
    color: var(--green-hot);
    text-shadow: 0 0 8px var(--green-hot), 0 0 16px rgba(0,255,65,0.4);
    text-decoration: underline;
}

li {
    color: var(--green-body);
}

/* metadata / muted spans */
.meta, .dim {
    color: var(--green-dim);
    text-shadow: none;
}

/* blink elements stay hot */
.blink {
    color: var(--green-hot);
    text-shadow: 0 0 8px var(--green-hot);
}

/* strong emphasis */
strong, em {
    color: var(--green-hot);
    font-style: normal;
}

/* terminal / code inline */
code {
    color: var(--green-mid);
    background: rgba(0,51,8,0.4);
    padding: 0 3px;
}

/* chromatic aberration on headings */
h1 {
    text-shadow:
        -2px 0 rgba(255,0,0,0.5),
         2px 0 rgba(0,200,255,0.5),
         0 0 10px var(--green-hot),
         0 0 20px rgba(0,255,65,0.4);
}
h2 {
    text-shadow:
        -1px 0 rgba(255,0,0,0.3),
         1px 0 rgba(0,200,255,0.3),
         0 0 6px rgba(0,153,34,0.7);
}

/* vignette */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9996;
    background: radial-gradient(ellipse at center,
        transparent 60%,
        rgba(0,0,0,0.55) 100%);
}

/* CRT scanlines + phosphor flicker */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 0, 0, 0.13) 0px,
        rgba(0, 0, 0, 0.13) 1px,
        transparent 1px,
        transparent 3px
    );
}

body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9997;
    animation: crt-flicker 8s step-end infinite;
    background: transparent;
}

@keyframes crt-flicker {
    0%   { opacity: 1; }
    92%  { opacity: 1; }
    93%  { opacity: 0.94; }
    94%  { opacity: 1; }
    96%  { opacity: 0.97; }
    97%  { opacity: 1; }
    99%  { opacity: 0.95; }
    100% { opacity: 1; }
}

/* nav HUD overrides */
#bsq-hud {
    color: var(--green-mid) !important;
    border-color: var(--green-dim) !important;
    text-shadow: 0 0 4px var(--green-dim) !important;
}
#bsq-hud:hover {
    color: var(--green-hot) !important;
    border-color: var(--green-body) !important;
}
#bsq-term {
    border-color: var(--green-mid) !important;
    box-shadow: 0 0 12px rgba(0,153,34,0.35) !important;
}
#bsq-out {
    color: var(--green-body);
}
#bsq-in {
    color: var(--green-hot) !important;
    caret-color: var(--green-hot) !important;
}
