/* Hidden defragmentation entrance — slow trip + ARG terminal interface. */

:root {
    --eh-d-bg:     #050402;
    --eh-d-amber:  #f0b35a;
    --eh-d-glow:   rgba(240, 179, 90, 0.55);
    --eh-d-dim:    rgba(240, 179, 90, 0.35);
    --eh-d-blood:  #ff2a2a;
    --eh-d-ghost:  rgba(240, 179, 90, 0.10);
}

/* ---------- Page trip (slower, more menacing) ---------- */

body.eh-defrag-trip {
    animation: eh-defrag-trip 2200ms cubic-bezier(0.55, 0, 0.45, 1) both,
               eh-defrag-shake 2200ms steps(40) both;
    will-change: filter, transform;
    pointer-events: none;
    user-select: none;
}

@keyframes eh-defrag-trip {
    0%   { filter: brightness(1) saturate(1) hue-rotate(0deg); }
    12%  { filter: brightness(0.65) saturate(1.6) hue-rotate(-25deg); }
    24%  { filter: brightness(1.5) saturate(0) contrast(2.4) invert(0.45); }
    38%  { filter: brightness(0.45) saturate(2.4) hue-rotate(170deg) blur(1px); }
    52%  { filter: brightness(1.1) saturate(0.4) hue-rotate(-160deg) contrast(1.5); }
    66%  { filter: brightness(0.35) saturate(2) hue-rotate(40deg) blur(1.5px); }
    80%  { filter: brightness(0.18) saturate(0.3) blur(3px) contrast(1.4); }
    100% { filter: brightness(0) saturate(0) blur(10px); }
}

@keyframes eh-defrag-shake {
    0%, 100% { transform: translate(0, 0); }
    6%       { transform: translate(-7px, 4px); }
    14%      { transform: translate(6px, -3px); }
    24%      { transform: translate(-9px, -2px); }
    34%      { transform: translate(7px, 5px); }
    46%      { transform: translate(-10px, 1px) skewX(-1deg); }
    58%      { transform: translate(8px, -5px) skewX(1deg); }
    70%      { transform: translate(-4px, 3px); }
    82%      { transform: translate(3px, -1px); }
    92%      { transform: translate(-1px, 1px); }
}

/* ---------- ARG terminal overlay ---------- */

.eh-defrag-overlay {
    position: fixed;
    inset: 0;
    background: var(--eh-d-bg);
    color: var(--eh-d-amber);
    font-family: 'VT323', 'Share Tech Mono', ui-monospace, monospace;
    font-size: 22px;
    line-height: 1.25;
    z-index: 999999;
    overflow: hidden;
    opacity: 0;
    text-shadow: 0 0 6px var(--eh-d-glow);
}
.eh-defrag-overlay.is-visible { opacity: 1; }

/* CRT scanlines — denser, more visible than before. */
.eh-defrag-scanlines {
    position: absolute;
    inset: -10%;
    pointer-events: none;
    background: repeating-linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0)        0px,
        rgba(0, 0, 0, 0)        2px,
        rgba(0, 0, 0, 0.45)     3px,
        rgba(0, 0, 0, 0)        4px
    );
    mix-blend-mode: multiply;
    animation: eh-defrag-scan 6s linear infinite;
    z-index: 4;
}
@keyframes eh-defrag-scan {
    0%   { transform: translateY(0); }
    100% { transform: translateY(8px); }
}

/* Vignette darkens the edges, narrows focus. */
.eh-defrag-vignette {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,0.92) 100%);
    z-index: 3;
}

/* Slow VHS-style roll bar drifting down. */
.eh-defrag-overlay::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 90px;
    background: linear-gradient(to bottom,
        transparent 0%,
        rgba(240, 179, 90, 0.05) 35%,
        rgba(240, 179, 90, 0.10) 50%,
        rgba(240, 179, 90, 0.05) 65%,
        transparent 100%);
    pointer-events: none;
    animation: eh-defrag-roll 9s linear infinite;
    z-index: 5;
    mix-blend-mode: screen;
}
@keyframes eh-defrag-roll {
    0%   { top: -90px; }
    100% { top: 100%; }
}

/* Subtle CRT brightness flicker on the readable layer. */
.eh-defrag-content {
    position: relative;
    z-index: 6;
    width: min(820px, 92vw);
    margin: 0 auto;
    padding: clamp(24px, 6vh, 80px) clamp(20px, 4vw, 40px);
    text-align: center;
    animation: eh-defrag-flicker 5.5s steps(60) infinite;
}
.eh-defrag-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
}
@keyframes eh-defrag-flicker {
    0%, 92%, 100% { filter: brightness(1); }
    93%  { filter: brightness(0.78); }
    94%  { filter: brightness(1.18); }
    95%  { filter: brightness(0.92); }
    96%  { filter: brightness(1.06); }
}

/* ---------- Terminal log preamble ---------- */

.eh-defrag-log {
    text-align: left;
    margin: 0 0 clamp(20px, 5vh, 48px);
    min-height: 6em;
    font-size: clamp(16px, 2vw, 22px);
    letter-spacing: 0.04em;
    color: var(--eh-d-amber);
    opacity: 0.85;
}
.eh-defrag-log-line {
    white-space: pre-wrap;
    margin: 0;
    line-height: 1.4;
}
.eh-defrag-log-line.eh-typing::after {
    content: '_';
    margin-left: 2px;
    animation: eh-defrag-blink 1s steps(1) infinite;
}
@keyframes eh-defrag-blink {
    0%, 49%   { opacity: 1; }
    50%, 100% { opacity: 0; }
}

/* ---------- Big heading + chromatic aberration ---------- */

.eh-defrag-heading {
    position: relative;
    font-family: 'VT323', monospace;
    font-size: clamp(44px, 8.5vw, 120px);
    line-height: 0.95;
    letter-spacing: 0.04em;
    margin: 0 0 clamp(20px, 5vh, 44px);
    color: var(--eh-d-amber);
    text-shadow:
        0 0 8px var(--eh-d-glow),
        0 0 22px rgba(240, 179, 90, 0.25);
    min-height: 1.1em;
    white-space: pre-wrap;
}
.eh-defrag-heading.eh-typing::after {
    content: '_';
    color: var(--eh-d-amber);
    margin-left: 0.05em;
    animation: eh-defrag-blink 0.9s steps(1) infinite;
}
.eh-defrag-heading.eh-typed {
    animation: eh-defrag-glitch 4.5s infinite;
}
@keyframes eh-defrag-glitch {
    0%, 92%, 100% { text-shadow: 0 0 8px var(--eh-d-glow), 0 0 22px rgba(240,179,90,0.25); transform: translateX(0); }
    93% { text-shadow: 4px 0 #00ffea, -4px 0 #ff2a8a, 0 0 12px var(--eh-d-glow); transform: translateX(-3px); }
    95% { text-shadow: -3px 0 #00ffea, 3px 0 #ff2a8a, 0 0 12px var(--eh-d-glow); transform: translateX(3px) skewX(-1deg); }
    97% { text-shadow: 1px 0 #00ffea, -1px 0 #ff2a8a, 0 0 8px var(--eh-d-glow); transform: translateX(-1px); }
}

/* ---------- Y / N choice ---------- */

.eh-defrag-yn {
    display: flex;
    gap: clamp(20px, 5vw, 64px);
    justify-content: center;
    align-items: center;
    margin: 0 0 1.5rem;
    font-size: clamp(28px, 4.5vw, 52px);
}
.eh-defrag-yn button {
    background: transparent;
    border: none;
    color: var(--eh-d-amber);
    font-family: inherit;
    font-size: inherit;
    letter-spacing: 0.1em;
    padding: 0.2em 0.5em;
    cursor: pointer;
    text-shadow: 0 0 8px var(--eh-d-glow);
    transition: color 140ms, text-shadow 140ms, transform 140ms;
}
.eh-defrag-yn button:hover,
.eh-defrag-yn button:focus-visible {
    color: #fff;
    text-shadow: 0 0 16px var(--eh-d-amber), 0 0 28px var(--eh-d-amber);
    transform: scale(1.04);
    outline: none;
}
.eh-defrag-yn button[data-yn="N"]:hover,
.eh-defrag-yn button[data-yn="N"]:focus-visible {
    color: var(--eh-d-blood);
    text-shadow: 0 0 16px var(--eh-d-blood), 0 0 28px var(--eh-d-blood);
}

.eh-defrag-hint {
    font-size: clamp(14px, 1.6vw, 20px);
    letter-spacing: 0.4em;
    opacity: 0.55;
    margin: 0;
}

/* ---------- Email transmit form ---------- */

.eh-defrag-email-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.4rem;
    max-width: 520px;
    margin: 0 auto;
}
.eh-defrag-input-row {
    display: flex;
    align-items: center;
    gap: 0.6em;
    border-bottom: 1px solid var(--eh-d-dim);
    padding: 0.3em 0;
}
.eh-defrag-input-row .eh-defrag-prompt-glyph {
    color: var(--eh-d-amber);
    font-size: clamp(20px, 2.6vw, 28px);
    text-shadow: 0 0 6px var(--eh-d-glow);
}
.eh-defrag-email-form input {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--eh-d-amber);
    font-family: inherit;
    font-size: clamp(20px, 2.8vw, 30px);
    padding: 0.2em 0;
    outline: none;
    caret-color: var(--eh-d-amber);
    text-shadow: 0 0 6px var(--eh-d-glow);
    letter-spacing: 0.04em;
}
.eh-defrag-email-form input::placeholder {
    color: var(--eh-d-dim);
}
.eh-defrag-email-form button {
    background: transparent;
    border: 1px solid var(--eh-d-amber);
    color: var(--eh-d-amber);
    font-family: inherit;
    font-size: clamp(18px, 2.2vw, 24px);
    padding: 0.45em 1.4em;
    cursor: pointer;
    letter-spacing: 0.25em;
    text-shadow: 0 0 6px var(--eh-d-glow);
    transition: background 160ms, color 160ms, box-shadow 160ms;
    align-self: center;
}
.eh-defrag-email-form button:hover,
.eh-defrag-email-form button:focus-visible {
    background: var(--eh-d-amber);
    color: var(--eh-d-bg);
    box-shadow: 0 0 24px var(--eh-d-glow);
    outline: none;
}
.eh-defrag-email-form button:disabled {
    opacity: 0.55;
    cursor: wait;
}
.eh-defrag-error {
    color: var(--eh-d-blood);
    font-size: clamp(14px, 1.6vw, 18px);
    letter-spacing: 0.18em;
    margin: 0;
    min-height: 1.2em;
    text-align: left;
    text-shadow: 0 0 6px rgba(255, 42, 42, 0.5);
}

/* ---------- BYE / Thanks final stages ---------- */

.eh-defrag-bye .eh-defrag-heading {
    color: var(--eh-d-blood);
    font-size: clamp(96px, 22vw, 320px);
    text-shadow: 0 0 12px rgba(255, 42, 42, 0.55), 0 0 36px rgba(255, 42, 42, 0.25);
}
.eh-defrag-bye .eh-defrag-heading.eh-typed {
    animation: eh-defrag-glitch-blood 3s infinite;
}
@keyframes eh-defrag-glitch-blood {
    0%, 88%, 100% { text-shadow: 0 0 12px rgba(255,42,42,0.55), 0 0 36px rgba(255,42,42,0.25); transform: translateX(0); }
    91% { text-shadow: 5px 0 #00ffea, -5px 0 #ffea00, 0 0 12px rgba(255,42,42,0.55); transform: translateX(-4px); }
    94% { text-shadow: -4px 0 #00ffea, 4px 0 #ffea00, 0 0 12px rgba(255,42,42,0.55); transform: translateX(4px); }
}

.eh-defrag-thanks-line {
    font-size: clamp(16px, 2.2vw, 22px);
    letter-spacing: 0.32em;
    opacity: 0.85;
    margin: 0;
}
.eh-defrag-warn-line {
    margin: 1.6em 0 0;
    font-size: clamp(20px, 2.8vw, 30px);
    letter-spacing: 0.18em;
    color: var(--eh-d-blood);
    text-shadow: 0 0 10px rgba(255, 42, 42, 0.55), 0 0 24px rgba(255, 42, 42, 0.25);
    min-height: 1.3em;
    animation: eh-defrag-warn-pulse 1.4s ease-in-out infinite;
}
.eh-defrag-warn-line.eh-typing::after {
    content: '_';
    margin-left: 0.05em;
    animation: eh-defrag-blink 0.9s steps(1) infinite;
}
@keyframes eh-defrag-warn-pulse {
    0%, 100% { opacity: 1;   text-shadow: 0 0 10px rgba(255,42,42,0.55), 0 0 24px rgba(255,42,42,0.25); }
    50%      { opacity: 0.62; text-shadow: 0 0 18px rgba(255,42,42,0.85), 0 0 40px rgba(255,42,42,0.45); }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
    body.eh-defrag-trip { animation-duration: 600ms; }
    .eh-defrag-content,
    .eh-defrag-heading.eh-typed,
    .eh-defrag-bye .eh-defrag-heading.eh-typed,
    .eh-defrag-scanlines,
    .eh-defrag-overlay::before { animation: none; }
}
