/* -------------
  CONF GENERAL
---------------- */

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

    body {
    background: white;
    color: #121212;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    overflow-x: hidden;
    cursor: none;
}



/* --------------
   MENÚ LATERAL
---------------- */

    .menu {
        position: fixed;
        left: 3.4vw;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        flex-direction: column;
        gap: 55px;
        opacity: 0;
    }

    .menu.menu-visible {
        opacity: 1;
        transition: opacity 1s ease;
    }

    .menu a {
        position: relative;
        color: #121212;
        text-decoration: none;
        font-size: 15px;
        font-weight: 450;
        opacity: 1;
        transition: opacity 0.5s ease;
        text-decoration: underline;
        text-underline-offset: 4px;
    }

    .menu a:hover {
        opacity: 0.45;
    }

    .menu a:hover::before {
        transform: translateY(-50%) scale(1);
    }



/* -----------
    PORTADA
------------- */

    .hero {
        height: 105vh;
        display: flex;
        align-items: center;
        padding-left: 30vw;
        overflow: hidden;
        margin: 0 0 0 0;
    }

    .hero h1 {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-size: clamp(350px, 44vw, 950px);
        font-weight: 300;
        line-height: 0.75;
        letter-spacing: 0em;
        white-space: nowrap;
        transform: translateX(-120%);
    }

    .hero h1.animat {
        transform: translateX(-2%);
        transition: transform 1.7s ease-out;
    }



/* ----------------
 TRANSICIÓ DE LOGO
------------------- */

    .logo-k {
        display: inline-block;
        color: #121212;
    }

    .logo-rest {
        color: #121212;
        display: inline-block;
        position: relative;
        left: -11vw;
        transition: opacity 0.4s ease;
    }



/* --------------------
 K DURANT LA TRANSICIÓ
-------------------- */

    .k-transicio {
        position: fixed;
        z-index: 9999;
        margin: 0;
        padding: 0;
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: 300;
        line-height: 0.8;
        letter-spacing: -0.12em;
        color: #121212;
        white-space: nowrap;
        pointer-events: none;
        transition:
            left 1.4s cubic-bezier(0.65, 0, 0.35, 1),
            top 1.4s cubic-bezier(0.65, 0, 0.35, 1),
            font-size 1.4s cubic-bezier(0.65, 0, 0.35, 1);
    }



/* ---------------
  PANTALLA CARGA
---------------- */

    .loader {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: white;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 1000;
        opacity: 1;
    }

    .loader.ocult {
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.5s ease;
    }

    #percentatge {
        font-size: 15px;
    }



/* ------
  CURSOR
-------- */

    body {
        cursor: none;
    }

    .cursor {
        position: fixed;
        width: 20px;
        height: 20px;
        border: 2px solid #1c1c1b;
        border-radius: 50%;
        background: transparent;
        pointer-events: none;
        z-index: 99999;
        transform: translate(-50%, -50%);
        transition:
            width 0.2s ease,
            height 0.2s ease,
            background 0.2s ease,
            border 0.2s ease;
    }

    .cursor.cursor-active {
        background: #1c1c1b;
    }

    a,
    button,
    .project-link {
        cursor: none;
    }



/* ------
  GUIES
-------- */

    .type-guide {
        position: relative;
        display: inline-block;
    }

    .type-guide::before {
        content: "";
        position: absolute;
        top: -25px;
        bottom: -25px;
        left: 0;
        width: 1px;
        background: #1c1c1b;
        opacity: 0;
        transition: opacity 0.25s ease;
    }

    .type-guide::after {
        content: "";
        position: absolute;
        top: -25px;
        bottom: -25px;
        right: 0;
        width: 1px;
        background: #1c1c1b;
        opacity: 0;
        transition: opacity 0.25s ease;
    }

    .type-guide:hover::before,
    .type-guide:hover::after {
        opacity: 0.35;
    }



/* ------
  PUNTS
-------- */

    .type-guide:hover {
        cursor: none;
    }

    .type-guide .guide-handle {
        position: absolute;
        width: 7px;
        height: 7px;
        border: 1px solid #1c1c1b;
        background: white;
        top: -28px;
        left: -3px;
        opacity: 0;
        transition: opacity 0.25s ease;
        z-index: 20;
    }

    .type-guide .guide-handle-right {
        position: absolute;
        width: 7px;
        height: 7px;
        border: 1px solid #1c1c1b;
        background: white;
        top: -28px;
        right: -3px;
        opacity: 0;
        transition: opacity 0.25s ease;
        z-index: 20;
    }

    .type-guide:hover .guide-handle,
    .type-guide:hover .guide-handle-right {
        opacity: 1;
    }





/* =================================
   RESPONSIVE — TAULETES
================================= */

@media screen and (max-width: 1024px) {

    .hero {
        height: 100svh;
        padding-left: 22vw;
    }

    .hero h1 {
        font-size: clamp(250px, 45vw, 550px);
    }

    .logo-rest {
        left: -8vw;
    }

    .menu {
        left: 3vw;
        gap: 35px;
    }

}



/* =====================================
   RESPONSIVE — TAULETES
===================================== */

@media screen and (max-width: 1024px) {

    .hero {
        height: 100svh;
        padding-left: 25vw;
    }

    .hero h1 {
        font-size: clamp(250px, 42vw, 500px);
    }

    .logo-rest {
        left: -9vw;
    }

    .menu {
        left: 3.4vw;
        gap: 40px;
    }

}


/* =====================================
   RESPONSIVE — MÒBILS
===================================== */

@media screen and (max-width: 600px) {

    body {
        overflow-x: hidden;
        cursor: auto;
    }

    /* MENÚ LATERAL */

    .menu {
        position: fixed;

        left: 5vw;
        top: 50%;
        bottom: auto;

        transform: translateY(-50%);

        display: flex;
        flex-direction: column;

        gap: 30px;

        z-index: 100;
    }

    .menu a {
        font-size: 11px;
        white-space: nowrap;
        cursor: pointer;
    }


    /* PORTADA */

    .hero {
        height: 100svh;

        display: flex;
        align-items: center;

        justify-content: flex-start;

        padding-left: 38vw;

        overflow: hidden;
    }

    .hero h1 {
        font-size: clamp(190px, 38vw, 290px);

        line-height: 0.75;

        white-space: nowrap;

        transform: translateX(-120%);
    }

    .hero h1.animat {
        transform: translateX(-2%);
        transition: transform 1.7s ease-out;
    }


    /* LOGO */

    .logo-k {
        display: inline-block;
    }

    .logo-rest {
        display: inline-block;
        left: -8vw;
    }


    /* GUIES */

    .type-guide::before,
    .type-guide::after {
        top: -15px;
        bottom: -15px;
    }

    .type-guide .guide-handle,
    .type-guide .guide-handle-right {
        display: none;
    }


    /* CURSOR */

    .cursor {
        display: none;
    }

    a,
    button,
    .project-link {
        cursor: pointer;
    }


    /* TRANSICIÓ K */

    .k-transicio {
        font-size: 100px;
    }

}

