@import url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/DungGeunMo.css');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;700&family=Share+Tech+Mono&display=swap');

:root {
    /* Refined Espionage Palette - Professional Tiering */
    --terminal-primary: #00cc66;
    --terminal-soft: rgba(0, 204, 102, 0.62);
    --terminal-dim: rgba(0, 179, 90, 0.18);
    --terminal-edge: rgba(0, 179, 90, 0.32);

    --terminal-red: #ff3b3b;
    --bg-pure: #020704;
    --text-main: var(--terminal-soft);
    --font-main: 'IBM Plex Mono', 'Share Tech Mono', 'VT323', monospace;
    --font-header: 'IBM Plex Mono', 'Share Tech Mono', monospace;
    --font-data: 'IBM Plex Mono', 'Share Tech Mono', monospace;

    /* Visual Hierarchy Glows */
    --glow-primary: 0 0 12px rgba(25, 255, 90, 0.5);
    --glow-subtle: 0 0 4px rgba(25, 255, 90, 0.3);
    --cursor-mushroom: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M4 12c0-5.2 4.4-9 10-9s10 3.8 10 9H4z' fill='%23ff5f7e'/%3E%3Ccircle cx='10' cy='9' r='1.4' fill='%23fff4d6'/%3E%3Ccircle cx='14.5' cy='7.5' r='1.2' fill='%23fff4d6'/%3E%3Ccircle cx='19' cy='9.5' r='1.3' fill='%23fff4d6'/%3E%3Crect x='11' y='12' width='6' height='10' rx='2.5' fill='%23ffe8c6'/%3E%3Cpath d='M9.5 22h9' stroke='%23d8b98d' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M4 12c0-5.2 4.4-9 10-9s10 3.8 10 9' stroke='%236aff9f' stroke-width='1.2' fill='none'/%3E%3C/svg%3E") 10 4;
}


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

html,
body {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    /* Prevent all page-level scrolling */
}

body {
    background-color: var(--bg-pure);
    color: var(--text-main);
    font-family: var(--font-main);
    min-height: 100vh;
    min-height: 100dvh;
    line-height: 1.4;
    text-shadow: var(--glow-subtle);
}

@keyframes interface-breathing {

    0%,
    100% {
        opacity: 0.98;
        filter: brightness(1);
    }

    50% {
        opacity: 1;
        filter: brightness(1.03);
    }
}

/* CRT Screen Effect - High-Fidelity Retro Terminal */
.crt-overlay {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    /* Static Scanlines */
    background: repeating-linear-gradient(to bottom,
            rgba(0, 0, 0, 0.18) 0px,
            rgba(0, 0, 0, 0.18) 1px,
            transparent 1px,
            transparent 2px);
    background-size: 100% 2px;
    z-index: 10000;
    pointer-events: none;
    opacity: 0.8;
}

@keyframes microNoise {

    0%,
    100% {
        opacity: 0.04;
    }

    50% {
        opacity: 0.07;
    }
}

.crt-overlay::after {
    content: "";
    position: absolute;
    inset: 0;
    background: url('https://grainy-gradients.vercel.app/noise.svg');
    opacity: 0.05;
    animation: microNoise 0.3s infinite;
    pointer-events: none;
}

/* Simulated Bulge (Vignette + Inner Shadow) */
.crt-overlay::after {
    content: " ";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    /* Subtler vignette to avoid cutting off top text */
    background: radial-gradient(circle, rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.5) 120%);
    box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 10001;
}


/* --- Game Intro Screens --- */
#game-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    background: #000;
    z-index: 9000;
    display: block;
    /* Removed flex centering that was causing clipping */
    overflow: hidden;
}

main.crt {
    width: 100%;
    height: 100%;
    height: 100dvh;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* STAGE 00 Specific: Boot sequence occupies full screen */
#mission-boot {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    width: 100vw !important;
    height: 100dvh !important;
    background: #000;
    z-index: 9500 !important;
    display: block !important;
}

.boot-layout {
    display: grid;
    grid-template-columns: 280px 1fr 280px;
    height: 100%;
    width: 100%;
    padding: 20px;
    gap: 20px;
    box-sizing: border-box;
}

.boot-side {
    height: 100%;
    background: rgba(25, 255, 90, 0.02);
    border: 1px solid var(--terminal-dim);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.side-header {
    background: var(--terminal-dim);
    color: var(--terminal-bright);
    font-family: 'VT323', monospace;
    font-size: 0.8rem;
    padding: 5px 10px;
    letter-spacing: 2px;
    border-bottom: 1px solid var(--terminal-edge);
}

.side-log-stream {
    flex: 1;
    padding: 10px;
    font-family: 'Courier New', monospace;
    font-size: 0.65rem;
    color: var(--terminal-soft);
    line-height: 1.5;
    overflow: hidden;
    opacity: 0.7;
}

.boot-center {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    position: relative;
    padding-top: 20px;
}

.boot-header-fixed {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 30px;
}

.boot-logs-stream {
    flex: 1;
    overflow-y: auto;
    padding: 0 40px;
    scrollbar-width: none;
}

#mission-boot::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(25, 255, 90, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(25, 255, 90, 0.05) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    z-index: -1;
    opacity: 0.5;
}

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

#mission-boot::-webkit-scrollbar {
    display: none;
}

.boot-header-fixed {
    width: 100%;
    flex-shrink: 0;
    background: #000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 30px 0 20px;
    /* More vertical space, no line */
    border: none !important;
    /* NO MORE DIVIDING LINE */
    z-index: 100;
}

.boot-logs-stream {
    width: 100%;
    max-width: 1000px;
    padding: 10px 20px 20px;
    flex: 1;
    overflow: hidden;
    font-size: 1.15rem;
    /* Increased English font size */
    line-height: 1.35;
    color: var(--terminal-green);
    text-align: left;
    scrollbar-width: none;
    background: transparent;
}

.boot-logs-stream::-webkit-scrollbar {
    display: none;
}

.mission-panel {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 95%;
    max-width: 850px;
    background: rgba(0, 0, 0, 0.9);
    padding: 60px;
    /* Increased padding for breathing room */
    transition: opacity 0.4s ease;
    border-top: 1px solid var(--terminal-edge);
    border-bottom: 1px solid var(--terminal-edge);
    /* Removed heavy box shadow for cleaner look */
}

.mission-panel::before,
.mission-panel::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border-left: 1px solid var(--terminal-primary);
    pointer-events: none;
}

.mission-panel::before {
    top: 0;
    left: 0;
    border-top: 1px solid var(--terminal-primary);
}

.mission-panel::after {
    bottom: 0;
    left: 0;
    border-bottom: 1px solid var(--terminal-primary);
}

/* Redesigned Login Mission Styles */
.mission-header-alt {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(57, 255, 20, 0.3);
    padding-bottom: 20px;
    margin-bottom: 40px;
}

.agency-badge {
    font-size: 0.9rem;
    font-family: var(--font-header);
    letter-spacing: 4px;
    color: var(--terminal-primary);
    text-shadow: var(--glow-primary);
}

.mission-objective-label {
    font-size: 0.7rem;
    color: var(--terminal-dim);
    letter-spacing: 2px;
}

.mission-briefing-text {
    font-size: 0.85rem;
    color: var(--terminal-soft);
    border-left: 2px solid var(--terminal-primary);
    padding: 8px 15px;
    background: var(--terminal-dim);
    margin-bottom: 10px;
    line-height: 1.4;
    text-align: left;
}

.header-left {
    display: flex;
    flex-direction: column;
    gap: 5px;
    text-align: left;
}

.protocol-status {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.8rem;
    color: var(--terminal-dim);
}

.status-indicator {
    width: 6px;
    height: 6px;
    background: var(--terminal-primary);
    border-radius: 50%;
    box-shadow: var(--glow-primary);
    animation: status-breathe 3s infinite ease-in-out;
}

@keyframes status-breathe {

    0%,
    100% {
        opacity: 0.4;
        transform: scale(0.95);
    }

    50% {
        opacity: 1;
        transform: scale(1.1);
    }
}

.login-container-redesign {
    text-align: center;
    padding: 20px 0;
}

.login-vault-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
    border: 2px solid var(--terminal-bright);
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: rotate-slow 10s linear infinite;
}

.vault-inner {
    width: 30px;
    height: 30px;
    border: 1px solid var(--terminal-bright);
    transform: rotate(45deg);
}

.login-title-alt {
    font-family: var(--font-header);
    font-size: 1.8rem;
    color: var(--terminal-primary);
    margin-bottom: 8px;
    letter-spacing: 6px;
    text-shadow: var(--glow-primary);
}

.login-subtitle {
    font-size: 0.75rem;
    color: var(--terminal-dim);
    letter-spacing: 4px;
    margin-bottom: 20px;
    /* Reduced from 40px */
    text-transform: uppercase;
}

.login-instruction {
    font-size: 1.1rem;
    margin-bottom: 20px;
    color: var(--text-white);
}

.login-box-alt {
    background: transparent;
    border-top: 1px solid var(--terminal-dim);
    border-bottom: 1px solid var(--terminal-dim);
    padding: 20px 0;
    /* Reduced from 40px */
    margin-bottom: 20px;
    /* Reduced from 40px */
    position: relative;
}

.feedback-terminal {
    font-size: 0.95rem;
    min-height: 1.5rem;
    margin-bottom: 20px;
    color: var(--terminal-green);
    text-align: left;
    font-family: monospace;
}

.feedback-terminal::before {
    content: "> ";
}

.input-wrapper-alt {
    display: flex;
    align-items: center;
    gap: 15px;
    border-bottom: 1px solid var(--terminal-bright);
    padding: 5px 0;
}

.input-prefix {
    color: var(--terminal-dim);
    font-size: 0.9rem;
}

.vault-input {
    background: transparent;
    border: none;
    outline: none;
    color: var(--terminal-bright);
    font-family: var(--font-main);
    font-size: 1.5rem;
    letter-spacing: 10px;
    width: 100%;
}

.btn-vault {
    background: transparent;
    border: 1px solid var(--terminal-soft);
    color: var(--terminal-soft);
    font-family: var(--font-header);
    font-size: 0.9rem;
    padding: 12px 40px;
    letter-spacing: 4px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.btn-vault::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--terminal-primary);
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    z-index: -1;
}

.btn-vault:hover {
    color: #000;
    background: var(--terminal-primary);
    box-shadow: var(--glow-primary);
    animation: bar-flicker 0.2s infinite;
    /* Rapid tactical flicker on hover */
}

@keyframes bar-flicker {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.8;
    }
}

.security-meta-info {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-top: 40px;
    font-size: 0.7rem;
    color: var(--terminal-dim);
}

/* Mission-1 Heavy Terminal Pass */
#mission-1 {
    max-width: 1180px;
}

.login-container-redesign {
    padding: 12px 0 0;
}

.auth-matrix-grid {
    display: grid;
    grid-template-columns: 250px 1fr 250px;
    gap: 18px;
    align-items: stretch;
}

.auth-side-panel {
    border: 1px solid rgba(25, 255, 90, 0.25);
    background:
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.035) 0 1px, transparent 1px 3px),
        rgba(0, 14, 0, 0.56);
    display: flex;
    flex-direction: column;
    min-height: 390px;
}

.auth-side-header {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(25, 255, 90, 0.2);
    color: rgba(130, 255, 185, 0.95);
    font-size: 0.73rem;
    letter-spacing: 1.6px;
    text-align: left;
    font-family: 'Orbitron', sans-serif;
}

.auth-side-stream {
    flex: 1;
    overflow: hidden;
    padding: 8px 10px;
    font-size: 0.66rem;
    line-height: 1.28;
    color: rgba(110, 255, 170, 0.66);
    text-align: left;
    font-family: 'VT323', monospace;
}

.auth-side-stream .line-hot {
    color: rgba(255, 95, 95, 0.9);
}

.auth-core-panel {
    border: 1px solid rgba(25, 255, 90, 0.26);
    background:
        linear-gradient(180deg, rgba(0, 22, 6, 0.56), rgba(0, 0, 0, 0.65)),
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.028) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(25, 255, 90, 0.03) 0 1px, transparent 1px 42px);
    padding: 20px 24px;
    box-shadow: inset 0 0 0 1px rgba(25, 255, 90, 0.08), 0 0 24px rgba(25, 255, 90, 0.08);
}

.login-vault-icon {
    margin-bottom: 14px;
}

.login-subtitle {
    margin-bottom: 10px;
}

.login-instruction {
    margin-bottom: 14px;
    font-size: 0.84rem;
    color: rgba(180, 255, 205, 0.9);
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.login-hint {
    margin-bottom: 12px;
    font-size: 0.7rem;
    color: rgba(120, 255, 175, 0.72);
    letter-spacing: 1.2px;
    font-family: 'Rajdhani', sans-serif;
}

.login-box-alt {
    margin-bottom: 14px;
    padding: 16px 0;
}

.feedback-terminal {
    min-height: 1.3rem;
    margin-bottom: 8px;
    font-size: 0.76rem;
    letter-spacing: 1px;
}

.auth-core-dump {
    border: 1px solid rgba(25, 255, 90, 0.2);
    background: rgba(0, 8, 0, 0.45);
    padding: 6px 8px;
    margin-bottom: 10px;
    text-align: left;
    font-size: 0.63rem;
    line-height: 1.2;
    color: rgba(128, 255, 182, 0.82);
    letter-spacing: 0.7px;
    height: 92px;
    overflow: hidden;
    font-family: 'VT323', monospace;
}

.input-wrapper-alt {
    gap: 10px;
}

.vault-input {
    letter-spacing: 8px;
}

.auth-core-tags {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
}

.auth-core-tags span {
    border: 1px solid rgba(25, 255, 90, 0.22);
    padding: 3px 8px;
    font-size: 0.66rem;
    color: rgba(110, 255, 170, 0.86);
    letter-spacing: 1px;
    background: rgba(0, 20, 0, 0.52);
}

.login-actions-alt {
    margin-top: 6px;
}

.m1-runtime-line {
    margin-top: 10px;
    border: 1px solid rgba(25, 255, 90, 0.24);
    padding: 7px 10px;
    font-family: 'VT323', monospace;
    font-size: 0.76rem;
    letter-spacing: 1.1px;
    color: rgba(130, 255, 190, 0.86);
    background: rgba(0, 15, 0, 0.56);
}

@media (max-width: 1080px) {
    .auth-matrix-grid {
        grid-template-columns: 1fr;
    }

    .auth-side-panel {
        min-height: 150px;
    }
}

/* Mission-1 CRT Hard Override */
#mission-1.mission-panel {
    /* Mission-1 must be a full-screen terminal, not a framed web "card". */
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

#mission-1.mission-panel::before,
#mission-1.mission-panel::after {
    content: none !important;
}

#mission-1 .m1-shell {
    height: 100%;
    width: min(1320px, 96vw);
    margin: 0 auto;
    padding: 16px 18px 14px;
    display: grid;
    grid-template-rows: auto 1fr auto auto;
    gap: 10px;
}

#mission-2.mission-panel {
    /* Mission-2 must feel like a real biometric terminal: fullscreen live feed. */
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

#mission-2.mission-panel::before,
#mission-2.mission-panel::after {
    content: none !important;
}

#mission-2 .mission-header-alt,
#mission-2 .mission-briefing-text,
#mission-2 .scan-footer-hud,
#mission-2 #scan-runtime-metrics,
#mission-2 .scan-hud-v3 {
    display: none !important;
}

#mission-2 .advanced-scan-area {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

#mission-2 .scan-frame-outer {
    position: absolute;
    inset: 0;
    border: none !important;
    background: #040806;
    overflow: hidden;
}

/* Subtle terminal texture: scanlines + vignette (lightweight) */
#mission-2 .scan-frame-outer::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.58) 100%);
    opacity: 0.9;
    z-index: 5;
}

#mission-2 .scan-frame-outer::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.0) 0 2px, rgba(0, 0, 0, 0.24) 2px 3px);
    opacity: 0.08;
    z-index: 6;
    mix-blend-mode: multiply;
}

#mission-2 .quantum-noise-layer,
#mission-2 .diag-grid-layer,
#mission-2 .live-glitch-overlay {
    opacity: 0.12 !important;
}

#mission-2 #camera-preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Make the face fill most of the viewport */
    transform: scale(1.35);
    transform-origin: 50% 45%;
    filter: contrast(1.08) brightness(0.92) saturate(0.95);
    opacity: 1 !important;
    z-index: 1;
}

#mission-2 #visual-process-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
    opacity: 0.16;
    mix-blend-mode: screen;
    pointer-events: none;
}

/* Minimal HUD */
#mission-2 .fa-hud {
    position: absolute;
    left: 22px;
    bottom: 22px;
    width: min(560px, 78vw);
    z-index: 20;
    color: #00b84f;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    text-shadow: 0 0 10px rgba(0, 184, 79, 0.18);
    pointer-events: none;
}

#mission-2 .fa-opline {
    font-size: 11px;
    letter-spacing: 2px;
    opacity: 0.78;
}

#mission-2 .fa-log {
    margin: 8px 0 10px;
    padding: 10px 12px;
    border: 1px solid rgba(0, 184, 79, 0.24);
    background: rgba(0, 0, 0, 0.34);
    font-size: 12px;
    line-height: 1.25;
    opacity: 0.86;
    white-space: pre;
}

#mission-2 .fa-progress {
    height: 2px;
    background: rgba(0, 184, 79, 0.16);
    overflow: hidden;
}

#mission-2 .fa-progress-fill {
    display: block;
    height: 100%;
    width: 0%;
    background: rgba(0, 184, 79, 0.92);
    box-shadow: 0 0 10px rgba(0, 184, 79, 0.22);
    transition: width 0.08s linear;
}

/* Liveness overlay */
#mission-2 .liveness-overlay {
    position: absolute;
    inset: 0;
    z-index: 30;
    background: rgba(0, 22, 10, 0.72);
    display: grid;
    place-items: center;
}

#mission-2 .liveness-overlay.hidden {
    display: none;
}

#mission-2 .lv-box {
    width: min(420px, 92vw);
    border: 1px solid rgba(0, 184, 79, 0.3);
    background: rgba(0, 0, 0, 0.55);
    box-shadow: 0 0 0 1px rgba(0, 92, 40, 0.42) inset;
    padding: 14px 14px 12px;
    text-align: left;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    color: #00b84f;
    text-shadow: 0 0 10px rgba(0, 184, 79, 0.18);
}

#mission-2 .lv-title {
    font-size: 12px;
    letter-spacing: 2px;
    opacity: 0.85;
    padding-bottom: 8px;
    border-bottom: 1px dashed rgba(0, 184, 79, 0.22);
}

#mission-2 .lv-text {
    margin: 10px 0 8px;
    font-size: 12px;
    line-height: 1.25;
    opacity: 0.92;
    white-space: pre;
}

#mission-2 .lv-window {
    font-size: 11px;
    letter-spacing: 1.6px;
    opacity: 0.7;
}

#mission-2 .lv-guide {
    position: absolute;
    z-index: 31;
    pointer-events: none;
    opacity: 0.75;
    filter: drop-shadow(0 0 8px rgba(0, 184, 79, 0.12));
}

#mission-2 .lv-eye {
    width: 62px;
    height: 62px;
    border: 1px solid rgba(0, 184, 79, 0.65);
    border-radius: 999px;
}

#mission-2 .lv-mouth {
    width: 88px;
    height: 58px;
    border: 1px dashed rgba(0, 184, 79, 0.55);
    border-radius: 999px;
}

#mission-2 .access-granted {
    position: absolute;
    left: 22px;
    bottom: 88px;
    z-index: 25;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 14px;
    letter-spacing: 2px;
    color: #00b84f;
    text-shadow: 0 0 14px rgba(0, 184, 79, 0.18);
    opacity: 0.92;
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(0, 184, 79, 0.2);
    padding: 10px 12px;
}

#mission-2 .access-granted.hidden {
    display: none;
}

#mission-1 .mission-header-alt {
    border-bottom: 1px dashed rgba(53, 255, 122, 0.25);
    padding-bottom: 8px;
    margin-bottom: 10px;
    align-items: flex-start;
}

#mission-1 .agency-badge {
    font-size: 0.74rem;
    letter-spacing: 2px;
}

#mission-1 .m1-top-left {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

#mission-1 .m1-top-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 0.6rem;
    letter-spacing: 0.9px;
    opacity: 0.82;
}

#mission-1 .m1-top-right {
    display: grid;
    gap: 4px;
    justify-items: end;
    text-align: right;
}

#mission-1 .m1-top-status-line {
    font-size: 0.63rem;
    letter-spacing: 1px;
    color: rgba(152, 246, 191, 0.86);
}

#mission-1 #m1-threat-level {
    color: #ffd166;
}

#mission-1 #m1-security-status {
    color: rgba(168, 248, 199, 0.95);
}

#mission-1 #m1-access-window {
    color: rgba(196, 255, 219, 0.95);
    font-weight: 700;
}

#mission-1 .auth-matrix-grid {
    grid-template-columns: 18% 64% 18%;
    gap: 14px;
    width: 100%;
}

#mission-1 .auth-side-panel {
    opacity: 0.42;
    filter: blur(0.8px);
    border-color: rgba(53, 255, 122, 0.18);
    background:
        repeating-linear-gradient(0deg, rgba(53, 255, 122, 0.03) 0 1px, transparent 1px 3px),
        rgba(0, 12, 0, 0.42);
    pointer-events: none;
}

#mission-1 .auth-side-header {
    font-size: 0.62rem;
    letter-spacing: 1.2px;
}

#mission-1 .auth-side-stream {
    font-size: 0.58rem;
    line-height: 1.19;
}

#mission-1 .auth-side-stream .line-inverse {
    background: rgba(164, 255, 202, 0.88);
    color: rgba(4, 22, 10, 0.96);
    text-shadow: none;
    padding: 0 2px;
}

#mission-1 .auth-side-stream .line-sync {
    color: rgba(205, 255, 225, 0.98);
}

#mission-1 .auth-side-stream .line-ellipsis {
    opacity: 0.6;
    animation: m1-dot-fade 0.8s steps(2, end) infinite;
}

@keyframes m1-dot-fade {
    0%, 100% { opacity: 0.65; }
    50% { opacity: 0.22; }
}

#mission-1 .auth-core-panel {
    position: relative;
    border: 1px solid rgba(53, 255, 122, 0.18);
    box-shadow: inset 0 0 0 1px rgba(53, 255, 122, 0.04);
    background:
        repeating-linear-gradient(0deg, rgba(53, 255, 122, 0.03) 0 1px, transparent 1px 3px),
        linear-gradient(180deg, rgba(0, 16, 4, 0.35), rgba(0, 0, 0, 0.6));
    text-align: left;
    animation: m1-core-pulse 3.8s ease-in-out infinite;
}

#mission-1 .auth-core-panel::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 30% 20%, rgba(53, 255, 122, 0.05), transparent 45%);
    opacity: 0.5;
}

@keyframes m1-core-pulse {
    0%, 100% {
        box-shadow: inset 0 0 0 1px rgba(53, 255, 122, 0.04), 0 0 8px rgba(53, 255, 122, 0.06);
    }
    50% {
        box-shadow: inset 0 0 0 1px rgba(53, 255, 122, 0.07), 0 0 14px rgba(53, 255, 122, 0.11);
    }
}

#mission-1 .login-vault-icon {
    display: none;
}

#mission-1 .login-title-alt {
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 0.8rem;
    letter-spacing: 1.4px;
    margin-bottom: 4px;
    text-shadow: 0 0 6px rgba(53, 255, 122, 0.35);
}

#mission-1 .login-subtitle {
    margin-bottom: 8px;
    font-size: 0.6rem;
    letter-spacing: 1px;
    opacity: 0.7;
}

#mission-1 .login-instruction {
    margin-bottom: 6px;
    font-size: 0.7rem;
    letter-spacing: 1.1px;
    opacity: 0.9;
}

#mission-1 .login-hint {
    font-size: 0.68rem;
    line-height: 1.2;
    opacity: 0.64;
    margin-bottom: 8px;
}

#mission-1 .login-box-alt {
    border-top: 1px dashed rgba(53, 255, 122, 0.26);
    border-bottom: 1px dashed rgba(53, 255, 122, 0.26);
    padding: 10px 0;
}

#mission-1 .feedback-terminal {
    font-size: 0.72rem;
    min-height: 1rem;
    margin-bottom: 6px;
    letter-spacing: 1px;
}

#mission-1 .auth-core-dump {
    height: 78px;
    font-size: 0.57rem;
    line-height: 1.15;
    opacity: 0.76;
    margin-bottom: 8px;
}

#mission-1 .input-wrapper-alt {
    border-bottom: 1px solid rgba(53, 255, 122, 0.7);
    gap: 8px;
    padding: 3px 0;
    align-items: baseline;
}

#mission-1 .input-prefix,
#mission-1 .input-label {
    font-size: 0.7rem;
    letter-spacing: 1px;
    color: rgba(120, 255, 175, 0.75);
    white-space: nowrap;
}

#mission-1 .input-chev {
    font-size: 0.86rem;
    color: rgba(142, 255, 191, 0.85);
    white-space: nowrap;
}

#mission-1 .vault-input {
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 0.92rem;
    letter-spacing: 3px;
    color: #35ff7a;
    text-shadow: 0 0 5px rgba(53, 255, 122, 0.28);
    flex: 1;
    min-width: 0;
    width: auto;
}

#mission-1 .cursor-block {
    width: auto;
    height: auto;
    background: transparent;
    color: #35ff7a;
    font-size: 0.92rem;
    line-height: 1;
    opacity: 0.86;
    animation: m1-cursor-blink 1.12s step-end infinite;
}

#mission-1 .m1-shell.m1-global-glitch {
    filter: hue-rotate(4deg) contrast(1.12);
    transform: translate(0.5px, -0.5px);
}

@keyframes m1-cursor-blink {
    0%, 100% { opacity: 0.88; }
    50% { opacity: 0.1; }
}

#mission-1 .m1-input-help {
    margin: 6px 0 0;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    font-size: 0.62rem;
    letter-spacing: 0.8px;
    color: rgba(130, 255, 188, 0.74);
    opacity: 0.86;
}

#mission-1 .auth-core-tags {
    margin-top: 8px;
    gap: 6px;
}

#mission-1 .auth-core-tags span {
    font-size: 0.54rem;
    padding: 2px 6px;
    opacity: 0.76;
}

#mission-1 .m1-validation-wrap {
    margin-top: 10px;
}

#mission-1 .m1-validation-label {
    display: flex;
    justify-content: space-between;
    font-size: 0.58rem;
    letter-spacing: 1px;
    color: rgba(140, 243, 183, 0.85);
    margin-bottom: 4px;
}

#mission-1 .m1-validation-track {
    border: 1px solid rgba(53, 255, 122, 0.35);
    height: 8px;
    background: rgba(0, 10, 0, 0.66);
    overflow: hidden;
}

#mission-1 .m1-validation-fill {
    display: block;
    width: 0%;
    height: 100%;
    background: repeating-linear-gradient(90deg,
            rgba(181, 255, 213, 0.95) 0 8px,
            rgba(60, 230, 130, 0.9) 8px 12px);
    box-shadow: 0 0 8px rgba(58, 229, 130, 0.45);
    transition: width 0.08s linear;
}

#mission-1 .m1-live-stream {
    margin-top: 10px;
    border: 1px solid rgba(53, 255, 122, 0.2);
    background: rgba(0, 10, 0, 0.55);
}

#mission-1 .m1-live-title {
    font-size: 0.58rem;
    letter-spacing: 1.1px;
    color: rgba(149, 244, 188, 0.88);
    padding: 5px 8px;
    border-bottom: 1px dashed rgba(53, 255, 122, 0.25);
}

#mission-1 .m1-live-log {
    height: 88px;
    overflow: hidden;
    padding: 6px 8px;
    font-size: 0.58rem;
    line-height: 1.28;
    color: rgba(153, 246, 192, 0.88);
    letter-spacing: 0.8px;
    white-space: pre-line;
}

#mission-1 .m1-live-log .line-warn {
    color: rgba(255, 120, 120, 0.95);
}

#mission-1 .m1-live-log .line-ok {
    color: rgba(169, 255, 203, 0.96);
}

#mission-1 .login-actions-alt,
#mission-1 .btn-vault,
#mission-1 .btn-glow-layer {
    display: none !important;
}

#mission-1 .m1-runtime-line {
    margin-top: 7px;
    font-size: 0.66rem;
    letter-spacing: 0.8px;
    opacity: 0.8;
    border-style: dashed;
}

#mission-1 .m1-bottom-meta {
    border: 1px dashed rgba(53, 255, 122, 0.25);
    border-top: none;
    padding: 5px 10px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.58rem;
    letter-spacing: 0.95px;
    color: rgba(146, 243, 186, 0.84);
}

#mission-1 .m1-led-dot {
    width: 6px;
    height: 6px;
    background: rgba(160, 255, 201, 0.95);
    box-shadow: 0 0 6px rgba(70, 230, 130, 0.6);
    animation: m1-led-blink 1s steps(2, end) infinite;
}

#mission-1 .m1-hud-cursor {
    margin-left: auto;
    animation: blink-cursor 0.9s step-end infinite;
}

@keyframes m1-led-blink {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0.2;
    }
}

#mission-1 .auth-core-panel.m1-glitch-pulse {
    animation: m1-enter-glitch 0.22s linear;
}

@keyframes m1-enter-glitch {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(-1px, 1px);
    }
    50% {
        transform: translate(1px, -1px);
    }
    100% {
        transform: translate(0, 0);
    }
}

#mission-1 .auth-core-panel.m1-auth-sweep::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(175, 255, 208, 0.95), transparent);
    box-shadow: 0 0 10px rgba(71, 226, 131, 0.6);
    animation: m1-auth-scan 0.5s ease-out;
    pointer-events: none;
    z-index: 2;
}

@keyframes m1-auth-scan {
    0% {
        top: -8px;
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    100% {
        top: calc(100% + 8px);
        opacity: 0;
    }
}

/* --- Elite Agent Dossier Modern HUD --- */
.id-dossier-wrap {
    background: rgba(0, 15, 0, 0.7);
    backdrop-filter: blur(15px);
    border: 1px solid rgba(57, 255, 20, 0.2);
    padding: 50px;
    position: relative;
    box-shadow: 0 0 60px rgba(0, 0, 0, 0.9);
    animation: dossier-enter 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes dossier-enter {
    from {
        opacity: 0;
        transform: scale(1.05);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.tech-bracket {
    position: absolute;
    width: 30px;
    height: 30px;
    border: 2px solid var(--terminal-bright);
    z-index: 10;
}

.tech-tl {
    top: -2px;
    left: -2px;
    border-right: none;
    border-bottom: none;
}

.tech-tr {
    top: -2px;
    right: -2px;
    border-left: none;
    border-bottom: none;
}

.tech-bl {
    bottom: -2px;
    left: -2px;
    border-right: none;
    border-top: none;
}

.tech-br {
    bottom: -2px;
    right: -2px;
    border-left: none;
    border-top: none;
}

.dossier-header-modern {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(57, 255, 20, 0.3);
    padding-bottom: 15px;
    margin-bottom: 40px;
}

.dossier-tag {
    font-size: 0.8rem;
    letter-spacing: 3px;
    color: var(--terminal-dim);
}

.dossier-status-pulse {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.75rem;
    color: var(--terminal-bright);
}

.pulse-dot {
    width: 8px;
    height: 8px;
    background: var(--terminal-bright);
    border-radius: 50%;
    box-shadow: 0 0 10px var(--terminal-bright);
    animation: p-blink 1s infinite;
}

@keyframes p-blink {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.3;
    }
}

/* --- AGENT RECORD SYSTEM: OFFICIAL DOSSIER --- */
.agent-record-system {
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #060d12 0%, #04080c 100%);
    border: 1px solid rgba(45, 183, 108, 0.3);
    padding: 20px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    color: var(--terminal-soft);
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(16, 70, 45, 0.55), 0 0 26px rgba(0, 0, 0, 0.6);
    height: min(92vh, 980px);
    min-height: 620px;
}

.record-noise-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.06;
    background: url('https://grainy-gradients.vercel.app/noise.svg');
    mix-blend-mode: screen;
}

.record-scan-sweep {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    top: -10px;
    opacity: 0;
    pointer-events: none;
    background: linear-gradient(90deg, transparent 0%, rgba(124, 255, 182, 0.72) 12%, rgba(124, 255, 182, 0.92) 50%, rgba(124, 255, 182, 0.72) 88%, transparent 100%);
    box-shadow: 0 0 16px rgba(63, 255, 149, 0.52);
}

.agent-record-system.approval-enter .record-scan-sweep {
    opacity: 1;
    animation: record-scan-sweep 1.05s ease-out 1;
}

@keyframes record-scan-sweep {
    0% { top: 8px; opacity: 0; }
    14% { opacity: 0.9; }
    100% { top: calc(100% - 12px); opacity: 0; }
}

.record-auth-banner {
    font-size: 0.72rem;
    letter-spacing: 2px;
    color: var(--terminal-bright);
    padding: 7px 10px;
    border: 1px solid rgba(25, 255, 90, 0.3);
    background: linear-gradient(90deg, rgba(25, 255, 90, 0.08), rgba(25, 255, 90, 0.02));
    margin-bottom: 10px;
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.24);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.record-auth-banner:hover {
    border-color: rgba(104, 241, 164, 0.58);
    box-shadow: 0 0 14px rgba(50, 213, 120, 0.16);
}

.identity-approval-banner {
    border: 1px solid rgba(63, 200, 123, 0.28);
    background: linear-gradient(180deg, rgba(8, 30, 18, 0.65), rgba(3, 13, 8, 0.58));
    padding: 10px 12px;
    margin-bottom: 12px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.identity-approval-banner:hover {
    border-color: rgba(99, 235, 155, 0.5);
    box-shadow: 0 0 12px rgba(41, 173, 104, 0.16);
}

.approval-line {
    font-family: 'VT323', monospace;
    font-size: 1.28rem;
    letter-spacing: 1.1px;
    color: rgba(141, 239, 184, 0.95);
    min-height: 1.25em;
}

.approval-main {
    color: rgba(154, 255, 195, 0.98);
    text-shadow: 0 0 9px rgba(72, 231, 139, 0.22);
}

.approval-welcome {
    margin-top: 1px;
    color: rgba(203, 255, 223, 0.94);
}

.identity-verified-copy {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px dashed rgba(69, 184, 118, 0.35);
}

.copy-line {
    font-size: 0.72rem;
    color: rgba(169, 245, 204, 0.88);
    letter-spacing: 0.9px;
    line-height: 1.35;
}

.approval-meta-grid {
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 6px 14px;
}

.approval-meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.7rem;
    letter-spacing: 0.45px;
    border-top: 1px dashed rgba(69, 184, 118, 0.26);
    padding-top: 4px;
}

.approval-meta-item label {
    color: rgba(112, 203, 151, 0.8);
    min-width: 100px;
}

.approval-meta-item span {
    color: rgba(181, 248, 211, 0.95);
    font-weight: 700;
}

/* Header Section */
.record-header {
    display: flex;
    align-items: center;
    border-bottom: 2px solid var(--terminal-bright);
    padding-bottom: 12px;
    margin-bottom: 15px;
    gap: 20px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.record-header:hover {
    border-bottom-color: rgba(124, 244, 176, 0.72);
    box-shadow: 0 8px 18px rgba(19, 92, 58, 0.15);
}

.header-seal {
    width: 60px;
    height: 60px;
    color: var(--terminal-bright);
    opacity: 0.8;
}

.header-text {
    flex: 1;
}

.h-main {
    font-size: 1.3rem;
    font-weight: 900;
    letter-spacing: 4px;
    color: var(--terminal-bright);
}

.h-sub {
    font-size: 0.7rem;
    letter-spacing: 2px;
    opacity: 0.6;
}

.header-meta {
    text-align: right;
    font-size: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.header-meta label {
    background: var(--terminal-bright);
    color: #000;
    padding: 1px 4px;
    margin-right: 5px;
    font-weight: bold;
}

/* Body Section */
.record-body {
    display: grid;
    grid-template-columns: 1fr 310px;
    gap: 25px;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
}

.record-left {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.file-number-line {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 4px;
    border-bottom: 1px dashed rgba(69, 184, 118, 0.35);
    padding-bottom: 6px;
    letter-spacing: 1.3px;
    color: rgba(171, 246, 205, 0.9);
}

.record-section-title {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--terminal-bright);
    margin: 10px 0 4px;
    letter-spacing: 1.2px;
}

.identity-log-pre {
    margin: 0;
    border: 1px solid rgba(58, 183, 115, 0.3);
    background: rgba(2, 18, 10, 0.58);
    color: rgba(172, 247, 206, 0.94);
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.77rem;
    line-height: 1.45;
    letter-spacing: 0.7px;
    white-space: pre-wrap;
    padding: 10px 12px;
    text-shadow: 0 0 8px rgba(35, 186, 116, 0.18);
}

/* Data Fields */
.bio-grid,
.metrics-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.data-field,
.metric-line {
    display: flex;
    border-bottom: 1px solid rgba(25, 255, 90, 0.1);
    padding-bottom: 1px;
}

.data-field label,
.metric-line label {
    width: 130px;
    font-size: 0.75rem;
    opacity: 0.7;
}

.data-field span,
.metric-line span {
    flex: 1;
    font-size: 0.85rem;
    color: var(--terminal-primary);
    font-weight: bold;
}

/* Psychological Profile Chips */
.profile-chips {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.chip {
    display: flex;
    justify-content: space-between;
    background: rgba(25, 255, 90, 0.05);
    padding: 4px 10px;
    border: 1px solid rgba(25, 255, 90, 0.2);
    font-size: 0.7rem;
}

.chip span {
    color: var(--terminal-primary);
    font-weight: bold;
}

/* Right Column: Visuals */
.record-right {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.approval-status-panel {
    border: 1px solid rgba(77, 198, 133, 0.34);
    background: linear-gradient(180deg, rgba(4, 21, 12, 0.82), rgba(1, 8, 5, 0.86));
    padding: 9px 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.approval-status-panel:hover {
    border-color: rgba(109, 236, 169, 0.52);
    box-shadow: 0 0 12px rgba(30, 152, 96, 0.18);
}

.approval-status-title {
    font-size: 0.66rem;
    letter-spacing: 1.6px;
    color: rgba(129, 225, 171, 0.86);
    margin-bottom: 8px;
    border-bottom: 1px solid rgba(76, 188, 127, 0.24);
    padding-bottom: 4px;
}

.approval-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.7rem;
    letter-spacing: 0.4px;
    padding: 3px 0;
}

.approval-status-row label {
    color: rgba(111, 199, 149, 0.8);
}

.approval-status-row span {
    color: rgba(190, 250, 218, 0.95);
    font-weight: 700;
}

.mugshot-frame {
    display: flex;
    border: 1px solid var(--terminal-edge);
    background: #000;
    position: relative;
    padding: 8px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.mugshot-frame:hover {
    border-color: rgba(113, 235, 167, 0.62);
    box-shadow: 0 0 16px rgba(41, 164, 106, 0.16);
}

.height-scale {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-right: 8px;
    border-right: 1px solid rgba(25, 255, 90, 0.3);
    font-size: 0.6rem;
    opacity: 0.4;
}

.photo-area {
    flex: 1;
    position: relative;
    overflow: hidden;
    height: 330px;
}

.photo-file-id {
    position: absolute;
    left: 8px;
    top: 8px;
    z-index: 3;
    font-size: 0.62rem;
    letter-spacing: 1px;
    color: rgba(173, 245, 204, 0.9);
    background: rgba(0, 12, 6, 0.68);
    border: 1px solid rgba(73, 188, 122, 0.42);
    padding: 3px 6px;
}

.photo-verified-overlay {
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 8px;
    z-index: 3;
    border: 1px solid rgba(83, 201, 133, 0.48);
    background: linear-gradient(180deg, rgba(3, 20, 11, 0.82), rgba(1, 8, 5, 0.82));
    padding: 6px 8px;
}

.pvo-kicker {
    font-size: 0.62rem;
    color: rgba(162, 248, 201, 0.95);
    letter-spacing: 1.1px;
    margin-bottom: 2px;
}

.pvo-line {
    font-size: 0.64rem;
    color: rgba(144, 232, 183, 0.92);
    letter-spacing: 0.8px;
    line-height: 1.3;
}

.photo-target-box {
    position: absolute;
    z-index: 2;
    width: 88px;
    height: 88px;
    right: 18px;
    top: 22px;
    border: 1px dashed rgba(145, 241, 191, 0.55);
    box-shadow: 0 0 0 1px rgba(44, 168, 105, 0.34) inset;
}

.photo-scanline {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, rgba(137, 246, 188, 0.7) 22%, rgba(137, 246, 188, 0.86) 50%, rgba(137, 246, 188, 0.7) 78%, transparent 100%);
    box-shadow: 0 0 10px rgba(51, 184, 117, 0.42);
    animation: photo-scanline 2.9s linear infinite;
}

@keyframes photo-scanline {
    0% { top: 4%; opacity: 0.2; }
    14% { opacity: 0.75; }
    50% { top: 52%; opacity: 0.65; }
    100% { top: 92%; opacity: 0.2; }
}

#agent-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(0.18) contrast(1.2) brightness(0.84) saturate(0.9);
    opacity: 0.95;
}

.id-scan-grid {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(90deg, rgba(25, 255, 90, 0.08) 0 1px, transparent 1px 36px),
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.06) 0 1px, transparent 1px 28px);
    pointer-events: none;
    mix-blend-mode: screen;
    opacity: 0.55;
}

.identity-confirmed-stamp {
    position: absolute;
    right: 8px;
    top: 10px;
    border: 1px solid rgba(25, 255, 90, 0.75);
    color: rgba(130, 255, 180, 0.95);
    background: rgba(0, 20, 0, 0.55);
    font-size: 0.62rem;
    letter-spacing: 1px;
    padding: 4px 7px;
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.45);
}

.scan-overlay-v5 {
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent, rgba(25, 255, 90, 0.05));
    border: 1px solid rgba(25, 255, 90, 0.1);
}

/* Biometric Zone */
.biometric-zone {
    border: 1px solid var(--terminal-edge);
    padding: 10px;
    background: rgba(0, 0, 0, 0.5);
    position: relative;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.biometric-zone:hover {
    border-color: rgba(112, 236, 166, 0.55);
    box-shadow: 0 0 14px rgba(40, 162, 105, 0.14);
}

.bz-title {
    font-size: 0.6rem;
    margin-bottom: 8px;
    letter-spacing: 2px;
    opacity: 0.6;
    text-align: center;
}

.fingerprint-scan {
    width: 80px;
    height: 80px;
    margin: 0 auto;
    position: relative;
    border: 1px solid rgba(25, 255, 90, 0.2);
}

.bio-hash-lines {
    margin-top: 10px;
    border-top: 1px solid rgba(25, 255, 90, 0.2);
    padding-top: 8px;
    font-size: 0.64rem;
    line-height: 1.5;
    letter-spacing: 1px;
    color: var(--terminal-soft);
}

.bio-hash-lines span {
    color: var(--terminal-bright);
    font-weight: 700;
}

.fingerprint-scan img {
    width: 100%;
    height: 100%;
    opacity: 0.7;
}

.scan-line-finger {
    position: absolute;
    width: 100%;
    height: 2px;
    background: var(--terminal-bright);
    box-shadow: 0 0 10px var(--terminal-bright);
    top: 0;
    animation: finger-scan 3s linear infinite;
}

@keyframes finger-scan {

    0%,
    100% {
        top: 0;
    }

    50% {
        top: 100%;
    }
}

.verification-stamp {
    position: absolute;
    bottom: 5px;
    right: 5px;
    border: 2px solid var(--terminal-bright);
    color: var(--terminal-bright);
    padding: 1px 6px;
    font-size: 0.6rem;
    font-weight: bold;
    transform: rotate(-15deg);
    opacity: 0.6;
}

/* Footer Section */
.record-footer {
    margin-top: 15px;
    border-top: 1px solid var(--terminal-dim);
    padding-top: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    bottom: 0;
    z-index: 12;
    background: linear-gradient(180deg, rgba(2, 9, 5, 0.84), rgba(2, 9, 5, 0.96));
}

.footer-status {
    font-size: 0.6rem;
    opacity: 0.4;
    letter-spacing: 1px;
}

.footer-actions {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 14px;
    flex-wrap: wrap;
}

.identity-terminal-gate {
    position: absolute;
    inset: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 50% 40%, rgba(0, 18, 8, 0.52), rgba(0, 0, 0, 0.78));
    backdrop-filter: blur(1px);
}

.identity-terminal-gate::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, rgba(26, 255, 116, 0.05) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(26, 255, 116, 0.035) 0 1px, transparent 1px 48px);
    opacity: 0.35;
    pointer-events: none;
}

.identity-terminal-card {
    width: min(700px, 86vw);
    border: 1px solid rgba(25, 255, 90, 0.46);
    background:
        linear-gradient(180deg, rgba(0, 20, 9, 0.94), rgba(0, 7, 3, 0.97)),
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.03) 0 1px, transparent 1px 3px);
    box-shadow:
        0 0 0 1px rgba(9, 120, 49, 0.65) inset,
        0 0 22px rgba(0, 0, 0, 0.6),
        0 0 10px rgba(24, 182, 78, 0.18);
    padding: 14px 16px 14px;
    text-align: left;
    position: relative;
}

.identity-terminal-card::before {
    content: "AUTHCHK.EXE   MODE: LEGACY_VERIFIER";
    position: absolute;
    right: 14px;
    top: 12px;
    font-family: 'VT323', monospace;
    font-size: 0.9rem;
    letter-spacing: 0.8px;
    color: rgba(126, 244, 168, 0.55);
    pointer-events: none;
}

.identity-terminal-title {
    font-family: 'VT323', monospace;
    font-size: 1.5rem;
    letter-spacing: 1.4px;
    color: var(--terminal-bright);
    margin-bottom: 10px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(31, 199, 92, 0.38);
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.22);
}

.identity-terminal-log {
    min-height: 122px;
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid rgba(25, 255, 90, 0.32);
    background: rgba(0, 6, 0, 0.82);
    box-shadow: inset 0 0 14px rgba(8, 80, 34, 0.26);
    padding: 9px 10px;
    font-family: 'VT323', monospace;
    font-size: 1.22rem;
    line-height: 1.22;
    color: rgba(140, 255, 190, 0.95);
    white-space: pre-line;
}

.identity-terminal-log .line-ok {
    color: rgba(110, 255, 160, 0.98);
}

.identity-terminal-log .line-error {
    color: rgba(255, 95, 95, 0.95);
}

.identity-terminal-input-row {
    margin-top: 10px;
    border: 1px solid rgba(25, 255, 90, 0.38);
    background: rgba(0, 12, 0, 0.86);
    box-shadow: inset 0 0 8px rgba(16, 96, 42, 0.3);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
}

.identity-terminal-prefix {
    font-size: 1.25rem;
    color: var(--terminal-bright);
    font-family: 'VT323', monospace;
    animation: auth-guide-pulse 0.8s step-end infinite;
}

#identity-terminal-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--terminal-bright);
    font-family: 'VT323', monospace;
    font-size: 1.28rem;
    letter-spacing: 0.6px;
}

#identity-terminal-input::placeholder {
    color: rgba(126, 244, 168, 0.42);
}

.identity-terminal-actions {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
}

.auth-guide-blink {
    font-size: 0.75rem;
    color: var(--terminal-bright);
    font-weight: bold;
    letter-spacing: 1px;
    animation: auth-guide-pulse 1s step-end infinite;
}

.hold-gate-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    min-width: 340px;
}

.btn-dossier-confirm.hold-gate-btn {
    position: relative;
    overflow: hidden;
    min-width: 340px;
    height: 56px;
    padding: 0 16px;
    border: 1px solid rgba(38, 225, 103, 0.9);
    background: linear-gradient(180deg, rgba(2, 25, 10, 0.98), rgba(0, 10, 4, 0.98));
    box-shadow:
        0 0 0 1px rgba(9, 74, 32, 0.72) inset,
        0 0 18px rgba(25, 255, 90, 0.22),
        0 8px 18px rgba(0, 0, 0, 0.35);
    color: rgba(210, 255, 228, 0.95);
}

.gate-hold-fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0%;
    background: linear-gradient(90deg, rgba(35, 255, 120, 0.2), rgba(35, 255, 120, 0.42));
    box-shadow: 0 0 14px rgba(35, 255, 120, 0.42);
    transition: width 0.06s linear;
    pointer-events: none;
}

.gate-hold-label {
    position: relative;
    z-index: 1;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 1.3px;
}

.gate-hold-hint {
    font-family: 'VT323', monospace;
    font-size: 1rem;
    letter-spacing: 1px;
    color: rgba(146, 240, 177, 0.9);
    text-shadow: 0 0 6px rgba(28, 220, 92, 0.24);
}

.btn-dossier-confirm.hold-gate-btn:hover {
    background: linear-gradient(180deg, rgba(4, 36, 15, 0.98), rgba(1, 14, 5, 0.98));
    color: rgba(224, 255, 236, 0.98);
    border-color: rgba(74, 248, 140, 0.95);
    transform: translateY(-1px);
}

.btn-dossier-confirm.hold-gate-btn.holding {
    border-color: rgba(93, 250, 148, 0.95);
    box-shadow:
        0 0 0 1px rgba(17, 105, 48, 0.75) inset,
        0 0 24px rgba(36, 255, 122, 0.36),
        0 10px 20px rgba(0, 0, 0, 0.45);
}

.btn-dossier-confirm.hold-gate-btn.ready {
    border-color: rgba(165, 255, 198, 0.95);
    box-shadow:
        0 0 0 1px rgba(28, 132, 63, 0.75) inset,
        0 0 34px rgba(58, 255, 145, 0.45),
        0 12px 24px rgba(0, 0, 0, 0.5);
}

@keyframes auth-guide-pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}

.btn-dossier-confirm {
    background: linear-gradient(180deg, rgba(243, 246, 238, 0.95), rgba(192, 202, 184, 0.94));
    color: #0f1b12;
    border: 1px solid rgba(24, 34, 26, 0.8);
    padding: 10px 22px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.84rem;
    font-weight: 900;
    cursor: pointer;
    transition: background 0.16s ease, transform 0.1s ease;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    box-shadow:
        inset 1px 1px 0 rgba(255, 255, 255, 0.75),
        inset -1px -1px 0 rgba(66, 77, 67, 0.6),
        0 0 10px rgba(17, 72, 37, 0.22);
}

.btn-dossier-confirm:hover {
    background: linear-gradient(180deg, rgba(224, 232, 214, 0.96), rgba(176, 188, 168, 0.94));
    box-shadow:
        inset 1px 1px 0 rgba(255, 255, 255, 0.62),
        inset -1px -1px 0 rgba(64, 73, 64, 0.72),
        0 0 14px rgba(17, 72, 37, 0.3);
    transform: translateY(-1px);
}

.identity-terminal-card .btn-dossier-confirm {
    min-width: 198px;
    padding: 9px 18px;
}

@media (max-width: 980px) {
    .approval-meta-grid {
        grid-template-columns: 1fr;
    }

    .hold-gate-wrap {
        min-width: 100%;
        width: 100%;
        align-items: stretch;
    }

    .btn-dossier-confirm.hold-gate-btn {
        min-width: 0;
        width: 100%;
    }

    .gate-hold-hint {
        text-align: right;
    }
}

@media (max-width: 980px) {
    .record-body {
        grid-template-columns: 1fr;
    }

    .photo-area {
        height: 280px;
    }
}

#mission-identity-card.mission-panel {
    width: min(1180px, 96vw) !important;
    max-width: none !important;
    max-height: 94vh !important;
    overflow: hidden !important;
    transform: translate(-50%, -51%) !important;
}

@keyframes btn-auth-pulse {

    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 0 15px rgba(25, 255, 90, 0.3);
    }

    50% {
        transform: scale(1.02);
        box-shadow: 0 0 25px rgba(25, 255, 90, 0.5);
    }
}

@keyframes rotate-slow {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.2);
        opacity: 0.5;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.mission-header {
    font-size: 1.5rem;
    color: var(--terminal-bright);
    margin-bottom: 30px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--terminal-dim);
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-shadow: var(--text-glow-bright);
}

.ascii-art {
    white-space: pre !important;
    font-family: 'Courier New', Courier, monospace;
    line-height: 1;
    font-size: 0.7rem;
    color: var(--terminal-green);
    margin: 20px 0;
    text-shadow: var(--text-glow);
    text-align: center;
    letter-spacing: -1px;
}

.ascii-hero {
    font-size: 0.55rem;
    line-height: 1;
    color: var(--terminal-bright);
    text-shadow: 0 0 20px var(--terminal-bright);
    margin-bottom: 40px;
    opacity: 0.9;
}

.technical-filler {
    font-size: 0.75rem;
    color: var(--terminal-dim);
    line-height: 1.4;
    margin: 15px 0;
    text-transform: uppercase;
    transition: color 0.1s;
}

.technical-filler.infected,
.boot-line.infected {
    color: #ff2b2b !important;
    text-shadow: 0 0 10px #ff0000 !important;
    animation: blinkRed 0.6s step-end infinite;
}

@keyframes blinkRed {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.4;
    }
}

.spore {
    position: absolute;
    color: var(--terminal-red);
    opacity: 0.4;
    pointer-events: none;
    z-index: 5;
    font-size: 0.8rem;
    animation: sporeRise 5s linear forwards;
}

@keyframes float {
    0% {
        transform: translate(-50%, -50%);
    }

    100% {
        transform: translate(-50%, -50%);
    }
}

@keyframes sporeRise {
    0% {
        transform: translateY(0);
        opacity: 0;
    }

    20% {
        opacity: 0.4;
    }

    100% {
        transform: translateY(-300px);
        opacity: 0;
    }
}

@keyframes pulseRed {
    0% {
        background-color: rgba(255, 0, 0, 0);
    }

    50% {
        background-color: rgba(255, 0, 0, 0.1);
    }

    100% {
        background-color: rgba(255, 0, 0, 0);
    }
}

#game-screen.panic {
    animation: pulseRed 2s infinite ease-in-out;
}

@keyframes glitchStatic {

    0%,
    98%,
    100% {
        transform: translateX(0);
        filter: hue-rotate(0);
    }

    99% {
        transform: translateX(5px);
        filter: hue-rotate(90deg);
    }
}

.glitch-triggered {
    animation: glitchOnce 0.08s linear forwards;
}

@keyframes glitchOnce {
    0% {
        transform: translateX(0);
    }

    20% {
        transform: translateX(-15px) skewX(10deg);
        filter: invert(0.1);
    }

    40% {
        transform: translateX(15px) skewX(-10deg);
    }

    60% {
        transform: translateX(-5px);
    }

    100% {
        transform: translateX(0);
    }
}

/* --- WIDE SCOPE MISSIONS (FULL SCREEN) --- */
.mission-panel-full {
    position: fixed;
    inset: 0;
    background: #000;
    z-index: 100;
    display: flex;
    flex-direction: column;
    padding: 60px 40px;
    overflow: hidden;
    animation: pan-bg 120s linear infinite;
}

.mission-panel-full.hidden {
    display: none !important;
}

/* Background Wall of Classified Text */
.classified-bg-wall {
    position: absolute;
    inset: 0;
    font-size: 0.75rem;
    line-height: 1.2;
    color: rgba(25, 255, 90, 0.08);
    /* Very subtle base color */
    padding: 20px;
    user-select: none;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
    word-break: break-all;
    white-space: pre-wrap;
    font-family: 'Courier New', monospace;
}

/* Infected / Red text effect for the background wall */
.text-infected-node {
    color: rgba(255, 50, 50, 0.3);
    text-shadow: 0 0 5px rgba(255, 0, 0, 0.5);
    animation: text-glitch-drift 0.1s infinite step-end;
}

@keyframes text-glitch-drift {
    0% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(2px, 0);
    }

    100% {
        transform: translate(-1px, 1px);
    }
}

.defense-fullscreen-container {
    position: relative;
    flex: 1;
    z-index: 5;
    display: flex;
    flex-direction: column;
}

#defense-canvas {
    width: 100% !important;
    height: 100% !important;
    cursor: var(--cursor-mushroom), pointer;
}

.purge-hud-bottom {
    position: absolute;
    bottom: 40px;
    left: 40px;
    right: 40px;
    background: rgba(0, 20, 0, 0.85);
    border: 1px solid var(--terminal-bright);
    padding: 20px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    backdrop-filter: blur(10px);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.8);
    z-index: 10;
}

.purge-hud-top {
    position: relative;
    margin-bottom: 30px;
    z-index: 10;
}

.defense-briefing-modal {
    position: absolute;
    inset: 0;
    z-index: 40;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 8, 3, 0.32);
    backdrop-filter: none;
    padding: 24px;
}

.defense-briefing-card {
    width: min(650px, 90vw);
    border: 1px solid rgba(25, 255, 119, 0.46);
    border-radius: 0;
    outline: 1px solid rgba(13, 102, 53, 0.64);
    outline-offset: -5px;
    background: linear-gradient(180deg, rgba(2, 13, 8, 0.98), rgba(0, 0, 0, 0.98));
    box-shadow: inset 0 0 0 1px rgba(11, 118, 50, 0.38), 0 0 18px rgba(0, 0, 0, 0.58);
    position: relative;
    overflow: hidden;
}

.defense-briefing-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg, rgba(23, 255, 118, 0.03) 0, rgba(23, 255, 118, 0.03) 1px, transparent 1px, transparent 3px);
    pointer-events: none;
}

.defense-briefing-card::after {
    content: "┌ CMI_RUNTIME_ALERT ┐";
    position: absolute;
    right: 10px;
    bottom: 8px;
    font-size: 0.56rem;
    letter-spacing: 1px;
    color: rgba(128, 224, 167, 0.44);
    pointer-events: none;
}

.defense-briefing-titlebar {
    height: 30px;
    border-bottom: 1px dashed rgba(31, 213, 100, 0.45);
    background: rgba(4, 34, 17, 0.95);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0 8px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.67rem;
    color: #e2ffe9;
    letter-spacing: 0.2px;
}

.titlebar-left {
    display: flex;
    align-items: center;
    gap: 6px;
}

.titlebar-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #21ff74;
    box-shadow: 0 0 6px rgba(18, 234, 102, 0.6);
}

.titlebar-right {
    display: flex;
    align-items: center;
    gap: 9px;
}

.titlebar-code {
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    color: rgba(216, 255, 228, 0.9);
    font-size: 0.64rem;
    letter-spacing: 0.2px;
}

.titlebar-close {
    width: 22px;
    height: 20px;
    border: 1px solid rgba(130, 43, 43, 0.9);
    background: rgba(128, 23, 23, 0.9);
    color: #ffd8d8;
    font-size: 13px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    box-shadow: none;
    cursor: pointer;
    border-radius: 0;
    padding: 0;
    margin-top: 1px;
    flex-shrink: 0;
}

.titlebar-close:hover {
    background: rgba(167, 38, 38, 0.95);
}

.titlebar-close:active {
    transform: none;
}

.defense-briefing-content {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 12px;
    padding: 13px 13px 9px;
}

.defense-error-icon {
    width: 44px;
    height: 44px;
    border-radius: 0;
    border: 1px solid rgba(255, 75, 75, 0.72);
    background: linear-gradient(180deg, rgba(109, 12, 12, 0.95), rgba(62, 2, 2, 0.92));
    color: #ffe9e9;
    font-family: 'JetBrains Mono', monospace;
    font-size: 1.32rem;
    font-weight: 900;
    line-height: 42px;
    text-align: center;
    text-shadow: 0 0 8px rgba(255, 31, 31, 0.5);
    box-shadow: inset 1px 1px 0 rgba(255, 180, 180, 0.16), inset -1px -1px 0 rgba(45, 0, 0, 0.45);
}

.defense-briefing-title {
    margin: 1px 0 6px;
    font-size: 0.95rem;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-weight: 700;
    color: rgba(150, 255, 194, 0.96);
    letter-spacing: 0.2px;
    text-transform: none;
}

.defense-briefing-copy {
    margin: 0;
    line-height: 1.4;
    font-size: 0.74rem;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    color: rgba(188, 255, 211, 0.86);
}

.briefing-terminal-divider {
    margin-top: 7px;
    font-size: 0.62rem;
    letter-spacing: 0.5px;
    color: rgba(122, 218, 161, 0.46);
}

.defense-briefing-meta {
    margin-top: 8px;
    border: 1px solid rgba(43, 170, 93, 0.42);
    border-radius: 0;
    background: rgba(3, 17, 10, 0.88);
    padding: 6px 8px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.71rem;
    line-height: 1.55;
    color: rgba(143, 233, 176, 0.94);
}

.defense-briefing-meta div + div {
    border-top: 1px dashed rgba(92, 202, 132, 0.2);
    margin-top: 3px;
    padding-top: 3px;
}

.defense-briefing-kv div {
    display: grid;
    grid-template-columns: 118px 1fr;
    align-items: baseline;
    gap: 10px;
}

.defense-briefing-kv .kv-key {
    color: rgba(122, 210, 161, 0.84);
}

.defense-briefing-kv .kv-value {
    color: rgba(184, 255, 216, 0.96);
    font-weight: 700;
}

.defense-briefing-log {
    margin-top: 6px;
    border: 1px dashed rgba(52, 156, 90, 0.36);
    background: rgba(0, 8, 4, 0.72);
    padding: 5px 7px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.64rem;
    line-height: 1.4;
    color: rgba(111, 224, 149, 0.8);
    max-height: 76px;
    overflow: auto;
}

.defense-briefing-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 8px 12px 10px;
    border-top: 1px dashed rgba(24, 133, 71, 0.38);
    background: rgba(4, 16, 10, 0.92);
}

.defense-briefing-statusline {
    font-size: 0.66rem;
    letter-spacing: 1px;
    color: rgba(150, 241, 188, 0.82);
    opacity: 0.9;
}

.defense-briefing-btn {
    min-width: 186px;
    padding: 7px 12px;
    border-radius: 0;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-weight: 700;
    font-size: 0.72rem;
    border: 1px solid rgba(35, 190, 90, 0.85);
    background: rgba(7, 30, 16, 0.96);
    color: rgba(198, 255, 220, 0.95);
    box-shadow: none;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.defense-briefing-btn:hover {
    background: rgba(14, 52, 28, 0.98);
    border-color: rgba(107, 253, 158, 0.95);
    color: rgba(183, 255, 214, 0.96);
    box-shadow: 0 0 10px rgba(87, 255, 149, 0.24);
}

@media (max-width: 900px) {
    .defense-briefing-card {
        width: min(520px, 95vw);
    }

    .defense-briefing-content {
        grid-template-columns: 1fr;
        padding: 12px 12px 10px;
        gap: 8px;
    }

    .defense-error-icon {
        width: 40px;
        height: 40px;
        line-height: 38px;
        font-size: 1.2rem;
    }

    .defense-briefing-actions {
        padding: 8px 10px 10px;
        flex-direction: column;
        align-items: stretch;
    }

    .defense-briefing-btn {
        width: 100%;
        min-width: 0;
    }
}

.defense-last5-overlay {
    position: absolute;
    inset: 0;
    z-index: 46;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    font-family: 'Orbitron', sans-serif;
    font-size: clamp(5rem, 18vw, 15rem);
    font-weight: 900;
    color: #ff4747;
    text-shadow: 0 0 20px rgba(255, 60, 60, 0.6), 0 0 42px rgba(255, 20, 20, 0.52);
    background: radial-gradient(circle at center, rgba(255, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0) 58%);
    animation: defense-last5-pop 0.6s ease-out;
}

@keyframes defense-last5-pop {
    0% { opacity: 0; transform: scale(0.75); }
    35% { opacity: 1; transform: scale(1.08); }
    100% { opacity: 1; transform: scale(1); }
}

.defense-success-overlay {
    position: absolute;
    inset: 0;
    z-index: 45;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: radial-gradient(circle at center, rgba(7, 28, 16, 0.45), rgba(1, 6, 3, 0.82));
    backdrop-filter: blur(2px);
}

.defense-success-card {
    width: min(760px, 92vw);
    border: 1px solid rgba(87, 212, 141, 0.42);
    background: linear-gradient(180deg, rgba(5, 23, 13, 0.96), rgba(2, 10, 6, 0.97));
    box-shadow: 0 0 20px rgba(20, 112, 68, 0.2), inset 0 0 0 1px rgba(115, 220, 158, 0.1);
    padding: 22px 28px;
    text-align: center;
    animation: defense-success-in 0.42s cubic-bezier(0.2, 0.9, 0.22, 1);
    position: relative;
    overflow: hidden;
}

.defense-success-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        rgba(154, 241, 183, 0.05) 0,
        rgba(154, 241, 183, 0.05) 1px,
        transparent 1px,
        transparent 3px
    );
    pointer-events: none;
}

.defense-success-kicker {
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.72rem;
    letter-spacing: 2.6px;
    color: rgba(233, 205, 141, 0.86);
    margin-bottom: 8px;
    text-transform: uppercase;
}

.defense-success-card h3 {
    margin: 0 0 8px;
    font-family: 'VT323', 'JetBrains Mono', monospace;
    font-size: clamp(2rem, 4.6vw, 3rem);
    letter-spacing: 1.8px;
    color: #8ef0b6;
    text-shadow: 0 0 9px rgba(33, 204, 117, 0.24);
}

.defense-success-card p {
    margin: 0;
    color: rgba(177, 226, 196, 0.9);
    font-size: 0.92rem;
    line-height: 1.55;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    letter-spacing: 0.2px;
}

@keyframes defense-success-in {
    0% { opacity: 0; transform: translateY(8px) scale(0.98); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

.recovery-pulse .defense-fullscreen-container::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at center, rgba(122, 217, 155, 0.1), transparent 55%);
    animation: recovery-pulse-glow 0.48s ease-out 2;
}

@keyframes recovery-pulse-glow {
    0% { opacity: 0; transform: scale(0.96); }
    35% { opacity: 1; transform: scale(1.01); }
    100% { opacity: 0; transform: scale(1.03); }
}

.quarantine-stage {
    position: relative;
    min-height: calc(100vh - 96px);
    min-height: calc(100dvh - 96px);
    padding: 20px 24px 22px;
    background:
        radial-gradient(circle at 85% -10%, rgba(45, 138, 255, 0.18), transparent 40%),
        radial-gradient(circle at 12% 115%, rgba(26, 113, 255, 0.13), transparent 36%),
        #020608;
    border: 1px solid rgba(83, 174, 255, 0.28);
    box-shadow: inset 0 0 0 1px rgba(74, 160, 255, 0.16), 0 0 40px rgba(26, 128, 255, 0.16);
    overflow: hidden;
}

.quarantine-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg, rgba(92, 190, 255, 0.04) 0, rgba(92, 190, 255, 0.04) 1px, transparent 1px, transparent 3px);
    pointer-events: none;
}

.quarantine-hud {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid rgba(77, 168, 255, 0.42);
    background: linear-gradient(180deg, rgba(5, 24, 44, 0.94), rgba(2, 13, 24, 0.94));
    box-shadow: inset 0 0 20px rgba(40, 143, 255, 0.16);
    margin-bottom: 16px;
}

.quarantine-hud-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 4px 22px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.77rem;
    letter-spacing: 0.5px;
    color: rgba(173, 231, 255, 0.9);
}

.q-key {
    color: rgba(118, 197, 255, 0.95);
}

.q-val {
    color: rgba(210, 243, 255, 0.95);
    font-weight: 700;
}

.q-val.ok {
    color: #5dff9f;
}

.q-val.warn {
    color: #ff6a6a;
    text-shadow: 0 0 8px rgba(255, 80, 80, 0.45);
}

.quarantine-progress {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.9rem;
    letter-spacing: 1.1px;
    color: #a8dcff;
    padding: 7px 10px;
    border: 1px solid rgba(74, 165, 255, 0.42);
    background: rgba(0, 8, 16, 0.82);
    min-width: 290px;
    text-align: right;
}

.quarantine-main {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(220px, 290px) minmax(420px, 1fr);
    gap: 14px;
    height: calc(100% - 74px);
}

.quarantine-log-panel,
.quarantine-game-panel {
    border: 1px solid rgba(69, 159, 255, 0.35);
    background: linear-gradient(180deg, rgba(4, 17, 32, 0.9), rgba(2, 10, 22, 0.95));
    box-shadow: inset 0 0 0 1px rgba(65, 152, 255, 0.1);
    min-height: 0;
}

.quarantine-panel-title {
    border-bottom: 1px solid rgba(74, 163, 255, 0.4);
    padding: 10px 12px 9px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.72rem;
    letter-spacing: 1px;
    color: rgba(167, 226, 255, 0.94);
}

.quarantine-log-feed {
    height: calc(100% - 39px);
    overflow: auto;
    padding: 10px 12px;
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.72rem;
    line-height: 1.5;
    color: rgba(145, 219, 255, 0.85);
}

.quarantine-log-row {
    margin-bottom: 6px;
}

.quarantine-log-row.warn {
    color: rgba(255, 122, 122, 0.95);
}

.quarantine-log-row.ok {
    color: rgba(105, 255, 155, 0.92);
}

.q-log-ts {
    color: rgba(84, 162, 236, 0.92);
    margin-right: 5px;
}

.quarantine-game-panel {
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-height: 0;
}

.quarantine-canvas-wrap {
    position: relative;
    margin: 10px 12px 8px;
    border: 1px solid rgba(75, 170, 255, 0.45);
    background: linear-gradient(180deg, rgba(3, 11, 25, 0.94), rgba(1, 7, 16, 0.96));
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    overflow: hidden;
}

#quarantine-canvas {
    width: min(560px, 92%);
    max-width: 100%;
    aspect-ratio: 19 / 15;
    border: 1px solid rgba(67, 160, 255, 0.38);
    image-rendering: pixelated;
    box-shadow: 0 0 26px rgba(40, 151, 255, 0.16);
    background: rgba(2, 8, 16, 0.95);
}

.quarantine-mobile-controls {
    display: grid;
    grid-template-columns: repeat(3, 52px);
    grid-template-areas:
        ". up ."
        "left down right";
    gap: 6px;
    justify-content: center;
    padding: 4px 0 14px;
}

.q-control-btn {
    height: 42px;
    border: 1px solid rgba(81, 175, 255, 0.65);
    background: linear-gradient(180deg, rgba(10, 45, 76, 0.92), rgba(4, 23, 42, 0.95));
    color: #bde8ff;
    font-family: 'Orbitron', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(112, 198, 255, 0.17);
}

.q-control-btn:hover {
    border-color: rgba(122, 204, 255, 0.88);
    color: #dff4ff;
}

.q-control-btn:active {
    transform: translateY(1px);
}

.q-up { grid-area: up; }
.q-left { grid-area: left; }
.q-down { grid-area: down; }
.q-right { grid-area: right; }

.quarantine-result-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 6, 14, 0.74);
    backdrop-filter: blur(2px);
    z-index: 4;
}

.quarantine-result-card {
    width: min(520px, 88%);
    border: 1px solid rgba(90, 186, 255, 0.62);
    background: linear-gradient(180deg, rgba(6, 33, 53, 0.95), rgba(2, 15, 26, 0.98));
    box-shadow: 0 0 24px rgba(30, 153, 255, 0.28);
    padding: 20px 20px 16px;
    text-align: center;
}

.quarantine-result-title {
    font-family: 'Orbitron', sans-serif;
    font-size: clamp(1.2rem, 3.2vw, 1.9rem);
    letter-spacing: 1px;
    color: #8cffbb;
    margin-bottom: 8px;
    text-shadow: 0 0 12px rgba(63, 255, 149, 0.35);
}

.quarantine-result-copy {
    font-family: 'JetBrains Mono', 'Courier New', monospace;
    font-size: 0.88rem;
    color: rgba(188, 231, 255, 0.92);
}

.quarantine-continue-btn {
    margin-top: 14px;
    border: 1px solid rgba(93, 255, 167, 0.75);
    background: linear-gradient(180deg, rgba(14, 77, 46, 0.96), rgba(7, 44, 25, 0.96));
    color: #d8ffe8;
    font-family: 'Orbitron', sans-serif;
    font-size: 0.8rem;
    letter-spacing: 0.8px;
    min-width: 180px;
    padding: 10px 16px;
    cursor: pointer;
}

.quarantine-continue-btn:hover {
    filter: brightness(1.08);
}

.quarantine-stage.q-clear-glitch {
    animation: quarantine-clear-glitch 320ms ease-in-out 2;
}

@keyframes quarantine-clear-glitch {
    0% { filter: none; }
    25% { filter: contrast(1.2) brightness(1.15) hue-rotate(8deg); transform: translateX(1px); }
    50% { filter: saturate(1.35) brightness(1.2); transform: translateX(-1px); }
    100% { filter: none; transform: translateX(0); }
}

@media (max-width: 1024px) {
    .quarantine-hud {
        flex-direction: column;
        align-items: flex-start;
    }

    .quarantine-progress {
        min-width: 0;
        width: 100%;
        text-align: left;
    }

    .quarantine-main {
        grid-template-columns: 1fr;
        grid-template-rows: 230px minmax(420px, 1fr);
    }

    .quarantine-canvas-wrap {
        min-height: 360px;
    }
}

@media (max-width: 720px) {
    .quarantine-stage {
        padding: 12px 10px 14px;
    }

    .quarantine-hud-grid {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .quarantine-main {
        grid-template-rows: 200px minmax(360px, 1fr);
    }

    .quarantine-canvas-wrap {
        margin: 8px;
        min-height: 300px;
    }

    .q-control-btn {
        height: 40px;
    }
}

.critical-alert-v2 {
    background: var(--terminal-red);
    color: white;
    padding: 5px 20px;
    font-weight: 900;
    font-size: 1.2rem;
    display: inline-block;
    margin-bottom: 10px;
    animation: pulse-red-fast 0.5s infinite;
}

@keyframes pulse-red-fast {

    0%,
    100% {
        background: #ff0000;
        box-shadow: 0 0 20px #ff0000;
    }

    50% {
        background: #880000;
        box-shadow: none;
    }
}

.scan-line-horizontal {
    width: 100%;
    height: 1px;
    background: var(--terminal-dim);
    margin: 10px 0;
    box-shadow: 0 0 10px var(--terminal-dim);
}




.mission-header {
    border-bottom: 2px solid var(--terminal-green);
    padding-bottom: 15px;
    margin-bottom: 40px;
    font-size: 1.5rem;
    letter-spacing: 3px;
    text-shadow: 0 0 10px var(--terminal-green);
}



.retro-input {
    width: 100%;
    background: transparent;
    border: 2px solid var(--terminal-green);
    color: var(--terminal-green);
    padding: 15px;
    font-family: var(--font-main);
    font-size: 1.2rem;
    margin-bottom: 20px;
    outline: none;
}

#defense-canvas {
    width: 100%;
    height: 480px;
    border: 1px solid var(--terminal-dim);
    position: relative;
    overflow: hidden;
    margin: 15px 0;
    cursor: var(--cursor-mushroom), pointer;
}

.critical-alert {
    background: var(--terminal-red);
    color: #fff;
    padding: 12px;
    text-align: center;
    font-weight: bold;
    animation: blink 0.5s infinite;
    margin-bottom: 20px;
    border-radius: 4px;
    font-size: 1.2rem;
    letter-spacing: 3px;
    box-shadow: 0 0 20px rgba(255, 0, 0, 0.4);
}

#defense-canvas::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--terminal-dim);
    animation: scan-vertical 4s linear infinite;
    pointer-events: none;
}

@keyframes scan-vertical {
    0% {
        top: 0;
    }

    100% {
        top: 100%;
    }
}

.hud-overlay-v6 {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 10000;
    /* Extremely high but should be hidden during boot */
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

#main-app.active .hud-overlay-v6 {
    opacity: 1;
}

/* Ensure anomalies are visible */
.defense-target {
    position: absolute;
    width: 60px;
    height: 60px;
    cursor: pointer;
    transition: transform 0.2s, opacity 0.3s;
    z-index: 1000;
    /* Higher than anything else */
    user-select: none;
}

.defense-target img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.defense-target.anomaly {
    filter: drop-shadow(0 0 5px rgba(255, 51, 51, 0.3));
}

.defense-target.decoy {
    opacity: 0.8;
}

@keyframes floating-threat {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-5px);
    }
}

.defense-target:hover {
    transform: scale(1.1);
}

.defense-target.neutralized {
    transform: scale(0) rotate(180deg);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}



@keyframes glitch-anim {
    0% {
        transform: scale(1) translate(0);
    }

    20% {
        transform: scale(1.02) translate(1px, -1px);
    }

    40% {
        transform: scale(0.98) translate(-1px, 1px);
    }

    100% {
        transform: scale(1) translate(0);
    }
}


.captcha-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 900px;
    margin: 0 auto;
}


.captcha-item {
    border: 2px solid var(--terminal-dim);
    aspect-ratio: 1;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
}

.captcha-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.8;
}

.captcha-item:hover {
    border-color: var(--terminal-green);
}

.captcha-item.wrong {
    border-color: #ff3333 !important;
}

@keyframes shake {

    0%,
    100% {
        transform: translate(0, 0);
    }

    20%,
    60% {
        transform: translate(-5px, 0);
    }

    40%,
    80% {
        transform: translate(5px, 0);
    }
}

/* Boot Sequence Logs */
.boot-logs {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    font-size: 0.9rem;
    /* Normalized for English/Korean balance */
    line-height: 1.5;
    color: var(--terminal-soft);
    font-family: var(--font-main);
}

/* Merged into lower definition */

@keyframes mark-breathe {

    0%,
    100% {
        opacity: 0.7;
        filter: brightness(1);
    }

    50% {
        opacity: 0.95;
        filter: brightness(1.1);
    }
}

.boot-robco-header {
    font-family: 'VT323', monospace;
    font-size: 0.9rem;
    color: var(--terminal-soft);
    text-align: center;
    line-height: 1.4;
    margin-bottom: 25px;
    letter-spacing: 2px;
    opacity: 0.8;
}

.boot-logo-img {
    display: block;
    margin: 0 auto 10px;
    width: 200px;
    height: auto;
    /* No "halo" behind the mushroom */
    filter: none;
    mix-blend-mode: lighten;
}

.boot-line-header {
    margin: 0;
    font-family: 'VT323', monospace;
    font-size: 1.4rem;
    line-height: 1;
    white-space: pre;
    color: var(--terminal-bright);
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.2);
    text-align: center;
    width: 100%;
}

/* Matrix fading for side logs */
.side-log-stream {
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
}

@keyframes terminal-flicker {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.95;
    }

    51% {
        opacity: 1;
    }

    52% {
        opacity: 0.98;
    }
}

.crt-scanline-v2 {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom,
            rgba(255, 255, 255, 0) 0%,
            rgba(57, 255, 20, 0.05) 50%,
            rgba(255, 255, 255, 0) 100%);
    background-size: 100% 3px;
    z-index: 10001;
    pointer-events: none;
    opacity: 0.3;
    animation: crt-scan 8s linear infinite;
}

@keyframes crt-scan {
    0% {
        transform: translateY(-100%);
    }

    100% {
        transform: translateY(100%);
    }
}

/* Global Custom Cursor */
body,
a,
button,
input {
    cursor: var(--cursor-mushroom), auto;
}

body {
    cursor: var(--cursor-mushroom), auto;
}

.terminal-modal {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(560px, 92vw);
    background: rgba(3, 8, 5, 0.95);
    border: 1px solid rgba(25, 255, 90, 0.28);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.7), 0 0 18px rgba(25, 255, 90, 0.08);
    padding: 16px 16px 14px;
    border-radius: 7px;
    z-index: 10000;
    animation: modal-slide-up 0.25s ease-out;
    overflow: hidden;
    isolation: isolate;
    font-family: var(--font-main);
    line-height: 1.2;
    text-shadow: 0 0 6px rgba(25, 255, 90, 0.5);
}

.gate-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 9998;
}

@keyframes modal-slide-up {
    from {
        opacity: 0;
        transform: translate(-50%, -45%) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.prompt-text {
    font-family: var(--font-data);
    font-size: 15px;
    margin-bottom: 20px;
    color: var(--terminal-primary);
    line-height: 1.6;
    letter-spacing: 0.5px;
    word-break: keep-all;
    opacity: 1;
}

.gate-overlay-noise {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-image: radial-gradient(rgba(25, 255, 90, 0.06) 0.6px, transparent 0.6px);
    background-size: 3px 3px;
    opacity: 0.08;
    pointer-events: none;
}

.gate-scanline {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: repeating-linear-gradient(to bottom,
            rgba(0, 0, 0, 0.18) 0,
            rgba(0, 0, 0, 0.18) 1px,
            transparent 1px,
            transparent 3px);
    opacity: 0.24;
}

.gate-panel {
    animation: gate-flicker 2.2s infinite;
}

@keyframes gate-flicker {

    0%,
    100% {
        opacity: 0.985;
    }

    48% {
        opacity: 0.965;
    }

    49% {
        opacity: 0.93;
    }

    50% {
        opacity: 0.985;
    }
}

.gate-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    letter-spacing: 1.4px;
    color: var(--terminal-primary);
    margin-bottom: 12px;
}

.gate-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--terminal-red);
    box-shadow: 0 0 8px var(--terminal-red);
}

.gate-grid {
    display: grid;
    grid-template-columns: 108px 1fr 108px;
    gap: 10px;
    align-items: start;
}

.gate-side-log {
    min-height: 208px;
    border: 1px solid rgba(25, 255, 90, 0.18);
    background: rgba(0, 0, 0, 0.35);
    padding: 8px 7px;
    font-size: 0.61rem;
    letter-spacing: 0.5px;
    color: var(--terminal-soft);
    overflow: hidden;
    line-height: 1.18;
    opacity: 0.92;
}

.gate-main {
    min-height: 208px;
    border: 1px solid rgba(25, 255, 90, 0.2);
    background: rgba(0, 0, 0, 0.33);
    padding: 9px 10px;
}

.gate-main-log {
    min-height: 140px;
    max-height: 140px;
    overflow: hidden;
    font-size: 0.73rem;
    color: var(--terminal-primary);
    letter-spacing: 0.8px;
    line-height: 1.18;
    margin-bottom: 9px;
}

.gate-question {
    font-size: 0.72rem;
    color: var(--terminal-soft);
    letter-spacing: 0.5px;
    margin-bottom: 6px;
    line-height: 1.2;
}

.prompt-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 6px;
    margin-bottom: 7px;
    flex-wrap: nowrap;
}

.prompt-row .label {
    letter-spacing: .14em;
    font-size: 12px;
    opacity: .92;
    color: var(--terminal-primary);
    white-space: nowrap;
}

.prompt-row .chev {
    opacity: .92;
    color: var(--terminal-primary);
    font-size: 12px;
}

.prompt-input {
    flex: 1;
    min-width: 120px;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(53, 255, 122, .45);
    color: #35ff7a;
    outline: none;
    padding: 4px 2px;
    font-size: 13px;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    line-height: 1.2;
    text-shadow: 0 0 6px rgba(53, 255, 122, .2);
}

.block-cursor {
    margin-left: 6px;
    animation: blink 1s steps(2, end) infinite;
    opacity: 0.95;
    color: #35ff7a;
}

@keyframes blink {
    50% { opacity: 0; }
}

@keyframes prompt-pulse {

    0%,
    100% {
        background: rgba(25, 255, 90, 0.08);
    }

    50% {
        background: rgba(25, 255, 90, 0.15);
    }

    /* Flickering highlight bar */
}

.prompt-arrow {
    color: var(--terminal-primary);
    font-size: 0.82rem;
    font-family: var(--font-data);
    font-weight: bold;
    letter-spacing: 0.8px;
}

#passphrase-input {
    caret-color: #35ff7a;
}

.gate-question:lang(ko) {
    font-size: 0.7rem;
}

/* Fix for Chrome autofill white background */
#passphrase-input:-webkit-autofill,
#passphrase-input:-webkit-autofill:hover,
#passphrase-input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--terminal-bright);
    -webkit-box-shadow: 0 0 0px 1000px black inset !important;
    transition: background-color 5000s ease-in-out 0s;
}

.prompt-hint {
    font-size: 0.78rem;
    color: var(--terminal-soft);
    text-align: left;
    opacity: 0.85;
    letter-spacing: 1px;
}

.cursor-block {
    width: 8px;
    height: 12px;
    background: var(--terminal-primary);
    opacity: 0.85;
    animation: blink-cursor 0.8s step-end infinite;
}

@keyframes blink-cursor {

    0%,
    45% {
        opacity: 0.85;
    }

    46%,
    100% {
        opacity: 0.1;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.boot-line {
    margin-bottom: 4px;
    white-space: pre-wrap;
    color: var(--terminal-soft);
    opacity: 0.9;
    font-size: 1.1rem;
    /* Matched to parent container */
}

.prompt-text {
    font-size: 0.85rem;
    color: var(--terminal-primary);
    margin-bottom: 10px;
    line-height: 1.5;
    letter-spacing: 0.5px;
}

.boot-line.error {
    color: var(--terminal-red);
    font-weight: bold;
    text-shadow: 0 0 10px var(--terminal-red);
}

/* Glitch Effect */
.glitch-shake {
    animation: screen-shake 0.3s cubic-bezier(.36, .07, .19, .97) both;
}

@keyframes screen-shake {

    0%,
    100% {
        transform: translate(0, 0);
    }

    10% {
        transform: translate(-4px, -2px);
    }

    20% {
        transform: translate(4px, 2px);
    }

    30% {
        transform: translate(-4px, 2px);
    }

    40% {
        transform: translate(4px, -2px);
    }
}


/* Moving Bugs / Threats */
@keyframes wander {
    0% {
        transform: translate(0, 0);
    }

    25% {
        transform: translate(30px, -20px);
    }

    50% {
        transform: translate(-20px, 30px);
    }

    75% {
        transform: translate(-30px, -10px);
    }

    100% {
        transform: translate(0, 0);
    }
}

/* Obsolete redundant styles purged */


.defense-target:nth-child(2n) {
    animation-duration: 4s;
    animation-delay: -1s;
}

.defense-target:nth-child(3n) {
    animation-duration: 2.5s;
    animation-delay: -0.5s;
}



.progress-container {
    height: 30px;
    border: 2px solid var(--terminal-green);
    margin: 20px 0;
}

#progress-bar {
    height: 100%;
    background: var(--terminal-green);
    width: 0%;
    transition: width 0.1s;
}

/* Biometric Scan Styling */
.scan-container {
    width: 800px;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    border: 2px solid var(--terminal-green);
    background: #000;
    position: relative;
    overflow: hidden;
    margin: 0 auto 30px;
}

#camera-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scan-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
    height: 70%;
    border: 2px solid rgba(51, 255, 51, 0.5);
    box-shadow: 0 0 20px rgba(51, 255, 51, 0.2);
    pointer-events: none;
}

/* The scanning line animation */
.scan-line {
    position: absolute;
    width: 100%;
    height: 4px;
    background: var(--terminal-green);
    box-shadow: 0 0 15px var(--terminal-green);
    top: 0;
    left: 0;
    animation: scanning 2s linear infinite;
    display: none;
}

@keyframes scanning {
    0% {
        top: 15%;
    }

    50% {
        top: 85%;
    }

    100% {
        top: 15%;
    }
}

.scan-text {
    position: absolute;
    bottom: 10px;
    left: 10px;
    font-size: 0.8rem;
    color: var(--terminal-green);
    background: rgba(0, 0, 0, 0.5);
    padding: 2px 10px;
}

/* --- Main Application Layout --- */

.app-container {
    display: flex;
    flex-direction: column;
    height: 100vh;
    width: 100%;
    max-width: 1800px;
    /* Constined for better composition */
    margin: 0 auto;
    opacity: 0;
    border-left: 1px solid var(--terminal-dim);
    border-right: 1px solid var(--terminal-dim);
    background: rgba(0, 0, 0, 0.4);
}

/* Header */
.app-header {
    padding: 30px 50px;
    border-bottom: 1px solid var(--border-color);
    background: rgba(0, 0, 0, 0.4);
    position: relative;
}

.header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.system-title {
    font-size: 1.8rem;
    color: var(--terminal-bright);
    letter-spacing: 2px;
    text-shadow: 0 0 15px var(--terminal-bright);
}

.system-title::before {
    content: '●';
    color: var(--terminal-green);
    animation: blink 1s infinite;
}

.main-nav {
    display: flex;
    gap: 30px;
    margin-top: 30px;
}

.nav-item {
    font-size: 1.1rem;
    color: var(--terminal-dim);
    cursor: pointer;
    padding: 10px 20px;
    transition: all 0.3s;
    position: relative;
    text-transform: uppercase;
}

.nav-item::before {
    content: "[ ";
    opacity: 0;
    transition: all 0.3s;
}

.nav-item::after {
    content: " ]";
    opacity: 0;
    transition: all 0.3s;
}

.nav-item.active {
    color: var(--terminal-bright);
    background: rgba(50, 205, 50, 0.15);
    text-shadow: 0 0 15px var(--terminal-bright);
}

.nav-item.active::before,
.nav-item.active::after,
.nav-item:hover::before,
.nav-item:hover::after {
    opacity: 1;
}

/* Memories Tab Layout */
#memories.active {
    display: grid;
    grid-template-columns: 220px 1fr 420px;
    gap: 20px;
    height: 100%;
    padding: 20px;
}

#memories:not(.active) {
    display: none !important;
}

.calendar-sidebar {
    border: 1px solid var(--terminal-dim);
    padding: 20px;
    background: rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    position: relative;
}

.calendar-sidebar::before,
.calendar-sidebar::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    border: 1px solid var(--terminal-green);
    pointer-events: none;
}

.calendar-sidebar::before {
    top: 0;
    left: 0;
    border-right: none;
    border-bottom: none;
}

.calendar-sidebar::after {
    bottom: 0;
    right: 0;
    border-left: none;
    border-top: none;
}

.sidebar-header {
    height: 34px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    margin-bottom: 12px;
    font-size: 0.85rem;
    line-height: 1;
    letter-spacing: 0.14em;
    color: var(--terminal-bright);
    border: 1px solid rgba(0, 255, 120, 0.18);
    background: rgba(0, 255, 120, 0.03);
    box-shadow: none;
}

.year-selector,
.month-selector {
    display: flex;
    gap: 5px;
    margin-bottom: 15px;
    flex-wrap: wrap;
}

.year-selector .btn-retro,
.month-selector .btn-retro {
    padding: 10px 20px;
    font-size: 0.9rem;
    border-radius: 4px;
    background: rgba(0, 255, 0, 0.05);
    margin: 2px;
}

.calendar-view {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    margin-top: 10px;
    align-self: flex-start;
    /* Prevent vertical stretching */
    width: 100%;
}

.cal-day {
    aspect-ratio: 1;
    border: 1px solid rgba(0, 255, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    color: var(--terminal-dim);
    cursor: default;
    position: relative;
    transition: all 0.2s;
}


.cal-day.has-memory {
    color: var(--terminal-green);
    border-color: var(--terminal-green);
    cursor: pointer;
    background: rgba(0, 255, 0, 0.05);
}

.cal-day.has-memory:hover {
    background: var(--terminal-green);
    color: #000;
}

.cal-day.active {
    background: var(--terminal-green);
    color: #000;
}

/* Ensure sections scroll independently */
.calendar-sidebar,
.gallery-section,
.story-section {
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}


.event-info-bar {
    height: 34px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    margin-bottom: 12px;
    background: rgba(0, 255, 120, 0.03);
    border: 1px solid rgba(0, 255, 120, 0.18);
    box-shadow: none;
    font-size: 0.85rem;
    line-height: 1;
    color: var(--terminal-bright);
    letter-spacing: 0.14em;
}

/* Content Area - Split View */
.content-body {
    flex: 1;
    display: flex;
    overflow: hidden;
    /* Prevent body scroll */
}

.tab-content {
    display: none !important;
}

#memories.active {
    display: grid !important;
    grid-template-columns: 220px 1fr 420px;
}

#letter.active {
    display: flex !important;
    width: 100%;
    flex: 1 1 auto;
}

#gourmet.active {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
}

.tab-content.active {
    height: 100%;
    overflow: hidden;
}

/* Split Sections */
.gallery-section {
    position: relative;
    overflow-y: auto;
    padding: 20px;
    border: 1px solid var(--terminal-dim);
    background: rgba(0, 0, 0, 0.2);
}

.gallery-section::before,
.gallery-section::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    border: 1px solid var(--terminal-green);
    pointer-events: none;
}

.gallery-section::before {
    top: 0;
    left: 0;
    border-right: none;
    border-bottom: none;
}

.gallery-section::after {
    bottom: 0;
    right: 0;
    border-left: none;
    border-top: none;
}

.story-section {
    position: relative;
    overflow-y: auto;
    padding: 30px 25px;
    background: rgba(50, 205, 50, 0.03);
    border: 1px solid var(--terminal-dim);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.gourmet-center-panel {
    height: 100%;
    overflow-y: auto;
    border: none;
    background: transparent;
}

.gourmet-center-panel {
    padding: 18px 22px 20px;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 14px;
    min-width: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    justify-self: stretch;
}

.gourmet-awards-hero {
    border: none;
    background: transparent;
    padding: 10px 0 4px;
    position: relative;
    overflow: hidden;
}

.gourmet-awards-hero .gourmet-rank-card {
    max-width: 1280px;
    margin: 0 auto;
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

.gourmet-photo-section {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 12px;
    min-height: 0;
    width: min(1280px, 100%);
    margin: 0 auto;
}

.gourmet-photo-section .event-info-bar {
    text-align: center;
    border-left: none;
    border-right: none;
    background: transparent;
}

.gourmet-empty-placeholder {
    min-height: 150px;
    display: grid;
    place-items: center;
    text-align: center;
    font-size: 1.05rem;
    letter-spacing: 0.16em;
    color: rgba(176, 238, 196, 0.86);
    border: none;
    background: transparent;
}

.gourmet-photo-section.is-decrypting .gourmet-empty-placeholder {
    animation: gourmetDecryptingFx 0.5s steps(2, end) 1;
}

.gourmet-photo-section.is-ready .gourmet-hero-wrap {
    animation: gourmetDetailReveal 0.4s ease-out 1;
}

.gourmet-candidate-list {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gourmet-archive-label {
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    color: rgba(160, 238, 194, 0.78);
    opacity: 0.8;
    padding: 4px 2px 0;
}

.gourmet-candidate-item {
    border: 1px solid var(--terminal-dim);
    padding: 12px;
    background: rgba(0, 18, 0, 0.5);
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.gourmet-candidate-item:hover {
    border-color: var(--terminal-edge);
    background: rgba(0, 35, 0, 0.45);
    transform: translateY(-1px);
}

.gourmet-candidate-item.active {
    border-color: var(--terminal-bright);
    background: rgba(0, 40, 0, 0.5);
    box-shadow: 0 0 14px rgba(25, 255, 90, 0.2);
}

.gourmet-candidate-item .node-name {
    font-size: 0.9rem;
    color: var(--terminal-bright);
    letter-spacing: 1px;
}

.gourmet-candidate-item .node-meta {
    margin-top: 6px;
    font-size: 0.74rem;
    color: var(--terminal-soft);
    opacity: 0.8;
}

.gourmet-hero-wrap {
    margin-top: 0;
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(460px, 1.08fr);
    gap: 18px 30px;
    min-height: 0;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    align-items: start;
}

.gourmet-photo-column {
    grid-column: 2;
    display: grid;
    grid-template-rows: auto auto;
    gap: 10px;
    align-self: start;
    min-width: 0;
}

.gourmet-photo-stage {
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    width: 100%;
    height: min(58vh, 560px);
}

.gourmet-photo-stage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: zoom-in;
    filter: none;
    border: 1px solid rgba(58, 170, 103, 0.38);
    box-shadow: 0 0 22px rgba(22, 122, 71, 0.22);
}

.gourmet-photo-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: 1px solid rgba(119, 220, 161, 0.65);
    background: rgba(0, 15, 8, 0.8);
    color: rgba(201, 255, 223, 0.95);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}

.gourmet-photo-nav:disabled {
    opacity: 0.3;
    cursor: default;
}

.gourmet-photo-prev {
    left: 10px;
}

.gourmet-photo-next {
    right: 10px;
}

.gourmet-photo-index {
    position: absolute;
    right: 12px;
    bottom: 10px;
    z-index: 2;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    color: rgba(195, 251, 219, 0.9);
    background: rgba(0, 14, 7, 0.7);
    border: 1px solid rgba(93, 196, 137, 0.38);
    padding: 2px 6px;
}

.gourmet-photo-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.1));
}

.gourmet-photo-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    align-self: stretch;
}

.gourmet-thumb {
    padding: 0;
    border: 1px solid rgba(73, 174, 115, 0.38);
    background: rgba(0, 15, 8, 0.52);
    cursor: pointer;
    overflow: hidden;
}

.gourmet-thumb img {
    display: block;
    width: 100%;
    height: 64px;
    object-fit: cover;
    filter: brightness(0.72) saturate(0.9);
}

.gourmet-thumb.active {
    border-color: rgba(238, 206, 114, 0.86);
    box-shadow: 0 0 10px rgba(238, 206, 114, 0.25);
}

.gourmet-thumb.active img,
.gourmet-thumb:hover img {
    filter: brightness(0.92) saturate(1);
}

.gourmet-log-panel {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    border: none;
    background: transparent;
    padding: 0;
    font-size: 0.93rem;
    line-height: 1.62;
    color: var(--terminal-soft);
    white-space: normal;
    max-width: 620px;
}

.gourmet-detail {
    display: grid;
    gap: 14px;
    padding-top: 4px;
}

.gourmet-detail-head {
    display: grid;
    gap: 4px;
}

.gourmet-detail-kicker {
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    color: rgba(152, 229, 184, 0.74);
}

.gourmet-detail-title {
    font-family: 'VT323', monospace;
    font-size: 2.7rem;
    line-height: 0.95;
    color: rgba(205, 255, 223, 0.98);
    text-shadow: 0 0 10px rgba(73, 220, 137, 0.3);
}

.gourmet-detail-sub {
    font-size: 0.92rem;
    letter-spacing: 0.06em;
    color: rgba(160, 229, 188, 0.9);
}

.gourmet-detail-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
}

.gourmet-detail-meta-grid > div {
    border: 1px dashed rgba(64, 165, 101, 0.3);
    padding: 6px 8px;
    background: rgba(0, 12, 5, 0.35);
    display: grid;
    gap: 3px;
}

.gourmet-detail-meta-grid span {
    font-size: 0.67rem;
    letter-spacing: 0.12em;
    color: rgba(148, 220, 175, 0.76);
}

.gourmet-detail-meta-grid strong {
    font-size: 1rem;
    letter-spacing: 0.05em;
    color: rgba(197, 255, 219, 0.98);
    font-weight: 500;
}

.gourmet-detail-label {
    font-size: 0.74rem;
    letter-spacing: 0.14em;
    color: rgba(174, 239, 197, 0.86);
    margin-bottom: 4px;
}

.gourmet-detail-reason p {
    margin: 0;
    line-height: 1.58;
    color: rgba(170, 236, 194, 0.94);
}

.gourmet-comment-board {
    border-top: 1px dashed rgba(98, 188, 129, 0.42);
    padding-top: 10px;
    display: grid;
    gap: 8px;
}

.gourmet-comment-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.gourmet-comment-btn {
    border: 1px solid rgba(96, 178, 127, 0.62);
    background: rgba(2, 18, 9, 0.7);
    color: rgba(190, 247, 210, 0.95);
    font-family: var(--font-main);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    padding: 5px 9px;
    cursor: pointer;
}

.gourmet-comment-btn:hover {
    border-color: rgba(242, 208, 115, 0.86);
    color: rgba(245, 228, 164, 0.96);
}

.gourmet-comment-form {
    display: grid;
    gap: 6px;
    border: 1px dashed rgba(69, 159, 102, 0.38);
    background: rgba(0, 12, 5, 0.48);
    padding: 8px;
}

.gourmet-comment-form.hidden {
    display: none;
}

.gourmet-comment-author,
.gourmet-comment-input {
    width: 100%;
    border: 1px solid rgba(71, 153, 100, 0.5);
    background: rgba(1, 14, 6, 0.88);
    color: rgba(202, 255, 223, 0.96);
    font-family: var(--font-main);
    font-size: 0.86rem;
    padding: 6px 8px;
}

.gourmet-comment-author:focus,
.gourmet-comment-input:focus {
    outline: none;
    border-color: rgba(239, 206, 113, 0.86);
}

.gourmet-comment-input {
    resize: vertical;
    min-height: 64px;
}

.gourmet-comment-actions {
    display: flex;
    gap: 7px;
}

.gourmet-comment-list {
    display: grid;
    gap: 7px;
}

.gourmet-comment-item {
    border: 1px solid rgba(58, 141, 89, 0.4);
    background: rgba(1, 11, 5, 0.52);
    padding: 8px;
    display: grid;
    gap: 6px;
}

.gourmet-comment-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    color: rgba(173, 236, 197, 0.92);
    font-size: 0.76rem;
}

.gourmet-comment-meta strong {
    color: rgba(198, 255, 222, 0.97);
    font-weight: 600;
}

.gourmet-comment-item p {
    margin: 0;
    line-height: 1.52;
    color: rgba(177, 238, 200, 0.95);
    font-size: 0.89rem;
}

.gourmet-comment-row-actions {
    display: flex;
    gap: 10px;
}

.gourmet-comment-link {
    border: none;
    background: transparent;
    color: rgba(159, 222, 184, 0.88);
    font-family: var(--font-main);
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    padding: 0;
    cursor: pointer;
}

.gourmet-comment-link:hover {
    color: rgba(240, 208, 117, 0.94);
}

.gourmet-comment-empty {
    font-size: 0.86rem;
    color: rgba(157, 220, 180, 0.82);
    padding: 2px 0 4px;
}

.gourmet-detail-files ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 3px;
}

.gourmet-detail-files li {
    font-size: 0.88rem;
    letter-spacing: 0.03em;
    color: rgba(156, 225, 182, 0.9);
}

.gourmet-rank-card h2 {
    margin-bottom: 12px;
}

.gourmet-rankings {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rank-item {
    border: 1px solid var(--terminal-dim);
    padding: 12px 14px;
    background: rgba(0, 15, 0, 0.52);
}

.rank-item .rank-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
    color: var(--terminal-bright);
}

.rank-item .rank-sub {
    margin-top: 6px;
    font-size: 0.78rem;
    color: var(--terminal-soft);
    opacity: 0.85;
}

.rank-item.rank-gold {
    border-color: rgba(255, 205, 90, 0.55);
    box-shadow: 0 0 10px rgba(255, 205, 90, 0.14);
}

.rank-item.rank-silver {
    border-color: rgba(195, 205, 225, 0.55);
    box-shadow: 0 0 10px rgba(195, 205, 225, 0.12);
}

.rank-item.rank-bronze {
    border-color: rgba(210, 130, 80, 0.55);
    box-shadow: 0 0 10px rgba(210, 130, 80, 0.12);
}

.gourmet-awards-hero.awardsMode,
.gourmet-right-panel.awardsMode {
    position: relative;
    background:
        radial-gradient(circle at 50% 10%, rgba(245, 203, 110, 0.22) 0%, rgba(245, 203, 110, 0.06) 32%, rgba(0, 0, 0, 0) 70%),
        transparent;
}

.gourmet-awards-hero.awardsMode::before,
.gourmet-awards-hero.awardsMode::after,
.gourmet-right-panel.awardsMode::before,
.gourmet-right-panel.awardsMode::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.gourmet-awards-hero.awardsMode::before,
.gourmet-right-panel.awardsMode::before {
    background: linear-gradient(to bottom, rgba(250, 222, 142, 0.08), rgba(250, 222, 142, 0));
    z-index: 0;
}

.gourmet-awards-hero.awardsMode::after,
.gourmet-right-panel.awardsMode::after {
    background: repeating-linear-gradient(to bottom,
            rgba(255, 238, 185, 0.08) 0px,
            rgba(255, 238, 185, 0.08) 1px,
            transparent 1px,
            transparent 3px);
    opacity: 0.35;
    z-index: 0;
}

.gourmet-awards-hero.awardsMode .gourmet-rank-card,
.gourmet-right-panel.awardsMode .gourmet-rank-card {
    position: relative;
    z-index: 1;
    border-color: transparent;
    background: transparent;
}

.gourmet-awards-hero.awardsMode .gourmet-rank-card h2,
.gourmet-right-panel.awardsMode .gourmet-rank-card h2 {
    margin-bottom: 12px;
    font-family: 'VT323', monospace;
    font-size: 2.3rem;
    line-height: 1;
    letter-spacing: 0.09em;
    color: #f2d57d;
    text-shadow: 0 0 10px rgba(242, 213, 125, 0.34), 0 0 2px rgba(25, 255, 90, 0.45);
    text-align: center;
}

.gourmet-awards-hero.awardsMode #gourmet-overview,
.gourmet-right-panel.awardsMode #gourmet-overview {
    margin: 0;
    padding-top: 12px;
    border-top: 1px solid rgba(188, 223, 170, 0.24);
    color: rgba(176, 236, 196, 0.88);
    line-height: 1.5;
    text-align: center;
}

.gourmet-awards-hero.awardsMode .gourmet-rankings,
.gourmet-right-panel.awardsMode .gourmet-rankings {
    margin-top: 16px;
}

.gourmet-awards-hero.awardsMode .podium-grid,
.gourmet-right-panel.awardsMode .podium-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.2fr) minmax(0, 0.92fr);
    align-items: end;
    gap: 14px;
}

.gourmet-awards-hero.awardsMode .podium-card,
.gourmet-right-panel.awardsMode .podium-card {
    position: relative;
    border: 1px solid var(--terminal-dim);
    background: linear-gradient(to bottom, rgba(0, 25, 0, 0.8), rgba(0, 10, 0, 0.92));
    padding: 8px 8px 12px;
    min-height: 172px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 6px;
    transform-origin: center bottom;
}

.gourmet-awards-hero.awardsMode .podium-card.is-clickable,
.gourmet-right-panel.awardsMode .podium-card.is-clickable {
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.gourmet-awards-hero.awardsMode .podium-card.is-clickable:hover,
.gourmet-right-panel.awardsMode .podium-card.is-clickable:hover {
    border-color: rgba(250, 223, 143, 0.86);
    box-shadow: 0 0 20px rgba(247, 210, 112, 0.22);
}

.gourmet-awards-hero.awardsMode .podium-card.is-selected,
.gourmet-right-panel.awardsMode .podium-card.is-selected {
    border-color: rgba(242, 209, 116, 0.94);
    box-shadow: 0 0 24px rgba(244, 207, 112, 0.26);
}

.gourmet-awards-hero.awardsMode .podium-card.is-clickable:focus-visible,
.gourmet-right-panel.awardsMode .podium-card.is-clickable:focus-visible {
    outline: 1px solid rgba(247, 215, 127, 0.9);
    outline-offset: 2px;
}

.gourmet-awards-hero.awardsMode .podium-card::after,
.gourmet-right-panel.awardsMode .podium-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 34%;
    background: linear-gradient(to top, rgba(0, 40, 0, 0.58), transparent);
    border-top: 1px solid rgba(143, 207, 164, 0.15);
    pointer-events: none;
}

.gourmet-awards-hero.awardsMode .podium-first,
.gourmet-right-panel.awardsMode .podium-first {
    min-height: 246px;
    border-color: rgba(242, 205, 103, 0.65);
    box-shadow: 0 0 18px rgba(242, 205, 103, 0.28);
    transform: translateY(-14px);
}

.gourmet-awards-hero.awardsMode .podium-second,
.gourmet-right-panel.awardsMode .podium-second {
    min-height: 205px;
    border-color: rgba(188, 205, 225, 0.6);
    box-shadow: 0 0 12px rgba(188, 205, 225, 0.16);
}

.gourmet-awards-hero.awardsMode .podium-third,
.gourmet-right-panel.awardsMode .podium-third {
    min-height: 186px;
    border-color: rgba(213, 145, 93, 0.6);
    box-shadow: 0 0 12px rgba(213, 145, 93, 0.16);
}

.gourmet-awards-hero.awardsMode .podium-rank,
.gourmet-awards-hero.awardsMode .podium-trophy,
.gourmet-awards-hero.awardsMode .podium-title,
.gourmet-awards-hero.awardsMode .podium-meta,
.gourmet-right-panel.awardsMode .podium-rank,
.gourmet-right-panel.awardsMode .podium-trophy,
.gourmet-right-panel.awardsMode .podium-title,
.gourmet-right-panel.awardsMode .podium-meta {
    position: relative;
    z-index: 1;
}

.gourmet-awards-hero.awardsMode .podium-rank,
.gourmet-right-panel.awardsMode .podium-rank {
    font-size: 0.82rem;
    letter-spacing: 0.16em;
    color: rgba(229, 245, 199, 0.85);
}

.gourmet-awards-hero.awardsMode .podium-trophy,
.gourmet-right-panel.awardsMode .podium-trophy {
    margin: 0;
    font-size: 0.66rem;
    line-height: 1.02;
    font-family: 'IBM Plex Mono', 'JetBrains Mono', 'Consolas', monospace;
    font-variant-ligatures: none;
    font-weight: 600;
    text-rendering: geometricPrecision;
    letter-spacing: 0;
    color: #f1d37a;
    text-shadow: 0 0 8px rgba(241, 211, 122, 0.3);
    white-space: pre;
    display: inline-block;
    align-self: center;
    text-align: center;
    transform: translateZ(0);
}

.gourmet-awards-hero.awardsMode .podium-title,
.gourmet-right-panel.awardsMode .podium-title {
    font-size: 0.72rem;
    line-height: 1.2;
    color: rgba(170, 231, 188, 0.88);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.gourmet-awards-hero.awardsMode .podium-name,
.gourmet-right-panel.awardsMode .podium-name {
    font-family: 'VT323', monospace;
    font-size: 2rem;
    line-height: 0.95;
    color: rgba(197, 255, 218, 0.98);
    text-shadow: 0 0 10px rgba(92, 236, 152, 0.4);
    letter-spacing: 0.04em;
    margin: 4px 0 2px;
    word-break: break-word;
}

.gourmet-awards-hero.awardsMode .podium-meta,
.gourmet-right-panel.awardsMode .podium-meta {
    font-size: 0.72rem;
    color: rgba(163, 233, 186, 0.84);
    letter-spacing: 0.06em;
}

.gourmet-awards-hero.awardsMode .awards-tail,
.gourmet-right-panel.awardsMode .awards-tail {
    margin-top: 10px;
    border-top: 1px dashed rgba(176, 223, 177, 0.35);
    padding-top: 9px;
    display: flex;
    justify-content: space-between;
    font-size: 0.76rem;
    color: rgba(161, 232, 185, 0.85);
}

.gourmet-awards-hero.awardsMode .podium-first.shimmer-once,
.gourmet-right-panel.awardsMode .podium-first.shimmer-once {
    animation: podiumGoldShimmer 0.8s ease-out 1;
}

@media (max-width: 1280px) {
    #gourmet.active {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 980px) {
    #gourmet.active {
        grid-template-columns: 1fr;
    }

    .gourmet-center-panel {
        min-height: 34vh;
    }

    .gourmet-hero-wrap {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .gourmet-photo-column,
    .gourmet-photo-stage,
    .gourmet-photo-thumbs,
    .gourmet-log-panel {
        grid-column: 1;
    }

    .gourmet-photo-column {
        gap: 8px;
    }

    .gourmet-photo-stage {
        height: min(50vh, 460px);
    }

    .gourmet-photo-thumbs {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 6px;
    }

    .gourmet-thumb img {
        height: 54px;
    }

    .gourmet-detail-title {
        font-size: 2.2rem;
    }

    .gourmet-detail-meta-grid {
        grid-template-columns: 1fr;
    }

    .gourmet-awards-hero.awardsMode .podium-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .gourmet-awards-hero.awardsMode .podium-name {
        font-size: 1.55rem;
    }
}

@keyframes podiumGoldShimmer {
    0% {
        box-shadow: 0 0 0 rgba(246, 210, 111, 0);
    }
    40% {
        box-shadow: 0 0 28px rgba(246, 210, 111, 0.34);
    }
    100% {
        box-shadow: 0 0 18px rgba(242, 205, 103, 0.28);
    }
}

@keyframes gourmetDecryptingFx {
    0% {
        opacity: 0.35;
        filter: contrast(1.35);
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0.95;
        filter: none;
    }
}

@keyframes gourmetDetailReveal {
    0% {
        opacity: 0;
        transform: translateY(14px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.story-section::before,
.story-section::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    border: 1px solid var(--terminal-green);
    pointer-events: none;
}

.story-section::before {
    top: 0;
    left: 0;
    border-right: none;
    border-bottom: none;
}

.story-section::after {
    bottom: 0;
    right: 0;
    border-left: none;
    border-top: none;
}

/* Selection Controls */
.selection-controls {
    margin-bottom: 30px;
}

.control-row {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.btn-retro {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--terminal-dim);
    padding: 8px 15px;
    cursor: pointer;
    font-family: var(--font-main);
    font-size: 0.9rem;
}

.btn-retro:hover,
.btn-retro.active {
    color: var(--terminal-green);
    border-color: var(--terminal-green);
}

/* Photo Grid */
.photo-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}


.photo-card {
    border: 1px solid var(--border-color);
    padding: 10px;
    transition: transform 0.2s, border-color 0.2s;
}

.photo-card:hover {
    transform: translateY(-8px) scale(1.02);
    border-color: var(--terminal-bright);
    box-shadow: 0 15px 30px rgba(50, 205, 50, 0.2), 0 0 20px rgba(50, 205, 50, 0.1);
}

.photo-card img,
.photo-card video {
    width: 100%;
    height: auto;
    max-height: 600px;
    object-fit: contain;
    display: block;
}

/* Memo Styling */
.memo-card {
    border: 1px solid var(--terminal-green);
    padding: 30px;
    color: var(--text-white);
}

.memo-card h2 {
    color: var(--terminal-green);
    margin-bottom: 20px;
    font-size: 1.5rem;
    border-bottom: 1px solid var(--terminal-dim);
    padding-bottom: 15px;
}

.memo-card p {
    line-height: 1.6;
    font-size: 1.1rem;
    letter-spacing: 0.02rem;
    word-break: keep-all;
    opacity: 1;
    text-align: left;
    color: #fff;
    text-shadow: 0 0 1px rgba(255, 255, 255, 0.2);
}

/* Advanced Biometric Scan Styles */
/* Advanced Biometric Scan HUD v3 - TIER-1 SECRET AGENT EDITION */
.scan-hud-v3 {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 10;
    font-family: 'Rajdhani', sans-serif;
    color: var(--terminal-bright);
    overflow: hidden;
}

/* Real-time Jittering Data Panel */
.metrics-panel-left,
.metrics-panel-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding: 25px;
    background: rgba(0, 20, 0, 0.85);
    backdrop-filter: blur(15px);
    border: 1px solid rgba(57, 255, 20, 0.3);
    min-width: 160px;
}

.metrics-panel-left {
    left: 10px;
    border-left: 4px solid var(--terminal-bright);
}

.metrics-panel-right {
    right: 10px;
    border-right: 4px solid var(--terminal-bright);
    text-align: right;
}

.metric-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    animation: metric-jitter 0.15s infinite alternate;
}

@keyframes metric-jitter {
    0% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(1px, 0.5px);
    }
}

.m-label {
    font-size: 0.75rem;
    color: var(--terminal-dim);
    letter-spacing: 3px;
    font-weight: 700;
    text-transform: uppercase;
}

.m-value {
    font-family: 'Orbitron', sans-serif;
    font-size: 1rem;
    color: var(--terminal-bright);
    text-shadow: 0 0 10px var(--terminal-glow);
}

/* Face Guide Point Cloud */
.face-guide-container {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 240px;
    height: 300px;
}

.face-guide-svg {
    width: 100%;
    height: 100%;
    stroke-dasharray: 2, 8;
    animation: rotate-slow 20s linear infinite;
}

.scan-node {
    position: absolute;
    width: 4px;
    height: 4px;
    background: #fff;
    box-shadow: 0 0 15px var(--terminal-bright);
    animation: point-jitter 0.2s infinite;
}

@keyframes point-jitter {
    0% {
        opacity: 0.3;
        transform: scale(0.8);
    }

    100% {
        opacity: 1;
        transform: scale(1.2) translate(2px, -1px);
    }
}

/* Moving Elements */
.v3-scan-line {
    position: absolute;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, transparent, var(--terminal-bright), transparent);
    box-shadow: 0 0 30px var(--terminal-bright);
    animation: tactical-scan 3s infinite ease-in-out;
    z-index: 12;
}

@keyframes tactical-scan {
    0% {
        top: -5%;
    }

    100% {
        top: 105%;
    }
}

/* Scanline Noise Effect */
.scan-hud-v3::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg, rgba(57, 255, 20, 0.03) 0px, rgba(57, 255, 20, 0.03) 1px, transparent 1px, transparent 2px);
    pointer-events: none;
}

.wink-notification-v3 {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
}

.wink-content {
    background: rgba(57, 255, 20, 0.15);
    border: 1px solid var(--terminal-bright);
    padding: 10px 30px;
    display: flex;
    align-items: center;
    gap: 15px;
    backdrop-filter: blur(10px);
    box-shadow: 0 0 30px rgba(57, 255, 20, 0.2);
    animation: wink-enter 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes wink-enter {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.status-scroll {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 2px;
    color: var(--terminal-bright);
}

.scan-footer-hud {
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(57, 255, 20, 0.2);
    padding-top: 15px;
}

.status-binary {
    font-size: 0.6rem;
    color: var(--terminal-dim);
    letter-spacing: 1px;
}

.advanced-scan-area {
    margin: 20px 0;
    padding: 0;
    background: transparent;
}

.scan-frame-outer {
    width: 100%;
    aspect-ratio: 4/3;
    max-width: 700px;
    margin: 0 auto;
    position: relative;
    border: 1px solid var(--terminal-dim);
    background: #000;
    overflow: hidden;
}

#camera-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.9) contrast(1.2) sepia(0.2) hue-rotate(80deg);
    opacity: 0.85;
}

#visual-process-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
    mix-blend-mode: screen;
    /* Blend with video if needed */
}

.scan-overlay-v2 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 5;
}

.scan-frame-corners .corner {
    position: absolute;
    width: 40px;
    height: 40px;
    border: 3px solid var(--terminal-bright);
    z-index: 20;
}

.corner.top-left {
    top: 20px;
    left: 20px;
    border-right: none;
    border-bottom: none;
}

.corner.top-right {
    top: 20px;
    right: 20px;
    border-left: none;
    border-bottom: none;
}

.corner.bottom-left {
    bottom: 20px;
    left: 20px;
    border-right: none;
    border-top: none;
}

.corner.bottom-right {
    bottom: 20px;
    right: 20px;
    border-left: none;
    border-top: none;
}

.central-wireframe {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 70%;
    border: 1px dashed rgba(57, 255, 20, 0.4);
    border-radius: 50% / 60%;
    animation: wireframe-pulse 2s ease-in-out infinite;
}

@keyframes wireframe-pulse {

    0%,
    100% {
        opacity: 0.3;
        transform: translate(-50%, -50%) scale(1);
    }

    50% {
        opacity: 0.7;
        transform: translate(-50%, -50%) scale(1.02);
    }
}

.scan-moving-bar {
    position: absolute;
    width: 100%;
    height: 2px;
    background: var(--terminal-bright);
    box-shadow: 0 0 20px var(--terminal-bright);
    animation: v-scan 3s linear infinite;
    z-index: 15;
}

@keyframes v-scan {
    0% {
        top: 0;
    }

    100% {
        top: 100%;
    }
}

.technical-data-left,
.technical-data-right {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 0 30px;
}

.technical-data-left {
    left: 0;
}

.technical-data-right {
    right: 0;
    text-align: right;
}

.data-block {
    font-size: 0.75rem;
    color: var(--terminal-bright);
    background: rgba(0, 0, 0, 0.6);
    padding: 4px 8px;
    border-left: 2px solid var(--terminal-bright);
    letter-spacing: 1px;
}

.technical-data-right .data-block {
    border-left: none;
    border-right: 2px solid var(--terminal-bright);
}

.wink-notification {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 60, 0, 0.8);
    border: 2px solid var(--terminal-bright);
    padding: 10px 25px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    gap: 10px;
    backdrop-filter: blur(5px);
    z-index: 50;
    animation: bounce 2s infinite;
}

.wink-text {
    font-size: 1.1rem;
    font-weight: bold;
    color: var(--terminal-bright);
    text-shadow: 0 0 10px black;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateX(-50%) translateY(0);
    }

    50% {
        transform: translateX(-50%) translateY(-5px);
    }
}

.camera-flash-effect {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: white;
    opacity: 0;
    z-index: 100;
    pointer-events: none;
}

.camera-flash-effect.active {
    animation: flash-anim 0.5s ease-out;
}

@keyframes flash-anim {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.scan-footer-logs {
    margin-top: 15px;
    text-align: center;
    font-size: 0.9rem;
    color: var(--terminal-dim);
    letter-spacing: 2px;
}

.scan-actions-redesign {
    margin-top: 25px;
    text-align: center;
}

/* Utility */
.hidden {
    display: none !important;
}

/* Buttons */
.btn-retro {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--terminal-dim);
    padding: 8px 15px;
    cursor: pointer;
    font-family: var(--font-main);
    font-size: 0.9rem;
}

.btn-retro:hover,
.btn-retro.active {
    color: var(--terminal-green);
    border-color: var(--terminal-green);
}

.btn-command {
    background: transparent;
    color: var(--terminal-soft);
    border: 1px solid var(--terminal-soft);
    padding: 12px 40px;
    font-family: var(--font-header);
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    position: relative;
    overflow: hidden;
    letter-spacing: 3px;
}

.btn-command:hover {
    background: var(--terminal-primary);
    color: #000;
    box-shadow: var(--glow-primary);
    animation: bar-flicker 0.2s infinite;
}

.btn-sub-text {
    font-size: 0.65rem;
    letter-spacing: 1px;
    opacity: 0.7;
    font-weight: normal;
}

.btn-command:hover .btn-sub-text {
    opacity: 1;
}

.scan-actions-wrap {
    margin-top: 15px;
    display: flex;
    justify-content: center;
}

/* Lightbox Modal */
.lightbox-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.95);
    z-index: 20000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: zoom-out;
    backdrop-filter: blur(10px);
}

.lightbox-content {
    width: var(--lightbox-width, min(72vw, 1100px));
    height: var(--lightbox-height, min(72vh, 760px));
    max-width: 72vw;
    max-height: 72vh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

#lightbox-media-container img,
#lightbox-media-container video {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border: 2px solid var(--terminal-green);
    box-shadow: 0 0 50px rgba(50, 205, 50, 0.3);
}

.lightbox-close {
    margin-top: 20px;
    color: var(--terminal-green);
    font-family: var(--font-main);
    font-size: 1.2rem;
    letter-spacing: 2px;
    padding: 10px 30px;
    border: 1px solid var(--terminal-green);
    background: rgba(0, 255, 0, 0.05);
    cursor: pointer;
    transition: all 0.3s;
}

.lightbox-close:hover {
    background: var(--terminal-green);
    color: #000;
}

@media (max-width: 900px) {
    .lightbox-content {
        width: var(--lightbox-width, 92vw);
        height: var(--lightbox-height, 78vh);
        max-width: 92vw;
        max-height: 78vh;
    }
}

/* --- EMERGENCY SYSTEMS --- */
.terminal-glitch-intense {
    animation: intense-glitch 0.15s infinite;
    filter: invert(1) hue-rotate(90deg) contrast(200%);
}

.terminal-glitch-soft {
    animation: soft-glitch 0.3s ease-in-out 3;
    filter: contrast(108%) saturate(108%);
}

@keyframes soft-glitch {
    0% {
        transform: translate(0);
        filter: contrast(102%) saturate(102%);
    }
    35% {
        transform: translate(0.6px, -0.4px);
        filter: contrast(112%) saturate(110%) hue-rotate(4deg);
    }
    65% {
        transform: translate(-0.6px, 0.4px);
        filter: contrast(110%) saturate(112%) hue-rotate(-4deg);
    }
    100% {
        transform: translate(0);
        filter: contrast(104%) saturate(104%);
    }
}

@keyframes intense-glitch {
    0% {
        transform: translate(0);
    }

    20% {
        transform: translate(-10px, 5px);
    }

    40% {
        transform: translate(10px, -5px) skewX(20deg);
    }

    60% {
        transform: translate(-5px, 10px);
    }

    80% {
        transform: translate(5px, -10px) skewX(-20deg);
    }

    100% {
        transform: translate(0);
    }
}

#defense-timer {
    font-family: var(--font-data);
    font-weight: bold;
    min-width: 45px;
    display: inline-block;
}

/* --- TERMINAL GATE PANEL: CENTRALIZED INITIALIZATION --- */
.terminal-gate-panel {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 320px;
    background: rgba(0, 0, 0, 0.95);
    border: 1px solid var(--terminal-edge);
    padding: 0;
    z-index: 100;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.8);
    animation: gate-popup 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes gate-popup {
    0% {
        transform: translate(-50%, -50%) scale(0.9);
        opacity: 0;
    }

    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}

.gate-header {
    background: var(--terminal-dim);
    color: var(--terminal-soft);
    font-size: 0.65rem;
    padding: 6px 15px;
    letter-spacing: 2px;
    border-bottom: 1px solid var(--terminal-dim);
}

.gate-body {
    padding: 30px 20px;
    text-align: center;
}

.gate-body p {
    font-size: 0.8rem;
    color: var(--terminal-red);
    margin-bottom: 20px;
    letter-spacing: 2px;
}

.gate-footer {
    font-size: 0.6rem;
    color: rgba(25, 255, 90, 0.2);
    padding: 8px;
    text-align: center;
    border-top: 1px solid rgba(25, 255, 90, 0.05);
}

.btn-gate-init {
    background: transparent;
    border: 1px solid var(--terminal-primary);
    color: var(--terminal-primary);
    padding: 12px 25px;
    font-family: var(--font-header);
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.3s;
    letter-spacing: 1px;
}

.btn-gate-init:hover {
    background: var(--terminal-primary);
    color: #000;
    box-shadow: 0 0 20px var(--terminal-primary);
}

/* --- IRIS RECOGNITION UI --- */
.iris-ui-container {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    z-index: 50;
}

.iris-target {
    width: 250px;
    height: 250px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.iris-ring {
    position: absolute;
    border: 1px solid var(--terminal-primary);
    border-radius: 50%;
    opacity: 0.3;
}

.ring-1 {
    width: 100%;
    height: 100%;
    border-style: dashed;
    animation: rotate-slow 20s linear infinite;
}

.ring-2 {
    width: 85%;
    height: 85%;
    border-width: 2px;
    opacity: 0.5;
}

.ring-3 {
    width: 40%;
    height: 40%;
    border: 1px double var(--terminal-primary);
    animation: iris-pulse 2s ease-in-out infinite;
}

@keyframes iris-pulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.2;
    }

    50% {
        transform: scale(1.1);
        opacity: 0.6;
    }
}

.iris-aim-lines::before,
.iris-aim-lines::after {
    content: '';
    position: absolute;
    background: var(--terminal-primary);
    opacity: 0.4;
}

.iris-aim-lines::before {
    width: 1px;
    height: 120%;
    left: 50%;
    top: -10%;
}

.iris-aim-lines::after {
    height: 1px;
    width: 120%;
    top: 50%;
    left: -10%;
}

/* --- GLOBAL TACTICAL HUD OVERLAY (SECRET ORGANIZATION VIBE) --- */
.hud-overlay-v6 {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
}

.hud-header-bar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 32px;
    background: rgba(0, 0, 0, 0.4);
    /* Much more transparent */
    border-bottom: 1px solid rgba(25, 255, 90, 0.2);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 25px;
    font-size: 0.65rem;
    font-family: 'Courier New', monospace;
    color: var(--terminal-bright);
    letter-spacing: 1.5px;
    backdrop-filter: blur(5px);
}

.h-mid {
    font-weight: bold;
    background: rgba(25, 255, 90, 0.1);
    color: var(--terminal-bright);
    border: 1px solid var(--terminal-bright);
    padding: 1px 8px;
    font-size: 0.6rem;
}

.hud-corners-v6 {
    position: absolute;
    inset: 40px 10px 10px 10px;
}

.hud-corners-v6 .h-c {
    position: absolute;
    width: 60px;
    height: 60px;
    border-color: var(--terminal-dim);
    border-style: solid;
    opacity: 0.25;
    /* More subtle */
    font-size: 0.55rem;
    color: var(--terminal-bright);
    overflow: visible;
}

.h-c span {
    position: absolute;
    white-space: nowrap;
}

.c-tl {
    top: 0;
    left: 0;
    border-width: 2px 0 0 2px;
}

.c-tl span {
    top: 5px;
    left: 5px;
}

.c-tr {
    top: 0;
    right: 0;
    border-width: 2px 2px 0 0;
}

.c-tr span {
    top: 5px;
    right: 5px;
}

.c-bl {
    bottom: 0;
    left: 0;
    border-width: 0 0 2px 2px;
}

.c-bl span {
    bottom: 5px;
    left: 5px;
}

.c-br {
    bottom: 0;
    right: 0;
    border-width: 0 2px 2px 0;
}

.c-br span {
    bottom: 5px;
    right: 5px;
}

.hud-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-35deg);
    font-size: 10rem;
    font-weight: 900;
    opacity: 0.015;
    /* Ultra subtle */
    color: white;
    white-space: nowrap;
    z-index: -1;
    pointer-events: none;
    letter-spacing: 30px;
    filter: blur(8px);
    /* Heavily blurred for 'ghost' effect */
}

/* Enhancing mission panels for 'Secret Org' feel (but NOT for full-screen terminal stages) */
.mission-panel:not(#mission-1):not(#mission-boot):not(#mission-2) {
    border: 1px solid rgba(25, 255, 90, 0.15) !important;
    background: rgba(0, 0, 0, 0.92) !important;
    box-shadow: 0 0 40px rgba(0, 0, 0, 1), inset 0 0 20px rgba(25, 255, 90, 0.05);
}

/* Dossier Stamp */
.verification-stamp::after {
    content: "CMA_SECURE";
    display: block;
    font-size: 0.4rem;
    opacity: 0.8;
}

.record-header::before {
    content: "SECRET_DOCUMENT_PRS_77";
    position: absolute;
    top: -10px;
    right: 20px;
    font-size: 1.5rem;
    opacity: 0.05;
    font-weight: 900;
}

/* Blink fast for tactical feels */
.blink-fast {
    animation: blink-red 0.5s step-end infinite;
}

@keyframes blink-red {

    0%,
    100% {
        background: var(--terminal-red);
        color: white;
    }

    50% {
        background: transparent;
        color: var(--terminal-red);
    }
}



.boot-logs::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(to bottom, var(--terminal-bright), transparent);
    opacity: 0.3;
}

.scanner-bar {
    position: absolute;
    width: 100%;
    height: 4px;
    background: linear-gradient(to bottom, transparent, var(--terminal-primary), transparent);
    box-shadow: 0 0 15px var(--terminal-primary);
    top: -10%;
    animation: iris-scan-loop 4s linear infinite;
}

.iris-ui-container:not(.hidden) .scanner-bar {
    opacity: 0.6;
}

@keyframes iris-scan-loop {
    0% {
        top: 0%;
    }

    100% {
        top: 100%;
    }
}

/* --- CRT Terminal Tone Upgrade (Mission Scope) --- */
#game-screen:not(.hidden) {
    --terminal-primary: #00cc66;
    --terminal-soft: rgba(0, 204, 102, 0.62);
    --terminal-dim: rgba(0, 179, 90, 0.18);
    --terminal-edge: rgba(0, 179, 90, 0.36);
    --terminal-red: #ff2b2b;
    background-color: #020704 !important;
    filter: contrast(1.1) brightness(0.9);
}

#game-screen:not(.hidden)::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
    background: radial-gradient(circle at center, transparent 58%, rgba(0, 0, 0, 0.62) 100%);
}

#game-screen:not(.hidden)::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    background: repeating-linear-gradient(to bottom,
            rgba(0, 255, 100, 0.03) 0px,
            rgba(0, 255, 100, 0.03) 1px,
            transparent 2px,
            transparent 4px);
}

#game-screen:not(.hidden) main.crt {
    animation: subtleShake 0.2s infinite;
}

#game-screen:not(.hidden),
#game-screen:not(.hidden) :is(h1, h2, h3, h4, h5, p, span, div, pre, label, button, input, textarea, small) {
    font-family: 'IBM Plex Mono', 'Share Tech Mono', 'VT323', monospace !important;
    text-shadow:
        0 0 2px #00ff88,
        0 0 6px rgba(0, 255, 100, 0.4);
}

#game-screen .terminal-modal,
#game-screen .terminal-gate-panel,
#game-screen .defense-briefing-modal,
#game-screen .agent-record-system,
#game-screen .mission-panel,
#game-screen .mission-panel-full {
    border-radius: 0 !important;
    box-shadow: none !important;
}

#game-screen .critical-alert-v2,
#game-screen .critical-alert {
    background: #ff2b2b !important;
    color: #000 !important;
    animation: crtAlertBlink 1s infinite !important;
    border-radius: 0 !important;
}

.mission-panel:not(#mission-1):not(#mission-2) {
    transform: translate(-50%, -52%);
}

@keyframes subtleShake {
    0% {
        transform: translate(0px, 0px);
    }
    50% {
        transform: translate(0.5px, -0.5px);
    }
    100% {
        transform: translate(0px, 0px);
    }
}

@keyframes crtAlertBlink {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.6;
    }
    100% {
        opacity: 1;
    }
}

/* --- Mission-2 CCTV/CRT Scanner Redesign --- */
#mission-2 .advanced-scan-area {
    display: grid;
    place-items: center;
    padding: 0 !important;
}

#mission-2 .scan-frame-outer.camera-wrap {
    position: relative;
    width: min(1120px, 92vw) !important;
    height: min(78vh, 760px) !important;
    margin: 0 auto !important;
    border: 1px solid rgba(0, 204, 102, 0.7) !important;
    border-radius: 0 !important;
    background: #020704 !important;
    transform: translateY(-8px);
    overflow: hidden;
    filter: contrast(1.15) brightness(.88) saturate(.85);
    animation: vhsJitter .22s infinite, camFlicker 0.5s infinite;
}

#mission-2 .scan-frame-outer.camera-wrap::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    background-image: url('/assets/noise.png'), url('https://grainy-gradients.vercel.app/noise.svg');
    background-size: 260px 260px, 240px 240px;
    opacity: .18;
    mix-blend-mode: screen;
}

#mission-2 .scan-frame-outer.camera-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 4;
    background: repeating-linear-gradient(to bottom,
            rgba(0, 255, 100, 0.05) 0px,
            rgba(0, 255, 100, 0.05) 1px,
            transparent 2px,
            transparent 5px);
    mix-blend-mode: overlay;
    opacity: .9;
}

#mission-2 .cam-tape {
    position: absolute;
    z-index: 8;
    border: 1px solid rgba(0, 204, 102, 0.65);
    background: rgba(0, 18, 10, 0.86);
    color: rgba(157, 241, 190, 0.95);
    padding: 4px 8px;
    font-size: 11px;
    letter-spacing: .08em;
}

#mission-2 .cam-tape-left {
    left: 16px;
    top: 14px;
}

#mission-2 .cam-tape-right {
    right: 16px;
    top: 14px;
}

#mission-2 .cam-timecode {
    position: absolute;
    z-index: 8;
    left: 16px;
    top: 42px;
    font-size: 11px;
    letter-spacing: .1em;
    color: rgba(128, 232, 168, 0.88);
    background: rgba(0, 16, 8, 0.7);
    border: 1px solid rgba(0, 150, 80, 0.44);
    padding: 3px 6px;
}

#mission-2 #camera-preview {
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.06);
    opacity: 0.96;
}

#mission-2 #visual-process-canvas {
    z-index: 2;
    opacity: 0.38 !important;
    mix-blend-mode: screen;
}

#mission-2 .metrics-panel-left,
#mission-2 .metrics-panel-right,
#mission-2 .telemetry-strip,
#mission-2 .v3-scan-line,
#mission-2 #iris-scanner-ui,
#mission-2 .scan-hud-v3,
#mission-2 .wink-notification-v3 {
    display: none !important;
}

#mission-2 .fa-hud {
    z-index: 8;
    left: 16px;
    right: 16px;
    bottom: 14px;
    top: auto;
    display: grid;
    gap: 8px;
    padding: 0;
}

#mission-2 .fa-opline {
    font-size: 12px;
    letter-spacing: .11em;
    color: rgba(166, 247, 198, 0.95);
}

#mission-2 .fa-log {
    margin: 0;
    max-width: none;
    border: 1px solid rgba(0, 204, 102, 0.48);
    background: rgba(0, 12, 6, 0.78);
    padding: 8px 10px;
    font-size: 12px;
    line-height: 1.32;
    letter-spacing: .02em;
    white-space: pre-wrap;
    color: rgba(157, 241, 190, 0.92);
}

#mission-2 .fa-progress {
    width: 100%;
    height: 2px;
    border: none;
    background: rgba(0, 204, 102, 0.35);
    overflow: hidden;
}

#mission-2 .fa-progress-fill {
    height: 100%;
    background: repeating-linear-gradient(90deg,
            rgba(178, 255, 208, 0.98) 0px,
            rgba(178, 255, 208, 0.98) 7px,
            rgba(0, 204, 102, 0.15) 8px,
            rgba(0, 204, 102, 0.15) 11px);
}

#mission-2 .liveness-overlay {
    z-index: 9;
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 20px 36px;
    background: rgba(0, 30, 14, 0.7);
}

#mission-2 .liveness-overlay.hidden {
    display: none !important;
}

#mission-2 .lv-box.protocol-popup {
    width: min(760px, 92%);
    background: rgba(0, 15, 8, .92);
    border: 1px solid rgba(0, 204, 102, .75);
    border-radius: 0;
    padding: 14px 16px;
    box-shadow: none;
}

#mission-2 .protocol-title {
    font-size: 12px;
    letter-spacing: .12em;
    opacity: .95;
    margin-bottom: 8px;
}

#mission-2 .protocol-steps {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 14px;
    color: rgba(178, 255, 208, 0.95);
    margin-bottom: 6px;
}

#mission-2 .protocol-hint {
    margin-top: 8px;
    font-size: 12px;
    opacity: .74;
}

#mission-2 .lv-text {
    margin: 0;
    font-size: 12px;
    line-height: 1.3;
    color: rgba(168, 247, 198, 0.96);
}

#mission-2 .lv-window {
    margin-top: 6px;
    font-size: 11px;
    letter-spacing: .1em;
    opacity: .82;
}

#mission-2 .lv-guide {
    position: absolute;
    border: 1px dashed rgba(161, 250, 198, 0.8);
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.35);
}

#mission-2 .lv-eye {
    width: 66px;
    height: 66px;
    border-radius: 50%;
}

#mission-2 .lv-mouth {
    width: 102px;
    height: 62px;
    border-radius: 50%;
}

#mission-2 .access-granted {
    z-index: 10;
    bottom: 10%;
    font-size: 20px;
    letter-spacing: .08em;
}

@keyframes vhsJitter {
    0% {
        transform: translate(0, -8px);
    }
    20% {
        transform: translate(1px, -8px);
    }
    40% {
        transform: translate(-1px, -7px);
    }
    60% {
        transform: translate(0, -9px);
    }
    80% {
        transform: translate(1px, -7px);
    }
    100% {
        transform: translate(0, -8px);
    }
}

@keyframes camFlicker {
    0%,
    100% {
        opacity: .98;
    }
    50% {
        opacity: .94;
    }
}

/* --- SECURE INTELLIGENCE MAILBOX (SIM) --- */
#letter.active {
    display: flex;
    width: 100%;
    flex: 1 1 auto;
    height: 100%;
    padding: 0;
    /* Expanded to edges */
    gap: 0;
}

.mailbox-container {
    display: flex;
    width: 100%;
    height: calc(100vh - 180px);
    /* Taller for more vertical space */
    border: none;
    border-top: 1px solid var(--terminal-dim);
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(15px);
}

.mail-sidebar {
    width: 340px;
    /* Wider to show more subject text */
    border-right: 1px solid var(--terminal-dim);
    display: flex;
    flex-direction: column;
    background: rgba(0, 0, 0, 0.4);
}

.mail-sidebar .sidebar-header {
    padding: 15px 25px;
    height: auto;
    display: block;
    font-size: 0.75rem;
    color: var(--terminal-bright);
    background: rgba(25, 255, 90, 0.08);
    border-bottom: 2px solid var(--terminal-dim);
    letter-spacing: 2px;
    margin-bottom: 0;
    border-left: none;
    border-right: none;
    border-top: none;
}

.mail-list {
    flex: 1;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--terminal-dim) transparent;
}

.mail-item {
    padding: 22px 25px;
    border-bottom: 1px solid rgba(25, 255, 90, 0.05);
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
}

.mail-item:hover {
    background: rgba(25, 255, 90, 0.08);
}

.mail-item.active {
    background: rgba(25, 255, 90, 0.15);
}

.mail-item.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 4px;
    background: var(--terminal-bright);
    box-shadow: 0 0 15px var(--terminal-bright);
}

.mail-status-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--terminal-bright);
    box-shadow: 0 0 10px var(--terminal-bright);
    flex-shrink: 0;
}

.mail-item.read .mail-status-dot {
    background: var(--terminal-dim);
    box-shadow: none;
    opacity: 0.3;
}

.mail-info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    overflow: hidden;
}

.mail-subject {
    font-size: 0.95rem;
    color: var(--terminal-soft);
    font-weight: bold;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mail-meta {
    font-size: 0.65rem;
    opacity: 0.5;
    letter-spacing: 1px;
}

.mail-viewer {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: rgba(0, 0, 0, 0.1);
    position: relative;
}

.mail-empty-state {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: var(--terminal-dim);
    gap: 25px;
    text-align: center;
}

.mail-content-display {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.mail-header {
    padding: 30px 34px;
    border-bottom: 1px solid var(--terminal-dim);
    background: rgba(0, 0, 0, 0.3);
}

.header-row {
    font-size: 0.95rem;
    margin-bottom: 12px;
    display: flex;
    gap: 30px;
}

.header-row label {
    width: 60px;
    opacity: 0.3;
    font-weight: bold;
    letter-spacing: 1.5px;
}

.mail-body {
    flex: 1;
    padding: 34px 36px;
    font-size: 1.2rem;
    line-height: 2.2;
    color: var(--terminal-soft);
    overflow-y: auto;
    white-space: pre-line;
    scrollbar-width: thin;
}

.mail-body b {
    color: var(--terminal-bright);
    text-shadow: 0 0 10px rgba(25, 255, 90, 0.3);
}

.mail-audio-card {
    margin: 10px 0 8px;
    padding: 14px 16px;
    border: 1px solid rgba(27, 255, 128, 0.28);
    background: rgba(5, 28, 15, 0.55);
    box-shadow: inset 0 0 0 1px rgba(27, 255, 128, 0.08);
}

.mail-audio-title {
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--terminal-bright);
    margin-bottom: 10px;
}

.mail-special-audio {
    width: min(100%, 560px);
    display: block;
    margin-bottom: 8px;
    filter: hue-rotate(68deg) saturate(1.1) brightness(0.95);
}

.mail-audio-note {
    font-size: 0.88rem;
    opacity: 0.82;
    letter-spacing: 0.03em;
}

.mail-lyrics {
    margin-top: 6px;
    line-height: 1.95;
}

/* --- GUMDAK CAMOUFLAGE UI --- */
#gumdak-landing {
    position: fixed;
    inset: 0;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    z-index: 10000;
    color: #202124;
    transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
    animation: gumdakFadeIn 180ms ease-out;
}

@keyframes gumdakFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

#gumdak-landing.fade-out {
    opacity: 0;
    transform: scale(1.05);
    pointer-events: none;
}

.gumdak-nav {
    display: flex;
    justify-content: space-between;
    padding: 15px 25px;
    font-size: 13px;
}

.gumdak-nav a {
    text-decoration: none;
    color: #5f6368;
    margin-right: 15px;
}

.gumdak-nav a:hover {
    text-decoration: underline;
}

.nav-right {
    display: flex;
    align-items: center;
}

.sign-in-btn {
    background: #1a73e8;
    color: #fff;
    border: none;
    padding: 8px 18px;
    border-radius: 4px;
    font-weight: 500;
    margin-left: 15px;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.gumdak-nav a.sign-in-btn {
    color: #fff;
}

.gumdak-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 14vh;
}

.gumdak-logo {
    font-family: 'Arial', sans-serif;
    font-size: 88px;
    font-weight: 700;
    letter-spacing: -2.6px;
    margin-bottom: 25px;
    user-select: none;
    transition: filter 0.15s ease;
}

.gumdak-logo:hover {
    filter: saturate(1.08) brightness(0.98);
}

.c-b {
    color: #4285F4;
}

.c-r {
    color: #EA4335;
}

.c-y {
    color: #FBBC05;
}

.c-g {
    color: #34A853;
}

.gumdak-search-wrapper {
    width: 100%;
    max-width: 584px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.search-box-outer {
    width: 100%;
    height: 44px;
    border: 1px solid #dfe1e5;
    border-radius: 24px;
    display: flex;
    align-items: center;
    padding: 0 15px;
    transition: all 0.1s;
    position: relative;
    background: #fff;
    margin-top: 10px;
}

.search-box-outer:hover,
.search-box-outer.focused {
    box-shadow: 0 1px 5px rgba(32, 33, 36, 0.18);
    border-color: rgba(223, 225, 229, 0);
}

.search-ico {
    color: #9aa0a6;
    margin-right: 10px;
    font-size: 18px;
}

.voice-ico {
    color: #4285f4;
    cursor: pointer;
    font-size: 18px;
    margin-left: 10px;
}

#gumdak-search-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 16px;
    color: #202124;
}

.gumdak-btns {
    margin-top: 25px;
    display: flex;
    gap: 12px;
}

.g-btn {
    background-color: #f8f9fa;
    border: 1px solid #f8f9fa;
    border-radius: 4px;
    color: #3c4043;
    font-size: 14px;
    padding: 0 16px;
    line-height: 27px;
    height: 36px;
    min-width: 54px;
    text-align: center;
    cursor: pointer;
    user-select: none;
}

.g-btn:hover {
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    background-image: -webkit-linear-gradient(top, #f8f9fa, #f8f9fa);
    background-color: #f8f9fa;
    border: 1px solid #dadce0;
    color: #202124;
}

.domain-tag {
    margin-top: 40px;
    font-size: 14px;
    color: #70757a;
    letter-spacing: 2px;
    font-weight: 500;
}

.gumdak-footer {
    background: #f2f2f2;
    padding: 15px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    border-top: 1px solid #dadce0;
}

.gumdak-footer a {
    text-decoration: none;
    color: #70757a;
    margin-right: 25px;
}

.gumdak-footer a:hover {
    text-decoration: underline;
}

/* Suggestion Panel */
.suggest-panel {
    position: absolute;
    top: 44px;
    left: 0;
    width: 100%;
    background: #fff;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 2px 5px rgba(32, 33, 36, 0.14);
    padding: 6px 0;
    z-index: 100;
    border: 1px solid rgba(223, 225, 229, 0.7);
    border-top: none;
}

.suggest-item {
    padding: 7px 15px;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    line-height: 1.2;
}

.suggest-item:hover {
    background: #f1f3f4;
}

.suggest-item i {
    margin-right: 15px;
    color: #bdc1c6;
    font-size: 13px;
}

.suggest-item.suggest-system {
    color: #5f6368;
}

/* Verifier Overlay */
#gate-verifier {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    background: radial-gradient(ellipse at center, rgba(10, 30, 18, .55), rgba(0, 0, 0, .92));
    color: #35ff7a;
    font-family: ui-monospace, Menlo, Consolas, monospace;
    text-shadow: 0 0 10px rgba(53, 255, 122, .22);
    overflow: hidden;
}

.secret-intro-video-layer {
    position: fixed;
    inset: 0;
    z-index: 20500;
    background: #000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.45s ease;
}

.secret-intro-video-layer.active {
    opacity: 1;
    pointer-events: auto;
}

.secret-intro-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: contrast(1.05) saturate(1.02);
}

.secret-intro-vignette {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at center, transparent 42%, rgba(0, 0, 0, 0.46) 100%),
        linear-gradient(to bottom, rgba(0, 0, 0, 0.36), rgba(0, 0, 0, 0.18) 32%, rgba(0, 0, 0, 0.42));
}

.secret-intro-caption {
    position: absolute;
    left: 50%;
    bottom: 6.6vh;
    transform: translateX(-50%);
    width: min(92vw, 820px);
    text-align: center;
    font-family: var(--font-main);
    font-size: 0.88rem;
    letter-spacing: 0.14em;
    color: rgba(183, 255, 206, 0.86);
    text-shadow: 0 0 10px rgba(53, 255, 122, 0.26);
    padding: 8px 12px;
    border: 1px solid rgba(79, 191, 122, 0.35);
    background: rgba(0, 12, 0, 0.38);
}

.gate-screen {
    display: grid;
    place-items: center;
    gap: 16px;
    padding: 22px;
    width: min(560px, 86vw);
    border: 1px solid rgba(53, 255, 122, 0.2);
    background:
        repeating-linear-gradient(0deg, rgba(53, 255, 122, 0.03) 0 1px, transparent 1px 3px),
        rgba(0, 0, 0, 0.22);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.7);
    position: relative;
}

.gate-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.18) 0, rgba(0, 0, 0, 0.18) 1px, transparent 1px, transparent 3px);
    opacity: 0.35;
}

.gate-log {
    font-size: 12px;
    line-height: 1.25;
    opacity: .92;
    margin: 0;
    white-space: pre;
    width: min(520px, 78vw);
    text-align: left;
}

.gate-bar {
    height: 2px;
    width: min(420px, 70vw);
    background: rgba(53, 255, 122, .25);
    overflow: hidden;
}

.gate-bar span {
    display: block;
    height: 100%;
    width: 35%;
    background: rgba(53, 255, 122, .85);
    animation: gate-load 1.1s ease-in-out infinite;
}

@keyframes gate-load {
    0% { transform: translateX(-120%); }
    100% { transform: translateX(320%); }
}

/* Subtle Glitch on focus */
@keyframes mini-glitch {
    0% {
        transform: translate(0);
    }

    20% {
        transform: translate(-1px, 1px);
    }

    40% {
        transform: translate(-1px, -1px);
    }

    60% {
        transform: translate(1px, 1px);
    }

    80% {
        transform: translate(1px, -1px);
    }

    100% {
        transform: translate(0);
    }
}

.search-box-outer.glitch-active {
    animation: mini-glitch 0.1s;
    border-color: #1a73e8;
    box-shadow: 0 0 8px rgba(26, 115, 232, 0.2);
}

/* GUMDAK should look like a normal public site (no terminal glow/cursor) */
#gumdak-landing,
#gumdak-landing * {
    text-shadow: none !important;
}

#gumdak-landing,
#gumdak-landing a,
#gumdak-landing button,
#gumdak-landing input {
    cursor: default;
}

#gumdak-landing a,
#gumdak-landing .g-btn,
#gumdak-landing .sign-in-btn,
#gumdak-landing .suggest-item,
#gumdak-landing .voice-ico {
    cursor: pointer;
}

#gumdak-landing #gumdak-search-input {
    cursor: text;
}


/* Tactical Purge game-feel upgrades */
.defense-crosshair {
    position: absolute;
    width: 32px;
    height: 32px;
    border: 1px solid rgba(25, 255, 90, 0.95);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 50;
    box-shadow: 0 0 8px rgba(25, 255, 90, 0.7);
}

.defense-crosshair::before,
.defense-crosshair::after {
    content: "";
    position: absolute;
    background: rgba(25, 255, 90, 0.9);
}

.defense-crosshair::before {
    width: 18px;
    height: 1px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.defense-crosshair::after {
    width: 1px;
    height: 18px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.hit-fx {
    position: absolute;
    transform: translate(-50%, -50%);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 1px;
    pointer-events: none;
    z-index: 55;
    animation: hit-float 0.55s ease-out forwards;
}

.hit-fx.good {
    color: #39ff14;
    text-shadow: 0 0 8px rgba(57, 255, 20, 0.7);
}

.hit-fx.bad {
    color: #ff3b3b;
    text-shadow: 0 0 8px rgba(255, 59, 59, 0.65);
}

@keyframes hit-float {
    0% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -130%) scale(1.08); }
}

.defense-target.anomaly {
    animation: anomaly-pulse 0.9s infinite;
}

@keyframes anomaly-pulse {
    0%, 100% { filter: drop-shadow(0 0 5px rgba(255, 59, 59, 0.55)); }
    50% { filter: drop-shadow(0 0 12px rgba(255, 59, 59, 0.9)); }
}

.defense-target.decoy-hit {
    animation: decoy-hit-fx 0.25s linear;
}

@keyframes decoy-hit-fx {
    0% { transform: scale(1) rotate(0deg); }
    30% { transform: scale(1.12) rotate(-8deg); }
    100% { transform: scale(1) rotate(0deg); }
}


/* Classified document nodes that red mushrooms try to eat */
.data-node {
    position: absolute;
    width: 16px;
    height: 12px;
    border: 1px solid rgba(25, 255, 90, 0.8);
    background: rgba(8, 32, 8, 0.85);
    box-shadow: 0 0 8px rgba(25, 255, 90, 0.45);
    z-index: 9;
}

.data-node::before {
    content: "";
    position: absolute;
    left: 2px;
    right: 2px;
    top: 3px;
    height: 1px;
    background: rgba(25, 255, 90, 0.7);
    box-shadow: 0 3px 0 rgba(25, 255, 90, 0.55), 0 6px 0 rgba(25, 255, 90, 0.35);
}

.data-node.eaten {
    border-color: rgba(255, 59, 59, 0.9);
    box-shadow: 0 0 10px rgba(255, 59, 59, 0.75);
    background: rgba(45, 6, 6, 0.92);
}

/* Tactical Purge Background Upgrade: deep terminal + corruption layers */
.classified-bg-wall {
    background:
        radial-gradient(circle at 15% 12%, rgba(25, 255, 90, 0.08), transparent 30%),
        radial-gradient(circle at 82% 20%, rgba(0, 180, 255, 0.05), transparent 32%),
        linear-gradient(180deg, rgba(0, 18, 10, 0.56) 0%, rgba(0, 0, 0, 0.86) 62%, rgba(0, 0, 0, 0.96) 100%);
    animation: wallDrift 18s linear infinite;
}

.classified-bg-wall::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(90deg, rgba(25, 255, 90, 0.055) 0 1px, transparent 1px 44px),
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.04) 0 1px, transparent 1px 26px);
    opacity: 0.28;
    mix-blend-mode: screen;
    animation: matrixShift 9s linear infinite;
    pointer-events: none;
}

.classified-bg-wall::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg,
            rgba(255, 255, 255, 0.02) 0,
            rgba(255, 255, 255, 0.02) 1px,
            rgba(0, 0, 0, 0) 1px,
            rgba(0, 0, 0, 0) 3px);
    opacity: 0.2;
    animation: scanPulse 2.2s linear infinite;
    pointer-events: none;
}

.archive-chunk {
    display: inline-block;
    transform-origin: left center;
    will-change: transform, opacity, color;
    animation: streamJitter 1.8s steps(2, end) infinite;
}

.archive-chunk.chunk-dim {
    color: rgba(75, 255, 130, 0.18);
}

.archive-chunk.chunk-addr {
    color: rgba(0, 210, 255, 0.24);
}

.archive-chunk.chunk-warn {
    color: rgba(255, 168, 52, 0.3);
    text-shadow: 0 0 6px rgba(255, 118, 0, 0.2);
}

.archive-chunk.chunk-hot {
    color: rgba(255, 70, 70, 0.42);
    text-shadow: 0 0 8px rgba(255, 24, 24, 0.45);
    animation: streamJitter 0.9s steps(2, end) infinite, hotBlink 0.5s steps(2, end) infinite;
}

.classified-bg-wall.wall-danger {
    filter: saturate(1.1) contrast(1.06);
}

.classified-bg-wall.wall-danger::before {
    opacity: 0.36;
}

.classified-bg-wall.wall-danger::after {
    opacity: 0.28;
}

.classified-bg-wall.wall-critical {
    filter: saturate(1.2) contrast(1.13);
}

.classified-bg-wall.wall-critical::before {
    opacity: 0.46;
    animation-duration: 5s;
}

.classified-bg-wall.wall-critical::after {
    opacity: 0.36;
    animation-duration: 1.2s;
}

.classified-bg-wall.wall-critical .archive-chunk {
    animation-duration: 0.6s;
}

.classified-bg-wall.wall-critical .archive-chunk.chunk-warn,
.classified-bg-wall.wall-critical .archive-chunk.chunk-hot {
    text-shadow: 0 0 10px rgba(255, 25, 25, 0.68);
}

@keyframes wallDrift {
    0% { background-position: 0 0, 0 0, 0 0; }
    100% { background-position: 240px 0, -180px 0, 0 0; }
}

@keyframes matrixShift {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-30px, 0, 0); }
}

@keyframes scanPulse {
    0% { opacity: 0.14; }
    50% { opacity: 0.28; }
    100% { opacity: 0.14; }
}

@keyframes streamJitter {
    0%, 100% { transform: translate(0, 0); }
    25% { transform: translate(-0.4px, 0.6px); }
    50% { transform: translate(0.4px, -0.4px); }
    75% { transform: translate(-0.3px, 0.2px); }
}

@keyframes hotBlink {
    0%, 100% { opacity: 0.9; }
    50% { opacity: 0.45; }
}

/* Mission-2 Iris Upgrade: high-tech targeting + lock progress */
.iris-ui-container {
    position: absolute;
    inset: 0;
}

.iris-target {
    position: absolute;
    width: 230px;
    height: 230px;
    transform: translate(-50%, -50%);
    transition: left 0.12s linear, top 0.12s linear, filter 0.18s ease;
    filter: drop-shadow(0 0 10px rgba(25, 255, 90, 0.45));
}

.iris-target::before {
    content: "";
    position: absolute;
    inset: 14%;
    border-radius: 50%;
    border: 1px dashed rgba(25, 255, 90, 0.4);
    animation: rotate-slow 10s linear infinite reverse;
}

.iris-target.locked {
    filter: drop-shadow(0 0 16px rgba(25, 255, 90, 0.8));
}

.iris-target.locked .ring-2,
.iris-target.locked .ring-3 {
    border-color: rgba(80, 255, 140, 0.95);
}

.iris-core-dot {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(120, 255, 170, 0.95);
    box-shadow: 0 0 14px rgba(120, 255, 170, 0.9);
}

.iris-lock-text {
    position: absolute;
    left: 50%;
    top: 14px;
    transform: translateX(-50%);
    font-family: 'Rajdhani', sans-serif;
    font-size: 0.8rem;
    letter-spacing: 2px;
    color: rgba(120, 255, 170, 0.88);
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.35);
    background: rgba(0, 10, 0, 0.45);
    border: 1px solid rgba(25, 255, 90, 0.25);
    padding: 4px 10px;
}

.iris-progress-track {
    position: absolute;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    width: min(460px, 84%);
    height: 8px;
    border: 1px solid rgba(25, 255, 90, 0.35);
    background: rgba(0, 20, 0, 0.4);
    overflow: hidden;
}

.iris-progress-fill {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, rgba(25, 255, 90, 0.35), rgba(25, 255, 90, 0.95));
    box-shadow: 0 0 12px rgba(25, 255, 90, 0.7);
    transition: width 0.12s linear;
}

.scan-hud-v3::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, rgba(25, 255, 90, 0.03) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(25, 255, 90, 0.025) 0 1px, transparent 1px 36px);
    pointer-events: none;
    mix-blend-mode: screen;
    opacity: 0.38;
}

#camera-preview {
    filter: grayscale(0.25) contrast(1.08) brightness(0.9) saturate(0.92);
}

#visual-process-canvas {
    mix-blend-mode: screen;
    opacity: 0.62;
}

#mission-2.auto-scan-mode .scan-frame-outer {
    animation: iris-frame-energy 1.2s ease-in-out infinite;
}

#mission-2.auto-scan-mode #camera-preview {
    filter: grayscale(0.15) contrast(1.12) brightness(0.92) saturate(1.05);
}

#mission-2.auto-scan-mode .iris-progress-fill {
    box-shadow: 0 0 16px rgba(25, 255, 90, 0.85), 0 0 28px rgba(25, 255, 90, 0.5);
}

#mission-2.scan-overdrive .scan-hud-v3::before {
    opacity: 0.64;
}

#mission-2.scan-overdrive .iris-target {
    filter: drop-shadow(0 0 22px rgba(60, 255, 140, 0.95));
}

@keyframes iris-frame-energy {
    0%, 100% {
        box-shadow: inset 0 0 0 1px rgba(25, 255, 90, 0.25), 0 0 24px rgba(25, 255, 90, 0.08);
    }
    50% {
        box-shadow: inset 0 0 0 1px rgba(25, 255, 90, 0.45), 0 0 34px rgba(25, 255, 90, 0.25);
    }
}

/* Mission-2 Heavy UI pass: denser HUD + multi-layer telemetry */
.mission-2-heavy .advanced-scan-area {
    margin: 18px 0 10px;
    border: 1px solid rgba(25, 255, 90, 0.24);
    background: linear-gradient(180deg, rgba(0, 15, 3, 0.72), rgba(0, 0, 0, 0.85));
    padding: 14px;
    box-shadow: inset 0 0 0 1px rgba(25, 255, 90, 0.08), 0 0 30px rgba(0, 255, 120, 0.07);
}

.mission-2-heavy .scan-frame-outer {
    max-width: 980px;
    border-color: rgba(25, 255, 90, 0.35);
    box-shadow: inset 0 0 0 1px rgba(25, 255, 90, 0.16), 0 0 28px rgba(25, 255, 90, 0.09);
}

.quantum-noise-layer,
.diag-grid-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
}

.quantum-noise-layer {
    background:
        radial-gradient(circle at 20% 15%, rgba(25, 255, 90, 0.09), transparent 30%),
        radial-gradient(circle at 82% 25%, rgba(0, 180, 255, 0.08), transparent 35%),
        radial-gradient(circle at 30% 85%, rgba(25, 255, 90, 0.08), transparent 30%);
    mix-blend-mode: screen;
    animation: quantumShift 8s linear infinite;
}

.diag-grid-layer {
    background:
        repeating-linear-gradient(60deg, rgba(25, 255, 90, 0.05) 0 1px, transparent 1px 42px),
        repeating-linear-gradient(-60deg, rgba(25, 255, 90, 0.03) 0 1px, transparent 1px 42px);
    opacity: 0.32;
}

.live-glitch-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.01) 0 1px, transparent 1px 4px);
    opacity: 0;
    mix-blend-mode: screen;
}

.scan-opcode-line {
    position: absolute;
    left: 18px;
    top: 12px;
    z-index: 16;
    font-size: 0.72rem;
    letter-spacing: 1.5px;
    color: rgba(120, 255, 170, 0.95);
    text-shadow: 0 0 8px rgba(25, 255, 90, 0.32);
    padding: 5px 8px;
    border: 1px solid rgba(25, 255, 90, 0.3);
    background: rgba(0, 20, 0, 0.52);
    max-width: 60%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.telemetry-strip {
    position: absolute;
    z-index: 14;
    font-family: 'VT323', monospace;
    font-size: 0.72rem;
    letter-spacing: 1.1px;
    color: rgba(85, 255, 150, 0.64);
    display: flex;
    flex-direction: column;
    gap: 3px;
    background: rgba(0, 10, 0, 0.4);
    border: 1px solid rgba(25, 255, 90, 0.16);
    padding: 7px 9px;
}

.telemetry-strip-left {
    left: 10px;
    top: 14px;
}

.telemetry-strip-right {
    right: 10px;
    top: 14px;
    text-align: right;
}

.scan-runtime-metrics {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.scan-runtime-metrics span {
    border: 1px solid rgba(25, 255, 90, 0.2);
    background: rgba(0, 18, 0, 0.5);
    padding: 7px 8px;
    font-family: 'VT323', monospace;
    font-size: 0.8rem;
    letter-spacing: 1px;
    color: rgba(120, 255, 170, 0.88);
}

.mission-2-heavy .scan-footer-hud {
    margin-top: 14px;
    border-top: 1px solid rgba(25, 255, 90, 0.35);
    padding-top: 10px;
}

.mission-2-heavy .status-scroll {
    font-size: 0.95rem;
}

.iris-progress-percent {
    position: absolute;
    right: 18px;
    bottom: 8px;
    font-family: 'Orbitron', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 1.4px;
    color: rgba(155, 255, 190, 0.95);
    text-shadow: 0 0 10px rgba(25, 255, 90, 0.45);
}

#mission-2.scan-reconfigure .scan-frame-outer {
    transform: translateX(0.4px) skewX(-0.25deg);
    filter: contrast(1.1);
}

#mission-2.scan-reconfigure #visual-process-canvas {
    opacity: 0.85;
}

#mission-2.scan-reconfigure .live-glitch-overlay {
    opacity: 0.75;
}

@keyframes quantumShift {
    0% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: 0.7;
    }
    50% {
        transform: translate3d(-1.2%, 0.8%, 0) scale(1.02);
        opacity: 1;
    }
    100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: 0.7;
    }
}

@media (max-width: 980px) {
    .scan-runtime-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .telemetry-strip {
        display: none;
    }

    .scan-opcode-line {
        max-width: 86%;
        font-size: 0.68rem;
    }
}

/* --- Final Mission-2 CRT Override (highest priority) --- */
#mission-2 .scan-frame-outer.camera-wrap {
    border-radius: 0 !important;
    border: 1px solid rgba(0, 204, 102, 0.72) !important;
    box-shadow: none !important;
    background: #020704 !important;
    transform: translateY(-8px) !important;
    filter: contrast(1.15) brightness(.88) saturate(.85) !important;
    animation: vhsJitter .22s infinite, camFlicker 0.5s infinite !important;
}

#mission-2 #init-terminal-gate {
    display: none !important;
}

#mission-2 .face-guide-overlay {
    position: absolute;
    z-index: 4;
    left: 50%;
    top: 50%;
    width: min(64%, 700px);
    aspect-ratio: 1925 / 1674;
    max-width: none;
    transform: translate(-50%, -50%);
    opacity: 0.58;
    pointer-events: none;
    mix-blend-mode: screen;
    filter: drop-shadow(0 0 10px rgba(0, 204, 102, 0.24));
    background: center / contain no-repeat url('/assets/images/source/face_scan.png');
}

#mission-2 .pose-scan-sweep {
    position: absolute;
    left: 0;
    right: 0;
    top: 16%;
    height: 2px;
    z-index: 9;
    background: linear-gradient(90deg,
            rgba(0, 204, 102, 0),
            rgba(154, 255, 204, 0.96) 50%,
            rgba(0, 204, 102, 0));
    box-shadow: 0 0 10px rgba(80, 255, 158, 0.6);
    opacity: 0;
    pointer-events: none;
}

#mission-2 .pose-scan-sweep.active {
    opacity: 1;
    animation: poseSweepDown 0.24s linear 1;
}

@keyframes poseSweepDown {
    from {
        top: 16%;
        opacity: 0.92;
    }

    to {
        top: 88%;
        opacity: 0;
    }
}

#mission-2 .metrics-panel-left,
#mission-2 .metrics-panel-right,
#mission-2 .telemetry-strip,
#mission-2 .scan-hud-v3,
#mission-2 .v3-scan-line,
#mission-2 #iris-scanner-ui,
#mission-2 .wink-notification-v3 {
    display: none !important;
}

#mission-2 .fa-hud {
    display: none !important;
}

#mission-2 .liveness-overlay {
    align-items: flex-end !important;
    justify-content: center !important;
    padding: 0 20px 36px !important;
}

/* --- Mission-2 Pose UX Upgrade (fixed guide + fixed mission panel) --- */
#mission-2 .pose-top-bar {
    position: absolute;
    z-index: 12;
    left: 18px;
    right: auto;
    width: min(620px, calc(100% - 36px));
    top: 14px;
    border: 1px solid rgba(0, 204, 102, 0.54);
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(4px);
    padding: 8px 12px 6px;
    display: grid;
    gap: 2px;
}

#mission-2 .pose-title-ko {
    font-size: 16px;
    letter-spacing: 0.02em;
    color: rgba(181, 255, 214, 0.97);
    font-weight: 700;
}

#mission-2 .pose-title-ko-strong {
    font-size: 18px;
    letter-spacing: 0.03em;
    color: #9effc4;
    font-weight: 700;
    text-shadow: 0 0 8px rgba(0, 204, 102, 0.26);
}

#mission-2 .pose-title-en {
    font-size: 11px;
    letter-spacing: 0.11em;
    color: rgba(162, 242, 192, 0.86);
}

#mission-2 .pose-guide-line {
    font-size: 13px;
    letter-spacing: 0.02em;
    color: rgba(182, 255, 213, 0.92);
}

#mission-2 .pose-guide-line.subtle {
    display: none;
}

#mission-2 .pose-live-meta {
    margin-top: 3px;
    display: flex;
    gap: 14px;
    align-items: center;
    font-size: 10px;
    letter-spacing: 0.08em;
    color: rgba(149, 235, 181, 0.9);
}

#mission-2 .pose-rec-dot {
    color: #ff6d6d;
    text-shadow: 0 0 7px rgba(255, 61, 61, 0.4);
}

#mission-2 .pose-mission-panel {
    position: absolute;
    z-index: 12;
    left: 18px;
    right: auto;
    width: min(720px, calc(100% - 36px));
    bottom: 12px;
    border: 1px solid rgba(0, 204, 102, 0.56);
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(3px);
    padding: 8px 12px;
    display: grid;
    gap: 6px;
}

#mission-2 .pose-mission-title {
    font-size: 11px;
    letter-spacing: 0.12em;
    color: rgba(169, 247, 198, 0.94);
    border-bottom: 1px dashed rgba(0, 204, 102, 0.24);
    padding-bottom: 6px;
}

#mission-2 .pose-checklist {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
}

#mission-2 .pose-check {
    font-size: 11px;
    letter-spacing: 0.02em;
    color: rgba(163, 245, 193, 0.92);
    white-space: nowrap;
}

#mission-2 .pose-hold-wrap {
    display: grid;
    gap: 4px;
    margin-top: 2px;
}

#mission-2 .pose-hold-text {
    font-size: 11px;
    letter-spacing: 0.08em;
    color: rgba(176, 251, 205, 0.95);
}

#mission-2 .pose-hold-track {
    height: 7px;
    border: 1px solid rgba(0, 204, 102, 0.36);
    background: rgba(0, 18, 8, 0.75);
    overflow: hidden;
}

#mission-2 .pose-hold-fill {
    display: block;
    width: 0%;
    height: 100%;
    background: repeating-linear-gradient(90deg,
            rgba(188, 255, 217, 0.98) 0 8px,
            rgba(59, 229, 131, 0.92) 8px 12px);
    box-shadow: 0 0 8px rgba(56, 228, 128, 0.46);
    transition: width 0.06s linear;
}

#mission-2 .pose-stage-line {
    font-size: 13px;
    color: rgba(172, 251, 201, 0.98);
    letter-spacing: 0.03em;
}

#mission-2 .pose-next-line {
    font-size: 11px;
    color: rgba(148, 237, 181, 0.82);
    letter-spacing: 0.06em;
    display: none;
}

#mission-2 .pose-capture-cue {
    font-size: 11px;
    letter-spacing: 0.11em;
    color: rgba(200, 255, 225, 0.95);
    border: 1px dashed rgba(0, 204, 102, 0.34);
    background: rgba(0, 18, 8, 0.66);
    padding: 5px 8px;
    text-shadow: 0 0 8px rgba(62, 230, 132, 0.38);
}

#mission-2 .fa-hud {
    display: none !important;
}

#mission-2 .fa-log {
    max-height: 92px;
    overflow: hidden;
    font-size: 11px !important;
    line-height: 1.25 !important;
}

#mission-2 .liveness-overlay {
    z-index: 11 !important;
    inset: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

#mission-2 .liveness-overlay.hidden {
    display: none !important;
}

#mission-2 .access-granted {
    bottom: 148px !important;
    left: 50% !important;
    transform: translateX(-50%);
    text-align: center;
    font-size: 18px !important;
    padding: 10px 16px;
    background: rgba(0, 20, 10, 0.82);
    border: 1px solid rgba(0, 204, 102, 0.6);
}

@media (max-width: 980px) {
    #mission-2 .pose-title-ko {
        font-size: 14px;
    }

    #mission-2 .pose-title-ko-strong {
        font-size: 17px;
    }

    #mission-2 .pose-guide-line {
        font-size: 11px;
    }

    #mission-2 .pose-check {
        font-size: 12px;
    }

    #mission-2 .pose-stage-line {
        font-size: 12px;
    }

    #mission-2 .fa-hud {
        bottom: 246px !important;
    }
}

/* --- Mission 1.5 DESYNC_RECOVERY_PROTOCOL --- */
#mission-1-5.love-auth-mission {
    padding: 34px 34px 26px;
    background: radial-gradient(circle at center, rgba(5, 22, 12, 0.35), rgba(1, 4, 2, 0.98));
}

#mission-1-5 .love-auth-shell {
    position: relative;
    z-index: 8;
    height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: 12px;
    border: 1px solid rgba(12, 154, 72, 0.34);
    background: rgba(0, 7, 3, 0.78);
    padding: 14px;
}

#mission-1-5 .love-auth-top {
    border: 1px dashed rgba(34, 169, 88, 0.42);
    background: rgba(1, 16, 8, 0.72);
    padding: 10px 12px;
}

#mission-1-5 .love-auth-title {
    color: var(--terminal-bright);
    font-size: 0.92rem;
    letter-spacing: 0.16em;
    font-weight: 700;
}

#mission-1-5 .love-auth-hud-grid {
    margin-top: 7px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    font-size: 0.77rem;
    letter-spacing: 0.08em;
    color: rgba(133, 255, 187, 0.9);
}

#mission-1-5 .love-auth-main {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr);
    gap: 12px;
}

#mission-1-5 .love-log-pane,
#mission-1-5 .love-key-pane {
    border: 1px solid rgba(13, 140, 65, 0.38);
    background: rgba(0, 10, 4, 0.77);
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#mission-1-5 .love-pane-title {
    padding: 8px 10px;
    border-bottom: 1px dashed rgba(58, 177, 103, 0.36);
    color: rgba(146, 252, 189, 0.9);
    font-size: 0.73rem;
    letter-spacing: 0.12em;
}

#mission-1-5 #defense-canvas.love-log-list {
    flex: 1;
    min-height: 0;
    margin: 0;
    border: none;
    overflow: auto;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    cursor: default;
}

#mission-1-5 #defense-canvas.recovery-field {
    flex: 1;
    min-height: 0;
    margin: 0;
    border: none;
    overflow: hidden;
    position: relative;
    background:
        radial-gradient(circle at 20% 18%, rgba(22, 94, 53, 0.2), transparent 32%),
        radial-gradient(circle at 78% 64%, rgba(55, 20, 20, 0.16), transparent 34%),
        rgba(0, 9, 4, 0.92);
}

#mission-1-5 #defense-canvas.recovery-field::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        rgba(0, 255, 120, 0.03) 0px,
        rgba(0, 255, 120, 0.03) 1px,
        transparent 1px,
        transparent 4px
    );
    pointer-events: none;
}

#mission-1-5 #defense-canvas.recovery-field.phase-final {
    filter: contrast(1.08) saturate(1.08);
}

#mission-1-5 .mission15-countdown {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Press Start 2P', 'IBM Plex Mono', monospace;
    font-size: clamp(64px, 16vw, 160px);
    line-height: 1;
    color: rgba(255, 118, 118, 0.95);
    text-shadow:
        0 0 12px rgba(255, 82, 82, 0.88),
        0 0 36px rgba(255, 82, 82, 0.62);
    pointer-events: none;
    z-index: 30;
    opacity: 0;
}

#mission-1-5 .mission15-countdown.pulse {
    animation: mission15CountdownPop 0.92s ease-out forwards;
}

#mission-1-5 .recovery-unit {
    position: absolute;
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease, filter 0.3s ease, opacity 0.3s ease;
    cursor: pointer;
}

#mission-1-5 .recovery-unit img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    image-rendering: auto;
    filter: drop-shadow(0 0 8px rgba(21, 219, 114, 0.28));
}

#mission-1-5 .recovery-unit.corrupted img {
    filter: drop-shadow(0 0 10px rgba(255, 54, 54, 0.7)) hue-rotate(-15deg) saturate(1.15);
}

#mission-1-5 .recovery-unit.normal img {
    filter: drop-shadow(0 0 10px rgba(86, 255, 159, 0.55)) saturate(1.05);
}

#mission-1-5 .recovery-unit.decoy img {
    filter: drop-shadow(0 0 10px rgba(255, 204, 102, 0.82)) hue-rotate(18deg) saturate(1.12) brightness(0.92);
}

#mission-1-5 .recovery-unit.decoy {
    outline: 2px dashed rgba(255, 205, 115, 0.92);
    outline-offset: 2px;
    animation: decoyBlinkFx 0.78s steps(2, end) infinite;
}

#mission-1-5 .recovery-unit.decoy::before {
    content: "DECOY";
    position: absolute;
    right: -10px;
    bottom: -10px;
    padding: 1px 6px;
    border: 1px solid rgba(255, 203, 117, 0.92);
    background: rgba(42, 27, 2, 0.9);
    color: rgba(255, 227, 165, 0.98);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    pointer-events: none;
}

#mission-1-5 .recovery-unit .unit-error-tag {
    position: absolute;
    left: 50%;
    top: -30px;
    transform: translateX(-50%);
    min-width: 132px;
    max-width: 260px;
    padding: 2px 6px;
    border: 1px solid rgba(255, 88, 88, 0.55);
    background: rgba(44, 6, 6, 0.78);
    color: rgba(255, 164, 164, 0.96);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: center;
    white-space: normal;
    line-height: 1.25;
    text-shadow: 0 0 6px rgba(255, 72, 72, 0.45);
    pointer-events: none;
}

#mission-1-5 .recovery-unit.decoy .unit-error-tag {
    border-style: dashed;
    border-color: rgba(255, 205, 120, 0.92);
    background: rgba(52, 31, 3, 0.9);
    color: rgba(255, 224, 158, 0.99);
    text-shadow: 0 0 8px rgba(255, 188, 66, 0.35);
    opacity: 1;
}

#mission-1-5 .recovery-unit.is-target {
    transform: translate(-50%, -50%) scale(1.06);
}

#mission-1-5 .recovery-unit.is-target .unit-error-tag {
    border-color: rgba(160, 255, 199, 0.86);
    background: rgba(1, 25, 12, 0.86);
    color: rgba(201, 255, 224, 0.98);
    text-shadow: 0 0 8px rgba(69, 238, 139, 0.5);
}

#mission-1-5 .recovery-unit.restoring {
    animation: recoveryUnitPulse 0.64s ease;
}

#mission-1-5 .recovery-unit.purge-burst {
    animation: purgeBurstFx 0.22s ease-out forwards;
}

#mission-1-5 .recovery-unit.decoy-hit {
    animation: decoyHitFx 0.2s ease-out forwards;
}

#mission-1-5 .recovery-unit.trace-lock {
    border: 1px solid rgba(145, 255, 204, 0.9);
    background: radial-gradient(circle at 50% 50%, rgba(104, 255, 196, 0.22), rgba(0, 0, 0, 0.2));
    box-shadow: 0 0 15px rgba(125, 255, 206, 0.32);
    cursor: var(--cursor-mushroom), pointer;
}

#mission-1-5 .recovery-unit.trace-lock::after {
    content: "";
    position: absolute;
    inset: -7px;
    border: 1px dashed rgba(148, 255, 212, 0.62);
    border-radius: 50%;
    animation: tracePulseFx 0.7s linear infinite;
}

#mission-1-5 .recovery-unit.trace-lock .unit-error-tag {
    border-color: rgba(146, 255, 212, 0.9);
    background: rgba(2, 30, 16, 0.88);
    color: rgba(205, 255, 231, 0.98);
}

@keyframes recoveryUnitPulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.9;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.15);
        opacity: 1;
        filter: brightness(1.15);
    }
    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}

@keyframes decoyBlinkFx {
    0%, 100% {
        opacity: 0.96;
    }
    50% {
        opacity: 0.74;
    }
}

@keyframes purgeBurstFx {
    0% {
        transform: translate(-50%, -50%) scale(1);
        filter: brightness(1.08);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.32);
        filter: brightness(1.35);
        opacity: 0;
    }
}

@keyframes decoyHitFx {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(0.86);
        opacity: 0;
    }
}

@keyframes tracePulseFx {
    0% {
        transform: scale(0.9);
        opacity: 0.3;
    }
    100% {
        transform: scale(1.18);
        opacity: 0;
    }
}

@keyframes mission15CountdownPop {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.45);
        filter: blur(3px);
    }
    20% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.16);
        filter: blur(0);
    }
    100% {
        opacity: 0.12;
        transform: translate(-50%, -50%) scale(0.96);
    }
}

#mission-1-5 .love-log-line {
    width: 100%;
    border: 1px solid transparent;
    background: transparent;
    text-align: left;
    color: rgba(108, 206, 145, 0.85);
    font-family: 'IBM Plex Mono', 'JetBrains Mono', monospace;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    padding: 4px 6px;
    display: grid;
    grid-template-columns: 74px 1fr auto;
    gap: 8px;
}

#mission-1-5 .love-log-line .love-line-time {
    opacity: 0.65;
}

#mission-1-5 .love-log-line .love-line-tag {
    opacity: 0.28;
}

#mission-1-5 .love-log-line.is-corrupted {
    border-color: rgba(221, 67, 67, 0.72);
    color: rgba(255, 117, 117, 0.95);
    background: rgba(66, 5, 5, 0.46);
}

#mission-1-5 .love-log-line.is-corrupted .love-line-tag {
    opacity: 1;
    color: rgba(255, 130, 130, 0.98);
}

#mission-1-5 .love-log-line.is-selected {
    border-color: rgba(76, 234, 139, 0.8);
    background: rgba(8, 40, 21, 0.74);
    color: rgba(176, 255, 206, 0.98);
}

#mission-1-5 .love-log-line.is-recovered {
    color: rgba(114, 220, 153, 0.94);
    border-color: rgba(45, 154, 92, 0.38);
}

#mission-1-5 .love-log-footer {
    border-top: 1px dashed rgba(45, 160, 93, 0.35);
    padding: 7px 10px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
}

#mission-1-5 .love-key-pane {
    padding-bottom: 8px;
}

#mission-1-5 .love-key-status {
    margin: 10px;
    color: rgba(196, 255, 218, 0.97);
    font-size: 1.1rem;
    letter-spacing: 0.2em;
}

#mission-1-5 .love-key-guide {
    margin: 0 10px 8px;
    color: rgba(159, 225, 187, 0.86);
    font-size: 0.78rem;
    line-height: 1.35;
}

#mission-1-5 .love-required-wrap,
#mission-1-5 .love-validation-wrap {
    margin: 0 10px 8px;
    border: 1px dashed rgba(55, 169, 103, 0.36);
    padding: 8px;
    background: rgba(1, 15, 8, 0.62);
}

#mission-1-5 .love-required-label {
    font-size: 0.67rem;
    opacity: 0.72;
    letter-spacing: 0.14em;
}

#mission-1-5 .love-required-text {
    margin-top: 5px;
    color: rgba(197, 255, 218, 0.95);
    font-size: 0.9rem;
    line-height: 1.25;
}

#mission-1-5 .love-validation-track {
    margin-top: 6px;
    height: 8px;
    border: 1px solid rgba(43, 165, 89, 0.43);
    background: rgba(0, 7, 2, 0.85);
}

#mission-1-5 .love-validation-track.overheat-mode {
    border-color: rgba(255, 108, 108, 0.8);
    background: rgba(28, 4, 4, 0.88);
    box-shadow: 0 0 10px rgba(255, 78, 78, 0.25);
}

#mission-1-5 #love-validation-fill {
    display: block;
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, rgba(40, 181, 97, 0.75), rgba(130, 255, 184, 0.92));
    transition: width 0.1s linear;
}

#mission-1-5 .love-validation-track.overheat-mode #love-validation-fill {
    background: repeating-linear-gradient(90deg,
            rgba(255, 198, 198, 0.92) 0 8px,
            rgba(255, 88, 88, 0.95) 8px 14px);
    box-shadow: 0 0 8px rgba(255, 82, 82, 0.45);
}

#mission-1-5 .love-validation-percent {
    margin-top: 4px;
    text-align: right;
    font-size: 0.72rem;
    color: rgba(170, 255, 204, 0.9);
}

#mission-1-5 .love-event-feed {
    margin: 0 10px 8px;
    border: 1px solid rgba(28, 131, 71, 0.45);
    background: rgba(0, 10, 4, 0.84);
    min-height: 116px;
    max-height: 152px;
    overflow: auto;
    padding: 6px 8px;
    font-size: 0.7rem;
    line-height: 1.35;
    color: rgba(126, 238, 171, 0.86);
}

#mission-1-5 .love-event-line {
    margin: 0 0 3px;
    white-space: pre-wrap;
}

#mission-1-5 .love-event-line.warn {
    color: rgba(255, 145, 145, 0.94);
}

#mission-1-5 .love-event-line.ok {
    color: rgba(178, 255, 209, 0.98);
}

#mission-1-5 .love-mini-stats {
    margin: 0 10px;
    display: grid;
    gap: 4px;
    font-size: 0.75rem;
    letter-spacing: 0.09em;
}

#mission-1-5 .love-input-bar {
    border: 1px solid rgba(19, 143, 69, 0.37);
    background: rgba(0, 12, 4, 0.76);
    padding: 10px 12px;
    display: block;
}

#mission-1-5 .love-input-guide {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.45;
    letter-spacing: 0.08em;
    color: rgba(149, 234, 186, 0.88);
}

#mission-1-5 .love-input-label {
    font-size: 0.86rem;
    letter-spacing: 0.16em;
    color: rgba(160, 255, 201, 0.95);
}

#mission-1-5 .love-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(59, 194, 112, 0.72);
    color: rgba(198, 255, 220, 0.98);
    font-family: 'IBM Plex Mono', 'JetBrains Mono', monospace;
    font-size: 0.98rem;
    padding: 6px 4px;
    outline: none;
}

#mission-1-5 .love-input:disabled {
    opacity: 0.55;
}

#mission-1-5 .trace-confirm-card {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(120, 247, 176, 0.72);
    background: rgba(0, 14, 7, 0.88);
    color: rgba(198, 255, 223, 0.98);
    font-size: 1rem;
    letter-spacing: 0.14em;
    padding: 14px 18px;
    text-shadow: 0 0 10px rgba(85, 236, 147, 0.36);
}

#mission-1-5 .love-result-card {
    max-width: 800px;
}

#mission-1-5 .love-retry-btn {
    margin-top: 14px;
    min-width: 210px;
    border: 1px solid rgba(115, 237, 161, 0.7);
    background: rgba(3, 26, 14, 0.96);
    color: rgba(208, 255, 228, 0.95);
    font-family: 'IBM Plex Mono', 'JetBrains Mono', monospace;
    letter-spacing: 0.08em;
    padding: 8px 13px;
}

#mission-1-5 .love-retry-btn:hover {
    background: rgba(13, 45, 26, 0.98);
}

#mission-1-5 .love-briefing-modal {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: grid;
    place-items: center;
    background: rgba(0, 6, 2, 0.76);
}

#mission-1-5 .love-briefing-card {
    width: min(680px, 90vw);
    border: 1px solid rgba(0, 204, 102, 0.5);
    outline: 1px solid rgba(0, 204, 102, 0.2);
    outline-offset: -6px;
    background: rgba(1, 14, 8, 0.96);
    padding: 14px;
    box-shadow: none;
}

#mission-1-5 .love-briefing-title {
    font-size: 0.9rem;
    letter-spacing: 0.14em;
    color: rgba(255, 138, 138, 0.96);
    border-bottom: 1px dashed rgba(0, 204, 102, 0.36);
    padding-bottom: 8px;
}

#mission-1-5 .love-briefing-body {
    margin-top: 12px;
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 12px;
    align-items: center;
}

#mission-1-5 .love-briefing-threat {
    width: 84px;
    height: 84px;
    object-fit: contain;
    filter: drop-shadow(0 0 12px rgba(255, 66, 66, 0.72));
}

#mission-1-5 .love-briefing-copy {
    display: grid;
    gap: 4px;
    font-size: 0.8rem;
    line-height: 1.38;
    color: rgba(160, 235, 189, 0.95);
}

#mission-1-5 .love-briefing-copy > div:first-child {
    color: rgba(255, 168, 168, 0.95);
}

#mission-1-5 .love-briefing-start {
    margin-top: 14px;
    min-width: 270px;
    border: 1px solid rgba(88, 219, 149, 0.74);
    background: rgba(0, 26, 13, 0.96);
    color: rgba(204, 255, 226, 0.96);
    padding: 8px 14px;
    letter-spacing: 0.11em;
    font-family: 'IBM Plex Mono', 'JetBrains Mono', monospace;
}

#mission-1-5 .love-briefing-start:hover {
    background: rgba(5, 40, 21, 0.98);
}

@media (max-width: 1100px) {
    #mission-1-5 .love-auth-main {
        grid-template-columns: 1fr;
    }

    #mission-1-5 .love-event-feed {
        max-height: 118px;
    }

    #mission-1-5 .love-briefing-body {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }
}

/* --- Mission Identity: At-a-Glance Compression --- */
#mission-identity-card .agent-record-system {
    height: min(92vh, 980px);
    min-height: 0;
    padding: 12px 16px 12px;
}

#mission-identity-card .record-auth-banner {
    margin-bottom: 5px;
    padding: 4px 8px;
    font-size: 0.58rem;
    opacity: 0.72;
}

#mission-identity-card .identity-approval-banner {
    padding: 6px 9px;
    margin-bottom: 7px;
}

#mission-identity-card .approval-line {
    font-size: 0.86rem;
    min-height: 1.05em;
    line-height: 1.02;
}

#mission-identity-card .identity-verified-copy {
    margin-top: 3px;
    padding-top: 4px;
    font-size: 0.72rem;
}

#mission-identity-card .approval-meta-grid {
    margin-top: 4px;
    gap: 3px 8px;
    font-size: 0.66rem;
}

#mission-identity-card .record-header {
    margin-bottom: 8px;
    padding-bottom: 7px;
    gap: 12px;
}

#mission-identity-card .header-seal {
    width: 48px;
    height: 48px;
}

#mission-identity-card .h-main {
    font-size: 1.08rem;
    letter-spacing: 2px;
}

#mission-identity-card .h-sub {
    font-size: 0.62rem;
    letter-spacing: 1.3px;
}

#mission-identity-card .header-meta {
    font-size: 0.68rem;
    gap: 2px;
}

#mission-identity-card .record-body {
    grid-template-columns: minmax(0, 1fr) 344px;
    gap: 12px;
    overflow: hidden;
}

#mission-identity-card .record-left {
    gap: 7px;
}

#mission-identity-card .file-number-line {
    font-size: 0.9rem;
    margin-bottom: 3px;
    padding-bottom: 5px;
}

#mission-identity-card .record-section-title {
    margin: 6px 0 3px;
    font-size: 0.75rem;
    letter-spacing: 1.1px;
}

#mission-identity-card .identity-log-pre {
    font-size: 0.78rem;
    line-height: 1.42;
    letter-spacing: 0.35px;
    padding: 9px 11px;
    max-height: 152px;
    overflow: auto;
}

#mission-identity-card #identity-profile-log {
    max-height: 110px;
}

#mission-identity-card #identity-loyalty-log {
    max-height: 110px;
}

#mission-identity-card .record-right {
    display: grid;
    grid-template-rows: auto auto auto;
    align-content: start;
    gap: 8px;
}

#mission-identity-card .mugshot-frame {
    order: 1;
}

#mission-identity-card .approval-status-panel {
    order: 2;
}

#mission-identity-card .biometric-zone {
    order: 3;
}

#mission-identity-card .approval-status-panel {
    padding: 6px 8px;
}

#mission-identity-card .photo-area {
    height: 288px;
}

#mission-identity-card .photo-file-id,
#mission-identity-card .pvo-kicker,
#mission-identity-card .pvo-line {
    font-size: 0.66rem;
}

#mission-identity-card .biometric-zone {
    padding: 7px 8px;
}

#mission-identity-card .fingerprint-scan {
    width: 62px;
    height: 62px;
}

#mission-identity-card .bio-hash-lines {
    margin-top: 6px;
    padding-top: 6px;
    font-size: 0.56rem;
    line-height: 1.35;
}

#mission-identity-card .record-footer {
    margin-top: 10px;
    padding-top: 8px;
}

#mission-identity-card .footer-status {
    font-size: 0.54rem;
    max-width: 54ch;
}

#mission-identity-card .hold-gate-wrap {
    min-width: 292px;
}

#mission-identity-card .btn-dossier-confirm.hold-gate-btn {
    min-width: 292px;
    height: 48px;
}

#mission-identity-card .gate-hold-label {
    font-size: 0.8rem;
    letter-spacing: 1px;
}

#mission-identity-card .gate-hold-hint {
    font-size: 0.9rem;
}

@media (max-height: 880px) {
    #mission-identity-card .agent-record-system {
        height: min(92vh, 900px);
        padding: 12px 14px 10px;
    }

    #mission-identity-card .photo-area {
        height: 236px;
    }

    #mission-identity-card .identity-log-pre {
        max-height: 124px;
    }

    #mission-identity-card #identity-profile-log {
        max-height: 96px;
    }
}
