/* continu.ax — Design Language v1
   Palette:
   #F5EDE3 Parchment Cream     #3B2F2F Espresso
   #8C6E58 Warm Clay           #D4A574 Sandstone Gold
   #C4856A Terracotta Blush    #B8A99A Warm Gray
   #7A4A32 Burnt Sienna
*/

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

html {
    scroll-behavior: smooth;
}

body {
    background: #F5EDE3;
    color: #3B2F2F;
    font-family: 'DM Sans', sans-serif;
    font-weight: 400;
    font-size: clamp(0.95rem, 1.2vw, 1.1rem);
    line-height: 1.75;
    overflow-x: hidden;
    position: relative;
}

/* ---------- Single transition vocabulary ---------- */
a, .panel, .figure-image, .domain-name, .axis-link, .cut-link, .ax-glyph {
    transition: transform 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ---------- Top-left ax glyph (only nav affordance) ---------- */
.ax-glyph {
    position: fixed;
    top: 24px;
    left: 24px;
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    font-size: 12px;
    letter-spacing: 0.25em;
    text-transform: lowercase;
    color: #8C6E58;
    opacity: 0.4;
    text-decoration: none;
    z-index: 100;
    mix-blend-mode: multiply;
}

.ax-glyph:hover {
    transform: scale(1.03);
}

/* ---------- 12-col grid ---------- */
.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 24px;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 48px;
}

/* ---------- Persistent right canyon ---------- */
.right-canyon {
    position: fixed;
    top: 0;
    right: 0;
    width: 33.333%;
    height: 100vh;
    pointer-events: none;
    z-index: 1;
}

.axis-mark {
    position: absolute;
    width: 220px;
    height: 30px;
    right: 64px;
}

.axis-mark-1 { top: 18%; }
.axis-mark-2 { top: 38%; right: 120px; width: 180px; }
.axis-mark-3 { top: 62%; right: 80px; width: 240px; }
.axis-mark-4 { top: 84%; right: 140px; width: 160px; }

/* ---------- Zone A — The Axis Line ---------- */
.zone-a {
    min-height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    padding-top: 96px;
    padding-bottom: 96px;
}

.zone-a .hero {
    grid-column: 1 / span 8;
    position: relative;
}

.domain-name {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    font-size: clamp(3rem, 7vw, 5.5rem);
    letter-spacing: 0.25em;
    color: #3B2F2F;
    text-transform: lowercase;
    line-height: 1;
    margin-bottom: 64px;
    display: inline-block;
}

.domain-name .dot {
    color: #C4856A;
    display: inline-block;
    transform: translateY(-0.05em);
}

.axis-line-wrap {
    width: 100%;
    height: 1px;
    margin: 32px 0;
    position: relative;
}

.axis-line {
    display: block;
    width: 100%;
    height: 1px;
    background: #8C6E58;
    transform-origin: left center;
    transform: scaleX(1);
    transition: transform 400ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.axis-line.extend {
    /* Extend beyond columns 1-8 to fill remaining columns. 12/8 = 1.5 */
    transform: scaleX(1.5);
}

.declaration {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.15em;
    color: #8C6E58;
    text-transform: lowercase;
    margin-top: 32px;
}

.meta-stamp {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8C6E58;
    margin-top: 96px;
}

/* ---------- Zone B — Content panels ---------- */
.zone-b {
    padding: 120px 0;
    position: relative;
}

.zone-b .grid {
    row-gap: 120px;
}

.panel {
    grid-column: 1 / span 8;
    background: #F5EDE3;
    padding: 0;
    position: relative;
}

.panel:hover {
    transform: scale(1.03);
}

.panel-text {
    padding: 8px 0;
}

.panel-meta {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8C6E58;
    margin-bottom: 24px;
}

.panel-heading {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    font-size: clamp(1.75rem, 3.4vw, 2.75rem);
    letter-spacing: 0.06em;
    color: #3B2F2F;
    line-height: 1.2;
    margin-bottom: 32px;
    max-width: 16ch;
}

.panel-body {
    color: #3B2F2F;
    max-width: 60ch;
    margin-bottom: 32px;
}

/* ---------- Axis links ---------- */
.axis-link {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.15em;
    text-transform: lowercase;
    color: #3B2F2F;
    text-decoration: none;
    position: relative;
    padding-bottom: 6px;
    display: inline-block;
}

.axis-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #8C6E58;
    transform: scaleX(0.4);
    transform-origin: left center;
    transition: transform 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.axis-link:hover::after {
    transform: scaleX(1);
}

.axis-link:hover {
    transform: scale(1.03);
}

/* ---------- Image panels ---------- */
.panel-image {
    grid-column: 1 / span 8;
}

.panel-image figure {
    display: grid;
    grid-template-columns: 6fr 2fr;
    gap: 24px;
    align-items: end;
}

.figure-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    filter: saturate(0.6);
    background-color: #B8A99A;
    background-size: cover;
    background-position: center;
    transition: transform 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
    margin-left: -48px;
}

.panel-image:hover .figure-image {
    transform: skewX(-2deg);
}

/* Generated material textures via CSS (no external assets) */
.figure-image-1 {
    background-image:
        repeating-linear-gradient(83deg, rgba(59,47,47,0.10) 0 1px, transparent 1px 7px),
        repeating-linear-gradient(7deg, rgba(122,74,50,0.08) 0 1px, transparent 1px 13px),
        linear-gradient(135deg, #C4856A 0%, #8C6E58 60%, #7A4A32 100%);
}

.figure-image-2 {
    background-image:
        linear-gradient(7deg, transparent 49.6%, rgba(59,47,47,0.55) 49.6%, rgba(59,47,47,0.55) 50.4%, transparent 50.4%),
        repeating-linear-gradient(0deg, rgba(184,169,154,0.18) 0 1px, transparent 1px 22px),
        linear-gradient(180deg, #F5EDE3 0%, #E8D9C8 100%);
}

.figure-image-3 {
    background-image:
        repeating-linear-gradient(7deg, rgba(122,74,50,0.12) 0 2px, transparent 2px 9px),
        repeating-linear-gradient(7deg, rgba(212,165,116,0.18) 0 1px, transparent 1px 4px),
        linear-gradient(160deg, #D4A574 0%, #C4856A 50%, #8C6E58 100%);
}

.panel-image figcaption {
    align-self: end;
    padding-bottom: 8px;
}

.caption-meta {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8C6E58;
    margin-bottom: 12px;
}

.caption-body {
    font-size: 0.9rem;
    color: #8C6E58;
    line-height: 1.6;
}

/* ---------- Zone C — The Cut ---------- */
.zone-c {
    position: relative;
    min-height: 100vh;
    background: #F5EDE3;
    overflow: hidden;
}

.cut-light {
    height: 20vh;
    background: #F5EDE3;
}

.cut-dark {
    background: #3B2F2F;
    min-height: 80vh;
    clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%);
    margin-top: -2px;
    padding: 200px 0 120px;
    display: flex;
    align-items: center;
}

.cut-dark .grid {
    width: 100%;
}

.cut-content {
    grid-column: 1 / span 8;
}

.cut-meta {
    font-family: 'Space Mono', monospace;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8C6E58;
    margin-bottom: 32px;
}

.cut-line {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 300;
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    letter-spacing: 0.15em;
    color: #D4A574;
    line-height: 1.2;
    margin-bottom: 64px;
    max-width: 18ch;
}

.cut-link {
    font-family: 'Josefin Sans', sans-serif;
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.2em;
    text-transform: lowercase;
    color: #D4A574;
    text-decoration: none;
    position: relative;
    padding-bottom: 8px;
    display: inline-block;
    margin-bottom: 96px;
}

.cut-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #D4A574;
    transform: scaleX(0.5);
    transform-origin: left center;
    transition: transform 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.cut-link:hover {
    transform: scale(1.03);
}

.cut-link:hover::after {
    transform: scaleX(1);
}

.cut-stamp {
    font-family: 'Space Mono', monospace;
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #8C6E58;
    margin-top: 64px;
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
    .grid {
        padding: 0 24px;
        gap: 16px;
    }

    .right-canyon {
        display: none;
    }

    body::after {
        content: '';
        position: fixed;
        top: 0;
        right: 0;
        width: 1px;
        height: 100vh;
        background: #B8A99A;
        opacity: 0.2;
        pointer-events: none;
    }

    .zone-a .hero,
    .panel,
    .panel-image,
    .cut-content {
        grid-column: 1 / -1;
    }

    .panel-image figure {
        grid-template-columns: 1fr;
    }

    .figure-image {
        margin-left: -24px;
    }

    .zone-b .grid {
        row-gap: 80px;
    }

    .zone-b {
        padding: 80px 0;
    }

    .panel:active,
    .axis-link:active,
    .cut-link:active,
    .ax-glyph:active {
        transform: scale(0.97);
    }
}
