/* @theme id:terminal-green | name:Terminal Green | accent:#39ff88 | tag:Retro */

[data-theme="terminal-green"] {
    --accent: #39ff88;
    --accent-2: #9affbd;
    --enter: animRise;
    --enter-dur: .38s;
    --theme-fx-opacity: .9;
    --theme-fx-light-opacity: .8;
}

[data-theme="terminal-green"] body {
    font-family: "IBM Plex Mono", Consolas, monospace;
}

[data-theme="terminal-green"][data-mode="dark"] {
    --bg: #030806; --bg-2: #07100b; --bg-3: #0b1a11; --card: #08130d;
    --border: #173c27; --text: #d9ffe6; --text-dim: #8ecba3; --text-mut: #527962;
    --shadow: 0 12px 34px rgba(0, 0, 0, .48);
}

[data-theme="terminal-green"][data-mode="light"] {
    --bg: #cbd7cf; --bg-2: #dce5df; --bg-3: #bfcfc5; --card: #d3dfd7;
    --border: #8da494; --text: #203a29; --text-dim: #365740; --text-mut: #45614e;
    --shadow: 0 8px 24px rgba(16, 65, 34, .1);
}

[data-theme="terminal-green"] .theme-fx::before {
    content: "";
    position: absolute;
    inset: -32px;
    pointer-events: none;
    background-image: repeating-linear-gradient(
        0deg,
        transparent 0,
        transparent 3px,
        color-mix(in srgb, var(--accent) 5%, transparent) 4px
    );
    opacity: .5;
    background-position: 0 0;
    animation: terminalScan 9s linear infinite;
}

[data-theme="terminal-green"] .theme-fx::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 58%);
    animation: terminalGlow 6s ease-in-out infinite;
}

[data-theme="terminal-green"][data-mode="light"] .theme-fx::before { opacity: .22; }
[data-theme="terminal-green"][data-mode="light"] .theme-fx::after { opacity: .45; }

[data-theme="terminal-green"] .theme-terminal {
    display: block;
    position: absolute;
    right: clamp(18px, 4vw, 72px);
    bottom: clamp(24px, 12vh, 120px);
    width: min(440px, calc(100vw - 36px));
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--border));
    border-radius: 10px;
    background: color-mix(in srgb, var(--bg-2) 92%, transparent);
    color: var(--accent-2);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
    font: 500 12px/1.9 "IBM Plex Mono", Consolas, monospace;
}
[data-theme="terminal-green"] .theme-terminal-title {
    display: block;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
    color: var(--text-dim);
    font-size: 10px;
    letter-spacing: .08em;
}
[data-theme="terminal-green"] .theme-terminal-line {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    animation: terminalType .8s calc(var(--terminal-line) * .3s) steps(26, end) both;
}
[data-theme="terminal-green"] .theme-terminal-cursor {
    display: inline-block;
    margin-top: 6px;
    animation: terminalCursor 1.1s steps(1) infinite;
}
@keyframes terminalType {
    from { clip-path: inset(0 100% 0 0); }
    to { clip-path: inset(0); }
}

@keyframes terminalGlow {
    0%, 100% { opacity: .55; }
    50% { opacity: .9; }
}

@keyframes terminalScan {
    to { transform: translate3d(0, 32px, 0); }
}

[data-theme="terminal-green"] .brand .name,
[data-theme="terminal-green"] .mono,
[data-theme="terminal-green"] table th,
[data-theme="terminal-green"] .badge {
    font-family: "Cascadia Mono", "IBM Plex Mono", Consolas, monospace;
}

[data-theme="terminal-green"] .brand .name {
    color: var(--accent-2);
    text-shadow: 0 0 14px color-mix(in srgb, var(--accent) 45%, transparent);
}

[data-theme="terminal-green"] .brand .name::after {
    content: "_";
    color: var(--accent);
    animation: terminalCursor 1.05s steps(1) infinite;
}

@keyframes terminalCursor {
    50% { opacity: 0; }
}

[data-theme="terminal-green"] .sidebar {
    border-right-color: color-mix(in srgb, var(--accent) 28%, var(--border));
}

[data-theme="terminal-green"] .nav-item.active {
    background: color-mix(in srgb, var(--accent) 11%, transparent);
    box-shadow: inset 3px 0 0 var(--accent), 0 0 18px -10px var(--accent);
    animation: terminalSignal 2.6s ease-in-out infinite;
}

@keyframes terminalSignal {
    0%, 100% { text-shadow: none; }
    50% { text-shadow: 0 0 9px color-mix(in srgb, var(--accent) 55%, transparent); }
}

[data-theme="terminal-green"] .card,
[data-theme="terminal-green"] .store-card,
[data-theme="terminal-green"] .modal {
    border-color: color-mix(in srgb, var(--accent) 22%, var(--border));
}

[data-theme="terminal-green"] .btn-primary {
    background: linear-gradient(110deg, var(--accent) 0 42%, var(--accent-2) 50%, var(--accent) 58% 100%);
    background-size: 240% 100%;
    border-color: var(--accent);
    color: #031008;
    font-family: "IBM Plex Mono", Consolas, monospace;
    font-weight: 800;
    text-transform: uppercase;
    animation: terminalCommand 4.5s linear infinite;
}

[data-theme="terminal-green"] .btn-primary:hover {
    background: var(--accent-2);
    box-shadow: 0 0 18px -5px var(--accent);
}

@keyframes terminalCommand {
    to { background-position: -240% 0; }
}

[data-theme="terminal-green"] input:focus,
[data-theme="terminal-green"] select:focus,
[data-theme="terminal-green"] textarea:focus {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 24%, transparent);
}