/* Base Theme */
body { 
    background-color: #0f172a; /* Slate 900 */
    color: #e2e8f0; /* Slate 200 */
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
    /* Prevent rubber-banding showing white on iOS */
    overscroll-behavior-y: none;
}

/* Glass Panel Effect - Modified to match Web App Background (Dark Slate) */
.glass-panel { 
    background: rgba(15, 23, 42, 0.95); /* Matches Slate 950 */
    backdrop-filter: blur(10px); 
    border: 1px solid rgba(255,255,255,0.05); 
}

/* Utilities */
.scroll-hide::-webkit-scrollbar { display: none; }
.scroll-hide { -ms-overflow-style: none; scrollbar-width: none; }

/* Safe Area Utilities */
.safe-area-top {
    padding-top: env(safe-area-inset-top);
}

/* Animations */
@keyframes fade-in {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fade-in 0.3s ease-out forwards; }

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-spin-slow { animation: spin-slow 3s linear infinite; }

@keyframes spin-fast {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(1440deg); }
}
.animate-spin-fast { animation: spin-fast 3s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }


/* --- Advanced Glitch Effects --- */

/* Glitch Animation Keyframes for SVG Paths */
@keyframes glitch-anim-1 {
    0% { transform: translate(0); }
    20% { transform: translate(-2px, 2px); }
    40% { transform: translate(-2px, -2px); }
    60% { transform: translate(2px, 2px); }
    80% { transform: translate(2px, -2px); }
    100% { transform: translate(0); }
}

@keyframes glitch-anim-2 {
    0% { transform: translate(0); }
    20% { transform: translate(2px, -2px); }
    40% { transform: translate(2px, 2px); }
    60% { transform: translate(-2px, -2px); }
    80% { transform: translate(-2px, 2px); }
    100% { transform: translate(0); }
}

@keyframes glitch-skew {
    0% { transform: skew(0deg); }
    10% { transform: skew(-5deg); }
    20% { transform: skew(5deg); }
    30% { transform: skew(0deg); }
    100% { transform: skew(0deg); }
}

/* Base Classes for Glitch Layers */
.glitch-layer-1 {
    animation: glitch-anim-1 2.5s infinite linear alternate-reverse;
    opacity: 0.7;
    mix-blend-mode: hard-light;
}

.glitch-layer-2 {
    animation: glitch-anim-2 3s infinite linear alternate-reverse;
    opacity: 0.7;
    mix-blend-mode: hard-light;
}

/* Hover trigger wrapper */
.group:hover .glitch-layer-1,
.group:hover .glitch-layer-2 {
    opacity: 1;
    stroke-width: 2px;
}

/* Pulse animation for LockScreen cursor */
@keyframes cursor-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}
.animate-cursor { animation: cursor-blink 1s step-end infinite; }