/* ARG meta effects */

.arg-vampire-typewriter {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 36px;
    pointer-events: none;
    background: rgba(0, 0, 0, 0.05);
    color: var(--win98-white);
    font-family: var(--font-family);
}

.arg-vampire-typewriter-body {
    max-width: min(680px, calc(100vw - 56px));
    min-height: 60px;
    font-size: 18px;
    line-height: 1.75;
    text-align: center;
    text-shadow:
        1px 1px 0 var(--win98-black),
        0 0 10px rgba(128, 0, 0, 0.95),
        0 0 22px rgba(255, 255, 255, 0.45);
    letter-spacing: 0;
}

.arg-vampire-typewriter-body::after {
    content: "_";
    animation: arg-caret-blink 0.8s steps(1) infinite;
}

.arg-vampire-typewriter.done .arg-vampire-typewriter-body::after {
    content: "";
    animation: none;
}

.arg-meta-title-flicker .title-bar-text {
    color: #ffff99;
}

.arg-meta-title-rewrite,
.arg-meta-text-rewrite {
    color: #ffff99;
    text-shadow: 1px 1px 0 #400000, 0 0 7px rgba(255, 255, 255, 0.75);
}

.arg-meta-name-flicker span {
    color: #ffff99;
    text-shadow: 1px 1px 0 #400000, 0 0 8px #ffffff;
}

.arg-meta-icon-label-rewrite {
    color: #ffff99;
}

.arg-meta-pulse {
    animation: arg-meta-pulse 0.72s steps(2) 1;
}

.arg-meta-flicker {
    animation: arg-icon-flicker 0.72s steps(2) 1;
}

.arg-meta-icon-flicker {
    animation: arg-icon-flicker 0.72s steps(2) 1;
}

.arg-meta-desktop-shiver {
    animation: arg-desktop-shiver 0.35s steps(2) 2;
}

.arg-meta-search-ghost {
    position: fixed;
    left: 50%;
    bottom: 64px;
    transform: translateX(-50%);
    z-index: 4500;
    padding: 4px 10px;
    background: var(--win98-gray);
    border: 2px solid;
    border-color: var(--win98-white) var(--win98-black) var(--win98-black) var(--win98-white);
    color: var(--win98-black);
}

.arg-meta-ghost-text {
    position: fixed;
    left: 50%;
    top: 42%;
    z-index: 4500;
    max-width: min(520px, calc(100vw - 48px));
    transform: translate(-50%, -50%);
    color: #fff8f8;
    font-family: var(--font-family);
    font-size: 15px;
    line-height: 1.4;
    text-align: center;
    text-shadow:
        1px 1px 0 #000000,
        0 0 9px rgba(120, 0, 0, 0.92);
    pointer-events: none;
    animation: arg-ghost-text 1s ease-out forwards;
}

.arg-meta-ghost-text[data-position="bottom"] {
    top: auto;
    bottom: 64px;
    transform: translateX(-50%);
    padding: 4px 10px;
    background: var(--win98-gray);
    border: 2px solid;
    border-color: var(--win98-white) var(--win98-black) var(--win98-black) var(--win98-white);
    color: var(--win98-black);
    text-shadow: none;
}

.arg-meta-ghost-text[data-position="free"] {
    left: auto;
    top: auto;
    transform: none;
}

.arg-meta-redaction-leak {
    font-family: var(--font-family-mono);
    letter-spacing: 0;
}

.arg-meta-floating-fragment {
    font-size: 24px;
}

.arg-meta-nudge {
    animation: arg-meta-nudge 0.48s steps(2) 1;
}

.arg-meta-shake {
    animation: arg-meta-shake 0.48s steps(2) 1;
}

.arg-meta-hidden {
    opacity: 0 !important;
    pointer-events: none !important;
}

.arg-meta-blur {
    filter: blur(1px) contrast(130%);
}

.arg-meta-redacted,
.arg-meta-text-corrupt {
    color: #ffff99;
    background: #400000;
    text-shadow: 1px 1px 0 #000000;
}

.arg-meta-click-denial {
    position: fixed;
    z-index: 5200;
    cursor: not-allowed;
    background: rgba(64, 0, 0, 0.04);
    pointer-events: auto;
}

.arg-meta-attention-veil {
    position: fixed;
    inset: 0;
    z-index: 4400;
    pointer-events: none;
    background: rgba(48, 0, 0, 0.08);
    animation: arg-attention-veil 0.62s ease-out forwards;
}

.arg-meta-soft-veil {
    background: rgba(20, 0, 0, 0.055);
}

@keyframes arg-caret-blink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}

@keyframes arg-meta-pulse {
    0% { color: inherit; background: inherit; }
    35% { color: #ffff99; background: #400000; }
    70% { color: inherit; background: inherit; }
    100% { color: inherit; background: inherit; }
}

@keyframes arg-icon-flicker {
    0% { opacity: 1; filter: none; }
    25% { opacity: 0.35; filter: contrast(160%); }
    50% { opacity: 1; filter: invert(1); }
    75% { opacity: 0.55; filter: none; }
    100% { opacity: 1; filter: none; }
}

@keyframes arg-desktop-shiver {
    0% { transform: translate(0, 0); }
    25% { transform: translate(1px, 0); }
    50% { transform: translate(-1px, 1px); }
    75% { transform: translate(0, -1px); }
    100% { transform: translate(0, 0); }
}

@keyframes arg-meta-nudge {
    0% { transform: translate(0, 0); }
    35% { transform: translate(var(--arg-nudge-x), var(--arg-nudge-y)); }
    70% { transform: translate(calc(var(--arg-nudge-x) * -0.5), calc(var(--arg-nudge-y) * -0.5)); }
    100% { transform: translate(0, 0); }
}

@keyframes arg-meta-shake {
    0% { transform: translate(0, 0); }
    20% { transform: translate(1px, -1px); }
    40% { transform: translate(-1px, 1px); }
    60% { transform: translate(1px, 1px); }
    80% { transform: translate(-1px, 0); }
    100% { transform: translate(0, 0); }
}

@keyframes arg-ghost-text {
    0% { opacity: 0; filter: blur(1px); }
    18% { opacity: 1; filter: blur(0); }
    72% { opacity: 1; filter: blur(0); }
    100% { opacity: 0; filter: blur(1px); }
}

@keyframes arg-attention-veil {
    0% { opacity: 0; }
    35% { opacity: 1; }
    100% { opacity: 0; }
}
