/* ============================================================
   2CAN TECHNOLOGY
   HOME PAGE
   ============================================================ */


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

:root {

    --bg: #070708;
    --bg-soft: #09090b;
    --surface: #0d0d10;

    --text: #f4f4f6;
    --text-soft: #e5e5e7;
    --text-muted: #c3c3c4;

    --purple: #7928d2;
    --purple-light: #a45cff;

    --border: rgba(255, 255, 255, 0.09);
    --border-strong: rgba(255, 255, 255, 0.16);

    --container: 1480px;

    --page-padding:
        clamp(24px,
            4vw,
            64px);

}


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

*,
*::before,
*::after {

    box-sizing: border-box;

}


html {

    margin: 0;

    scroll-behavior: smooth;

    scroll-padding-top: 100px;

}


body {

    margin: 0;

    background:
        var(--bg);

    color:
        var(--text);

    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

    font-size: 16px;

    line-height: 1.5;

    overflow-x: hidden;

    -webkit-font-smoothing:
        antialiased;

}


body.menu-open {

    overflow: hidden;

}


img {

    display: block;

    max-width: 100%;

}


a {

    color: inherit;

    text-decoration: none;

}


button {

    font: inherit;

}


::selection {

    background:
        var(--purple);

    color:
        #ffffff;

}


:focus-visible {

    outline:
        2px solid var(--purple-light);

    outline-offset: 5px;

}


/* ============================================================
   GLOBAL SECTION
   ============================================================ */

.section {

    position: relative;

    width: 100%;

    border-top:
        1px solid var(--border);

    overflow: hidden;

}


.section-container {

    position: relative;

    width:
        min(calc(100% - var(--page-padding) * 2),
            var(--container));

    margin:
        0 auto;

    padding:
        clamp(100px,
            9vw,
            150px) 0;

}


/* ============================================================
   SECTION INDEX
   ============================================================ */

.section-index {

    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom:
        clamp(50px,
            6vw,
            85px);

    color:
        var(--text-muted);

    font-size: 10px;

    font-weight: 700;

    letter-spacing:
        0.18em;

}


.section-index i {

    display: block;

    width: 7px;

    height: 7px;

    background:
        var(--purple-light);

    box-shadow:
        0 0 16px rgba(164,
            92,
            255,
            0.55);

}


/* ============================================================
   EYEBROW
   ============================================================ */

.eyebrow {

    margin:
        0 0 20px;

    color:
        var(--purple-light);

    font-size: 11px;

    font-weight: 700;

    letter-spacing:
        0.18em;

}


/* ============================================================
   SECTION HEADING
   ============================================================ */

.section-heading {

    margin-bottom:
        clamp(55px,
            7vw,
            90px);

}


.section-heading h2,
.about-heading h2,
.contact-copy h2 {

    margin: 0;

    max-width: 1050px;

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

    font-weight: 550;

    line-height: 1;

    letter-spacing:
        -0.055em;

}


.section-heading h2 span,
.about-heading h2 span,
.contact-copy h2 span {

    color:
        #85858d;

}


/* ============================================================
   SPLIT HEADING
   ============================================================ */

.split-heading {

    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr) minmax(340px, 0.75fr);

    align-items: end;

    gap:
        clamp(60px,
            9vw,
            150px);

}


.section-lead {

    max-width: 620px;

    margin: 0;

    color:
        var(--text-soft);

    font-size:
        clamp(17px,
            1.4vw,
            20px);

    line-height: 1.75;

}


.section-lead.narrow {

    margin-top: 30px;

}


/* ============================================================
   NAVBAR
   ============================================================ */

/* ============================================================
   NAVBAR
   ============================================================ */

.navbar {
    position: fixed;
    top: 0;
    left: 0;

    z-index: 10000;

    width: 100%;
    height: 100px;

    padding-left:
        max(var(--page-padding),
            calc((100vw - var(--container)) / 2));

    padding-right:
        max(var(--page-padding),
            calc((100vw - var(--container)) / 2));

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

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

    background: transparent;

    transition:
        height 0.3s ease,
        background 0.3s ease,
        box-shadow 0.3s ease,
        backdrop-filter 0.3s ease;
}


.navbar.is-scrolled {
    height: 78px;

    background: rgba(7, 7, 8, 0.96);

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

    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.28);
}


/* ============================================================
   BRAND
   ============================================================ */

.brand {

    display: flex;

    align-items: center;

}


.brand img {

    width: 92px;

    height: 92px;

    object-fit: contain;

}


.brand-name {

    display: flex;

    flex-direction: column;

    margin-left: -8px;

    line-height: 1;

}


.brand-name strong {

    font-size: 29px;

    font-weight: 700;

    letter-spacing:
        -0.05em;

}


.brand-name span {

    margin-top: 8px;

    color:
        var(--text-soft);

    font-size: 8px;

    letter-spacing:
        0.22em;

}


/* ============================================================
   NAVIGATION
   ============================================================ */

.nav-links {

    display: flex;

    align-items: center;

    gap:
        clamp(20px,
            2.2vw,
            38px);

}


.nav-links a {

    position: relative;

    color:
        #c7c7cd;

    font-size: 13px;

    transition:
        color 0.2s ease;

}


.nav-links a:hover {

    color:
        #ffffff;

}


.nav-links a:not(.nav-contact)::after {

    content: "";

    position: absolute;

    left: 0;

    bottom: -8px;

    width: 0;

    height: 1px;

    background:
        var(--purple-light);

    transition:
        width 0.2s ease;

}


.nav-links a:not(.nav-contact):hover::after {

    width: 100%;

}


.nav-contact {

    padding:
        11px 21px;

    border:
        1px solid var(--border-strong);

    border-radius:
        100px;

}


/* ============================================================
   MENU BUTTON
   ============================================================ */

.menu-button {

    display: none;

    width: 44px;

    height: 44px;

    padding: 0;

    border: 0;

    background:
        transparent;

    cursor: pointer;

}


.menu-button span {

    display: block;

    width: 25px;

    height: 1px;

    margin:
        7px auto;

    background:
        #ffffff;

    transition:
        transform 0.25s ease;

}


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

.hero {

    position: relative;

    min-height:
        100svh;

    display: flex;

    align-items: center;

    isolation: isolate;

    overflow: hidden;

}


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

.tech-grid {

    position: absolute;

    inset: 0;

    z-index: -3;

    background-image:

        linear-gradient(rgba(255,
                255,
                255,
                0.025) 1px,
            transparent 1px),

        linear-gradient(90deg,
            rgba(255,
                255,
                255,
                0.025) 1px,
            transparent 1px);

    background-size:
        70px 70px;

    mask-image:

        linear-gradient(to bottom,
            black,
            transparent 95%);

}


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

.hero-glow {

    position: absolute;

    z-index: -2;

    width: 900px;

    height: 900px;

    top: 45%;

    right: -300px;

    transform:
        translateY(-50%);

    background:

        radial-gradient(circle,
            rgba(121,
                40,
                210,
                0.22),
            rgba(121,
                40,
                210,
                0.05) 42%,
            transparent 70%);

    pointer-events: none;

}


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

.hero-inner {

    width:
        min(calc(100% - var(--page-padding) * 2),
            var(--container));

    margin:
        0 auto;

    padding:
        160px 0 110px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.08fr) minmax(400px, 0.92fr);

    align-items: center;

    gap: 60px;

}


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

.hero-content {

    position: relative;

    z-index: 5;

}


.hero h1 {

    margin: 0;

    max-width: 900px;

    font-size:
        clamp(58px,
            6.2vw,
            104px);

    font-weight: 600;

    line-height: 0.95;

    letter-spacing:
        -0.065em;

}


.hero h1 span {

    color:
        #85858d;

}


.hero-lead {

    max-width: 720px;

    margin:
        36px 0 0;

    color:
        #adadb5;

    font-size:
        clamp(17px,
            1.5vw,
            20px);

    line-height: 1.75;

}


.hero-signature {

    margin:
        20px 0 0;

    color:
        #777780;

    font-size: 14px;

}


.hero-signature strong {

    color:
        #dddddf;

    font-weight: 500;

}


/* ============================================================
   BUTTONS
   ============================================================ */

.hero-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    margin-top: 40px;

}


.button {

    min-height: 54px;

    padding:
        0 25px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 28px;

    border:
        1px solid transparent;

    border-radius: 4px;

    font-size: 12px;

    font-weight: 700;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;

    transition:

        transform 0.2s ease,

        border-color 0.2s ease,

        background 0.2s ease,

        box-shadow 0.2s ease;

}


.button:hover {

    transform:
        translateY(-2px);

}


.button-primary {

    background:
        var(--purple);

    color:
        #ffffff;

}


.button-primary:hover {

    background:
        #8735df;

    box-shadow:

        0 15px 40px rgba(121,
            40,
            210,
            0.22);

}


.button-secondary {

    border-color:
        var(--border-strong);

    color:
        #dddddf;

}


.button-secondary:hover {

    border-color:
        rgba(164,
            92,
            255,
            0.65);

}


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

.hero-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 34px;

}


.hero-tags span,
.card-tags span,
.solution-tags span {

    padding:
        7px 10px;

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

    color:
        #92929b;

    font-size: 9px;

    font-weight: 700;

    letter-spacing:
        0.10em;

}


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

.hero-visual {

    position: relative;

    min-height: 620px;

    display: grid;

    place-items: center;

    perspective: 1200px;

}


.hero-visual-frame {

    position: relative;

    width:
        min(100%,
            620px);

    aspect-ratio:
        1 / 1;

    display: grid;

    place-items: center;

}


.hero-visual-frame::before,
.hero-visual-frame::after {

    content: "";

    position: absolute;

    border:
        1px solid rgba(164,
            92,
            255,
            0.14);

    border-radius: 50%;

}


.hero-visual-frame::before {

    width: 82%;

    height: 82%;

}


.hero-visual-frame::after {

    width: 58%;

    height: 58%;

}


.toucan {

    position: relative;

    z-index: 3;

    width: 92%;

    max-height: 600px;

    object-fit: contain;

    filter:

        drop-shadow(0 30px 80px rgba(0,
                0,
                0,
                0.5));

    transform-style:
        preserve-3d;

    will-change:
        transform;

}


.logo-glow {

    position: absolute;

    z-index: 0;

    width: 70%;

    height: 70%;

    border-radius: 50%;

    background:

        radial-gradient(circle,
            rgba(121,
                40,
                210,
                0.28),
            transparent 70%);

    filter:
        blur(20px);

}


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

.corner {

    position: absolute;

    z-index: 4;

    width: 30px;

    height: 30px;

    border-color:
        rgba(255,
            255,
            255,
            0.25);

}


.corner-tl {

    top: 6%;

    left: 6%;

    border-top:
        1px solid;

    border-left:
        1px solid;

}


.corner-tr {

    top: 6%;

    right: 6%;

    border-top:
        1px solid;

    border-right:
        1px solid;

}


.corner-bl {

    bottom: 6%;

    left: 6%;

    border-bottom:
        1px solid;

    border-left:
        1px solid;

}


.corner-br {

    bottom: 6%;

    right: 6%;

    border-bottom:
        1px solid;

    border-right:
        1px solid;

}


.visual-code {

    position: absolute;

    right: 7%;

    bottom: 8%;

    color:
        #6c6c75;

    font-size: 9px;

    letter-spacing:
        0.18em;

}


/* ============================================================
   SCROLL CUE
   ============================================================ */

.scroll-cue {

    position: absolute;

    left:

        max(var(--page-padding),
            calc((100vw - var(--container)) / 2));

    bottom: 34px;

    display: flex;

    align-items: center;

    gap: 14px;

    color:
        #66666f;

    font-size: 9px;

    letter-spacing:
        0.16em;

}


.scroll-cue i {

    display: block;

    width: 80px;

    height: 1px;

    background:
        var(--border-strong);

}


/* ============================================================
   WHAT WE DO
   ============================================================ */

.what-we-do {

    background:
        var(--bg-soft);

}


/* ============================================================
   SERVICE GRID
   ============================================================ */

.service-grid {

    display: grid;

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

    border-top:
        1px solid var(--border);

    border-left:
        1px solid var(--border);

}

.text-link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    gap: 42px;

    margin-top: 34px;

    min-width: 245px;
    min-height: 54px;


    border: 1px solid rgba(164, 92, 255, 0.55);

    background: rgba(121, 40, 210, 0.06);

    color: #ffffff;
    padding: 0 18px;
    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.10em;

    text-transform: uppercase;

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

.service-card {

    min-height: 360px;

    padding: 34px;

    display: flex;

    flex-direction: column;

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

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

    background:
        rgba(255,
            255,
            255,
            0.008);

    transition:
        background 0.25s ease;

}


.service-card:hover {

    background:
        rgba(121,
            40,
            210,
            0.07);

}


.card-number {

    color:
        var(--purple-light);

    font-size: 10px;

    font-weight: 700;

    letter-spacing:
        0.15em;

}


.service-card h3 {

    margin:
        auto 0 18px;

    font-size:
        clamp(24px,
            2vw,
            31px);

    line-height: 1.08;

    letter-spacing:
        -0.035em;

}


.service-card p {

    margin: 0;

    color:
        var(--text-soft);

    font-size: 14px;

    line-height: 1.7;

}


.card-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 6px;

    margin-top: 24px;

}


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

.solutions {

    background:
        #08080a;

}


.solution-list {

    border-top:
        1px solid var(--border);

}


.solution-card {

    position: relative;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    min-height: 440px;

    display: grid;

    grid-template-columns:
        180px minmax(0, 1fr) 220px;

    align-items: center;

    gap: 50px;

    padding:
        60px 35px;

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

    overflow: hidden;

    transition:
        background 0.3s ease;

}


.solution-card:hover .text-link {
    background: rgba(121, 40, 210, 0.14);
    border-color: var(--purple-light);
}

.solution-card:hover .text-link span {
    transform: translate(3px, -3px);
}

.solution-meta {

    align-self:
        start;

    display: flex;

    flex-direction: column;

    gap: 15px;

    color:
        #777780;

    font-size: 10px;

    letter-spacing:
        0.15em;

}


.solution-meta strong {

    color:
        var(--purple-light);

    font-size: 11px;

}


.solution-copy {

    position: relative;

    z-index: 2;

    max-width: 820px;

}


.solution-copy h3 {

    margin: 0;

    font-size:
        clamp(38px,
            4vw,
            64px);

    font-weight: 550;

    line-height: 1;

    letter-spacing:
        -0.055em;

}


.solution-copy>p {

    max-width: 720px;

    margin:
        26px 0 0;

    color:
        var(--text-soft);

    font-size: 16px;

    line-height: 1.75;

}


.solution-tags {

    display: flex;

    flex-wrap: wrap;

    gap: 7px;

    margin-top: 26px;

}

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

.text-link {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 32px;

    margin-top: 34px;

    min-width: 245px;
    min-height: 54px;

    padding: 10px 18px 10px 32px;

    border: 1px solid rgba(164, 92, 255, 0.55);

    background: rgba(121, 40, 210, 0.06);

    color: #ffffff;

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

    letter-spacing: 0.10em;

    text-transform: uppercase;

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


.text-link span {
    color: var(--purple-light);

    font-size: 18px;
    line-height: 1;

    transition: transform 0.25s ease;
}


.text-link:hover {
    background: rgba(121, 40, 210, 0.14);

    border-color: var(--purple-light);

    transform: translateY(-2px);

    box-shadow:
        0 12px 35px rgba(121, 40, 210, 0.12);
}


.text-link:hover span {
    transform: translate(3px, -3px);
}


/* ============================================================
   SOLUTION MARK
   ============================================================ */

.solution-mark {

    color:
        rgba(255,
            255,
            255,
            0.025);

    font-size: 230px;

    font-weight: 800;

    line-height: 0.8;

    text-align: right;

    transition:
        color 0.3s ease,
        transform 0.3s ease;

}


.solution-card:hover .solution-mark {

    color:
        rgba(121,
            40,
            210,
            0.09);

    transform:
        scale(1.04);

}


/* ============================================================
   INTEGRATION
   ============================================================ */

.integration {

    background:

        radial-gradient(circle at 75% 35%,
            rgba(121,
                40,
                210,
                0.09),
            transparent 32%),

        var(--bg-soft);

}


/* ============================================================
   INTEGRATION FLOW
   ============================================================ */

.integration-flow {

    display: grid;

    grid-template-columns:

        minmax(0, 1fr) 50px minmax(0, 1fr) 50px minmax(0, 1fr) 50px minmax(0, 1fr);

    align-items: stretch;

    border-top:
        1px solid var(--border);

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

}


.flow-step {

    min-width: 0;

    padding:
        34px 24px;

}


.flow-step>span {

    color:
        var(--purple-light);

    font-size: 10px;

    font-weight: 700;

}


.flow-step small {

    display: block;

    margin-top: 42px;

    color:
        #777780;

    font-size: 9px;

    letter-spacing:
        0.15em;

}


.flow-step h3 {

    margin:
        11px 0 15px;

    font-size:
        clamp(21px,
            1.7vw,
            28px);

    letter-spacing:
        -0.03em;

}


.flow-step p {

    margin: 0;

    color:
        var(--text-soft);

    font-size: 13px;

    line-height: 1.65;

}


.flow-step>div {

    margin-top: 26px;

    color:
        #73737c;

    font-size: 8px;

    font-weight: 700;

    letter-spacing:
        0.08em;

}


.flow-arrow {

    display: grid;

    place-items: center;

    color:
        rgba(164,
            92,
            255,
            0.65);

    font-size: 21px;

}


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

.integration-statement {

    margin-top: 50px;

    padding-top: 32px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 40px;

    border-top:
        1px solid var(--border);

}


.integration-statement>span {

    color:
        #686871;

    font-size: 9px;

    letter-spacing:
        0.16em;

}


.integration-statement p {

    margin: 0;

    font-size:
        clamp(21px,
            2.2vw,
            34px);

    letter-spacing:
        -0.035em;

}


.integration-statement strong {

    color:
        var(--purple-light);

    font-weight: 550;

}


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

.process-grid {

    display: grid;

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

    border-top:
        1px solid var(--border);

}


.process-step {

    min-height: 310px;

    padding:
        34px 30px;

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

}


.process-step:last-child {

    border-right: 0;

}


.process-step>span {

    color:
        var(--purple-light);

    font-size: 10px;

    font-weight: 700;

    letter-spacing:
        0.15em;

}


.process-step h3 {

    margin:
        82px 0 16px;

    font-size: 29px;

    font-weight: 550;

    letter-spacing:
        -0.035em;

}


.process-step p {

    margin: 0;

    color:
        var(--text-soft);

    font-size: 14px;

    line-height: 1.7;

}


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

.about {

    background:
        var(--bg-soft);

}


.about-layout {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr) minmax(420px, 0.82fr);

    gap:
        clamp(70px,
            10vw,
            170px);

    align-items: start;

}


.about-copy {

    min-width: 0;

}


.about-copy>p {

    margin:
        0 0 25px;

    color:
        var(--text-soft);

    font-size: 16px;

    line-height: 1.75;

}


.about-copy .about-lead {

    color:
        #e2e2e6;

    font-size: 21px;

    line-height: 1.6;

}


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

.values {

    margin-top: 50px;

    border-top:
        1px solid var(--border);

}


.value {

    display: grid;

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

    gap: 18px;

    padding:
        27px 0;

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

}


.value>span {

    color:
        var(--purple-light);

    font-size: 10px;

    font-weight: 700;

}


.value strong {

    font-size: 16px;

    font-weight: 600;

}


.value p {

    margin:
        8px 0 0;

    color:
        var(--text-soft);

    font-size: 13px;

    line-height: 1.6;

}


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

.contact {

    position: relative;

    min-height: 760px;

    background:
        #08080a;

}


.contact-glow {

    position: absolute;

    width: 850px;

    height: 850px;

    right: -350px;

    bottom: -420px;

    background:

        radial-gradient(circle,
            rgba(121,
                40,
                210,
                0.17),
            transparent 68%);

    pointer-events: none;

}


.contact-layout {

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr) minmax(420px, 0.75fr);

    align-items: end;

    gap:
        clamp(70px,
            10vw,
            170px);

}


.contact-copy>p:last-child {

    max-width: 650px;

    margin:
        32px 0 0;

    color:
        var(--text-soft);

    font-size: 17px;

    line-height: 1.75;

}


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

.contact-panel {

    position: relative;

    padding: 38px;

    border:
        1px solid var(--border-strong);

    background:
        rgba(255,
            255,
            255,
            0.018);

}


.contact-label {

    color:
        #777780;

    font-size: 9px;

    letter-spacing:
        0.18em;

}


.contact-email {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    margin-top: 22px;

    padding-bottom: 26px;

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

    font-size:
        clamp(23px,
            2.3vw,
            35px);

    letter-spacing:
        -0.035em;

}


.contact-email span {

    color:
        var(--purple-light);

}


.contact-columns {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 30px;

    margin-top: 30px;

}


.contact-columns small {

    color:
        #777780;

    font-size: 8px;

    letter-spacing:
        0.15em;

}


.contact-columns p {

    margin:
        12px 0 0;

    color:
        #c3c3c9;

    font-size: 13px;

    line-height: 1.85;

}


.contact-button {

    margin-top: 30px;

}


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

.footer {

    background:
        #050506;

    border-top:
        1px solid var(--border);

}


.footer-inner,
.footer-bottom {

    width:
        min(calc(100% - var(--page-padding) * 2),
            var(--container));

    margin:
        0 auto;

}


.footer-inner {

    min-height: 150px;

    display: grid;

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

    align-items: center;

    gap: 40px;

}


.footer-brand {

    justify-self:
        start;

    display: inline-flex;

    flex-direction: column;

    line-height: 1;

}


.footer-brand strong {

    font-size: 29px;

    letter-spacing:
        -0.05em;

}


.footer-brand span {

    margin-top: 8px;

    color:
        #92929c;

    font-size: 8px;

    letter-spacing:
        0.2em;

}


.footer nav {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 26px;

    color:
        #8c8c94;

    font-size: 12px;

}


.footer nav a:hover {

    color:
        #ffffff;

}


.back-top {

    justify-self:
        end;

    color:
        #777780;

    font-size: 9px;

    letter-spacing:
        0.15em;

}


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

.footer-bottom {

    min-height: 76px;

    display: grid;

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

    align-items: center;

    gap: 30px;

    border-top:
        1px solid var(--border);

    color:
        #606068;

    font-size: 10px;

}


.footer-bottom p {

    margin: 0;

}


.footer-bottom div {

    display: flex;

    gap: 22px;

}


.footer-bottom p:last-child {

    justify-self:
        end;

}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 1100px) {

    .nav-links {

        gap: 18px;

    }


    .hero-inner {

        grid-template-columns:
            minmax(0, 1fr) minmax(320px, 0.7fr);

    }


    .hero-visual {

        min-height: 500px;

    }


    .service-grid {

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

    }


    .solution-card {

        grid-template-columns:
            140px minmax(0, 1fr) 110px;

    }


    .integration-flow {

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

    }


    .integration-flow .flow-step:nth-of-type(3) {

        border-top:
            1px solid var(--border);

    }


    .flow-arrow:nth-of-type(4) {

        display: none;

    }


    .process-grid {

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

    }


    .process-step:nth-child(2) {

        border-right: 0;

    }


    .process-step:nth-child(-n + 2) {

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

    }

}


/* ============================================================
   MOBILE NAV / TABLET
   ============================================================ */

@media (max-width: 900px) {

    .navbar {
        width: 100%;
        height: 82px;

        padding: 0 20px;

        background: rgba(7, 7, 8, 0.94);

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


    .navbar.is-scrolled {
        height: 72px;

        background: rgba(7, 7, 8, 0.98);

        box-shadow:
            0 10px 35px rgba(0, 0, 0, 0.35);
    }


    /* ========================================================
           BURGER
           ======================================================== */

    .menu-button {
        position: relative;

        z-index: 10002;

        display: flex;

        flex: 0 0 48px;

        width: 48px;
        height: 48px;

        padding: 0;

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

        gap: 8px;

        border: 0;

        background: transparent;

        cursor: pointer;

        -webkit-tap-highlight-color: transparent;

        touch-action: manipulation;
    }


    .menu-button span {
        display: block;

        width: 30px;
        height: 2px;

        margin: 0;

        background: #ffffff;

        transform-origin: center;

        transition:
            transform 0.25s ease,
            opacity 0.25s ease;
    }


    /* burger -> X */

    .menu-button.is-open span:first-child {
        transform:
            translateY(5px) rotate(45deg);
    }


    .menu-button.is-open span:last-child {
        transform:
            translateY(-5px) rotate(-45deg);
    }


    /* ========================================================
           FULLSCREEN MENU
           ======================================================== */

    .nav-links {
        position: fixed;

        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        z-index: 10001;

        width: 100%;
        height: 100dvh;

        padding:
            110px 24px 40px;

        display: flex;

        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;

        gap: 0;

        background: #070708;

        overflow-y: auto;

        opacity: 0;
        visibility: hidden;

        pointer-events: none;

        transform: translateX(100%);

        transition:
            transform 0.32s cubic-bezier(.22, .61, .36, 1),
            opacity 0.25s ease,
            visibility 0s linear 0.32s;
    }


    .nav-links.is-open {
        opacity: 1;
        visibility: visible;

        pointer-events: auto;

        transform: translateX(0);

        transition:
            transform 0.32s cubic-bezier(.22, .61, .36, 1),
            opacity 0.25s ease,
            visibility 0s;
    }


    /* ========================================================
           MENU LINKS
           ======================================================== */

    .nav-links a {
        width: 100%;

        padding: 20px 4px;

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

        border-bottom:
            1px solid rgba(255, 255, 255, 0.09);

        color: #f4f4f6;

        font-size:
            clamp(23px, 7vw, 32px);

        font-weight: 500;

        line-height: 1.15;

        letter-spacing: -0.035em;
    }


    .nav-links a::after {
        content: "↗" !important;

        position: static !important;

        width: auto !important;
        height: auto !important;

        display: block !important;

        background: none !important;

        color: var(--purple-light);

        font-size: 17px;

        opacity: 0.75;
    }


    .nav-links .nav-contact {
        margin-top: 24px;

        padding: 18px 20px;

        border:
            1px solid rgba(164, 92, 255, 0.55);

        border-radius: 0;

        background:
            rgba(121, 40, 210, 0.08);

        color: #ffffff !important;
    }


    /* ========================================================
           BODY LOCK
           ======================================================== */

    body.menu-open {
        overflow: hidden;
        touch-action: none;
    }




    .hero {

        min-height: auto;

    }


    .hero-inner {

        padding-top: 140px;

        grid-template-columns:
            1fr;

        gap: 30px;

    }


    .hero-visual {

        min-height: 450px;

    }


    .hero-visual-frame {

        max-width: 520px;

    }


    .scroll-cue {

        display: none;

    }


    .split-heading,
    .about-layout,
    .contact-layout {

        grid-template-columns:
            1fr;

        gap: 50px;

    }


    .solution-card {

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

    }


    .solution-mark {

        display: none;

    }


    .integration-statement {

        flex-direction:
            column;

        align-items:
            flex-start;

    }

}


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

@media (max-width: 650px) {

    :root {

        --page-padding:
            20px;

    }


    .navbar {

        width: 100vw;

        height: 76px;

    }


    .brand img {

        width: 150px;
        margin-top: 10px;
        margin-left: -40px;
        height: 150px;

    }

    .brand-name {

        margin-left: -20px;

    }

    .brand-name strong {

        font-size: 25px;

    }


    .brand-name span {

        font-size: 9px;

    }


    /* ---------------- HERO ---------------- */

    .hero-inner {

        padding:
            120px 0 70px;

    }


    .hero h1 {

        font-size:
            clamp(46px,
                14vw,
                66px);

    }


    .hero-lead {

        margin-top: 28px;

    }


    .hero-actions {

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .button {

        width: 100%;

    }


    .hero-visual {

        min-height: 340px;

    }


    .visual-code {

        display: none;

    }


    /* ---------------- SECTIONS ---------------- */

    .section-container {

        padding:
            80px 0;

    }


    .section-index {

        margin-bottom: 44px;

    }


    .section-heading {

        margin-bottom: 50px;

    }


    .section-heading h2,
    .about-heading h2,
    .contact-copy h2 {

        font-size:
            clamp(38px,
                11vw,
                54px);

    }


    /* ---------------- SERVICES ---------------- */

    .service-grid {

        grid-template-columns:
            1fr;

    }


    .service-card {

        min-height: 280px;

        padding: 28px;

    }


    /* ---------------- SOLUTIONS ---------------- */

    .solution-card {

        min-height: 0;

        grid-template-columns:
            1fr;

        gap: 28px;

        padding:
            44px 4px;

    }


    .solution-meta {

        gap: 8px;

    }


    .solution-copy h3 {

        font-size: 39px;

    }


    /* ---------------- INTEGRATION ---------------- */

    .integration-flow {

        grid-template-columns:
            1fr;

        border-bottom: 0;

    }


    .flow-step {

        padding:
            32px 5px;

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

    }


    .flow-step small {

        margin-top: 28px;

    }


    .flow-arrow {

        display: none;

    }


    /* ---------------- PROCESS ---------------- */

    .process-grid {

        grid-template-columns:
            1fr;

    }


    .process-step {

        min-height: 245px;

        padding:
            30px 5px;

        border-right: 0;

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

    }


    .process-step h3 {

        margin-top: 55px;

    }


    /* ---------------- ABOUT ---------------- */

    .about-layout {

        grid-template-columns:
            1fr;

    }


    .about-copy .about-lead {

        font-size: 19px;

    }


    /* ---------------- CONTACT ---------------- */

    .contact {

        min-height: 0;

    }


    .contact-panel {

        padding:
            28px 22px;

    }


    .contact-email {

        font-size: 21px;

        overflow-wrap:
            anywhere;

    }


    .contact-columns {

        grid-template-columns:
            1fr 1fr;

    }


    /* ---------------- FOOTER ---------------- */

    .footer-inner {

        padding:
            44px 0;

        grid-template-columns:
            1fr;

        gap: 30px;

    }


    .footer nav {

        justify-content:
            flex-start;

    }


    .back-top {

        justify-self:
            start;

    }


    .footer-bottom {

        padding:
            26px 0;

        grid-template-columns:
            1fr;

        gap: 14px;

    }


    .footer-bottom p:last-child {

        justify-self:
            start;

    }

}


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

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

    html {

        scroll-behavior: auto;

    }


    *,
    *::before,
    *::after {

        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;

    }

}

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

.solutions {
    padding-top: 60px;
    padding-bottom: 120px;
}

.solutions .section-heading {
    margin-bottom: 64px;
}

.solution-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}


/* CARD */

.solution-card {
    position: relative;
    min-width: 0;
    min-height: 520px;

    display: flex;
    flex-direction: column;

    padding: 36px 32px 32px;

    border-bottom: 0;
    overflow: hidden;

    transition:
        background-color 0.35s ease,
        border-color 0.35s ease;
}

.solution-card+.solution-card {
    border-left: 1px solid rgba(255, 255, 255, 0.12);
}


/* META */

.solution-meta {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;

    margin-bottom: 36px;
}

.solution-meta span {
    font-size: 10px;
    letter-spacing: 0.18em;
    color: rgba(255, 255, 255, 0.45);
}

.solution-meta strong {
    font-size: 11px;
    letter-spacing: 0.16em;
    color: #9b4dff;
}


/* COPY */

.solution-copy {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;

    flex: 1;
}

.solution-copy h3 {
    max-width: 390px;
    margin: 0 0 24px;

    font-size: clamp(30px, 2.4vw, 44px);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.solution-copy p {
    max-width: 390px;
    margin: 0 0 28px;

    font-size: 15px;
    line-height: 1.75;
    color: rgba(255, 255, 255, 0.62);
}


/* TAGS */

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

    margin-bottom: 32px;
}

.solution-tags span {
    padding: 8px 10px;

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

    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.13em;

    color: rgba(255, 255, 255, 0.62);
}


/* CTA */

.solution-card .text-link {
    width: 100%;
    margin-top: auto;

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

    padding: 18px 0 18px 14px;

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

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.solution-card .text-link span {
    font-size: 18px;
    color: #9b4dff;
    padding: 0 9px 0px 4px;
    transition: transform 0.25s ease;
}


/* BACKGROUND LETTER */

.solution-mark {
    position: absolute;
    z-index: 0;

    right: -16px;
    bottom: -48px;

    font-size: 210px;
    font-weight: 800;
    line-height: 1;

    color: rgba(255, 255, 255, 0.018);

    pointer-events: none;

    transition:
        color 0.35s ease,
        transform 0.5s ease;
}


/* HOVER */

@media (hover: hover) {

    .solution-card:hover {
        background: rgba(255, 255, 255, 0.018);
    }

    .solution-card:hover .solution-mark {
        color: rgba(155, 77, 255, 0.07);
        transform: translate3d(-8px, -8px, 0);
    }

    .solution-card:hover .text-link span {
        transform: translate(4px, -4px);
    }
}


/* TABLET */

@media (max-width: 1100px) {

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

    .solution-card {
        min-height: auto;
        padding: 42px 32px;
    }

    .solution-card+.solution-card {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
    }

    .solution-meta {
        margin-bottom: 36px;
    }

    .solution-copy h3,
    .solution-copy p {
        max-width: 700px;
    }

    .solution-card .text-link {
        margin-top: 24px;
    }

    .solution-mark {
        right: 20px;
        bottom: -50px;
    }
}


/* MOBILE */

@media (max-width: 640px) {

    .solutions {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .solutions .section-heading {
        margin-bottom: 42px;
    }

    .solution-card {
        padding: 32px 20px;
    }

    .solution-meta {
        margin-bottom: 30px;
    }

    .solution-copy h3 {
        font-size: clamp(30px, 10vw, 40px);
    }

    .solution-copy p {
        font-size: 14px;
    }

    .solution-mark {
        font-size: 150px;
        right: -8px;
        bottom: -28px;
    }
}