

/* =========================================================
   RESET
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#0a0a0b;
    color:#f7f7f5;
    font-family:"DM Sans",sans-serif;
    overflow-x:hidden;
}

body.loading{
    overflow:hidden;
}

a{
    color:inherit;
    text-decoration:none;
}

button{
    font:inherit;
}

img{
    max-width:100%;
    display:block;
}


/* =========================================================
   VARIABLES
========================================================= */

:root{
    --bg:#0a0a0b;
    --bg2:#121214;
    --accent:#fdda03;
    --accent2:#ffe44d;
    --accent3:#fff176;
    --highlight:#ffc107;
    --white:#f7f7f5;
    --muted:#a8a8a0;
    --line:rgba(255,255,255,.08);
    --glass:rgba(18,18,20,.78);
}


/* =========================================================
   BACKGROUND
========================================================= */

body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-5;
    pointer-events:none;

    background:
        radial-gradient(
            circle at 15% 15%,
            rgba(253,218,3,.10),
            transparent 28%
        ),
        radial-gradient(
            circle at 85% 60%,
            rgba(253,218,3,.06),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #050505 0%,
            #0a0a0b 45%,
            #121214 100%
        );
}

.bg-grid{
    position:fixed;
    inset:0;
    z-index:-4;
    pointer-events:none;
    opacity:.17;

    background-image:
        linear-gradient(rgba(253,218,3,.07) 1px,transparent 1px),
        linear-gradient(90deg,rgba(253,218,3,.07) 1px,transparent 1px);

    background-size:70px 70px;

    mask-image:linear-gradient(
        to bottom,
        black,
        transparent 85%
    );

    animation:gridMove 18s linear infinite;
}

@keyframes gridMove{
    from{
        transform:translate3d(0,0,0);
    }

    to{
        transform:translate3d(70px,70px,0);
    }
}

.bg-orb{
    position:fixed;
    width:500px;
    height:500px;
    border-radius:50%;
    pointer-events:none;
    z-index:-3;
    opacity:.08;
    background:radial-gradient(
        circle,
        rgba(253,218,3,.85) 0%,
        rgba(253,218,3,.22) 35%,
        transparent 70%
    );
    animation:bgFloat 12s ease-in-out infinite;
}

.bg-orb.one{
    top:-220px;
    left:-180px;
}

.bg-orb.two{
    right:-250px;
    bottom:-250px;
    animation-delay:-5s;
}

@keyframes bgFloat{
    0%,100%{
        transform:translate3d(0,0,0);
    }

    50%{
        transform:translate3d(40px,-30px,0);
    }
}


/* =========================================================
   LOADER
========================================================= */

#loader{
    position:fixed;
    inset:0;
    z-index:99999;

    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;

    background:#050505;

    transition:
        opacity .8s ease,
        visibility .8s ease;
}

#loader.hide{
    opacity:0;
    visibility:hidden;
}

.loader-logo{
    font-size:clamp(48px,9vw,110px);
    font-weight:700;
    letter-spacing:.16em;
    margin-left:.16em;

    background:linear-gradient(
        90deg,
        #ffffff,
        #ffe44d,
        #ffffff
    );

    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;

    animation:loaderText 1.6s ease-in-out infinite;
}

@keyframes loaderText{
    0%,100%{
        opacity:.55;
    }

    50%{
        opacity:1;
    }
}

.loader-line{
    width:220px;
    height:2px;
    margin-top:28px;
    background:rgba(255,255,255,.1);
    overflow:hidden;
}

.loader-line span{
    display:block;
    width:45%;
    height:100%;
    background:#fdda03;

    animation:loaderBar 1.5s ease-in-out infinite;
}

@keyframes loaderBar{
    0%{
        transform:translateX(-120%);
    }

    100%{
        transform:translateX(350%);
    }
}


/* =========================================================
   CUSTOM CURSOR
========================================================= */

.cursor-ring{
    position:fixed;
    left:0;
    top:0;

    width:32px;
    height:32px;

    border:1px solid rgba(255,228,77,.85);
    border-radius:50%;

    pointer-events:none;
    z-index:99998;

    transform:translate(-50%,-50%);

    transition:
        width .25s ease,
        height .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.cursor-dot{
    position:fixed;
    left:0;
    top:0;

    width:6px;
    height:6px;

    border-radius:50%;
    background:#ffe44d;

    pointer-events:none;
    z-index:99999;

    transform:translate(-50%,-50%);

    box-shadow:
        0 0 10px rgba(253,218,3,.9),
        0 0 25px rgba(253,218,3,.55);
}

.cursor-ring.hover{
    width:58px;
    height:58px;
    border-color:#fdda03;
    background:rgba(253,218,3,.05);
}


/* =========================================================
   HEADER
========================================================= */

.header{
    position:fixed;
    top:0;
    left:0;
    right:0;

    height:86px;

    z-index:9000;

    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;

    padding:0 5vw;

    background:rgba(10,10,11,.62);
    border-bottom:1px solid rgba(255,255,255,.06);

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.logo{
    justify-self:start;

    font-size:25px;
    font-weight:700;
    letter-spacing:.16em;

    display:flex;
    align-items:center;
    gap:11px;
}

.logo-mark{
    width:25px;
    height:25px;
    position:relative;
    transform:rotate(45deg);
}

.logo-mark::before,
.logo-mark::after{
    content:"";
    position:absolute;
    border:2px solid #fdda03;
}

.logo-mark::before{
    inset:0;
}

.logo-mark::after{
    inset:6px;
    border-color:#ffe44d;
}

.nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:34px;
}

.nav > a,
.services-trigger{
    color:#c5c5bd;
    font-size:14px;
    font-weight:600;
    letter-spacing:.02em;

    transition:
        color .25s ease,
        transform .25s ease;
}

.nav > a:hover,
.services-trigger:hover{
    color:#ffffff;
    transform:translateY(-2px);
}

.services-wrap{
    position:static;
}

.services-trigger{
    border:0;
    background:none;
    cursor:pointer;
    text-transform:uppercase;
}

.services-trigger span{
    display:inline-block;
    margin-left:5px;
    transition:transform .25s ease;
}

.services-wrap:hover .services-trigger span{
    transform:rotate(180deg);
}

.project-link{
    justify-self:end;

    padding:13px 20px;

    border:1px solid rgba(255,228,77,.5);
    border-radius:30px;

    font-size:13px;
    font-weight:700;

    color:#fff;

    background:rgba(253,218,3,.08);

    transition:
        background .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.project-link:hover{
    background:#fdda03;
    border-color:#fdda03;
    transform:translateY(-3px);

    box-shadow:
        0 12px 35px rgba(253,218,3,.25);
}


/* =========================================================
   SERVICES MEGA MENU
========================================================= */

.mega-menu{
    position:absolute;
    left:50%;
    right:auto;
    width:min(94vw, 1500px);
    top:86px;

    padding:28px;

    display:grid;
    grid-template-columns:repeat(8,1fr);
    gap:18px;

    background:rgba(12,12,14,.97);
    border:1px solid rgba(255,228,77,.15);

    box-shadow:
        0 35px 100px rgba(0,0,0,.55);

    opacity:0;
    visibility:hidden;
    transform:translate(-50%, -15px);

    transition:
        opacity .3s ease,
        visibility .3s ease,
        transform .3s ease;

    max-height:calc(100vh - 110px);
    overflow:auto;
}

.services-wrap:hover .mega-menu,
.services-wrap.open .mega-menu{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, 0);
}

.mega-column h4{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.13em;

    color:#ffe44d;

    margin-bottom:15px;
}

.mega-column a{
    display:block;

    padding:6px 0;

    font-size:12px;
    color:#9a9a90;

    transition:
        color .2s ease,
        transform .2s ease;
}

.mega-column a:hover{
    color:#ffffff;
    transform:translateX(4px);
}


/* =========================================================
   MOBILE MENU
========================================================= */

.mobile-btn{
    display:none;

    width:42px;
    height:42px;

    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.03);

    border-radius:10px;

    color:white;
    cursor:pointer;
}

.mobile-btn span,
.mobile-btn span::before,
.mobile-btn span::after{
    content:"";
    display:block;

    width:18px;
    height:2px;

    background:#fff;

    margin:auto;

    transition:.3s;
}

.mobile-btn span::before{
    transform:translateY(-6px);
}

.mobile-btn span::after{
    transform:translateY(4px);
}


/* =========================================================
   HERO
========================================================= */

.hero{
    min-height:100vh;

    padding:
        150px 7vw
        70px;

    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        minmax(500px,1fr);

    align-items:center;
    gap:40px;

    position:relative;
    overflow:hidden;
}

.hero-content{
    max-width:720px;
    position:relative;
    z-index:5;

    animation:heroLeft 1s cubic-bezier(.2,.8,.2,1) .35s both;
}

@keyframes heroLeft{
    from{
        opacity:0;
        transform:translateX(-90px);
    }

    to{
        opacity:1;
        transform:translateX(0);
    }
}

.eyebrow{
    display:flex;
    align-items:center;
    gap:10px;

    margin-bottom:26px;

    color:#ffe44d;

    font-size:13px;
    font-weight:700;

    text-transform:uppercase;
    letter-spacing:.18em;
}

.eyebrow::before{
    content:"";
    width:34px;
    height:1px;
    background:#fdda03;
}

.hero h1{
    font-family:"Playfair Display",serif;

    font-size:clamp(65px,7.2vw,118px);
    line-height:.91;

    letter-spacing:-.055em;

    max-width:850px;
}

.hero h1 span{
    display:block;

    background:linear-gradient(
        90deg,
        #ffffff 0%,
        #fff59d 48%,
        #fdda03 100%
    );

    -webkit-background-clip:text;
    background-clip:text;

    color:transparent;
}

.hero-text{
    max-width:620px;

    margin-top:34px;

    color:#a8a8a0;

    font-size:18px;
    line-height:1.8;
}

.hero-buttons{
    display:flex;
    gap:15px;
    margin-top:38px;
    flex-wrap:wrap;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:16px 25px;

    border-radius:30px;

    font-size:14px;
    font-weight:700;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease,
        border-color .3s ease;
}

.btn-primary{
    background:#fdda03;
    color:#fff;
    border:1px solid #fdda03;

    box-shadow:
        0 12px 35px rgba(253,218,3,.18);
}

.btn-primary:hover{
    transform:translateY(-4px);
    box-shadow:
        0 20px 45px rgba(253,218,3,.28);
}

.btn-secondary{
    border:1px solid rgba(255,255,255,.15);
    background:rgba(255,255,255,.025);
    color:#e8f0f9;
}

.btn-secondary:hover{
    transform:translateY(-4px);
    border-color:rgba(255,228,77,.5);
    background:rgba(253,218,3,.07);
}


/* =========================================================
   HERO VISUAL
========================================================= */

.hero-visual{
    position:relative;

    min-height:570px;

    display:flex;
    align-items:center;
    justify-content:center;

    animation:heroRight 1.2s cubic-bezier(.2,.8,.2,1) .55s both;
}

@keyframes heroRight{
    from{
        opacity:0;
        transform:translateX(100px);
    }

    to{
        opacity:1;
        transform:translateX(0);
    }
}

/*
   IMPORTANT:
   NO FILTER
   NO BACKDROP FILTER
   NO RECTANGULAR GLOW
   NO SQUARE PSEUDO ELEMENT
*/

.scene{
    width:540px;
    height:540px;

    position:relative;

    display:flex;
    align-items:center;
    justify-content:center;

    transform-style:preserve-3d;

    background:transparent !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;

    isolation:isolate;

    transition:transform .15s ease-out;
}


/* =========================================================
   BLUE ORBITS
========================================================= */

.blue-orbit{
    position:absolute;

    width:390px;
    height:390px;

    border:1px solid rgba(255,228,77,.42);

    border-radius:50%;

    background:transparent;

    transform-style:preserve-3d;

    box-shadow:
        0 0 20px rgba(253,218,3,.08),
        inset 0 0 20px rgba(253,218,3,.03);

    animation:orbitSpin 18s linear infinite;
}

.blue-orbit.a{
    transform:rotateX(70deg) rotateZ(20deg);
}

.blue-orbit.b{
    transform:rotateY(70deg) rotateZ(-25deg);
    animation-duration:23s;
    animation-direction:reverse;
}

.blue-orbit.c{
    width:450px;
    height:450px;
    transform:rotateX(60deg) rotateY(35deg);
    animation-duration:28s;
}

@keyframes orbitSpin{
    from{
        transform:
            rotateX(70deg)
            rotateZ(0deg);
    }

    to{
        transform:
            rotateX(70deg)
            rotateZ(360deg);
    }
}


/* =========================================================
   ORANGE ORBIT
========================================================= */

.orange-orbit{
    position:absolute;

    width:520px;
    height:340px;

    border:2px solid rgba(255,107,22,.9);

    border-radius:50%;

    background:transparent;

    transform:
        rotateX(68deg)
        rotateY(-12deg)
        rotateZ(-18deg);

    box-shadow:
        0 0 10px rgba(255,107,22,.3),
        0 0 28px rgba(255,107,22,.12);

    animation:orangeSpin 14s linear infinite;

    /*
       FILTER INTENTIONALLY NOT USED.
       This prevents the unwanted square layer.
    */
}

@keyframes orangeSpin{
    from{
        transform:
            rotateX(68deg)
            rotateY(-12deg)
            rotateZ(-18deg);
    }

    to{
        transform:
            rotateX(68deg)
            rotateY(-12deg)
            rotateZ(342deg);
    }
}


/* =========================================================
   ORBIT PARTICLES
========================================================= */

.particle{
    position:absolute;

    width:7px;
    height:7px;

    border-radius:50%;

    background:#ffe44d;

    box-shadow:
        0 0 10px rgba(253,218,3,.75),
        0 0 22px rgba(253,218,3,.32);

    transform:translate(-50%,-50%);
}

.particle.p1{
    top:10%;
    left:50%;
}

.particle.p2{
    top:50%;
    left:8%;
}

.particle.p3{
    top:90%;
    left:50%;
}

.particle.p4{
    top:50%;
    left:92%;
}

.particle.orange{
    background:#ff6b16;

    box-shadow:
        0 0 10px rgba(255,107,22,.8),
        0 0 22px rgba(255,107,22,.3);
}


/* =========================================================
   CORE
========================================================= */

.core{
    position:relative;

    width:230px;
    height:230px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    background:transparent !important;

    border:0 !important;
    outline:0 !important;

    box-shadow:none !important;

    transform:translateZ(70px);

    isolation:isolate;
}


/* CIRCULAR GLOW ONLY */

.core-glow{
    position:absolute;

    width:310px;
    height:310px;

    border-radius:50%;

    background:radial-gradient(
        circle,
        rgba(253,218,3,.16) 0%,
        rgba(253,218,3,.07) 32%,
        rgba(253,218,3,.03) 54%,
        transparent 70%
    );

    pointer-events:none;
}


/* =========================================================
   SPHERE
========================================================= */

.sphere{
    position:relative;

    width:155px;
    height:155px;

    border-radius:50%;

    background:
        radial-gradient(
            circle at 32% 28%,
            #fff9c4 0%,
            #ffe44d 10%,
            #fdda03 27%,
            #c9a800 48%,
            #3d3500 69%,
            #0a0a0b 100%
        );

    border:1px solid rgba(255,228,77,.5);

    box-shadow:
        inset -25px -30px 50px rgba(0,0,0,.58),
        inset 15px 10px 30px rgba(255,255,255,.15),
        0 0 25px rgba(253,218,3,.45),
        0 0 60px rgba(253,218,3,.18);

    animation:sphereFloat 5s ease-in-out infinite;

    transform:translateZ(90px);

    overflow:visible;
}

@keyframes sphereFloat{
    0%,100%{
        transform:
            translateZ(90px)
            translateY(0);
    }

    50%{
        transform:
            translateZ(90px)
            translateY(-9px);
    }
}


/* SPHERE HIGHLIGHT */

.sphere::before{
    content:"";

    position:absolute;

    width:42px;
    height:42px;

    left:25px;
    top:21px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,.95) 0%,
            rgba(255,255,255,.5) 25%,
            rgba(255,255,255,.08) 58%,
            transparent 72%
        );

    /*
       NO FILTER HERE.
       Circular gradient gives the soft effect
       without creating a square GPU layer.
    */

    pointer-events:none;
}


/* OUTER CIRCULAR RING */

.sphere::after{
    content:"";

    position:absolute;

    width:188px;
    height:188px;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    border-radius:50%;

    border:1px solid rgba(253,218,3,.18);

    background:transparent;

    box-shadow:
        0 0 20px rgba(253,218,3,.08);

    pointer-events:none;
}


/* =========================================================
   ORB LABELS
========================================================= */

.orb-label{
    position:absolute;

    padding:7px 11px;

    border:1px solid rgba(253,218,3,.16);

    background:rgba(4,15,28,.72);

    border-radius:6px;

    font-size:9px;

    text-transform:uppercase;
    letter-spacing:.16em;

    color:#fff59d;

    white-space:nowrap;

    z-index:20;

    animation:labelFloat 4s ease-in-out infinite;
}

.orb-label.one{
    top:19%;
    right:4%;
}

.orb-label.two{
    bottom:19%;
    left:3%;
    animation-delay:-2s;
}

.orb-label.three{
    bottom:10%;
    right:13%;
    animation-delay:-1s;
}

@keyframes labelFloat{
    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-7px);
    }
}


/* =========================================================
   HERO STATS
========================================================= */

.hero-stats{
    grid-column:1 / -1;

    display:grid;
    grid-template-columns:repeat(3,1fr);

    max-width:900px;

    margin:20px auto 0;

    width:100%;

    border-top:1px solid var(--line);
    padding-top:30px;

    animation:statsUp .9s ease 1.1s both;
}

@keyframes statsUp{
    from{
        opacity:0;
        transform:translateY(35px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

.stat{
    text-align:center;

    border-right:1px solid var(--line);
}

.stat:last-child{
    border-right:0;
}

.stat strong{
    display:block;

    font-size:34px;
    font-weight:700;

    color:#fff;
}

.stat span{
    color:#9a9a90;

    font-size:11px;

    text-transform:uppercase;
    letter-spacing:.14em;
}


/* =========================================================
   SECTION COMMON
========================================================= */

.section{
    padding:140px 7vw;
    position:relative;
}

.section-heading{
    max-width:800px;
    margin-bottom:65px;
}

.kicker{
    color:#fff176;

    font-size:12px;
    font-weight:700;

    text-transform:uppercase;
    letter-spacing:.18em;

    margin-bottom:18px;
}

.section-heading h2{
    font-family:"Playfair Display",serif;

    font-size:clamp(45px,5vw,76px);

    line-height:1;

    letter-spacing:-.04em;
}

.section-heading p{
    margin-top:24px;

    color:#a8a89e;

    font-size:17px;
    line-height:1.8;

    max-width:650px;
}


/* =========================================================
   REVEAL
========================================================= */

.reveal{
    opacity:0;
    transform:translateY(60px);

    transition:
        opacity .9s cubic-bezier(.2,.8,.2,1),
        transform .9s cubic-bezier(.2,.8,.2,1);
}

.reveal.left{
    transform:translateX(-70px);
}

.reveal.right{
    transform:translateX(70px);
}

.reveal.scale{
    transform:scale(.88);
}

.reveal.show{
    opacity:1;
    transform:none;
}


/* =========================================================
   INTRO
========================================================= */

.intro{
    min-height:75vh;

    display:grid;
    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:100px;
}

.intro-title{
    font-family:"Playfair Display",serif;

    font-size:clamp(45px,5vw,78px);

    line-height:1;

    letter-spacing:-.045em;
}

.intro-title span{
    color:#fdda03;
}

.intro-copy{
    color:#aaaaa0;

    font-size:18px;
    line-height:1.9;
}

.intro-copy p + p{
    margin-top:25px;
}


/* =========================================================
   SOLUTIONS
========================================================= */

.solution-grid{
    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:18px;
}

.solution-card{
    position:relative;

    min-height:300px;

    padding:32px;

    border:1px solid rgba(255,255,255,.08);

    background:
        linear-gradient(
            145deg,
            rgba(12,29,50,.72),
            rgba(4,13,25,.72)
        );

    overflow:hidden;

    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        border-color .35s ease,
        box-shadow .35s ease;
}

.solution-card::before{
    content:"";

    position:absolute;

    width:170px;
    height:170px;

    right:-80px;
    top:-80px;

    border-radius:50%;

    background:rgba(253,218,3,.1);

    transition:
        transform .5s ease;
}

.solution-card:hover{
    transform:translateY(-12px);

    border-color:rgba(253,218,3,.32);

    box-shadow:
        0 25px 60px rgba(0,0,0,.3);
}

.solution-card:hover::before{
    transform:scale(1.5);
}

.card-number{
    color:#fdda03;

    font-size:11px;
    font-weight:700;

    letter-spacing:.14em;
}

.solution-card h3{
    margin-top:55px;

    font-size:25px;
}

.solution-card p{
    margin-top:15px;

    color:#a2a298;

    font-size:14px;
    line-height:1.7;
}

.card-arrow{
    position:absolute;

    bottom:28px;
    right:28px;

    font-size:20px;

    color:#ffe44d;

    transition:transform .3s ease;
}

.solution-card:hover .card-arrow{
    transform:translate(5px,-5px);
}


/* =========================================================
   ABOUT
========================================================= */

.about{
    display:grid;

    grid-template-columns:1fr 1fr;

    gap:100px;

    align-items:center;
}

.about-visual{
    min-height:480px;

    border:1px solid rgba(255,255,255,.08);

    position:relative;

    overflow:hidden;

    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(253,218,3,.15),
            transparent 40%
        ),
        linear-gradient(
            135deg,
            #121214,
            #0a0a0b
        );
}

.about-visual::before{
    content:"BINGO TECH LTD";

    position:absolute;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%)
        rotate(-8deg);

    font-size:clamp(50px,8vw,120px);

    font-weight:700;

    letter-spacing:.08em;

    color:rgba(255,255,255,.035);
}

.about-lines{
    position:absolute;
    inset:35px;

    border:1px solid rgba(253,218,3,.16);
}

.about-lines::before,
.about-lines::after{
    content:"";

    position:absolute;

    left:50%;
    top:0;
    bottom:0;

    width:1px;

    background:rgba(253,218,3,.10);
}

.about-lines::after{
    top:50%;
    bottom:auto;

    left:0;
    right:0;

    width:auto;
    height:1px;
}

.about-copy h2{
    font-family:"Playfair Display",serif;

    font-size:clamp(45px,5vw,72px);

    line-height:1;
}

.about-copy p{
    margin-top:25px;

    color:#a8a89e;

    font-size:17px;
    line-height:1.85;
}


/* =========================================================
   VALUES
========================================================= */

.values-grid{
    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:15px;
}

.value{
    min-height:220px;

    padding:28px;

    border:1px solid rgba(255,255,255,.07);

    background:rgba(255,255,255,.018);

    transition:
        transform .4s ease,
        border-color .3s ease,
        background .3s ease;
}

.value:hover{
    transform:translateY(-8px);

    border-color:rgba(255,228,77,.35);

    background:rgba(253,218,3,.035);
}

.value-icon{
    font-size:25px;
    color:#ffe44d;
}

.value h3{
    margin-top:50px;
    font-size:19px;
}

.value p{
    margin-top:10px;

    color:#76879b;

    font-size:13px;
    line-height:1.65;
}


/* =========================================================
   PROCESS
========================================================= */

.process-list{
    border-top:1px solid var(--line);
}

.process-card{
    display:grid;

    grid-template-columns:100px 1fr 1fr;

    gap:40px;

    align-items:center;

    padding:38px 0;

    border-bottom:1px solid var(--line);

    transition:
        padding .3s ease;
}

.process-card:hover{
    padding-left:18px;
    padding-right:18px;
}

.process-num{
    color:#fdda03;

    font-size:14px;
    font-weight:700;
}

.process-card h3{
    font-size:27px;
}

.process-card p{
    color:#a0a096;

    font-size:14px;
    line-height:1.7;
}


/* =========================================================
   CTA
========================================================= */

.cta{
    padding:150px 7vw;

    position:relative;

    text-align:center;

    overflow:hidden;
}

.cta::before{
    content:"";

    position:absolute;

    width:700px;
    height:700px;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(253,218,3,.13),
            transparent 68%
        );

    pointer-events:none;
}

.cta-content{
    position:relative;
    z-index:2;
}

.cta h2{
    font-family:"Playfair Display",serif;

    font-size:clamp(50px,7vw,100px);

    line-height:.95;

    letter-spacing:-.05em;
}

.cta p{
    max-width:620px;

    margin:25px auto 35px;

    color:#a8a89e;

    font-size:17px;
    line-height:1.7;
}


/* =========================================================
   FOOTER
========================================================= */

.footer{
    padding:70px 7vw 30px;

    border-top:1px solid rgba(255,255,255,.07);

    background:#050505;
}

.footer-top{
    display:grid;

    grid-template-columns:1.5fr repeat(3,1fr);

    gap:50px;

    padding-bottom:60px;
}

.footer-brand p{
    max-width:330px;

    margin-top:20px;

    color:#94948a;

    font-size:14px;
    line-height:1.8;
}

.footer-col h4{
    color:#fff;

    font-size:12px;

    text-transform:uppercase;
    letter-spacing:.15em;

    margin-bottom:18px;
}

.footer-col a{
    display:block;

    color:#96968c;

    font-size:13px;

    padding:5px 0;

    transition:
        color .2s ease,
        transform .2s ease;
}

.footer-col a:hover{
    color:#fff;
    transform:translateX(4px);
}


/* =========================================================
   SOCIAL ICONS
========================================================= */

.socials{
    display:flex;

    gap:9px;

    margin-top:25px;
}

.social{
    width:38px;
    height:38px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid rgba(255,255,255,.1);

    color:#9aacbf;

    font-size:12px;
    font-weight:700;

    transition:
        transform .3s ease,
        color .3s ease,
        border-color .3s ease,
        background .3s ease;
}

.social:hover{
    color:#fff;

    border-color:#fdda03;

    background:rgba(253,218,3,.1);

    transform:
        translateY(-5px)
        rotate(5deg);
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.footer-bottom{
    padding-top:25px;

    border-top:1px solid rgba(255,255,255,.06);

    display:flex;

    justify-content:space-between;

    gap:20px;

    color:#56677b;

    font-size:11px;
}


/* =========================================================
   RESPONSIVE 1100
========================================================= */

@media(max-width:1100px){

    .header{
        grid-template-columns:1fr auto;
    }

    .nav{
        display:none;
    }

    .project-link{
        display:none;
    }

    .mobile-btn{
        display:block;
    }

    .mega-menu{
        position:fixed;

        left:15px;
        right:15px;
        top:80px;

        grid-template-columns:repeat(2,1fr);

        max-height:calc(100vh - 100px);

        overflow:auto;
    }

    .mobile-open .nav{
        position:fixed;

        display:flex;

        left:15px;
        right:15px;
        top:80px;

        padding:25px;

        flex-direction:column;
        align-items:flex-start;

        background:rgba(12,12,14,.98);

        border:1px solid rgba(255,255,255,.08);

        gap:20px;

        max-height:calc(100vh - 100px);
        overflow:auto;
    }

    .mobile-open .services-wrap{
        width:100%;
    }

    .mobile-open .mega-menu{
        position:relative;

        top:auto;
        left:auto;
        right:auto;

        margin-top:15px;

        display:none;

        max-height:none;

        opacity:1;
        visibility:visible;
        transform:none;
    }

    .mobile-open .services-wrap.open .mega-menu{
        display:grid;
    }

    .hero{
        grid-template-columns:1fr;

        padding-top:140px;
    }

    .hero-visual{
        min-height:500px;
    }

    .hero-stats{
        margin-top:0;
    }

    .solution-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .values-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .footer-top{
        grid-template-columns:1fr 1fr;
    }
}


/* =========================================================
   RESPONSIVE 700
========================================================= */

@media(max-width:700px){

    .header{
        height:72px;
        padding:0 20px;
    }

    .logo{
        font-size:20px;
    }

    .mega-menu{
        top:72px;
    }

    .mobile-open .nav{
        top:72px;
    }

    .hero{
        padding:
            120px 22px
            55px;
    }

    .hero h1{
        font-size:clamp(55px,15vw,82px);
    }

    .hero-text{
        font-size:16px;
    }

    .hero-visual{
        min-height:420px;
        transform:scale(.72);
        margin:
            -45px
            0;
    }

    .scene{
        width:500px;
        height:500px;
    }

    .hero-stats{
        grid-template-columns:1fr;

        gap:20px;

        margin-top:10px;
    }

    .stat{
        border-right:0;
        border-bottom:1px solid var(--line);
        padding-bottom:18px;
    }

    .stat:last-child{
        border-bottom:0;
    }

    .section{
        padding:
            95px 22px;
    }

    .intro,
    .about{
        grid-template-columns:1fr;

        gap:45px;
    }

    .solution-grid{
        grid-template-columns:1fr;
    }

    .values-grid{
        grid-template-columns:1fr;
    }

    .process-card{
        grid-template-columns:50px 1fr;

        gap:20px;
    }

    .process-card p{
        grid-column:2;
    }

    .footer-top{
        grid-template-columns:1fr;
        gap:35px;
    }

    .footer-bottom{
        flex-direction:column;
    }

    .mega-menu{
        grid-template-columns:1fr;
    }

    .cta{
        padding:
            110px 22px;
    }

    .cursor-ring,
    .cursor-dot{
        display:none;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        scroll-behavior:auto !important;
        transition-duration:.01ms !important;
    }

}


/* =========================================================
   BINGO TECH LTD MULTI-PAGE EXTENSIONS — SAME REFERENCE SYSTEM
========================================================= */
.page-wrap{max-width:1180px;margin:0 auto;padding:150px 5vw 120px}
.page-hero{min-height:48vh;display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:end;padding-bottom:70px}
.page-hero h1{font-size:clamp(48px,7vw,94px);line-height:.94;letter-spacing:-.055em;margin-top:18px}
.page-hero h1 span{background:linear-gradient(90deg,#fff,#fff59d,#fdda03);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero-copy{color:#a8a8a0;font-size:17px;line-height:1.8;max-width:520px}
.page-meta{border-top:1px solid var(--line);padding-top:20px;color:#9a9a90;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.breadcrumb{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8a8a80;margin-bottom:18px}
.breadcrumb a:hover{color:#fff}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.detail-card{min-height:210px;padding:28px;border:1px solid var(--line);background:rgba(255,255,255,.018);position:relative;transition:.35s ease}
.detail-card:hover{transform:translateY(-7px);border-color:rgba(253,218,3,.5);background:rgba(253,218,3,.04)}
.detail-card .number{color:#fdda03;font-size:11px;letter-spacing:.15em}
.detail-card h3{font-size:20px;margin:35px 0 12px;letter-spacing:-.02em}
.detail-card p{color:#a2a298;line-height:1.7;font-size:13px}
.detail-card a{display:inline-block;margin-top:18px;color:#fff59d;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.category-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin:35px 0 70px}
.category-strip a{padding:16px 12px;border:1px solid var(--line);font-size:10px;color:#a8a8a0;transition:.25s}
.category-strip a:hover,.category-strip a.active{color:#fff;border-color:#fdda03;background:rgba(253,218,3,.06)}
.service-detail{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}
.service-detail h2{font-size:clamp(32px,4vw,58px);line-height:1;letter-spacing:-.045em}
.service-detail .lead{font-size:18px;line-height:1.8;color:#b2c0d0}
.service-list{display:grid;gap:0;margin-top:28px;border-top:1px solid var(--line)}
.service-list div{display:grid;grid-template-columns:55px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.service-list strong{color:#fdda03;font-size:11px}.service-list span{color:#a8a8a0;font-size:13px;line-height:1.7}
.service-cta{margin-top:90px;padding:70px 55px;border:1px solid rgba(253,218,3,.25);background:linear-gradient(120deg,rgba(253,218,3,.08),rgba(255,255,255,.015));display:flex;justify-content:space-between;gap:35px;align-items:center}
.service-cta h2{font-size:clamp(32px,4vw,55px);letter-spacing:-.04em;line-height:1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#9a9a90}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.025);color:#fff;padding:15px 16px;outline:0;font:inherit}.field textarea{min-height:170px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#fdda03}
@media(max-width:1100px){.page-hero,.service-detail{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.category-strip{grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){.page-wrap{padding:120px 20px 80px}.page-hero{padding-bottom:50px}.detail-grid{grid-template-columns:1fr}.category-strip{grid-template-columns:repeat(2,1fr)}.service-cta{padding:40px 25px;flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}

/* BINGO TECH LTD content sections */
.about-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:34px}
.about-panel{padding:34px;border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:14px}
.about-panel h3{font-size:25px;line-height:1.12;margin:14px 0}
.about-panel p{color:#8b9aae;line-height:1.8;font-size:14px;max-width:650px}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:38px}
.work-slot{border:1px solid var(--line);background:#121214;border-radius:14px;overflow:hidden}
.work-image{height:280px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 45%,rgba(253,218,3,.16),transparent 38%),linear-gradient(145deg,#0b1c2f,#0a0a0b);border-bottom:1px solid var(--line);color:#ffe44d;font:700 12px Montserrat;letter-spacing:.18em}
.work-copy{padding:25px}
.work-copy h3{font-size:22px;margin:10px 0}
.work-copy p{color:#8b9aae;line-height:1.7;font-size:13px}
.work-copy a{display:inline-block;margin-top:10px;color:#ffe44d}
.work-cta{margin-top:50px;padding:45px;border:1px solid rgba(253,218,3,.25);background:linear-gradient(135deg,rgba(253,218,3,.07),rgba(255,255,255,.02));border-radius:14px}
.work-cta h2{font-size:38px;margin:10px 0}
.work-cta p{color:#8b9aae}
@media(max-width:800px){.about-grid,.work-grid{grid-template-columns:1fr}.work-image{height:220px}.work-cta h2{font-size:30px}}

/* Premium contact page */
.contact-page{min-height:80vh}
.contact-hero{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:90px 0 110px;display:grid;grid-template-columns:minmax(0,1fr) minmax(460px,650px);gap:70px;align-items:start}
.contact-intro{padding-top:20px}
.contact-intro h1{font-size:clamp(52px,6.5vw,92px);line-height:.98;letter-spacing:-.055em;max-width:700px;margin:18px 0 28px}
.contact-lead{font-size:18px;line-height:1.8;color:#8d9bad;max-width:650px}
.contact-direct{margin-top:55px;padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-direct>div:first-child{grid-column:1/-1}
.contact-direct h3{font-size:22px;margin:8px 0}
.contact-direct p{font-size:13px;color:#7f8d9f;line-height:1.6;max-width:450px}
.direct-item{padding:18px 0;border-top:1px solid rgba(255,255,255,.07)}
.direct-item small{display:block;color:#ffe44d;letter-spacing:.14em;font-size:9px;margin-bottom:8px}
.direct-item strong{font-size:14px;color:#eaf2fb;word-break:break-word}
.contact-form-wrap{padding:38px;background:linear-gradient(145deg,rgba(13,30,48,.92),rgba(5,13,22,.96));border:1px solid rgba(253,218,3,.18);border-radius:18px;box-shadow:0 35px 90px rgba(0,0,0,.3)}
.form-top{padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:26px}
.form-top h2{font-size:34px;letter-spacing:-.03em;margin:10px 0}
.form-top p{color:#8492a5;font-size:13px;line-height:1.6}
.contact-form{display:grid;gap:18px}
.contact-form label{display:grid;gap:8px;color:#c7d1dd;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.12);background:#081522;color:#eef6ff;border-radius:8px;padding:15px 16px;font:inherit;font-size:13px;outline:none;transition:.2s}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#536276}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#fdda03;box-shadow:0 0 0 3px rgba(253,218,3,.1)}
.contact-form select{cursor:pointer;appearance:auto}
.contact-form select option,.contact-form select optgroup{background:#081522;color:#eef6ff}
.contact-form textarea{resize:vertical;min-height:155px;line-height:1.6}
.contact-form .btn-primary{justify-self:start;border:0;cursor:pointer;padding:15px 22px}
@media(max-width:950px){.contact-hero{grid-template-columns:1fr;gap:45px}.contact-intro h1{font-size:clamp(48px,10vw,76px)}}
@media(max-width:600px){.contact-hero{width:min(100% - 30px,1240px);padding:55px 0 75px}.contact-form-wrap{padding:24px}.form-row,.contact-direct{grid-template-columns:1fr}.contact-direct>div:first-child{grid-column:auto}.contact-intro h1{font-size:48px}.contact-lead{font-size:16px}}

/* Official BINGO TECH LTD logo */
.header .logo{display:flex;align-items:center;width:178px;height:48px}
.header .logo img{display:block;width:48px;height:48px;object-fit:contain}
.loader-logo{width:160px;height:160px;display:flex;align-items:center;justify-content:center}
.loader-logo img{width:140px;height:140px;object-fit:contain}
@media(max-width:700px){.header .logo img{width:40px;height:40px}.loader-logo{width:120px;height:120px}.loader-logo img{width:100px;height:100px}}

.footer .logo{display:flex;align-items:center;width:190px;min-height:48px}
.footer .logo img{display:block;width:72px;height:72px;object-fit:contain}
@media(max-width:700px){.footer .logo img{width:56px;height:56px}}

/* Enlarged official BINGO TECH LTD branding */
.header .logo{width:245px;height:58px}
.header .logo-mark-image img{width:52px;height:52px}
.loader-logo{width:180px;height:180px}
.loader-logo img{width:160px;height:160px;object-fit:contain}
.footer .logo{width:255px;min-height:58px}
.footer .logo img{width:80px;height:80px}
@media(max-width:950px){
  .header .logo{width:210px;height:52px}
  .header .logo-mark-image img{width:46px;height:46px}
}
@media(max-width:700px){
  .header .logo{width:185px;height:46px}
  .header .logo-mark-image img{width:40px;height:40px}
  .loader-logo{width:140px;height:140px}
  .loader-logo img{width:120px;height:120px}
  .footer .logo{width:205px;min-height:50px}
  .footer .logo img{width:64px;height:64px}
}

/* BINGO TECH LTD service page layout variations */
.service-variant{padding:70px 0}.service-variant .eyebrow{letter-spacing:.16em}.variant-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end;padding:80px 0 60px}.variant-hero h1{font-size:clamp(3rem,7vw,7rem);line-height:.92;margin:14px 0}.variant-panel{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);padding:34px;border-radius:22px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.12);margin-top:35px}.metric-row div{padding:28px;background:#0a0a0b}.metric-row b{display:block;font-size:2rem}.split-showcase{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:start}.split-showcase h2{font-size:clamp(2rem,4vw,4.5rem);line-height:1}.stack-list{border-top:1px solid rgba(255,255,255,.12)}.stack-list article{padding:24px 0;border-bottom:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:70px 1fr;gap:18px}.stack-list strong{font-size:.8rem;color:#fdda03}.stack-list h3{margin:0 0 7px}.stack-list p{margin:0;color:#b0b0a8}.process-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.process-rail article{min-height:190px;padding:25px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.01))}.process-rail span{font-size:.75rem;color:#fdda03}.process-rail h3{margin:28px 0 8px}.case-band{display:grid;grid-template-columns:1fr 1fr;gap:25px}.case-band .big-card{min-height:300px;padding:35px;border-radius:25px;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(circle at 80% 20%,rgba(253,218,3,.14),transparent 42%)}.case-band .big-card h3{font-size:2rem;margin:8px 0}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.capability-grid article{padding:24px;border:1px solid rgba(255,255,255,.1);border-radius:16px}.capability-grid h3{margin:8px 0}.service-quote{font-size:clamp(2rem,4vw,4rem);line-height:1.02;max-width:1000px;padding:60px 0}.service-quote em{color:#fdda03;font-style:normal}.related-strip{display:flex;flex-wrap:wrap;gap:10px}.related-strip a{padding:13px 17px;border:1px solid rgba(255,255,255,.12);border-radius:999px}.service-number{font-size:5rem;font-weight:700;opacity:.12;line-height:.8}@media(max-width:850px){.variant-hero,.split-showcase,.case-band{grid-template-columns:1fr}.process-rail{grid-template-columns:1fr 1fr}.capability-grid{grid-template-columns:1fr 1fr}.metric-row{grid-template-columns:1fr}}@media(max-width:520px){.process-rail,.capability-grid{grid-template-columns:1fr}}

/* BINGO TECH LTD social footer links */
.lynux-social-links a{color:inherit;text-decoration:none;transition:opacity .2s,transform .2s}.lynux-social-links a:hover{opacity:.75;transform:translateY(-2px)}

/* Final layout safety: prevent project/work artwork from escaping the viewport. */
html, body { overflow-x: hidden; max-width: 100%; }
.work-grid, .work-slot, .work-image, .work-copy { min-width: 0; max-width: 100%; }
.work-slot { transform: none !important; }
.work-image { transform: none !important; }
.work-copy img { max-width: 100%; height: auto; display: block; }
@media (max-width: 700px) { .work-grid { grid-template-columns: 1fr !important; } .work-slot { width: 100%; } }


/* FINAL SOCIAL ICONS */
.lynux-social-icons{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:24px;
}
.lynux-social-icons a{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  background:rgba(255,255,255,.025);
  color:#c9d5e3;
  text-decoration:none;
  box-sizing:border-box;
  transition:transform .2s ease,border-color .2s ease,color .2s ease,background .2s ease;
}
.lynux-social-icons a:hover{
  transform:translateY(-3px);
  border-color:rgba(253,218,3,.65);
  color:#fff;
  background:rgba(253,218,3,.08);
}
.lynux-social-icons svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.lynux-social-icons a:nth-child(2) svg,
.lynux-social-icons a:nth-child(3) svg,
.lynux-social-icons a:nth-child(4) svg{
  stroke-width:0;
  fill:currentColor;
}
.footer .lynux-social-links,
.footer .socials{display:none !important;}

/* FINAL WORK PAGE CONTAINMENT */
.work-page,.work-page *{box-sizing:border-box;}
.work-page{width:100%;max-width:100%;overflow:hidden;}
.work-hero-inner{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:120px 0 55px;}
.work-hero-inner h1{font-size:clamp(52px,8vw,110px);line-height:.94;letter-spacing:-.055em;max-width:950px;margin:16px 0 24px;}
.work-hero-inner p{max-width:650px;color:#8998aa;font-size:16px;line-height:1.8;}
.work-showcase{padding-top:40px;}
.work-board{width:min(1180px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.work-card{min-width:0;width:100%;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:linear-gradient(145deg,#121214,#0a0a0b);}
.work-card-top{display:flex;justify-content:space-between;gap:15px;padding:16px 20px;color:#9a9a90;font-size:9px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08);}
.work-art{width:100%;height:330px;min-width:0;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.08);}
.work-art b{position:absolute;bottom:20px;left:22px;font-size:10px;letter-spacing:.2em;color:#dce8f5;}
.art-one{background:radial-gradient(circle at 50% 30%,rgba(253,218,3,.22),transparent 42%),linear-gradient(135deg,#1a1a12,#0a0a0b);}
.art-window{width:72%;max-width:390px;height:62%;border:1px solid rgba(253,218,3,.32);border-radius:10px;background:rgba(2,9,18,.75);box-shadow:0 20px 50px rgba(0,0,0,.35);padding:16px;display:grid;grid-template-columns:repeat(3,6px) 1fr;gap:5px;align-content:start;}
.art-window i{width:6px;height:6px;border-radius:50%;background:#ffe44d;}
.art-window b{position:static;grid-column:1/-1;margin-top:28%;font-size:clamp(18px,3vw,30px);letter-spacing:.02em;color:#fff;}
.art-two{background:radial-gradient(circle at 50% 50%,rgba(253,218,3,.16),transparent 35%),linear-gradient(145deg,#161612,#0a0a0b);}
.art-symbol{font-size:150px;font-weight:700;line-height:1;color:#fdda03;transform:skew(-8deg);text-shadow:0 0 60px rgba(253,218,3,.25);}
.art-three{background:linear-gradient(145deg,#121210,#080808);}
.art-grid{display:grid;grid-template-columns:repeat(3,48px);gap:12px;transform:rotate(-8deg);max-width:100%;}
.art-grid i{height:48px;border:1px solid rgba(255,228,77,.45);background:rgba(253,218,3,.08);border-radius:8px;}
.art-four{background:radial-gradient(circle at 80% 20%,rgba(253,218,3,.20),transparent 35%),linear-gradient(145deg,#161610,#0a0a0b);}
.art-bars{height:180px;width:min(70%,360px);display:flex;align-items:end;justify-content:center;gap:14px;}
.art-bars i{width:18%;border:1px solid rgba(255,228,77,.4);background:rgba(253,218,3,.1);border-radius:5px 5px 0 0;}
.art-bars i:nth-child(1){height:35%}.art-bars i:nth-child(2){height:58%}.art-bars i:nth-child(3){height:76%}.art-bars i:nth-child(4){height:100%}
.work-card-copy{padding:28px;min-width:0;}
.work-card-copy h2{font-size:30px;margin:9px 0 12px;letter-spacing:-.025em;}
.work-card-copy p{color:#8b9aae;font-size:14px;line-height:1.75;margin:0;max-width:560px;}
.work-card-copy a{display:inline-block;margin-top:20px;color:#ffe44d;text-decoration:none;}
.work-note{padding-top:30px;}
.work-note-box{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:50px;border:1px solid rgba(253,218,3,.18);border-radius:20px;background:linear-gradient(135deg,rgba(253,218,3,.07),rgba(255,255,255,.02));}
.work-note-box h2{font-size:clamp(34px,5vw,64px);margin:12px 0;}
.work-note-box p{color:#8998aa;max-width:650px;line-height:1.7;}
.work-note-box .btn-primary{display:inline-block;margin-top:18px;}
@media(max-width:800px){
  .work-board{grid-template-columns:1fr;width:min(100% - 30px,1180px);}
  .work-hero-inner,.work-note-box{width:min(100% - 30px,1180px);}
  .work-art{height:270px;}
}
@media(max-width:520px){
  .work-hero-inner{padding-top:100px;}
  .work-art{height:230px;}
  .art-grid{grid-template-columns:repeat(3,36px);gap:8px;}
  .art-grid i{height:36px;}
  .art-symbol{font-size:110px;}
  .work-note-box{padding:30px 24px;}
  .lynux-social-icons a{width:36px;height:36px;}
}

/* WORK PAGE HOVER EFFECTS */
.work-card{
  transition:transform .45s cubic-bezier(.22,.61,.36,1),border-color .45s ease,box-shadow .45s ease;
}
.work-card:hover{
  transform:translateY(-10px);
  border-color:rgba(253,218,3,.5);
  box-shadow:0 24px 55px rgba(0,0,0,.28),0 0 30px rgba(253,218,3,.08);
}
.work-card .work-art{
  transition:transform .55s cubic-bezier(.22,.61,.36,1),background .45s ease;
}
.work-card:hover .work-art{
  transform:scale(1.018);
}
.work-card .art-window,
.work-card .art-symbol,
.work-card .art-grid,
.work-card .art-bars{
  transition:transform .55s cubic-bezier(.22,.61,.36,1),filter .45s ease;
}
.work-card:hover .art-window{transform:scale(1.035);box-shadow:0 24px 60px rgba(0,0,0,.42),0 0 30px rgba(253,218,3,.10);}
.work-card:hover .art-symbol{transform:skew(-8deg) scale(1.06);filter:drop-shadow(0 0 22px rgba(253,218,3,.22));}
.work-card:hover .art-grid{transform:rotate(-8deg) scale(1.06);}
.work-card:hover .art-bars{transform:scale(1.045);}
.work-card-copy a{transition:color .3s ease,transform .3s ease;}
.work-card-copy a:hover{color:#fff;transform:translateX(6px);}

/* Navbar-only branding update: logo first, then BINGO TECH LTD. */
.header .logo{
  width:auto;
  height:58px;
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  white-space:nowrap;
}
.header .logo-mark-image{
  width:48px;
  height:48px;
  flex:0 0 48px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.header .logo-mark-image img{
  display:block;
  width:48px;
  height:48px;
  max-width:none;
  max-height:none;
  object-fit:contain;
}
.header .logo-wordmark{
  display:inline-flex;
  align-items:baseline;
  gap:7px;
  font-size:22px;
  line-height:1;
  font-weight:700;
  letter-spacing:.02em;
}
.header .logo-bingo{color:#fff}
.header .logo-tech,.header .logo-ltd{color:#fdda03}
@media(max-width:1100px){
  .header .logo-wordmark{font-size:20px}
  .header .logo-mark-image,.header .logo-mark-image img{width:44px;height:44px}
  .header .logo-mark-image{flex-basis:44px}
}
@media(max-width:700px){
  .header .logo{height:46px;gap:8px}
  .header .logo-wordmark{font-size:15px;gap:4px;letter-spacing:.01em}
  .header .logo-mark-image,.header .logo-mark-image img{width:38px;height:38px}
  .header .logo-mark-image{flex-basis:38px}
}


/* =========================================================
   ENHANCEMENTS v2 — Advanced Animations & Polish
   ========================================================= */

/* Scroll Progress Bar */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0%;
    background: linear-gradient(90deg, #fdda03, #fff176, #ff6b16);
    z-index: 10000;
    transition: width 0.1s linear;
    box-shadow: 0 0 12px rgba(253, 218, 3, 0.55);
    pointer-events: none;
}

/* Improved Reveal Animations */
.reveal {
    opacity: 0;
    transform: translateY(40px) scale(0.98);
    filter: blur(4px);
    transition:
        opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        filter 0.9s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform, filter;
}

.reveal.show {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
}

.reveal-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-left.show {
    opacity: 1;
    transform: translateX(0);
}

.reveal-right {
    opacity: 0;
    transform: translateX(50px);
    transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-right.show {
    opacity: 1;
    transform: translateX(0);
}

.reveal-scale {
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-scale.show {
    opacity: 1;
    transform: scale(1);
}

/* Stagger delays */
.reveal[data-delay="1"] { transition-delay: 0.1s; }
.reveal[data-delay="2"] { transition-delay: 0.2s; }
.reveal[data-delay="3"] { transition-delay: 0.3s; }
.reveal[data-delay="4"] { transition-delay: 0.4s; }
.reveal[data-delay="5"] { transition-delay: 0.5s; }
.reveal[data-delay="6"] { transition-delay: 0.6s; }
.reveal[data-delay="7"] { transition-delay: 0.7s; }
.reveal[data-delay="8"] { transition-delay: 0.8s; }

/* Enhanced Buttons */
.btn {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.18),
        transparent
    );
    transition: left 0.55s ease;
    z-index: -1;
}

.btn:hover::before {
    left: 100%;
}

.btn-primary {
    box-shadow: 0 0 0 0 rgba(253, 218, 3, 0.4);
    animation: btnPulse 2.8s ease-in-out infinite;
}

@keyframes btnPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(253, 218, 3, 0.35); }
    50% { box-shadow: 0 0 0 12px rgba(253, 218, 3, 0); }
}

.btn-primary:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 12px 28px rgba(253, 218, 3, 0.35);
}

.btn-secondary:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 228, 77, 0.55);
    background: rgba(253, 218, 3, 0.08);
}

/* Solution / Card enhancements */
.solution-card,
.detail-card,
.process-card,
.value,
.work-slot,
.capability-grid article,
.process-rail article {
    transition:
        transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.4s ease,
        border-color 0.4s ease,
        background 0.4s ease;
    will-change: transform;
}

.solution-card:hover,
.detail-card:hover,
.process-card:hover,
.value:hover,
.work-slot:hover,
.capability-grid article:hover,
.process-rail article:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow:
        0 20px 40px rgba(0, 0, 0, 0.35),
        0 0 30px rgba(253, 218, 3, 0.12);
    border-color: rgba(253, 218, 3, 0.35);
}

/* Glow border on hover for cards */
.solution-card {
    position: relative;
}

.solution-card::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, transparent, rgba(253, 218, 3, 0.5), transparent);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.solution-card:hover::after {
    opacity: 1;
}

/* Floating labels in hero */
.orb-label {
    animation: labelFloat 6s ease-in-out infinite;
}

.orb-label.one { animation-delay: 0s; }
.orb-label.two { animation-delay: -2s; }
.orb-label.three { animation-delay: -4s; }

@keyframes labelFloat {
    0%, 100% { transform: translateY(0); opacity: 0.85; }
    50% { transform: translateY(-8px); opacity: 1; }
}

/* Stats counter polish */
.hero-stats .stat strong {
    background: linear-gradient(135deg, #f5f8ff 0%, #fff176 50%, #fdda03 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
}

.hero-stats .stat {
    transition: transform 0.35s ease;
}

.hero-stats .stat:hover {
    transform: scale(1.08);
}

/* Enhanced Loader */
#loader {
    background: radial-gradient(circle at 50% 40%, #121214 0%, #0a0a0b 70%);
}

.loader-logo img {
    animation: loaderLogo 1.8s ease-in-out infinite;
}

@keyframes loaderLogo {
    0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px rgba(253,218,3,0.3)); }
    50% { transform: scale(1.06); filter: drop-shadow(0 0 20px rgba(253,218,3,0.6)); }
}

/* Mega menu polish */
.mega-menu {
    backdrop-filter: blur(20px) saturate(1.4);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 40px rgba(253,218,3,0.08);
    animation: megaIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes megaIn {
    from { opacity: 0; transform: translateY(12px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.mega-column a {
    position: relative;
    transition: color 0.25s ease, padding-left 0.25s ease;
}

.mega-column a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 0;
    height: 1px;
    background: #fdda03;
    transition: width 0.3s ease;
    transform: translateY(-50%);
}

.mega-column a:hover {
    color: #fff176;
    padding-left: 12px;
}

.mega-column a:hover::before {
    width: 8px;
}

/* Header glass on scroll */
.header.scrolled {
    background: rgba(3, 9, 20, 0.82);
    backdrop-filter: blur(16px) saturate(1.3);
    -webkit-backdrop-filter: blur(16px) saturate(1.3);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}

/* CTA section enhancement */
.cta {
    position: relative;
    overflow: hidden;
}

.cta::before {
    content: "";
    position: absolute;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(253,218,3,0.15), transparent 70%);
    top: -100px;
    right: -100px;
    animation: ctaOrb 10s ease-in-out infinite;
    pointer-events: none;
}

@keyframes ctaOrb {
    0%, 100% { transform: translate(0,0) scale(1); }
    50% { transform: translate(-30px, 20px) scale(1.1); }
}

/* Process step numbers pulse */
.process-card span,
.process-rail span {
    display: inline-block;
    transition: transform 0.3s ease, color 0.3s ease;
}

.process-card:hover span,
.process-rail article:hover span {
    transform: scale(1.15);
    color: #fff176;
}

/* Gradient text utility */
.gradient-text {
    background: linear-gradient(135deg, #f5f8ff, #fff176, #fdda03);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Smooth focus for a11y */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid #fdda03;
    outline-offset: 3px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    .reveal, .reveal-left, .reveal-right, .reveal-scale {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

/* Extra floating particles (CSS only) */
.bg-particle {
    position: fixed;
    width: 3px;
    height: 3px;
    background: rgba(255, 228, 77, 0.45);
    border-radius: 50%;
    pointer-events: none;
    z-index: -2;
    animation: particleDrift linear infinite;
}

@keyframes particleDrift {
    0% { transform: translateY(100vh) scale(0); opacity: 0; }
    10% { opacity: 0.6; }
    90% { opacity: 0.6; }
    100% { transform: translateY(-10vh) scale(1); opacity: 0; }
}

/* Mobile refinements */
@media (max-width: 700px) {
    .btn-primary {
        animation: none;
    }
    .solution-card:hover,
    .detail-card:hover,
    .process-card:hover {
        transform: translateY(-6px) scale(1.01);
    }
}

/* Subtle page load fade for main content */
main {
    animation: mainFade 0.8s ease 0.3s both;
}

@keyframes mainFade {
    from { opacity: 0; }
    to { opacity: 1; }
}


/* =========================================================
   THEME POLISH — Charcoal + Glossy Yellow (Logo Match)
   ========================================================= */

:root {
    --bg: #0a0a0b;
    --bg2: #121214;
    --accent: #fdda03;
    --accent2: #ffe44d;
    --accent3: #fff176;
    --highlight: #ffc107;
    --white: #f7f7f5;
    --muted: #a8a8a0;
    --line: rgba(255,255,255,.08);
    --glass: rgba(18,18,20,.82);
    --charcoal: #1f1f21;
}

/* Stronger yellow accents on interactive elements */
.btn-primary {
    background: linear-gradient(135deg, #fdda03 0%, #ffc107 100%) !important;
    color: #0a0a0b !important;
    border: 1px solid #fdda03 !important;
    font-weight: 700;
    box-shadow: 0 8px 28px rgba(253, 218, 3, 0.28), 0 0 0 1px rgba(253,218,3,.15);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.btn-primary:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
    box-shadow: 0 14px 40px rgba(253, 218, 3, 0.4), 0 0 0 1px rgba(253,218,3,.25);
}

.nav > a.active,
.nav > a:hover,
.services-trigger:hover {
    color: #fdda03 !important;
}

.kicker {
    color: #fdda03 !important;
    letter-spacing: 0.12em;
    font-weight: 600;
}

/* Cards hover glow yellow */
.solution-card:hover,
.detail-card:hover,
.process-card:hover,
.value:hover {
    border-color: rgba(253, 218, 3, 0.45) !important;
    box-shadow: 0 20px 50px rgba(0,0,0,.45), 0 0 30px rgba(253, 218, 3, 0.08) !important;
}

/* Logo wordmark polish */
.header .logo-bingo { color: #f7f7f5; }
.header .logo-tech,
.header .logo-ltd { color: #fdda03; text-shadow: 0 0 18px rgba(253,218,3,.25); }

/* Loader polish */
#loader {
    background: #0a0a0b !important;
}
.loader-line span {
    background: linear-gradient(90deg, transparent, #fdda03, transparent) !important;
}

/* Cursor */
.cursor-ring {
    border-color: rgba(253, 218, 3, 0.7) !important;
}
.cursor-ring.hover {
    border-color: #fdda03 !important;
    box-shadow: 0 0 20px rgba(253, 218, 3, 0.35);
}
.cursor-dot {
    background: #fdda03 !important;
}

/* Header scrolled */
.header.scrolled {
    background: rgba(10, 10, 11, 0.92) !important;
    border-bottom-color: rgba(253, 218, 3, 0.12) !important;
    backdrop-filter: blur(16px);
}

/* Mega menu accent */
.mega-menu h4 {
    color: #fdda03 !important;
}
.mega-menu a:hover {
    color: #fdda03 !important;
    background: rgba(253, 218, 3, 0.06);
}

/* Section headings subtle yellow underline feel */
.section-heading h2 {
    background: linear-gradient(90deg, #f7f7f5 0%, #f7f7f5 70%, #fdda03 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Stats numbers */
.hero-stats .stat strong {
    color: #fdda03 !important;
    text-shadow: 0 0 24px rgba(253,218,3,.2);
}

/* Footer social / links */
.footer a:hover {
    color: #fdda03 !important;
}

/* Progress bar final */
.scroll-progress {
    background: linear-gradient(90deg, #fdda03, #ffe44d, #ffc107) !important;
    box-shadow: 0 0 14px rgba(253, 218, 3, 0.55) !important;
}

/* Soft yellow ambient orbs */
.bg-orb {
    opacity: 0.07 !important;
}

/* Selection */
::selection {
    background: rgba(253, 218, 3, 0.35);
    color: #0a0a0b;
}
