/* ================================================
   PREMIUM LAYER — Ultra Edition
   ================================================ */

/* Lenis */
html.lenis, html.lenis body { height: auto; overflow: auto !important; }
.lenis.lenis-smooth { scroll-behavior: auto; }

/* ---- WELDING TORCH CURSOR ---- */
.custom-cursor {
    position: fixed;
    width: 12px; height: 12px;
    background: radial-gradient(circle, #fff 0%, #fde047 30%, #f59e0b 60%, transparent 100%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%,-50%);
    box-shadow:
        0 0 8px 3px rgba(253,224,71,.9),
        0 0 20px 8px rgba(245,158,11,.5),
        0 0 40px 15px rgba(245,158,11,.2);
    transition: width .2s, height .2s, box-shadow .3s;
}
.cursor-follower {
    position: fixed;
    width: 44px; height: 44px;
    border: none;
    border-radius: 50%;
    pointer-events: none;
    z-index: 99998;
    transform: translate(-50%,-50%);
    background: radial-gradient(circle, rgba(245,158,11,.08) 0%, transparent 70%);
    transition: width .4s cubic-bezier(.23,1,.32,1), height .4s cubic-bezier(.23,1,.32,1), opacity .3s;
    opacity: .7;
}
/* Hover — expand glow */
.cursor-hover .custom-cursor {
    width: 20px; height: 20px;
    box-shadow:
        0 0 12px 5px rgba(253,224,71,1),
        0 0 30px 12px rgba(245,158,11,.6),
        0 0 60px 25px rgba(245,158,11,.3);
}
.cursor-hover .cursor-follower {
    width: 70px; height: 70px;
    background: radial-gradient(circle, rgba(245,158,11,.12) 0%, transparent 70%);
    opacity: 1;
}
@media (hover: none) and (pointer: coarse) {
    .custom-cursor, .cursor-follower { display: none !important; }
}

/* ---- CURSOR SPARK TRAIL ---- */
.cursor-spark {
    position: fixed;
    pointer-events: none;
    z-index: 99997;
    border-radius: 50%;
    transform: translate(-50%,-50%);
}

/* ---- Film Noise Overlay ---- */
.noise-overlay {
    position: fixed; top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 9998;
    opacity: .03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-repeat: repeat;
}

/* ---- Enhanced Preloader ---- */
#preloader {
    position: fixed; top: 0; left: 0;
    width: 100%; height: 100%;
    background: var(--bg-darker);
    display: flex; align-items: center; justify-content: center;
    z-index: 99999;
}
.preloader-inner { text-align: center; }
.preloader-spark {
    width: 50px; height: 50px;
    border: 3px solid rgba(255,255,255,.06);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin .8s linear infinite;
    margin: 0 auto 1.5rem;
}
@keyframes spin { to { transform: rotate(360deg); } }
.preloader-text {
    position: relative;
    display: inline-block;
    overflow: hidden;
    font-weight: 800;
    font-size: 4rem;
    letter-spacing: 12px;
    color: var(--text-muted);
    text-shadow: 0 0 30px rgba(245,158,11,.15);
}
.preloader-text > span:not(.logo-glitch):not(.logo-scan-line) { color: var(--accent); }
.preloader-text .logo-glitch { animation-duration: 1.6s; }
.preloader-text .logo-glitch-2 { animation-duration: 1.6s; animation-delay: .2s; }
.preloader-text .logo-scan-line { animation-duration: 1.8s; }
.preloader-bar { width: 220px; height: 3px; background: rgba(255,255,255,.08); margin: 1.8rem auto 0; border-radius: 2px; overflow: hidden; }
.preloader-progress { height: 100%; width: 0; background: var(--accent); animation: preloaderFill 3.4s ease-in-out forwards; box-shadow: 0 0 12px var(--accent); }

@media (max-width: 600px) {
    .preloader-text { font-size: 2.6rem; letter-spacing: 8px; }
    .preloader-bar { width: 180px; }
}
@keyframes preloaderFill { to { width: 100%; } }

/* ---- Magnetic ---- */
.magnetic-wrap { position: relative; display: inline-block; }

/* ---- Gradient border on service cards ---- */
.service-card { perspective: 800px; }
.service-card::before {
    content: '';
    position: absolute; inset: -1px;
    border-radius: 20px; padding: 1px;
    background: linear-gradient(135deg, transparent 40%, var(--accent) 100%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    opacity: 0; transition: opacity .5s; z-index: 0;
}
.service-card:hover::before { opacity: 1; }

/* ---- 3D Tilt inner glow on cards ---- */
.service-card .card-tilt-glow {
    position: absolute; inset: 0;
    border-radius: 20px;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
    transition: opacity .3s;
}
.service-card:hover .card-tilt-glow { opacity: 1; }

/* ---- Parallax ---- */
.about-image { will-change: transform; }

/* ---- Stat glow ---- */
.stat-item h3 { text-shadow: 0 0 20px rgba(245,158,11,.3); }

/* ---- Process card hover glow ---- */
.process-item::after {
    content: ''; position: absolute; inset: 0; border-radius: 20px;
    background: radial-gradient(circle at 30% 0%, rgba(245,158,11,.06) 0%, transparent 60%);
    opacity: 0; transition: opacity .4s; pointer-events: none;
}
.process-item:hover::after { opacity: 1; }

/* ---- Section title reveal lines ---- */
.section-title { position: relative; }
.section-title::after {
    content: ''; display: block;
    width: 60px; height: 3px; background: var(--accent);
    margin-top: 1rem;
    transform: scaleX(0); transform-origin: left;
    transition: transform .6s cubic-bezier(.77,0,.175,1);
}
.text-center .section-title::after { margin-left: auto; margin-right: auto; transform-origin: center; }
.section-title.revealed::after { transform: scaleX(1); }

/* ---- WhatsApp pulse ---- */
.whatsapp-float::before {
    content: ''; position: absolute; inset: -6px;
    border-radius: 50%; border: 2px solid #25d366;
    animation: waPulse 2s ease-out infinite;
}
@keyframes waPulse { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.5); opacity: 0; } }

/* ---- Horizontal scroll text ticker ---- */
.ticker-section {
    overflow: hidden;
    padding: 2rem 0;
    border-top: 1px solid var(--glass-border);
    border-bottom: 1px solid var(--glass-border);
    background: var(--bg-dark);
}
.ticker-track {
    display: flex;
    width: max-content;
    animation: ticker 20s linear infinite;
}
.ticker-track span {
    font-size: 5rem;
    font-weight: 800;
    text-transform: uppercase;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,255,255,.08);
    white-space: nowrap;
    padding: 0 2rem;
    letter-spacing: 4px;
}
.ticker-track span .accent-stroke {
    -webkit-text-stroke-color: rgba(245,158,11,.2);
}
@keyframes ticker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* ---- Content spacing fixes ---- */
.about { padding-top: 7rem; }
.stats { padding: 5rem 0; }
.services { padding-top: 7rem; padding-bottom: 7rem; }
.process { padding-top: 7rem; padding-bottom: 7rem; }
.cta { padding: 6rem 0; }
.footer { padding-top: 5rem; padding-bottom: 2rem; }

@media (max-width: 992px) {
    .process-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .about { padding-top: 5rem; }
    .services { padding-top: 5rem; }
    .process { padding-top: 5rem; }
    .cta-content h2 { font-size: 2rem; }
    .stat-item h3 { font-size: 2.5rem; }
    .process-grid { grid-template-columns: 1fr; gap: 3rem; }
}
