:root{
    --bg:#070707;
    --bg-soft:#0d0d0d;
    --text:#e8e8e8;
    --muted:#888;
    --line:#f16422;
    --line-soft:#272727;
    --accent:#f16422;
    --accent-bright:#ff7338;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:"Inter",sans-serif;
    line-height:1.6;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

a{
    color:inherit;
    text-decoration:none;
}

button{
    font:inherit;
}


/* =========================================================
   HEADER
========================================================= */

header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:20;

    height:74px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:0 6vw;

    background:rgba(7,7,7,.94);
    backdrop-filter:blur(10px);

    border-bottom:1px solid var(--line);
}

.logo{
    font-family:"Barlow Condensed",sans-serif;
    font-size:27px;
    font-weight:900;
    letter-spacing:.04em;
    white-space:nowrap;
}

.logo span{
    color:var(--accent);
}

nav{
    display:flex;
    align-items:center;
    gap:32px;
}

nav a{
    position:relative;

    font-size:11px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;

    color:#aaa;

    transition:
        color .2s ease;
}

nav a::after{
    content:"";

    position:absolute;
    left:0;
    right:0;
    bottom:-8px;

    height:1px;

    background:var(--accent);

    transform:scaleX(0);
    transform-origin:center;

    transition:transform .2s ease;
}

nav a:hover{
    color:#fff;
}

nav a:hover::after{
    transform:scaleX(1);
}

.menu{
    display:none;

    border:0;
    background:none;
    color:#fff;

    font-size:25px;
    cursor:pointer;
}


/* =========================================================
   MAIN
========================================================= */

/*
   Footer is fixed and therefore removed from normal document
   flow. Bottom padding prevents the last content from being
   hidden underneath it.
*/

main{
    padding-top:74px;
    padding-bottom:94px;
}


/* =========================================================
   COMMON
========================================================= */

.section{
    width:min(1180px,88vw);
    margin:0 auto;
    padding:110px 0;
}

.kicker{
    margin:0 0 14px;

    color:var(--accent);

    font-size:10px;
    font-weight:800;
    letter-spacing:.22em;
    text-transform:uppercase;
}

h2{
    margin:0 0 55px;

    font-family:"Barlow Condensed",sans-serif;
    font-size:clamp(48px,7vw,90px);
    font-weight:800;
    line-height:.9;
    letter-spacing:-.02em;
}

h2 em{
    color:var(--accent);
    font-style:normal;
}

h3{
    margin:0 0 14px;

    font-family:"Barlow Condensed",sans-serif;
    font-size:32px;
    font-weight:700;
    line-height:1;
}

p{
    color:#aaa;
}


/* =========================================================
   HERO
========================================================= */

.hero{
    min-height:calc(100vh - 74px);

    width:min(1180px,88vw);
    margin:auto;

    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:70px;
}

.hero-image{
    display:flex;
    align-items:center;
    justify-content:center;
}

.hero-image img{
    width:min(600px,100%);
    filter:drop-shadow(0 0 30px rgba(241,100,34,.08));
}

.hero-content{
    max-width:520px;
}

.hero-content .kicker{
    margin-bottom:25px;
}

.intro{
    max-width:450px;

    margin:0 0 35px;

    color:#ddd;

    font-family:"Barlow Condensed",sans-serif;
    font-size:clamp(25px,3vw,40px);
    font-weight:500;
    line-height:1.05;
}

.buttons{
    display:flex;
    gap:12px;
}

.button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:120px;
    padding:13px 24px;

    background:var(--accent);
    border:1px solid var(--accent);

    color:#080808;

    font-size:10px;
    font-weight:800;
    letter-spacing:.18em;

    transition:
        background .2s ease,
        color .2s ease,
        transform .2s ease;
}

.button:hover{
    transform:translateY(-2px);
    background:var(--accent-bright);
}

.button.outline{
    background:transparent;
    color:#ddd;
}

.button.outline:hover{
    background:var(--accent);
    color:#080808;
}


/* =========================================================
   MUSIC / RELEASES
========================================================= */

.release{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
    gap:65px;

    align-items:center;
}

.image-slot{
    min-width:0;
}

.release p{
    max-width:470px;
}

.tag{
    margin-bottom:12px;

    color:var(--accent) !important;

    font-size:9px;
    font-weight:800;
    letter-spacing:.18em;
}

.text-link{
    display:inline-block;

    margin-top:15px;

    color:#ddd;

    font-size:10px;
    font-weight:800;
    letter-spacing:.16em;

    border-bottom:1px solid var(--accent);

    padding-bottom:5px;

    transition:
        color .2s ease,
        transform .2s ease;
}

.text-link:hover{
    color:var(--accent);
    transform:translateX(4px);
}


/* =========================================================
   BAND
========================================================= */

.band-content{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
    gap:65px;
    align-items:center;
}

.band-photo{
    overflow:hidden;
    background:#111;
}

.band-photo img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    transition:transform .6s ease;
}

.band-photo:hover img{
    transform:scale(1.025);
}

.copy{
    max-width:500px;
}

.copy .large{
    margin-top:0;

    color:#eee;

    font-family:"Barlow Condensed",sans-serif;
    font-size:clamp(24px,3vw,38px);
    line-height:1.05;
}

.copy p{
    font-size:14px;
}


/* =========================================================
   MEMBERS
========================================================= */

.members{
    margin-top:110px;
}

.members-heading{
    border-bottom:1px solid #252525;
    margin-bottom:30px;
}

.members-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.member{
    position:relative;

    padding:0;

    border:0;
    background:none;

    text-align:left;
    cursor:pointer;
}

.member-photo{
    overflow:hidden;
    aspect-ratio:1/1;

    background:#111;
}

.member-photo img{
    width:100%;
    height:100%;
    object-fit:cover;

    filter:grayscale(100%);
    opacity:.8;

    transition:
        filter .3s ease,
        opacity .3s ease,
        transform .5s ease;
}

.member:hover .member-photo img,
.member.active .member-photo img{
    filter:grayscale(0);
    opacity:1;
    transform:scale(1.04);
}

.member h3{
    margin:12px 0 0;

    font-family:"Barlow Condensed",sans-serif;
    font-size:25px;
    letter-spacing:.04em;
}

.member h3.kicker{
    margin:12px 0 0;
    font-size:10px;
}


/* MEMBER INFO */

.member-info{
    min-height:180px;

    margin-top:28px;

    border-top:1px solid var(--line);
    border-bottom:1px solid #222;

    padding:30px 0;

    transition:
        opacity .3s ease,
        transform .3s ease;
}

.member-info-placeholder{
    display:flex;
    flex-direction:column;
    justify-content:center;

    min-height:120px;
}

.member-info-placeholder span{
    color:var(--accent);

    font-size:10px;
    font-weight:800;
    letter-spacing:.2em;
}

.member-info-placeholder p{
    margin:5px 0 0;
    font-size:12px;
}

.member-details{
    display:grid;
    grid-template-columns:220px 1fr;
    gap:40px;
}

.member-details h3{
    color:#fff;
}

.member-details .role{
    color:var(--accent);

    font-size:10px;
    font-weight:800;
    letter-spacing:.18em;
}

.member-details p{
    margin:0 0 10px;
    font-size:13px;
}


/* =========================================================
   SHOWS
========================================================= */

.shows{
    border-top:1px solid #252525;
}

.shows article{
    position:relative;

    display:grid;
    grid-template-columns:120px 1fr 1fr 30px;
    align-items:center;
    gap:20px;

    min-height:90px;

    border-bottom:1px solid #252525;

    transition:
        background .2s ease,
        padding .2s ease;
}

.shows article:hover{
    background:#0c0c0c;
    padding-left:10px;
}

.shows span{
    color:var(--accent);

    font-size:9px;
    font-weight:800;
    letter-spacing:.15em;
}

.shows strong{
    font-family:"Barlow Condensed",sans-serif;
    font-size:23px;
}

.shows small{
    color:#666;
}

.shows b{
    color:var(--accent);
    font-size:18px;
}


/* =========================================================
   CONTACT
========================================================= */

.contact{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;

    align-items:end;

    padding-bottom:120px;
}

.contact-box{
    padding-left:30px;
    border-left:1px solid var(--accent);
}

.contact-box p{
    margin-top:0;
}

.contact-box a{
    display:block;

    margin:20px 0;

    color:#eee;

    font-family:"Barlow Condensed",sans-serif;
    font-size:27px;

    transition:color .2s ease;
}

.contact-box a:hover{
    color:var(--accent);
}

.contact-box small{
    color:#555;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-size:9px;
}


/* =========================================================
   FIXED FOOTER
========================================================= */

footer{
    position:fixed;

    left:0;
    right:0;
    bottom:0;

    width:100%;

    z-index:19;

    background:rgba(7,7,7,.97);
    backdrop-filter:blur(10px);

    border-top:1px solid var(--accent);
}


/*
   The first row is intentionally positioned so the
   MEDIA LINKS label sits directly over the orange line.
*/

.footer-inner{
    width:min(1180px,88vw);
    margin:auto;
}

.footer-social{
    position:relative;

    min-height:52px;

    display:flex;
    align-items:center;

    gap:18px;

    padding-left:0;
}


/* The label visually cuts through the orange line */

.footer-label{
    position:relative;
    z-index:2;

    display:inline-flex;
    align-items:center;

    margin-right:3px;
    padding:0 10px 0 0;

    background:rgba(7,7,7,.97);

    color:#777;

    font-size:9px;
    font-weight:800;
    letter-spacing:.18em;

    white-space:nowrap;
}


/*
   Small technical line continues behind the label.
*/

.footer-social::before{
    content:"";

    position:absolute;

    left:0;
    right:0;

    top:0;

    height:1px;

    background:var(--accent);

    opacity:.9;
}


/* Social icons */

.footer-social a{
    position:relative;
    z-index:2;

    width:32px;
    height:32px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:rgba(7,7,7,.97);

    color:#777;

    font-size:18px;

    transition:
        transform .2s ease,
        opacity .2s ease;
}

.footer-social a:hover{
    transform:translateY(-3px);
    opacity:.95;
}


/*
   Original platform colors.
   They do NOT change on hover.
*/

.footer-social .fa-youtube{
    color:#ff0000;
}

.footer-social .fa-spotify{
    color:#1DB954;
}

.footer-social .fa-facebook{
    color:#1877F2;
}

.footer-social .fa-instagram{
    color:#E4405F;
}


/* Bounce animation */

.footer-social a:hover i{
    animation:social-bounce .45s ease;
}

@keyframes social-bounce{

    0%{
        transform:translateY(0);
    }

    30%{
        transform:translateY(-7px);
    }

    50%{
        transform:translateY(1px);
    }

    70%{
        transform:translateY(-3px);
    }

    100%{
        transform:translateY(0);
    }

}


/* Bottom technical information */

.footer-info{
    min-height:32px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    border-top:1px solid #202020;

    color:#505050;

    font-size:8px;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:850px){

    header{
        padding:0 5vw;
    }

    nav{
        display:none;

        position:absolute;

        top:74px;
        left:0;
        right:0;

        flex-direction:column;
        align-items:flex-start;

        gap:0;

        padding:10px 5vw 20px;

        background:rgba(7,7,7,.98);

        border-bottom:1px solid var(--line);
    }

    nav.open{
        display:flex;
    }

    nav a{
        width:100%;
        padding:12px 0;
    }

    .menu{
        display:block;
    }


    .hero{
        grid-template-columns:1fr;
        gap:40px;

        min-height:auto;

        padding-top:80px;
        padding-bottom:70px;
    }

    .hero-image{
        order:0;
    }

    .hero-content{
        order:1;
    }


    .section{
        width:90vw;
        padding:80px 0;
    }

    h2{
        margin-bottom:38px;
    }


    .release{
        grid-template-columns:1fr;
        gap:35px;
    }


    .band-content{
        grid-template-columns:1fr;
        gap:35px;
    }

    .band-photo img{
        aspect-ratio:16/10;
    }


    .members{
        margin-top:80px;
    }

    .members-grid{
        grid-template-columns:repeat(2,1fr);
        gap:20px 14px;
    }

    .member-details{
        grid-template-columns:1fr;
        gap:10px;
    }


    .shows article{
        grid-template-columns:80px 1fr 25px;
        gap:12px;
        padding:15px 0;
    }

    .shows article small{
        grid-column:2;
    }

    .shows article b{
        grid-column:3;
        grid-row:1 / span 2;
    }


    .contact{
        grid-template-columns:1fr;
        gap:45px;
        padding-bottom:80px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:600px){

    main{
        padding-bottom:82px;
    }


    .logo{
        font-size:23px;
    }


    .hero{
        padding-top:60px;
    }

    .hero-image img{
        width:85%;
    }


    .buttons{
        width:100%;
    }

    .button{
        flex:1;
    }


    .section{
        padding:65px 0;
    }


    /*
       Footer becomes one compact technical strip.
    */

    .footer-inner{
        width:90vw;
    }

    .footer-social{
        min-height:48px;
        gap:10px;
    }

    .footer-label{
        font-size:8px;
        letter-spacing:.15em;
        padding-right:6px;
    }

    .footer-social a{
        width:29px;
        height:29px;
        font-size:16px;
    }

    .footer-info{
        min-height:28px;
        font-size:7px;
    }

    .footer-info span:last-child{
        display:none;
    }

}


/* =========================================================
   SAFE AREA — MOBILE DEVICES
========================================================= */

@supports(padding-bottom:env(safe-area-inset-bottom)){

    footer{
        padding-bottom:env(safe-area-inset-bottom);
    }

    @media(max-width:600px){

        main{
            padding-bottom:
                calc(82px + env(safe-area-inset-bottom));
        }

    }

}