@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Outfit:wght@100..900&display=swap');


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    overflow-x: hidden;
    background: #f4f3ef;
    color: #f4f3ef;
    /* font-family: "Bebas Neue", sans-serif; */
    font-family: "Outfit", sans-serif;
}

#header {

    /* height: 100vh; */
    height: 100vh;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;

    overflow: hidden;
}

#starter {
    height: 10vh;
    width: 100%;
}

nav {
    position: fixed;
    display: flex;
    justify-content: space-between;

    padding: 0 5vw;
    align-items: center;
    height: 10vh;
    width: 100%;
    top: 0;
    z-index: 10;
}

#home {
    display: flex;
    align-items: center;
    text-decoration: none;
    background-color: rgba(244, 243, 239, 0.5);
    color: black;
    padding: 20px;
    margin: 10px;
    height: 50px;
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

#home h1 {
    font-size: 1.5rem;
    font-weight: 400;
    /* text-transform: uppercase; */
}

.logo {
    height: 30px;
    margin-right: 5px;
}

#navItems {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 10px;
    background-color: rgba(244, 243, 239, 0.5);
    padding: 20px;
    height: 50px;
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

.item {
    list-style: none;

}

.item a {
    text-decoration: none;
    color: black;
    text-transform: uppercase;
    /* color: white; */
    font-size: 1rem;
    font-weight: 400;
    margin: 0 10px;
}

/* #hero {
    width: 30%;
    height: 30vh;
    background-color: #1A1A1A;
    border-radius: 15px;
    margin-top: 10vh;
    opacity: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    perspective: 1000px;

    overflow: hidden;

    will-change: width, height, border-radius;
} */

#hero {
    /* top: 0; */
    width: 100%;
    height: 100vh;
    /* padding-top:4vh; */
    /* margin-top:40px; */
    position: relative;
    display: grid;
    grid-template-columns: 2fr 1fr;
    align-items: center;
    padding: 0 4vw;
    overflow: hidden;
}

#heroBg {
    position: absolute;
    inset: 0;
    opacity: 0;
    background: #1A1A1A;
    border-radius: 15px;
    z-index: 0;
    transform: scaleX(0.98) scaleY(0.88) translateY(30px);
    transform-origin: center top;
    will-change:
        transform,
        border-radius;
}

#heroText,
#svgCanvas {
    position: relative;
    z-index: 2;
}

#heroText {
    width: 100%;
    padding: 0 50px;
    opacity: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tag,
.desc,
.heroTitle,
#heroLine,
.arrowBtn {
    transform: translateY(30px);
    opacity: 0;
}

.tag {
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 4px;
    opacity: 0.7;
    /* margin-bottom: 20px; */
}

.heroTitle {
    display: flex;
    flex-wrap: wrap;
    /* 
    gap:20px;
    row-gap: 5px; */
    font-size: 6rem;
    font-weight: 600;
    line-height: 1.2;
    max-width: 80%;
}

/* COVER BLOCK */

.reveal {
    position: absolute;
    inset: 0;
    background: #f4f3ef;
    transform-origin: top;
    z-index: 2;
}

.desc {
    font-size: 1.1rem;
    line-height: 1.7;
    opacity: 0.8;
    max-width: 75%;
    margin-bottom: 20px;
}

/* #heroButton{
    text-decoration: none;
    font-size: 25px;
    color: #1A1A1A;
    background-color: white;
    text-align: center;
    width: fit-content;
    padding: 10px 30px;
    margin: 20px 0;
    border-radius: 5px;
} */

.arrowBtn {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 30px;
    background: #f4f3ef;
    color: #1A1A1A;
    cursor: pointer;
    overflow: hidden;
    font-size: 1.5rem;
    width: fit-content;
    margin: 15px 0;
    border: 2px solid #1A1A1A;
    border-radius: 10px;
    transition: color 0.4s ease, border-color 0.4s ease;
}

/* TEXT */
.btnText {
    position: relative;
    z-index: 2;
}

/* ARROW */
.arrow {
    position: relative;
    z-index: 2;
    transition: transform 0.4s ease;
}

/* FILL LAYER */
.arrowBtn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #1A1A1A;
    transform: translateX(-101%);
    transition: transform 0.6s cubic-bezier(.77, 0, .18, 1);
    z-index: 1;
    border-radius: inherit;
}

/* HOVER */
.arrowBtn:hover::before {
    transform: translateX(0);
}

.arrowBtn:hover {
    color: #f4f3ef;
    border-color: #f4f3ef;
}

.arrowBtn:hover .arrow {
    transform: translateX(8px);
}

svg {
    width: 40%;
    height: 100%;
}

#svgWrapper {
    position: relative;
    z-index: 2;
    will-change: transform;
}

#svgCanvas {
    width: 100%;
    height: 100%;
    align-self: start;
    justify-self: center;
    transform-origin: center top;
    position: relative;
    z-index: 2;
    margin-top: -12vh;
    will-change: transform;
}

/* PATH */

.path {
    fill: none;
    stroke: #f4f3ef;
    stroke-width: 1;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

/* ======================================== */
/* WHAT WE DO */
/* ======================================== */
#whatWeDo {
    width: 100%;
    background: #f4f3ef;
    color: #1A1A1A;
    overflow: hidden;
    position: relative;
}

/* ======================================== */
/* TOP */
/* ======================================== */

.whatTop {
    width: 100%;
    background: #1A1A1A;
    color: #f4f3ef;
    /* max-width:1000px; */
    padding: 15vh 8vw;
    display: grid;
    grid-template-columns: 30% 70%;
    gap: 4vw;

}

.sectionTagContainer {
    display: flex;
    align-items: baseline;
    gap: 28px;
    margin-bottom: 2.2vh;
}

.sectionTag {
    font-size: 1rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #bbb;
    margin-bottom: 2vh;
    padding-left: 10px;
    border-left: 5px solid #bbb
}

.sectionTitle {
    display: flex;
    flex-wrap: wrap;
    font-size: 5rem;
    gap: 0.25em;
    font-weight: 600;
    row-gap: 0.15em;
    margin-bottom: 10px;
    line-height: 1.2;
}

.break {
    flex-basis: 100%;
    height: 0;
}

/* WORD */
.word {
    position: relative;
    overflow: hidden;
    display: inline-block;
}

/* TEXT */
.wordText {
    display: block;
    /* transform:translateY(100%);
    opacity:0; */
}

/* BLOCK */
.revealBlock {
    position: absolute;
    inset: 0;
    background: #f4f3ef;
    transform-origin: top;
    z-index: 2;
}

.blackBlock {
    background: #1A1A1A;
}

.sectionDesc {
    font-size: 1.6rem;
    /* line-height:1.8; */
    color: #bbb;
    max-width: 750px;
}

.machineShowcase,
.machineShowcase * {
    box-sizing: border-box
}

.machineShowcase {
    --ink: #171717;
    --muted: #706d67;
    --line: #dedbd4;
    --paper: #f4f3ef;
    --accent: #6f8179;

    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 0;
    max-height: 100vh;
    overflow: hidden;
    background: var(--paper);
    color: var(--ink);
    font-family: "Outfit", sans-serif;
    padding: clamp(68px, 8vh, 92px) clamp(28px, 6vw, 96px) clamp(24px, 3vh, 38px);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.machineGrid {
    position: absolute;
    inset: 0;
    opacity: .5;
    background-image: linear-gradient(to right, #1717170b 1px, transparent 1px), linear-gradient(to bottom, #1717170b 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(to bottom, transparent, black 14%, black 86%, transparent)
}

.machineArc {
    position: absolute;
    left: 50%;
    top: 47%;
    border: 1px solid #17171712;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none
}

.machineArcOne {
    width: min(78vw, 1160px);
    height: min(78vw, 1160px)
}

.machineArcTwo {
    width: min(62vw, 900px);
    height: min(62vw, 900px);
    border-style: dashed;
    opacity: .35
}

.machineCorner {
    position: absolute;
    width: 30px;
    height: 30px;
    opacity: .75
}

.machineCorner:before,
.machineCorner:after {
    content: "";
    position: absolute;
    background: #777
}

.machineCorner:before {
    width: 30px;
    height: 1px
}

.machineCorner:after {
    width: 1px;
    height: 30px
}

.tl {
    left: 2.2vw;
    top: 4.5vh
}

.tr {
    right: 2.2vw;
    top: 4.5vh
}

.bl {
    left: 2.2vw;
    bottom: 3.5vh
}

.br {
    right: 2.2vw;
    bottom: 3.5vh
}

.tl:before,
.tl:after {
    left: 0;
    top: 0
}

.tr:before,
.tr:after {
    right: 0;
    top: 0
}

.bl:before,
.bl:after {
    left: 0;
    bottom: 0
}

.br:before,
.br:after {
    right: 0;
    bottom: 0
}

.machineMeta {
    position: relative;
    z-index: 5;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 14px
}

.machineTag {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: .8rem;
    letter-spacing: .28em;
    font-weight: 500
}

.machineTag i {
    width: 5px;
    height: 23px;
    background: var(--accent)
}

.machineSystem {
    font-size: .65rem;
    letter-spacing: .2em;
    color: #999
}

.machineStatus {
    position: absolute;
    z-index: 6;
    top: clamp(90px, 11vh, 140px);
    right: clamp(28px, 6vw, 96px);
    width: 174px;
    padding: 16px 18px;
    border: 1px solid #d9d6cf;
    background: rgba(244, 243, 239, 0.75);
    backdrop-filter: blur(8px)
}

.machineStatus .statusHeader {
    padding-bottom: 11px;
    font-size: .62rem;
    letter-spacing: .16em;
    color: #888
}

.machineStatus>div:not(.statusHeader) {
    border-top: 1px solid #dedbd4;
    padding: 10px 0
}

.machineStatus small {
    display: block;
    margin-bottom: 5px;
    font-size: .52rem;
    letter-spacing: .14em;
    color: #999
}

.machineStatus strong {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .72rem;
    font-weight: 500
}

.machineStatus strong i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #39785d
}

.machineIntro {
    position: relative;
    z-index: 4;
    width: min(920px, 76vw);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center
}

.machineTitle {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: .22em;
    margin: 0;
    font-size: clamp(3.5rem, 6.1vw, 6rem);
    line-height: .98;
    letter-spacing: -.055em;
    font-weight: 600
}

.introLine {
    position: relative;
    width: 68px;
    height: 1px;
    margin: 16px 0 13px;
    background: #777
}

.introLine:after {
    content: "";
    position: absolute;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: var(--accent)
}

.machineIntro p {
    max-width: 700px;
    margin: 0;
    color: #696761;
    font-size: clamp(.9rem, 1.15vw, 1.15rem);
    line-height: 1.45
}

.machineImageWrap {
    position: relative;
    z-index: 3;
    width: 100%;
    flex: 1 1 0;
    min-height: 0;
    margin-top: clamp(10px, 1.6vh, 18px);
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1400px;
}

.machineImageFrame {
    position: relative;
    width: min(1700px, 94vw);
    height: 100%;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    isolation: isolate;
}

.machineImageFrame::before {
    content: "";
    position: absolute;
    left: 7%;
    right: 7%;
    bottom: 8%;
    height: 28%;
    z-index: -1;
    background: radial-gradient(ellipse at center,
            rgba(45, 55, 52, .18) 0%,
            rgba(45, 55, 52, .09) 34%,
            rgba(45, 55, 52, .025) 62%,
            transparent 78%);
    filter: blur(24px);
    transform: translateY(12px);
    pointer-events: none;
}

.machineImageFrame::after {
    content: "";
    position: absolute;
    left: 10%;
    right: 10%;
    bottom: 4%;
    height: 9%;
    z-index: -1;
    background: rgba(20, 20, 20, .16);
    border-radius: 50%;
    filter: blur(22px);
    transform: scaleX(.88);
    opacity: .72;
    pointer-events: none;
}

.machineImg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
    aspect-ratio: 1918 / 624;
    transform-origin: center center;
    will-change: transform, opacity;
    filter: drop-shadow(0 8px 7px rgba(0, 0, 0, 0.06)) drop-shadow(0 18px 18px rgba(0, 0, 0, 0.09));
}

.dimension {
    position: absolute;
    z-index: 5;
    top: 50%;
    transform: translateY(-50%);
    font-size: .55rem;
    letter-spacing: .18em;
    color: #9a9791;
    writing-mode: vertical-rl;
}

.dimensionLeft {
    left: -18px;
    transform: translateY(-50%) rotate(180deg);
}

.dimensionRight {
    right: -18px;
}

.machineMetrics {
    position: relative;
    z-index: 4;
    width: min(850px, 82vw);
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    margin-top: 12px;
}

.metric {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 0;
}

.metric small {
    display: block;
    margin-bottom: 4px;
    font-size: .64rem;
    line-height: 1;
    letter-spacing: .08em;
    white-space: nowrap;
}

.metric strong {
    display: block;
    font-size: 1.3rem;
    line-height: 1.1;
    font-weight: 400;
    white-space: nowrap;
}

.divider {
    width: 1px;
    height: 42px;
    background: #d3d0c9
}

.metricIcon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #44695c;
}

.metricIcon svg {
    width: 38px;
    height: 38px;
    display: block;
    overflow: visible;
}

.metricIcon svg path,
.metricIcon svg circle,
.metricIcon svg line {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.25;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.metricIcon svg .speedDot {
    fill: currentColor;
    stroke: none;
}

.machineCTA {
    position: relative;
    z-index: 4;
    margin-top: clamp(14px, 2vh, 24px);
}

.machineArrowBtn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    min-width: 245px;
    padding: 12px 24px;
    background: var(--ink);
    color: #f4f3ef;
    border: 2px solid var(--ink);
    border-radius: 7px;
    text-decoration: none;
    overflow: hidden;
    font-size: 1rem
}

.machineArrowBtn:before {
    content: "";
    position: absolute;
    inset: 0;
    background: #f4f3ef;
    transform: translateX(-101%);
    transition: transform .6s cubic-bezier(.77, 0, .18, 1);
    z-index: 1
}

.machineArrowBtn span,
.machineArrowBtn b {
    position: relative;
    z-index: 2
}

.machineArrowBtn b {
    transition: transform .4s ease
}

.machineArrowBtn:hover:before {
    transform: translateX(0)
}

.machineArrowBtn:hover {
    color: var(--ink)
}

.machineArrowBtn:hover b {
    transform: translateX(8px)
}

@media(max-height:850px) and (min-width:1000px) {
    .machineShowcase {
        padding-top: 82px;
        padding-bottom: 38px
    }

    .machineTitle {
        font-size: clamp(3.2rem, 5.2vw, 5.6rem)
    }

    .machineDescription {
        font-size: 1rem
    }

    .machineImageWrap {
        margin-top: 15px
    }

    .machineImageFrame {
        width: min(1550px, 92vw)
    }

    .machineMetrics {
        margin-top: 7px
    }

    .metric strong {
        font-size: 1.1rem
    }

    .machineCTA {
        margin-top: 8px
    }

    .machineStatus {
        top: 82px
    }
}

@media(max-width:1000px) {
    .machineShowcase {
        padding: 105px 5vw 60px
    }

    .machineStatus {
        position: relative;
        top: auto;
        right: auto;
        align-self: flex-end;
        margin-bottom: 12px
    }

    .machineIntro {
        width: 92vw
    }

    .machineTitle {
        font-size: clamp(3rem, 8vw, 5rem)
    }

    .machineImageFrame {
        width: 96vw
    }

    .machineMetrics {
        width: 94vw
    }
}

@media(max-width:700px) {
    .machineShowcase {
        padding: 88px 20px 50px
    }

    .machineTitle {
        flex-wrap: wrap;
        font-size: clamp(2.7rem, 13vw, 4rem)
    }

    .machineIntro p {
        font-size: .95rem;
        max-width: 90%
    }

    .machineStatus {
        width: 100%;
        max-width: 220px
    }

    .machineImageFrame {
        width: 108vw;
        margin-left: -4vw
    }

    .dimension {
        display: none
    }

    .machineMetrics {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 14px
    }

    .divider {
        display: none
    }

    .metric {
        justify-content: flex-start;
        padding-left: 12%
    }

    .machineCTA,
    .machineArrowBtn {
        width: 100%
    }
}


/* Strict 100vh desktop/tablet canvas */
@media (min-width: 701px) {

    html,
    body {
        margin: 0;
        padding: 0;
        overflow-x: hidden;
    }

    .machineShowcase {
        height: 100vh;
        min-height: 0;
        max-height: 100vh;
    }
}

/* Machine depth — the image itself stays at full native contrast. */
.machineImg {
    transition: filter .45s ease;
}

.machineImageFrame:hover .machineImg {
    filter: drop-shadow(0 10px 9px rgba(0, 0, 0, 0.08)) drop-shadow(0 22px 22px rgba(0, 0, 0, 0.11));
}

@media (prefers-reduced-motion: reduce) {
    .machineImg {
        transition: none;
    }
}

#innovationBand {
    width: 100%;
    background: #f4f3ef;
    padding: 5vh 0;
    overflow: hidden;
    position: relative;
}

/* ======================================== */
/* TRACK */
/* ======================================== */
.bandTrack {
    display: flex;
    width: max-content;
    will-change: transform;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.bandText {
    flex-shrink: 0;
    margin-right: 4vw;
    font-size: 8rem;
    line-height: 1;
    font-weight: 600;
    color: #1A1A1A;
    letter-spacing: -4px;
    text-transform: uppercase;
}

/* OUTLINED */
.bandText.outlined {
    color: transparent;
    -webkit-text-stroke: 4px rgba(0, 0, 0, 0.25);
}

/* ======================================== */
/* OPTIONAL GRAIN */
/* ======================================== */

#innovationBand::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.03;
    pointer-events: none;
    background-image: radial-gradient(#1A1A1A 0.6px, transparent 0.6px);
    background-size: 8px 8px;
}

.technologySection {
    height: 100vh;
    min-height: 700px;
    width: 100%;
    display: grid;
    grid-template-columns: 40% 60%;
    position: relative;
    overflow: hidden;
    background: #f4f3ef;
    color: #1A1A1A;
}

.techTitle {
    font-size: 5rem;
    line-height: 1.2;
    font-weight: 600;
    margin-bottom: 5vh;
}

.left {
    /* position: absolute; */
    width: 100%;
    padding: 25vh 0 0 8vw;
}

.muted {
    color: #aaa
}

.copy {
    margin-top: 34px;
    min-height: 105px;
    max-width: 355px;
    color: #777;
    font-size: 1.5rem;
    line-height: 1.6
}

.copy strong {
    display: block;
    color: #171717;
    font-size: 1rem;
    letter-spacing: .13em;
    margin-bottom: 9px
}

.visual {
    /* position: absolute; */
    height: 100vh;
}

svg {
    width: 100%;
    height: 100%;
    display: block
}

.guide {
    fill: none;
    stroke: #deddd8;
    stroke-width: 1
}

.guideDash {
    fill: none;
    stroke: #e4e2dd;
    stroke-width: 1;
    stroke-dasharray: 2 10
}

.soft {
    fill: none;
    stroke: #b9b8b2;
    stroke-width: 1;
    opacity: .3
}

.main {
    fill: none;
    stroke: #171717;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round
}

.node {
    fill: #f4f3ef;
    stroke: #999;
    stroke-width: 1
}

.node.active {
    fill: #171717;
    stroke: #171717
}

.ring {
    fill: none;
    stroke: #171717;
    stroke-width: 1;
    opacity: 0
}

.ring.active {
    opacity: .16
}

.label {
    fill: #aaa;
    font-size: 9px;
    letter-spacing: .1em
}

.label.active {
    fill: #171717
}

.packet {
    fill: #171717
}

.packetHalo {
    fill: none;
    stroke: #171717;
    stroke-width: 1;
    opacity: .15
}

.technologySection .left {
    position: relative;
    z-index: 8;
    padding: 17vh 0 150px 7vw;
}

.techSystemCode {
    font-size: 9px;
    letter-spacing: .16em;
    color: #aaa;
    text-transform: uppercase;
}

.techSystemCode b {
    color: #171717;
    font-weight: 500;
}

.techSystemCode .systemStageDark {
    color: #bbb;
}

.technologySection .techTitle {
    position: relative;
    z-index: 4;
    font-size: clamp(4.2rem, 5.5vw, 6.5rem);
    letter-spacing: -.015em;
    margin-bottom: 38px;
}

.technologySection .copy {
    position: relative;
    z-index: 5;
    max-width: 330px;
    min-height: 125px;
    margin-top: 0;
    padding-left: 16px;
    border-left: 1px solid #d0cec7;
}

.technologySection .copy strong {
    font-size: 10px;
    letter-spacing: .16em;
    margin-bottom: 12px;
}

.technologySection .copy span {
    display: block;
}

.techMicro {
    display: flex;
    gap: 20px;
    margin-top: 34px;
    color: #aaa;
    font-size: 8px;
    letter-spacing: .12em;
}

.techMicro span+span::before {
    content: "·";
    margin-right: 20px;
}

.technologySection .visual {
    position: relative;
    height: 100vh;
    min-width: 0;
    overflow: hidden;
}

.technologySection .visual::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(rgba(23, 23, 23, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(23, 23, 23, .045) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: radial-gradient(circle at 52% 48%, black 0%, rgba(0, 0, 0, .8) 45%, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 52% 48%, black 0%, rgba(0, 0, 0, .8) 45%, transparent 78%);
}

.techGrid {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.techGrid span {
    position: absolute;
    width: 5px;
    height: 5px;
    border: 1px solid #c7c5be;
}

.techGrid span:nth-child(1) {
    left: 5%;
    top: 12%;
}

.techGrid span:nth-child(2) {
    right: 6%;
    top: 16%;
}

.techGrid span:nth-child(3) {
    left: 7%;
    bottom: 23%;
}

.techGrid span:nth-child(4) {
    right: 7%;
    bottom: 19%;
}

.techGrid i {
    position: absolute;
    display: block;
    background: #d8d6cf;
}

.techGrid i:nth-of-type(1) {
    width: 1px;
    height: 34px;
    left: calc(5% + 2px);
    top: calc(12% + 5px);
}

.techGrid i:nth-of-type(2) {
    width: 34px;
    height: 1px;
    left: 5%;
    top: calc(12% + 2px);
}

.techGrid i:nth-of-type(3) {
    width: 1px;
    height: 34px;
    right: calc(6% + 2px);
    top: calc(16% + 5px);
}

.techGrid i:nth-of-type(4) {
    width: 34px;
    height: 1px;
    right: 6%;
    top: calc(16% + 2px);
}

.techVisualFrame {
    position: absolute;
    inset: 8% 6% 17% 4%;
    border: 1px solid rgba(23, 23, 23, .09);
    pointer-events: none;
    z-index: 2;
}

.frameCorner {
    position: absolute;
    width: 16px;
    height: 16px;
}

.frameCorner::before,
.frameCorner::after {
    content: "";
    position: absolute;
    background: #777;
}

.frameCorner::before {
    width: 16px;
    height: 1px;
}

.frameCorner::after {
    width: 1px;
    height: 16px;
}

.frameCorner.tl {
    left: -1px;
    top: -1px;
}

.frameCorner.tr {
    right: -1px;
    top: -1px;
    transform: scaleX(-1);
}

.frameCorner.bl {
    left: -1px;
    bottom: -1px;
    transform: scaleY(-1);
}

.frameCorner.br {
    right: -1px;
    bottom: -1px;
    transform: scale(-1);
}

.frameAxis {
    position: absolute;
    background: rgba(23, 23, 23, .08);
}

.frameAxis.axisX {
    left: 50%;
    top: 0;
    width: 1px;
    height: 100%;
}

.frameAxis.axisY {
    top: 50%;
    left: 0;
    height: 1px;
    width: 100%;
}

.technologySection .visual svg {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    transform-origin: center center;
}

.techSystemPanel {
    position: absolute;
    z-index: 10;
    top: 12%;
    right: 4%;
    width: 190px;
    padding: 18px 18px 10px;
    border: 1px solid rgba(23, 23, 23, .16);
    background: rgba(244, 243, 239, .82);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.panelHeader {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding-bottom: 14px;
    border-bottom: 1px solid #d2d0c9;
    color: #777;
    font-size: 8px;
    letter-spacing: .15em;
}

.panelLive {
    color: #171717;
    display: flex;
    align-items: center;
    gap: 7px;
}

.panelLive i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #171717;
    display: inline-block;
    animation: techLive 1.8s ease-in-out infinite;
}

@keyframes techLive {
    0%,
    100% {
        opacity: .35;
        transform: scale(.8);
    }

    50% {
        opacity: 1;
        transform: scale(1);
    }
}

.panelRow {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 13px 0;
    border-bottom: 1px solid #dedcd5;
}

.panelRow span {
    color: #aaa;
    font-size: 7px;
    letter-spacing: .13em;
}

.panelRow strong {
    color: #171717;
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .08em;
}

.techStageRail {
    position: absolute;
    z-index: 20;
    left: 7vw;
    right: 4vw;
    bottom: 34px;
}

.stageLine {
    position: absolute;
    left: 5px;
    right: 5px;
    top: 19px;
    height: 1px;
    background: #d1cfc8;
}

.stageProgress {
    display: block;
    width: 0;
    height: 1px;
    background: #171717;
    transform-origin: left center;
}

.stageItems {
    position: relative;
    height: 45px;
}

.stageItem {
    position: absolute;
    top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    color: #aaa;
    transition: color .25s ease;
}

/*
  The six stage dots must sit at the six true rail milestones:
  0%, 20%, 40%, 60%, 80%, 100%.

  A six-column grid places the last item at 83.33%, which is why
  OUTPUT previously appeared before the end of the progress line.
*/
.stageItem:nth-child(1) {
    left: 0%;
}

.stageItem:nth-child(2) {
    left: 20%;
}

.stageItem:nth-child(3) {
    left: 40%;
}

.stageItem:nth-child(4) {
    left: 60%;
}

.stageItem:nth-child(5) {
    left: 80%;
}

.stageItem:nth-child(6) {
    left: 100%;
}

.stageItem:nth-child(6) {
    transform: none;
}

.stageItem:nth-child(6) .stageNo,
.stageItem:nth-child(6) .stageName {
    transform: translateX(-100%);
    text-align: right;
}

.stageNo {
    font-size: 8px;
    letter-spacing: .12em;
}

.stageDot {
    position: absolute;
    top: 14px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #aaa;
    background: #f4f3ef;
    transform: translate(-50%, 0);
    transition:
        background .25s ease,
        border-color .25s ease,
        transform .35s ease,
        box-shadow .35s ease;
}

.stageName {
    margin-top: 25px;
    font-size: 8px;
    letter-spacing: .11em;
}

.stageItem.active {
    color: #171717;
}

.stageItem.active .stageDot {
    background: #171717;
    border-color: #171717;
    transform: scale(1.15);
    box-shadow: 0 0 0 5px rgba(23, 23, 23, .06);
}

@media (max-width: 1100px) {
    .technologySection {
        grid-template-columns: 40% 60%;
    }

    .technologySection .techTitle {
        font-size: 4.5rem;
    }

    .techSystemPanel {
        width: 160px;
        right: 3%;
    }
}

@media (max-width: 800px) {
    .technologySection {
        min-height: 900px;
        height: auto;
        display: block;
    }

    .technologySection .left {
        padding: 12vh 8vw 30px;
    }

    .technologySection .visual {
        height: 70vh;
        min-height: 560px;
    }

    .techSystemPanel {
        top: 6%;
        right: 6%;
    }

    .techStageRail {
        left: 8vw;
        right: 8vw;
        bottom: 22px;
    }

    .stageName {
        font-size: 6px;
    }
}

.industries-section {
    --paper: #f4f3ef;
    --ink: #1a1a1a;
    --muted: #716e68;
    --line: #d6d3cc;
    --accent: #bbb;
    --accent-soft: rgba(187, 187, 187, .55);
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 680px;
    padding:
        clamp(68px, 8vh, 92px)
        clamp(28px, 5.5vw, 90px)
        clamp(30px, 4vh, 45px);
    overflow: hidden;
    background: var(--paper);
}


/* --------------------------------------------------------- */
/* BACKGROUND GRID */
/* --------------------------------------------------------- */

.tech-grid {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .38;
    background-image: linear-gradient(to right, rgba(23,23,23,.045) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(23,23,23,.045) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(
        to bottom,
        transparent,
        black 12%,
        black 88%,
        transparent
    );
}


/* --------------------------------------------------------- */
/* SUBTLE STITCH / ENGINEERING GRAPHIC */
/* --------------------------------------------------------- */

.stitch-graphic {
    position: absolute;
    left: -2vw;
    bottom: -2vh;
    width: 52vw;
    height: 52vh;
    z-index: 0;
    pointer-events: none;
    opacity: .075;
    transform: rotate(-3deg);
}

.stitch-graphic svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.stitch-graphic path {
    fill: none;
    stroke: #bbb;
    stroke-width: 1.2;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

/* --------------------------------------------------------- */
/* CORNERS */
/* --------------------------------------------------------- */
.corner {
    position: absolute;
    width: 28px;
    height: 28px;
    opacity: .6;
}

.corner::before,
.corner::after {
    content: "";
    position: absolute;
    background: #777;
}

.corner::before {
    width: 28px;
    height: 1px;
}

.corner::after {
    width: 1px;
    height: 28px;
}

.corner-tl { top: 4vh; left: 2.2vw; }
.corner-tr { top: 4vh; right: 2.2vw; }
.corner-bl { bottom: 3vh; left: 2.2vw; }
.corner-br { right: 2.2vw; bottom: 3vh; }

.corner-tl::before,
.corner-tl::after { left: 0; top: 0; }

.corner-tr::before,
.corner-tr::after { right: 0; top: 0; }

.corner-bl::before,
.corner-bl::after { left: 0; bottom: 0; }

.corner-br::before,
.corner-br::after { right: 0; bottom: 0; }

/* --------------------------------------------------------- */
/* LAYOUT */
/* --------------------------------------------------------- */
.industries-layout {
    position: relative;
    z-index: 2;
    width: min(1450px, 92vw);
    height: 75%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 40fr) minmax(0, 60fr);
    align-items: center;
    gap: clamp(55px, 7vw, 120px);
}

/* --------------------------------------------------------- */
/* LEFT COPY */
/* --------------------------------------------------------- */
.industries-copy {
    position: relative;
    z-index: 3;
    padding-bottom: 10px;
}

.industries-copy h1 {
    margin: 0;
    font-size: clamp(4rem, 5.6vw, 6.3rem);
    line-height: .9;
    font-weight: 600;
    color: #1A1A1A;
}

.industries-copy p {
    max-width: 390px;
    margin:
        clamp(28px, 4vh, 44px)
        0
        0;
    color: var(--muted);
    font-size: clamp(.95rem, 1.05vw, 1.08rem);
    line-height: 1.55;
}

.copy-detail {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: clamp(36px, 6vh, 58px);
    color: #96928b;
    font-size: .57rem;
    letter-spacing: .18em;
}

.copy-detail span {
    position: relative;
    width: 38px;
    height: 1px;
    background: #b9b6ae;
}

.copy-detail span::after {
    content: "";
    position: absolute;
    right: 0;
    top: -2px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #777;
    border-right: 1px solid #777;
    transform: rotate(45deg);
}

/* --------------------------------------------------------- */
/* COVERAGE MARKER */
/* --------------------------------------------------------- */
.coverage-marker {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: clamp(42px, 6vh, 64px);
    color: #96928b;
}

.coverage-marker span {
    font-size: .56rem;
    letter-spacing: .18em;
}

/* --------------------------------------------------------- */
/* TOP + BOTTOM TECHNICAL CORNER MARKERS */
/* --------------------------------------------------------- */
.industry-index {
    position: relative;
}

/* Four independent L-shaped registration marks. */
.list-corner {
    position: absolute;
    width: 18px;
    height: 18px;
    z-index: 20;
    pointer-events: none;
    opacity: .9;
}

.list-corner::before,
.list-corner::after {
    content: "";
    position: absolute;
    display: block;
    background: #bbb;
}

/* horizontal stroke */
.list-corner::before {
    width: 18px;
    height: 1px;
}

/* vertical stroke */
.list-corner::after {
    width: 1px;
    height: 18px;
}

/* top-left */
.list-corner-tl {
    top: -1px;
    left: -1px;
}

.list-corner-tl::before,
.list-corner-tl::after {
    top: 0;
    left: 0;
}

/* top-right */
.list-corner-tr {
    top: -1px;
    right: -1px;
}

.list-corner-tr::before,
.list-corner-tr::after {
    top: 0;
    right: 0;
}

/* bottom-left */
.list-corner-bl {
    bottom: -1px;
    left: -1px;
}

.list-corner-bl::before,
.list-corner-bl::after {
    bottom: 0;
    left: 0;
}

/* bottom-right */
.list-corner-br {
    bottom: -1px;
    right: -1px;
}

.list-corner-br::before,
.list-corner-br::after {
    bottom: 0;
    right: 0;
}

/* Existing horizontal dividers remain the main structure. */
.industry-index .industry-row {
    border-bottom-color: rgba(23, 23, 23, .12);
}

.industry-index .industry-row:last-of-type {
    border-bottom-color: transparent;
}

@media (max-width: 760px) {
    .list-corner {
        width: 14px;
        height: 14px;
    }

    .list-corner::before {
        width: 14px;
    }

    .list-corner::after {
        height: 14px;
    }
}

/* --------------------------------------------------------- */
/* INDUSTRY INDEX */
/* --------------------------------------------------------- */
.industry-index {
    position: relative;
    width: 100%;
    max-width: 760px;
    border-top: 1px solid var(--line);
}

/* --------------------------------------------------------- */
/* ROW */
/* --------------------------------------------------------- */
.industry-row {
    position: relative;
    min-height: 120px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 40px;
    align-items: center;
    gap: 18px;
    padding: 18px 28px;
    border-bottom: 1px solid rgba(214,211,204,.9);
    cursor: pointer;
    isolation: isolate;
    overflow: hidden;
    transition:
        min-height .55s cubic-bezier(.22,1,.36,1),
        padding .55s cubic-bezier(.22,1,.36,1),
        border-color .4s ease;
}

/* --------------------------------------------------------- */
/* FULL ROW BACKGROUND */
/* --------------------------------------------------------- */
.row-background {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: .04;
    background-size: cover;
    background-position: center;
    transform: scale(1.06);
    filter:
        saturate(1.05)
        contrast(1.12)
        brightness(.98);
    transition:
        opacity .65s ease,
        transform 1s cubic-bezier(.22,1,.36,1),
        filter .65s ease;
}

/* --------------------------------------------------------- */
/* NANTEX COLOR OVERLAY */
/* --------------------------------------------------------- */
.row-tint {
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, .38) 0%,
            rgba(0, 0, 0, .22) 38%,
            rgba(0, 0, 0, .06) 68%,
            rgba(0, 0, 0, 0) 100%
        ),
        linear-gradient(
            90deg,
            rgba(187, 187, 187, .18) 0%,
            rgba(187, 187, 187, .10) 60%,
            rgba(187, 187, 187, 0) 100%
        );
    transition: opacity .45s ease;
}

/* --------------------------------------------------------- */
/* NUMBER */
/* --------------------------------------------------------- */
.row-number {
    position: relative;
    z-index: 3;
    align-self: start;
    padding-top: 6px;
    color: #999;
    font-size: .62rem;
    letter-spacing: .18em;
    transition: color .35s ease;
}

/* --------------------------------------------------------- */
/* MAIN TEXT */
/* --------------------------------------------------------- */
.row-main {
    position: relative;
    z-index: 2;
    min-width: 0;
}

.row-main h2 {
    margin: 0;
    color: var(--ink);
    font-size: clamp(1.4rem, 1.8vw, 1.85rem);
    line-height: 1.05;
    font-weight: 500;
    transition: transform .5s cubic-bezier(.22,1,.36,1), color .35s ease;
}

.row-main h2 span {
    color: #716e68;
    font-weight: 400;
    transition: color .35s ease;
}

.row-main p {
    max-width: 430px;
    max-height: 0;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-5px);
    color: #625f59;
    font-size: .86rem;
    line-height: 1.5;
    transition:
        max-height .5s ease,
        margin .5s ease,
        opacity .4s ease,
        transform .5s ease;
}

/* --------------------------------------------------------- */
/* ARROW */
/* --------------------------------------------------------- */
.row-arrow {
    position: relative;
    z-index: 3;
    justify-self: end;
    color: #888;
    font-size: 1rem;
    opacity: .45;
    transition:
        color .35s ease,
        opacity .35s ease,
        transform .45s ease;
}

/* --------------------------------------------------------- */
/* ACTIVE ROW ACCENT */
/* --------------------------------------------------------- */

.industry-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 2px;
    z-index: 4;
    background: var(--accent);
    opacity: 0;
    transform: scaleY(.25);
    transform-origin: center;
    transition: opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1);
}

.industry-row:hover::before,
.industry-row.active::before {
    opacity: 1;
    transform: scaleY(1);
}

/* High-contrast text over photographic hover state */
.industry-row:hover .row-main h2,
.industry-row.active .row-main h2,
.industry-row:hover .row-main h2 span,
.industry-row.active .row-main h2 span,
.industry-row:hover .row-main p,
.industry-row.active .row-main p,
.industry-row:hover .row-number,
.industry-row.active .row-number,
.industry-row:hover .row-arrow,
.industry-row.active .row-arrow {
    color: #f4f3ef;
}

.industry-row:hover .row-number,
.industry-row.active .row-number {
    color: #f4f3ef;
}

/* --------------------------------------------------------- */
/* HOVER / ACTIVE */
/* --------------------------------------------------------- */
.industry-row:hover,
.industry-row.active {
    min-height: 122px;
    border-bottom-color: rgba(110,110,104,.45);
}

.industry-row:hover .row-background,
.industry-row.active .row-background {
    opacity: .78;
    transform: scale(1);
    filter:
        saturate(1.08)
        contrast(1.16)
        brightness(.92);
}

.industry-row:hover .row-tint,
.industry-row.active .row-tint {
    opacity: 1;
}

.industry-row:hover .row-main h2,
.industry-row.active .row-main h2 {
    transform: translateX(4px);
}

.industry-row:hover .row-main p,
.industry-row.active .row-main p {
    max-height: 45px;
    margin-top: 12px;
    opacity: 1;
    transform: translateY(0);
}

.industry-row:hover .row-arrow,
.industry-row.active .row-arrow {
    color: #f4f3ef;
    opacity: 1;
    transform: translate(4px, -4px);
}

/* --------------------------------------------------------- */
/* INDUSTRY BACKGROUND IMAGES */
/* --------------------------------------------------------- */
.apparel {
    background-image: url("images/apparelTextile.jpg");
    background-size: cover;
    background-position: center 35%;
}

.automotive {
    background-image: url("images/automativeTextile.jpg");
    background-size: cover;
    background-position: center;
}

.home {
    background-image: url("images/homeTextile.jpg");
    background-size: cover;
    background-position: center 48%;
}

.industrial {
    background-image: url("images/industrialTextile.jpg");
    background-size: cover;
    background-position: center 52%;
}

.technical {
    background-image: url("images/technical-textiles.jpg");
    background-size: cover;
    background-position: center 48%;
}

/* --------------------------------------------------------- */
/* DESKTOP COMPOSITION */
/* --------------------------------------------------------- */
@media (min-width: 1001px) {
    .industries-copy {
        min-height: 470px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .industry-index {
        transform: translateY(2px);
    }
}

/* --------------------------------------------------------- */
/* LAPTOP */
/* --------------------------------------------------------- */

@media (max-height: 850px) and (min-width: 901px) {
    .industries-section {
        padding-top: 64px;
        padding-bottom: 24px;
    }

    .industries-layout {
        height: calc(100% - 55px);
    }

    .industries-copy h1 {
        font-size: clamp(3.5rem, 5vw, 5.5rem);
    }

    .industries-copy p {
        margin-top: 25px;
        font-size: .9rem;
    }

    .copy-detail {
        margin-top: 34px;
    }

    .industry-row {
        min-height: 108px;    
        padding-left: 22px;
        padding-right: 22px;
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .industry-row:hover,
    .industry-row.active {
        min-height: 105px;
    }
}

/* --------------------------------------------------------- */
/* TABLET */
/* --------------------------------------------------------- */
@media (max-width: 1000px) {
    .industries-layout {
        grid-template-columns: minmax(270px, .4fr) minmax(0, 1fr);
        gap: 40px;
    }
}

/* --------------------------------------------------------- */
/* MOBILE */
/* --------------------------------------------------------- */
@media (max-width: 760px) {
.stitch-graphic {
        width: 90vw;
        height: 38vh;
        left: -20vw;
        bottom: 0;
        opacity: .045;
    }

    .coverage-marker {
        margin-top: 35px;
    }

    .industries-section {
        height: auto;
        min-height: 100vh;
        overflow: visible;
        padding: 90px 0 45px;
    }

    .industries-layout {
        width: 100%;
        height: auto;
        display: block;
    }

    .industries-copy {
        padding: 0 8vw 40px;
    }

    .industries-copy h1 {
        font-size: clamp(3.3rem, 14vw, 4.8rem);
    }

    .industries-copy p {
        max-width: 560px;
        font-size: .92rem;
    }

    .copy-detail {
        display: none;
    }

    .industry-index {
        width: 84vw;
        margin: 0 auto;
    }

    .industry-row {
        grid-template-columns:
            34px
            minmax(0, 1fr)
            30px;
        min-height: 82px;
        gap: 10px;    
        padding-left: 18px;
        padding-right: 18px;
    }

    .industry-row:hover,
    .industry-row.active {
        min-height: 112px;
    }

    .row-main h2 {
        font-size: 1.4rem;
    }

    .row-main p {
        font-size: .78rem;
    }

    .row-background {
        opacity: 0;
    }
}


@media (max-width: 480px) {

    .industry-row.active,
    .industry-row:hover {
        min-height: 118px;
    }
}


/* Readability treatment for photographic hover state */
.industry-row:hover .row-main h2,
.industry-row.active .row-main h2,
.industry-row:hover .row-main h2 span,
.industry-row.active .row-main h2 span,
.industry-row:hover .row-main p,
.industry-row.active .row-main p,
.industry-row:hover .row-number {
    color: #f4f3ef;
}

.industry-row.active .row-number {
    color: #f4f3ef;
}


/* =========================================
   CLOSING SECTION
========================================= */

.closing-section {
    position: relative;
    height: 80vh;
    min-height: 620px;
    box-sizing: border-box;
    overflow: hidden;
    padding: 52px clamp(24px, 7vw, 120px);
    background: #1a1a1a;
    color: #f4f3ef;
    display: flex;
    flex-direction: column;
}

.closing-meta {
    color: #bbb;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .18em;
}

.closing-content {
    width: 100%;
    max-width: 1400px;

    margin: auto 0;

    display: grid;
    grid-template-columns: 58% 42%;
    align-items: end;
    gap: clamp(40px, 6vw, 120px);
}

.closing-title {
    margin: 0;
    max-width: 1050px;
    font-size: clamp(64px, 9vw, 150px);
    font-weight: 500;
    line-height: .9;
    letter-spacing: -.055em;
}

.closing-title-line {
    position: relative;
    display: block;
    overflow: hidden;
    padding-bottom: .08em;
}

.closing-word {
    display: block;
}

.closing-reveal {
    position: absolute;
    inset: 0;
    background: #f4f3ef;
    transform-origin: top;
}

.closing-details {
    width: 100%;
    margin: 0;
    padding-bottom: clamp(8px, 2vw, 28px);

    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.closing-description {
    margin: 0;
    max-width: 520px;
    color: #bbb;

    font-size: clamp(18px, 1.35vw, 22px);
    line-height: 1.55;
}

.closing-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 18px;
    margin-top: 34px;
    padding: 17px 22px;
    color: #f4f3ef;
    border: 1px solid rgba(244, 243, 239, .32);
    text-decoration: none;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .15em;
    transition:
        color .3s ease,
        background .3s ease,
        border-color .3s ease,
        transform .3s ease;
}

.closing-cta:hover {
    background: #f4f3ef;
    border-color: #f4f3ef;
    color: #1a1a1a;
    transform: translateY(-3px);
}

.closing-cta-arrow {
    font-size: 21px;
    line-height: 1;
    transition: transform .3s ease;
}

.closing-cta:hover .closing-cta-arrow {
    transform: translate(3px, -3px);
}

/* Technical corner markers */

.closing-corner {
    position: absolute;
    width: 22px;
    height: 22px;
    pointer-events: none;
}

.closing-corner::before,
.closing-corner::after {
    content: "";
    position: absolute;
    background: rgba(244, 243, 239, .45);
}

.closing-corner::before {
    width: 100%;
    height: 1px;
}

.closing-corner::after {
    width: 1px;
    height: 100%;
}

.closing-corner-tr {
    top: 32px;
    right: 32px;
}

.closing-corner-br {
    right: 32px;
    bottom: 32px;
}

.closing-corner-tr::before,
.closing-corner-tr::after,
.closing-corner-br::before,
.closing-corner-br::after {
    right: 0;
}

.closing-corner-br::before,
.closing-corner-br::after {
    bottom: 0;
}


@media (max-width: 760px) {

    .closing-section {
        height: 80vh;
        min-height: 580px;
        padding: 36px 24px;
    }

    .closing-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 48px;
        margin: auto 0;
    }

    .closing-title {
        max-width: 100%;
        font-size: clamp(58px, 16vw, 100px);
        line-height: .92;
    }

    .closing-details {
        padding: 0;
        width: 100%;
    }

    .closing-description {
        max-width: 100%;
        font-size: 17px;
    }

    .closing-cta {
        margin-top: 26px;
    }

    .closing-corner-tr {
        top: 20px;
        right: 20px;
    }

    .closing-corner-br {
        right: 20px;
        bottom: 20px;
    }
}


/* =========================================
   FOOTER
========================================= */

#footer {
    background-color: #1A1A1A;
    height: 60vh;
    width: 100%;
}

.site-footer {
    position: relative;
    background: #1a1a1a;
    color: #f4f3ef;
    padding: 40px clamp(24px, 7vw, 120px) 34px;
    min-height: 440px;
    border-top: 1px solid rgba(244, 243, 239, .16);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    gap: 80px;
    padding: 70px 0 90px;
}

.footer-logo {
    font-size: clamp(42px, 5vw, 76px);
    font-weight: 600;
    letter-spacing: -.06em;
    line-height: .9;
}

.footer-brand p {
    margin: 22px 0 0;
    color: #bbb;
    font-size: 10px;
    line-height: 1.7;
    letter-spacing: .16em;
}

.footer-links {
    display: flex;
    gap: clamp(50px, 10vw, 150px);
}

.footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.footer-label {
    margin-bottom: 16px;
    color: #bbb;
    font-size: 10px;
    letter-spacing: .15em;
}

.footer-column a {
    color: #f4f3ef;
    text-decoration: none;
    font-size: 14px;
    transition: color .25s ease, transform .25s ease;
}

.footer-column a:hover {
    color: #bbb;
    transform: translateX(4px);
}

.footer-divider {
    height: 1px;
    background: rgba(244, 243, 239, .16);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-top: 25px;
    padding-right: 110px;
    color: #777;
    font-size: 10px;
    letter-spacing: .1em;
}

.scroll-top {
    position: absolute;
    right: clamp(24px, 7vw, 120px);
    bottom: 24px;
    width: 64px;
    height: 64px;
    border: 1px solid rgba(244, 243, 239, .3);
    background: transparent;
    color: #f4f3ef;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    align-items: center;
    justify-content: center;
    gap: 2px;
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .35s ease,
        opacity .35s ease,
        visibility .35s ease;
}

.scroll-top span {
    font-size: 19px;
    line-height: 1;
}

.scroll-top small {
    font-size: 8px;
    letter-spacing: .12em;
}

.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.scroll-top:hover {
    background: #f4f3ef;
    border-color: #f4f3ef;
    color: #1a1a1a;
    transform: translateY(-4px);
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 760px) {

    .closing-section {
        height: 80vh;
        padding: 90px 24px;
    }

    .closing-title {
        font-size: clamp(58px, 17vw, 100px);
        line-height: .9;
    }

    .closing-details {
        margin-left: 0;
        margin-top: 60px;
    }

    .closing-details p {
        font-size: 17px;
    }

    .closing-corner-tl,
    .closing-corner-tr {
        top: 20px;
    }

    .closing-corner-bl,
    .closing-corner-br {
        bottom: 20px;
    }

    .closing-corner-tl,
    .closing-corner-bl {
        left: 20px;
    }

    .closing-corner-tr,
    .closing-corner-br {
        right: 20px;
    }

    .footer-top {
        flex-direction: column;
        gap: 60px;
        padding: 55px 0 70px;
    }

    .footer-links {
        gap: 55px;
    }

    .footer-bottom {
        padding-right: 85px;
        flex-direction: column;
        gap: 8px;
    }

    .scroll-top {
        width: 56px;
        height: 56px;
        right: 24px;
    }
}
