:root{
    --bg:#f6f9fc;
    --text:#1f2937;
    --muted:#6b7280;
    --accent:#2563eb;
    --header-blue:#1d4ed8;
}
@media (prefers-color-scheme: dark) {
    :root {
        --bg:#000000;
        --text:#9cafc9;
        --muted:#6b7280;
        --accent:#112c67;
        --header-blue:#133591;
    }
}
*{box-sizing:border-box; margin:0; padding:0}
body{
    font-family:'Quicksand', sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.85;
}
.top-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--blue);
    padding: 15px 30px;
    z-index: 1000;
}

.top-bar a {
    color: white;
    text-decoration: none;
    font-family: "Great Vibes", cursive;
    font-size: 36px;
    cursor: default;
}
.top-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    background:var(--accent);
    padding:20px 40px;
    box-sizing:border-box;
    z-index:1000;
}
.top-header a{
    color:white;
    font-family:'Great Vibes', cursive;
    font-size:34px;
    font-weight:400;
    text-decoration:none;
}
header{
    max-width:none;
    margin-top:90px;
    text-align:center;
    padding:200px 20px;
    position:relative;
    color:white;
    background:url('images/join-background.png');
    background-size:cover;
    background-position:center;
}
header::before {
    content:'';
    position:absolute;
    inset:0;
    background-color:rgba(0,0,0,0.45);
    z-index:0;
}
header h1, header p, .btn-join{
    position:relative;
    z-index:1;
}
header h1{
    font-size:98px;
    font-family: "Quicksand", sans-serif;
    font-weight: 700;
    color:var(--header-blue);
    margin-bottom:18px;
}
header p{
    font-size:30px;
    font-family:'Josefin Sans', sans-serif;
    font-weight:600;
    margin-bottom:40px;
}
.btn-join{
    background:white;
    color:var(--header-blue);
    font-family:'Arial', sans-serif;
    font-weight:600;
    padding:18px 40px;
    border-radius:12px;
    text-decoration:none;
    display:inline-block;
    font-size:20px;
}

.section{
    max-width:1000px;
    margin:120px auto;
    padding:0 20px;
    border-bottom:1px solid var(--border, #e5e7eb);
    padding-bottom:80px;
}
.section:last-of-type{
    border-bottom:none;
}
.section h2{
    font-family:'Josefin Sans', sans-serif;
    text-align:center;
    font-size:40px;
    font-weight:600;
    margin-bottom:32px;
    color:var(--header-blue);
}
.section p{
    font-size:20px;
    font-family:'Quicksand', sans-serif;
    color:var(--text);
    margin-bottom:28px;
}
footer{
    text-align:center;
    margin-top:120px;
    color:var(--muted);
    font-size:18px;
    padding-bottom:80px;
}
footer a {
    color:var(--muted);
    text-decoration:none;
    cursor:default;
}

.error-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 150px 20px 50px 20px; /* ensures space below top bar */
    text-align: center;
}

.error-container h1 {
    font-family: "Ariel", sans-serif;
    font-size: 100px;
    color: var(--blue);
    margin-bottom: 20px;
}

.error-container h2 {
    font-family: "Josefin Sans", sans-serif;
    font-size: 32px;
    margin-bottom: 30px;
}

.error-container p {
    font-size: 18px;
    color: var(--muted);
    max-width: 700px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.error-container a {
    display: inline-block;
    text-decoration: none;
    background: var(--blue);
    color: white;
    font-family: "Poppins", sans-serif;
    font-weight: bold;
    padding: 12px 28px;
    border-radius: 8px;
    font-size: 18px;
}

.error-container a:hover {
    background: var(--light-blue);
}

@media (max-width: 600px) {
    .error-container h1 {
        font-size: 60px;
    }
    .error-container h2 {
        font-size: 24px;
    }
}

