:root {
    color-scheme: dark;
    --color-bg: #0a0a08;
    --color-bg-2: #151410;
    --color-paper: #eee6d2;
    --color-text: #f5f0e6;
    --color-muted: #b9ad95;
    --color-line: rgba(245, 240, 230, 0.2);
    --color-acid: #d6ff2d;
    --color-red: #ff352e;
    --color-rust: #9f4229;
    --color-ink: #050505;
    --shadow-hard: 0 20px 0 rgba(0, 0, 0, 0.34);
    --space-1: 0.35rem;
    --space-2: 0.65rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2.25rem;
    --space-6: 3.5rem;
    --max-width: 1180px;
    --content-max-width: 1180px;
    --text-max-width: 760px;
    --h1-size: clamp(2.2rem, 4.6vw, 4rem);
    --h2-size: clamp(1.55rem, 2.7vw, 2.55rem);
    --h3-size: clamp(1.12rem, 1.8vw, 1.65rem);
    --hero-h1-size: clamp(2.25rem, 4.8vw, 4.2rem);
    --home-h1-size: clamp(2.4rem, 6vw, 4.6rem);
    --block-heading-size: clamp(1.45rem, 2.4vw, 2.3rem);
    --intro-text-size: clamp(1rem, 1.25vw, 1.18rem);
    --body-text-size: 1rem;
    --card-text-size: 0.98rem;
    --button-font-size: 0.82rem;
    --button-padding-y: 0.58rem;
    --button-padding-x: 0.86rem;
    --card-min-width: 18rem;
    --corner-radius: 6px;
    --home-section-padding: 1rem;
    --home-hero-max-width: 1020px;
    --card-gap: 1.2rem;
    --hero-padding-desktop: 3.6rem;
    --section-gap: 2.8rem;
    --admin-card-padding: 1.1rem;
    --admin-grid-gap: 1rem;
    --preview-image-height: 13rem;
    --admin-preview-size: 6.25rem;
    --desktop-section-scale: 0.88;
    --desktop-card-padding: 1rem;
    --font-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: Impact, Haettenschweiler, "Arial Narrow Bold", var(--font-base);
}

* {
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-base);
    line-height: 1.55;
    text-rendering: optimizeLegibility;
}

body {
    overflow-x: hidden;
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 12% 8%, rgba(255, 53, 46, 0.22), transparent 28rem),
        linear-gradient(135deg, rgba(214, 255, 45, 0.08), transparent 34%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.03) 1px, transparent 1px, transparent 7px),
        var(--color-bg);
}

body {
    font-size: var(--body-text-size);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.22;
    background-image:
        linear-gradient(90deg, transparent 0 88%, rgba(245, 240, 230, 0.09) 88% 89%, transparent 89%),
        linear-gradient(0deg, transparent 0 92%, rgba(245, 240, 230, 0.06) 92% 93%, transparent 93%);
    background-size: 28px 28px;
}

a {
    color: inherit;
}

img {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3,
p {
    margin: 0;
}

h1,
h2,
h3 {
    letter-spacing: 0;
    text-transform: uppercase;
}

.visually-hidden,
.skip-link:not(:focus) {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.skip-link:focus {
    position: fixed;
    left: var(--space-3);
    top: var(--space-3);
    z-index: 50;
    padding: var(--space-2) var(--space-3);
    background: var(--color-acid);
    color: var(--color-ink);
    font-weight: 900;
}

.site-header,
.site-main,
.site-footer {
    width: min(100%, var(--max-width));
    margin-inline: auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 30;
    padding: var(--space-3);
    border-bottom: 2px solid var(--color-line);
    background: rgba(10, 10, 8, 0.92);
    backdrop-filter: blur(10px);
}

.maintenance-notice {
    margin: calc(var(--space-3) * -1) calc(var(--space-3) * -1) var(--space-3);
    border-bottom: 2px solid var(--color-red);
    background: var(--color-acid);
    color: var(--color-ink);
    padding: var(--space-2) var(--space-3);
    font-size: 0.86rem;
    font-weight: 950;
    text-transform: uppercase;
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.brand {
    display: inline-grid;
    gap: 0.08rem;
    text-decoration: none;
}

.brand__name {
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 7vw, 3.1rem);
    line-height: 0.9;
    text-transform: uppercase;
}

.brand__claim {
    width: fit-content;
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.12rem 0.35rem;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
}

.brand__second-claim {
    color: var(--color-muted);
    font-size: 0.68rem;
    font-weight: 850;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.nav-toggle {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.36rem;
    width: 3rem;
    height: 3rem;
    border: 2px solid var(--color-text);
    background: var(--color-red);
    color: var(--color-text);
    cursor: pointer;
    box-shadow: 5px 5px 0 var(--color-ink);
}

.nav-toggle__bar {
    width: 1.35rem;
    height: 0.16rem;
    background: currentColor;
    transition: transform 160ms ease, opacity 160ms ease;
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(1) {
    transform: translateY(0.52rem) rotate(45deg);
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(2) {
    opacity: 0;
}

.nav-toggle.is-open .nav-toggle__bar:nth-child(3) {
    transform: translateY(-0.52rem) rotate(-45deg);
}

.site-nav {
    display: none;
    grid-template-columns: 1fr;
    gap: var(--space-2);
    padding-top: var(--space-3);
}

.site-nav.is-open {
    display: grid;
}

.site-nav a {
    border: 1px solid var(--color-line);
    background: rgba(21, 20, 16, 0.92);
    color: var(--color-muted);
    padding: 0.72rem 0.8rem;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.78rem;
    font-weight: 900;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a.is-active {
    border-color: var(--color-acid);
    background: var(--color-acid);
    color: var(--color-ink);
}

.site-main {
    padding: var(--space-3) var(--space-3) var(--space-6);
}

.hero {
    position: relative;
    display: grid;
    gap: var(--space-4);
    min-height: 72vh;
    padding: var(--space-5) 0;
    border-bottom: 5px solid var(--color-acid);
}

.hero__mark {
    position: absolute;
    right: 0;
    top: var(--space-3);
    color: rgba(245, 240, 230, 0.08);
    font-family: var(--font-display);
    font-size: clamp(6rem, 28vw, 18rem);
    line-height: 0.72;
    pointer-events: none;
}

.hero__body {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-3);
    align-content: center;
}

.kicker,
.stamp {
    width: fit-content;
    background: var(--color-red);
    color: var(--color-text);
    padding: 0.22rem 0.48rem;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
}

.hero h1 {
    max-width: 10ch;
    font-family: var(--font-display);
    font-size: clamp(3.4rem, 18vw, 10rem);
    line-height: 0.82;
}

.lead {
    max-width: 760px;
    color: var(--color-paper);
    font-size: clamp(1.05rem, 2.5vw, 1.55rem);
    font-weight: 720;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.hero__poster {
    display: grid;
    gap: var(--space-2);
    align-content: end;
}

.hero__poster span {
    width: fit-content;
    background: var(--color-paper);
    color: var(--color-ink);
    padding: 0.3rem 0.55rem;
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 7vw, 4.5rem);
    line-height: 0.86;
    text-transform: uppercase;
    transform: rotate(-1deg);
}

.hero__poster span:nth-child(2) {
    background: var(--color-acid);
    transform: rotate(1.4deg);
}

.button,
.footer-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    min-height: 2.75rem;
    border: 2px solid var(--color-text);
    background: var(--color-red);
    color: var(--color-text);
    padding: var(--button-padding-y) var(--button-padding-x);
    text-decoration: none;
    text-align: center;
    text-transform: uppercase;
    font: inherit;
    font-size: var(--button-font-size);
    font-weight: 950;
    line-height: 1.1;
    box-shadow: 5px 5px 0 var(--color-ink);
    cursor: pointer;
    overflow-wrap: anywhere;
}

.button:hover,
.button:focus-visible,
.footer-link:hover,
.footer-link:focus-visible {
    background: var(--color-acid);
    color: var(--color-ink);
}

.button--ghost {
    background: transparent;
}

.button--soon {
    border-color: var(--color-acid);
    background: var(--color-bg-2);
    color: var(--color-acid);
    cursor: default;
    pointer-events: auto;
}

.button--disabled,
.footer-link--muted {
    border-color: rgba(245, 240, 230, 0.22);
    background: rgba(245, 240, 230, 0.06);
    color: var(--color-muted);
    box-shadow: none;
    cursor: not-allowed;
}

.coming-soon-box,
.content-card,
.gallery-card,
.admin-placeholder {
    border: 2px solid var(--color-line);
    background:
        linear-gradient(145deg, rgba(245, 240, 230, 0.08), transparent 40%),
        var(--color-bg-2);
    box-shadow: var(--shadow-hard);
}

.coming-soon-box {
    display: grid;
    gap: var(--space-2);
    margin: var(--space-4) 0;
    padding: var(--space-4);
}

.coming-soon-box--big {
    min-height: 18rem;
    align-content: center;
}

.content-section {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.content-section--stack {
    max-width: 860px;
}

.content-card {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-4);
}

.content-card--loud {
    border-color: var(--color-red);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.18), transparent 55%),
        var(--color-bg-2);
}

.content-card h2,
.coming-soon-box h2,
.gallery-card h2,
.admin-placeholder h2 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 8vw, 4rem);
    line-height: 0.9;
}

.content-card p,
.content-card .copy,
.coming-soon-box p,
.gallery-card p,
.admin-placeholder p {
    color: var(--color-muted);
}

.copy {
    display: grid;
    gap: 0.75rem;
    max-width: 72ch;
}

.lead.copy {
    display: grid;
    gap: 0.65rem;
}

.home-hero {
    position: relative;
    display: grid;
    gap: var(--space-5);
    min-height: 78vh;
    align-items: end;
    overflow: hidden;
    border-bottom: 6px solid var(--color-acid);
    padding: var(--space-5) 0 var(--space-4);
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: var(--space-3) 0 auto;
    height: 44%;
    border: 2px solid rgba(245, 240, 230, 0.14);
    background:
        linear-gradient(120deg, rgba(255, 53, 46, 0.28), transparent 52%),
        repeating-linear-gradient(-12deg, rgba(245, 240, 230, 0.08) 0 2px, transparent 2px 18px);
    transform: rotate(-1.5deg);
}

.home-hero__noise {
    position: absolute;
    right: -0.08em;
    top: 0.08em;
    color: rgba(245, 240, 230, 0.08);
    font-family: var(--font-display);
    font-size: clamp(8rem, 38vw, 24rem);
    line-height: 0.7;
    pointer-events: none;
}

.home-hero__body {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-3);
}

.home-hero h1 {
    max-width: 9ch;
    font-family: var(--font-display);
    font-size: var(--home-h1-size);
    line-height: 0.78;
}

.home-claim {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    max-width: 760px;
}

.home-claim span,
.home-sticker-wall span,
.home-game-slots span {
    width: fit-content;
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.2rem 0.48rem;
    font-size: 0.78rem;
    font-weight: 950;
    text-transform: uppercase;
    transform: rotate(-1deg);
}

.home-claim span:nth-child(even),
.home-sticker-wall span:nth-child(even),
.home-game-slots span:nth-child(even) {
    background: var(--color-red);
    color: var(--color-text);
    transform: rotate(1.2deg);
}

.home-hero__actions,
.home-shop__actions,
.home-strip-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.home-hero__poster {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-2);
    align-content: end;
}

.home-hero__poster span {
    width: fit-content;
    max-width: 11ch;
    background: var(--color-paper);
    color: var(--color-ink);
    padding: 0.32rem 0.58rem;
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 5rem);
    line-height: 0.86;
    text-transform: uppercase;
    box-shadow: 7px 7px 0 var(--color-ink);
    transform: rotate(-2deg);
}

.home-hero__poster span:nth-child(2) {
    background: var(--color-red);
    color: var(--color-text);
    transform: rotate(1.5deg);
}

.home-hero__poster span:nth-child(3) {
    background: var(--color-acid);
}

.home-section,
.home-split,
.home-shop {
    padding-top: var(--space-5);
}

.home-section__head {
    display: grid;
    gap: var(--space-2);
    max-width: 860px;
    margin-bottom: var(--space-3);
}

.home-section__head h2,
.home-poster-card h2,
.home-shop h2 {
    font-family: var(--font-display);
    font-size: clamp(2.6rem, 12vw, 7rem);
    line-height: 0.84;
}

.home-section__head p,
.home-poster-card p,
.home-shop p {
    color: var(--color-muted);
}

.home-zine-copy {
    display: grid;
    gap: var(--space-3);
    border-block: 2px solid var(--color-line);
    padding: var(--space-4) 0;
}

.home-zine-copy p {
    color: var(--color-paper);
    font-size: clamp(1.15rem, 3vw, 1.9rem);
    font-weight: 760;
    line-height: 1.24;
}

.home-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}

.home-poster-card,
.home-age-note,
.home-shop {
    display: grid;
    gap: var(--space-3);
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(245, 240, 230, 0.08), transparent 44%),
        var(--color-bg-2);
    box-shadow: var(--shadow-hard);
    padding: var(--space-4);
}

.home-poster-card--red {
    border-color: var(--color-red);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.22), transparent 55%),
        var(--color-bg-2);
}

.home-poster-card--intim {
    border-color: var(--color-acid);
    background:
        linear-gradient(135deg, rgba(214, 255, 45, 0.13), transparent 48%),
        var(--color-bg-2);
}

.home-sticker-wall,
.home-game-slots {
    display: grid;
    min-height: 18rem;
    align-content: center;
    justify-items: start;
    gap: var(--space-2);
    border: 2px dashed var(--color-line);
    background:
        repeating-linear-gradient(90deg, rgba(245, 240, 230, 0.07) 0 1px, transparent 1px 16px),
        repeating-linear-gradient(0deg, rgba(245, 240, 230, 0.04) 0 1px, transparent 1px 22px),
        var(--color-ink);
    padding: var(--space-4);
}

.home-sticker-wall span,
.home-game-slots span {
    font-family: var(--font-display);
    font-size: clamp(2rem, 10vw, 5.8rem);
    line-height: 0.86;
}

.home-preview-grid,
.home-figure-strip {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-3);
}

.home-preview-card,
.home-figure-teaser {
    display: grid;
    overflow: hidden;
    border: 2px solid var(--color-line);
    background: var(--color-bg-2);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.34);
}

.home-preview-card__image,
.home-figure-teaser__image {
    display: grid;
    min-height: 15rem;
    place-items: center;
    border-bottom: 2px solid var(--color-line);
    background:
        linear-gradient(45deg, rgba(214, 255, 45, 0.18), transparent 34%),
        repeating-linear-gradient(-18deg, rgba(245, 240, 230, 0.07) 0 1px, transparent 1px 14px),
        var(--color-rust);
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 13vw, 6rem);
    text-transform: uppercase;
}

.home-preview-card__image img,
.home-figure-teaser__image img {
    width: 100%;
    height: 100%;
    min-height: 15rem;
    object-fit: cover;
}

.home-preview-card__body,
.home-figure-teaser > div:not(.home-figure-teaser__image) {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
}

.home-preview-card h3,
.home-figure-teaser h3 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 4.4rem);
    line-height: 0.88;
    text-transform: uppercase;
}

.home-preview-card p,
.home-figure-teaser p {
    color: var(--color-muted);
}

.home-age-note {
    align-content: center;
    border-color: var(--color-red);
}

.home-age-note > span {
    color: var(--color-red);
    font-family: var(--font-display);
    font-size: clamp(6rem, 30vw, 14rem);
    line-height: 0.72;
}

.home-age-note p {
    color: var(--color-paper);
    font-weight: 800;
}

.home-shop {
    margin-top: var(--space-5);
    border-color: var(--color-acid);
    background:
        linear-gradient(135deg, rgba(214, 255, 45, 0.16), transparent 48%),
        var(--color-bg-2);
}

.history-hero {
    display: grid;
    gap: var(--space-4);
    min-height: 64vh;
    align-items: end;
    border-bottom: 5px solid var(--color-acid);
    padding: var(--space-5) 0 var(--space-4);
}

.history-hero__body {
    display: grid;
    gap: var(--space-3);
}

.history-hero h1 {
    max-width: 10ch;
    font-family: var(--font-display);
    font-size: clamp(4rem, 19vw, 11rem);
    line-height: 0.78;
}

.history-subtitle {
    width: fit-content;
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.22rem 0.5rem;
    font-weight: 950;
    text-transform: uppercase;
}

.history-status-note {
    max-width: 760px;
    border-left: 5px solid var(--color-acid);
    background: rgba(214, 255, 45, 0.08);
    color: var(--color-paper);
    padding: var(--space-2) var(--space-3);
    font-weight: 800;
}

.history-legend {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-content: end;
}

.history-legend__item {
    border: 2px solid var(--color-line);
    background: var(--color-bg-2);
    padding: 0.4rem 0.64rem;
    font-size: 0.78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.history-legend__item--fact {
    border-color: var(--color-acid);
    color: var(--color-acid);
}

.history-legend__item--interpretation {
    border-color: var(--color-paper);
    color: var(--color-paper);
}

.history-legend__item--myth {
    border-color: var(--color-red);
    color: var(--color-red);
}

.history-legend__item--note {
    border-style: dashed;
}

.history-intro-grid,
.history-chapters,
.history-sources {
    display: grid;
    gap: var(--space-3);
    padding-top: var(--space-5);
}

.history-intro-grid article,
.history-chapter,
.source-card {
    border: 2px solid var(--color-line);
    background:
        linear-gradient(145deg, rgba(245, 240, 230, 0.08), transparent 42%),
        var(--color-bg-2);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.34);
    padding: var(--space-4);
}

.history-intro-grid article {
    display: grid;
    gap: var(--space-2);
}

.history-intro-grid h2,
.history-chapter h2,
.history-section-head h2 {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 10vw, 5.8rem);
    line-height: 0.86;
}

.history-intro-grid p,
.history-chapter .copy,
.history-section-head p,
.source-card p {
    color: var(--color-muted);
}

.history-chapter {
    position: relative;
    display: grid;
    gap: var(--space-3);
    overflow: hidden;
}

.history-chapter__number {
    color: rgba(245, 240, 230, 0.13);
    font-family: var(--font-display);
    font-size: clamp(5rem, 22vw, 12rem);
    line-height: 0.72;
}

.history-chapter__content {
    display: grid;
    gap: var(--space-2);
}

.history-chapter--fact {
    border-color: var(--color-acid);
}

.history-chapter--interpretation {
    border-color: rgba(245, 240, 230, 0.42);
}

.history-chapter--myth {
    border-color: var(--color-red);
    background:
        repeating-linear-gradient(-18deg, rgba(255, 53, 46, 0.1) 0 2px, transparent 2px 20px),
        var(--color-bg-2);
}

.history-chapter--note {
    border-style: dashed;
}

.history-chapter--quote {
    border-left-width: 8px;
}

.history-section-head {
    display: grid;
    gap: var(--space-2);
    max-width: 820px;
}

.source-list {
    display: grid;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: sources;
}

.source-list li {
    counter-increment: sources;
}

.source-card {
    display: grid;
    gap: var(--space-2);
}

.source-card::before {
    content: counter(sources, decimal-leading-zero);
    color: var(--color-acid);
    font-family: var(--font-display);
    font-size: 2.4rem;
    line-height: 0.85;
}

.source-card h3 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 8vw, 4rem);
    line-height: 0.9;
}

.source-card__author {
    color: var(--color-paper) !important;
    font-weight: 850;
}

.civil-hero {
    display: grid;
    gap: var(--space-4);
    min-height: 66vh;
    align-items: end;
    border-bottom: 5px solid var(--color-red);
    padding: var(--space-5) 0 var(--space-4);
}

.civil-hero__body {
    display: grid;
    gap: var(--space-3);
}

.civil-hero h1 {
    max-width: 10ch;
    font-family: var(--font-display);
    font-size: clamp(4rem, 18vw, 10.5rem);
    line-height: 0.78;
}

.civil-subtitle {
    width: fit-content;
    background: var(--color-red);
    color: var(--color-text);
    padding: 0.22rem 0.5rem;
    font-weight: 950;
    text-transform: uppercase;
}

.civil-status-note {
    max-width: 760px;
    border-left: 5px solid var(--color-red);
    background: rgba(255, 53, 46, 0.1);
    color: var(--color-paper);
    padding: var(--space-2) var(--space-3);
    font-weight: 800;
}

.civil-manifest {
    display: grid;
    gap: var(--space-2);
    align-content: end;
}

.civil-manifest span {
    width: fit-content;
    background: var(--color-paper);
    color: var(--color-ink);
    padding: 0.3rem 0.55rem;
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 5.4rem);
    line-height: 0.86;
    text-transform: uppercase;
    box-shadow: 7px 7px 0 var(--color-ink);
    transform: rotate(-1.5deg);
}

.civil-manifest span:nth-child(2) {
    background: var(--color-acid);
    transform: rotate(1deg);
}

.civil-manifest span:nth-child(3) {
    background: var(--color-red);
    color: var(--color-text);
}

.civil-principles,
.civil-chapters {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-5);
}

.civil-principles article,
.civil-block,
.civil-footer-note {
    border: 2px solid var(--color-line);
    background:
        linear-gradient(145deg, rgba(245, 240, 230, 0.08), transparent 42%),
        var(--color-bg-2);
    box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.34);
    padding: var(--space-4);
}

.civil-principles article,
.civil-footer-note {
    display: grid;
    gap: var(--space-2);
}

.civil-principles h2,
.civil-block h2,
.civil-footer-note h2 {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 10vw, 5.8rem);
    line-height: 0.86;
}

.civil-principles p,
.civil-block .copy,
.civil-footer-note p {
    color: var(--color-muted);
}

.civil-block {
    display: grid;
    gap: var(--space-3);
}

.civil-block__marker {
    display: grid;
    gap: var(--space-1);
    align-content: start;
}

.civil-block__marker span {
    color: rgba(245, 240, 230, 0.15);
    font-family: var(--font-display);
    font-size: clamp(4.2rem, 20vw, 12rem);
    line-height: 0.72;
}

.civil-block__marker small {
    width: fit-content;
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.18rem 0.42rem;
    font-weight: 950;
    text-transform: uppercase;
}

.civil-block__content {
    display: grid;
    gap: var(--space-2);
}

.civil-block--quote {
    border-color: var(--color-acid);
}

.civil-block--quote .copy {
    color: var(--color-paper);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 7vw, 4rem);
    line-height: 0.92;
    text-transform: uppercase;
}

.civil-block--warning {
    border-color: var(--color-red);
    background:
        repeating-linear-gradient(-18deg, rgba(255, 53, 46, 0.11) 0 2px, transparent 2px 20px),
        var(--color-bg-2);
}

.civil-block--warning .civil-block__marker small {
    background: var(--color-red);
    color: var(--color-text);
}

.civil-block--example {
    border-style: dashed;
    border-color: var(--color-acid);
}

.civil-block--note {
    border-left-width: 8px;
}

.civil-footer-note {
    margin-top: var(--space-5);
    border-color: var(--color-acid);
    background:
        linear-gradient(135deg, rgba(214, 255, 45, 0.13), transparent 48%),
        var(--color-bg-2);
}

.legal-page {
    display: grid;
    gap: var(--space-4);
    max-width: 920px;
    margin-inline: auto;
    padding-top: var(--space-5);
}

.legal-head {
    display: grid;
    gap: var(--space-3);
    border-bottom: 3px solid var(--color-line);
    padding-bottom: var(--space-4);
}

.legal-head h1 {
    font-family: var(--font-display);
    font-size: clamp(3.2rem, 14vw, 8rem);
    line-height: 0.82;
}

.legal-subtitle,
.legal-status {
    max-width: 760px;
    color: var(--color-muted);
}

.legal-status {
    border-left: 4px solid var(--color-acid);
    background: rgba(214, 255, 45, 0.08);
    padding: var(--space-2) var(--space-3);
    color: var(--color-paper);
    font-weight: 800;
}

.legal-document {
    display: grid;
    gap: var(--space-3);
    border: 2px solid var(--color-line);
    background: rgba(21, 20, 16, 0.88);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.28);
    padding: var(--space-4);
}

.legal-document h2 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 8vw, 4.6rem);
    line-height: 0.9;
}

.legal-document .copy {
    color: var(--color-paper);
    font-size: 1rem;
    line-height: 1.75;
    white-space: normal;
}

.legal-contact {
    border-top: 1px solid var(--color-line);
    color: var(--color-muted);
    padding-top: var(--space-3);
}

.legal-contact a {
    color: var(--color-acid);
    font-weight: 850;
}

.legal-blocks {
    display: grid;
    gap: var(--space-3);
}

.legal-document--block {
    box-shadow: none;
}

.gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.gallery-hero {
    min-height: 58vh;
}

.gallery-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding-top: var(--space-4);
}

.gallery-filters .button.is-active {
    background: var(--color-acid);
    color: var(--color-ink);
}

.gallery-grid--public {
    align-items: start;
}

.gallery-card {
    position: relative;
    overflow: hidden;
}

.gallery-card--large {
    min-height: 100%;
}

.gallery-card__image {
    display: grid;
    min-height: 13rem;
    place-items: center;
    border-bottom: 2px solid var(--color-line);
    background:
        linear-gradient(45deg, rgba(214, 255, 45, 0.22), transparent 32%),
        repeating-linear-gradient(-20deg, rgba(245, 240, 230, 0.08) 0 1px, transparent 1px 14px),
        var(--color-rust);
    font-family: var(--font-display);
    font-size: 3rem;
    text-transform: uppercase;
}

.gallery-card__image img {
    width: 100%;
    height: 100%;
    min-height: 13rem;
    object-fit: cover;
}

.gallery-card__body {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
}

.gallery-card--large .gallery-card__image,
.gallery-card--large .gallery-card__image img {
    min-height: clamp(18rem, 58vw, 34rem);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

.tag-list span {
    border: 1px solid var(--color-line);
    background: rgba(245, 240, 230, 0.07);
    color: var(--color-paper);
    padding: 0.18rem 0.42rem;
    font-size: 0.76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.source-note {
    font-size: 0.86rem;
}

.is-adult-blur [data-age-content] {
    filter: blur(18px) grayscale(1);
    transform: scale(1.04);
}

.is-adult-blur.is-age-confirmed [data-age-content] {
    filter: none;
    transform: none;
}

.adult-overlay {
    position: absolute;
    inset: var(--space-3);
    z-index: 2;
    display: grid;
    align-content: center;
    gap: var(--space-3);
    border: 2px solid var(--color-red);
    background: rgba(5, 5, 5, 0.86);
    padding: var(--space-4);
}

.adult-overlay--page {
    position: fixed;
    inset: var(--space-3);
    z-index: 25;
    min-height: calc(100vh - (var(--space-3) * 2));
}

.adult-overlay p {
    max-width: 34rem;
    color: var(--color-text);
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 9vw, 4rem);
    line-height: 0.92;
    text-transform: uppercase;
}

.is-adult-blur.is-age-confirmed .adult-overlay {
    display: none;
}

.willy-age-gate {
    position: relative;
}

.willy-age-gate.is-locked [data-area-age-content] {
    filter: blur(16px) grayscale(0.6);
    max-height: 92vh;
    overflow: hidden;
    pointer-events: none;
    user-select: none;
}

.willy-age-gate.is-unlocked .adult-overlay--page {
    display: none;
}

.willy-hero {
    min-height: 66vh;
}

.willy-hero .hero__poster span {
    background: var(--color-paper);
}

.willy-hero .hero__poster span:nth-child(2) {
    background: var(--color-red);
    color: var(--color-text);
}

.willy-notice {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
    border: 2px solid var(--color-red);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.16), transparent 48%),
        var(--color-bg-2);
    padding: var(--space-4);
}

.willy-notice p {
    max-width: 900px;
    color: var(--color-paper);
    font-weight: 650;
}

.willy-gallery .gallery-card {
    border-color: rgba(255, 53, 46, 0.42);
}

.admin-assignment-list {
    display: grid;
    gap: var(--space-2);
    max-height: 34rem;
    overflow: auto;
    padding-right: var(--space-1);
}

.admin-assignment-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-2);
    align-items: start;
    border: 1px solid var(--color-line);
    background: rgba(5, 5, 5, 0.35);
    padding: var(--space-2);
}

.admin-assignment-row input {
    margin-top: 0.2rem;
    accent-color: var(--color-acid);
}

.admin-assignment-row strong {
    display: block;
    text-transform: uppercase;
}

.admin-assignment-row small {
    color: var(--color-muted);
}

[data-gallery-item].is-filtered-out {
    display: none;
}

.admin-gallery-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}

.admin-check-stack {
    display: grid;
    align-content: center;
    gap: var(--space-2);
}

.figures-hero {
    min-height: 62vh;
}

.figure-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding-top: var(--space-4);
}

.figure-card {
    display: grid;
    overflow: hidden;
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(214, 255, 45, 0.12), transparent 42%),
        var(--color-bg-2);
    box-shadow: var(--shadow-hard);
}

.figure-card__image {
    display: grid;
    min-height: clamp(20rem, 68vw, 38rem);
    place-items: center;
    border-bottom: 2px solid var(--color-line);
    background:
        radial-gradient(circle at 50% 40%, rgba(245, 240, 230, 0.16), transparent 28%),
        repeating-linear-gradient(90deg, rgba(245, 240, 230, 0.07) 0 1px, transparent 1px 18px),
        var(--color-ink);
    font-family: var(--font-display);
    font-size: clamp(3rem, 16vw, 8rem);
    text-transform: uppercase;
}

.figure-card__image img {
    width: 100%;
    height: 100%;
    min-height: clamp(20rem, 68vw, 38rem);
    object-fit: cover;
}

.figure-card__body {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
}

.figure-card__body h2 {
    font-family: var(--font-display);
    font-size: clamp(2.3rem, 10vw, 5.8rem);
    line-height: 0.88;
}

.figure-card__body p {
    color: var(--color-muted);
}

.price-note {
    width: fit-content;
    border: 2px solid var(--color-acid);
    background: rgba(214, 255, 45, 0.12);
    color: var(--color-acid) !important;
    padding: 0.28rem 0.55rem;
    font-weight: 950;
    text-transform: uppercase;
}

.stl-placeholder {
    display: grid;
    gap: var(--space-2);
    border: 1px dashed var(--color-acid);
    background: rgba(214, 255, 45, 0.08);
    padding: var(--space-3);
}

.stl-placeholder span {
    color: var(--color-acid);
    font-weight: 950;
    text-transform: uppercase;
}

.stl-placeholder a {
    color: var(--color-text);
    font-weight: 850;
}

.downloads-hero {
    min-height: 60vh;
}

.download-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding-top: var(--space-4);
}

.download-card {
    display: grid;
    overflow: hidden;
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.14), transparent 44%),
        var(--color-bg-2);
    box-shadow: var(--shadow-hard);
}

.download-card__preview {
    display: grid;
    min-height: 16rem;
    place-items: center;
    border-bottom: 2px solid var(--color-line);
    background:
        repeating-linear-gradient(-12deg, rgba(214, 255, 45, 0.16) 0 2px, transparent 2px 18px),
        var(--color-rust);
    color: var(--color-ink);
    font-family: var(--font-display);
    font-size: clamp(3rem, 18vw, 8rem);
    text-transform: uppercase;
}

.download-card__preview img {
    width: 100%;
    height: 100%;
    min-height: 16rem;
    object-fit: cover;
}

.download-card__body {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
}

.download-card__body h2 {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 10vw, 5rem);
    line-height: 0.9;
}

.download-card__body p {
    color: var(--color-muted);
}

.license-note {
    border-left: 4px solid var(--color-acid);
    background: rgba(214, 255, 45, 0.08);
    color: var(--color-paper) !important;
    padding: var(--space-2) var(--space-3);
    font-weight: 750;
}

.games-hero {
    min-height: 62vh;
}

.games-hero .hero__poster span:nth-child(2) {
    background: var(--color-red);
    color: var(--color-text);
}

.games-soon {
    border-color: var(--color-acid);
    background:
        repeating-linear-gradient(45deg, rgba(214, 255, 45, 0.09) 0 2px, transparent 2px 22px),
        var(--color-bg-2);
}

.game-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.game-card {
    display: grid;
    gap: var(--space-3);
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(214, 255, 45, 0.11), transparent 46%),
        var(--color-bg-2);
    box-shadow: var(--shadow-hard);
    padding: var(--space-4);
}

.game-title {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 10vw, 5.4rem);
    line-height: 0.9;
}

.game-description {
    color: var(--color-muted);
}

.game-action {
    margin-top: var(--space-2);
}

.admin-games-form {
    max-width: 860px;
}

.shop-hero {
    min-height: 64vh;
}

.shop-hero .hero__poster span:first-child,
.shop-hero .hero__poster span:nth-child(2) {
    background: var(--color-red);
    color: var(--color-text);
}

.shop-note {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.16), transparent 46%),
        var(--color-bg-2);
    padding: var(--space-4);
}

.shop-note h2 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 5rem);
    line-height: 0.9;
}

.shop-note p {
    max-width: 900px;
    color: var(--color-muted);
}

.shop-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.shop-card {
    display: grid;
    gap: var(--space-2);
    min-height: 16rem;
    align-content: space-between;
    border: 2px solid var(--color-line);
    background:
        repeating-linear-gradient(-18deg, rgba(245, 240, 230, 0.06) 0 1px, transparent 1px 18px),
        var(--color-bg-2);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.34);
    padding: var(--space-4);
}

.shop-card strong {
    color: rgba(245, 240, 230, 0.2);
    font-family: var(--font-display);
    font-size: clamp(4rem, 18vw, 9rem);
    line-height: 0.72;
}

.shop-card h2 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 4.7rem);
    line-height: 0.9;
}

.shop-card p {
    color: var(--color-muted);
}

.contact-hero {
    min-height: 60vh;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    padding-top: var(--space-4);
}

.contact-grid .content-card {
    min-height: 16rem;
}

.site-footer {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-3);
    border-top: 5px solid var(--color-red);
    background: rgba(5, 5, 5, 0.38);
}

.site-footer__brand {
    display: grid;
    gap: var(--space-2);
}

.site-footer__brand strong {
    font-family: var(--font-display);
    font-size: clamp(2rem, 9vw, 5rem);
    line-height: 0.85;
    text-transform: uppercase;
}

.footer-group {
    display: grid;
    align-content: start;
    gap: var(--space-2);
}

.footer-group h2 {
    color: var(--color-acid);
    font-size: 0.78rem;
}

.footer-group a:not(.footer-link) {
    color: var(--color-muted);
    text-decoration-color: var(--color-line);
    text-transform: uppercase;
    font-size: 0.86rem;
    font-weight: 800;
}

.footer-socials {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 2.4rem;
    border: 2px solid var(--color-line);
    background: rgba(245, 240, 230, 0.06);
    color: var(--color-paper);
    padding: 0.48rem 0.64rem;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 0.78rem;
    font-weight: 950;
    box-shadow: 4px 4px 0 var(--color-ink);
}

.footer-social-link:hover,
.footer-social-link:focus-visible {
    border-color: var(--color-acid);
    color: var(--color-acid);
}

.footer-social-link .icon {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
}

.site-footer__meta {
    color: var(--color-muted);
}

.admin-login,
.admin-dashboard {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-4) 0;
}

.admin-login {
    min-height: 70vh;
    align-items: start;
}

.admin-login__panel,
.admin-login__help,
.admin-note,
.admin-panel,
.admin-stat-card {
    border: 2px solid var(--color-line);
    background: rgba(21, 20, 16, 0.94);
    box-shadow: 10px 10px 0 rgba(0, 0, 0, 0.35);
}

.admin-login__panel,
.admin-login__help,
.admin-note,
.admin-panel {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
}

.admin-login__panel h1,
.admin-dashboard h1 {
    font-family: var(--font-display);
    font-size: clamp(3rem, 16vw, 8rem);
    line-height: 0.85;
}

.admin-form {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

.form-field {
    display: grid;
    gap: var(--space-1);
}

.form-field span {
    color: var(--color-acid);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.form-field small {
    color: var(--color-muted);
    font-size: 0.82rem;
}

.form-field input {
    width: 100%;
    border: 2px solid var(--color-line);
    background: var(--color-ink);
    color: var(--color-text);
    padding: 0.85rem;
    font: inherit;
}

.form-field input[type="file"] {
    min-height: 3.2rem;
    cursor: pointer;
}

.form-field input[type="file"]::file-selector-button {
    margin-right: var(--space-2);
    border: 0;
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.5rem 0.7rem;
    font-weight: 950;
    text-transform: uppercase;
    cursor: pointer;
}

.form-field textarea,
.form-field select {
    width: 100%;
    border: 2px solid var(--color-line);
    background: var(--color-ink);
    color: var(--color-text);
    padding: 0.85rem;
    font: inherit;
}

.form-field textarea {
    resize: vertical;
}

.form-field input:focus {
    border-color: var(--color-acid);
    outline: 2px solid transparent;
}

.form-field textarea:focus,
.form-field select:focus {
    border-color: var(--color-acid);
    outline: 2px solid transparent;
}

.form-check {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text);
    font-weight: 900;
    text-transform: uppercase;
}

.form-check input {
    width: 1.2rem;
    height: 1.2rem;
    accent-color: var(--color-acid);
}

.admin-form-grid {
    display: grid;
    gap: var(--space-3);
}

.admin-alert {
    border: 2px solid var(--color-line);
    padding: var(--space-3);
    font-weight: 800;
}

.admin-alert--error {
    border-color: var(--color-red);
    background: rgba(255, 53, 46, 0.14);
}

.admin-alert--success {
    border-color: var(--color-acid);
    background: rgba(214, 255, 45, 0.12);
    color: var(--color-acid);
}

.admin-login__help code,
.admin-link-row code {
    overflow-wrap: anywhere;
    border: 1px solid var(--color-line);
    background: var(--color-ink);
    color: var(--color-acid);
    padding: 0.18rem 0.32rem;
}

.admin-dashboard__head,
.admin-panel__head {
    display: grid;
    gap: var(--space-3);
}

.admin-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}

.admin-stat-card {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
}

.admin-stat-card span {
    color: var(--color-muted);
    font-size: 0.82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.admin-stat-card strong {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 10vw, 5rem);
    line-height: 0.9;
}

.status-pill {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    border: 1px solid var(--color-line);
    padding: 0.22rem 0.48rem;
    font-family: var(--font-base) !important;
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.status-pill--live {
    border-color: var(--color-acid);
    background: rgba(214, 255, 45, 0.16);
    color: var(--color-acid);
}

.status-pill--soon {
    border-color: #ffcc38;
    background: rgba(255, 204, 56, 0.14);
    color: #ffcc38;
}

.status-pill--hidden {
    border-color: var(--color-muted);
    background: rgba(185, 173, 149, 0.12);
    color: var(--color-muted);
}

.admin-muted {
    color: var(--color-muted);
}

.admin-link-list {
    display: grid;
    gap: var(--space-2);
}

.admin-link-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2);
    align-items: center;
    border-top: 1px solid var(--color-line);
    padding-top: var(--space-2);
}

.admin-pages {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-4) 0;
}

.admin-pages__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}

.admin-pages__sidebar,
.admin-pages__main {
    display: grid;
    gap: var(--space-3);
    align-content: start;
}

.admin-pages__sidebar {
    border: 2px solid var(--color-line);
    background: rgba(21, 20, 16, 0.94);
    padding: var(--space-3);
}

.admin-pages__sidebar h2 {
    color: var(--color-acid);
    font-size: 0.86rem;
}

.admin-page-list {
    display: grid;
    gap: var(--space-2);
}

.admin-page-list a {
    display: grid;
    gap: 0.12rem;
    border: 1px solid var(--color-line);
    background: rgba(5, 5, 5, 0.45);
    padding: var(--space-2);
    text-decoration: none;
}

.admin-page-list a:hover,
.admin-page-list a:focus-visible,
.admin-page-list a.is-active {
    border-color: var(--color-acid);
    background: rgba(214, 255, 45, 0.12);
}

.admin-page-list span {
    font-weight: 900;
    text-transform: uppercase;
}

.admin-page-list small,
.admin-block-row small {
    color: var(--color-muted);
}

.admin-block-list {
    display: grid;
    gap: var(--space-2);
}

.admin-block-row {
    display: grid;
    gap: var(--space-3);
    align-items: center;
    border-top: 1px solid var(--color-line);
    padding-top: var(--space-3);
    min-width: 0;
}

.admin-block-row strong {
    display: block;
    overflow-wrap: anywhere;
    text-transform: uppercase;
}

.admin-media-thumb {
    width: 5.2rem;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 2px solid var(--color-line);
    background: rgba(245, 240, 230, 0.06);
    color: var(--color-muted);
    font-size: 0.68rem;
    font-weight: 950;
    text-transform: uppercase;
    overflow: hidden;
}

.admin-media-thumb img,
.admin-media-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-media-preview {
    width: min(100%, 28rem);
    aspect-ratio: 16 / 10;
    border: 2px solid var(--color-line);
    background: rgba(245, 240, 230, 0.06);
    overflow: hidden;
}

.admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.admin-row-actions form {
    margin: 0;
}

@media (min-width: 700px) {
    .site-nav {
        display: flex;
        flex-wrap: wrap;
    }

    .nav-toggle {
        display: none;
    }

    .hero {
        grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
        align-items: end;
    }

    .home-hero {
        grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr);
    }

    .home-zine-copy {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-split {
        grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
        align-items: stretch;
    }

    .home-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-figure-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-poster-card {
        align-content: center;
    }

    .history-hero {
        grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
    }

    .history-intro-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .history-chapter {
        grid-template-columns: minmax(7rem, 0.22fr) minmax(0, 1fr);
        align-items: start;
    }

    .civil-hero {
        grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
    }

    .civil-principles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .civil-block {
        grid-template-columns: minmax(7rem, 0.22fr) minmax(0, 1fr);
        align-items: start;
    }

    .source-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .content-section,
    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gallery-card--large:nth-child(3n + 1) {
        grid-column: span 2;
    }

    .site-footer {
        grid-template-columns: 1.25fr repeat(2, minmax(0, 0.8fr));
    }

    .admin-login {
        grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.7fr);
    }

    .admin-dashboard__head,
    .admin-panel__head {
        grid-template-columns: 1fr auto;
        align-items: end;
    }

    .admin-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-link-row {
        grid-template-columns: minmax(10rem, 1fr) minmax(12rem, auto) repeat(3, auto);
    }

    .admin-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-pages__layout {
        grid-template-columns: minmax(14rem, 0.36fr) minmax(0, 1fr);
    }

    .admin-block-row {
        grid-template-columns: auto 1fr auto;
    }

    .admin-gallery-layout {
        grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.95fr);
    }

    .figure-card {
        grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
    }

    .download-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .game-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .figure-card:nth-child(even) {
        grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
    }

    .figure-card:nth-child(even) .figure-card__image {
        order: 2;
        border-left: 2px solid var(--color-line);
        border-bottom: 0;
    }

    .figure-card:not(:nth-child(even)) .figure-card__image {
        border-right: 2px solid var(--color-line);
        border-bottom: 0;
    }
}

@media (min-width: 1020px) {
    .site-header {
        padding-inline: var(--space-4);
    }

    .site-main {
        padding-inline: var(--space-4);
    }

    .site-nav {
        gap: var(--space-2);
    }

    .gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-preview-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .home-preview-card:first-child {
        grid-column: span 2;
    }

    .home-shop {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }

    .history-chapter:nth-child(odd) {
        margin-right: var(--space-5);
    }

    .history-chapter:nth-child(even) {
        margin-left: var(--space-5);
    }

    .civil-block:nth-child(odd) {
        margin-right: var(--space-5);
    }

    .civil-block:nth-child(even) {
        margin-left: var(--space-5);
    }

    .site-footer {
        grid-template-columns: 1.4fr repeat(4, minmax(0, 0.8fr));
    }

    .admin-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

/* Desktop/UX tuning: the site stays poster-like, but long text must behave. */
h1,
h2,
h3,
.brand__name,
.hero__poster span,
.gallery-card h2 {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

.hero,
.home-hero,
.history-hero,
.civil-hero,
.gallery-hero,
.figures-hero,
.downloads-hero,
.games-hero,
.shop-hero,
.contact-hero,
.willy-hero,
.wy-token-hero {
    min-height: clamp(28rem, 58vh, 42rem);
    padding-block: clamp(2.25rem, 6vw, 4.5rem);
}

.hero h1,
.history-hero h1,
.civil-hero h1,
.home-hero h1,
.wy-token-hero h1 {
    max-width: min(13ch, 100%);
    font-size: var(--hero-h1-size);
    line-height: 0.95;
}

.home-hero__noise,
.hero__mark {
    font-size: clamp(5rem, 18vw, 13rem);
}

.content-section h2,
.home-section-title,
.history-chapter h2,
.civil-block h2,
.gallery-card h2,
.download-card h2,
.shop-card h2,
.figure-card h2,
.game-card h2,
.wy-info-card h2,
.wy-request-panel h2,
.coming-soon-box h2,
.admin-pages h1,
.admin-panel h2 {
    font-size: clamp(1.35rem, 3vw, 2.55rem);
    line-height: 1;
}

.lead,
.home-hero__lead,
.history-hero .lead,
.civil-hero .lead {
    max-width: 62rem;
    font-size: clamp(1rem, 1.8vw, 1.28rem);
}

.site-nav a {
    white-space: normal;
    line-height: 1.1;
}

.gallery-card,
.download-card,
.shop-card,
.game-card,
.wy-info-card,
.wy-request-panel,
.wy-upload-guide {
    min-width: 0;
}

.wy-service-grid {
    display: grid;
    gap: var(--space-3);
    margin-block: var(--space-5);
}

.wy-info-card,
.wy-request-panel,
.wy-upload-guide,
.wy-template-help,
.wy-legal-note {
    border: 2px solid var(--color-line);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.1), transparent 44%),
        rgba(21, 20, 16, 0.88);
    padding: var(--space-4);
    box-shadow: 7px 7px 0 rgba(0, 0, 0, 0.28);
}

.wy-legal-note {
    display: grid;
    gap: var(--space-2);
    border-color: rgba(214, 255, 45, 0.46);
}

.wy-legal-note--danger {
    border-color: rgba(255, 53, 46, 0.82);
    background:
        linear-gradient(135deg, rgba(255, 53, 46, 0.18), transparent 44%),
        rgba(21, 20, 16, 0.94);
}

.wy-info-card {
    display: grid;
    gap: var(--space-2);
    align-content: start;
}

.wy-info-card--warning {
    border-color: rgba(255, 53, 46, 0.72);
}

.wy-request-panel {
    display: grid;
    gap: var(--space-4);
    margin-block: var(--space-5);
}

.wy-request-panel__head {
    display: grid;
    gap: var(--space-2);
    max-width: 58rem;
}

.wy-form {
    display: grid;
    gap: var(--space-3);
}

.wy-photo-note,
.wy-upload-guide {
    display: grid;
    gap: var(--space-2);
    background:
        repeating-linear-gradient(-2deg, rgba(245, 240, 230, 0.04), rgba(245, 240, 230, 0.04) 1px, transparent 1px, transparent 8px),
        rgba(238, 230, 210, 0.08);
}

.wy-upload-guide ol {
    margin: 0;
    padding-left: 1.35rem;
}

.wy-intimate-note {
    border-left: 5px solid var(--color-red);
    padding-left: var(--space-3);
    color: var(--color-paper);
    font-weight: 800;
}

.wy-admin-dl {
    display: grid;
    gap: var(--space-2);
    margin: var(--space-3) 0;
}

.wy-admin-dl dt {
    color: var(--color-acid);
    font-weight: 950;
    text-transform: uppercase;
}

.wy-admin-dl dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.copy-input {
    width: 100%;
    min-width: 0;
}

.wy-template-help {
    padding: var(--space-3);
}

.wy-workflow-form {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-3);
}

.admin-stat-card--attention {
    border-color: var(--color-red);
    box-shadow: 6px 6px 0 rgba(255, 53, 46, 0.32);
}

@media (min-width: 700px) {
    .wy-service-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .wy-admin-dl {
        grid-template-columns: minmax(8rem, 0.28fr) minmax(0, 1fr);
    }
}

@media (min-width: 1020px) {
    .site-header__inner {
        align-items: end;
    }

    .brand__name {
        font-size: clamp(1.45rem, 2.8vw, 2.6rem);
    }

    .site-nav {
        justify-content: flex-end;
        gap: 0.45rem;
    }

    .site-nav a {
        padding: 0.58rem 0.62rem;
        font-size: 0.72rem;
    }

    .home-hero {
        min-height: clamp(30rem, 62vh, 44rem);
    }

    .gallery-card--large:nth-child(3n + 1) {
        grid-column: span 1;
    }
}

/* Focused admin and desktop polish */
.is-admin .site-nav {
    align-items: stretch;
}

.site-nav__group {
    display: grid;
    gap: 0.35rem;
    border: 1px solid rgba(245, 240, 230, 0.12);
    background: rgba(5, 5, 5, 0.28);
    padding: 0.45rem;
}

.site-nav__group-label {
    color: var(--color-muted);
    font-size: 0.62rem;
    font-weight: 950;
    text-transform: uppercase;
}

.site-nav__group-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.site-nav__group-links a {
    padding: 0.48rem 0.55rem;
}

.admin-dashboard--home,
.admin-design {
    gap: var(--admin-grid-gap);
}

.admin-dashboard-status,
.admin-warning-list,
.admin-action-grid,
.admin-status-grid,
.admin-filter-bar {
    display: grid;
    gap: var(--admin-grid-gap);
}

.admin-action-grid {
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.admin-filter-bar {
    align-items: end;
    border: 1px solid var(--color-line);
    background: rgba(5, 5, 5, 0.28);
    padding: var(--space-3);
}

.admin-warning-card {
    border: 1px solid rgba(255, 53, 46, 0.52);
    background: rgba(255, 53, 46, 0.08);
    padding: var(--space-3);
}

.admin-warning-card summary {
    cursor: pointer;
    color: var(--color-paper);
    font-weight: 950;
    text-transform: uppercase;
}

.admin-warning-card p {
    margin-top: var(--space-2);
    color: var(--color-muted);
}

.admin-stat-card small {
    color: var(--color-muted);
    font-weight: 800;
}

.admin-panel,
.admin-stat-card,
.admin-note {
    padding: var(--admin-card-padding);
}

.form-field textarea {
    min-height: 9rem;
    line-height: 1.55;
}

.form-field textarea[rows="3"] {
    min-height: 6rem;
}

.form-field textarea[rows="4"],
.form-field textarea[rows="5"] {
    min-height: 8rem;
}

.copy,
.lead,
.home-zine-copy,
.legal-document,
.wy-request-panel__head {
    max-width: var(--text-max-width);
}

.content-section,
.home-section,
.history-sources,
.civil-chapters,
.download-grid,
.shop-grid,
.contact-grid {
    gap: var(--card-gap);
}

@media (min-width: 900px) {
    .site-header,
    .site-main,
    .site-footer {
        width: min(100%, var(--content-max-width));
    }

    .site-header {
        padding-block: 0.85rem;
    }

    .brand__name {
        font-size: clamp(1.35rem, 2.35vw, 2.25rem);
    }

    .brand__claim,
    .brand__second-claim {
        font-size: 0.62rem;
    }

    .hero,
    .home-hero,
    .history-hero,
    .civil-hero,
    .gallery-hero,
    .figures-hero,
    .downloads-hero,
    .games-hero,
    .shop-hero,
    .contact-hero,
    .willy-hero,
    .wy-token-hero {
        min-height: clamp(24rem, 46vh, 34rem);
        padding-block: var(--hero-padding-desktop);
    }

    .hero h1,
    .history-hero h1,
    .civil-hero h1,
    .home-hero h1,
    .wy-token-hero h1 {
        font-size: var(--h1-size);
        line-height: 0.95;
    }

    .content-section h2,
    .home-section-title,
    .home-section__head h2,
    .history-chapter h2,
    .civil-block h2,
    .gallery-card h2,
    .download-card h2,
    .shop-card h2,
    .figure-card h2,
    .game-card h2,
    .wy-info-card h2,
    .wy-request-panel h2,
    .coming-soon-box h2,
    .admin-pages h1,
    .admin-dashboard h1,
    .admin-panel h2 {
        font-size: var(--h2-size);
        line-height: 1.05;
    }

    h3,
    .content-card h3,
    .admin-stat-card strong {
        font-size: var(--h3-size);
    }

    .admin-stat-card strong {
        font-family: var(--font-base);
        line-height: 1.1;
    }

    .lead,
    .home-hero__lead,
    .history-hero .lead,
    .civil-hero .lead {
        max-width: var(--text-max-width);
        font-size: clamp(1rem, 1.35vw, 1.18rem);
    }

    .admin-grid {
        gap: var(--admin-grid-gap);
    }

    .admin-grid--overview {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .admin-filter-bar {
        grid-template-columns: minmax(10rem, 0.25fr) minmax(14rem, 1fr) auto;
    }

    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    }

    .admin-gallery-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 1200px) {
    .admin-gallery-layout {
        grid-template-columns: minmax(0, 1.05fr) minmax(24rem, 0.95fr);
    }

    .site-nav {
        gap: 0.55rem;
    }
}

/* Admin repair: readable action rows and buttons */
.is-admin .button,
.is-admin .footer-link {
    overflow-wrap: normal;
    word-break: keep-all;
    white-space: nowrap;
}

.is-admin .admin-panel h2,
.is-admin .admin-pages h1,
.is-admin .admin-dashboard h1 {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
}

.is-admin .admin-panel h2 {
    font-size: clamp(1.35rem, 2.2vw, 2.15rem);
    line-height: 1.05;
}

.is-admin .admin-pages h1,
.is-admin .admin-dashboard h1 {
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1;
}

.admin-link-row {
    grid-template-columns: minmax(0, 1fr);
}

.admin-link-row > .button,
.admin-link-row > form {
    justify-self: start;
}

.admin-link-row > form .button {
    width: auto;
}

.admin-row-actions {
    align-items: center;
}

@media (min-width: 700px) {
    .admin-link-row {
        grid-template-columns: minmax(9rem, 0.8fr) minmax(12rem, 1fr);
    }

    .admin-link-row > .button,
    .admin-link-row > form {
        grid-column: auto;
    }
}

@media (min-width: 1100px) {
    .admin-link-row {
        grid-template-columns: minmax(10rem, 0.8fr) minmax(14rem, 1fr);
    }
}

@media (min-width: 1200px) {
    .admin-gallery-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 1500px) {
    .admin-gallery-layout {
        grid-template-columns: minmax(0, 1fr) minmax(28rem, 0.82fr);
    }
}

/* Gallery UX repair: compact public grid, reliable zoom and calmer admin rows */
.gallery-grid--public {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: clamp(1rem, 2vw, 1.45rem);
}

.gallery-grid--public .gallery-card--large,
.gallery-grid--public .gallery-card--large:nth-child(3n + 1) {
    grid-column: auto;
}

.gallery-card__image {
    position: relative;
    aspect-ratio: 4 / 3;
    min-height: 0;
}

.gallery-card__image img,
.gallery-card--large .gallery-card__image img {
    min-height: 0;
}

.gallery-card--large .gallery-card__image {
    min-height: 0;
}

.gallery-card__zoom {
    position: absolute;
    right: 0.75rem;
    bottom: 0.75rem;
    z-index: 2;
    border: 2px solid var(--color-paper);
    background: rgba(5, 5, 5, 0.84);
    color: var(--color-paper);
    padding: 0.46rem 0.62rem;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 950;
    line-height: 1.1;
    text-transform: uppercase;
    box-shadow: 4px 4px 0 var(--color-ink);
    cursor: pointer;
}

.gallery-card__zoom:hover,
.gallery-card__zoom:focus-visible {
    background: var(--color-acid);
    color: var(--color-ink);
}

.gallery-lightbox[hidden] {
    display: none;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    background: rgba(5, 5, 5, 0.92);
}

.is-lightbox-open {
    overflow: hidden;
}

.gallery-lightbox__figure {
    width: min(100%, 74rem);
    max-height: 92vh;
    display: grid;
    gap: var(--space-2);
    margin: 0;
}

.gallery-lightbox__figure img {
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
    border: 2px solid var(--color-line);
    background: var(--color-ink);
    box-shadow: var(--shadow-hard);
}

.gallery-lightbox__figure figcaption {
    display: grid;
    gap: 0.2rem;
    color: var(--color-paper);
}

.gallery-lightbox__figure figcaption strong {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.4vw, 2rem);
    text-transform: uppercase;
}

.gallery-lightbox__figure figcaption span {
    max-width: var(--text-max-width);
    color: var(--color-muted);
}

.gallery-lightbox__close {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1001;
    border: 2px solid var(--color-paper);
    background: var(--color-red);
    color: var(--color-paper);
    padding: 0.58rem 0.78rem;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 950;
    text-transform: uppercase;
    box-shadow: 4px 4px 0 var(--color-ink);
    cursor: pointer;
}

.punkt-hero {
    min-height: auto;
}

.punkt-issue-grid,
.punkt-page-grid,
.punkt-meta-grid {
    display: grid;
    gap: var(--card-gap);
}

.punkt-issue-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.punkt-issue-card,
.punkt-page-thumb,
.punkt-issue-cover,
.punkt-reader__page {
    border: 2px solid var(--color-line);
    border-radius: var(--corner-radius);
    background: rgba(245, 240, 230, 0.06);
    box-shadow: var(--shadow-hard);
    overflow: hidden;
}

.punkt-issue-card {
    display: grid;
    align-content: start;
}

.punkt-issue-card__cover {
    display: block;
    background: var(--color-ink);
}

.punkt-issue-card__cover img,
.punkt-issue-cover img,
.punkt-page-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

.punkt-issue-card__body {
    display: grid;
    gap: var(--space-2);
    padding: var(--space-3);
}

.punkt-issue-card__body h2 {
    font-size: var(--h2-size);
}

.punkt-issue-hero {
    align-items: center;
}

.punkt-issue-cover {
    max-width: min(100%, 22rem);
    transform: rotate(-1deg);
}

.punkt-preview-strip,
.punkt-magazine-wall,
.punkt-reader {
    display: grid;
    gap: var(--space-4);
}

.punkt-page-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}

.punkt-page-thumb {
    display: grid;
    color: var(--color-text);
    text-decoration: none;
}

.punkt-page-thumb span {
    padding: 0.5rem 0.7rem;
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.punkt-reader__bar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: grid;
    gap: var(--space-2);
    align-items: center;
    border: 2px solid var(--color-line);
    background: rgba(5, 5, 5, 0.92);
    padding: var(--space-2);
}

.punkt-reader__bar h1 {
    margin: 0;
    font-size: clamp(1.2rem, 2.2vw, 2rem);
}

.punkt-reader__stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 50vh;
}

.punkt-reader__page {
    width: min(100%, 56rem);
    margin: 0;
    background: var(--color-ink);
}

.punkt-reader__page img {
    display: none;
    width: 100%;
    height: auto;
}

.punkt-reader__page img.is-active {
    display: block;
}

.punkt-reader__nav {
    position: absolute;
    top: 50%;
    z-index: 10;
    width: 2.6rem;
    aspect-ratio: 1;
    border: 2px solid var(--color-paper);
    background: rgba(5, 5, 5, 0.78);
    color: var(--color-paper);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
    cursor: pointer;
}

.punkt-reader__nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.punkt-reader__nav--prev {
    left: 0.35rem;
}

.punkt-reader__nav--next {
    right: 0.35rem;
}

.punkt-reader__meta {
    display: grid;
    gap: var(--space-2);
    color: var(--color-muted);
    font-weight: 900;
    text-transform: uppercase;
}

.punkt-reader__thumbs {
    display: flex;
    gap: var(--space-1);
    overflow-x: auto;
    padding-bottom: var(--space-1);
}

.punkt-reader__thumbs button {
    width: 4rem;
    flex: 0 0 auto;
    border: 2px solid var(--color-line);
    background: transparent;
    padding: 0;
    opacity: 0.58;
    cursor: pointer;
}

.punkt-reader__thumbs button.is-active {
    border-color: var(--color-acid);
    opacity: 1;
}

.punkt-reader__thumbs img {
    display: block;
    width: 100%;
    height: 4.8rem;
    object-fit: cover;
}

@media (min-width: 768px) {
    .punkt-reader__bar {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .punkt-page-grid {
        grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    }
}

@media (min-width: 1024px) {
    .punkt-issue-hero {
        grid-template-columns: minmax(14rem, 0.42fr) minmax(0, 1fr);
    }
}

.admin-alert--warning {
    display: grid;
    gap: var(--space-2);
    border-color: #ffcc38;
    background: rgba(255, 204, 56, 0.11);
    color: var(--color-paper);
}

.admin-alert--warning form {
    margin: 0;
}

.admin-subpanel {
    display: grid;
    gap: var(--space-2);
    border: 1px solid var(--color-line);
    background: rgba(245, 240, 230, 0.05);
    padding: var(--space-3);
}

.is-admin .button,
.is-admin .footer-link,
.admin-row-actions .button {
    min-width: max-content;
    overflow-wrap: normal;
    word-break: keep-all;
    white-space: nowrap;
}

.admin-block-row {
    grid-template-columns: 5.4rem minmax(0, 1fr);
}

.admin-block-row .admin-row-actions {
    grid-column: 1 / -1;
}

.admin-block-row small {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
}

@media (min-width: 900px) {
    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    }

    .admin-block-row {
        grid-template-columns: 5.4rem minmax(0, 1fr) auto;
    }

    .admin-block-row .admin-row-actions {
        grid-column: auto;
        justify-content: flex-end;
    }
}

@media (min-width: 1200px) {
    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(var(--card-min-width), 1fr));
    }

    .gallery-hero {
        min-height: auto;
    }
}

/* Desktop refinement and design-setting hooks */
.coming-soon-box,
.content-card,
.gallery-card,
.admin-placeholder,
.game-card,
.shop-card,
.download-card,
.figure-card,
.wy-info-card,
.wy-request-panel {
    border-radius: var(--corner-radius);
}

.lead,
.home-hero__lead,
.copy,
.content-card p,
.gallery-card p,
.download-card p,
.shop-card p,
.game-card p {
    font-size: var(--body-text-size);
}

.lead,
.home-hero__lead,
.hero .lead {
    font-size: var(--intro-text-size);
}

.gallery-card,
.download-card,
.shop-card,
.game-card,
.figure-card,
.content-card {
    font-size: var(--card-text-size);
}

.content-section h2,
.home-section-title,
.home-section__head h2,
.coming-soon-box h2 {
    font-size: var(--block-heading-size);
}

.home-section,
.content-section {
    padding-block: var(--home-section-padding);
}

@media (min-width: 768px) {
    .site-main,
    .site-header__inner,
    .site-nav,
    .site-footer {
        width: min(calc(100% - 2rem), var(--content-max-width));
    }

    .game-grid,
    .shop-grid,
    .downloads-grid,
    .content-section,
    .gallery-grid {
        gap: var(--card-gap);
    }
}

@media (min-width: 1024px) {
    .hero,
    .home-hero,
    .history-hero,
    .civil-hero,
    .gallery-hero,
    .figures-hero,
    .downloads-hero,
    .games-hero,
    .shop-hero,
    .contact-hero,
    .willy-hero,
    .wy-token-hero {
        min-height: auto;
        padding-block: var(--hero-padding-desktop);
    }

    .hero h1,
    .history-hero h1,
    .civil-hero h1,
    .wy-token-hero h1 {
        font-size: var(--hero-h1-size);
        line-height: 0.95;
    }

    .home-hero {
        width: min(100%, var(--home-hero-max-width));
        margin-inline: auto;
    }

    .home-hero h1 {
        font-size: var(--home-h1-size);
        line-height: 0.84;
    }

    .home-hero__body,
    .hero__body,
    .content-section,
    .legal-content,
    .contact-grid {
        max-width: var(--text-max-width);
    }

    .home-hero {
        grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.45fr);
    }
}

@media (min-width: 1280px) {
    .site-main {
        gap: var(--section-gap);
    }

    .home-hero {
        grid-template-columns: minmax(0, 0.95fr) minmax(16rem, 0.4fr);
    }
}

.page-text-small .copy,
.page-text-small .lead {
    font-size: 0.94rem;
}

.page-text-normal .copy,
.page-text-normal .lead {
    font-size: var(--body-text-size);
}

.page-text-large .copy,
.page-text-large .lead {
    font-size: 1.08rem;
}

.page-hero-hidden .hero {
    display: none;
}

.page-hero-compact .hero {
    min-height: auto;
    padding-block: clamp(1.25rem, 3vw, 2.2rem);
}

.page-blocks-compact .content-card,
.page-blocks-compact .content-section,
.page-blocks-compact .gallery-card,
.page-blocks-compact .game-card {
    padding: clamp(0.85rem, 1.4vw, 1.1rem);
}

.page-blocks-large .content-card,
.page-blocks-large .content-section {
    padding: clamp(1.5rem, 3vw, 2.25rem);
}

.page-blocks-text .content-section,
.page-blocks-text .content-card {
    max-width: var(--text-max-width);
}

.page-blocks-cards .content-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min-width)), 1fr));
    gap: var(--card-gap);
}

/* Final desktop cleanup: compact MacBook layout without touching the mobile flow. */
.site-header {
    border-bottom-color: var(--color-ink);
    overflow: visible;
}

.site-header__inner,
.site-nav,
.site-main,
.site-footer {
    min-width: 0;
}

.brand {
    min-width: 0;
}

.brand__name,
.brand__claim,
.brand__second-claim,
.site-nav a,
.button {
    overflow-wrap: anywhere;
}

.home-hero__poster span,
.hero__poster span,
.home-sticker-wall span,
.home-game-slots span {
    overflow-wrap: break-word;
}

.home-preview-card__image,
.gallery-card__image,
.download-card__image,
.figure-card__image,
.shop-card__image,
.article-card__image,
.punkt-issue-card__cover {
    max-height: var(--preview-image-height);
}

.home-preview-card__image img,
.gallery-card__image img,
.download-card__image img,
.figure-card__image img,
.shop-card__image img,
.article-card__image,
.punkt-issue-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-card__image,
.article-card__image {
    display: block;
    width: 100%;
    margin-bottom: var(--space-2);
    border: 2px solid var(--color-line);
    background: var(--color-ink);
}

.article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min-width)), 1fr));
    gap: var(--card-gap);
}

.article-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-detail-list {
    display: grid;
    grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr);
    gap: 0.55rem 1rem;
}

.admin-detail-list dt {
    color: var(--color-muted);
    font-weight: 900;
    text-transform: uppercase;
}

.admin-detail-list dd {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.admin-gallery-thumb,
.admin-media-preview,
.admin-image-preview {
    max-width: var(--admin-preview-size);
    max-height: var(--admin-preview-size);
}

@media (min-width: 768px) {
    .site-header {
        padding-block: 0.7rem;
    }

    .site-header__inner,
    .site-nav {
        width: min(100%, var(--content-max-width));
        margin-inline: auto;
    }

    .site-nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 0.45rem;
        padding-top: 0.7rem;
        border-top: 1px solid rgba(5, 5, 5, 0.85);
    }

    .site-nav a {
        min-width: 0;
        padding: 0.5rem 0.62rem;
        font-size: clamp(0.68rem, 0.86vw, 0.82rem);
        line-height: 1.05;
        white-space: nowrap;
    }

    .brand__name {
        font-size: clamp(1.35rem, 2.05vw, 2.05rem);
    }

    .brand__claim,
    .brand__second-claim {
        max-width: 34ch;
    }
}

@media (min-width: 1024px) {
    .site-header {
        padding: 0.75rem 1rem 0.82rem;
    }

    .site-main {
        padding-top: clamp(1rem, 1.4vw, 1.4rem);
    }

    .home-hero,
    .hero,
    .history-hero,
    .civil-hero,
    .gallery-hero,
    .figures-hero,
    .downloads-hero,
    .games-hero,
    .shop-hero,
    .contact-hero,
    .willy-hero,
    .wy-token-hero {
        padding-block: calc(var(--hero-padding-desktop) * var(--desktop-section-scale));
    }

    .home-section,
    .home-split,
    .home-shop,
    .content-section,
    .shop-grid,
    .gallery-grid,
    .game-grid,
    .download-grid,
    .figure-grid {
        gap: var(--card-gap);
    }

    .home-poster-card,
    .home-preview-card__body,
    .content-card,
    .gallery-card__body,
    .shop-card,
    .game-card,
    .download-card__body,
    .figure-card__body {
        padding: var(--desktop-card-padding);
    }

    .home-preview-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--card-min-width)), 1fr));
    }

    .home-preview-card:first-child {
        grid-column: auto;
    }

    .home-hero,
    .home-split,
    .home-sticker-wall,
    .home-game-slots,
    .hero__poster,
    .home-hero__poster {
        overflow: hidden;
    }

    .home-hero__poster span {
        max-width: 12ch;
        font-size: clamp(1.9rem, 4vw, 3.35rem);
        box-shadow: 5px 5px 0 var(--color-ink);
    }

    .hero__poster span {
        max-width: 10ch;
        font-size: clamp(1.55rem, 4vw, 3.2rem);
    }

    .home-sticker-wall span,
    .home-game-slots span {
        max-width: 100%;
        font-size: clamp(1.7rem, 4vw, 3.8rem);
    }

    .home-section__head h2,
    .home-poster-card h2,
    .home-shop h2 {
        font-size: var(--block-heading-size);
        line-height: 0.98;
    }

    .home-zine-copy p {
        font-size: var(--intro-text-size);
        line-height: 1.35;
    }

    .punkt-issue-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    }

    .punkt-issue-cover {
        max-width: min(100%, 18rem);
    }

    .punkt-reader__page {
        width: min(100%, 48rem);
    }
}

/* UI polish pass: thumbnails show the whole image, desktop sections breathe without bloat. */
:root {
    --space-xs: var(--space-1);
    --space-sm: var(--space-2);
    --space-md: var(--space-3);
    --space-lg: var(--space-4);
    --space-xl: var(--space-5);
    --space-2xl: var(--space-6);
    --thumb-bg: #050505;
    --thumb-border: rgba(245, 240, 230, 0.18);
}

p,
li,
.copy,
.lead {
    line-height: 1.55;
}

h1,
.home-hero h1 {
    line-height: 0.95;
}

h2,
.home-section__head h2,
.home-poster-card h2,
.home-shop h2 {
    line-height: 1.04;
}

h3,
.home-preview-card h3,
.home-figure-teaser h3 {
    line-height: 1.08;
}

.home-preview-card__image,
.home-figure-teaser__image,
.gallery-card__image,
.download-card__image,
.download-card__preview,
.figure-card__image,
.shop-card__image,
.article-card__image,
.punkt-issue-card__cover,
.punkt-issue-cover,
.punkt-page-thumb,
.admin-media-thumb,
.admin-media-preview,
.admin-gallery-thumb,
.admin-image-preview {
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(245, 240, 230, 0.04), transparent 55%),
        var(--thumb-bg);
    border-color: var(--thumb-border);
}

.home-preview-card__image,
.home-figure-teaser__image,
.gallery-card__image,
.download-card__image,
.download-card__preview,
.figure-card__image,
.shop-card__image,
.article-card__image {
    height: var(--preview-image-height);
    min-height: 0;
    aspect-ratio: 4 / 3;
}

.home-preview-card__image img,
.home-figure-teaser__image img,
.gallery-card__image img,
.gallery-card--large .gallery-card__image img,
.download-card__image img,
.download-card__preview img,
.figure-card__image img,
.shop-card__image img,
.article-card__image,
.article-card__image img,
.admin-media-thumb img,
.admin-media-preview img,
.admin-gallery-thumb img,
.admin-image-preview img,
.punkt-issue-card__cover img,
.punkt-issue-cover img,
.punkt-page-thumb img,
.punkt-reader__thumbs img {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
}

.gallery-card--large .gallery-card__image,
.gallery-card--large .gallery-card__image img {
    min-height: 0;
}

.punkt-issue-card__cover {
    aspect-ratio: 3 / 4;
    height: min(42vw, 15rem);
    padding: 0.45rem;
}

.punkt-page-thumb {
    aspect-ratio: 3 / 4;
    min-height: 0;
}

.punkt-page-thumb img {
    padding: 0.35rem;
}

.punkt-reader__thumbs button {
    height: 4.8rem;
}

.punkt-issue-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr));
}

.punkt-issue-card__body {
    padding: var(--space-md);
}

.punkt-issue-card__body h2 {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    line-height: 1.05;
}

.home-about,
.home-project,
.home-history-strip,
.home-section[aria-labelledby="home-art-title"],
.home-split--willy,
.home-shop {
    width: 100%;
}

.home-about,
.home-project {
    border-top: 2px solid var(--color-acid);
    padding-block: clamp(1.4rem, 3vw, 2.4rem);
}

.home-about .home-section__head,
.home-project .home-section__head,
.home-section[aria-labelledby="home-art-title"] .home-section__head {
    max-width: min(100%, 58rem);
}

.home-about .home-zine-copy,
.home-project .home-zine-copy {
    width: 100%;
    max-width: none;
    border-color: rgba(245, 240, 230, 0.14);
    padding-block: clamp(1rem, 2vw, 1.45rem);
}

.home-project__layout {
    display: grid;
    gap: var(--card-gap);
}

.home-sticker-wall--compact {
    min-height: 0;
    align-content: center;
    padding: clamp(1rem, 2vw, 1.35rem);
}

.home-sticker-wall--compact span {
    font-size: clamp(1.45rem, 4vw, 3rem);
}

.home-history-strip {
    align-items: stretch;
}

.home-history-strip .home-poster-card {
    min-height: 0;
}

.home-preview-grid,
.home-figure-strip {
    gap: var(--card-gap);
}

.home-preview-card,
.home-figure-teaser,
.gallery-card,
.shop-card,
.download-card,
.game-card,
.content-card {
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.32);
}

.home-preview-card h3,
.home-figure-teaser h3 {
    font-size: clamp(1.2rem, 2.2vw, 1.65rem);
}

.home-figure-strip {
    align-items: stretch;
}

.home-strip-actions {
    grid-column: 1 / -1;
}

.site-header {
    box-shadow: none;
}

.site-header,
.site-main,
.site-footer {
    max-width: min(var(--content-max-width), calc(100vw - 1.5rem));
}

.site-main {
    overflow: clip;
}

.site-footer {
    gap: clamp(0.8rem, 2vw, 1.2rem);
}

.footer-group {
    min-width: 0;
}

.footer-group a,
.footer-link,
.footer-social-link {
    overflow-wrap: break-word;
}

.is-admin .site-main {
    overflow: visible;
}

.is-admin .admin-panel,
.is-admin .admin-note,
.is-admin .admin-alert,
.is-admin .admin-stat-card,
.is-admin .content-card {
    padding: var(--admin-card-padding);
    box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.28);
}

.is-admin .admin-panel__head {
    gap: var(--space-sm);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid rgba(245, 240, 230, 0.12);
}

.is-admin .admin-grid,
.is-admin .admin-action-grid,
.is-admin .admin-form-grid,
.is-admin .admin-gallery-layout {
    gap: var(--admin-grid-gap);
}

.is-admin .admin-block-row,
.is-admin .admin-link-row {
    gap: var(--space-sm);
    padding-block: 0.75rem;
}

.is-admin .button,
.is-admin .footer-link,
.is-admin .admin-row-actions .button {
    min-height: 2.25rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.72rem;
}

.is-admin .form-field {
    gap: 0.35rem;
}

.is-admin input,
.is-admin textarea,
.is-admin select {
    min-height: 2.45rem;
}

.is-admin textarea {
    line-height: 1.45;
}

.is-admin .admin-login__panel h1 {
    font-size: clamp(2.2rem, 5vw, 3.4rem);
    line-height: 0.98;
}

.is-admin .admin-login__help h2 {
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
}

@media (min-width: 768px) {
    .home-about .home-zine-copy,
    .home-project .home-zine-copy {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-project__layout {
        grid-template-columns: minmax(0, 1fr) minmax(13rem, 0.34fr);
        align-items: stretch;
    }

    .home-history-strip {
        grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.42fr);
    }
}

@media (min-width: 1024px) {
    .home-section,
    .home-split,
    .home-shop {
        padding-top: clamp(1.35rem, 2.2vw, 2rem);
    }

    .home-hero {
        width: min(100%, 1040px);
    }

    .home-hero h1 {
        max-width: 12.5ch;
        font-size: clamp(2.35rem, 4.6vw, 4.15rem);
    }

    .home-hero__poster span {
        font-size: clamp(1.65rem, 3.45vw, 2.9rem);
    }

    .home-section__head h2,
    .home-poster-card h2,
    .home-shop h2 {
        font-size: clamp(1.55rem, 2.6vw, 2.45rem);
    }

    .home-about .home-zine-copy p,
    .home-project .home-zine-copy p {
        font-size: clamp(0.98rem, 1.18vw, 1.1rem);
        line-height: 1.58;
    }

    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    }

    .punkt-issue-grid {
        grid-template-columns: repeat(auto-fit, minmax(13rem, 15.5rem));
    }

    .punkt-magazine-wall,
    .punkt-preview-strip {
        gap: var(--space-lg);
    }

    .is-admin .admin-pages h1,
    .is-admin .admin-dashboard h1 {
        font-size: clamp(1.8rem, 3vw, 2.7rem);
    }

    .is-admin .admin-panel h2 {
        font-size: clamp(1.15rem, 1.7vw, 1.55rem);
    }

    .is-admin .admin-gallery-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Composition polish: header alignment, calmer reading rhythm, compact media cards. */
h1,
.hero h1,
.home-hero h1 {
    line-height: 1;
    overflow-wrap: anywhere;
}

.home-hero h1 {
    overflow-wrap: normal;
    word-break: normal;
}

h2,
.section-title,
.home-section__head h2,
.home-poster-card h2,
.home-shop h2 {
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.lead,
.hero .lead,
.home-hero .lead,
.large-copy,
.hero-copy {
    line-height: 1.38;
}

.home-zine-copy,
.content-block,
.gallery-card__body,
.home-preview-card__body {
    line-height: 1.55;
}

.site-header {
    width: 100%;
    max-width: none;
    padding: var(--space-sm) 0;
    border-bottom-color: rgba(0, 0, 0, 0.72);
}

.site-header__inner,
.site-nav,
.maintenance-notice {
    width: min(var(--content-max-width, 1180px), calc(100% - 2rem));
    margin-inline: auto;
    box-sizing: border-box;
}

.maintenance-notice {
    margin-block: calc(var(--space-sm) * -1) var(--space-sm);
}

.site-header__inner {
    min-width: 0;
}

.brand {
    min-width: 0;
}

.brand__name,
.brand__claim,
.brand__second-claim {
    overflow-wrap: anywhere;
}

.site-nav {
    padding-top: var(--space-sm);
}

.site-nav a {
    min-width: 0;
    text-align: center;
}

.home-hero {
    width: min(100%, var(--home-hero-max-width, 1020px));
}

.home-hero .lead {
    max-width: min(100%, 42rem);
    font-size: clamp(1rem, 1.45vw, 1.28rem);
}

.home-preview-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: var(--space-md);
}

.home-preview-card {
    min-width: 0;
}

.home-preview-card__body,
.home-figure-teaser > div:not(.home-figure-teaser__image) {
    min-width: 0;
    padding: clamp(0.85rem, 1.6vw, 1.1rem);
}

.home-preview-card__image,
.home-figure-teaser__image {
    min-height: 0;
    font-size: clamp(1.35rem, 4vw, 2.6rem);
}

.home-preview-card__image img,
.home-figure-teaser__image img {
    min-height: 0;
}

.home-figures-layout {
    display: grid;
    gap: var(--card-gap);
    padding-top: var(--space-md);
}

.home-figure-info {
    min-height: 0;
}

.home-figure-info p {
    max-width: 42rem;
}

.home-figure-strip {
    padding-top: 0;
}

.home-figure-teaser--empty {
    opacity: 0.96;
}

.gallery-grid--public {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: var(--space-md);
}

.gallery-card {
    min-width: 0;
}

.gallery-card__image {
    height: clamp(9rem, 18vw, 12.5rem);
    min-height: 0;
}

.gallery-card__image img {
    min-height: 0;
}

.gallery-card__body {
    padding: clamp(0.85rem, 1.45vw, 1.05rem);
}

.gallery-card h2,
.gallery-card h3,
.gallery-card__body h2,
.gallery-card__body h3 {
    font-size: clamp(1.15rem, 1.8vw, 1.6rem);
    line-height: 1.08;
}

.gallery-card--large .gallery-card__image,
.gallery-card--large .gallery-card__image img {
    min-height: 0;
}

.home-sticker-wall {
    min-height: clamp(12rem, 23vw, 16rem);
    gap: clamp(0.45rem, 1vw, 0.75rem);
}

.home-sticker-wall .home-sticker {
    display: inline-grid;
    place-items: center;
    max-width: 100%;
    color: inherit;
    text-decoration: none;
}

.home-sticker-wall span,
.home-sticker-wall .home-sticker {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 6vw, 4.2rem);
    line-height: 0.94;
    overflow-wrap: anywhere;
    text-transform: uppercase;
}

.home-sticker-wall .home-sticker--laut {
    color: var(--color-red);
}

.home-sticker-wall .home-sticker--ruhig {
    color: var(--color-muted);
}

.home-sticker-wall .home-sticker--invertiert {
    background: var(--color-acid);
    color: var(--color-ink);
    padding: 0.08em 0.16em;
}

.home-sticker-wall .home-sticker--small {
    font-size: clamp(1.35rem, 4.4vw, 2.8rem);
}

.home-sticker-wall .home-sticker--large {
    font-size: clamp(2.15rem, 7vw, 4.8rem);
}

.home-sticker-wall img {
    width: min(100%, 16rem);
    max-height: 8rem;
    object-fit: contain;
    object-position: center;
}

.home-sticker-wall--compact {
    min-height: 0;
}

.home-sticker-wall--compact .home-sticker,
.home-sticker-wall--compact span {
    font-size: clamp(1.2rem, 2.8vw, 2.1rem);
}

.is-admin .admin-sticker-row .admin-media-thumb span {
    padding: 0.35rem;
    font-size: 0.58rem;
    line-height: 1.1;
    overflow-wrap: anywhere;
    text-align: center;
}

@media (min-width: 760px) {
    .home-preview-card {
        grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr);
        align-items: start;
    }

    .home-preview-card__image {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid var(--color-line);
        border-bottom: 0;
    }

    .home-figures-layout {
        grid-template-columns: minmax(14rem, 0.42fr) minmax(0, 1fr);
        align-items: stretch;
    }

    .home-figure-strip {
        grid-template-columns: 1fr;
        align-content: start;
        align-items: start;
    }

    .home-figure-teaser {
        grid-template-columns: minmax(6rem, 8rem) minmax(0, 1fr);
        align-items: start;
        align-self: start;
    }

    .home-figure-teaser__image {
        width: 100%;
        max-width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid var(--color-line);
        border-bottom: 0;
    }
}

@media (min-width: 1024px) {
    .site-header__inner {
        align-items: center;
    }

    .site-nav {
        justify-content: center;
    }

    .site-nav a {
        padding-inline: 0.58rem;
    }

    .home-preview-grid {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 34rem));
        justify-content: start;
        align-items: start;
    }

    .home-section__head p {
        max-width: 54rem;
    }

    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(15rem, 18rem));
        justify-content: start;
    }
}

/* Screenshot-led pass: one shell width, shorter modules, stronger homepage grouping. */
:root {
    --site-shell-max: min(var(--content-max-width, 1180px), 1132px);
    --site-shell-padding: clamp(1rem, 3vw, 2rem);
    --site-shell-width: min(var(--site-shell-max), calc(100% - (var(--site-shell-padding) * 2)));
    --preview-max-height: 13.75rem;
}

.site-main {
    width: 100%;
    max-width: none;
    padding-inline: 0;
}

.site-header__inner,
.site-nav,
.maintenance-notice,
.site-footer,
.home-hero,
.home-section,
.home-split,
.home-shop,
.hero,
.content-section,
.page-section {
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    box-sizing: border-box;
}

.home-about,
.home-project,
.home-history-strip,
.home-section[aria-labelledby="home-art-title"],
.home-split--willy,
.home-shop {
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    box-sizing: border-box;
}

.site-header__inner,
.site-nav {
    padding-inline: 0;
}

.home-hero {
    grid-template-columns: 1fr;
}

.home-hero h1 {
    max-width: 13ch;
    font-size: clamp(2.4rem, 4.25vw, 4rem);
}

.home-hero .lead {
    max-width: 50rem;
    line-height: 1.42;
}

.home-hero__actions {
    gap: 0.65rem;
}

.home-section,
.home-split,
.home-shop {
    margin-top: clamp(1.4rem, 2.8vw, 2.4rem);
}

.home-section__head {
    gap: 0.72rem;
}

.home-section__head h2 {
    font-size: clamp(1.85rem, 3.3vw, 3.1rem);
    line-height: 1.08;
}

.home-section__head p,
.home-poster-card p,
.home-preview-card p,
.home-figure-teaser p {
    max-width: 68ch;
    line-height: 1.55;
}

.home-history-strip {
    grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.48fr);
    align-items: start;
    gap: clamp(1rem, 2vw, 1.4rem);
}

.home-history-strip .home-poster-card {
    min-height: auto;
    padding: clamp(1.2rem, 2.1vw, 1.75rem);
}

.home-history-strip .home-sticker-wall {
    min-height: auto;
    align-self: start;
    padding: clamp(1rem, 1.8vw, 1.4rem);
}

.home-history-strip .home-sticker-wall .home-sticker {
    font-size: clamp(1.45rem, 3vw, 2.75rem);
    line-height: 1;
    hyphens: none;
    word-break: normal;
    overflow-wrap: normal;
}

.home-art-section {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
}

.home-art-section .home-section__head {
    max-width: min(100%, 64rem);
}

.home-art-section .home-preview-grid,
.home-art-section .home-figures-layout {
    padding-top: 0;
}

.home-preview-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 32rem));
    align-items: start;
    justify-content: start;
}

.home-preview-card,
.home-figure-teaser,
.gallery-card,
.download-card,
.shop-card,
.game-card {
    transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.home-preview-card:hover,
.home-preview-card:focus-within,
.home-figure-teaser:hover,
.home-figure-teaser:focus-within,
.gallery-card:hover,
.gallery-card:focus-within {
    transform: translate(-2px, -2px);
    border-color: rgba(214, 255, 45, 0.55);
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.42);
}

.home-preview-card__image,
.home-figure-teaser__image,
.gallery-card__image,
.download-card__preview,
.download-card__image,
.figure-card__image,
.shop-card__image,
.article-card__image,
.punkt-issue-card__cover,
.admin-media-thumb,
.admin-media-preview,
.admin-gallery-thumb,
.admin-image-preview {
    max-height: var(--preview-max-height);
}

.home-preview-card__image,
.home-figure-teaser__image {
    background:
        linear-gradient(135deg, rgba(245, 240, 230, 0.04), transparent 55%),
        radial-gradient(circle at 35% 30%, rgba(214, 255, 45, 0.08), transparent 52%),
        var(--color-ink);
}

.home-preview-card__image span,
.home-figure-teaser__image span {
    font-size: clamp(1.35rem, 3vw, 2.25rem);
    line-height: 1;
}

.home-figures-layout {
    gap: clamp(0.9rem, 1.6vw, 1.2rem);
}

.home-figure-info {
    padding: clamp(1rem, 1.8vw, 1.35rem);
}

.home-figure-info h2 {
    font-size: clamp(1.55rem, 2.8vw, 2.45rem);
    line-height: 1.08;
}

.home-figure-info .hero__actions {
    margin-top: 0.2rem;
}

.home-figure-strip {
    gap: clamp(0.75rem, 1.4vw, 1rem);
}

.gallery-grid--public {
    gap: clamp(0.85rem, 1.5vw, 1.15rem);
}

.gallery-card__image {
    aspect-ratio: 4 / 3;
    height: auto;
}

.admin-panel,
.admin-note,
.admin-alert,
.admin-stat-card,
.content-card {
    border-color: rgba(245, 240, 230, 0.18);
}

.is-admin .admin-panel__head p,
.is-admin .admin-muted,
.is-admin small {
    line-height: 1.45;
}

.is-admin .admin-block-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.is-admin .admin-sticker-row {
    grid-template-columns: minmax(4.5rem, auto) minmax(0, 1fr) auto;
}

.is-admin .admin-media-thumb {
    width: min(var(--admin-preview-size), 5.25rem);
    background: #050505;
}

.is-admin .admin-row-actions {
    justify-content: flex-end;
}

@media (min-width: 900px) {
    .home-hero {
        grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.72fr);
    }

    .home-art-section {
        grid-template-columns: minmax(0, 0.95fr) minmax(19rem, 0.58fr);
        align-items: start;
    }

    .home-art-section .home-section__head {
        grid-column: 1 / -1;
    }

    .home-art-section .home-preview-grid {
        grid-column: 1;
    }

    .home-art-section .home-figures-layout {
        grid-column: 2;
        grid-template-columns: minmax(0, 1fr);
    }

    .home-art-section .home-preview-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-art-section .home-preview-card {
        grid-template-columns: minmax(7rem, 9rem) minmax(0, 1fr);
    }

    .home-art-section .home-figure-teaser {
        grid-template-columns: minmax(6rem, 7.5rem) minmax(0, 1fr);
    }
}

@media (max-width: 899px) {
    .home-history-strip {
        grid-template-columns: 1fr;
    }

    .home-art-section {
        grid-template-columns: 1fr;
    }
}

/* Final alignment pass: centered grids, readable dossiers, calmer admin surfaces. */
:root {
    --site-shell-padding: clamp(1.15rem, 4vw, 2rem);
    --site-text-shell: min(48rem, var(--site-shell-width));
    --site-reading-shell: min(54rem, var(--site-shell-width));
    --site-grid-max: min(var(--site-shell-max), calc(100% - (var(--site-shell-padding) * 2)));
    --preview-compact-height: 10.75rem;
}

.history-hero,
.history-intro-grid,
.history-chapters,
.history-sources,
.gallery-filters,
.gallery-grid,
.downloads-grid,
.download-grid,
.game-grid,
.shop-grid,
.figure-grid,
.wy-service-grid,
.wy-request-panel,
.willy-notice,
.coming-soon-box,
.article-grid,
.punkt-issue-grid,
.punkt-magazine-wall,
.punkt-preview-strip {
    width: var(--site-grid-max);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    box-sizing: border-box;
}

.history-hero,
.history-intro-grid,
.history-chapters,
.history-sources {
    max-width: var(--site-reading-shell);
}

.history-hero {
    min-height: auto;
    align-items: start;
    padding-block: clamp(1.7rem, 4vw, 3rem);
}

.history-hero__body,
.history-chapter__content,
.history-section-head,
.source-card,
.legal-document,
.article-hero .hero__body {
    max-width: var(--site-text-shell);
}

.history-hero h1 {
    max-width: 12ch;
    font-size: clamp(2.35rem, 6.8vw, 4.75rem);
    line-height: 0.98;
}

.history-hero .lead,
.history-chapter .copy,
.history-intro-grid p,
.history-section-head p,
.source-card p {
    max-width: 72ch;
    line-height: 1.6;
}

.history-chapter {
    gap: clamp(0.9rem, 2vw, 1.35rem);
}

.history-chapter__number {
    font-size: clamp(3.6rem, 11vw, 6.5rem);
}

.history-chapter h2,
.history-intro-grid h2,
.history-section-head h2 {
    font-size: clamp(1.45rem, 3vw, 2.45rem);
    line-height: 1.08;
}

.gallery-filters {
    justify-content: center;
}

.gallery-grid,
.gallery-grid--public,
.willy-gallery,
.download-grid,
.downloads-grid,
.game-grid,
.shop-grid,
.figure-grid,
.article-grid,
.punkt-issue-grid {
    justify-content: center;
    justify-items: center;
}

.gallery-grid--public {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 18rem));
}

.gallery-grid--public .gallery-card,
.willy-gallery .gallery-card {
    width: 100%;
    max-width: 18rem;
}

.gallery-card__image,
.download-card__preview,
.download-card__image,
.figure-card__image,
.shop-card__image,
.article-card__image,
.punkt-issue-card__cover {
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #050505;
}

.gallery-card__image img,
.download-card__preview img,
.download-card__image img,
.figure-card__image img,
.shop-card__image img,
.article-card__image img,
.punkt-issue-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.home-art-section {
    align-items: stretch;
}

.home-art-section .home-preview-grid {
    display: grid;
    gap: clamp(0.75rem, 1.35vw, 1rem);
}

.home-art-section .home-preview-card,
.home-art-section .home-figure-info,
.home-art-section .home-figure-teaser {
    align-self: start;
}

.home-art-section .home-preview-card {
    min-height: 0;
}

.home-art-section .home-preview-card__image,
.home-art-section .home-figure-teaser__image {
    min-height: 0;
    height: clamp(8.5rem, 14vw, var(--preview-compact-height));
    max-height: var(--preview-compact-height);
}

.home-art-section .home-preview-card__body {
    align-content: center;
}

.home-art-section .home-preview-card h3,
.home-art-section .home-figure-teaser h3 {
    font-size: clamp(1.2rem, 1.9vw, 1.6rem);
    line-height: 1.1;
}

.home-art-section .home-preview-card p,
.home-art-section .home-figure-teaser p,
.home-art-section .home-figure-info p {
    font-size: 0.96rem;
    line-height: 1.5;
}

.home-art-section .home-figure-info {
    display: grid;
    align-content: start;
    gap: 0.85rem;
}

.home-art-section .home-figure-info h2 {
    font-size: clamp(1.55rem, 2.6vw, 2.25rem);
}

.willy-age-gate [data-area-age-content],
.willy-notice,
.wy-request-panel,
.wy-service-grid {
    margin-inline: auto;
}

.willy-notice,
.wy-request-panel {
    max-width: var(--site-reading-shell);
}

.wy-service-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    justify-items: stretch;
}

.wy-form,
.wy-request-panel__head {
    max-width: var(--site-text-shell);
}

.is-admin .admin-dashboard,
.is-admin .admin-pages,
.is-admin .admin-design,
.is-admin .admin-login {
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    box-sizing: border-box;
}

.is-admin .admin-dashboard,
.is-admin .admin-pages,
.is-admin .admin-design,
.is-admin .admin-login,
.is-admin .admin-form,
.is-admin .admin-panel {
    line-height: 1.48;
}

.is-admin .admin-dashboard__head,
.is-admin .admin-panel__head {
    gap: 0.55rem;
}

.is-admin .admin-dashboard h1,
.is-admin .admin-pages h1 {
    font-size: clamp(1.8rem, 3.4vw, 2.9rem);
    line-height: 1.02;
}

.is-admin .admin-panel h2,
.is-admin .admin-form legend {
    font-size: clamp(1.12rem, 1.75vw, 1.55rem);
    line-height: 1.15;
}

.is-admin .admin-panel,
.is-admin .admin-note,
.is-admin .admin-alert,
.is-admin .admin-stat-card {
    padding: clamp(0.85rem, 1.7vw, 1.2rem);
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.24);
}

.is-admin .admin-form-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
}

.is-admin .form-field input,
.is-admin .form-field textarea,
.is-admin .form-field select {
    padding: 0.68rem 0.75rem;
}

.is-admin .admin-media-thumb,
.is-admin .admin-gallery-thumb,
.is-admin .admin-image-preview,
.is-admin .admin-media-preview {
    width: min(var(--admin-preview-size), 5rem);
    height: min(var(--admin-preview-size), 5rem);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.is-admin .admin-media-thumb img,
.is-admin .admin-gallery-thumb img,
.is-admin .admin-image-preview img,
.is-admin .admin-media-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media (min-width: 900px) {
    .home-art-section {
        grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.72fr);
    }

    .home-art-section .home-preview-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .home-art-section .home-preview-card {
        grid-template-columns: minmax(7rem, 8.5rem) minmax(0, 1fr);
    }

    .home-art-section .home-figures-layout {
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
    }

    .home-art-section .home-preview-grid {
        align-self: start;
    }
}

@media (min-width: 1100px) {
    .gallery-grid--public {
        grid-template-columns: repeat(auto-fit, minmax(15.5rem, 18rem));
    }
}

@media (max-width: 700px) {
    :root {
        --site-shell-padding: clamp(1.25rem, 5vw, 1.65rem);
    }

    .home-art-section .home-preview-card__image,
    .home-art-section .home-figure-teaser__image {
        height: auto;
        max-height: none;
        aspect-ratio: 4 / 3;
    }

    .history-hero,
    .history-intro-grid,
    .history-chapters,
    .history-sources,
    .gallery-filters,
    .gallery-grid,
    .downloads-grid,
    .download-grid,
    .game-grid,
    .shop-grid,
    .figure-grid,
    .wy-service-grid,
    .wy-request-panel,
    .willy-notice,
    .coming-soon-box {
        width: var(--site-shell-width);
    }
}

/* -------------------------------------------------------------------------
   Dole manual CSS rescue pass — 2026-06-12
   Ziel: keine PHP-/Backend-Logik anfassen, nur Layout/Lesbarkeit beruhigen.
   Schwerpunkt: Headerbreite, Unterseiten-Ausrichtung, Galerie/Punkt/Willy/Shop/Kontakt.
------------------------------------------------------------------------- */

:root {
    --site-shell-max: min(var(--content-max-width, 1180px), 1132px);
    --site-shell-padding: clamp(1.15rem, 4vw, 2rem);
    --site-shell-width: min(var(--site-shell-max), calc(100% - (var(--site-shell-padding) * 2)));
    --site-reading-shell: min(54rem, var(--site-shell-width));
    --site-text-shell: min(46rem, var(--site-shell-width));
}

/* Header: Hintergrund darf voll laufen, Inhalt bleibt sauber auf der schmalen Innenkante. */
.site-header {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    border-bottom-color: var(--color-ink);
}

.site-header__inner {
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    min-width: 0;
}

.site-nav {
    max-width: var(--site-shell-width);
    margin-inline: auto;
}

.site-main {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
}

/* Gemeinsame Innenkante für Unterseiten. Startseite bleibt in ihrer aktuellen Komposition weitgehend unberührt. */
.history-hero,
.history-intro-grid,
.history-chapters,
.history-sources,
.gallery-filters,
.gallery-grid,
.download-grid,
.downloads-grid,
.game-grid,
.shop-grid,
.figure-grid,
.article-grid,
.punkt-issue-grid,
.punkt-magazine-wall,
.punkt-preview-strip,
.wy-service-grid,
.willy-gallery,
.contact-grid {
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin-inline: auto;
    box-sizing: border-box;
}

/* Textseiten bleiben lesbar und werden nicht zur Vollbreiten-Textwand. */
.history-hero,
.history-intro-grid,
.history-chapters,
.history-sources {
    max-width: var(--site-reading-shell);
}

/* Historie: Quellenbereich kompakter und weniger dominant. */
.history-sources {
    gap: var(--space-2);
    padding-top: clamp(1.25rem, 3vw, 2rem);
}

.history-sources .history-section-head {
    gap: 0.45rem;
    max-width: var(--site-text-shell);
}

.history-sources .history-section-head h2,
.history-sources h2,
.source-list + h2 {
    font-size: clamp(1.15rem, 1.9vw, 1.75rem);
    line-height: 1.12;
}

.history-europe__sources-head {
    margin-top: clamp(1rem, 3vw, 2rem);
}

.history-europe .source-list {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.history-europe .source-card {
    height: 100%;
}

.history-jump-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    width: min(var(--site-reading-shell, 980px), var(--site-shell-width, calc(100% - 2rem)));
    margin: var(--space-4) auto 0;
}

.history-jump-nav a {
    border: 2px solid var(--color-line);
    background: var(--color-bg-2);
    color: var(--color-paper);
    padding: 0.55rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
}

.history-jump-nav a:hover,
.history-jump-nav a:focus-visible {
    border-color: var(--color-acid);
    color: var(--color-acid);
}

.source-list {
    gap: var(--space-2);
}

.source-card {
    gap: 0.55rem;
    padding: clamp(0.8rem, 1.7vw, 1.15rem);
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.24);
}

.source-card::before {
    font-size: 1.45rem;
}

.source-card h3 {
    font-size: clamp(1rem, 1.65vw, 1.35rem);
    line-height: 1.15;
}

/* Galerie/Punkt/Willy: Karten an der linken Innenkante beginnen lassen, nicht mittig im leeren Raum schwimmen. */
.gallery-grid,
.gallery-grid--public,
.willy-gallery,
.punkt-issue-grid,
.punkt-magazine-wall,
.punkt-preview-strip {
    justify-content: start;
    justify-items: stretch;
}

.gallery-grid--public,
.willy-gallery {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 18rem));
}

.gallery-grid--public .gallery-card,
.willy-gallery .gallery-card {
    width: 100%;
    max-width: none;
}

.punkt-issue-grid,
.punkt-magazine-wall,
.punkt-preview-strip {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 18rem));
}

/* Vorschaubilder grundsätzlich komplett sichtbar halten. */
.gallery-card__image,
.home-preview-card__image,
.home-figure-teaser__image,
.download-card__preview,
.figure-card__image,
.punkt-issue-card__cover,
.admin-media-thumb,
.admin-media-preview {
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #050505;
}

.gallery-card__image img,
.home-preview-card__image img,
.home-figure-teaser__image img,
.download-card__preview img,
.figure-card__image img,
.punkt-issue-card__cover img,
.admin-media-thumb img,
.admin-media-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

/* Shop: "Wichtig"-Block nicht mehr als breiter Balken. */
.shop-note {
    width: min(54rem, var(--site-shell-width));
    max-width: 54rem;
    margin-inline: auto;
    padding: clamp(1rem, 2vw, 1.35rem);
}

.shop-note h2 {
    font-size: clamp(1.2rem, 2.2vw, 1.9rem);
    line-height: 1.12;
}

.shop-note p {
    max-width: 68ch;
}

/* Kontakt: untere Blöcke an dieselbe Seitenkante holen und ruhiger machen. */
.contact-grid {
    justify-content: start;
    justify-items: stretch;
}

.contact-grid .content-card {
    min-height: unset;
}

/* Willy & Yoni: Formular-/Hinweisbereiche an Innenkante, aber Text lesbar halten. */
.willy-notice,
.wy-request-panel {
    width: min(var(--site-reading-shell), var(--site-shell-width));
    margin-inline: auto;
}

.wy-form,
.wy-request-panel__head {
    max-width: var(--site-text-shell);
}

/* Allgemeine Lesbarkeit: große Poster-Schriften etwas entschärfen, ohne den Stil zu verlieren. */
.history-hero h1,
.gallery-hero h1,
.willy-hero h1,
.shop-hero h1,
.contact-hero h1,
.games-hero h1,
.downloads-hero h1 {
    line-height: 0.98;
}

.gallery-card h2,
.content-card h2,
.shop-card h2,
.game-title,
.download-card__body h2,
.figure-card__body h2 {
    line-height: 1.05;
}

p,
li,
.copy {
    line-height: 1.58;
}

/* Mobile: etwas mehr Luft zum Rand, aber keine Layoutsprengung. */
@media (max-width: 700px) {
    :root {
        --site-shell-padding: clamp(1.25rem, 5.5vw, 1.85rem);
    }

    .site-header__inner,
    .site-nav,
    .history-hero,
    .history-intro-grid,
    .history-chapters,
    .history-sources,
    .gallery-filters,
    .gallery-grid,
    .download-grid,
    .downloads-grid,
    .game-grid,
    .shop-grid,
    .figure-grid,
    .article-grid,
    .punkt-issue-grid,
    .punkt-magazine-wall,
    .punkt-preview-strip,
    .wy-service-grid,
    .willy-gallery,
    .willy-notice,
    .wy-request-panel,
    .contact-grid {
        width: var(--site-shell-width);
    }

    .gallery-grid--public,
    .willy-gallery,
    .punkt-issue-grid,
    .punkt-magazine-wall,
    .punkt-preview-strip {
        grid-template-columns: 1fr;
    }
}

/* Desktop: Unterseiten-Grids stehen bewusst an der Innenkante, nicht zentriert im Leerraum. */
@media (min-width: 900px) {
    .gallery-grid--public,
    .willy-gallery,
    .punkt-issue-grid,
    .punkt-magazine-wall,
    .punkt-preview-strip {
        justify-content: start;
    }
}


/* --------------------------------------------------------------------------
   PATCH V2 — Historie/Text-Cutoff + Mobile Lesbarkeit
   Basis: style_patched.css. Dieser Block korrigiert abgeschnittene Texte in
   Historie-Kapiteln und macht die Unterseiten robuster, ohne die funktionierende
   Startseite erneut umzubauen.
   -------------------------------------------------------------------------- */

/* Grundsätzlich verhindern, dass Grid-/Card-Kinder rechts aus ihren Kästen laufen. */
.history-chapter,
.history-chapter__content,
.history-chapter .copy,
.history-intro-grid article,
.source-card,
.content-card,
.gallery-card,
.willy-notice,
.wy-request-panel,
.shop-note,
.contact-grid .content-card {
    min-width: 0;
    max-width: 100%;
}

/* Historie: Kapitel 1, 6, 8 und alle anderen dürfen nicht durch seitliche Offsets
   oder zu enge Grid-Spalten abgeschnitten werden. */
.history-chapters {
    width: min(var(--site-reading-shell, 980px), var(--site-shell-width, calc(100% - 2rem)));
    max-width: min(var(--site-reading-shell, 980px), var(--site-shell-width, calc(100% - 2rem)));
    margin-inline: auto;
    overflow: visible;
}

.history-chapter {
    width: 100%;
    overflow: visible;
    contain: none;
}

.history-chapter:nth-child(odd),
.history-chapter:nth-child(even) {
    margin-left: 0;
    margin-right: 0;
}

.history-chapter__content,
.history-chapter .copy,
.history-chapter p,
.history-chapter li {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
    max-width: 100%;
}

.history-chapter .copy {
    width: 100%;
    line-height: 1.62;
}

/* Große Kapitelnummern dürfen keinen Text wegdrücken oder überdecken. */
.history-chapter__number {
    max-width: 100%;
    overflow: hidden;
    pointer-events: none;
}

/* Mobile: Historie-Karten werden bewusst einspaltig, mit mehr Innenraum und
   lesbarer Typografie. Das behebt abgeschnittenen Text auf dem Handy. */
@media (max-width: 699px) {
    .history-chapters,
    .history-intro-grid,
    .history-sources {
        width: var(--site-shell-width, calc(100% - 2.4rem));
        max-width: var(--site-shell-width, calc(100% - 2.4rem));
    }

    .history-chapter {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--space-2, .65rem);
        padding: clamp(0.95rem, 4vw, 1.25rem);
    }

    .history-chapter__number {
        font-size: clamp(2.6rem, 18vw, 4.6rem);
        line-height: 0.85;
        opacity: 0.65;
    }

    .history-chapter h2,
    .history-intro-grid h2,
    .history-section-head h2 {
        font-size: clamp(1.25rem, 8vw, 2.1rem);
        line-height: 1.08;
    }

    .history-chapter .copy,
    .history-chapter p,
    .history-chapter li,
    .history-intro-grid p,
    .source-card p {
        font-size: clamp(0.96rem, 4vw, 1.04rem);
        line-height: 1.62;
    }
}

/* Tablet/Desktop: Historie bleibt als Dossier gestaltet, aber ohne rechts/links
   versetzte Karten, die bei langen Texten abschneiden können. */
@media (min-width: 700px) {
    .history-chapter {
        grid-template-columns: minmax(4.8rem, 0.16fr) minmax(0, 1fr);
        gap: clamp(0.9rem, 2vw, 1.35rem);
    }

    .history-chapter__number {
        font-size: clamp(3.5rem, 9vw, 7rem);
    }
}

@media (min-width: 1020px) {
    .history-chapter:nth-child(odd),
    .history-chapter:nth-child(even),
    .civil-block:nth-child(odd),
    .civil-block:nth-child(even) {
        margin-left: 0;
        margin-right: 0;
    }
}

/* Quellen bleiben kompakt, aber auch dort darf nichts rechts abgeschnitten werden. */
.history-sources,
.source-list,
.source-card {
    overflow: visible;
}

.source-card h3,
.source-card p,
.source-card a {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Galerie/Punkt/Willy/Shop/Kontakt: kleine zusätzliche Robustheit für Text und Grid. */
.gallery-grid,
.willy-gallery,
.punkt-issue-grid,
.punkt-magazine-wall,
.punkt-preview-strip,
.contact-grid,
.shop-grid {
    max-width: var(--site-shell-width, 100%);
}

.gallery-card__body,
.home-preview-card__body,
.home-figure-teaser > div:not(.home-figure-teaser__image),
.shop-card,
.contact-grid .content-card {
    overflow-wrap: anywhere;
    min-width: 0;
}

/* --------------------------------------------------------------------------
   PATCH V3 — Desktop-Fix Historie-Karten
   Mobile war mit V2 okay. Dieser Block greift deshalb nur ab Tablet/Desktop.
   Ziel: Historie-Kapitel 1, 6, 8 und alle weiteren Kapitel dürfen rechts nicht
   mehr abgeschnitten wirken. Ursache war eine zu schmale Dossier-Breite plus
   zweispaltiges Kapitel-Grid mit zu viel Platz für Kapitelnummer/Offset.
   -------------------------------------------------------------------------- */
@media (min-width: 700px) {
    .history-hero,
    .history-intro-grid,
    .history-chapters,
    .history-sources {
        width: min(100%, var(--site-shell-width, calc(100% - 3rem)));
        max-width: min(1020px, var(--site-shell-width, calc(100% - 3rem)));
        margin-inline: auto;
    }

    .history-chapter {
        display: grid;
        grid-template-columns: minmax(3.25rem, 4.25rem) minmax(0, 1fr);
        gap: clamp(0.75rem, 1.4vw, 1.1rem);
        width: 100%;
        max-width: 100%;
        overflow: visible;
        padding: clamp(1rem, 2vw, 1.45rem);
    }

    .history-chapter__number {
        font-size: clamp(2.8rem, 5vw, 4.8rem);
        line-height: 0.9;
        max-width: 4.25rem;
        overflow: visible;
    }

    .history-chapter__content,
    .history-chapter .copy,
    .history-chapter p,
    .history-chapter li {
        width: 100%;
        max-width: none;
        min-width: 0;
        overflow: visible;
        overflow-wrap: break-word;
        word-break: normal;
    }

    .history-chapter .copy {
        max-width: 76ch;
        line-height: 1.64;
    }

    .history-chapter h2 {
        max-width: 100%;
        font-size: clamp(1.35rem, 2.4vw, 2.25rem);
        line-height: 1.1;
        overflow-wrap: break-word;
    }
}

@media (min-width: 1020px) {
    .history-chapters {
        max-width: min(1040px, var(--site-shell-width, calc(100% - 4rem)));
    }

    .history-chapter:nth-child(odd),
    .history-chapter:nth-child(even) {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* --------------------------------------------------------------------------
   Erweiterte Content-Blöcke, Spielkarten und Mitmachbereich
   Bewusst additive Regeln: vorhandene Startseiten-/Historie-Patches bleiben
   unangetastet.
   -------------------------------------------------------------------------- */
.content-card__grid {
    display: grid;
    gap: var(--space-md, 1rem);
    align-items: start;
}

.content-card__media,
.game-card__media {
    display: grid;
    place-items: center;
    overflow: hidden;
    background: rgba(0, 0, 0, .38);
    border: 2px solid rgba(245, 239, 226, .18);
    aspect-ratio: 4 / 3;
    max-height: 260px;
}

.content-card__media img,
.game-card__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
}

.content-card__media figcaption {
    padding: .5rem .65rem;
    font-size: .86rem;
    color: var(--muted);
}

.content-card__actions {
    margin-top: var(--space-sm, .65rem);
}

.content-card--quote,
.content-card--info,
.content-card--cta,
.content-card--style-loud {
    border-color: var(--acid);
}

.content-card--divider {
    min-height: 0;
    padding: .55rem;
    background: var(--acid);
}

.content-card--divider .content-card__copy {
    display: none;
}

@media (min-width: 820px) {
    .content-card--text_image_right .content-card__grid,
    .content-card--cta .content-card__grid {
        grid-template-columns: minmax(0, 1.35fr) minmax(180px, .65fr);
    }

    .content-card--image_text_right .content-card__grid {
        grid-template-columns: minmax(180px, .65fr) minmax(0, 1.35fr);
    }
}

.game-card {
    display: grid;
    align-content: start;
    gap: var(--space-sm, .65rem);
}

.game-card__media {
    max-height: 190px;
}

.game-description p,
.game-note p {
    margin: 0;
}

.game-note {
    color: var(--muted);
    font-size: .95rem;
}

.footer-community {
    margin: .55rem 0 .35rem;
    max-width: 28ch;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.45;
}

.footer-link--community {
    display: inline-flex;
    width: fit-content;
}

.admin-subpanel {
    display: grid;
    gap: var(--space-sm, .65rem);
    padding: clamp(.85rem, 2vw, 1.15rem);
    border: 1px solid rgba(245, 239, 226, .18);
    background: rgba(255, 255, 255, .025);
}

.admin-media-preview img,
.admin-media-thumb img {
    object-fit: contain;
    object-position: center;
}

/* Footer: compact, separated columns for the public site footer. */
.site-footer {
    width: min(var(--site-shell-max, 1180px), calc(100% - (var(--site-shell-padding, 1.5rem) * 2)));
    max-width: none;
    margin-inline: auto;
    grid-template-columns: minmax(260px, 1.65fr) minmax(86px, .52fr) minmax(84px, .45fr) minmax(210px, .8fr) minmax(150px, .62fr) minmax(110px, .42fr);
    align-items: start;
    column-gap: clamp(1rem, 2.2vw, 1.65rem);
    row-gap: clamp(1rem, 2vw, 1.35rem);
    padding: clamp(1.5rem, 3vw, 2.25rem) 0 clamp(1.1rem, 2vw, 1.5rem);
}

.site-footer__brand,
.footer-group {
    min-width: 0;
}

.site-footer__brand {
    gap: .8rem;
}

.site-footer__brand .stamp {
    min-height: 0;
    padding: .32rem .55rem;
    font-size: clamp(.68rem, .78vw, .82rem);
    line-height: 1;
}

.site-footer__brand strong {
    max-width: 100%;
    font-size: clamp(1.05rem, 7.5vw, var(--footer-brand-size, 3.1rem));
    line-height: .9;
    white-space: nowrap;
    overflow-wrap: anywhere;
}

.site-footer__brand p {
    max-width: 34ch;
    font-size: clamp(.9rem, 1vw, 1rem);
    line-height: 1.45;
}

.footer-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
}

.footer-group h2 {
    margin: 0 0 .15rem;
    font-size: clamp(.74rem, .82vw, .88rem);
    line-height: 1.08;
}

.footer-group a:not(.footer-link) {
    max-width: 100%;
    font-size: clamp(.78rem, .92vw, .95rem);
    line-height: 1.15;
}

.site-footer .footer-link,
.site-footer .footer-social-link {
    min-height: 2.05rem;
    padding: .42rem .56rem;
    font-size: clamp(.72rem, .82vw, .84rem);
    line-height: 1.05;
    box-shadow: 3px 3px 0 var(--color-ink);
}

.site-footer .footer-social-link {
    gap: .35rem;
}

.site-footer .footer-social-link .icon {
    width: .95rem;
    height: .95rem;
    flex: 0 0 auto;
}

.site-footer .footer-socials {
    display: grid;
    gap: .45rem;
}

.footer-community {
    margin: 0 0 .25rem;
    max-width: 30ch;
    font-size: clamp(.82rem, .9vw, .93rem);
    line-height: 1.42;
}

.site-footer .footer-link--community {
    width: auto;
    margin-top: .2rem;
}

.site-footer__meta {
    grid-column: 1 / -1;
    margin-top: .45rem;
    font-size: .82rem;
}

@media (max-width: 1120px) {
    .site-footer {
        grid-template-columns: minmax(0, 1.25fr) repeat(3, minmax(0, 1fr));
    }

    .site-footer__brand,
    .footer-group--community {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .site-footer {
        grid-template-columns: 1fr 1fr;
    }

    .site-footer__brand,
    .footer-group--community,
    .site-footer__meta {
        grid-column: 1 / -1;
    }
}

@media (max-width: 520px) {
    .site-footer {
        grid-template-columns: 1fr;
    }

    .site-footer__brand strong {
        font-size: clamp(1.05rem, 7.5vw, var(--footer-brand-size, 3.1rem));
    }
}

/* Willy & Yoni: landing page order and a compact one-line footer brand. */
.willy-age-gate [data-area-age-content] {
    display: flex;
    flex-direction: column;
}

.willy-age-gate .willy-hero {
    order: 10;
}

.willy-age-gate .willy-page-status {
    order: 15;
}

.willy-age-gate [data-area-age-content] > .wy-service-grid {
    order: 20;
}

.willy-age-gate .wy-gallery-section {
    order: 30;
}

.willy-age-gate .wy-terms {
    order: 40;
}

.willy-age-gate .wy-gallery-request-cta {
    order: 50;
}

.willy-age-gate #anfrage {
    order: 60;
}

.wy-gallery-section {
    display: grid;
    gap: clamp(1rem, 2.5vw, 1.6rem);
    width: var(--site-shell-width);
    max-width: var(--site-shell-max);
    margin: clamp(1.25rem, 3vw, 2.25rem) auto;
}

.wy-gallery-section > .wy-request-panel__head {
    width: 100%;
    max-width: none;
}

.wy-gallery-section .coming-soon-box,
.wy-gallery-section .gallery-grid {
    width: 100%;
    max-width: none;
    margin: 0;
}

.site-footer__brand strong {
    font-size: clamp(.92rem, 1.45vw, 1.22rem);
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}

/* Targeted polish 2026-06-14: keep public pages calm without changing the system. */
.site-footer__brand strong {
    font-size: clamp(1rem, 5.8vw, var(--footer-brand-size, 2.8rem));
}

@media (min-width: 900px) {
    .site-footer__brand strong {
        font-size: clamp(1.35rem, 2.7vw, var(--footer-brand-size, 2.8rem));
        letter-spacing: 0;
    }
}

.home-willy-compact {
    width: min(860px, calc(100% - (var(--site-shell-padding, 1.5rem) * 2)));
    margin: clamp(1.5rem, 4vw, 3rem) auto;
}

.home-willy-card {
    min-height: 0;
    padding: clamp(1rem, 2.2vw, 1.55rem);
}

.home-willy-card__grid {
    display: grid;
    gap: 1rem;
    align-items: start;
}

.home-willy-card__grid h2 {
    font-size: clamp(1.7rem, 3.4vw, 3.1rem);
    line-height: 1.02;
}

.home-willy-card__note {
    border: 2px solid var(--color-line);
    background: rgba(5, 5, 5, .35);
    padding: .85rem;
}

.home-willy-card__note strong {
    display: inline-block;
    margin-bottom: .35rem;
    color: var(--color-red);
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.4vw, 2.1rem);
    line-height: 1;
}

.home-willy-card__note p {
    margin: 0;
    color: var(--color-muted);
    font-size: .95rem;
    line-height: 1.45;
}

@media (min-width: 900px) {
    .home-willy-card__grid {
        grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr);
    }
}

.contact-form-card {
    grid-column: 1 / -1;
    width: min(860px, 100%);
    max-width: 100%;
    justify-self: start;
}

@media (min-width: 900px) {
    .contact-form-card {
        margin-top: -.25rem;
    }
}

.public-form {
    margin-top: 1rem;
}

.form-field--trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.history-sources {
    padding-block: clamp(1.1rem, 2.4vw, 1.8rem);
}

.history-sources .history-section-head {
    margin-bottom: .9rem;
}

.history-sources .history-section-head h2,
.history-sources h2 {
    font-size: clamp(1.15rem, 1.8vw, 1.65rem);
    line-height: 1.12;
}

.source-list {
    gap: .8rem;
}

.source-card {
    padding: clamp(.85rem, 1.6vw, 1.15rem);
}

/* Abschlusskorrekturen 2026-08-24: Footer, Historie und Figuren-Anfrage. */
.site-footer {
    grid-template-columns: minmax(220px, 1.45fr) repeat(5, minmax(120px, 1fr));
    isolation: isolate;
}

.site-footer__brand strong {
    white-space: normal;
    overflow-wrap: anywhere;
}

.site-footer .footer-group,
.site-footer .footer-group a,
.site-footer .footer-community {
    position: relative;
    z-index: 1;
    overflow-wrap: anywhere;
}

.site-footer__meta {
    position: relative;
    z-index: 2;
    clear: both;
    width: 100%;
    padding-top: .8rem;
    border-top: 1px solid rgba(245, 239, 226, .18);
}

.site-footer .footer-socials {
    width: 100%;
}

.site-footer .footer-social-link {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.history-jump-nav {
    justify-content: center;
    text-align: center;
}

.history-source-disclosure {
    width: 100%;
    margin-top: clamp(.8rem, 2vw, 1.25rem);
}

.history-source-disclosure > summary {
    width: fit-content;
    margin-inline: auto;
    border: 2px solid var(--color-line);
    background: var(--color-bg-2);
    color: var(--color-paper);
    padding: .65rem .9rem;
    font-size: .84rem;
    font-weight: 950;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
    list-style-position: inside;
}

.history-source-disclosure > summary:hover,
.history-source-disclosure > summary:focus-visible {
    border-color: var(--color-acid);
    color: var(--color-acid);
}

.history-source-disclosure[open] > summary {
    margin-bottom: 1rem;
}

.source-card .button {
    align-self: center;
    justify-self: center;
}

.figure-request-panel,
.wy-request-panel {
    width: min(var(--site-shell-max, 1180px), var(--site-shell-width, calc(100% - 2rem)));
    max-width: var(--site-shell-max, 1180px);
    margin-inline: auto;
    scroll-margin-top: 7rem;
}

.figure-request-panel .wy-form,
.wy-request-panel .wy-form {
    width: 100%;
    max-width: none;
}

.figure-request-form .admin-form-grid {
    align-items: start;
}

.figure-price-panel {
    display: grid;
    gap: 1rem;
    border: 2px solid var(--color-acid);
    background: rgba(214, 255, 45, .055);
    padding: clamp(1rem, 2.4vw, 1.6rem);
}

.figure-price-panel__head {
    display: grid;
    gap: .55rem;
}

.figure-price-panel h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 3vw, 2.65rem);
    line-height: 1;
}

.figure-price-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.figure-price-grid article {
    border: 1px solid rgba(245, 239, 226, .3);
    background: rgba(0, 0, 0, .2);
    padding: 1rem;
}

.figure-price-grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.figure-price-grid strong {
    color: var(--color-acid);
    text-transform: uppercase;
}

.figure-price-grid p,
.figure-price-details p {
    margin: .35rem 0 0;
    line-height: 1.55;
}

.figure-price-details {
    display: grid;
    gap: .7rem;
}

@media (max-width: 620px) {
    .figure-price-grid {
        grid-template-columns: 1fr;
    }
}

.wy-gallery-request-cta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(.8rem, 2vw, 1.4rem);
    width: min(var(--site-shell-max, 1180px), var(--site-shell-width, calc(100% - 2rem)));
    margin: clamp(1.25rem, 3vw, 2.25rem) auto;
    border: 2px solid var(--color-acid);
    background: rgba(214, 255, 45, .055);
    padding: clamp(1rem, 2vw, 1.45rem);
}

.wy-gallery-request-cta h2,
.wy-gallery-request-cta p {
    margin: 0;
}

.wy-gallery-request-cta h2 {
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.4vw, 2.2rem);
    line-height: 1;
}

.wy-gallery-request-cta p {
    margin-top: .35rem;
    color: var(--color-muted);
}

@media (max-width: 760px) {
    .wy-gallery-request-cta {
        grid-template-columns: 1fr;
        align-items: start;
    }
}

@media (max-width: 1120px) {
    .site-footer {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .site-footer__brand,
    .footer-group--community {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .site-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer__brand,
    .footer-group--community,
    .site-footer__meta {
        grid-column: 1 / -1;
    }
}

@media (max-width: 520px) {
    .site-footer {
        grid-template-columns: minmax(0, 1fr);
    }

    .site-footer__brand,
    .footer-group--community,
    .site-footer__meta {
        grid-column: 1;
    }
}

/* Final footer override: the site name stays on one line at every width. */
.site-footer__brand strong {
    font-size: clamp(.92rem, 1.45vw, 1.22rem);
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}
