/* ═══ 3D CHIP HUD ═══ */
.chip-hud {
    position: relative;
    width: 380px;
    height: 380px;
    margin: 0 auto;
    perspective: 900px;
}

.chip-hud--small { width: 260px; height: 260px; }
.chip-hud--mini { width: 160px; height: 160px; }

.hud-ambient {
    position: absolute;
    inset: 5%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 123, 255, .22) 0%, rgba(0, 123, 255, .06) 40%, transparent 70%);
    animation: hud-breathe 4s ease-in-out infinite;
}

.hud-pulse {
    position: absolute;
    inset: 15%;
    border-radius: 50%;
    border: 1px solid rgba(0, 200, 255, .12);
    animation: hud-pulse-ring 3s ease-out infinite;
}

@keyframes hud-breathe {
    0%, 100% { transform: scale(1); opacity: .8; }
    50% { transform: scale(1.06); opacity: 1; }
}

@keyframes hud-pulse-ring {
    0% { transform: scale(.85); opacity: .6; }
    100% { transform: scale(1.15); opacity: 0; }
}

.hud-ring {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
}

.hud-ring svg { width: 100%; height: 100%; }

.hud-spin { transform-origin: 160px 160px; }
.hud-spin--slow { animation: hud-rotate 24s linear infinite; }
.hud-spin--mid { animation: hud-rotate 14s linear infinite; }
.hud-spin--fast { animation: hud-rotate 8s linear infinite; }
.hud-spin--reverse { animation: hud-rotate-rev 18s linear infinite; }

@keyframes hud-rotate { to { transform: rotate(360deg); } }
@keyframes hud-rotate-rev { to { transform: rotate(-360deg); } }

.chip-hud--small .hud-spin--slow { animation-duration: 20s; }
.chip-hud--mini .hud-ring--outer,
.chip-hud--mini .hud-floaters,
.chip-hud--mini .hud-scan { display: none; }

/* 3D Chip */
.chip-3d-scene {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    transform-style: preserve-3d;
    transition: transform .15s ease-out;
}

.chip-3d {
    position: relative;
    width: 110px;
    height: 110px;
    transform-style: preserve-3d;
    transform: rotateX(58deg) rotateZ(-8deg);
    animation: chip-float 5s ease-in-out infinite;
}

.chip-hud--small .chip-3d { width: 80px; height: 80px; }
.chip-hud--mini .chip-3d { width: 50px; height: 50px; animation: none; transform: rotateX(50deg) rotateZ(-5deg); }

@keyframes chip-float {
    0%, 100% { transform: rotateX(58deg) rotateZ(-8deg) translateY(0); }
    50% { transform: rotateX(62deg) rotateZ(-5deg) translateY(-8px); }
}

.chip-3d-base {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, #0a1828, #061018);
    border-radius: 10px;
    transform: translateZ(-12px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, .6);
}

.chip-3d-top {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #142a45 0%, #0c1a2e 50%, #081220 100%);
    border: 1.5px solid rgba(0, 200, 255, .45);
    border-radius: 10px;
    transform: translateZ(8px);
    box-shadow:
        0 0 30px rgba(0, 123, 255, .35),
        inset 0 0 20px rgba(0, 200, 255, .08);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.chip-3d-grid {
    position: absolute;
    inset: 8px;
    background-image:
        linear-gradient(rgba(0, 200, 255, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 200, 255, .08) 1px, transparent 1px);
    background-size: 10px 10px;
    border-radius: 6px;
}

.chip-3d-label {
    position: relative;
    z-index: 2;
    font-family: "JetBrains Mono", monospace;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .25em;
    color: #00c8ff;
    text-shadow: 0 0 12px rgba(0, 200, 255, .8);
}

.chip-hud--small .chip-3d-label { font-size: .55rem; }
.chip-hud--mini .chip-3d-label { font-size: .38rem; letter-spacing: .15em; }

.chip-3d-led {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #00e676;
    box-shadow: 0 0 10px #00e676;
    animation: led-blink 2s ease-in-out infinite;
}

@keyframes led-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: .35; }
}

.chip-pin {
    position: absolute;
    background: linear-gradient(var(--cyan, #00c8ff), #007bff);
    box-shadow: 0 0 6px rgba(0, 200, 255, .6);
    border-radius: 1px;
}

.chip-pin--l1 { left: -10px; top: 18%; width: 10px; height: 3px; }
.chip-pin--l2 { left: -10px; top: 38%; width: 10px; height: 3px; }
.chip-pin--l3 { left: -10px; top: 58%; width: 10px; height: 3px; }
.chip-pin--l4 { left: -10px; top: 78%; width: 10px; height: 3px; }
.chip-pin--r1 { right: -10px; top: 18%; width: 10px; height: 3px; }
.chip-pin--r2 { right: -10px; top: 38%; width: 10px; height: 3px; }
.chip-pin--r3 { right: -10px; top: 58%; width: 10px; height: 3px; }
.chip-pin--r4 { right: -10px; top: 78%; width: 10px; height: 3px; }
.chip-pin--t1 { top: -10px; left: 22%; width: 3px; height: 10px; }
.chip-pin--t2 { top: -10px; left: 48%; width: 3px; height: 10px; }
.chip-pin--t3 { top: -10px; left: 74%; width: 3px; height: 10px; }
.chip-pin--b1 { bottom: -10px; left: 22%; width: 3px; height: 10px; }
.chip-pin--b2 { bottom: -10px; left: 48%; width: 3px; height: 10px; }
.chip-pin--b3 { bottom: -10px; left: 74%; width: 3px; height: 10px; }

.chip-3d-shadow {
    position: absolute;
    bottom: 28%;
    width: 120px;
    height: 30px;
    background: radial-gradient(ellipse, rgba(0, 123, 255, .25), transparent 70%);
    transform: rotateX(80deg);
    filter: blur(8px);
}

.hud-floaters { position: absolute; inset: 0; pointer-events: none; }

.hud-bit {
    position: absolute;
    left: var(--x);
    top: var(--y);
    font-family: "JetBrains Mono", monospace;
    font-size: .62rem;
    color: rgba(0, 200, 255, .7);
    animation: bit-float 4s ease-in-out infinite;
    animation-delay: var(--d);
    text-shadow: 0 0 8px rgba(0, 123, 255, .5);
}

@keyframes bit-float {
    0%, 100% { opacity: .3; transform: translateY(0); }
    50% { opacity: 1; transform: translateY(-6px); }
}

.hud-scan {
    position: absolute;
    left: 18%;
    right: 18%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(0, 200, 255, .6), transparent);
    box-shadow: 0 0 12px rgba(0, 200, 255, .4);
    animation: hud-scan-line 3s ease-in-out infinite;
    pointer-events: none;
}

@keyframes hud-scan-line {
    0% { top: 20%; opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { top: 80%; opacity: 0; }
}

/* ═══ 3D MAP SURFACE ═══ */
.map-3d-enhanced {
    position: absolute;
    inset: 0;
    perspective: 600px;
    overflow: hidden;
}

.map-3d-surface {
    position: absolute;
    left: 18%;
    right: 5%;
    bottom: 10%;
    height: 75%;
    transform-style: preserve-3d;
    transform: rotateX(52deg) rotateZ(-12deg);
    animation: map-tilt 6s ease-in-out infinite;
}

@keyframes map-tilt {
    0%, 100% { transform: rotateX(52deg) rotateZ(-12deg); }
    50% { transform: rotateX(48deg) rotateZ(-8deg); }
}

.map-3d-mesh {
    width: 100%;
    height: 100%;
    background:
        linear-gradient(180deg, transparent 30%, rgba(0,0,0,.4)),
        conic-gradient(from 200deg at 55% 50%,
            #ff3333, #ff8800, #ffee00, #44ff44, #00ccff, #4488ff, #aa44ff, #ff3333);
    opacity: .7;
    clip-path: polygon(0% 85%, 10% 60%, 22% 68%, 35% 40%, 48% 52%, 60% 28%, 72% 38%, 85% 18%, 100% 25%, 100% 100%, 0% 100%);
    border-radius: 4px;
    box-shadow: 0 0 40px rgba(0, 123, 255, .15);
}

.map-3d-wire {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 24px 16px;
    transform: translateZ(2px);
    clip-path: polygon(0% 85%, 10% 60%, 22% 68%, 35% 40%, 48% 52%, 60% 28%, 72% 38%, 85% 18%, 100% 25%, 100% 100%, 0% 100%);
}

/* ═══ 3D CAR ═══ */
.car-3d-wrap {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 360px;
}

.car-3d-wrap img {
    position: relative;
    z-index: 2;
    filter: drop-shadow(0 0 30px rgba(0, 123, 255, .35));
    animation: car-hover 4s ease-in-out infinite;
}

@keyframes car-hover {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.car-3d-ring {
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    border: 1px dashed rgba(0, 123, 255, .2);
    animation: hud-rotate 30s linear infinite;
}

.car-3d-ring::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: rgba(0, 200, 255, .5);
    animation: hud-rotate 6s linear infinite;
}

.car-3d-glow {
    position: absolute;
    width: 200px;
    height: 80px;
    bottom: 15%;
    background: radial-gradient(ellipse, rgba(0, 123, 255, .2), transparent 70%);
    filter: blur(12px);
}

/* ═══ 3D CLOUD DOWNLOAD ═══ */
.cloud-3d {
    position: relative;
    width: 120px;
    height: 120px;
    margin: 0 auto 20px;
    perspective: 400px;
}

.cloud-3d-ring {
    position: absolute;
    inset: -20px;
    border-radius: 50%;
    border: 1px solid rgba(0, 123, 255, .2);
    animation: hud-rotate 12s linear infinite;
}

.cloud-3d-ring:nth-child(2) {
    inset: -10px;
    animation-direction: reverse;
    animation-duration: 8s;
    border-color: rgba(0, 200, 255, .15);
}

.cloud-3d-icon {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: rgba(0, 123, 255, .1);
    border: 2px solid var(--blue, #007bff);
    display: grid;
    place-items: center;
    box-shadow: 0 0 40px rgba(0, 123, 255, .4);
    transform: translateZ(20px);
    animation: cloud-float 3s ease-in-out infinite;
}

@keyframes cloud-float {
    0%, 100% { transform: translateZ(20px) translateY(0); }
    50% { transform: translateZ(30px) translateY(-6px); }
}

.cloud-3d-icon svg { width: 40px; height: 40px; color: #0a84ff; }

/* ═══ PAGE 3D BACKGROUNDS ═══ */
.bg-3d-chip {
    position: absolute;
    right: -80px;
    bottom: -60px;
    opacity: .12;
    pointer-events: none;
    z-index: 0;
}

.page-3d-wrap { position: relative; overflow: hidden; }
.page-3d-wrap > .container { position: relative; z-index: 1; }

/* ═══ AUTH 3D BG ═══ */
.auth-3d-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: .08;
    pointer-events: none;
    z-index: 0;
}

.auth-page { position: relative; }
.auth-page .container { position: relative; z-index: 1; }

/* ═══ DASHBOARD MINI HUD ═══ */
.d-panel .chip-hud--mini {
    position: absolute;
    bottom: -30px;
    right: -30px;
    opacity: .5;
}

/* feat cards hover 3D */
.feat-card {
    transform-style: preserve-3d;
    transition: transform .3s, border-color .2s, box-shadow .2s;
}

.feat-card:hover {
    transform: translateY(-6px) rotateX(2deg);
    box-shadow: 0 12px 40px rgba(0, 123, 255, .12);
}

.stat-box {
    transition: transform .25s, box-shadow .25s;
}

.stat-box:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 32px rgba(0, 123, 255, .1);
}

@media (max-width: 768px) {
    .chip-hud { width: 300px; height: 300px; }
    .hud-bit { display: none; }
}
