/* =========================
   FONTS
   ========================= */
@font-face {
    font-family: 'CommitMono';
    src: url('fonts/CommitMono-700-Regular.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Geist';
    src: url('fonts/Geist-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

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

/* =========================
   BASE
   ========================= */
body {
    font-family: 'CommitMono', monospace;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
}

/* =========================
   HEADER LAYOUT
   ========================= */
.header {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    display: flex;
    flex-direction: column;
    z-index: 2;
}

/* =========================
   BOX COMPONENTS - BASE
   ========================= */
.box,
.title-box,
.nav-box,
.readout-box,
.controls-box {
    padding: 0.625rem;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.05rem;
    min-width: 460px;
    max-width: 460px;
}

.title-box {
    min-height: 6rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.title-box-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.title-box-bottom {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-end;
}

.nav-box {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.readout-box {
    display: flex;
}

.controls-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* =========================
   TEXT ELEMENTS - BASE
   ========================= */
.title,
.home-link,
.home-text,
.nav-link,
.readout {
    line-height: 1.3;
    text-align: left;
    font-family: 'CommitMono', monospace;
    font-size: 12px;
    letter-spacing: 0.05rem;
    margin: 0;
    padding: 0;
    text-transform: inherit;
}

.home-link,
.nav-link {
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
}

/* =========================
   BUTTON RESET
   ========================= */
button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'CommitMono', monospace;
}

/* =========================
   MONO TEXT BUTTON
   ========================= */
.mono-text-button {
    font-size: 24px;
    line-height: 1;
    padding: 0;
    margin: 0;
}

/* =========================
   SVG LOGO - BASE
   ========================= */
.svg-logo {
    width: auto;
    height: var(--logo-height, 40px);
}

/* =========================
   TEXT OVERLAY - BASE
   ========================= */
.text-overlay {
    font-family: 'Geist', sans-serif;
    font-weight: 700;
    font-size: clamp(3rem, 10vw, 12rem);
    max-width: 80vw;
    max-height: 80vh;
    text-align: center;
    line-height: 0.9;
    letter-spacing: -0.02rem;
    text-transform: uppercase;
    position: fixed;
    top: 50vh;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

/* =========================
   MOBILE RESPONSIVE
   ========================= */
@media (max-width: 600px), (max-aspect-ratio: 1/1) {
    .header {
        left: 1.5rem;
        right: 1.5rem;
        width: calc(100vw - 3rem);
        margin: 0;
        padding: 0;
    }

    .box,
    .title-box,
    .nav-box,
    .readout-box,
    .controls-box {
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }

    .title,
    .home-link,
    .home-text,
    .nav-link,
    .readout {
        font-size: 0.75rem;
    }

    .mono-text-button {
        font-size: 24px;
    }

    .text-overlay {
        font-size: clamp(2rem, 15vw, 6rem);
        line-height: 0.95;
        max-width: calc(100vw - 3rem);
    }
}