/* hil.st - Brutalist Digital Hillside */

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

:root{
    --concrete:#E8E4DF;
    --rebar:#1A1A1A;
    --steel:#6B6B6B;
    --lichen:#4A7C59;
    --summit-gold:#C4A35A;
    --dusk-violet:#6B4C7A;
    --basalt:#2C2C2C;
}

html{scroll-behavior:smooth}

body{
    background:var(--concrete);
    background-image:
        radial-gradient(circle,var(--steel) 1.5px,transparent 1.5px),
        linear-gradient(135deg,rgba(74,124,89,0.08) 0%,rgba(196,163,90,0.08) 50%,rgba(107,76,122,0.08) 100%);
    background-size:8px 8px,100% 100%;
    background-position:0 0,0 0;
    color:var(--rebar);
    font-family:'Space Mono',monospace;
    font-weight:400;
    font-size:1rem;
    line-height:1.7;
    letter-spacing:0.02em;
    overflow-x:hidden;
    border-radius:0;
    animation:gradientShift 30s ease infinite;
}

@keyframes gradientShift{
    0%{background-position:0 0,0% 0%}
    50%{background-position:0 0,100% 100%}
    100%{background-position:0 0,0% 0%}
}

/* Contour lines */
.contour-lines{
    position:fixed;
    bottom:0;left:0;
    width:1200px;
    height:800px;
    pointer-events:none;
    z-index:0;
    will-change:transform;
}

/* Sections */
.section{
    position:relative;
    z-index:1;
    max-width:1440px;
    margin:0 auto;
    padding:0 48px;
}

/* Summit (Hero) */
.summit{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding-bottom:clamp(40px,8vh,80px);
    position:relative;
}

.summit-note{
    position:absolute;
    top:clamp(24px,6vh,60px);
    right:48px;
    font-family:'Outfit',sans-serif;
    font-weight:300;
    font-size:clamp(0.9rem,1.5vw,1.2rem);
    color:var(--steel);
}

.summit-title{
    font-family:'Space Mono',monospace;
    font-weight:700;
    font-size:clamp(4rem,10vw,9rem);
    letter-spacing:-0.03em;
    line-height:1.1;
    color:var(--rebar);
    cursor:default;
    transition:transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}

.summit-title:hover{
    transform:scale(1.06);
}

/* Ridgeline */
.ridgeline{
    padding-top:clamp(80px,15vh,160px);
    padding-bottom:clamp(80px,15vh,160px);
}

.ridge-grid{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    column-gap:24px;
}

.ridge-left{
    grid-column:2 / 6;
}

.ridge-right{
    grid-column:8 / 12;
    margin-top:120px;
}

.ridge-heading{
    font-family:'Space Mono',monospace;
    font-weight:700;
    font-size:clamp(1.5rem,3vw,2.5rem);
    letter-spacing:0.02em;
    line-height:1.2;
    margin-bottom:24px;
    border-bottom:3px solid;
    border-image:linear-gradient(135deg,var(--lichen),var(--summit-gold),var(--dusk-violet)) 1;
    padding-bottom:16px;
}

.ridge-body{
    font-size:1rem;
    line-height:1.7;
    color:var(--rebar);
}

.ridge-annotation{
    font-family:'Space Mono',monospace;
    font-size:0.75rem;
    line-height:2;
    color:var(--steel);
}

/* Gradient rule */
.gradient-rule{
    border:none;
    height:3px;
    background:linear-gradient(135deg,var(--lichen),var(--summit-gold),var(--dusk-violet));
    max-width:1440px;
    margin:0 auto;
}

/* Slope */
.slope{
    padding-top:clamp(80px,12vh,120px);
    padding-bottom:clamp(80px,12vh,120px);
}

.slope-cards{
    display:flex;
    flex-direction:column;
    max-width:1200px;
    margin:0 auto;
}

.slope-card{
    border:3px solid var(--rebar);
    padding:32px;
    max-width:480px;
    transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94),
               border-color 0.4s;
    cursor:default;
}

.slope-card:hover{
    transform:scale(1.04);
    border-image:linear-gradient(135deg,var(--lichen),var(--summit-gold),var(--dusk-violet)) 1;
}

.card-1{
    margin-left:0;
}

.card-2{
    margin-left:clamp(80px,15vw,200px);
    margin-top:80px;
}

.card-3{
    margin-left:clamp(160px,30vw,400px);
    margin-top:80px;
}

.card-label{
    font-family:'Space Mono',monospace;
    font-weight:700;
    font-size:0.75rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--steel);
    display:block;
    margin-bottom:12px;
}

.card-body{
    font-size:1rem;
    line-height:1.7;
}

/* Valley */
.valley{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
}

.valley-text{
    font-family:'Outfit',sans-serif;
    font-weight:300;
    font-size:clamp(0.9rem,1.5vw,1.2rem);
    color:var(--steel);
    text-align:center;
}

/* Foothills */
.foothills{
    background:var(--basalt);
    padding:clamp(40px,8vh,80px) 48px;
}

.foot-content{
    max-width:400px;
}

.foot-text{
    font-family:'Space Mono',monospace;
    font-weight:700;
    font-size:1.2rem;
    color:var(--concrete);
    margin-bottom:8px;
    transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    cursor:default;
}

.foot-text:hover{
    transform:scale(1.03);
}

.foot-sub{
    font-family:'Space Mono',monospace;
    font-size:0.7rem;
    line-height:2;
    color:var(--steel);
}

/* Responsive */
@media(max-width:768px){
    .section{padding-left:24px;padding-right:24px}
    .ridge-grid{
        grid-template-columns:1fr;
    }
    .ridge-left,.ridge-right{
        grid-column:1;
    }
    .ridge-right{margin-top:48px}
    .slope-card{max-width:100%}
    .card-1,.card-2,.card-3{margin-left:0}
    .card-2,.card-3{margin-top:24px}
    .summit-note{right:24px}
    .valley{min-height:60vh}
    .slope-card{border-width:2px}
    .slope-card:hover{border-width:2px}
}
