@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=Cormorant+Garamond:wght@400;600&display=swap');

:root{
    --bg:#090909;
    --panel:#111;
    --red:#8b0000;
    --red2:#c1121f;
    --text:#f4eaea;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    background:
    radial-gradient(circle at top, rgba(139,0,0,.25), transparent 35%),
    #090909;
    color:var(--text);
    font-family:'Cormorant Garamond', serif;
}

/* HEADER */

.banner{
    background:
    linear-gradient(
    45deg,
    #8b0000 25%,
    #000 25%,
    #000 50%,
    #8b0000 50%,
    #8b0000 75%,
    #000 75%);
    background-size:50px 50px;

    padding:40px 15px;
    border-bottom:3px solid var(--red2);
}

.banner-inner{
    max-width:1000px;
    margin:auto;
    text-align:center;

    background:rgba(0,0,0,.5);
    padding:25px;

    border:1px solid rgba(255,255,255,.15);

    box-shadow:0 0 30px rgba(139,0,0,.45);
}

.banner h1{
    font-family:'Cinzel', serif;
    font-size:clamp(2rem,7vw,4rem);
    margin:0;
    letter-spacing:3px;
}

.banner p{
    margin:10px 0 0;
    letter-spacing:4px;
    text-transform:lowercase;
}

/* LAYOUT */

.container{
    max-width:1100px;
    margin:auto;
    padding:25px 15px 60px;
}

.page{
    max-width:1000px;
    margin:auto;
    padding:30px 15px;
}

.intro{
    text-align:center;
    margin:20px auto 40px;
    max-width:700px;
}

/* HOME PAGE CARDS */

.nav-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:20px;
}

.card{
    background:var(--panel);
    border:2px solid var(--red);
    border-radius:18px;
    overflow:hidden;

    text-decoration:none;
    color:white;

    transition:.3s;

    box-shadow:0 0 15px rgba(139,0,0,.2);
}

.card:hover{
    transform:translateY(-5px);
    box-shadow:0 0 25px rgba(193,18,31,.5);
}

.card-banner{
    height:180px;

    background-repeat:no-repeat;
    background-position:center;
    background-size:cover;

    display:flex;
    align-items:center;
    justify-content:center;

    font-family:'Cinzel', serif;
    letter-spacing:2px;
}

.card h2{
    margin:0;
    padding:18px;
    text-align:center;
    font-family:'Cinzel', serif;
}

/* CARD BANNER IMAGES */

.artbanner{
    background-image:
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
    url('images/artbanner.jpg');
}

.writingbanner{
    background-image:
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
    url('images/writingbanner.jpg');
}

.commissionbanner{
    background-image:
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
    url('images/commissionbanner.jpg');
}

/* PANELS */

.panel{
    background:#111;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    padding:25px;
    margin-bottom:20px;
}

/* GALLERY */

.gallery{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,220px));
    justify-content:center;
    gap:20px;
}

.gallery a{
    display:block;
}

.gallery-img{
    width:100%;
    height:280px;

    object-fit:cover;

    border:2px solid var(--red);
    border-radius:12px;

    transition:.3s;
    cursor:pointer;
}

.gallery-img:hover{
    transform:scale(1.05);
    box-shadow:0 0 20px rgba(193,18,31,.4);
}

/* LIGHTBOX */

.lightbox{
    position:fixed;
    inset:0;

    background:rgba(0,0,0,.95);

    display:flex;
    justify-content:center;
    align-items:center;

    opacity:0;
    visibility:hidden;

    transition:.3s;

    z-index:9999;
}

.lightbox:target{
    opacity:1;
    visibility:visible;
}

.lightbox-img{
    max-width:90vw;
    max-height:90vh;

    border:3px solid var(--red);
    border-radius:12px;

    box-shadow:0 0 30px rgba(193,18,31,.5);
}

.close{
    position:absolute;
    top:20px;
    right:30px;

    font-size:3rem;
    color:white;
    text-decoration:none;

    transition:.2s;
}

.close:hover{
    color:var(--red2);
}

/* BUTTONS */

.back{
    display:inline-block;
    margin-bottom:20px;

    color:#fff;
    text-decoration:none;

    border:1px solid var(--red);
    padding:10px 15px;

    border-radius:10px;
}

/* PLACEHOLDER */

.placeholder{
    height:250px;

    border:2px dashed rgba(255,255,255,.15);
    border-radius:15px;

    display:flex;
    align-items:center;
    justify-content:center;
}

/* MOBILE */

@media (max-width:600px){

    .card-banner{
        height:140px;
    }

    .banner{
        padding:25px 10px;
    }

    .page,
    .container{
        padding-left:12px;
        padding-right:12px;
    }
}