:root{
    --bg:#f4f7fa;
    --card:#ffffff;
    --dark:#152332;
    --hero:#1f3950;
    --text:#24313b;
    --muted:#6e7d8a;
    --border:#dde5eb;
    --blue:#2196f3;
    --green:#38c97b;
}

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

body{
    font-family:Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.6;
}

.container{
    width:min(1200px,95%);
    margin:auto;
}

/***************************
 HERO
****************************/

.hero{

    background:
    linear-gradient(
        135deg,
        #132231,
        #1f3950
    );

    color:white;

    padding:70px 0;

}

.hero-content{
    margin-bottom:35px;
}

.hero h1{

    font-size:4rem;

    margin-bottom:10px;

}

.sub{

    font-size:1.1rem;

    color:#c9d6e0;

    margin-bottom:15px;

}

.hero-text{

    font-size:1.1rem;

    max-width:800px;

    color:#dde7ef;

}

.hero-cards{

    display:grid;

    gap:20px;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(220px,1fr)
        );

}

.hero-card{

    background:
        rgba(255,255,255,.08);

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius:12px;

    padding:18px;

}

.label{

    color:#c7d6e2;

    margin-bottom:6px;

    font-size:.9rem;

}

/***************************
 MAIN
****************************/

main{
    padding-top:50px;
}

section{
    margin-bottom:80px;
}

h2{

    font-size:2rem;

    margin-bottom:10px;

}

.section-intro{

    color:var(--muted);

    margin-bottom:25px;

}

.intro{

    font-size:1.15rem;

}

/***************************
 ENERGY
****************************/

.energy-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(240px,1fr)
        );

    gap:20px;

}

.energy-card{

    background:white;

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

    border-radius:12px;

    padding:25px;

}

.card-title{

    color:var(--muted);

    margin-bottom:8px;

}

.value{

    font-size:2rem;

    font-weight:bold;

}

/***************************
 YEAR TRACK
****************************/

.year-wrapper{

    margin-top:30px;

}

.year-track{

    position:relative;

    height:18px;

    border-radius:20px;

    margin-top:120px;
    margin-bottom:100px;

    background:
    linear-gradient(
        to right,

        #7db7e5 0%,
        #7db7e5 21%,

        #64c97d 21%,
        #64c97d 47%,

        #f2c94c 47%,
        #f2c94c 72.5%,

        #df8c31 72.5%,
        #df8c31 97%,

        #7db7e5 97%,
        #7db7e5 100%
    );

}

.season{

    position:absolute;

    top:-95px;

    transform:translateX(-50%);

    text-align:center;

}

.season-icon{

    font-size:1.5rem;

}

.season-line{

    width:2px;

    height:65px;

    background:#555;

    margin:auto;

}

.season-label{

    margin-top:4px;

    font-size:.8rem;

    font-weight:bold;

    white-space:nowrap;

}

#today-marker{

    position:absolute;

    top:-88px;

    transform:translateX(-50%);

    text-align:center;

    z-index:10;

}

.today-text{

    font-weight:bold;

    color:#1565c0;

    margin-bottom:3px;

}

.today-dot{

    width:22px;
    height:22px;

    border-radius:50%;

    background:white;

    border:5px solid #2196f3;

    margin:auto;

    box-shadow:
        0 0 0 6px rgba(33,150,243,.18),
        0 0 14px rgba(33,150,243,.45);

}

.year-labels{

    display:flex;

    justify-content:space-between;

    margin-top:20px;

    font-weight:bold;

    color:#4c5964;

}

#day-info{

    margin-top:30px;

    text-align:center;

    font-weight:bold;

}

/***************************
 PROJECTS
****************************/

.cards{

    display:grid;

    gap:20px;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(250px,1fr)
        );

}

.card{

    background:white;

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

    border-radius:12px;

    padding:25px;

    text-decoration:none;

    color:inherit;

    transition:.2s;

}

.card:hover{

    transform:translateY(-4px);

    box-shadow:
        0 10px 20px
        rgba(0,0,0,.08);

}

.icon{

    font-size:2rem;

    margin-bottom:10px;

}

.card h3{

    margin-bottom:10px;

}

/***************************
 FOOTER
****************************/

footer{

    margin-top:60px;

    text-align:center;

    padding:35px;

    background:#132231;

    color:white;

}

/***************************
 MOBILE
****************************/

@media(max-width:768px){

    .hero h1{
        font-size:2.4rem;
    }

    h2{
        font-size:1.6rem;
    }

    .value{
        font-size:1.6rem;
    }

}
