/* ====== BASE & VARIABLES ====== */
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap");

@font-face {
    font-family: 'NerkoOne';
    src: url('../fonts/NerkoOne-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

:root {
    --bright-orange: #ffe2c3;
    --light-orange: #FFC37E;
    --orange: #EF8D34;
    --half-orange: #EF8D3440;
    --shadow: 5px 5px 0 #0004;
    --inset-shadow: inset 0 3px 0 0 rgba(255, 255, 255, 0.2);
    --radius: 18px;
    --radius-pill: 100px;
    --radius-small: 10px;
    --content-max: 1920px;
    --section-side-padding: clamp(20px, 4vw, 80px);
    --section-max-width: clamp(320px, calc(100vw - 2 * var(--section-side-padding)), var(--content-max));
    --bg: #282828;
}

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

body {
    position: relative;
    font-family: 'Nunito', sans-serif;
    color: #fff;
    background-color: var(--bg);
    overflow-x: hidden;
    z-index: 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'NerkoOne', sans-serif;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

strong {
    background-color: var(--orange);
    padding: 0 5px;
    border-radius: var(--radius-small);
    outline: 2px solid var(--light-orange);
    margin: 0 5px;
    box-shadow: var(--shadow);
    color: #fff;
    text-shadow: none!important;

}

em {
    font-style: italic;
    opacity: 0.9;
}

ul {
    list-style: none;
    padding-left: 0;
    display: flex;
    flex-direction: column;
}

li {
    padding-left: 1.25em;
    position: relative;
}

li::before {
    content: "-";
    position: absolute;
    left: 0;
    font-weight: bold;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--content-max);
    height: 100vh;
    filter: blur(5px);
    background-image: url("../images/bg.png");
    background-size: min(100%, var(--content-max)) auto;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    z-index: -1;
}

section {
    padding-inline: var(--section-side-padding);
    gap: 30px;
}

section > * {
    max-width: var(--section-max-width);
    margin: 0 auto;
}

body > section:nth-of-type(2) {
    margin-top: -80px !important;
}

h2 {
    font-size: clamp(28px, 4vw, 48px);
    color: #fff;
    text-align: center;
    -webkit-text-stroke: 5px #000;
    paint-order: stroke fill;
    text-shadow: var(--shadow);
}

/* ====== LAYOUT ====== */

.bg-pattern {
    background-color: #fff;
    background-image: url('../images/pattern.png');
    background-size: 300px 400px;
    background-repeat: repeat;
    padding: 80px var(--section-side-padding);
}

.bg-pattern :is(p, li, dd, dt, span, a, button, input, textarea, label) {
    color: #000;
    text-shadow: none;
    -webkit-text-stroke: 0;
    text-stroke: 0;
}

.bg-pattern strong {
    box-shadow: none!important;
}

/* Shared style for “info” sections (wiki invite/disclaimer, project closing, etc.) */
.info-section {
    padding-block: 60px;
    text-align: center;
}

.info-section p {
    max-width: 780px;
    margin: 20px auto;
    font-size: clamp(18px, 2vw, 28px);
}


.spiked {
    -webkit-mask-image: url('../images/spike.svg'), url('../images/spike-bottom.svg'), linear-gradient(black, black);
    -webkit-mask-size: 40px auto, 40px auto, 100% 100%;
    mask-size: 40px auto, 40px auto, 100% 100%;
    -webkit-mask-position: top left, bottom left, center;
    -webkit-mask-repeat: repeat-x, repeat-x, no-repeat;
    -webkit-mask-composite: destination-out, destination-out, source-over;
    mask-composite: exclude;
}

.btn {
    font-family: 'NerkoOne', cursive;
    color: #000;
    background-color: var(--light-orange);
    box-shadow: var(--shadow), var(--inset-shadow);
    padding: clamp(6px, 2vw, 10px) clamp(12px, 2vw, 26px);
    outline: solid 2px #fff;
    text-decoration: none;
    font-size: clamp(14px, 2vw, 24px);
    transition: all 0.2s;
    border-radius: var(--radius-small);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn:hover, .btn.active {
    background-color: var(--orange);
    color: #fff;
    text-shadow: 0 0 5px #0006;
}

.btn.disabled {
    background-color: #b0b0b0;
    color: #3c3c3c;
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
    border-color: #888;
}

.creator-signature {
    font-family: 'NerkoOne', cursive!important;
    font-size: clamp(18px, 2vw, 28px)!important;
    color: var(--light-orange)!important;
    text-shadow: var(--shadow)!important;
    -webkit-text-stroke: 2px #000!important;
    paint-order: stroke fill!important;
}

/* ====== BACK TO TOP BUTTON ====== */
#back-to-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 6vh;
    cursor: pointer;
    transform: translateY(120%);
    opacity: 0;
    z-index: 999;
    transition: transform 0.3s, opacity 0.3s;
}
#back-to-top.show {
    transform: translateY(0);
    opacity: 1;
}

#back-to-top:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
}


.content-img {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 8px 0 32px;
    width: 100%;
}

.content-img:has(> img:only-child) {
    grid-template-columns: 1fr;
}

.content-img img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* When a modal/popup is active, prevent the body from scrolling */
.body--modal-open {
    overflow: hidden;
}
