@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
        @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap');

        body {
            background-color: #000000;
            color: #e2e8f0;
            font-family: 'Pretendard', sans-serif;
            overflow-x: hidden;
            padding-top: 76px;
        }

        .font-mono { font-family: 'JetBrains Mono', monospace; }
        .transition-smooth { transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); }

        .glass-panel {
            background: rgba(15, 23, 42, 0.4);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.30);
            box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
        }

        .bg-blueprint {
            background-size: 40px 40px;
            mask-image: radial-gradient(circle at center, black 40%, transparent 100%);
        }

        /* 3D Cube Styles */
        .cube-wrapper {
            width: 100%; height: 100%; position: relative;
            transform-style: preserve-3d; animation: cubeSpin 8s linear infinite;
        }
        .cube-face {
            position: absolute; width: 12px; height: 12px;
            background: rgba(16, 185, 129, 0.2);
            border: 1px solid rgba(16, 185, 129, 0.9);
            box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
        }
        .face-front  { transform: rotateY(0deg) translateZ(6px); }
        .face-back   { transform: rotateY(180deg) translateZ(6px); }
        .face-right  { transform: rotateY(90deg) translateZ(6px); }
        .face-left   { transform: rotateY(-90deg) translateZ(6px); }
        .face-top    { transform: rotateX(90deg) translateZ(6px); }
        .face-bottom { transform: rotateX(-90deg) translateZ(6px); }

        /* Gear Button Active States */
        .gear-btn.active-d { border-color: #3b82f6; background: rgba(59, 130, 246, 0.1); color: #3b82f6; }
        .gear-btn.active-n { border-color: #eab308; background: rgba(234, 179, 8, 0.1); color: #eab308; }
        .gear-btn.active-r { border-color: #a855f7; background: rgba(168, 85, 247, 0.1); color: #a855f7; }

        /* Scanner Button Active States */
        .scan-btn.active-1 { border-color: #f43f5e; background: rgba(244, 63, 94, 0.15); color: #f43f5e; box-shadow: 0 0 10px rgba(244, 63, 94, 0.2); }
        .scan-btn.active-2 { border-color: #3b82f6; background: rgba(59, 130, 246, 0.15); color: #3b82f6; box-shadow: 0 0 10px rgba(59, 130, 246, 0.2); }
        .scan-btn.active-3 { border-color: #10b981; background: rgba(16, 185, 129, 0.15); color: #10b981; box-shadow: 0 0 10px rgba(16, 185, 129, 0.2); }

        .zoom-target { transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), filter 0.8s ease; }

        .map-dot {
            position: absolute; width: 6px; height: 6px;
            border-radius: 50%; background-color: white;
            box-shadow: 0 0 12px rgba(255,255,255,0.9);
        }

        .terrain-grid {
            background-image:
                linear-gradient(to right, rgba(16, 185, 129, 0.3) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(16, 185, 129, 0.3) 1px, transparent 1px);
            background-size: 20px 20px;
            transform: perspective(300px) rotateX(60deg) scale(2);
            transform-origin: center 60%;
        }

        /* Pattern Card Styles */
        .pattern-card {
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }
        .pattern-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 10px 30px -10px rgba(59, 130, 246, 0.3);
            border-color: rgba(59, 130, 246, 0.6);
        }
        .pattern-card.active {
            border-color: #fbbf24; /* Amber/Gold for active */
            background: rgba(251, 191, 36, 0.05);
            box-shadow: 0 0 20px rgba(251, 191, 36, 0.2);
        }

        /* ╔═══════════════════════════════════════════════════════════╗ */
        /* ║         UTILITY TOOLBOX 3D CUBE STYLES (util-cube)       ║ */
        /* ║         (동일 구조: remider.html과 통일)                 ║ */
        /* ╚═══════════════════════════════════════════════════════════╝ */

        .util-scene {
            perspective: 1000px;
            width: 260px;
            height: 260px;
            margin: 0 auto;
            cursor: grab;
        }
        .util-scene:active {
            cursor: grabbing;
        }
        .util-cube {
            width: 100%;
            height: 100%;
            position: relative;
            transform-style: preserve-3d;
        }
        .util-cube-face {
            position: absolute;
            width: 260px;
            height: 260px;
            border: 2px solid rgba(148, 163, 184, 0.4);
            box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.5);
            color: #cbd5e1;
            font-family: 'JetBrains Mono', monospace;
            font-size: 10px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            backface-visibility: visible;
            overflow: hidden;
            border-radius: 4px;
            user-select: none;
            opacity: 0.95;
        }

        /* Face Transforms */
        .util-face-front  { transform: rotateY(0deg) translateZ(130px); }
        .util-face-back   { transform: rotateY(180deg) translateZ(130px); }
        .util-face-right  { transform: rotateY(90deg) translateZ(130px); }
        .util-face-left   { transform: rotateY(-90deg) translateZ(130px); }
        .util-face-top    { transform: rotateX(90deg) translateZ(130px); }
        .util-face-bottom { transform: rotateX(-90deg) translateZ(130px); }

        /* Face Colors - Transparent backgrounds with colored borders (Utility Pattern Theme) */
        .util-face-front  { background: rgba(59, 130, 246, 0.15); border-color: rgba(59, 130, 246, 0.6); color: #93c5fd; }
        .util-face-back   { background: rgba(139, 92, 246, 0.15); border-color: rgba(139, 92, 246, 0.6); color: #e9d5ff; }
        .util-face-right  { background: rgba(16, 185, 129, 0.15); border-color: rgba(16, 185, 129, 0.6); color: #6ee7b7; }
        .util-face-left   { background: rgba(249, 115, 22, 0.15); border-color: rgba(249, 115, 22, 0.6); color: #fed7aa; }
        .util-face-top    { background: rgba(236, 72, 153, 0.15); border-color: rgba(236, 72, 153, 0.6); color: #fbcfe8; }
        .util-face-bottom { background: rgba(14, 165, 233, 0.15); border-color: rgba(14, 165, 233, 0.6); color: #7dd3fc; }