/* Base Styles */
body {
    background-color: #050505; 
    color: #ffffff;
    overflow-x: hidden;
    cursor: default;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Modern Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #050505; }
::-webkit-scrollbar-thumb { background: #333; }
::-webkit-scrollbar-thumb:hover { background: #c5a059; }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Noise Texture */
.noise-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 9999; opacity: 0.04;
    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");
    mix-blend-mode: overlay;
}

/* Typography & Layout Utilities */
.text-outline { -webkit-text-stroke: 1px rgba(255, 255, 255, 0.15); color: transparent; }
.text-outline-dark { -webkit-text-stroke: 1px rgba(0, 0, 0, 0.1); color: transparent; }
.writing-vertical { writing-mode: vertical-rl; text-orientation: mixed; transform: rotate(180deg); }

/* Reveal Animations */
.reveal-mask { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s cubic-bezier(0.22, 1, 0.36, 1); }
.reveal-mask.active { clip-path: inset(0 0 0 0); }
.line-reveal { overflow: hidden; }
.line-reveal span, .line-reveal h2, .line-reveal h3, .line-reveal p { display: block; transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1); }

/* Mobile Menu */
#mobile-menu-overlay.hidden-menu { opacity: 0; visibility: hidden; pointer-events: none; }
#mobile-menu-overlay.visible-menu { opacity: 1; visibility: visible; pointer-events: auto; }

/* Custom Hover */
.hover-underline-animation { display: inline-block; position: relative; white-space: nowrap; }
.hover-underline-animation::after {
    content: ''; position: absolute; width: 100%; transform: scaleX(0); height: 1px; bottom: 0; left: 0;
    background-color: currentColor; transform-origin: bottom right; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.hover-underline-animation:hover::after { transform: scaleX(1); transform-origin: bottom left; }

/* Modal (Shared) */
.modal { opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0.4s ease; }
.modal.active { opacity: 1; visibility: visible; }
.modal-content { transform: scale(0.95) translateY(20px); transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
.modal.active .modal-content { transform: scale(1) translateY(0); }

/* Swiper Custom (Shared) */
.signature-swiper { overflow: visible !important; clip-path: inset(-100% -100vw -100% -100%); }
.swiper-slide { height: auto; }