
:root{
    --bg:#f4f3ef;
    --text:#111;
    --muted:#777;
    --soft:#e7e5df;
    --line:#d3d1cb;
    --accent:#ff4d00;
    --green:#c7ff32;
}

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

html{
    scroll-behavior:smooth;
    scroll-padding-top:30px;
}

body{
    background:var(--bg);
    color:var(--text);
    font-family:"Manrope",sans-serif;
    overflow-x:hidden;
}

::selection{
    background:var(--text);
    color:var(--green);
}

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

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

.cursor{
    position:fixed;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#111;
    pointer-events:none;
    z-index:9999;
    transform:translate(-50%,-50%);
    transition:
        width .25s ease,
        height .25s ease,
        background .25s ease;
}

.cursor.big{
    width:55px;
    height:55px;
    background:var(--green);
    mix-blend-mode:multiply;
}

/* =========================================
   NOISE
========================================= */

body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:100;
    opacity:.035;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

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

header{
    width:min(1500px,92%);
    margin:auto;
    padding:25px 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid var(--line);
}

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

    text-decoration: none;
    color: #111;
    font-size: 15px;
    font-weight: 700;

    transition: opacity 0.2s ease;
}

.brand span{
    color:var(--accent);
}

.header-right{
    display:flex;
    align-items:center;
    gap:30px;
}

.header-status{
    display:flex;
    align-items:center;
    gap:9px;
    font-family:"DM Mono";
    font-size:10px;
    color:#777;
}

.status-dot{
    width:7px;
    height:7px;
    background:#59c928;
    border-radius:50%;
    box-shadow:0 0 0 4px rgba(89,201,40,.12);
}

.header-link{
    font-family:"DM Mono";
    font-size:10px;
    border-bottom:1px solid #111;
    padding-bottom:4px;
}

/* LANGUAGE */

.language-switch{
    display:flex;
    align-items:center;
    border:1px solid #cfcfc8;
    border-radius:100px;
    padding:3px;
    gap:2px;
    background:#ebeae5;
}

.lang-btn{
    border:0;
    background:transparent;
    padding:7px 10px;
    border-radius:100px;
    font-family:"DM Mono";
    font-size:9px;
    cursor:pointer;
    color:#888;
    transition:.25s ease;
}

.lang-btn.active{
    background:#111;
    color:#fff;
}

.lang-btn:hover{
    color:#111;
}

.lang-btn.active:hover{
    color:#fff;
}

/* =========================================
   TECH MARQUEE
========================================= */

.tech-marquee{
    width:100%;
    overflow:hidden;
    border-bottom:1px solid #222;
    background:#111;
    color:#f4f3ef;
    padding:15px 0;
    transform:rotate(-1deg) scale(1.02);
    margin:8px 0 5px;
    position:relative;
    z-index:5;
}

.tech-track{
    display:flex;
    align-items:center;
    width:max-content;
    animation:techMove 34s linear infinite;
    white-space:nowrap;
}

.tech-track span{
    font-family:"DM Mono";
    font-size:12px;
    letter-spacing:.1em;
    padding:0 25px;
}

.tech-track i{
    font-style:normal;
    color:var(--green);
    font-size:13px;
}

.tech-track span:hover{
    color:var(--green);
}

@keyframes techMove{
    from{
        transform:translateX(0);
    }
    to{
        transform:translateX(-50%);
    }
}

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

.hero{
    width:min(1500px,92%);
    margin:auto;
    min-height:78vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    position:relative;
    padding:70px 0 75px;
}

.hero-meta{
    font-family:"DM Mono";
    font-size:10px;
    color:#777;
    margin-bottom:28px;
    display:flex;
    justify-content:space-between;
}

.hero h1{
    font-size:clamp(65px,10.5vw,165px);
    line-height:.84;
    letter-spacing:-9px;
    font-weight:800;
    max-width:1300px;
}

.hero h1 .outline{
    color:transparent;
    -webkit-text-stroke:1.5px #111;
}

.hero h1 .orange{
    color:var(--accent);
}

.hero-bottom{
    margin-top:45px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
}

.hero-intro{
    max-width:500px;
    font-size:16px;
    line-height:1.6;
}

.hero-intro strong{
    font-weight:700;
}

.hero-side{
    display:flex;
    justify-content:flex-end;
    align-items:flex-end;
}

.scroll{
    display:flex;
    align-items:center;
    gap:12px;
    font-family:"DM Mono";
    font-size:10px;
    color:#777;
}

.scroll-line{
    width:50px;
    height:1px;
    background:#999;
}

.hero-number{
    position:absolute;
    right:0;
    top:48%;
    font-family:"DM Mono";
    font-size:11px;
    color:#999;
    writing-mode:vertical-rl;
}

/* =========================================
   SECTIONS
========================================= */

section{
    width:min(1500px,92%);
    margin:auto;
    padding:105px 0;
}

.section-label{
    display:grid;
    grid-template-columns:120px 1fr;
    border-top:1px solid var(--line);
    padding-top:15px;
    margin-bottom:55px;
}

.section-number{
    font-family:"DM Mono";
    font-size:10px;
    color:#999;
}

.section-title{
    font-size:clamp(45px,6vw,85px);
    line-height:.92;
    letter-spacing:-5px;
}

/* =========================================
   SERVICES
========================================= */

.services{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line);
}

.service{
    padding:28px 28px 42px;
    min-height:315px;
    border-right:1px solid var(--line);
    position:relative;
    transition:
        background .4s ease,
        color .4s ease;
}

.service:last-child{
    border-right:none;
}

.service:hover{
    background:#111;
    color:white;
}

.service-number{
    font-family:"DM Mono";
    font-size:10px;
    color:#999;
}

.service-icon{
    position:absolute;
    right:28px;
    top:25px;
    font-size:27px;
    transition:transform .4s ease;
}

.service:hover .service-icon{
    transform:rotate(45deg);
}

.service h3{
    position:absolute;
    bottom:92px;
    font-size:29px;
    letter-spacing:-1.5px;
}

.service-description{
    position:absolute;
    bottom:28px;
    max-width:300px;
    font-size:11px;
    line-height:1.7;
    color:#777;
}

.service:hover .service-description{
    color:#aaa;
}

.service-price{
    position:absolute;
    top:62px;
    font-family:"DM Mono";
    font-size:10px;
}

.service-price strong{
    font-size:27px;
    font-weight:400;
}

/* =========================================
   STATEMENT
========================================= */

.statement{
    padding:115px 0 120px;
}

.statement p{
    font-size:clamp(40px,6vw,82px);
    line-height:1.02;
    letter-spacing:-4px;
    max-width:1250px;
}

.statement .dim{
    color:#aaa;
}

.statement .mark{
    color:var(--accent);
}

/* =========================================
   PROJECTS
========================================= */

.project{
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:560px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.project + .project{
    border-top:none;
}

.project-image{
    position:relative;
    overflow:hidden;
    background:#deddd7;
    min-height:480px;
}

.project:nth-child(2) .project-image{
    background:#171717;
}

.project:nth-child(3) .project-image{
    background:#d7e3d0;
}

/* =========================================
   REALISTIC WEBSITE MOCKUPS
========================================= */

.mockup{
    position:absolute;
    width:76%;
    height:72%;
    left:12%;
    top:15%;
    background:white;
    box-shadow:0 35px 70px rgba(0,0,0,.18);
    transform:rotate(-4deg);
    transition:transform .8s cubic-bezier(.16,1,.3,1);
    overflow:hidden;
    border-radius:4px;
}

.project:hover .mockup{
    transform:rotate(0) scale(1.035);
}

.mockup-bar{
    height:27px;
    border-bottom:1px solid #ddd;
    display:flex;
    align-items:center;
    padding:0 10px;
    gap:4px;
    background:#fafafa;
}

.mockup-dot{
    width:5px;
    height:5px;
    border-radius:50%;
    background:#bbb;
}

.mockup-site{
    height:calc(100% - 27px);
    overflow:hidden;
}

/* LANDING MOCKUP */

.landing-site{
    padding:15px 18px;
    background:#fff;
}

.site-nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-family:"DM Mono";
    font-size:6px;
    margin-bottom:20px;
}

.site-logo{
    font-family:"Manrope";
    font-size:11px;
    font-weight:800;
}

.site-nav-links{
    display:flex;
    gap:10px;
    color:#888;
}

.landing-hero{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:12px;
    align-items:center;
}

.landing-copy .tiny{
    font-family:"DM Mono";
    font-size:5px;
    color:#ff4d00;
    margin-bottom:7px;
}

.landing-copy h4{
    font-size:25px;
    line-height:.9;
    letter-spacing:-1.5px;
    margin-bottom:8px;
}

.landing-copy p{
    font-size:6px;
    color:#777;
    line-height:1.5;
    max-width:130px;
}

.landing-btn{
    margin-top:10px;
    display:inline-block;
    background:#111;
    color:#fff;
    padding:6px 9px;
    font-family:"DM Mono";
    font-size:5px;
}

.landing-visual{
    height:120px;
    background:#eee;
    position:relative;
    overflow:hidden;
}

.landing-circle{
    position:absolute;
    width:85px;
    height:85px;
    border-radius:50%;
    background:var(--green);
    right:-15px;
    top:15px;
}

.landing-card{
    position:absolute;
    width:65px;
    height:80px;
    background:#111;
    left:15px;
    bottom:-15px;
    transform:rotate(10deg);
}

.landing-bottom{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
    margin-top:13px;
}

.mini-card{
    height:40px;
    background:#f1f1ee;
    padding:7px;
}

.mini-card strong{
    display:block;
    width:35px;
    height:5px;
    background:#111;
    margin-bottom:5px;
}

.mini-card span{
    display:block;
    width:50px;
    height:3px;
    background:#ccc;
}

/* CATALOG MOCKUP */

.catalog-site{
    background:#fff;
    padding:12px 15px;
}

.catalog-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:12px;
}

.catalog-title{
    font-size:15px;
    font-weight:800;
    letter-spacing:-.7px;
}

.catalog-search{
    width:65px;
    height:16px;
    border:1px solid #ddd;
    border-radius:20px;
}

.catalog-feature{
    height:68px;
    background:#111;
    color:white;
    padding:12px;
    margin-bottom:12px;
    display:flex;
    justify-content:space-between;
    overflow:hidden;
}

.catalog-feature h4{
    font-size:17px;
    line-height:.9;
    letter-spacing:-.8px;
}

.catalog-feature span{
    color:var(--green);
    font-family:"DM Mono";
    font-size:5px;
}

.catalog-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
}

.product-card{
    border:1px solid #e5e5e5;
    padding:6px;
}

.product-image{
    height:52px;
    background:#eee;
    margin-bottom:6px;
    position:relative;
}

.product-image::after{
    content:"";
    width:28px;
    height:28px;
    border-radius:50%;
    background:#ddd;
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}

.product-card h5{
    font-size:7px;
    margin-bottom:4px;
}

.product-card p{
    font-family:"DM Mono";
    font-size:5px;
    color:#777;
}

/* CUSTOM MOCKUP */

.custom-site{
    background:#101010;
    color:white;
    padding:15px;
}

.custom-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px;
}

.custom-logo{
    font-size:9px;
    font-weight:800;
}

.custom-menu{
    width:18px;
    height:12px;
    border-top:1px solid #777;
    border-bottom:1px solid #777;
}

.custom-main{
    position:relative;
    height:150px;
}

.custom-main h4{
    font-size:29px;
    line-height:.82;
    letter-spacing:-2px;
    max-width:150px;
}

.custom-main h4 span{
    color:var(--green);
}

.custom-shape{
    position:absolute;
    right:0;
    top:10px;
    width:90px;
    height:120px;
    border:1px solid #444;
    transform:rotate(12deg);
}

.custom-shape::before{
    content:"";
    position:absolute;
    width:55px;
    height:55px;
    background:var(--accent);
    border-radius:50%;
    left:15px;
    top:25px;
}

.custom-footer{
    border-top:1px solid #333;
    padding-top:9px;
    display:flex;
    justify-content:space-between;
    font-family:"DM Mono";
    font-size:5px;
    color:#777;
}

.dark-mockup{
    background:#101010;
    color:white;
}

.project-info{
    padding:42px 48px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.project-index{
    font-family:"DM Mono";
    font-size:10px;
    color:#999;
}

.project-info h3{
    font-size:clamp(40px,4vw,65px);
    line-height:.9;
    letter-spacing:-4px;
    max-width:450px;
}

.project-info p{
    color:#777;
    font-size:12px;
    line-height:1.7;
    max-width:380px;
}

.project-tags{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.tag{
    border:1px solid #ccc;
    padding:7px 9px;
    font-family:"DM Mono";
    font-size:8px;
}

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

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

.process-row{
    display:grid;
    grid-template-columns:100px 1fr 1fr;
    padding:30px 0;
    border-bottom:1px solid var(--line);
    align-items:center;
    transition:padding .35s ease;
}

.process-row:hover{
    padding-left:20px;
}

.process-row .num{
    font-family:"DM Mono";
    color:#999;
    font-size:10px;
}

.process-row h3{
    font-size:23px;
    letter-spacing:-1px;
}

.process-row p{
    color:#777;
    font-size:11px;
    line-height:1.7;
    max-width:400px;
}

/* =========================================
   PRICING
========================================= */

.pricing{
    background:#111;
    color:white;
    width:100%;
    padding:90px max(4%,calc((100% - 1500px)/2));
}

.pricing-header{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    margin-bottom:55px;
}

.pricing h2{
    font-size:clamp(50px,7vw,100px);
    line-height:.85;
    letter-spacing:-6px;
}

.pricing-intro{
    color:#888;
    max-width:400px;
    line-height:1.7;
    font-size:12px;
}

.pricing-list{
    border-top:1px solid #333;
}

.pricing-row{
    display:grid;
    grid-template-columns:100px 1fr auto;
    align-items:center;
    padding:28px 0;
    border-bottom:1px solid #333;
    transition:padding .3s ease;
}

.pricing-row:hover{
    padding-left:15px;
}

.pricing-row .num{
    font-family:"DM Mono";
    color:#666;
    font-size:10px;
}

.pricing-row h3{
    font-size:21px;
}

.pricing-row .price{
    font-family:"DM Mono";
    font-size:16px;
    color:var(--green);
}

/* =========================================
   CONTACT
========================================= */

.contact{
    min-height:72vh;
    padding:120px 0 155px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    scroll-margin-top:20px;
}

.contact .section-label{
    margin-bottom:45px;
}

.contact h2{
    font-size:clamp(65px,11vw,160px);
    line-height:.82;
    letter-spacing:-10px;
}

.contact h2 span{
    color:var(--accent);
}

.contact-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 55px;
    gap: 50px;
}

.contact-text {
    max-width: 430px;
    color: #777;
    font-size: 13px;
    line-height: 1.7;
}

.contact-button {
    position: relative;
    flex-shrink: 0;
    width: 145px;
    height: 145px;
    border-radius: 50%;
    background: var(--green);
    display: grid;
    place-items: center;
    text-align: center;
    color: #111;
    font-family: "DM Mono";
    font-size: 10px;
    transition:
        transform .5s ease,
        background .3s ease;
}

.contact-button:hover {
    transform: rotate(15deg) scale(1.08);
    background: var(--accent);
}

.click-gif {
    position: absolute;
    width: 65px;
    height: 65px;
    object-fit: contain;

    top: 65px;
    left: 65px;

    pointer-events: none;
    z-index: 3;
}


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

footer{
    width:min(1500px,92%);
    margin:auto;
    padding:22px 0 30px;
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    font-family:"DM Mono";
    font-size:9px;
    color:#999;
}

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

@media(max-width:800px){

    header{
        padding:18px 0;
    }

    .header-right{
        gap:12px;
    }

    .header-status{
        display:none;
    }

    .header-link{
        display:none;
    }

    .language-switch{
        order:2;
    }

    .tech-marquee{
        margin-bottom:0;
    }

    .hero{
        min-height:auto;
        padding:75px 0 90px;
    }

    .hero-meta{
        margin-bottom:25px;
        gap:20px;
    }

    .hero-meta span:last-child{
        text-align:right;
    }

    .hero h1{
        font-size:17vw;
        letter-spacing:-5px;
        margin-top: 20px;
        margin-bottom: 20px;
    }

    .hero-bottom{
        grid-template-columns:1fr;
        margin-top:40px;
        gap:30px;
    }

    .hero-side{
        justify-content:flex-start;
    }

    .hero-number{
        display:none;
    }

    section{
        padding:75px 0;
    }

    .section-label{
        grid-template-columns:55px 1fr;
        margin-bottom:40px;
    }

    .section-title{
        font-size:12vw;
        letter-spacing:-3px;
    }

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

    .service{
        border-right:none;
        border-bottom:1px solid var(--line);
        min-height:280px;
    }

    .statement{
        padding:80px 0 90px;
    }

    .statement p{
        font-size:42px;
        letter-spacing:-2px;
    }

    .project{
        grid-template-columns:1fr;
        min-height:0;
    }

    .project-image{
        min-height:360px;
    }

    .mockup{
        width:82%;
        height:72%;
        left:9%;
    }

    .project-info{
        min-height:350px;
        padding:30px;
    }

    .project-info h3{
        font-size:47px;
    }

    .process-row{
        grid-template-columns:40px 1fr;
        gap:12px;
        padding:25px 0;
    }

    .process-row h3{
        font-size:20px;
    }

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

    .pricing{
        padding:75px 5%;
    }

    .pricing-header{
        grid-template-columns:1fr;
        gap:30px;
        margin-bottom:45px;
    }

    .pricing h2{
        font-size:18vw;
    }

    .pricing-row{
        grid-template-columns:40px 1fr auto;
        gap:8px;
        padding:25px 0;
    }

    .pricing-row h3{
        font-size:15px;
    }

    .pricing-row .price{
        font-size:13px;
    }

    .contact{
        min-height:auto;
        padding:95px 0 150px;
    }

    .contact h2{
        font-size:18vw;
        letter-spacing:-6px;
    }

    .contact-bottom{
        flex-direction:column;
        align-items:flex-start;
        gap:35px;
    }

    .contact-button{
        width:125px;
        height:125px;
    }

    footer{
        flex-direction:column;
        gap:9px;
    }

    .cursor{
        display:none;
    }
}

@media(max-width:420px){

    .hero h1{
        font-size:18vw;
    }

    .hero-intro{
        font-size:14px;
    }

    .landing-copy h4{
        font-size:20px;
    }

    .catalog-feature h4{
        font-size:14px;
    }

    .custom-main h4{
        font-size:24px;
    }

}
.brand img {
    width: 34px;
    height: 34px;
    object-fit: contain;
    display: block;
}