/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  GeoIntel â€” Precision Geolocation Intelligence Platform   */
/*  Design System v3 Â· Black White Â· Spy Mode Â· Cinematic   */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

:root {
    /* Intelligence Palette — Teal Accent on Black */
    --primary: #ffffff;
    --primary-dim: #b0b0b0;
    --primary-glow: rgba(255, 255, 255, 0.14);
    --primary-soft: rgba(255, 255, 255, 0.06);
    --accent-teal: #00e5c3;
    --accent-teal-dim: #00b89a;
    --accent-teal-glow: rgba(0, 229, 195, 0.25);
    --accent-teal-soft: rgba(0, 229, 195, 0.08);
    --accent-purple: #a78bfa;
    --accent-pink: #f472b6;
    --accent-rose: #fb7185;
    --accent-amber: #fbbf24;
    --accent-indigo: #818cf8;
    --accent-cyan: #00e5c3;
    --accent-emerald: #34d399;
    --gradient-primary: linear-gradient(135deg, #00e5c3 0%, #00b4d8 50%, #7c3aed 100%);
    --gradient-vibrant: linear-gradient(135deg, #00e5c3 0%, #3b82f6 100%);
    --gradient-warm: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
    --gradient-cool: linear-gradient(135deg, #00e5c3 0%, #06b6d4 100%);
    --gradient-hero: linear-gradient(135deg, #ffffff 0%, #00e5c3 40%, #0ea5e9 100%);
    --gradient-neon: linear-gradient(135deg, #00e5c3 0%, #a78bfa 100%);

    --dark-bg: #000000;
    --dark-surface: #080808;
    --dark-card: #0d0d0d;
    --dark-border: #1a1a1a;
    --dark-hover: #141414;
    --text-primary: #f0f0f0;
    --text-secondary: #999999;
    --text-muted: #555555;
    --success: #34d399;
    --warning: #fbbf24;
    --danger: #f87171;

    /* Typography */
    --font-sans: 'DM Sans', system-ui, -apple-system, sans-serif;
    --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

    /* Effects */
    --ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);
    --glass-bg: rgba(10, 10, 10, 0.72);
    --glass-border: rgba(26, 26, 26, 0.6);
    --glass-blur: blur(28px) saturate(1.4);
    --card-shadow: 0 4px 32px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.04);
    --card-hover-shadow: 0 20px 60px rgba(0, 0, 0, 0.45), 0 0 50px rgba(255, 255, 255, 0.06), 0 0 0 1px rgba(255, 255, 255, 0.1);
    --glow-indigo: 0 0 30px rgba(129, 140, 248, 0.2);
    --glow-purple: 0 0 30px rgba(167, 139, 250, 0.2);
    --glow-pink: 0 0 30px rgba(244, 114, 182, 0.2);
    --glow-cyan: 0 0 30px rgba(0, 229, 195, 0.25);
}

/* ── View Transitions API (smooth morph) ── */
@view-transition { navigation: auto; }
::view-transition-old(root) {
    animation: vt-fade-out 0.35s cubic-bezier(0.4, 0, 0.2, 1) both;
}
::view-transition-new(root) {
    animation: vt-fade-in 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both;
}
@keyframes vt-fade-out {
    0%   { opacity: 1; transform: scale(1) translateY(0); filter: blur(0); }
    100% { opacity: 0; transform: scale(0.98) translateY(-8px); filter: blur(6px); }
}
@keyframes vt-fade-in {
    0%   { opacity: 0; transform: scale(1.01) translateY(8px); filter: blur(6px); }
    60%  { filter: blur(1px); }
    100% { opacity: 1; transform: scale(1) translateY(0); filter: blur(0); }
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-sans);
    font-size: clamp(14px, 0.9vw + 12px, 16px);
    background: var(--dark-bg);
    color: var(--text-primary);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-image:
        radial-gradient(ellipse 80% 50% at 10% 0%, rgba(255, 255, 255, 0.05), transparent 55%),
        radial-gradient(ellipse 60% 40% at 90% 100%, rgba(255, 255, 255, 0.04), transparent 50%),
        radial-gradient(ellipse 50% 30% at 50% 50%, rgba(255, 255, 255, 0.02), transparent 60%);
}

/* â”€â”€ Scrollbar â”€â”€ */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--dark-border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #2a2a2a; }

/* â”€â”€ Noise Texture â”€â”€ */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.018;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* ── Cross-page UI polish: shared rhythm for public pages ── */
:where(a, button, input, select, textarea, [role="button"]) {
    -webkit-tap-highlight-color: transparent;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 2px solid var(--accent-teal);
    outline-offset: 3px;
    box-shadow: 0 0 0 5px rgba(0, 229, 195, 0.12);
}

:where(button, .btn, .btn-primary, .btn-secondary, .btn-action, .action-btn, .nav-link, .tool-btn) {
    min-height: 42px;
    touch-action: manipulation;
}

:where(.btn, .btn-primary, .btn-secondary, .btn-action, .action-btn, .tool-btn, .upload-btn, .cta-btn) {
    border-radius: 8px;
    transition: transform 180ms var(--ease-smooth), border-color 180ms var(--ease-smooth), background 180ms var(--ease-smooth), box-shadow 180ms var(--ease-smooth), color 180ms var(--ease-smooth);
}

:where(.btn, .btn-primary, .btn-secondary, .btn-action, .action-btn, .tool-btn, .upload-btn, .cta-btn):active {
    transform: translateY(1px) scale(0.99);
}

:where(input, select, textarea) {
    color-scheme: dark;
    border-radius: 8px;
}

:where(input, select, textarea)::placeholder {
    color: rgba(255, 255, 255, 0.32);
}

:where(.card, .glass-card, .feature-card, .pricing-card, .dashboard-card, .api-card, .memory-card, .history-card, .security-card) {
    border-radius: 8px;
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 38px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

:where(.card, .glass-card, .feature-card, .pricing-card, .dashboard-card, .api-card, .memory-card, .history-card, .security-card):hover {
    border-color: rgba(0, 229, 195, 0.18);
}

:where(table) {
    border-collapse: separate;
    border-spacing: 0;
}

:where(img, video, canvas, svg) {
    max-width: 100%;
}

@media (max-width: 768px) {
    body { font-size: 16px; }
    :where(button, .btn, .btn-primary, .btn-secondary, .btn-action, .action-btn, .tool-btn) { min-height: 44px; }
    :where(.container, .page-container, .main-content, main) { max-width: 100%; }
}

/* HEADER */
.site-header {
    position: fixed;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 50;
    width: auto;
    max-width: 760px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(10, 10, 12, 0.92);
    backdrop-filter: blur(16px) saturate(1.2);
    -webkit-backdrop-filter: blur(16px) saturate(1.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255,255,255,0.04) inset;
    transition: all 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0;
    height: auto;
    /* Entrance animation */
    animation: navbar-entrance 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0.1s;
}
@keyframes navbar-entrance {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-20px) scale(0.95);
        filter: blur(8px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(1);
        filter: blur(0);
    }
}
/* Border glow sweep */
.site-header::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    background: conic-gradient(from var(--glow-angle, 0deg), transparent 0%, rgba(255,255,255,0.15) 10%, transparent 20%);
    z-index: -1;
    opacity: 0;
    transition: opacity 0.5s ease;
    animation: border-glow-sweep 4s linear infinite;
}
.site-header:hover::after {
    opacity: 1;
}
@keyframes border-glow-sweep {
    to { --glow-angle: 360deg; }
}
@property --glow-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}
.site-header.scrolled {
    background: rgba(6, 6, 8, 0.94);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255,255,255,0.06) inset;
    border-color: rgba(255, 255, 255, 0.1);
}
.site-header.scrolled::after {
    display: none;
}
.header-inner {
    height: auto;
    max-width: 100%;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.logo-group { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.logo-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    background: transparent;
    color: white; font-size: 14px;
    box-shadow: none;
    transition: all 0.4s var(--ease-spring);
    position: relative;
    overflow: visible;
}
.logo-icon img {
    width: 100%; height: 100%;
    object-fit: contain;
    border-radius: 8px;
}
.logo-icon::after {
    display: none;
}
.logo-icon:hover {
    transform: scale(1.12) rotate(-6deg);
}
.logo-text { font-size: 14px; font-weight: 700; letter-spacing: -0.02em; color: white; white-space: nowrap; }
.logo-version {
    font-size: 9px; font-family: var(--font-mono);
    font-weight: 600; letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--gradient-primary);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-left: 4px;
}

/* Divider between logo and nav links */
.header-divider {
    width: 1px;
    height: 20px;
    background: rgba(255, 255, 255, 0.1);
    margin: 0 4px;
    flex-shrink: 0;
}

.header-nav { display: flex; align-items: center; gap: 2px; }
.header-nav-links {
    display: flex;
    align-items: center;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.nav-link {
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,0.55);
    text-decoration: none;
    border-radius: 10px;
    transition: all 0.25s ease;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.nav-link:hover {
    color: rgba(255,255,255,0.95);
    background: rgba(255, 255, 255, 0.08);
}
.nav-link.active {
    color: white;
    background: rgba(255, 255, 255, 0.1);
}

/* Active pill sliding indicator */
.header-nav-links {
    position: relative;
}
.nav-active-indicator {
    position: absolute;
    bottom: 0;
    height: 2px;
    background: white;
    border-radius: 1px;
    transition: left 0.35s cubic-bezier(0.16, 1, 0.3, 1), width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.4), 0 0 20px rgba(255, 255, 255, 0.15);
    pointer-events: none;
}
.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-shrink: 0;
}
.header-login-btn,
.header-signup-btn {
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.25s ease;
    white-space: nowrap;
}
.header-login-btn {
    background: transparent;
    color: rgba(255,255,255,0.55);
}
.header-login-btn:hover {
    color: white;
}
.header-signup-btn {
    background: white;
    color: #0a0a0c;
    font-weight: 600;
}
.header-signup-btn:hover {
    background: #e0e0e0;
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.2);
}
.header-logout-btn {
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255,255,255,0.6);
    cursor: pointer;
    transition: all 0.25s ease;
    text-decoration: none;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
}
.header-logout-btn:hover {
    color: white;
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
}
.nav-btn {
    width: 34px; height: 34px;
    border-radius: 10px; border: 1px solid transparent;
    display: flex; align-items: center; justify-content: center;
    background: transparent; color: rgba(255,255,255,0.45);
    cursor: pointer; transition: all 0.3s var(--ease-smooth); font-size: 13px;
    position: relative;
    text-decoration: none;
}
.nav-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: white;
    transform: translateY(-1px);
}
.nav-btn:active { transform: translateY(0) scale(0.95); }
.nav-btn.active { color: white; background: rgba(255,255,255,0.1); }

/* Interior page nav with text labels */
.nav-btn-labeled {
    width: auto;
    height: 34px;
    padding: 0 12px;
    border-radius: 10px;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: transparent;
    color: rgba(255,255,255,0.55);
    cursor: pointer;
    transition: all 0.25s ease;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}
.nav-btn-labeled:hover {
    color: white;
    background: rgba(255, 255, 255, 0.08);
}
.nav-btn-labeled.active {
    color: white;
    background: rgba(255, 255, 255, 0.1);
}
.nav-btn-labeled i {
    font-size: 12px;
    opacity: 0.7;
}

/* Interior nav sliding indicator */
.header-nav {
    position: relative;
}
.nav-active-indicator-inner {
    position: absolute;
    bottom: 0;
    height: 2px;
    background: white;
    border-radius: 1px;
    transition: left 0.35s cubic-bezier(0.16, 1, 0.3, 1), width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.4), 0 0 20px rgba(255, 255, 255, 0.15);
    pointer-events: none;
}

/* Navbar hidden state (scroll down) */
.site-header.nav-hidden {
    transform: translateX(-50%) translateY(-120%);
    opacity: 0;
    pointer-events: none;
}

/* HERO / LANDING SECTION */
.hero-section {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px 40px;
    position: relative;
    overflow: hidden;
}
.hero-section::before {
    content: '';
    position: absolute;
    top: -350px;
    left: 50%;
    transform: translateX(-50%);
    width: 1100px; height: 1100px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(0, 229, 195, 0.08) 0%, rgba(0, 180, 216, 0.04) 20%, rgba(0, 229, 195, 0.02) 40%, transparent 60%);
    pointer-events: none;
    animation: hero-radial-pulse 10s ease-in-out infinite;
}
.hero-section::after {
    content: '';
    position: absolute;
    bottom: -300px;
    right: -150px;
    width: 900px; height: 900px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(167, 139, 250, 0.05) 0%, rgba(0, 229, 195, 0.03) 30%, rgba(0, 180, 216, 0.02) 50%, transparent 65%);
    pointer-events: none;
    animation: hero-radial-pulse 14s ease-in-out infinite reverse;
}
@keyframes hero-radial-pulse {
    0%, 100% { transform: translateX(-50%) scale(1); opacity: 1; }
    50%      { transform: translateX(-50%) scale(1.2); opacity: 0.5; }
}

/* Centered Hero Layout */
.hero-centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 720px;
    width: 100%;
    position: relative;
    z-index: 1;
}
.hero-title-centered {
    font-size: clamp(36px, 5vw, 60px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.03em;
    margin-bottom: 16px;
    color: #fff;
}
.hero-title-centered .highlight {
    background: linear-gradient(135deg, #00e5c3 0%, #00b4d8 40%, #a78bfa 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradient-text-flow 6s ease infinite;
    position: relative;
    filter: drop-shadow(0 0 20px rgba(0, 229, 195, 0.3));
}
.hero-subtitle-centered {
    font-size: 17px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: 40px;
    opacity: 0.85;
    max-width: 540px;
}
.hero-subtitle-centered strong {
    color: var(--accent-teal);
    font-weight: 600;
}
.hero-upload-centered {
    width: 100%;
    max-width: 480px;
}
.hero-osint-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 24px;
    padding: 5px 14px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-cyan);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 20px;
}
.hero-osint-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--accent-emerald);
    box-shadow: 0 0 6px rgba(0, 229, 195, 0.5);
    animation: pulse-dot 2s ease-in-out infinite;
}

/* ── Reticle Decoration ── */
.hero-reticle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(500px, 80vw);
    height: min(500px, 80vw);
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
    animation: reticle-spin 60s linear infinite;
    opacity: 0.7;
}
@keyframes reticle-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* ── Orbit Badges ── */
.hero-orbit-badges {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    pointer-events: none;
    z-index: 0;
}
.orbit-badge {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: rgba(0, 229, 195, 0.7);
    background: rgba(0, 229, 195, 0.05);
    border: 1px solid rgba(0, 229, 195, 0.12);
    border-radius: 20px;
    white-space: nowrap;
    backdrop-filter: blur(6px);
    animation: orbit-float 6s ease-in-out infinite;
}
.orbit-badge i {
    font-size: 9px;
    opacity: 0.8;
}
.orbit-badge-1 { top: 15%; left: -8%; animation-delay: 0s; }
.orbit-badge-2 { top: 10%; right: -8%; animation-delay: -2s; }
.orbit-badge-3 { bottom: 22%; right: -12%; animation-delay: -4s; }
@keyframes orbit-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}

/* ── Hero Title Sub Line ── */
.hero-title-sub {
    font-size: clamp(30px, 4vw, 50px);
    font-weight: 700;
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: -0.02em;
}

/* Legacy split layout (hidden) */
.hero-split {
    display: flex;
    align-items: center;
    gap: 60px;
    max-width: 1200px;
    width: 100%;
    position: relative;
    z-index: 1;
}
.hero-text-col {
    flex: 1;
    text-align: left;
}
.hero-upload-col {
    flex: 1;
    max-width: 480px;
}

/* Orbit Badges */
.hero-orbit-badges {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}
.orbit-badge {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 20px;
    font-size: 10px;
    font-weight: 600;
    color: var(--accent-cyan);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.5;
    animation: orbit-float 20s ease-in-out infinite;
}
.orbit-badge i { font-size: 9px; }
.orbit-1 { top: 15%; left: 5%; animation-delay: 0s; }
.orbit-2 { top: 25%; right: 3%; animation-delay: -5s; }
.orbit-3 { bottom: 20%; left: 8%; animation-delay: -10s; }
.orbit-4 { bottom: 30%; right: 6%; animation-delay: -15s; }
.orbit-5 { top: 50%; left: 3%; animation-delay: -18s; }
@keyframes orbit-float {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.4; }
    25% { transform: translate(15px, -10px) rotate(2deg); opacity: 0.6; }
    50% { transform: translate(-10px, -20px) rotate(-1deg); opacity: 0.3; }
    75% { transform: translate(20px, 5px) rotate(1deg); opacity: 0.55; }
}

/* Hero Badge */
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03));
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 28px;
    padding: 8px 20px;
    font-size: 12px;
    color: #ffffff;
    font-weight: 600;
    margin-bottom: 24px;
    position: relative;
    overflow: hidden;
    transition: all 0.35s var(--ease-smooth);
    letter-spacing: 0.03em;
}
.hero-badge-pulse {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
    animation: pulse-dot 2s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes pulse-dot {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.3); opacity: 0.6; }
}
.hero-badge-text {
    display: flex;
    align-items: center;
    gap: 6px;
}
.hero-badge-text i { font-size: 10px; }
.hero-badge::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    animation: badge-shine 5s ease-in-out infinite;
}
@keyframes badge-shine {
    0%, 100% { left: -100%; }
    50%      { left: 100%; }
}
.hero-badge:hover {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.06));
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 6px 28px rgba(255, 255, 255, 0.12);
}
.hero-badge i { font-size: 10px; color: #ffffff; }

/* Hero Title */
.hero-title {
    font-size: clamp(40px, 5.5vw, 68px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -0.04em;
    margin-bottom: 20px;
    max-width: 700px;
}
.hero-line {
    display: block;
    background: linear-gradient(145deg, #ffffff 0%, #e0e0e0 35%, #bbbbbb 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.hero-title .highlight {
    background: linear-gradient(
        135deg,
        #00e5c3 0%,
        #00b4d8 30%,
        #a78bfa 60%,
        #00e5c3 100%
    );
    background-size: 400% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradient-text-flow 10s ease infinite;
}
@keyframes gradient-text-flow {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

/* Hero Subtitle */
.hero-subtitle {
    font-size: 16px;
    color: var(--text-secondary);
    max-width: 520px;
    line-height: 1.75;
    margin-bottom: 32px;
    opacity: 0.85;
}
.hero-subtitle strong {
    color: #ffffff;
    font-weight: 600;
}

/* Hero Metrics Row */
.hero-metrics {
    display: flex;
    align-items: center;
    gap: 0;
    margin-bottom: 28px;
    flex-wrap: wrap;
}
.hero-metric {
    padding: 0 20px;
}
.hero-metric:first-child { padding-left: 0; }
.hero-metric-value {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.02em;
    background: var(--gradient-hero);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1.2;
}
.hero-metric-label {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 2px;
}
.hero-metric-divider {
    width: 1px;
    height: 36px;
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.2), transparent);
}

/* Hero Trust Row */
.hero-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.hero-trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
}
.hero-trust-item i {
    font-size: 10px;
    color: var(--accent-emerald);
}

/* ═══ UPLOAD CARD ═══ */
.hero-upload-card {
    position: relative;
    border-radius: 24px;
    cursor: pointer;
    transform-style: preserve-3d;
}
.upload-card-glow {
    position: absolute;
    inset: -2px;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(0, 229, 195, 0.2), rgba(0, 180, 216, 0.12), rgba(167, 139, 250, 0.1), rgba(0, 229, 195, 0.2));
    background-size: 200% 200%;
    z-index: 0;
    opacity: 0.4;
    transition: opacity 0.5s ease;
    pointer-events: none;
    filter: blur(1px);
    animation: gradient-text-flow 6s ease infinite;
}
.hero-upload-card:hover .upload-card-glow {
    opacity: 1;
    filter: blur(0px);
}
.upload-card-inner {
    position: relative;
    z-index: 1;
    background: rgba(10, 10, 10, 0.95);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px;
    padding: 28px;
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
.hero-upload-card:hover .upload-card-inner {
    border-color: rgba(0, 229, 195, 0.2);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3), 0 0 60px rgba(0, 229, 195, 0.06);
}
/* Upload Card Inner Spotlight (mouse-follow) */
.upload-card-inner::before {
    content: '';
    position: absolute;
    width: 300px; height: 300px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 40%, transparent 70%);
    transform: translate(var(--spotlight-x, -200px), var(--spotlight-y, -200px)) translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.hero-upload-card:hover .upload-card-inner::before {
    opacity: 1;
}
.upload-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(26, 26, 26, 0.5);
}
.upload-card-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}
.upload-card-title i {
    color: #ffffff;
    font-size: 13px;
}
.upload-card-mode-badge {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.15);
}

/* Upload URL Row */
.upload-url-row {
    display: flex;
    gap: 8px;
    margin-top: 14px;
}
.upload-url-row .input-field {
    flex: 1;
    padding: 10px 14px;
    font-size: 13px;
}
.upload-url-btn {
    padding: 10px 16px;
    font-size: 13px;
    white-space: nowrap;
}
.upload-url-btn i { font-size: 11px; margin-right: 4px; }

/* Upload Context Toggle */
.upload-context-toggle {
    margin-top: 16px;
    border: 1px solid rgba(26, 26, 26, 0.4);
    border-radius: 14px;
    overflow: hidden;
}
.upload-context-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    list-style: none;
    transition: all 0.3s ease;
}
.upload-context-summary::-webkit-details-marker { display: none; }
.upload-context-summary:hover {
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.04);
}
.upload-context-summary i:first-child { font-size: 11px; color: var(--primary); }
.upload-context-chevron {
    margin-left: auto;
    font-size: 10px;
    transition: transform 0.3s ease;
}
.upload-context-toggle[open] .upload-context-chevron {
    transform: rotate(180deg);
}
.upload-context-toggle .context-fields {
    padding: 0 16px 16px;
}

/* Staged Image Preview Panel */
.staged-image-panel {
    margin-top: 16px;
    border: 1px solid var(--primary);
    border-radius: 14px;
    overflow: hidden;
    background: rgba(0, 229, 195, 0.04);
    animation: stagedFadeIn 0.3s ease;
}
@keyframes stagedFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.staged-image-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--primary);
    border-bottom: 1px solid rgba(0, 229, 195, 0.15);
}
.staged-image-header i { margin-right: 6px; }
.staged-image-remove {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 6px;
    font-size: 13px;
    transition: all 0.2s;
}
.staged-image-remove:hover {
    color: #ef4444;
    background: rgba(239, 68, 68, 0.1);
}
.staged-image-preview {
    padding: 10px 14px;
    text-align: center;
}
.staged-image-preview img {
    max-width: 100%;
    max-height: 180px;
    border-radius: 8px;
    object-fit: contain;
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.staged-image-hint {
    padding: 0 14px 8px;
    font-size: 11px;
    color: var(--text-muted);
    text-align: center;
}
.staged-image-hint i { margin-right: 4px; color: var(--primary); }
.staged-analyze-btn {
    margin: 0 14px 14px;
    width: calc(100% - 28px);
    font-size: 14px;
    font-weight: 600;
    padding: 12px;
    letter-spacing: 0.5px;
}

/* Upload Status */
.upload-status-msg {
    margin-top: 16px;
    text-align: center;
}
.upload-status-msg p {
    font-size: 11px;
    color: var(--text-muted);
}
.upload-status-msg a {
    color: var(--primary);
    text-decoration: none;
}
.upload-status-msg i {
    font-size: 9px;
    margin-right: 4px;
}
.upload-status-warn {
    color: #aaaaaa !important;
}
.upload-status-warn i { color: #aaaaaa; }
.upload-status-ready i {
    color: #cccccc;
}

/* Upload Zone (inside card) */
.upload-zone {
    position: relative;
    width: 140px; height: 140px;
    border-radius: 50%;
    margin: 0 auto 20px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    background: radial-gradient(circle, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03) 50%, transparent 70%);
    will-change: transform, box-shadow;
}
/* Upload Progress Ring */
.upload-progress-ring {
    position: absolute;
    inset: -8px;
    width: calc(100% + 16px);
    height: calc(100% + 16px);
    transform: rotate(-90deg);
    pointer-events: none;
    z-index: 2;
}
.upload-ring-track {
    fill: none;
    stroke: rgba(255, 255, 255, 0.06);
    stroke-width: 3;
}
.upload-ring-fill {
    fill: none;
    stroke: #ffffff;
    stroke-width: 3;
    stroke-linecap: round;
    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.4));
}
/* Upload Success Burst */
.upload-success-burst {
    position: absolute;
    inset: -30px;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    z-index: 3;
}
.upload-success-burst.active {
    animation: burst-expand 1s var(--ease-spring) forwards;
}
@keyframes burst-expand {
    0% {
        opacity: 1;
        box-shadow: 0 0 0 0 rgba(200, 200, 200, 0.4),
                    0 0 0 0 rgba(255, 255, 255, 0.3),
                    0 0 0 0 rgba(255, 255, 255, 0.2);
    }
    50% {
        opacity: 0.6;
        box-shadow: 0 0 0 20px rgba(200, 200, 200, 0),
                    0 0 0 35px rgba(255, 255, 255, 0.1),
                    0 0 0 50px rgba(255, 255, 255, 0);
    }
    100% {
        opacity: 0;
        box-shadow: 0 0 0 40px rgba(200, 200, 200, 0),
                    0 0 0 55px rgba(255, 255, 255, 0),
                    0 0 0 70px rgba(255, 255, 255, 0);
    }
}
/* Morphing blob behind upload zone */
.upload-zone .morph-blob {
    position: absolute;
    width: 200px; height: 200px;
    top: 50%; left: 50%;
    margin-top: -100px; margin-left: -100px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.03));
    filter: blur(45px);
    animation: morph-blob 18s ease-in-out infinite;
    z-index: -1;
    pointer-events: none;
    transition: all 0.5s ease;
}
.upload-zone:hover .morph-blob {
    opacity: 1.5;
    filter: blur(35px);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.04));
}
.upload-zone::before {
    content: '';
    position: absolute; inset: -3px;
    border-radius: 50%;
    border: 2px dashed rgba(255, 255, 255, 0.2);
    transition: all 0.5s var(--ease-smooth);
    animation: upload-border-rotate 15s linear infinite;
}
@keyframes upload-border-rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.upload-zone::after {
    content: '';
    position: absolute; inset: -18px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.05);
    animation: pulse-ring 4s var(--ease-smooth) infinite;
}
.upload-zone:hover::before {
    border-color: rgba(255, 255, 255, 0.6);
    inset: -6px;
    animation-duration: 3s;
    border-style: solid;
    border-width: 2px;
    filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.3));
}
.upload-zone:hover {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.06) 50%, transparent 80%);
    transform: scale(1.1);
    box-shadow:
        0 0 80px rgba(255, 255, 255, 0.12),
        0 0 40px rgba(255, 255, 255, 0.06),
        0 0 120px rgba(255, 255, 255, 0.04),
        inset 0 0 40px rgba(255, 255, 255, 0.04);
}
.upload-zone:hover .upload-icon {
    transform: translateY(-10px) scale(1.2) rotate(-8deg);
    background: var(--gradient-neon);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 0 24px rgba(255, 255, 255, 0.6));
}
.upload-icon {
    font-size: 28px; color: var(--text-muted);
    transition: all 0.5s var(--ease-spring);
    animation: upload-icon-idle 4s ease-in-out infinite;
}
/* Lottie upload icon */
.upload-lottie-wrap {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: upload-icon-idle 4s ease-in-out infinite;
    transition: all 0.5s var(--ease-spring);
    pointer-events: none;
}
.upload-lottie-wrap .flaticon-anim {
    filter: invert(1) hue-rotate(180deg);
    opacity: 0.85;
}
.upload-zone:hover .upload-lottie-wrap {
    transform: translateY(-10px) scale(1.2);
    filter: drop-shadow(0 0 24px rgba(255, 255, 255, 0.6))
            drop-shadow(0 0 48px rgba(255, 255, 255, 0.3));
}
.upload-icon-fallback { display: none; }
/* Processing Lottie header */
.pipe-lottie-header {
    display: flex;
    justify-content: center;
    margin-bottom: 8px;
    filter: drop-shadow(0 0 12px rgba(255, 255, 255, 0.3));
}
/* Step arrow SVG */
.step-arrow {
    position: relative;
    z-index: 1;
    background: var(--dark-bg);
    padding: 4px;
    color: rgba(255, 255, 255, 0.5);
}
@keyframes upload-icon-idle {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25%      { transform: translateY(-3px) rotate(-2deg); }
    50%      { transform: translateY(-5px) rotate(0deg); }
    75%      { transform: translateY(-3px) rotate(2deg); }
}
.upload-title { font-size: 18px; font-weight: 700; color: white; margin-bottom: 4px; text-align: center; }
.upload-subtitle { font-size: 13px; color: var(--text-muted); margin-bottom: 20px; text-align: center; }

.upload-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 0; }
.context-fields { display: flex; flex-direction: column; gap: 12px; text-align: left; }
.field-label {
    display: block; font-size: 11px; font-weight: 500;
    color: var(--text-muted); text-transform: uppercase;
    letter-spacing: 0.05em; margin-bottom: 6px;
}
.field-label .optional { text-transform: none; letter-spacing: 0; color: #2a2a2a; }


/* â•â•â• APP LAYOUT (Map + Panel) â•â•â• */
.app-layout {
    display: none;
    height: calc(100vh - 56px);
}
.app-layout.active { display: flex; }

.map-column { width: 65%; position: relative; background: var(--dark-bg); }
.results-column {
    width: 35%;
    border-left: 1px solid var(--dark-border);
    overflow-y: auto;
    background: #0a0a0a;
}

@media (max-width: 1024px) {
    .app-layout { flex-direction: column; height: auto; min-height: calc(100vh - 56px); }
    .map-column { width: 100%; height: 50vh; }
    .results-column { width: 100%; height: auto; min-height: 50vh; }
}

/* â•â•â• MAP â•â•â• */
.map-container { position: relative; height: 100%; }
#map { width: 100%; height: 100%; background: var(--dark-bg); }

/* Leaflet Dark Overrides */
.leaflet-control-zoom a {
    background-color: rgba(13, 13, 13, 0.9) !important;
    color: var(--text-secondary) !important;
    border-color: var(--dark-border) !important;
    backdrop-filter: blur(12px) !important;
    transition: all 0.2s ease !important;
}
.leaflet-control-zoom a:hover { background-color: rgba(34, 34, 34, 0.9) !important; color: var(--primary) !important; }
.leaflet-control-attribution {
    background-color: rgba(8, 8, 8, 0.6) !important;
    color: var(--text-muted) !important;
    font-size: 9px !important;
    font-family: var(--font-mono) !important;
    backdrop-filter: blur(8px) !important;
}
.leaflet-control-attribution a { color: var(--primary-dim) !important; }
.leaflet-popup-content-wrapper {
    background-color: rgba(13, 13, 13, 0.95) !important;
    color: #cccccc !important;
    border-radius: 10px !important;
    border: 1px solid var(--dark-border) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.6), 0 0 20px rgba(255, 255, 255, 0.05) !important;
    backdrop-filter: blur(16px) !important;
}
.leaflet-popup-tip { background-color: rgba(13, 13, 13, 0.95) !important; }
.leaflet-popup-content { font-family: var(--font-sans) !important; font-size: 13px !important; line-height: 1.5 !important; }
.leaflet-popup-content a { color: var(--primary) !important; text-decoration: none !important; }
.leaflet-popup-close-button { color: var(--text-muted) !important; font-size: 18px !important; }
.leaflet-popup-close-button:hover { color: #cccccc !important; }

/* MapLibre GL Dark Overrides */
.maplibregl-ctrl-group { background: rgba(13, 13, 13, 0.9) !important; border: 1px solid var(--dark-border) !important; backdrop-filter: blur(12px) !important; }
.maplibregl-ctrl-group button { color: var(--text-secondary) !important; }
.maplibregl-ctrl-group button:hover { color: var(--primary) !important; background-color: rgba(34, 34, 34, 0.9) !important; }
.maplibregl-ctrl-group button + button { border-top: 1px solid var(--dark-border) !important; }
.maplibregl-ctrl-attrib { background-color: rgba(8, 8, 8, 0.6) !important; color: var(--text-muted) !important; font-size: 9px !important; font-family: var(--font-mono) !important; backdrop-filter: blur(8px) !important; }
.maplibregl-ctrl-attrib a { color: var(--primary-dim) !important; }
.maplibregl-popup-content { background-color: rgba(13, 13, 13, 0.95) !important; color: #cccccc !important; border-radius: 10px !important; border: 1px solid var(--dark-border) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.6) !important; backdrop-filter: blur(16px) !important; font-family: var(--font-sans) !important; font-size: 13px !important; }
.maplibregl-popup-tip { border-top-color: rgba(13, 13, 13, 0.95) !important; }
.maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: rgba(13, 13, 13, 0.95) !important; }

/* Processing Overlay */
.processing-overlay {
    position: absolute; inset: 0;
    display: none; align-items: center; justify-content: center;
    z-index: 1000;
    background: radial-gradient(ellipse at 50% 40%, rgba(10, 10, 10, 0.98) 0%, rgba(0, 0, 0, 0.99) 100%);
    backdrop-filter: blur(20px);
}
.processing-overlay.active { display: flex; }

/* Pipeline Wrapper */
.pipe-wrapper {
    text-align: center;
    width: 96%;
    max-width: 980px;
    animation: pipe-wrapper-enter 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    padding: 32px 0;
}
@keyframes pipe-wrapper-enter {
    from { opacity: 0; transform: translateY(30px) scale(0.95); filter: blur(8px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

/* Background grid */
.pipe-bg-grid {
    position: absolute;
    inset: -20%;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
    animation: pipe-grid-drift 20s linear infinite;
    pointer-events: none;
}
@keyframes pipe-grid-drift {
    from { transform: translate(0, 0); }
    to { transform: translate(40px, 40px); }
}

/* Ambient floating orbs */
.pipe-ambient {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.pipe-ambient-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.15;
}
.pipe-orb-1 {
    width: 300px; height: 300px;
    background: radial-gradient(circle, #ffffff 0%, transparent 70%);
    top: 10%; left: 10%;
    animation: pipe-orb-float 12s ease-in-out infinite;
}
.pipe-orb-2 {
    width: 250px; height: 250px;
    background: radial-gradient(circle, #ffffff 0%, transparent 70%);
    bottom: 10%; right: 15%;
    animation: pipe-orb-float 15s ease-in-out infinite reverse;
}
.pipe-orb-3 {
    width: 200px; height: 200px;
    background: radial-gradient(circle, #cccccc 0%, transparent 70%);
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    animation: pipe-orb-float 18s ease-in-out infinite 3s;
}
@keyframes pipe-orb-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(30px, -20px) scale(1.1); }
    50% { transform: translate(-20px, 15px) scale(0.9); }
    75% { transform: translate(15px, 25px) scale(1.05); }
}

/* Header */
.proc-header {
    position: relative;
    z-index: 2;
    margin-bottom: 4px;
}
.proc-header-line {
    width: 120px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    margin: 8px auto;
}
.proc-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 4px;
    color: rgba(232, 232, 232, 0.9);
    margin-bottom: 4px;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    text-transform: uppercase;
}
.proc-title-icon {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffffff;
    margin-right: 8px;
    vertical-align: middle;
    animation: proc-icon-pulse 2s ease-in-out infinite;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.6);
}
@keyframes proc-icon-pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 8px rgba(255, 255, 255, 0.6); }
    50% { opacity: 0.4; box-shadow: 0 0 4px rgba(255, 255, 255, 0.3); }
}
.proc-status {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0;
    min-height: 20px;
    transition: opacity 0.3s ease;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    letter-spacing: 0.5px;
}

/* Pipeline Diagram */
.pipe-diagram {
    position: relative;
    width: 100%;
    aspect-ratio: 920 / 340;
    margin: 16px auto 20px;
}
.pipe-svg-defs {
    position: absolute;
    width: 0;
    height: 0;
}

/* SVG Connection Lines */
.pipe-lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.pipe-line {
    fill: none;
    stroke: rgba(255, 255, 255, 0.06);
    stroke-width: 1.5;
    stroke-linecap: round;
    transition: stroke 0.8s ease, filter 0.8s ease, stroke-width 0.5s ease, stroke-opacity 0.5s ease;
}
.pipe-line.active {
    stroke: url(#lineGradCyan);
    stroke-width: 2;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.3));
    stroke-dasharray: 6 3;
    animation: pipe-dash-flow 0.8s linear infinite;
}
.pipe-line.done {
    stroke: rgba(200, 200, 200, 0.2);
    stroke-width: 1.5;
    filter: none;
    stroke-dasharray: none;
}
@keyframes pipe-dash-flow {
    from { stroke-dashoffset: 18; }
    to { stroke-dashoffset: 0; }
}

/* Energy particles traveling along active lines */
.pipe-energy-dot {
    r: 3;
    fill: url(#energyDot);
    filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.8));
    opacity: 0;
}
.pipe-energy-dot.active {
    opacity: 1;
}

/* Pipeline Nodes */
.pipe-node {
    position: absolute;
    width: 70px;
    text-align: center;
    transform: translate(-50%, -50%);
    z-index: 2;
    opacity: 0;
    animation: pipe-node-appear 0.5s ease forwards;
}
/* Staggered appearance */
.pipe-node:nth-child(1) { animation-delay: 0.1s; }
.pipe-node:nth-child(2) { animation-delay: 0.2s; }
.pipe-node:nth-child(3) { animation-delay: 0.25s; }
.pipe-node:nth-child(4) { animation-delay: 0.3s; }
.pipe-node:nth-child(5) { animation-delay: 0.4s; }
.pipe-node:nth-child(6) { animation-delay: 0.45s; }
.pipe-node:nth-child(7) { animation-delay: 0.55s; }
.pipe-node:nth-child(8) { animation-delay: 0.65s; }
.pipe-node:nth-child(9) { animation-delay: 0.7s; }
.pipe-node:nth-child(10) { animation-delay: 0.75s; }
.pipe-node:nth-child(11) { animation-delay: 0.8s; }
.pipe-node:nth-child(12) { animation-delay: 0.9s; }
.pipe-node:nth-child(13) { animation-delay: 1.0s; }

@keyframes pipe-node-appear {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.5); filter: blur(4px); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); filter: blur(0); }
}

/* Node ring (outer halo) */
.pipe-node-ring {
    position: absolute;
    inset: -6px;
    border-radius: 18px;
    border: 1px solid transparent;
    transition: all 0.6s ease;
    pointer-events: none;
}

.pipe-node-inner {
    width: 54px;
    height: 54px;
    margin: 0 auto;
    border-radius: 15px;
    background: rgba(8, 14, 28, 0.9);
    border: 1.5px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    color: rgba(255, 255, 255, 0.25);
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(12px);
    position: relative;
    overflow: hidden;
}
.pipe-node-inner::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 15px;
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.02) 0%, transparent 60%);
    transition: all 0.5s ease;
}
/* Shimmer sweep on active */
.pipe-node-inner::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
    transition: left 0s;
}

.pipe-node-label {
    display: block;
    margin-top: 7px;
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: 0.8px;
    color: rgba(255, 255, 255, 0.2);
    text-transform: uppercase;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    line-height: 1.35;
    transition: color 0.5s ease, text-shadow 0.5s ease;
    white-space: nowrap;
}

/* Larger reasoning nodes */
.pipe-node-lg .pipe-node-inner {
    width: 64px;
    height: 64px;
    border-radius: 17px;
    font-size: 23px;
}
.pipe-node-lg .pipe-node-ring {
    border-radius: 22px;
}

/* Result node circle */
.pipe-node-result .pipe-node-inner {
    width: 58px;
    height: 58px;
    border-radius: 50%;
}
.pipe-node-result .pipe-node-ring {
    border-radius: 50%;
}

/* ═══ NODE STATES ═══ */

/* ACTIVE — Glowing cyan with animations */
.pipe-node.active .pipe-node-ring {
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 0 24px rgba(255, 255, 255, 0.08);
    animation: pipe-ring-pulse 2.5s ease-in-out infinite;
}
.pipe-node.active .pipe-node-inner {
    border-color: rgba(255, 255, 255, 0.5);
    color: #ffffff;
    background: rgba(8, 14, 28, 0.95);
    box-shadow:
        0 0 20px rgba(255, 255, 255, 0.15),
        0 0 40px rgba(255, 255, 255, 0.05),
        inset 0 0 20px rgba(255, 255, 255, 0.04);
}
.pipe-node.active .pipe-node-inner::before {
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
}
.pipe-node.active .pipe-node-inner::after {
    animation: pipe-shimmer-sweep 2s ease-in-out infinite;
}
.pipe-node.active .pipe-node-label {
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.3);
}

@keyframes pipe-ring-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.08); opacity: 0.7; }
}
@keyframes pipe-shimmer-sweep {
    0% { left: -100%; }
    50% { left: 100%; }
    100% { left: 100%; }
}

/* DONE — Emerald confirmation */
.pipe-node.done .pipe-node-ring {
    border-color: rgba(200, 200, 200, 0.15);
}
.pipe-node.done .pipe-node-inner {
    border-color: rgba(200, 200, 200, 0.35);
    color: #cccccc;
    box-shadow: 0 0 12px rgba(200, 200, 200, 0.1);
}
.pipe-node.done .pipe-node-inner::before {
    background: radial-gradient(circle at 30% 30%, rgba(200, 200, 200, 0.05) 0%, transparent 60%);
}
.pipe-node.done .pipe-node-label {
    color: rgba(200, 200, 200, 0.6);
}

/* Checkmark on done nodes */
.pipe-node.done .pipe-node-inner i {
    position: relative;
}
.pipe-node.done .pipe-node-inner::after {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    bottom: 3px;
    right: 3px;
    font-size: 8px;
    color: #cccccc;
    opacity: 0.7;
}

/* RESULT NODE — Gold/amber when done */
.pipe-node-result.done .pipe-node-ring {
    border-color: rgba(200, 200, 200, 0.25);
    animation: pipe-result-glow 2s ease-in-out infinite;
}
.pipe-node-result.done .pipe-node-inner {
    border-color: rgba(200, 200, 200, 0.5);
    color: #aaaaaa;
    box-shadow: 0 0 24px rgba(200, 200, 200, 0.15), 0 0 48px rgba(200, 200, 200, 0.05);
}
.pipe-node-result.done .pipe-node-inner::after {
    content: '\f005';
    color: #aaaaaa;
}
.pipe-node-result.done .pipe-node-label {
    color: rgba(200, 200, 200, 0.8);
    text-shadow: 0 0 8px rgba(200, 200, 200, 0.3);
}
@keyframes pipe-result-glow {
    0%, 100% { box-shadow: 0 0 16px rgba(200, 200, 200, 0.1); }
    50% { box-shadow: 0 0 32px rgba(200, 200, 200, 0.2); }
}

/* Active node glow halo */
.pipe-node.active::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80px;
    height: 80px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: pipe-halo-breathe 3s ease-in-out infinite;
    z-index: -1;
    pointer-events: none;
}
@keyframes pipe-halo-breathe {
    0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.3); }
}

/* Progress Bar */
.proc-progress-track {
    width: 100%;
    max-width: 520px;
    height: 2px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 4px;
    overflow: visible;
    margin: 0 auto 12px;
    position: relative;
    z-index: 2;
}
.proc-progress-fill {
    height: 100%;
    width: 0%;
    border-radius: 4px;
    background: linear-gradient(90deg, #ffffff, #ffffff, #999999);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}
.proc-progress-fill::after {
    content: '';
    position: absolute;
    top: -2px; right: -1px;
    width: 6px; height: 6px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.6), 0 0 20px rgba(255, 255, 255, 0.3);
}
.proc-progress-glow {
    position: absolute;
    top: -4px;
    left: 0;
    height: 10px;
    width: 0%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
    filter: blur(4px);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

/* Footer */
.proc-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    position: relative;
    z-index: 2;
}
.proc-timer {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.2);
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    letter-spacing: 0.5px;
}
.proc-engine {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.3);
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

/* Responsive pipeline */
@media (max-width: 900px) {
    .pipe-wrapper { max-width: 100%; padding: 20px 0; }
    .pipe-diagram { transform: scale(0.65); transform-origin: center center; margin: 0 auto 10px; }
    .pipe-node-label { font-size: 7px; }
}
@media (max-width: 600px) {
    .pipe-diagram { transform: scale(0.45); }
    .proc-title { font-size: 10px; letter-spacing: 2px; }
}
/* â”€â”€ Light theme overrides â”€â”€ */

/* Map Controls */
.map-controls {
    position: absolute; bottom: 20px; right: 20px;
    display: none; flex-direction: column; gap: 8px;
    z-index: 1000;
}
.map-controls.active { display: flex; }
.map-ctrl-row { display: flex; gap: 6px; }
.map-ctrl-btn {
    background: rgba(13, 13, 13, 0.85);
    border: 1px solid var(--dark-border);
    backdrop-filter: blur(16px);
    padding: 8px 16px; border-radius: 8px;
    font-size: 13px; font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer; transition: all 0.25s ease;
    font-family: var(--font-sans);
}
.map-ctrl-btn:hover { background: rgba(255, 255, 255, 0.08); color: var(--text-primary); border-color: rgba(255, 255, 255, 0.2); }
.map-ctrl-btn.active { background: rgba(255, 255, 255, 0.12); color: var(--accent-indigo); border-color: rgba(255, 255, 255, 0.3); }
.map-type-select {
    appearance: none;
    background: rgba(13, 13, 13, 0.85);
    border: 1px solid var(--dark-border);
    backdrop-filter: blur(16px);
    padding: 8px 32px 8px 16px; border-radius: 8px;
    font-size: 12px; font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer; font-family: var(--font-sans);
    background-image: url('data:image/svg+xml,%3Csvg width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M1 1l4 4 4-4" stroke="%238b9cb8" fill="none" stroke-width="1.5"/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: right 10px center;
}
.map-type-select option { background: var(--dark-surface); color: var(--text-primary); }

/* â•â•â• 3D/4D MAP DIMENSION SWITCHER â•â•â• */
.map3d-container {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: none;
}
.map3d-container.active {
    display: block;
}

.map-dimension-switcher {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1001;
    display: none;
    gap: 2px;
    background: rgba(8, 8, 8, 0.85);
    border: 1px solid var(--dark-border);
    border-radius: 10px;
    padding: 3px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.map-dimension-switcher.active {
    display: flex;
}
.dim-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    font-family: var(--font-sans);
    cursor: pointer;
    transition: all 0.25s ease;
    white-space: nowrap;
}
.dim-btn i {
    font-size: 11px;
}
.dim-btn:hover {
    color: var(--text-secondary);
    background: rgba(255, 255, 255, 0.04);
}
.dim-btn.active {
    background: rgba(255, 255, 255, 0.12);
    color: var(--accent-indigo);
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.08);
}

/* â•â•â• 4D TIMELINE CONTROLS â•â•â• */
.timeline-controls {
    position: absolute;
    bottom: 70px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1001;
    display: none;
    flex-direction: column;
    gap: 8px;
    background: rgba(8, 8, 8, 0.9);
    border: 1px solid var(--dark-border);
    border-radius: 14px;
    padding: 14px 18px;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
    width: min(420px, calc(100% - 40px));
    animation: timeline-slide-up 0.35s var(--ease-spring);
}
.timeline-controls.active {
    display: flex;
}
@keyframes timeline-slide-up {
    from { opacity: 0; transform: translateX(-50%) translateY(16px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.timeline-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.timeline-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--primary);
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    gap: 6px;
}
.timeline-title i {
    font-size: 10px;
}
.timeline-playback {
    display: flex;
    gap: 4px;
}
.timeline-btn {
    width: 28px;
    height: 28px;
    border: 1px solid var(--dark-border);
    border-radius: 7px;
    background: rgba(13, 13, 13, 0.8);
    color: var(--text-muted);
    font-size: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}
.timeline-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--accent-indigo);
    border-color: rgba(255, 255, 255, 0.25);
}
.timeline-btn.playing {
    background: rgba(255, 255, 255, 0.15);
    color: var(--accent-indigo);
    border-color: rgba(255, 255, 255, 0.3);
}
.timeline-slider-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.timeline-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(34, 34, 34, 0.6);
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}
.timeline-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--accent-indigo);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.4), 0 2px 8px rgba(0, 0, 0, 0.3);
    cursor: grab;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.timeline-slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
    box-shadow: 0 0 16px rgba(255, 255, 255, 0.6), 0 2px 8px rgba(0, 0, 0, 0.4);
}
.timeline-slider::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--accent-indigo);
    border: none;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.4);
    cursor: grab;
}
.timeline-labels {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-muted);
}
.timeline-current-label {
    color: var(--primary);
    font-weight: 500;
}
.timeline-stats {
    display: flex;
    gap: 16px;
    font-size: 11px;
    color: var(--text-muted);
    padding-top: 4px;
    border-top: 1px solid rgba(34, 34, 34, 0.4);
}
.timeline-stats i {
    font-size: 10px;
    color: var(--primary-dim);
    margin-right: 4px;
}

/* â•â•â• 3D GLOBE MAPLIBRE OVERRIDES â•â•â• */
.map3d-container .maplibregl-ctrl-top-right {
    top: 8px;
    right: 8px;
}
.map3d-container .maplibregl-ctrl-group {
    background: rgba(13, 13, 13, 0.9) !important;
    border: 1px solid var(--dark-border) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
    backdrop-filter: blur(12px) !important;
}
.map3d-container .maplibregl-ctrl-group button {
    background-color: transparent !important;
    color: var(--text-secondary) !important;
    border-color: var(--dark-border) !important;
}
.map3d-container .maplibregl-ctrl-group button:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--accent-indigo) !important;
}
.map3d-container .maplibregl-ctrl-group button + button {
    border-top: 1px solid var(--dark-border) !important;
}
.map3d-container .maplibregl-ctrl-attrib {
    background: rgba(8, 8, 8, 0.6) !important;
    font-size: 9px !important;
    font-family: var(--font-mono) !important;
    color: var(--text-muted) !important;
    backdrop-filter: blur(8px) !important;
}
.map3d-container .maplibregl-ctrl-attrib a {
    color: var(--primary-dim) !important;
}

/* 3D Globe marker pulse */
.globe-marker-3d {
    width: 20px;
    height: 20px;
    position: relative;
}
.globe-marker-3d .marker-dot {
    width: 12px;
    height: 12px;
    background: var(--accent-indigo);
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.9);
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.6);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.globe-marker-3d .marker-pulse {
    width: 20px;
    height: 20px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: globe-marker-pulse 2s ease-out infinite;
}
@keyframes globe-marker-pulse {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(3); opacity: 0; }
}

/* 4D History marker (smaller) */
.history-marker-4d {
    width: 10px;
    height: 10px;
    background: rgba(255, 255, 255, 0.6);
    border: 1.5px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: all 0.2s ease;
}
.history-marker-4d:hover {
    background: var(--accent-indigo);
    transform: scale(1.5);
    box-shadow: 0 0 16px rgba(255, 255, 255, 0.7);
}
.history-marker-4d.dimmed {
    opacity: 0.2;
    transform: scale(0.7);
}

/* MapLibre popup dark theme */
.map3d-container .maplibregl-popup-content {
    background: rgba(13, 13, 13, 0.95) !important;
    color: #cccccc !important;
    border-radius: 10px !important;
    border: 1px solid var(--dark-border) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6), 0 0 20px rgba(255, 255, 255, 0.05) !important;
    font-family: var(--font-sans) !important;
    font-size: 13px !important;
    padding: 12px 16px !important;
}
.map3d-container .maplibregl-popup-tip {
    border-top-color: rgba(13, 13, 13, 0.95) !important;
}
.map3d-container .maplibregl-popup-close-button {
    color: var(--text-muted) !important;
    font-size: 18px !important;
}

/* Light theme overrides for 3D/4D */
[data-theme="light"] .map-dimension-switcher {
    background: rgba(255, 255, 255, 0.9);
    border-color: var(--dark-border);
}
[data-theme="light"] .dim-btn {
    color: #666666;
}
[data-theme="light"] .dim-btn:hover {
    background: rgba(0, 0, 0, 0.04);
    color: #555555;
}
[data-theme="light"] .dim-btn.active {
    background: rgba(255, 255, 255, 0.1);
    color: var(--primary-dim);
}
[data-theme="light"] .timeline-controls {
    background: rgba(255, 255, 255, 0.92);
    border-color: var(--dark-border);
}
[data-theme="light"] .timeline-btn {
    background: rgba(0, 0, 0, 0.04);
    color: #666666;
    border-color: var(--dark-border);
}
[data-theme="light"] .timeline-slider {
    background: rgba(0, 0, 0, 0.08);
}

/* â•â•â• RESULTS PANEL â•â•â• */
.tabs {
    display: flex; border-bottom: 1px solid var(--dark-border);
    padding: 0 20px; background: rgba(10, 10, 10, 0.5);
    gap: 2px;
}
.tab-btn {
    flex: 1; padding: 14px 0;
    font-size: 13px; font-weight: 500;
    background: none; border: none;
    color: var(--text-muted); cursor: pointer;
    position: relative; transition: all 0.35s var(--ease-smooth);
    font-family: var(--font-sans);
}
.tab-btn::after {
    content: '';
    position: absolute; bottom: 0; left: 50%;
    width: 0; height: 2px;
    background: var(--gradient-neon);
    transition: all 0.45s var(--ease-spring);
    transform: translateX(-50%);
    border-radius: 2px;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0);
}
.tab-btn:hover { color: var(--text-secondary); }
.tab-btn.active { color: var(--accent-cyan); }
.tab-btn.active::after {
    width: 100%;
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.15);
}

.tab-content { padding: 20px; }
.tab-pane {
    display: none;
    animation: tab-pane-enter 0.4s var(--ease-spring);
}
.tab-pane.active { display: block; }
@keyframes tab-pane-enter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* â•â•â• GLASS CARD â•â•â• */
.glass-card {
    background: rgba(10, 10, 10, 0.7);
    border: 1px solid rgba(26, 26, 26, 0.5);
    backdrop-filter: blur(28px) saturate(1.4);
    -webkit-backdrop-filter: blur(28px) saturate(1.4);
    border-radius: 18px;
    transition: all 0.45s var(--ease-spring);
    position: relative;
    overflow: hidden;
    box-shadow: var(--card-shadow);
}
.glass-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 10%, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.04), transparent 90%);
    pointer-events: none;
}
.glass-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, transparent 50%, rgba(255, 255, 255, 0.01) 100%);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.glass-card:hover {
    border-color: rgba(255, 255, 255, 0.15);
    background: rgba(13, 13, 13, 0.8);
    transform: translateY(-4px);
    box-shadow: var(--card-hover-shadow);
}
.glass-card:hover::after {
    opacity: 1;
}

/* Result cards */
.result-card { margin-bottom: 16px; opacity: 0; }
.result-card.visible { animation: fade-up 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.result-card .card-header {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 12px;
}
.card-icon {
    width: 32px; height: 32px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
    color: #ffffff; font-size: 12px;
    transition: all 0.35s var(--ease-smooth);
    box-shadow: 0 2px 8px rgba(255, 255, 255, 0.06);
}
.glass-card:hover .card-icon {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.06));
    box-shadow: 0 4px 16px rgba(255, 255, 255, 0.12);
    transform: scale(1.05);
}
.card-title { font-size: 14px; font-weight: 700; color: white; letter-spacing: -0.01em; }

.no-results {
    text-align: center; padding: 64px 0;
}
.no-results-icon {
    width: 72px; height: 72px;
    margin: 0 auto 20px;
    border-radius: 20px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 24px; color: var(--text-muted);
}
.no-results p { font-size: 14px; color: var(--text-muted); margin-bottom: 4px; }
.no-results small { font-size: 12px; color: #2a2a2a; }

/* Location details */
.location-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 0;
}
.location-label { font-size: 12px; color: var(--text-muted); }
.location-value { font-size: 14px; font-weight: 500; color: white; }
.coord-value { font-family: var(--font-mono); font-size: 13px; color: #cccccc; }
.copy-btn {
    background: none; border: none;
    color: var(--text-muted); cursor: pointer;
    font-size: 11px; padding: 4px;
    transition: color 0.2s ease;
}
.copy-btn:hover { color: var(--primary); }

.divider { height: 1px; background: var(--dark-border); margin: 4px 0; }

/* Confidence badges */
.confidence-badge {
    font-size: 10px; font-family: var(--font-mono);
    font-weight: 500; padding: 4px 10px;
    border-radius: 20px; letter-spacing: 0.05em;
    text-transform: uppercase;
}
.badge-high { background: rgba(200, 200, 200, 0.12); color: #cccccc; border: 1px solid rgba(200, 200, 200, 0.2); }
.badge-medium { background: rgba(200, 200, 200, 0.12); color: #aaaaaa; border: 1px solid rgba(200, 200, 200, 0.2); }
.badge-low { background: rgba(180, 180, 180, 0.12); color: #777777; border: 1px solid rgba(180, 180, 180, 0.2); }

/* AI Analysis text */
.ai-text { font-size: 13px; color: #888888; line-height: 1.7; white-space: pre-line; }
.ai-text p { margin-bottom: 8px; }

/* ======= UPGRADED AI ANALYSIS TEXT - HACKER TERMINAL STYLE ======= */
.ai-analysis-text {
    font-size: 13.5px;
    color: #cccccc;
    line-height: 1.85;
    letter-spacing: 0.01em;
}
.ai-analysis-terminal {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
}
.ai-analysis-text .ai-para {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
    padding: 12px 16px;
    border-left: 3px solid rgba(255, 255, 255, 0.2);
    border-radius: 0 10px 10px 0;
    background: rgba(0, 20, 5, 0.3);
    transition: all 0.3s ease;
    position: relative;
}
.ai-analysis-text .ai-para:hover {
    border-left-color: rgba(255, 255, 255, 0.6);
    background: rgba(0, 30, 8, 0.4);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.03);
}
.ai-analysis-text .ai-para-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 2px;
}
.ai-analysis-text .ai-para-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}
.ai-analysis-text .ai-para-line-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(255, 255, 255, 0.3);
    margin-left: auto;
}
.ai-analysis-text .ai-para p {
    margin: 0;
    flex: 1;
}
.ai-analysis-text .ai-para-icon {
    flex-shrink: 0;
    font-size: 11px;
    color: #ffffff;
    opacity: 0.7;
}
.ai-analysis-text .ai-para:last-child { margin-bottom: 0; }
.ai-analysis-text .ai-conclusion {
    border-left-color: rgba(255, 255, 255, 0.5);
    background: rgba(0, 15, 25, 0.4);
    font-weight: 500;
    color: #e0e0e0;
}
.ai-analysis-text .ai-conclusion:hover {
    border-left-color: rgba(255, 255, 255, 0.8);
    background: rgba(0, 20, 35, 0.5);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.05);
}
.ai-analysis-text .ai-conclusion .ai-para-icon,
.ai-analysis-text .ai-conclusion .ai-para-label {
    color: #ffffff;
}
.ai-analysis-text .ai-keyword {
    font-style: normal;
    color: #ffffff;
    font-weight: 500;
}
.ai-analysis-text .ai-quoted {
    color: #aaaaaa;
    font-weight: 500;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.92em;
}
.ai-analysis-text strong {
    color: #e0e0e0;
    font-weight: 600;
}
.ai-analysis-text .cyber-highlight {
    color: #ffffff;
    font-weight: 700;
}
.ai-analysis-text .coord-inline {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.9em;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    padding: 1px 6px;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.15);
}
.ai-analysis-text .location-highlight {
    color: #ffffff;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.3);
    text-underline-offset: 2px;
}

/* ======= ANALYSIS SECTION ITEMS - CYBER STYLE ======= */
.analysis-section-item .section-label-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}
.analysis-section-item .section-tag-code {
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    color: rgba(255, 255, 255, 0.4);
    letter-spacing: 0.5px;
}
.analysis-section-item .section-status {
    font-family: 'JetBrains Mono', monospace;
    font-size: 8px;
    padding: 1px 6px;
    border-radius: 3px;
    letter-spacing: 1px;
    font-weight: 600;
    margin-left: auto;
}
.section-status-found {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
}
.section-status-none {
    color: #6b6b6b;
    background: rgba(107, 114, 128, 0.1);
    border: 1px solid rgba(107, 114, 128, 0.2);
}

/* â•â•â• EVIDENCE TAGS â•â•â• */
.evidence-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.evidence-tag {
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
    overflow: hidden;
    font-size: 11px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: all 0.3s var(--ease-smooth);
}
.evidence-tag:hover {
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.tag-category {
    padding: 3px 8px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--font-mono);
    font-size: 9px;
}
.tag-value {
    padding: 3px 8px;
    color: #cccccc;
    font-weight: 500;
}

/* ── Evidence Radar Chart ── */
.evidence-strength-layout {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.evidence-radar-wrap {
    flex-shrink: 0;
    width: 160px;
    height: 160px;
}
.evidence-radar-svg {
    width: 100%;
    height: 100%;
}
.radar-data-polygon {
    animation: radar-reveal 1.2s var(--ease-spring) both;
}
@keyframes radar-reveal {
    from { opacity: 0; transform: scale(0.3); }
    to { opacity: 1; transform: scale(1); }
}
.evidence-strength-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}
.evidence-level-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.evidence-level-header {
    display: flex;
    align-items: center;
    gap: 6px;
}
.evidence-level-header i {
    font-size: 10px;
}
.evidence-level-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.evidence-level-count {
    font-size: 10px;
    color: var(--text-muted);
    margin-left: 2px;
}
.evidence-level-items {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding-left: 16px;
}
.evidence-pill {
    font-size: 11px;
    padding: 2px 8px;
    background: color-mix(in srgb, var(--pill-color) 8%, transparent);
    color: var(--pill-color);
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--pill-color) 18%, transparent);
    transition: all 0.2s ease;
}
.evidence-pill:hover {
    background: color-mix(in srgb, var(--pill-color) 15%, transparent);
    transform: translateY(-1px);
}

/* â•â•â• ANALYSIS SECTIONS (Evidence Breakdown) â•â•â• */
.analysis-sections-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.analysis-section-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(26, 26, 26, 0.3);
    transition: all 0.35s var(--ease-smooth);
}
.analysis-section-item:hover {
    background: rgba(0, 0, 0, 0.25);
    border-color: rgba(255, 255, 255, 0.18);
    transform: translateX(4px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}
.analysis-section-item.section-dim {
    opacity: 0.5;
}
.analysis-section-item.section-dim:hover {
    opacity: 0.8;
}
.section-icon {
    width: 32px; height: 32px;
    min-width: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    margin-top: 1px;
}
.section-content {
    flex: 1;
    min-width: 0;
}
.section-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 4px;
}
.section-text {
    font-size: 13px;
    color: #cccccc;
    line-height: 1.7;
    margin: 0;
}

/* â•â•â• ALTERNATIVE LOCATIONS â•â•â• */
.alt-locations-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.alt-location-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(26, 34, 53, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}
.alt-location-item:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateX(3px);
}
.alt-location-rank {
    width: 30px; height: 30px;
    min-width: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(251, 146, 60, 0.12);
    color: #999999;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-mono);
}
.alt-location-info {
    flex: 1;
    min-width: 0;
}
.alt-location-name {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: white;
    margin-bottom: 2px;
}
.alt-location-detail {
    display: block;
    font-size: 11.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}
.alt-location-meta {
    flex-shrink: 0;
}
.confidence-badge-sm {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    letter-spacing: 0.04em;
}
.confidence-badge-sm.badge-high { background: rgba(200, 200, 200, 0.15); color: #cccccc; }
.confidence-badge-sm.badge-medium { background: rgba(200, 200, 200, 0.15); color: #aaaaaa; }
.confidence-badge-sm.badge-low { background: rgba(180, 180, 180, 0.15); color: #777777; }

/* â•â•â• FORENSIC NOTES â•â•â• */
.forensic-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.forensic-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(26, 34, 53, 0.3);
    transition: all 0.3s ease;
}
.forensic-item:hover {
    background: rgba(180, 180, 180, 0.04);
    border-color: rgba(180, 180, 180, 0.15);
}
.forensic-icon {
    width: 28px; height: 28px;
    min-width: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(180, 180, 180, 0.1);
    color: #777777;
    font-size: 11px;
}
.forensic-content {
    flex: 1;
    min-width: 0;
}
.forensic-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 3px;
}
.forensic-value {
    display: block;
    font-size: 12.5px;
    color: #cccccc;
    line-height: 1.5;
}

/* Card subtitle */
.card-subtitle {
    display: block;
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 400;
    margin-top: 1px;
    letter-spacing: 0.02em;
}

/* â•â•â• LOCATION CARD (UPGRADED) â•â•â• */
.result-location-card {
    overflow: hidden;
}
.location-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 20px 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.location-header-icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.12));
    color: #ffffff;
    font-size: 18px;
    flex-shrink: 0;
    box-shadow: 0 4px 15px rgba(255, 255, 255, 0.15);
}
.location-header-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.location-primary {
    font-size: 20px;
    font-weight: 700;
    color: white;
    letter-spacing: -0.02em;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.location-secondary {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
}

/* Confidence Gauge (see radial gauge section below) */

/* Location Details Grid */
.location-details-grid {
    padding: 8px 20px;
}
.location-detail-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(26, 34, 53, 0.3);
}
.location-detail-item:last-child { border-bottom: none; }
.location-detail-item i {
    width: 28px; height: 28px;
    border-radius: 7px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 11px;
    flex-shrink: 0;
}
.detail-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 1px;
}
.detail-value {
    display: block;
    font-size: 13.5px;
    font-weight: 500;
    color: white;
}

/* Coords Section */
.coords-section {
    padding: 14px 20px 16px;
    background: rgba(0, 0, 0, 0.15);
    border-top: 1px solid rgba(26, 34, 53, 0.3);
}
.coords-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.coord-cell {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.coord-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}
.coord-data {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Confidence badge overlay on image */
.confidence-badge-overlay {
    position: absolute;
    top: 12px; right: 12px;
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    z-index: 2;
    backdrop-filter: blur(8px);
}
.confidence-badge-overlay.badge-high { background: rgba(200, 200, 200, 0.25); color: #cccccc; border: 1px solid rgba(200, 200, 200, 0.3); }
.confidence-badge-overlay.badge-medium { background: rgba(200, 200, 200, 0.25); color: #aaaaaa; border: 1px solid rgba(200, 200, 200, 0.3); }
.confidence-badge-overlay.badge-low { background: rgba(180, 180, 180, 0.25); color: #777777; border: 1px solid rgba(180, 180, 180, 0.3); }

/* Evidence text (location explanation) */
.evidence-text {
    font-size: 13px;
    color: #cccccc;
    line-height: 1.8;
    padding: 12px 14px;
    background: rgba(200, 200, 200, 0.04);
    border-radius: 10px;
    border: 1px solid rgba(200, 200, 200, 0.1);
    margin: 0;
}

/* â•â•â• VISUAL CLUES GRID (UPGRADED) â•â•â• */
.clues-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}
.clue-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: all 0.35s var(--ease-smooth);
}
.clue-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
    transform: translateX(4px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.clue-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    min-width: 22px;
    border-radius: 7px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.1));
    color: var(--accent-cyan);
    font-size: 11px;
    font-weight: 700;
    font-family: var(--font-mono);
    margin-top: 1px;
}
.clue-text {
    font-size: 13px;
    color: #cccccc;
    line-height: 1.6;
}
.field-label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

/* â•â•â• BUTTONS â•â•â• */
.btn-primary {
    background: linear-gradient(135deg, #ffffff, #999999, #999999);
    color: white; border: none; border-radius: 14px;
    padding: 12px 26px; font-weight: 600; font-size: 14px;
    cursor: pointer; transition: all 0.4s var(--ease-smooth);
    position: relative; overflow: hidden;
    font-family: var(--font-sans);
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    box-shadow: 0 4px 20px rgba(255, 255, 255, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1);
    letter-spacing: 0.01em;
}
.btn-primary::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(135deg, #999999, #999999, #888888);
    opacity: 0; transition: opacity 0.4s ease;
}
.btn-primary::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 0; height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    transition: width 0.5s ease, height 0.5s ease;
    transform: translate(-50%, -50%);
}
.btn-primary:hover::before { opacity: 1; }
.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 40px rgba(255, 255, 255, 0.35), 0 0 30px rgba(255, 255, 255, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.2);
}
.btn-primary:active {
    transform: translateY(0) scale(0.97);
    box-shadow: 0 2px 12px rgba(255, 255, 255, 0.2);
}
.btn-primary:active::after {
    width: 200px; height: 200px;
}
.btn-primary span, .btn-primary i { position: relative; z-index: 1; }

.btn-ghost {
    background: rgba(26, 26, 26, 0.25);
    color: var(--text-secondary);
    border: 1px solid rgba(26, 26, 26, 0.6);
    border-radius: 14px; padding: 12px 24px;
    font-weight: 500; font-size: 14px;
    cursor: pointer; transition: all 0.4s var(--ease-smooth);
    font-family: var(--font-sans);
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    position: relative;
    overflow: hidden;
}
.btn-ghost::before {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.03));
    opacity: 0;
    transition: opacity 0.3s ease;
}
.btn-ghost:hover {
    background: rgba(26, 26, 26, 0.45);
    color: var(--text-primary);
    border-color: rgba(255, 255, 255, 0.25);
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.25), 0 0 12px rgba(255, 255, 255, 0.05);
}
.btn-ghost:hover::before { opacity: 1; }
.btn-ghost:active { transform: translateY(0) scale(0.97); }

.btn-full { width: 100%; }

/* â•â•â• INPUTS â•â•â• */
.input-field {
    background: rgba(10, 13, 20, 0.8);
    border: 1px solid var(--dark-border);
    border-radius: 12px; color: var(--text-primary);
    padding: 12px 16px; font-size: 14px;
    width: 100%; transition: all 0.35s var(--ease-smooth);
    font-family: var(--font-sans);
    position: relative;
}
.input-field::placeholder { color: var(--text-muted); transition: color 0.3s ease; }
.input-field:hover { border-color: rgba(255, 255, 255, 0.2); }
.input-field:hover::placeholder { color: #555555; }
.input-field:focus {
    outline: none;
    border-color: rgba(255, 255, 255, 0.45);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.07), 0 0 20px rgba(255, 255, 255, 0.05), 0 4px 16px rgba(0, 0, 0, 0.2);
    background: rgba(10, 10, 10, 0.95);
}
textarea.input-field { resize: none; }

/* ═══ FAQ SECTION ═══ */
.faq-section {
    max-width: 800px;
    margin: 0 auto;
    padding: 80px 20px;
    position: relative;
    content-visibility: auto;
    contain-intrinsic-size: auto 500px;
}
.faq-grid { display: flex; flex-direction: column; gap: 10px; }

.faq-item {
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.45s var(--ease-smooth);
    background: rgba(10, 10, 10, 0.55);
    backdrop-filter: blur(16px);
    position: relative;
}
.faq-item::before {
    content: '';
    position: absolute;
    top: 0; left: 20%; right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
    opacity: 0;
    transition: opacity 0.4s ease;
}
.faq-item:hover::before,
.faq-item.open::before { opacity: 1; left: 10%; right: 10%; }
.faq-item:hover {
    border-color: rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}
.faq-item.open {
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4), 0 0 32px rgba(255, 255, 255, 0.03);
    background: rgba(10, 10, 10, 0.7);
}

.faq-question {
    width: 100%; padding: 20px 24px;
    background: transparent;
    border: none; color: white;
    font-size: 15px; font-weight: 500;
    text-align: left; cursor: pointer;
    display: flex; align-items: center;
    gap: 14px;
    font-family: var(--font-sans);
    transition: all 0.3s ease;
}
.faq-question:hover { background: rgba(255, 255, 255, 0.03); }
.faq-question span { flex: 1; }
.faq-q-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.06);
    color: var(--primary);
    font-size: 13px;
    flex-shrink: 0;
    transition: all 0.4s var(--ease-spring);
}
.faq-item:hover .faq-q-icon {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.12);
}
.faq-item.open .faq-q-icon {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 0 16px rgba(255, 255, 255, 0.1);
    transform: scale(1.05);
}
.faq-chevron {
    font-size: 12px; color: var(--text-muted);
    transition: all 0.4s var(--ease-spring);
    flex-shrink: 0;
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
}
.faq-item:hover .faq-chevron { background: rgba(255,255,255,0.08); }
.faq-item.open .faq-question { color: white; }
.faq-item.open .faq-chevron {
    transform: rotate(180deg);
    color: white;
    background: rgba(255,255,255,0.12);
}

.faq-answer {
    max-height: 0; overflow: hidden;
    transition: max-height 0.5s var(--ease-spring);
}
.faq-item.open .faq-answer { max-height: 300px; }
.faq-answer-inner {
    padding: 0 24px 20px 74px;
    font-size: 14px; line-height: 1.7;
    color: var(--text-secondary);
    opacity: 0;
    transform: translateY(-8px);
    transition: all 0.3s ease 0.1s;
}
.faq-item.open .faq-answer-inner {
    opacity: 1;
    transform: translateY(0);
}
.faq-answer-inner strong { color: var(--primary); font-weight: 600; }

/* ═══ SECTION HEADER (shared) ═══ */
.section-header {
    text-align: center;
    margin-bottom: 48px;
}
.section-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--primary);
    margin-bottom: 14px;
    padding: 5px 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.06);
}
.section-tag i { font-size: 10px; }
.section-title {
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 800;
    color: white;
    margin-bottom: 12px;
    background: linear-gradient(145deg, #ffffff, #cccccc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.section-title .highlight {
    background: var(--gradient-hero);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.section-desc {
    font-size: 15px;
    color: var(--text-secondary);
    max-width: 480px;
    margin: 0 auto;
    line-height: 1.6;
}

/* ═══ BENTO GRID (Capabilities) ═══ */
.capabilities-section {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px 80px;
}
.bento-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.bento-card {
    position: relative;
    background: rgba(10, 10, 10, 0.55);
    border: 1px solid rgba(26, 26, 26, 0.5);
    border-radius: 20px;
    overflow: hidden;
    transition: all 0.5s var(--ease-spring), box-shadow 0.5s ease;
    will-change: transform;
    backdrop-filter: blur(12px);
}
.bento-card-accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.bento-card:hover .bento-card-accent { opacity: 1; }
.bento-card-content {
    padding: 28px;
}
.bento-card.bento-wide {
    grid-column: span 2;
}
.bento-card:hover {
    border-color: rgba(255, 255, 255, 0.22);
    transform: translateY(-4px);
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.45),
        0 0 70px rgba(255, 255, 255, 0.07),
        0 0 30px rgba(255, 255, 255, 0.03),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.bento-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-size: 16px;
    margin-bottom: 18px;
    transition: all 0.45s var(--ease-spring);
}
.bento-icon.bento-icon-lg {
    width: 52px;
    height: 52px;
    font-size: 20px;
}
.bento-card:hover .bento-icon {
    transform: translateY(-3px) scale(1.08);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    border-color: rgba(255, 255, 255, 0.25);
    box-shadow: 0 6px 20px rgba(255, 255, 255, 0.1);
}
.bento-card h3 {
    font-size: 16px;
    font-weight: 700;
    color: white;
    margin-bottom: 8px;
    transition: color 0.35s ease;
    letter-spacing: -0.01em;
}
.bento-card:hover h3 { color: #ffffff; }
.bento-card p {
    font-size: 13px;
    line-height: 1.75;
    color: var(--text-secondary);
}
.bento-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
}
.bento-tag {
    font-size: 10px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary);
    border: 1px solid rgba(255, 255, 255, 0.12);
    letter-spacing: 0.03em;
}

/* ═══ CTA SECTION ═══ */
.cta-section {
    position: relative;
    padding: 80px 20px;
    text-align: center;
    overflow: hidden;
    content-visibility: auto;
    contain-intrinsic-size: auto 400px;
}
.cta-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 700px;
    height: 500px;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02), transparent 70%);
    pointer-events: none;
    animation: cta-glow-breathe 6s ease-in-out infinite;
}
@keyframes cta-glow-breathe {
    0%, 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(1); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
}
.cta-content, .cta-card-inner {
    position: relative;
    z-index: 1;
}
.cta-title {
    font-size: clamp(24px, 3.5vw, 36px);
    font-weight: 800;
    color: white;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
}
.cta-desc {
    font-size: 15px;
    color: var(--text-secondary);
    margin-bottom: 28px;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}
.cta-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}
.btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-sans);
    border: none;
    border-radius: 12px;
    background: white;
    color: #000;
    cursor: pointer;
    transition: all 0.35s var(--ease-smooth);
    text-decoration: none;
    box-shadow: 0 4px 24px rgba(255, 255, 255, 0.15);
    position: relative;
    overflow: hidden;
}
.btn-cta::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 200%; height: 100%;
    background: linear-gradient(90deg, transparent 25%, rgba(0,0,0,0.06) 50%, transparent 75%);
    animation: btn-shimmer-sweep 3s ease-in-out infinite;
}
@keyframes btn-shimmer-sweep {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(50%); }
}
.btn-cta:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 36px rgba(255, 255, 255, 0.25);
}
.btn-cta-ghost {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-sans);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.35s var(--ease-smooth);
    text-decoration: none;
    backdrop-filter: blur(8px);
}
.btn-cta-ghost:hover {
    border-color: rgba(255, 255, 255, 0.25);
    color: white;
    background: rgba(255, 255, 255, 0.08);
    transform: translateY(-3px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* ═══ FOOTER ═══ */
.site-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.04);
    padding: 48px 20px 32px;
    position: relative;
    background: rgba(5, 5, 5, 0.6);
    backdrop-filter: blur(12px);
}
.site-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 400px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.15), transparent);
}
.site-footer::after {
    content: '';
    position: absolute;
    top: -80px; left: 50%;
    transform: translateX(-50%);
    width: 600px; height: 160px;
    background: radial-gradient(ellipse, rgba(255,255,255,0.02), transparent 70%);
    pointer-events: none;
}
.footer-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}
.footer-brand {
    display: flex;
    align-items: center;
    gap: 16px;
}
.footer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
}
.footer-logo .logo-icon {
    width: 32px;
    height: 32px;
}
.footer-logo .logo-text {
    font-size: 14px;
    font-weight: 600;
}
.footer-tagline {
    font-size: 12px;
    color: var(--text-muted);
    padding-left: 16px;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-links, .footer-nav {
    display: flex;
    gap: 20px;
}
.footer-links a, .footer-nav-group a {
    font-size: 12px;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.25s ease;
    padding: 2px 0;
    position: relative;
}
.footer-links a::after, .footer-nav-group a::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 1px;
    background: white;
    transition: width 0.3s ease;
}
.footer-links a:hover::after, .footer-nav-group a:hover::after {
    width: 100%;
}
.footer-links a:hover, .footer-nav-group a:hover {
    color: white;
}
.footer-copy {
    text-align: center;
    width: 100%;
    margin-top: 8px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
}
.footer-copy p {
    font-size: 11px;
    color: var(--text-muted);
    font-family: var(--font-mono);
    opacity: 0.6;
}



/* ═══ FOOTER UPGRADE ═══ */
.footer-tech {
    font-size: 10px;
    opacity: 0.35;
    margin-top: 4px;
    letter-spacing: 0.04em;
}
.footer-glow-line {
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 80%;
    max-width: 600px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.25), transparent);
    animation: footer-glow-pulse 4s ease-in-out infinite;
}
@keyframes footer-glow-pulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}
.footer-nav {
    display: flex;
    gap: 48px;
}
.footer-nav-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.footer-nav-title {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: white;
    margin-bottom: 4px;
    opacity: 0.7;
}
.footer-nav-group a {
    font-size: 13px;
    color: var(--text-muted);
    text-decoration: none;
    transition: all 0.25s ease;
    position: relative;
    padding: 2px 0;
}
.footer-nav-group a::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 1px;
    background: white;
    transition: width 0.3s ease;
}
.footer-nav-group a:hover { color: white; }
.footer-nav-group a:hover::after { width: 100%; }

/* ═══ UPLOAD CARD ANIMATED BORDER ═══ */
.upload-card-border-anim {
    position: absolute;
    inset: -1px;
    border-radius: 25px;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.upload-card-border-anim::before {
    content: '';
    position: absolute;
    inset: -50%;
    width: 200%;
    height: 200%;
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        rgba(255, 255, 255, 0.4) 60deg,
        rgba(255, 255, 255, 0.3) 120deg,
        transparent 180deg,
        rgba(255, 255, 255, 0.3) 240deg,
        rgba(255, 255, 255, 0.2) 300deg,
        transparent 360deg
    );
    animation: border-spin 8s linear infinite;
}
@keyframes border-spin {
    to { transform: rotate(360deg); }
}
.upload-card-border-anim::after {
    content: '';
    position: absolute;
    inset: 1px;
    border-radius: 24px;
    background: rgba(10, 10, 10, 0.88);
}

/* Corner Accents */
.card-corner {
    position: absolute;
    width: 18px;
    height: 18px;
    z-index: 2;
    pointer-events: none;
    pointer-events: none;
}
.card-corner::before, .card-corner::after {
    content: '';
    position: absolute;
    background: var(--accent-cyan);
    opacity: 0.35;
    transition: opacity 0.4s ease;
}
.hero-upload-card:hover .card-corner::before,
.hero-upload-card:hover .card-corner::after {
    opacity: 0.7;
}
.card-corner-tl { top: -1px; left: -1px; }
.card-corner-tl::before { width: 18px; height: 2px; top: 0; left: 0; border-radius: 0 0 2px 0; }
.card-corner-tl::after  { width: 2px; height: 18px; top: 0; left: 0; border-radius: 0 0 0 2px; }
.card-corner-tr { top: -1px; right: -1px; }
.card-corner-tr::before { width: 18px; height: 2px; top: 0; right: 0; }
.card-corner-tr::after  { width: 2px; height: 18px; top: 0; right: 0; }
.card-corner-bl { bottom: -1px; left: -1px; }
.card-corner-bl::before { width: 18px; height: 2px; bottom: 0; left: 0; }
.card-corner-bl::after  { width: 2px; height: 18px; bottom: 0; left: 0; }
.card-corner-br { bottom: -1px; right: -1px; }
.card-corner-br::before { width: 18px; height: 2px; bottom: 0; right: 0; }
.card-corner-br::after  { width: 2px; height: 18px; bottom: 0; right: 0; }

/* Scan Line */
.upload-scan-line {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.5), transparent);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.2), 0 2px 30px rgba(255, 255, 255, 0.1);
    z-index: 10;
    animation: scan-move 4s ease-in-out infinite;
    pointer-events: none;
    opacity: 0.6;
}
@keyframes scan-move {
    0% { top: 0%; opacity: 0; }
    5% { opacity: 0.6; }
    50% { top: 100%; opacity: 0.6; }
    55% { opacity: 0; }
    100% { top: 0%; opacity: 0; }
}

/* Mode Badge Dot */
.mode-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 6px rgba(200, 200, 200, 0.5);
    display: inline-block;
    margin-right: 5px;
    animation: pulse-dot 2s ease-in-out infinite;
}

/* ═══ HOW IT WORKS SECTION ═══ */
.how-it-works-section {
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 20px 40px;
    position: relative;
    content-visibility: auto;
    contain-intrinsic-size: auto 600px;
}
.how-it-works-section::before {
    content: '';
    position: absolute;
    top: 40px; left: 50%;
    transform: translateX(-50%);
    width: 500px; height: 500px;
    background: radial-gradient(ellipse, rgba(255,255,255,0.03), transparent 70%);
    pointer-events: none;
}
.steps-row {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    position: relative;
}
.step-card {
    position: relative;
    background: rgba(10, 10, 10, 0.65);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 20px;
    padding: 36px 28px 32px;
    text-align: center;
    flex: 1;
    max-width: 300px;
    transition: all 0.5s var(--ease-spring);
    overflow: hidden;
    backdrop-filter: blur(20px);
}
.step-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 20px;
    background: radial-gradient(300px circle at var(--spotlight-x, 50%) var(--spotlight-y, 0%), rgba(255, 255, 255, 0.06), transparent);
    opacity: 0;
    transition: opacity 0.5s ease;
    pointer-events: none;
}
.step-card::after {
    content: '';
    position: absolute;
    top: 0; left: 20%; right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    opacity: 0;
    transition: opacity 0.5s ease;
}
.step-card:hover::before { opacity: 1; }
.step-card:hover::after { opacity: 1; }
.step-card:hover {
    border-color: rgba(255, 255, 255, 0.15);
    transform: translateY(-8px);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5), 0 0 48px rgba(255, 255, 255, 0.04);
}
.step-number {
    position: absolute;
    top: 14px;
    right: 18px;
    font-size: 56px;
    font-weight: 900;
    font-family: var(--font-mono);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
    pointer-events: none;
    transition: all 0.5s ease;
}
.step-card:hover .step-number {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06));
    -webkit-background-clip: text;
    background-clip: text;
}
.step-icon-wrap {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 22px;
    color: var(--primary);
    transition: all 0.5s var(--ease-spring);
    position: relative;
    z-index: 1;
}
.step-card:hover .step-icon-wrap {
    transform: scale(1.1) translateY(-3px);
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.25);
    box-shadow: 0 8px 32px rgba(255, 255, 255, 0.1);
}
.step-card h3 {
    font-size: 16px;
    font-weight: 700;
    color: white;
    margin-bottom: 8px;
    position: relative;
    z-index: 1;
}
.step-card p {
    font-size: 13px;
    line-height: 1.7;
    color: var(--text-secondary);
    position: relative;
    z-index: 1;
}
.step-connector {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    flex-shrink: 0;
    position: relative;
    color: var(--text-muted);
    font-size: 10px;
}
.step-connector-line {
    position: absolute;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, rgba(255,255,255,0.1), rgba(255,255,255,0.25), rgba(255,255,255,0.1));
    animation: step-line-pulse 3s ease-in-out infinite;
}
@keyframes step-line-pulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}
.step-connector .step-arrow {
    position: relative;
    z-index: 1;
    background: var(--dark-bg);
    padding: 4px;
    color: rgba(255, 255, 255, 0.4);
    transition: color 0.3s ease;
}
.steps-row:hover .step-connector .step-arrow {
    color: rgba(255, 255, 255, 0.7);
}

/* ═══ SOCIAL PROOF STATS BAR ═══ */
.social-proof-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 900px;
    margin: 0 auto;
    padding: 48px 20px;
    position: relative;
    background: rgba(10, 10, 10, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 18px;
    backdrop-filter: blur(16px);
}
.social-proof-bar::before {
    content: '';
    position: absolute;
    top: 0; left: 20%; right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
}
.social-proof-bar::after {
    content: '';
    position: absolute;
    bottom: 0; left: 20%; right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
}
.proof-stat {
    text-align: center;
    padding: 0 36px;
    position: relative;
}
.proof-value {
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: white;
    font-family: var(--font-sans);
    transition: text-shadow 0.3s ease;
}
.proof-stat:hover .proof-value {
    text-shadow: 0 0 24px rgba(255, 255, 255, 0.25);
}
.proof-suffix {
    font-size: 26px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.7);
}
.proof-label {
    display: block;
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    margin-top: 6px;
}
.proof-divider {
    width: 1px;
    height: 40px;
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.15), transparent);
    flex-shrink: 0;
}

/* ═══ CTA BORDER CARD ═══ */
.cta-border-card {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    border-radius: 24px;
    overflow: hidden;
}
.cta-border-anim {
    position: absolute;
    inset: 0;
    border-radius: 24px;
    overflow: hidden;
    z-index: 0;
}
.cta-border-anim::before {
    content: '';
    position: absolute;
    inset: -50%;
    width: 200%;
    height: 200%;
    background: conic-gradient(
        from 0deg,
        rgba(255, 255, 255, 0.4) 0deg,
        rgba(255, 255, 255, 0.3) 90deg,
        rgba(255, 255, 255, 0.3) 180deg,
        rgba(255, 255, 255, 0.3) 270deg,
        rgba(255, 255, 255, 0.4) 360deg
    );
    animation: border-spin 6s linear infinite;
}
.cta-card-inner {
    position: relative;
    z-index: 1;
    background: rgba(10, 10, 10, 0.92);
    border-radius: 23px;
    margin: 1px;
    padding: 48px 40px;
    text-align: center;
}
.cta-icon-ring {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.06));
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--accent-cyan);
    font-size: 20px;
    animation: cta-icon-pulse 3s ease-in-out infinite;
}
@keyframes cta-icon-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.2); }
    50%      { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); }
}

/* ═══ BENTO CARD SPOTLIGHT EFFECT ═══ */
.bento-card {
    --spotlight-x: 50%;
    --spotlight-y: 50%;
}
.bento-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 20px;
    background: radial-gradient(
        400px circle at var(--spotlight-x) var(--spotlight-y),
        rgba(255, 255, 255, 0.08),
        transparent 60%
    );
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 0;
    pointer-events: none;
}
.bento-card:hover::before { opacity: 1; }
.bento-card-content { position: relative; z-index: 1; }

/* Bento card corner dots */
.bento-card::after {
    content: '';
    position: absolute;
    top: 12px;
    right: 12px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0);
    transition: all 0.4s ease;
    z-index: 2;
}
.bento-card:hover::after {
    background: rgba(255, 255, 255, 0.5);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
}

/* â•â•â• MODAL â•â•â• */
.modal-backdrop {
    position: fixed; inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(16px);
    z-index: 2000;
    display: none;
    align-items: center; justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.modal-backdrop.active { display: flex; opacity: 1; }
.modal-panel {
    background: rgba(10, 13, 20, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 22px;
    backdrop-filter: blur(32px) saturate(1.3);
    -webkit-backdrop-filter: blur(32px) saturate(1.3);
    box-shadow:
        0 32px 100px rgba(0,0,0,0.6),
        0 0 60px rgba(255, 255, 255, 0.04),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
    padding: 28px;
    max-width: 420px; width: 100%;
    margin: 0 16px;
    animation: modal-enter 0.4s var(--ease-spring) forwards;
}
@keyframes modal-enter {
    0%   { opacity: 0; transform: scale(0.92) translateY(24px); }
    100% { opacity: 1; transform: scale(1) translateY(0); }
}
.modal-header {
    display: flex; align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}
.modal-header-left { display: flex; align-items: center; gap: 12px; }
.modal-title { font-size: 18px; font-weight: 600; color: white; }
.modal-subtitle { font-size: 12px; color: var(--text-muted); }
.modal-close {
    width: 32px; height: 32px;
    border-radius: 8px; border: none;
    display: flex; align-items: center; justify-content: center;
    background: transparent; color: var(--text-muted);
    cursor: pointer; transition: all 0.2s ease;
    font-size: 14px;
}
.modal-close:hover { background: var(--dark-hover); color: var(--text-secondary); }
.modal-actions { display: flex; gap: 12px; margin-top: 20px; }
.modal-actions .btn-primary,
.modal-actions .btn-ghost { flex: 1; }
.modal-note {
    margin-top: 16px;
    font-size: 11px; color: var(--text-muted);
    display: flex; align-items: center; gap: 6px;
}

/* Info box */
.info-box {
    background: rgba(13, 13, 13, 0.6);
    border: 1px solid rgba(34, 34, 34, 0.6);
    border-radius: 8px; padding: 12px;
    margin-bottom: 16px;
}
.info-box .label { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #666666; margin-bottom: 4px; }
.info-box a {
    color: var(--primary); font-size: 12px;
    text-decoration: none; display: flex;
    align-items: center; gap: 4px; margin-left: 20px;
    transition: color 0.2s ease;
}
.info-box a:hover { color: #ffffff; }

/* API Key status */
.api-status { margin-top: 8px; font-size: 12px; display: none; }
.api-status.error { color: var(--danger); display: block; }
.api-status.success { color: var(--success); display: block; }

/* â•â•â• TOAST â•â•â• */
.toast {
    position: fixed; bottom: 24px; left: 50%;
    transform: translateX(-50%) translateY(100px) scale(0.9);
    background: rgba(10, 13, 20, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 14px; padding: 14px 24px;
    color: var(--text-primary); font-size: 13px;
    backdrop-filter: blur(28px); z-index: 9000;
    transition: all 0.5s var(--ease-spring);
    pointer-events: none;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5), 0 0 20px rgba(255, 255, 255, 0.05);
    opacity: 0;
}
.toast.show {
    transform: translateX(-50%) translateY(0) scale(1);
    opacity: 1;
}

/* â•â•â• SCAN COMPLETE NOTIFICATION â•â•â• */
.scan-complete-notif {
    position: fixed;
    top: 68px;
    right: 20px;
    z-index: 9001;
    min-width: 320px;
    max-width: 420px;
    background: rgba(10, 20, 15, 0.95);
    border: 1px solid rgba(200, 200, 200, 0.3);
    border-radius: 14px;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 30px rgba(200, 200, 200, 0.08);
    transform: translateX(120%) scale(0.95);
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
    overflow: hidden;
}
.scan-complete-notif.show {
    transform: translateX(0) scale(1);
    opacity: 1;
    pointer-events: all;
}
.scan-complete-inner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}
.scan-complete-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(200, 200, 200, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 16px;
    color: #cccccc;
    animation: scan-check-pop 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}
@keyframes scan-check-pop {
    0% { transform: scale(0) rotate(-45deg); }
    60% { transform: scale(1.2) rotate(5deg); }
    100% { transform: scale(1) rotate(0deg); }
}
.scan-complete-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}
.scan-complete-title {
    font-size: 13px;
    font-weight: 600;
    color: #cccccc;
    letter-spacing: -0.01em;
}
.scan-complete-detail {
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.scan-complete-timer {
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 500;
    color: var(--text-muted);
    flex-shrink: 0;
}
.scan-complete-close {
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-muted);
    font-size: 11px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    flex-shrink: 0;
}
.scan-complete-close:hover {
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-secondary);
}
.scan-complete-progress {
    height: 3px;
    background: linear-gradient(90deg, #cccccc, #cccccc);
    border-radius: 0 0 14px 14px;
    width: 100%;
    transform-origin: left;
    animation: scan-progress-shrink 5s linear forwards;
    animation-play-state: paused;
}
.scan-complete-notif.show .scan-complete-progress {
    animation-play-state: running;
}
@keyframes scan-progress-shrink {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

[data-theme="light"] .scan-complete-notif {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(200, 200, 200, 0.25);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12), 0 0 20px rgba(200, 200, 200, 0.06);
}
[data-theme="light"] .scan-complete-detail { color: #555555; }

/* â•â•â• SOCIAL MEDIA LINKS â•â•â• */
.social-links {
    grid-template-columns: 1fr 1fr !important;
}
.social-link {
    position: relative;
    overflow: hidden;
}
.social-link::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.3s ease;
    border-radius: 7px;
}
.social-link:hover::before {
    opacity: 1;
}
.social-instagram:hover {
    border-color: rgba(225, 48, 108, 0.35) !important;
    color: #888888 !important;
}
.social-instagram::before { background: linear-gradient(135deg, rgba(131,58,180,0.08), rgba(225,48,108,0.08), rgba(252,175,69,0.08)); }

.social-twitter:hover {
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}
.social-twitter::before { background: rgba(255, 255, 255, 0.04); }

.social-flickr:hover {
    border-color: rgba(0, 99, 220, 0.35) !important;
    color: #ffffff !important;
}
.social-flickr::before { background: rgba(0, 99, 220, 0.06); }

.social-youtube:hover {
    border-color: rgba(255, 0, 0, 0.3) !important;
    color: #888888 !important;
}
.social-youtube::before { background: rgba(255, 0, 0, 0.05); }

.social-tiktok:hover {
    border-color: rgba(255, 0, 80, 0.3) !important;
    color: #999999 !important;
}
.social-tiktok::before { background: rgba(255, 0, 80, 0.05); }

.social-reddit:hover {
    border-color: rgba(255, 69, 0, 0.3) !important;
    color: #999999 !important;
}
.social-reddit::before { background: rgba(255, 69, 0, 0.05); }

.social-pinterest:hover {
    border-color: rgba(230, 0, 35, 0.3) !important;
    color: #888888 !important;
}
.social-pinterest::before { background: rgba(230, 0, 35, 0.05); }

.social-wikipedia:hover {
    border-color: rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
}
.social-wikipedia::before { background: rgba(255, 255, 255, 0.04); }

[data-theme="light"] .social-instagram:hover { color: #888888 !important; }
[data-theme="light"] .social-twitter:hover { color: #141414 !important; }
[data-theme="light"] .social-flickr:hover { color: #ffffff !important; }

/* â•â•â• IMAGE PREVIEW â•â•â• */
.preview-image {
    width: 100%; height: 176px;
    object-fit: cover; border-radius: 12px 12px 0 0;
}

/* â•â•â• ANIMATIONS â•â•â• */
@keyframes pulse-ring {
    0% { transform: scale(0.8); opacity: 0.6; }
    50% { transform: scale(1.15); opacity: 0; }
    100% { transform: scale(0.8); opacity: 0; }
}
@keyframes orbit {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes fade-up {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes marker-bounce {
    0%, 100% { transform: translateY(0); }
    15% { transform: translateY(-20px); }
    35% { transform: translateY(-8px); }
    55% { transform: translateY(-3px); }
}
@keyframes float-subtle {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

/* â•â•â• DRAG & DROP â•â•â• */
.drag-over {
    outline: 2px dashed rgba(255, 255, 255, 0.5) !important;
    outline-offset: -4px;
    background-color: rgba(255, 255, 255, 0.03) !important;
}

/* â•â•â• SPEED BADGES (Hero) â•â•â• */
.speed-badges {
    display: flex; gap: 12px;
    justify-content: center;
    margin-top: 24px;
    flex-wrap: wrap;
}
.speed-badge {
    display: flex; align-items: center; gap: 8px;
    background: rgba(10, 13, 20, 0.5);
    border: 1px solid rgba(26, 34, 53, 0.5);
    border-radius: 10px; padding: 9px 16px;
    font-size: 12px; color: var(--text-secondary);
    transition: all 0.35s var(--ease-smooth);
    backdrop-filter: blur(8px);
}
.speed-badge:hover {
    border-color: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}
.speed-badge i { color: var(--accent-indigo); font-size: 10px; }
.speed-badge strong { color: white; font-weight: 600; }

/* â•â•â• CLEAR BUTTON â•â•â• */
.clear-btn {
    background: none; border: none;
    color: var(--text-muted); cursor: pointer;
    font-size: 11px; padding: 4px;
    transition: color 0.2s ease;
    font-family: var(--font-sans);
}
.clear-btn:hover { color: var(--text-secondary); }

/* â•â•â• USER DROPDOWN MENU â•â•â• */
.user-menu-wrap {
    position: relative;
}
.user-avatar-btn {
    transition: all 0.3s var(--ease-smooth);
    border: 2px solid transparent !important;
}
.user-avatar-btn:hover {
    border-color: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.08);
    box-shadow: 0 0 16px rgba(255, 255, 255, 0.2);
}
.user-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 240px;
    background: rgba(13, 13, 13, 0.97);
    border: 1px solid rgba(34, 34, 34, 0.8);
    border-radius: 16px;
    backdrop-filter: blur(32px) saturate(1.2);
    -webkit-backdrop-filter: blur(32px) saturate(1.2);
    box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 30px rgba(255, 255, 255, 0.04);
    display: none;
    z-index: 200;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-8px) scale(0.96);
    transition: all 0.3s var(--ease-spring);
}
.user-dropdown.active {
    display: block;
    opacity: 1;
    transform: translateY(0) scale(1);
}
.user-dropdown-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
}
.user-dropdown-avatar {
    width: 36px; height: 36px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: white; font-size: 12px; font-weight: 700;
    flex-shrink: 0;
}
.user-dropdown-name {
    font-size: 14px; font-weight: 600; color: white;
}
.user-dropdown-email {
    font-size: 11px; color: var(--text-muted);
    word-break: break-all;
}
.user-dropdown-divider {
    height: 1px;
    background: var(--dark-border);
}
.user-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    font-size: 13px;
    color: var(--text-secondary);
    text-decoration: none;
    transition: all 0.2s ease;
}
.user-dropdown-item:hover {
    background: var(--dark-hover);
    color: var(--text-primary);
}
.user-dropdown-item i {
    width: 16px; text-align: center; font-size: 12px;
}
.user-dropdown-danger:hover {
    color: var(--danger) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  SATELLITE / INTEL ENHANCEMENT         */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Coordinate overlay on map */
.coord-overlay {
    position: absolute;
    bottom: 8px; right: 8px;
    z-index: 500;
    display: none;
    align-items: center; gap: 10px;
    padding: 6px 12px;
    background: rgba(8, 8, 8, 0.85);
    border: 1px solid rgba(34, 34, 34, 0.5);
    border-radius: 8px;
    backdrop-filter: blur(8px);
    font-family: 'JetBrains Mono', monospace;
}
.coord-display-text {
    font-size: 11px;
    color: var(--primary);
    letter-spacing: 0.3px;
    cursor: pointer;
    transition: color 0.2s;
}
.coord-display-text:hover {
    color: #cccccc;
}
.coord-copy-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 10px;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 4px;
    transition: color 0.2s, background 0.2s;
}
.coord-copy-btn:hover {
    color: var(--primary);
    background: rgba(255, 255, 255, 0.12);
}
.coord-zoom {
    font-size: 10px;
    color: var(--text-muted);
    padding: 2px 6px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 4px;
}

/* Street View Embed Panel */
.street-view-panel {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: var(--glass-bg);
    border-top: 1px solid var(--glass-border);
    z-index: 800;
    display: flex;
    flex-direction: column;
    animation: streetViewSlideUp 0.3s ease-out;
}
@keyframes streetViewSlideUp {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.street-view-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    background: rgba(8, 8, 8, 0.6);
    border-bottom: 1px solid var(--glass-border);
}
.street-view-close {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    transition: all 0.15s;
}
.street-view-close:hover { color: #777777; background: rgba(180, 180, 180, 0.1); }
.street-view-frame {
    flex: 1;
    border: none;
    width: 100%;
}
.sv-panel-no-avail {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(10, 14, 21, 0.9);
    backdrop-filter: blur(4px);
}

/* Intel grid */
.intel-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.intel-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    background: rgba(8, 8, 8, 0.4);
    border-radius: 8px;
    border: 1px solid rgba(34, 34, 34, 0.25);
}
.intel-label {
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
}
.intel-label i { font-size: 10px; color: var(--primary); width: 14px; text-align: center; }
.intel-value {
    font-size: 13px;
    color: var(--text-primary);
    font-weight: 500;
}

/* Intel list */
.intel-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.intel-list-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    transition: all 0.2s ease;
}
.intel-list-item:hover {
    background: rgba(15, 15, 15, 0.5);
}
.intel-list-item i {
    color: var(--primary);
    font-size: 12px;
    width: 16px;
    text-align: center;
    flex-shrink: 0;
}
.intel-list-item span {
    font-size: 13px;
    color: var(--text-secondary);
}
.intel-list-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.intel-list-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.intel-list-meta {
    font-size: 11px;
    color: var(--text-muted);
}
.intel-list-empty {
    font-size: 13px;
    color: var(--text-muted);
    text-align: center;
    padding: 16px;
}
.intel-loading {
    font-size: 13px;
    color: var(--text-muted);
    text-align: center;
    padding: 16px;
}

/* Visual Clues */
.clues-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.clue-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.clue-item i {
    color: #999999;
    font-size: 11px;
    margin-top: 3px;
    flex-shrink: 0;
}
.clue-item span {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Coordinate Formats */
.coord-formats {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.coord-format-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: rgba(8, 8, 8, 0.4);
    border-radius: 8px;
    border: 1px solid rgba(34, 34, 34, 0.25);
}
.coord-format-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--primary);
    width: 50px;
    flex-shrink: 0;
}
.coord-format-value {
    flex: 1;
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text-secondary);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.copy-btn-sm {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px;
    font-size: 10px;
    transition: color 0.2s;
    flex-shrink: 0;
}
.copy-btn-sm:hover { color: var(--primary); }

/* Card badges */
.card-badge-live {
    font-size: 10px;
    font-weight: 600;
    color: var(--danger);
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    animation: pulse-live 2s infinite;
}
.card-badge-live i { font-size: 6px; }
@keyframes pulse-live {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.card-subtitle {
    font-size: 11px;
    color: var(--text-muted);
    margin-left: auto;
}

/* Weather */
.weather-hero {
    text-align: center;
    padding: 16px 0;
    margin-bottom: 16px;
    border-bottom: 1px solid rgba(34, 34, 34, 0.3);
}
.weather-temp {
    font-size: 36px;
    font-weight: 700;
    color: white;
    line-height: 1;
    margin-bottom: 4px;
}
.weather-desc {
    font-size: 14px;
    color: var(--text-secondary);
    margin-bottom: 4px;
}
.weather-feels {
    font-size: 12px;
    color: var(--text-muted);
}
.weather-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.weather-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px;
    background: rgba(8, 8, 8, 0.4);
    border-radius: 8px;
    border: 1px solid rgba(34, 34, 34, 0.25);
}
.weather-stat i {
    color: var(--primary);
    font-size: 14px;
}
.weather-stat-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.weather-stat-value {
    font-size: 14px;
    font-weight: 600;
    color: white;
    font-family: 'JetBrains Mono', monospace;
}

/* Sun & Time grid */
.sun-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.sun-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    background: rgba(8, 8, 8, 0.4);
    border-radius: 8px;
    border: 1px solid rgba(34, 34, 34, 0.25);
}
.sun-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sun-value {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Elevation */
.elevation-display {
    text-align: center;
    padding: 16px 0;
}
.elevation-value {
    font-size: 32px;
    font-weight: 700;
    color: var(--success);
    font-family: 'JetBrains Mono', monospace;
}
.elevation-sub {
    font-size: 14px;
    color: var(--text-muted);
    font-family: 'JetBrains Mono', monospace;
    margin-bottom: 8px;
}
.elevation-category {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 12px;
    border-radius: 20px;
    background: rgba(200, 200, 200, 0.1);
    color: var(--success);
    border: 1px solid rgba(200, 200, 200, 0.2);
}

/* Measurement */
.measure-result {
    margin-top: 12px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.measure-label {
    font-size: 12px;
    color: var(--text-muted);
}
.measure-value {
    font-size: 14px;
    font-weight: 700;
    color: var(--primary);
    font-family: 'JetBrains Mono', monospace;
}
.measure-marker-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--primary);
    color: #000;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.measure-marker { background: none !important; border: none !important; }

/* Quick Links */
.quick-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 10px;
}
.quick-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px;
    background: rgba(8, 8, 8, 0.4);
    border: 1px solid rgba(34, 34, 34, 0.3);
    border-radius: 8px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    transition: all 0.3s ease;
}
.quick-link:hover {
    border-color: rgba(255, 255, 255, 0.3);
    color: var(--accent-indigo);
    transform: translateY(-1px);
}
.quick-link i { font-size: 11px; }

/* Button active state for measure */
.btn-ghost.active {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    color: var(--accent-indigo) !important;
}

@media (max-width: 768px) {
    .intel-grid { grid-template-columns: 1fr; }
    .weather-grid { grid-template-columns: 1fr 1fr; }
    .sun-grid { grid-template-columns: 1fr; }
    .quick-links { grid-template-columns: 1fr; }
    .osint-risk-grid { grid-template-columns: 1fr; }
    .location-primary { font-size: 17px; }
    .location-header { padding: 16px 16px 12px; gap: 12px; }
    .location-header-icon { width: 38px; height: 38px; font-size: 15px; }
    .location-details-grid { padding: 6px 16px; }
    .coords-section { padding: 12px 16px 14px; }
    .coords-grid { gap: 10px; }
    .clues-grid { grid-template-columns: 1fr; }
    .forensic-body { grid-template-columns: 1fr; }
    .analysis-section-item { padding: 10px 12px; }
    .section-icon { width: 28px; height: 28px; min-width: 28px; font-size: 11px; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  OSINT Assessment Styles                              */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Confidence Score Bar */
.confidence-bar {
    flex: 1;
    height: 8px;
    background: var(--dark-border);
    border-radius: 4px;
    overflow: hidden;
}
.confidence-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 1s var(--ease-spring);
}
.confidence-bar-fill.score-high { background: linear-gradient(90deg, #cccccc, #ffffff); }
.confidence-bar-fill.score-medium { background: linear-gradient(90deg, #aaaaaa, #999999); }
.confidence-bar-fill.score-low { background: linear-gradient(90deg, #777777, #777777); }

/* ── Radial Confidence Gauge ── */
.confidence-gauge-section {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(26, 34, 53, 0.4);
}
.confidence-gauge-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.confidence-gauge {
    position: relative;
    width: 100px;
    height: 100px;
}
.gauge-svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}
.gauge-track {
    fill: none;
    stroke: var(--dark-border);
    stroke-width: 6;
}
.gauge-fill {
    fill: none;
    stroke: #ffffff;
    stroke-width: 6;
    stroke-linecap: round;
    filter: drop-shadow(0 0 6px currentColor);
}
.gauge-center {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1px;
}
.gauge-value {
    font-size: 28px;
    font-weight: 800;
    font-family: var(--font-mono);
    color: white;
    letter-spacing: -0.03em;
    line-height: 1;
}
.gauge-unit {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-muted);
    margin-top: 4px;
}
.gauge-glow {
    position: absolute;
    inset: -10px;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.5;
    animation: gauge-pulse 3s ease-in-out infinite;
}
@keyframes gauge-pulse {
    0%, 100% { opacity: 0.3; transform: scale(0.95); }
    50% { opacity: 0.6; transform: scale(1.05); }
}
.gauge-label-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.gauge-label {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--text-muted);
}
.gauge-sublabel {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #ffffff;
}
.confidence-stats-mini {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.stat-mini {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
    transition: all 0.25s var(--ease-smooth);
}
.stat-mini:hover {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.12);
}
.stat-mini-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));
    color: #ffffff;
    font-size: 12px;
    flex-shrink: 0;
}
.stat-mini-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.stat-mini-val {
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: white;
    line-height: 1.2;
}
.stat-mini-label {
    font-size: 10px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

/* OSINT Risk Grid */
.osint-risk-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.osint-risk-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    border: 1px solid var(--dark-border);
}
.osint-risk-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}
.osint-risk-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.3px;
}
.risk-none, .risk-low { background: rgba(200, 200, 200, 0.12); color: #cccccc; border: 1px solid rgba(200, 200, 200, 0.2); }
.risk-normal { background: rgba(255, 255, 255, 0.12); color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.2); }
.risk-medium, .risk-elevated { background: rgba(200, 200, 200, 0.12); color: #aaaaaa; border: 1px solid rgba(200, 200, 200, 0.2); }
.risk-high { background: rgba(180, 180, 180, 0.12); color: #777777; border: 1px solid rgba(180, 180, 180, 0.2); }

/* OSINT tab pane extra styling */
#osintPane .intel-grid { margin-top: 8px; }
#osintPane .intel-item {
    border-left: 2px solid rgba(251, 146, 60, 0.3);
    padding-left: 12px;
}
#osintPane .result-card { animation: fadeSlideUp 0.4s var(--ease-spring) both; }
#osintPane .result-card:nth-child(1) { animation-delay: 0s; }
#osintPane .result-card:nth-child(2) { animation-delay: 0.08s; }
#osintPane .result-card:nth-child(3) { animation-delay: 0.16s; }
#osintPane .result-card:nth-child(4) { animation-delay: 0.24s; }

@keyframes fadeSlideUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  LIGHT THEME                                          */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] {
    --dark-bg: #f0f0f0;
    --dark-surface: #ffffff;
    --dark-card: #ffffff;
    --dark-border: #d1d1d1;
    --dark-hover: #e8e8e8;
    --text-primary: #1a1a1a;
    --text-secondary: #555555;
    --text-muted: #888888;
    --glass-bg: rgba(255, 255, 255, 0.75);
    --glass-border: rgba(209, 217, 224, 0.6);
    --primary-glow: rgba(255, 255, 255, 0.12);
    --primary-soft: rgba(255, 255, 255, 0.06);
}

[data-theme="light"] body {
    background: var(--dark-bg);
    color: var(--text-primary);
}

[data-theme="light"] .site-header {
    background: rgba(255, 255, 255, 0.85);
    border-color: rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .site-header.scrolled {
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
    border-color: rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .logo-text { color: #1a1a1a; }

[data-theme="light"] .nav-btn {
    background: rgba(0, 0, 0, 0.04);
    color: #555555;
}
[data-theme="light"] .nav-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--primary-dim);
}

[data-theme="light"] .aurora-bg,
[data-theme="light"] .aurora-orb,
[data-theme="light"] .aurora-orb-1,
[data-theme="light"] .aurora-orb-2,
[data-theme="light"] .grid-bg {
    opacity: 0.15;
}

[data-theme="light"] body::after {
    opacity: 0.008;
}

[data-theme="light"] .hero-title { color: #1a1a1a; }
[data-theme="light"] .hero-subtitle { color: #555555; }
[data-theme="light"] .faq-q-icon {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
}
[data-theme="light"] .hero-badge {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
    border-color: rgba(255, 255, 255, 0.15);
}

[data-theme="light"] .hero-upload-card {
    background: rgba(255, 255, 255, 0.92);
}
[data-theme="light"] .upload-card-glow {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.1));
}
[data-theme="light"] .upload-card-inner {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
}
[data-theme="light"] .upload-card-header {
    border-bottom-color: var(--dark-border);
}
[data-theme="light"] .upload-card-title { color: #1a1a1a; }
[data-theme="light"] .upload-card-mode-badge {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
}
[data-theme="light"] .upload-context-summary {
    background: rgba(0, 0, 0, 0.02);
    color: #555555;
}
[data-theme="light"] .upload-status-msg { color: #555555; }

[data-theme="light"] .input-field {
    background: rgba(0, 0, 0, 0.03);
    border-color: var(--dark-border);
    color: var(--text-primary);
}
[data-theme="light"] .input-field::placeholder { color: #888888; }
[data-theme="light"] .input-field:focus {
    border-color: var(--primary);
    background: white;
}

[data-theme="light"] .glass-card,
[data-theme="light"] .result-card.glass-card {
    background: rgba(255, 255, 255, 0.9);
    border-color: var(--dark-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

[data-theme="light"] .bento-card {
    background: rgba(255, 255, 255, 0.85);
    border-color: var(--dark-border);
}
[data-theme="light"] .bento-card h3 { color: #1a1a1a; }
[data-theme="light"] .bento-card p { color: #555555; }
[data-theme="light"] .bento-card-accent {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.2), transparent);
}
[data-theme="light"] .bento-icon {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
}
[data-theme="light"] .bento-tag {
    background: rgba(255, 255, 255, 0.06);
    color: var(--primary-dim);
    border-color: rgba(255, 255, 255, 0.12);
}
[data-theme="light"] .section-header .section-tag {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
    border-color: rgba(255, 255, 255, 0.15);
}
[data-theme="light"] .section-title { color: #1a1a1a; }
[data-theme="light"] .section-desc { color: #555555; }
[data-theme="light"] .cta-section {
    background: rgba(255, 255, 255, 0.04);
}
[data-theme="light"] .cta-glow {
    background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, 0.08), transparent 70%);
}
[data-theme="light"] .cta-title { color: #1a1a1a; }
[data-theme="light"] .cta-desc { color: #555555; }
[data-theme="light"] .btn-cta-ghost {
    border-color: var(--dark-border);
    color: #555555;
}
[data-theme="light"] .btn-cta-ghost:hover {
    border-color: var(--primary-dim);
    color: var(--primary-dim);
}
[data-theme="light"] .site-footer {
    border-top-color: var(--dark-border);
}
[data-theme="light"] .footer-tagline { color: #555555; }
[data-theme="light"] .footer-links a, [data-theme="light"] .footer-nav-group a { color: #555555; }
[data-theme="light"] .footer-links a:hover, [data-theme="light"] .footer-nav-group a:hover { color: var(--primary-dim); }
[data-theme="light"] .footer-copy { color: #888888; }
[data-theme="light"] .footer-nav-title { color: #555555; }
[data-theme="light"] .footer-tech { color: #888888; }
[data-theme="light"] .footer-glow-line { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent); }
[data-theme="light"] .step-card {
    background: rgba(255, 255, 255, 0.7);
    border-color: var(--dark-border);
}
[data-theme="light"] .step-card h3 { color: #1a1a1a; }
[data-theme="light"] .step-card p { color: #555555; }
[data-theme="light"] .step-number { background: linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.03)); -webkit-background-clip: text; background-clip: text; }
[data-theme="light"] .step-icon-wrap {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
    border-color: rgba(255, 255, 255, 0.1);
}
[data-theme="light"] .step-connector i, [data-theme="light"] .step-arrow { background: #f8f8f8; }
[data-theme="light"] .social-proof-bar::before,
[data-theme="light"] .social-proof-bar::after { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); }
[data-theme="light"] .proof-label { color: #666666; }
[data-theme="light"] .proof-divider { background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.12), transparent); }
[data-theme="light"] .cta-card-inner { background: rgba(255, 255, 255, 0.92); }
[data-theme="light"] .cta-icon-ring {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
    border-color: rgba(255, 255, 255, 0.12);
}
[data-theme="light"] .upload-card-border-anim::after { background: rgba(255, 255, 255, 0.92); }
[data-theme="light"] .upload-scan-line { opacity: 0.3; }
[data-theme="light"] .hero-metric-value { color: #1a1a1a; }
[data-theme="light"] .hero-metric-label { color: #666666; }
[data-theme="light"] .hero-metric-divider { background: var(--dark-border); }
[data-theme="light"] .hero-trust-item { color: #555555; }
[data-theme="light"] .orbit-badge {
    background: rgba(255, 255, 255, 0.85);
    border-color: var(--dark-border);
    color: #555555;
}
[data-theme="light"] .hero-line {
    background: linear-gradient(145deg, #1a1a1a 0%, #333333 50%, #444444 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

[data-theme="light"] .faq-item {
    background: rgba(255, 255, 255, 0.85);
    border-color: var(--dark-border);
}
[data-theme="light"] .faq-question span { color: #1a1a1a; }
[data-theme="light"] .faq-answer-inner { color: #555555; }

[data-theme="light"] .speed-badge {
    background: rgba(255, 255, 255, 0.7);
    border-color: var(--dark-border);
    color: #555555;
}

[data-theme="light"] .btn-ghost {
    border-color: var(--dark-border);
    color: #555555;
}
[data-theme="light"] .btn-ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: var(--primary-dim);
    color: var(--primary-dim);
}

[data-theme="light"] .tabs {
    border-bottom-color: var(--dark-border);
    background: rgba(255, 255, 255, 0.7);
}
[data-theme="light"] .tab-btn { color: #666666; }
[data-theme="light"] .tab-btn.active { color: var(--primary-dim); }

[data-theme="light"] .results-column {
    background: #f8f8f8;
    border-left-color: var(--dark-border);
}

[data-theme="light"] .processing-overlay {
    background: radial-gradient(ellipse at 50% 40%, rgba(245, 248, 255, 0.98) 0%, rgba(235, 240, 250, 0.99) 100%);
}
[data-theme="light"] .processing-overlay p,
[data-theme="light"] .proc-title { color: #1a1a1a; }
[data-theme="light"] .proc-status { color: #ffffff; }
[data-theme="light"] .proc-timer { color: rgba(0, 0, 0, 0.35); }
[data-theme="light"] .proc-engine { color: rgba(8, 145, 178, 0.5); border-color: rgba(8, 145, 178, 0.15); }
[data-theme="light"] .proc-progress-track { background: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .proc-header-line { background: linear-gradient(90deg, transparent, rgba(8, 145, 178, 0.2), transparent); }
[data-theme="light"] .proc-title-icon { background: #ffffff; box-shadow: 0 0 6px rgba(8, 145, 178, 0.4); }
[data-theme="light"] .pipe-bg-grid {
    background-image:
        linear-gradient(rgba(8, 145, 178, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(8, 145, 178, 0.04) 1px, transparent 1px);
}
[data-theme="light"] .pipe-ambient-orb { opacity: 0.08; }
[data-theme="light"] .pipe-node-inner {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(0, 0, 0, 0.25);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
[data-theme="light"] .pipe-node.active .pipe-node-inner {
    border-color: rgba(8, 145, 178, 0.5);
    color: #ffffff;
    background: rgba(240, 253, 255, 0.95);
    box-shadow: 0 0 16px rgba(8, 145, 178, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
}
[data-theme="light"] .pipe-node.done .pipe-node-inner {
    border-color: rgba(5, 150, 105, 0.3);
    color: #bbbbbb;
    background: rgba(240, 255, 248, 0.95);
}
[data-theme="light"] .pipe-node-ring { border-color: transparent; }
[data-theme="light"] .pipe-node.active .pipe-node-ring { border-color: rgba(8, 145, 178, 0.12); }
[data-theme="light"] .pipe-node-label { color: rgba(0, 0, 0, 0.28); }
[data-theme="light"] .pipe-node.active .pipe-node-label { color: #ffffff; text-shadow: none; }
[data-theme="light"] .pipe-node.done .pipe-node-label { color: #bbbbbb; }
[data-theme="light"] .pipe-line { stroke: rgba(255, 255, 255, 0.08); }
[data-theme="light"] .pipe-line.active { stroke: rgba(8, 145, 178, 0.4); filter: none; }
[data-theme="light"] .pipe-line.done { stroke: rgba(5, 150, 105, 0.2); }
[data-theme="light"] .pipe-node.active::after { background: radial-gradient(circle, rgba(8, 145, 178, 0.08) 0%, transparent 70%); }

[data-theme="light"] .map-controls {
    background: rgba(255, 255, 255, 0.9);
}
[data-theme="light"] .map-ctrl-btn {
    background: rgba(0, 0, 0, 0.04);
    color: #555555;
    border-color: var(--dark-border);
}
[data-theme="light"] .map-type-select {
    background: rgba(0, 0, 0, 0.04);
    color: #555555;
    border-color: var(--dark-border);
}

[data-theme="light"] .coord-overlay {
    background: rgba(255, 255, 255, 0.85);
}
[data-theme="light"] .coord-display-text { color: #1a1a1a; }

[data-theme="light"] .location-row {
    border-bottom-color: rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .location-label { color: #666666; }
[data-theme="light"] .location-value { color: #1a1a1a; }
[data-theme="light"] .coord-value { color: #1a1a1a; }

/* Light theme: upgraded analysis components */
[data-theme="light"] .location-primary { color: #1a1a1a; }
[data-theme="light"] .location-secondary { color: #555555; }
[data-theme="light"] .location-header { border-bottom-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .detail-value { color: #1a1a1a; }
[data-theme="light"] .detail-label { color: #666666; }
[data-theme="light"] .location-detail-item { border-bottom-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .location-detail-item i { background: rgba(255, 255, 255, 0.06); }
[data-theme="light"] .coords-section { background: rgba(0, 0, 0, 0.02); border-top-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .confidence-meter { border-bottom-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .confidence-meter-value { color: #1a1a1a; }
[data-theme="light"] .ai-analysis-text { color: #333333; }
[data-theme="light"] .ai-analysis-text .ai-para { border-left-color: rgba(255, 255, 255, 0.25); background: rgba(255, 255, 255, 0.03); }
[data-theme="light"] .ai-analysis-text .ai-para:hover { background: rgba(255, 255, 255, 0.06); }
[data-theme="light"] .ai-analysis-text .ai-conclusion { background: rgba(200, 200, 200, 0.06); border-left-color: rgba(200, 200, 200, 0.4); color: #1a1a1a; }
[data-theme="light"] .ai-analysis-text .ai-keyword { color: #cccccc; }
[data-theme="light"] .ai-analysis-text .ai-quoted { color: #999999; }
[data-theme="light"] .ai-analysis-text strong { color: #1a1a1a; }
[data-theme="light"] .ai-analysis-text .ai-para-icon { color: #ffffff; }
[data-theme="light"] .evidence-tags-container { border-top-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .tag-category { background: rgba(255, 255, 255, 0.08); color: #ffffff; }
[data-theme="light"] .tag-value { color: #333333; }
[data-theme="light"] .evidence-tag { border-color: rgba(255, 255, 255, 0.12); }
[data-theme="light"] .analysis-section-item { background: rgba(0, 0, 0, 0.02); border-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .analysis-section-item:hover { background: rgba(255, 255, 255, 0.03); }
[data-theme="light"] .section-text { color: #333333; }
[data-theme="light"] .alt-location-item { background: rgba(0, 0, 0, 0.02); border-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .alt-location-name { color: #1a1a1a; }
[data-theme="light"] .forensic-item { background: rgba(0, 0, 0, 0.02); border-color: rgba(0, 0, 0, 0.06); }
[data-theme="light"] .forensic-value { color: #333333; }
[data-theme="light"] .evidence-text { color: #333333; background: rgba(200, 200, 200, 0.05); border-color: rgba(200, 200, 200, 0.15); }
[data-theme="light"] .clue-card { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.12); }
[data-theme="light"] .clue-card:hover { background: rgba(255, 255, 255, 0.08); }
[data-theme="light"] .clue-text { color: #333333; }
[data-theme="light"] .clue-number { background: rgba(255, 255, 255, 0.1); color: #ffffff; }
[data-theme="light"] .card-subtitle { color: #666666; }

[data-theme="light"] .intel-item {
    background: rgba(0, 0, 0, 0.02);
    border-color: var(--dark-border);
}
[data-theme="light"] .intel-label { color: #666666; }
[data-theme="light"] .intel-value { color: #1a1a1a; }

[data-theme="light"] .weather-grid .weather-stat {
    background: rgba(0, 0, 0, 0.02);
}

[data-theme="light"] .osint-risk-item {
    background: rgba(0, 0, 0, 0.02);
    border-color: var(--dark-border);
}

[data-theme="light"] .quick-link {
    background: rgba(0, 0, 0, 0.03);
    color: #555555;
    border-color: var(--dark-border);
}
[data-theme="light"] .quick-link:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--primary-dim);
}

[data-theme="light"] .site-footer {
    background: rgba(255, 255, 255, 0.6);
    border-top-color: var(--dark-border);
    color: #666666;
}

[data-theme="light"] .user-dropdown {
    background: white;
    border-color: var(--dark-border);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}
[data-theme="light"] .user-dropdown-name { color: #1a1a1a; }
[data-theme="light"] .user-dropdown-email { color: #666666; }
[data-theme="light"] .user-dropdown-item { color: #555555; }
[data-theme="light"] .user-dropdown-item:hover { background: rgba(0, 0, 0, 0.04); }

[data-theme="light"] .divider { border-color: rgba(0, 0, 0, 0.06); }

[data-theme="light"] .copy-btn {
    color: #888888;
}
[data-theme="light"] .copy-btn:hover {
    color: var(--primary-dim);
    background: rgba(255, 255, 255, 0.08);
}

[data-theme="light"] .measure-result {
    background: rgba(0, 0, 0, 0.03);
    border-color: var(--dark-border);
}

[data-theme="light"] ::-webkit-scrollbar-thumb { background: #cccccc; }
[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: #aaaaaa; }

/* ── Skeleton Loading States ── */
.skeleton-card {
    animation: skeleton-fade-in 0.4s ease both;
}
.skeleton-card:nth-child(2) { animation-delay: 0.1s; }
.skeleton-card:nth-child(3) { animation-delay: 0.2s; }
@keyframes skeleton-fade-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
.skeleton-shimmer {
    background: linear-gradient(90deg,
        rgba(34, 34, 34, 0.35) 25%,
        rgba(255, 255, 255, 0.1) 50%,
        rgba(34, 34, 34, 0.35) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.8s ease-in-out infinite;
    border-radius: 6px;
}
@keyframes skeleton-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}
.skeleton-row {
    display: flex;
    align-items: center;
    gap: 14px;
}
.skeleton-circle {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    flex-shrink: 0;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  MODAL OVERLAYS                                       */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s var(--ease-smooth);
}
.modal-overlay.active {
    opacity: 1;
    pointer-events: all;
}
.modal-content {
    background: var(--dark-card);
    border: 1px solid var(--dark-border);
    border-radius: 16px;
    width: 90%;
    max-height: 85vh;
    overflow-y: auto;
    transform: translateY(12px) scale(0.97);
    transition: transform 0.3s var(--ease-spring);
}
.modal-overlay.active .modal-content {
    transform: translateY(0) scale(1);
}

[data-theme="light"] .modal-overlay {
    background: rgba(0, 0, 0, 0.35);
}
[data-theme="light"] .modal-content {
    background: white;
    border-color: var(--dark-border);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/*  KEYBOARD SHORTCUTS                                   */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.shortcut-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--dark-border);
}
.shortcut-row:last-child { border-bottom: none; }
.shortcut-desc {
    font-size: 13px;
    color: var(--text-secondary);
}
.shortcut-row kbd {
    display: inline-block;
    padding: 4px 10px;
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 500;
    color: var(--text-primary);
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--dark-border);
    border-radius: 6px;
    letter-spacing: 0.3px;
    white-space: nowrap;
}
[data-theme="light"] .shortcut-row kbd {
    background: rgba(0, 0, 0, 0.05);
    border-color: var(--dark-border);
}

/* â”€â”€ Cross-Reference Sources â”€â”€ */
.crossref-section {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--dark-border);
}
.crossref-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}
.crossref-heading {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.crossref-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.crossref-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
    line-height: 1.3;
}
.crossref-google {
    background: rgba(66, 133, 244, 0.08);
    color: #aaaaaa;
    border: 1px solid rgba(66, 133, 244, 0.15);
}
.crossref-google:hover { background: rgba(66, 133, 244, 0.18); }
.crossref-social {
    background: rgba(233, 30, 140, 0.08);
    color: #888888;
    border: 1px solid rgba(233, 30, 140, 0.15);
}
.crossref-social:hover { background: rgba(233, 30, 140, 0.18); }
.crossref-map {
    background: rgba(200, 200, 200, 0.08);
    color: #cccccc;
    border: 1px solid rgba(200, 200, 200, 0.15);
}
.crossref-map:hover { background: rgba(200, 200, 200, 0.18); }
.crossref-biz {
    background: rgba(245, 158, 11, 0.08);
    color: #aaaaaa;
    border: 1px solid rgba(245, 158, 11, 0.15);
}
.crossref-biz:hover { background: rgba(245, 158, 11, 0.18); }
.crossref-text {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-bottom: 8px;
}
.crossref-warning {
    background: rgba(239, 68, 68, 0.04);
    border: 1px solid rgba(239, 68, 68, 0.12);
    border-radius: 8px;
    padding: 10px 12px !important;
    margin-top: 2px;
}
.crossref-warn-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.crossref-warn-list li {
    font-size: 12px;
    color: var(--text-secondary);
    padding: 4px 0;
    padding-left: 16px;
    position: relative;
}
.crossref-warn-list li::before {
    content: 'âš ';
    position: absolute;
    left: 0;
    font-size: 10px;
}

/* Light theme overrides */
[data-theme="light"] .crossref-google { color: #ffffff; }
[data-theme="light"] .crossref-social { color: #888888; }
[data-theme="light"] .crossref-map { color: #bbbbbb; }
[data-theme="light"] .crossref-biz { color: #999999; }
[data-theme="light"] .crossref-text { color: #444444; }
[data-theme="light"] .crossref-warn-list li { color: #444444; }

/* ╔══════════════════════════════════════════════════════╗ */
/*  RESPONSIVE BREAKPOINTS                               */
/* ╚══════════════════════════════════════════════════════╝ */

/* ── Tablet (≤768px) ── */
@media (max-width: 768px) {
    .hero-section { padding: 60px 16px 40px; }
    .hero-split { flex-direction: column; gap: 32px; max-width: 540px; }
    .hero-text-col { text-align: center; align-items: center; }
    .hero-upload-col { width: 100%; max-width: 420px; margin: 0 auto; }
    .hero-title { font-size: clamp(28px, 6vw, 42px); margin-bottom: 14px; }
    .hero-subtitle { font-size: 14px; }
    .hero-metrics { justify-content: center; }
    .hero-trust-row { justify-content: center; }
    .hero-orbit-badges { display: none; }
    .hero-reticle { display: none; }
    .upload-zone { width: 120px; height: 120px; margin-bottom: 16px; }
    .upload-title { font-size: 18px; }
    .bento-grid { grid-template-columns: 1fr 1fr; }
    .bento-wide { grid-column: span 2; }
    .section-title { font-size: clamp(24px, 4vw, 32px); }
    .cta-title { font-size: clamp(24px, 4vw, 32px); }
    .footer-inner { flex-direction: column; text-align: center; gap: 20px; align-items: center; }
    .footer-links { gap: 16px; }
    .footer-nav { gap: 32px; justify-content: center; }
    .footer-nav-group { align-items: center; }
    .steps-row { flex-direction: column; gap: 20px; max-width: 360px; margin: 0 auto; }
    .step-connector { width: auto; height: 40px; flex-direction: column; }
    .step-connector-line { width: 1px; height: 100%; }
    .social-proof-bar { flex-wrap: wrap; gap: 20px; }
    .proof-stat { padding: 0 20px; }
    .proof-divider { display: none; }
    .cta-card-inner { padding: 36px 24px; }
    .nav-bar { padding: 0 12px; }
    .nav-logo { font-size: 16px; gap: 8px; }
    .nav-actions { gap: 4px; }
    .confidence-gauge-section { flex-direction: column; gap: 14px; }
    .confidence-gauge { width: 80px; height: 80px; }
    .gauge-value { font-size: 22px; }
    .gauge-unit { font-size: 11px; }
    .confidence-stats-mini { flex-direction: row; flex-wrap: wrap; }
    .stat-mini { flex: 1; min-width: 100px; }
    .evidence-strength-layout { flex-direction: column; }
    .evidence-radar-wrap { width: 140px; height: 140px; margin: 0 auto; }
    .modal-content { width: 95%; max-height: 90vh; }
}

/* ── Small Phone (≤480px) ── */
@media (max-width: 480px) {
    .hero-section { padding: 40px 12px 30px; }
    .hero-split { gap: 24px; }
    .hero-title { font-size: clamp(24px, 7vw, 32px); }
    .hero-badge { font-size: 10px; padding: 4px 12px; }
    .hero-metrics { gap: 16px; flex-wrap: wrap; }
    .hero-metric-divider { display: none; }
    .hero-trust-row { flex-wrap: wrap; gap: 8px; }
    .upload-zone { width: 110px; height: 110px; }
    .upload-title { font-size: 16px; }
    .upload-subtitle { font-size: 12px; }
    .upload-card-inner { padding: 20px; }
    .bento-grid { grid-template-columns: 1fr; }
    .bento-wide { grid-column: span 1; }
    .section-header { margin-bottom: 32px; }
    .cta-section { padding: 48px 16px; }
    .cta-actions { flex-direction: column; gap: 12px; }
    .cta-card-inner { padding: 28px 16px; }
    .cta-icon-ring { width: 44px; height: 44px; font-size: 16px; }
    .steps-row { gap: 16px; }
    .step-card { padding: 24px 20px; }
    .step-icon-wrap { width: 48px; height: 48px; font-size: 18px; }
    .step-number { font-size: 38px; }
    .social-proof-bar { padding: 32px 12px; }
    .proof-value { font-size: 24px; }
    .proof-suffix { font-size: 18px; }
    .footer-nav { flex-direction: column; gap: 20px; }
    .context-fields { gap: 8px; }
    .input-field { font-size: 13px; padding: 10px; }
    .location-primary { font-size: 16px; }
    .location-header { padding: 14px; gap: 10px; }
    .coords-section { padding: 10px 14px; }
    .coord-value { font-size: 13px; }
    .tab-btn { padding: 10px 12px; font-size: 11px; }
    .tab-btn .tab-icon { font-size: 11px; }
    .card-title { font-size: 13px; }
    .card-subtitle { font-size: 10px; }
    .confidence-gauge { width: 70px; height: 70px; }
    .gauge-value { font-size: 18px; }
    .stat-mini { padding: 6px 10px; }
    .stat-mini-val { font-size: 12px; }
    .nav-bar { height: 48px; }
    .btn-primary { padding: 10px 16px; font-size: 13px; }
}

/* ── Large Desktop (≥1440px) ── */
@media (min-width: 1440px) {
    .hero-section { padding: 100px 32px 60px; }
    .hero-split { max-width: 1300px; gap: 80px; }
    .hero-title { font-size: 68px; }
    .results-column { max-width: 520px; }
    .bento-grid { max-width: 1200px; gap: 20px; }
}

/* ═══════════════════════════════════════════════════════════════
   DESIGN UPGRADE v3 — Focus, Ripple, Tooltips, Progress, Cards
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. Focus-Visible Accessibility ── */
*:focus { outline: none; }
*:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: 4px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--primary-dim);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.12);
}
.nav-btn:focus-visible {
    outline-offset: 0;
    border-color: var(--primary-dim);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}

/* ── 2. Universal Button Ripple ── */
.btn-save,
.btn-upgrade,
.btn-secondary,
.header-signup-btn,
.header-logout-btn,
.nav-btn,
.dash-tab,
.filter-chip,
.quick-link {
    position: relative;
    overflow: hidden;
}
.btn-save::after,
.btn-upgrade::after,
.btn-secondary::after,
.header-signup-btn::after,
.header-logout-btn::after {
    content: '';
    position: absolute;
    top: 50%; left: 50%;
    width: 0; height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transform: translate(-50%, -50%);
    transition: width 0.5s ease, height 0.5s ease, opacity 0.4s ease;
    opacity: 0;
    pointer-events: none;
}
.btn-save:active::after,
.btn-upgrade:active::after,
.btn-secondary:active::after,
.header-signup-btn:active::after,
.header-logout-btn:active::after {
    width: 300px; height: 300px;
    opacity: 0;
    animation: universal-ripple 0.6s ease-out;
}
@keyframes universal-ripple {
    0%   { width: 0; height: 0; opacity: 0.35; }
    100% { width: 300px; height: 300px; opacity: 0; }
}

/* ── 3. Scroll Progress Indicator ── */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0%;
    z-index: 9999;
    background: var(--gradient-primary);
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.4), 0 0 20px rgba(255, 255, 255, 0.2);
    transition: width 0.1s linear;
    pointer-events: none;
    border-radius: 0 2px 2px 0;
}

/* ── 4. Tooltip System for Nav Icons ── */
.nav-btn[title] {
    position: relative;
}
.nav-btn[title]::before {
    content: attr(title);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 500;
    font-family: var(--font-sans);
    color: white;
    background: rgba(15, 23, 42, 0.95);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s var(--ease-smooth);
    z-index: 100;
    backdrop-filter: blur(8px);
    letter-spacing: 0.02em;
}
.nav-btn[title]::after {
    content: '';
    position: absolute;
    bottom: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: rgba(15, 23, 42, 0.95);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 100;
}
.nav-btn[title]:hover::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.nav-btn[title]:hover::after {
    opacity: 1;
}
[data-theme="light"] .nav-btn[title]::before {
    background: rgba(255, 255, 255, 0.95);
    color: #1e1e1e;
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .nav-btn[title]::after {
    border-top-color: rgba(255, 255, 255, 0.95);
}

/* ── 5. Enhanced Card Hover Micro-Interactions ── */
.stat-card,
.dash-card,
.quick-link,
.api-key-item {
    transition: all 0.3s var(--ease-smooth);
}
.stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 30px rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.2);
}
.dash-card:hover {
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), 0 0 20px rgba(255, 255, 255, 0.04);
}
.quick-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.25);
}
.quick-link:hover .quick-link-icon {
    transform: scale(1.1);
    transition: transform 0.3s var(--ease-bounce);
}
.api-key-item:hover {
    transform: translateX(4px);
    border-color: rgba(255, 255, 255, 0.2);
}

/* ── 6. Animated Gradient Border Cards ── */
.glow-border-card {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
}
.glow-border-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 18px;
    padding: 1px;
    background: conic-gradient(
        from var(--border-angle, 0deg),
        rgba(255, 255, 255, 0.3),
        rgba(255, 255, 255, 0.2),
        rgba(255, 255, 255, 0.2),
        rgba(255, 255, 255, 0.3)
    );
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: rotating-border 6s linear infinite;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.glow-border-card:hover::before {
    opacity: 1;
}
@keyframes rotating-border {
    to { --border-angle: 360deg; }
}

/* ── 7. Page Entrance Animations ── */
.page-enter {
    animation: page-content-enter 0.6s var(--ease-smooth) both;
}
@keyframes page-content-enter {
    from {
        opacity: 0;
        transform: translateY(20px);
        filter: blur(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}
.stagger-enter > * {
    opacity: 0;
    animation: stagger-item-enter 0.5s var(--ease-smooth) both;
}
.stagger-enter > *:nth-child(1) { animation-delay: 0.05s; }
.stagger-enter > *:nth-child(2) { animation-delay: 0.1s; }
.stagger-enter > *:nth-child(3) { animation-delay: 0.15s; }
.stagger-enter > *:nth-child(4) { animation-delay: 0.2s; }
.stagger-enter > *:nth-child(5) { animation-delay: 0.25s; }
.stagger-enter > *:nth-child(6) { animation-delay: 0.3s; }
.stagger-enter > *:nth-child(7) { animation-delay: 0.35s; }
.stagger-enter > *:nth-child(8) { animation-delay: 0.4s; }
@keyframes stagger-item-enter {
    from { opacity: 0; transform: translateY(16px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── 8. Scroll-to-Top Button ── */
.scroll-top-btn {
    position: fixed;
    bottom: 32px;
    right: 32px;
    width: 44px; height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(10, 10, 10, 0.85);
    backdrop-filter: blur(20px);
    color: var(--text-secondary);
    font-size: 16px;
    cursor: pointer;
    z-index: 90;
    display: flex; align-items: center; justify-content: center;
    opacity: 0;
    transform: translateY(16px);
    pointer-events: none;
    transition: all 0.3s var(--ease-smooth);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.scroll-top-btn.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
}
.scroll-top-btn:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.3);
    color: var(--primary-dim);
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 255, 255, 0.1);
}
[data-theme="light"] .scroll-top-btn {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(0, 0, 0, 0.08);
    color: #666666;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .scroll-top-btn:hover {
    background: white;
    color: var(--primary);
    border-color: rgba(255, 255, 255, 0.2);
}

/* ── 9. Empty State Enhancement ── */
.empty-state {
    text-align: center;
    padding: 48px 24px;
}
.empty-state-icon {
    width: 72px; height: 72px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.05));
    border: 1px solid rgba(255, 255, 255, 0.1);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 20px;
    font-size: 28px;
    color: var(--text-muted);
    animation: empty-state-float 3s ease-in-out infinite;
}
@keyframes empty-state-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}
.empty-state h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
}
.empty-state p {
    font-size: 14px;
    color: var(--text-muted);
    max-width: 360px;
    margin: 0 auto 20px;
    line-height: 1.6;
}
.empty-state .btn-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: 12px;
    border: none;
    background: rgba(255,255,255,0.08);
    color: #ffffff;
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.25s;
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow: 0 0 12px rgba(255,255,255,0.05);
}
.empty-state .btn-action:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(255, 255, 255, 0.35);
}

/* ── 10. Status Pulse Dot (Live Indicator) ── */
.status-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.status-dot.online {
    background: #cccccc;
    box-shadow: 0 0 8px rgba(200, 200, 200, 0.5);
    animation: pulse-dot 2s ease-in-out infinite;
}
.status-dot.offline {
    background: #666666;
}
.status-dot.warning {
    background: #aaaaaa;
    box-shadow: 0 0 8px rgba(200, 200, 200, 0.4);
    animation: pulse-dot 2.5s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════ */
/* ══ GLOBAL UI ENHANCEMENTS (2025 Refresh) ═══ */
/* ═══════════════════════════════════════════════ */

/* ── Smooth page load fade ── */
body { animation: bodyFadeIn 0.4s ease-out both; }
@keyframes bodyFadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ── Enhanced scrollbar with gradient thumb ── */
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--primary), var(--accent-blue));
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #cccccc, #ffffff); }

/* ── Selection color ── */
::selection { background: rgba(255, 255, 255, 0.35); color: inherit; }
::-moz-selection { background: rgba(255, 255, 255, 0.35); color: inherit; }

/* ── Focus-visible ring for keyboard navigation ── */
:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: 4px;
}
:focus:not(:focus-visible) { outline: none; }

/* ── Smooth anchor scroll ── */
html { scroll-behavior: smooth; scroll-padding-top: 80px; }

/* ── Link underline animation ── */
a[href]:not(.btn-action):not(.nav-btn):not(.quick-link):not(.logo-group a):not(.bento-card):not([class*="btn"]) {
    text-decoration-color: transparent;
    transition: text-decoration-color 0.3s ease;
}
a[href]:not(.btn-action):not(.nav-btn):not(.quick-link):not(.logo-group a):not(.bento-card):not([class*="btn"]):hover {
    text-decoration-color: currentColor;
}

/* ── Reduced motion support ── */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ── Better text rendering ── */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ── Card hover lift effect ── */
.stat-card,
.dash-card,
.quick-link,
.bento-card {
    transition: transform 0.3s var(--ease-smooth), box-shadow 0.3s var(--ease-smooth), border-color 0.3s ease;
}
.stat-card:hover,
.dash-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(255, 255, 255, 0.08);
}

/* ── Badge pulse for new items ── */
.badge-new {
    position: relative;
}
.badge-new::after {
    content: '';
    position: absolute;
    top: -2px; right: -2px;
    width: 8px; height: 8px;
    background: #777777;
    border-radius: 50%;
    animation: pulse-dot 2s ease-in-out infinite;
}

/* ── Improved form inputs focus glow ── */
input:focus, textarea:focus, select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15), 0 0 20px rgba(255, 255, 255, 0.08) !important;
}

/* ── Loading shimmer for images ── */
img[loading="lazy"] {
    background: linear-gradient(90deg, rgba(34, 34, 34,0.3) 25%, rgba(34, 34, 34,0.5) 50%, rgba(34, 34, 34,0.3) 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s ease-in-out infinite;
}
@keyframes shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Light theme enhancements ── */
[data-theme="light"] ::selection { background: rgba(255, 255, 255, 0.25); }
[data-theme="light"] ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #bbbbbb, #cccccc);
}
[data-theme="light"] input:focus,
[data-theme="light"] textarea:focus,
[data-theme="light"] select:focus {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1), 0 0 20px rgba(255, 255, 255, 0.05) !important;
}

/* ── 11. Glassmorphic Notification Toasts ── */
.toast-container {
    position: fixed;
    top: 72px;
    right: 24px;
    z-index: 300;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}
.toast-notification {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    border-radius: 14px;
    background: rgba(10, 10, 10, 0.9);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 500;
    pointer-events: all;
    animation: toast-slide-in 0.4s var(--ease-smooth) both;
    min-width: 300px;
    max-width: 420px;
}
.toast-notification.toast-exit {
    animation: toast-slide-out 0.3s ease-in both;
}
.toast-notification.toast-success { border-color: rgba(200, 200, 200, 0.2); }
.toast-notification.toast-success .toast-icon { color: #cccccc; }
.toast-notification.toast-error { border-color: rgba(180, 180, 180, 0.2); }
.toast-notification.toast-error .toast-icon { color: #777777; }
.toast-notification.toast-info { border-color: rgba(255, 255, 255, 0.2); }
.toast-notification.toast-info .toast-icon { color: #cccccc; }
.toast-icon { font-size: 18px; flex-shrink: 0; }
.toast-close {
    margin-left: auto;
    background: none; border: none;
    color: var(--text-muted); cursor: pointer;
    padding: 4px; font-size: 12px;
    transition: color 0.2s;
}
.toast-close:hover { color: var(--text-primary); }
@keyframes toast-slide-in {
    from { opacity: 0; transform: translateX(40px) scale(0.95); }
    to   { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes toast-slide-out {
    from { opacity: 1; transform: translateX(0) scale(1); }
    to   { opacity: 0; transform: translateX(40px) scale(0.9); }
}
[data-theme="light"] .toast-notification {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.08);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* ── 12. Mobile Navigation Hamburger ── */
.mobile-menu-btn {
    display: none;
    width: 34px; height: 34px;
    border-radius: 10px;
    border: 1px solid rgba(26, 26, 26, 0.6);
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    transition: all 0.25s;
}
.mobile-menu-btn:hover {
    color: var(--text-primary);
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.06);
}
.mobile-nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 199;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(6px);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.mobile-nav-overlay.active {
    display: block;
    opacity: 1;
}
.mobile-nav-panel {
    position: fixed;
    top: 0; right: -300px;
    width: 280px; height: 100vh;
    background: var(--dark-card);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 200;
    padding: 24px;
    transition: right 0.35s var(--ease-smooth);
    overflow-y: auto;
}
.mobile-nav-panel.active {
    right: 0;
}
.mobile-nav-close {
    width: 36px; height: 36px;
    border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.06);
    background: transparent; color: var(--text-muted);
    cursor: pointer; font-size: 14px;
    display: flex; align-items: center; justify-content: center;
    margin-left: auto; margin-bottom: 20px;
    transition: all 0.2s;
}
.mobile-nav-close:hover { color: var(--text-primary); border-color: rgba(255, 255, 255, 0.12); }
.mobile-nav-links {
    display: flex; flex-direction: column; gap: 4px;
}
.mobile-nav-link {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; border-radius: 12px;
    text-decoration: none; color: var(--text-secondary);
    font-size: 14px; font-weight: 500;
    transition: all 0.2s;
}
.mobile-nav-link:hover,
.mobile-nav-link.active {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
}
.mobile-nav-link i {
    width: 20px; text-align: center;
    font-size: 14px; color: var(--text-muted);
}
.mobile-nav-link:hover i { color: var(--primary-dim); }
.mobile-nav-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.04);
    margin: 12px 0;
}

@media (max-width: 768px) {
    .header-nav-links { display: none; }
    .header-nav { display: none; }
    .header-divider { display: none; }
    .mobile-menu-btn { display: flex; }
    .header-actions { gap: 8px; }
    .header-login-btn, .header-logout-btn { font-size: 12px; padding: 5px 12px; }
    .site-header { max-width: calc(100% - 32px); top: 10px; }
}

/* ── 13. Smooth Number Counter Animation ── */
.count-up {
    display: inline-block;
    font-variant-numeric: tabular-nums;
}

/* ── 14. Better Badge System ── */
.badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
    border-radius: 20px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
    line-height: 1;
}
.badge-sm { font-size: 9px; padding: 3px 9px; }
.badge-md { font-size: 11px; padding: 4px 12px; }
.badge-lg { font-size: 12px; padding: 6px 16px; }
.badge-indigo {
    background: rgba(255, 255, 255, 0.1);
    color: #cccccc;
    border: 1px solid rgba(255, 255, 255, 0.15);
}
.badge-emerald {
    background: rgba(200, 200, 200, 0.1);
    color: #cccccc;
    border: 1px solid rgba(200, 200, 200, 0.15);
}
.badge-amber {
    background: rgba(200, 200, 200, 0.1);
    color: #aaaaaa;
    border: 1px solid rgba(200, 200, 200, 0.15);
}
.badge-rose {
    background: rgba(251, 113, 133, 0.1);
    color: #777777;
    border: 1px solid rgba(251, 113, 133, 0.15);
}
.badge-cyan {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.15);
}

/* ── 15. Glassmorphic Input Enhancements ── */
input::placeholder,
textarea::placeholder {
    color: var(--text-muted);
    opacity: 0.7;
    transition: opacity 0.2s ease;
}
input:focus::placeholder,
textarea:focus::placeholder {
    opacity: 0.3;
    transform: translateX(4px);
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder {
    color: #888888;
}

/* ═══════════════════════════════════════ */
/* FLATICON ANIMATED ICONS                */
/* ═══════════════════════════════════════ */
.flaticon-anim {
    filter: invert(1) hue-rotate(180deg);
    opacity: 0.9;
    pointer-events: none;
}

/* Bento grid icons */
.bento-icon .flaticon-anim {
    display: block;
}

/* CTA section */
.cta-icon-ring .flaticon-anim {
    display: block;
}

/* Processing header */
.pipe-lottie-header .flaticon-anim {
    display: block;
}

/* Card header icons */
.card-icon .flaticon-anim {
    display: block;
}

/* Pipeline node icons */
.pipe-node-inner .flaticon-anim {
    display: block;
}

/* No-data placeholder icons */
.no-results-icon .flaticon-anim {
    display: block;
}

/* Inline icons (section tags etc) */
.flaticon-inline {
    display: inline-block;
    vertical-align: middle;
    margin-right: 4px;
}

/* FAQ question icons */
.faq-q-icon .flaticon-anim {
    display: block;
}

/* Memory page stat icons */
.ms-icon .flaticon-anim {
    display: block;
}

/* Memory page title icon */
.mem-title-icon .flaticon-anim {
    display: block;
}

/* FAQ icons — Font Awesome plus */
.faq-q-icon i {
    font-size: 14px;
    color: rgba(255,255,255,0.5);
    transition: transform 0.3s ease;
}
.faq-item.active .faq-q-icon i {
    transform: rotate(45deg);
}

/* Scroll to top — Font Awesome chevron */
.scroll-top-btn i {
    font-size: 16px;
    color: #ffffff;
}

/* Standard UI pass v4 - calmer, clearer cross-page system */
:root {
    --surface-1: rgba(10, 12, 16, 0.86);
    --surface-2: rgba(15, 18, 24, 0.82);
    --surface-3: rgba(22, 26, 34, 0.76);
    --border-soft: rgba(255, 255, 255, 0.075);
    --border-strong: rgba(255, 255, 255, 0.14);
    --text-readable: #e8edf2;
    --text-soft: #a7b0bb;
    --text-faint: #737d89;
    --radius-standard: 8px;
    --shadow-standard: 0 14px 40px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

html {
    text-size-adjust: 100%;
}

body {
    line-height: 1.55;
    color: var(--text-readable);
    background-color: #030506;
}

body::after {
    opacity: 0.018;
}

.intel-grid-overlay,
.grid-bg,
.auth-grid-bg {
    opacity: 0.18;
}

:where(p, li, td, th, label, input, select, textarea, .section-desc, .card-subtitle, .results-card-sub, .dash-card p, .timeline-card-body, .info-card-content) {
    line-height: 1.55;
}

:where(.text-muted, .card-subtitle, .results-card-sub, .section-desc, .form-hint, .intel-list-meta, .history-meta, .memory-meta) {
    color: var(--text-soft) !important;
}

:where(.site-header, .glass-card, .hero-upload-card, .step-card, .bento-card, .dash-card, .stat-card, .timeline-card, .info-card, .endpoint-card, .key-card, .create-card, .keys-stat-card, .pricing-card, .memory-card, .ms-card, .share-location-card, .share-analysis-card, .security-card, .results-card) {
    border-radius: var(--radius-standard) !important;
    border-color: var(--border-soft) !important;
    background-color: var(--surface-1);
    box-shadow: var(--shadow-standard);
}

:where(.hero-upload-card, .step-card, .bento-card, .dash-card, .stat-card, .timeline-card, .info-card, .endpoint-card, .key-card, .create-card, .keys-stat-card, .pricing-card, .memory-card, .ms-card, .share-location-card, .share-analysis-card, .security-card, .results-card):hover {
    border-color: rgba(0, 229, 195, 0.22) !important;
    transform: translateY(-2px);
}

:where(.btn, .btn-primary, .btn-secondary, .btn-action, .btn-save, .btn-upgrade, .btn-create, .btn-copy, .copy-btn, .copy-btn-sm, .header-login-btn, .header-signup-btn, .header-logout-btn, .quick-link, .filter-chip, .tab-btn, .sidebar-link, .key-create-btn, .mem-reset-btn, .mem-page-btn, .verify-btn, .results-action-btn, .results-tab-btn, .rdim-btn) {
    min-height: 44px;
    border-radius: var(--radius-standard) !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    touch-action: manipulation;
}

:where(.btn-primary, .btn-save, .btn-upgrade, .btn-create, .key-create-btn, .staged-analyze-btn) {
    background: linear-gradient(135deg, #00e5c3, #0ea5e9) !important;
    color: #001310 !important;
    border: 1px solid rgba(0, 229, 195, 0.36) !important;
    font-weight: 700;
    box-shadow: 0 10px 28px rgba(0, 229, 195, 0.16);
}

:where(.btn-secondary, .btn-action, .quick-link, .filter-chip, .tab-btn, .sidebar-link, .copy-btn, .copy-btn-sm, .results-action-btn, .results-tab-btn, .rdim-btn) {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid var(--border-soft);
    color: var(--text-readable);
}

:where(.btn, .btn-primary, .btn-secondary, .btn-action, .btn-save, .btn-upgrade, .btn-create, .key-create-btn, .quick-link, .filter-chip, .tab-btn, .sidebar-link, .results-action-btn, .results-tab-btn, .rdim-btn):hover {
    border-color: rgba(0, 229, 195, 0.28) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 229, 195, 0.08);
}

:where(input, select, textarea, .form-input, .input-field, .search-input, .key-name-input, .filter-select) {
    min-height: 44px;
    border-radius: var(--radius-standard) !important;
    border-color: var(--border-soft) !important;
    background: rgba(3, 6, 10, 0.72) !important;
    color: var(--text-readable) !important;
}

:where(input, select, textarea, .form-input, .input-field, .search-input, .key-name-input, .filter-select):focus {
    border-color: rgba(0, 229, 195, 0.45) !important;
    box-shadow: 0 0 0 4px rgba(0, 229, 195, 0.12) !important;
}

:where(table, .params-table, .data-table, .audit-table) {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

:where(th, td) {
    vertical-align: middle;
}

:where(.table-wrap, .data-table-wrap, .audit-table-wrap, .params-table-wrap, .code-block, pre) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

:where(.docs-layout, .dash-container, .keys-container, .memory-container, .history-container, .pricing-container, .compare-container, .security-container, .share-page) {
    width: min(100% - 32px, 1180px);
    margin-inline: auto;
}

:where(.docs-main, .dash-panel, .keys-list, .mem-grid, .history-list) {
    min-width: 0;
}

:where(.section-title, .hero-title, .dash-title, .admin-title, .cc-title, .docs-section h2, .keys-page-text h1, .mem-title, .results-card-title) {
    letter-spacing: 0 !important;
    text-wrap: balance;
}

:where(.step-number, .proof-value, .stat-value, .keys-stat-value, .gauge-value, .weather-temp) {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 768px) {
    :where(.docs-layout, .dash-container, .keys-container, .memory-container, .history-container, .pricing-container, .compare-container, .security-container, .share-page) {
        width: min(100% - 24px, 100%);
    }

    :where(.bento-grid, .stats-grid, .keys-stats, .pricing-grid, .features-grid, .info-grid, .error-grid, .mem-grid) {
        grid-template-columns: 1fr !important;
    }

    :where(.site-header, .hero-upload-card, .step-card, .bento-card, .dash-card, .info-card, .endpoint-card, .key-card, .create-card, .results-card) {
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    }

    :where(.btn, .btn-primary, .btn-secondary, .btn-action, .btn-save, .btn-upgrade, .btn-create, .key-create-btn) {
        width: 100%;
        min-height: 46px;
    }
}

@media (max-width: 480px) {
    body {
        font-size: 16px;
    }

    :where(.hero-section, .cta-section, .how-it-works-section, .features-section, .faq-section) {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    :where(.hero-upload-card, .step-card, .bento-card, .dash-card, .info-card, .endpoint-card, .key-card, .create-card, .results-card) {
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* ╔══════════════════════════════════════════════════════╗ */
/*  GLOBAL MOBILE SAFETY-NET — Phone responsiveness      */
/* ╚══════════════════════════════════════════════════════╝ */
html, body {
    max-width: 100vw;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
}
@media (max-width: 768px) {
    /* Prevent horizontal overflow from any rogue element */
    body, .page-container, .main-content, main, section, .container { max-width: 100vw; }
    img, video, canvas, svg, iframe { max-width: 100%; height: auto; }
    /* Tables become scrollable */
    table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    /* Long words / URLs wrap */
    p, a, span, h1, h2, h3, h4, h5, h6, li, td, th { word-wrap: break-word; overflow-wrap: anywhere; }
    pre, code { white-space: pre-wrap; word-break: break-word; }
    /* Stack any flex row that might be too wide */
    .row, .flex-row { flex-wrap: wrap; }
    /* Forms full width */
    input, select, textarea, button { max-width: 100%; }
    /* Reduce padding on common containers */
    .glass-card, .card, .panel { padding: 16px !important; }
}
@media (max-width: 480px) {
    body { font-size: 15px; }
    h1 { font-size: clamp(22px, 6vw, 30px); }
    h2 { font-size: clamp(20px, 5vw, 26px); }
    h3 { font-size: clamp(17px, 4.5vw, 22px); }
    .btn, button.btn-primary, .btn-action, .btn-secondary { width: 100%; justify-content: center; }
    .modal-content, .modal-card { width: 96vw !important; max-width: 96vw !important; }
    /* Hide decorative orbs/aurora that drag perf on small phones */
    .aurora-orb, .aurora-orb-1, .aurora-orb-2 { opacity: 0.3; filter: blur(80px); }
}
