* {
    cursor: none !important;
}

.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}
.grain-overlay {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 9999; opacity: 0.05;
}
.section-texture {
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 150px 150px;
}
.text-outline {
    -webkit-text-stroke: 1px currentColor;
    color: transparent;
}
.hero-text-glow {
    text-shadow: 0 0 40px rgba(253, 249, 243, 0.8), 0 0 80px rgba(253, 249, 243, 0.4);
}
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.cursor-ring {
    position: fixed;
    width: 40px; height: 40px;
    border: 1px solid #c4a882;
    border-radius: 50%;
    pointer-events: none;
    z-index: 10000;
    transition: transform 0.1s ease-out;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.15); /* Adds a subtle shadow instead */
}
.cursor-dot {
    position: fixed;
    width: 6px; height: 6px;
    background: #c4a882;
    border-radius: 50%;
    pointer-events: none;
    z-index: 10001;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.15); /* Adds a subtle shadow instead */
}

canvas#three-canvas {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    z-index: -1;
    opacity: 0.12;
}

.parallax-target {
    will-change: transform;
}

.hover-lift {
    transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px -20px rgba(0,0,0,0.15);
}
