/*
 * RFR Showground
 * A deliberately excessive static funfair skin for six very specific people.
 * Layer scale: header 20, curtains 10, dialogs 40.
 */

:root {
    --rfr-red: #b91f2e;
    --rfr-red-dark: #7f1520;
    --rfr-red-bright: #d5303f;
    --rfr-cream: #f6e8c9;
    --rfr-paper: #fff7e4;
    --rfr-paper-deep: #ead6aa;
    --rfr-gold: #e0aa3e;
    --rfr-gold-dark: #986315;
    --rfr-ink: #2c1714;
    --rfr-ink-soft: #684439;
    --rfr-night: #1e1719;
    --rfr-green: #28533e;
    --rfr-shadow: 0 14px 34px rgba(63, 24, 20, 0.18);
    --rfr-shadow-small: 0 6px 14px rgba(63, 24, 20, 0.16);
    --rfr-border: 3px solid var(--rfr-ink);
    --page-width: 1320px;
    --header-width: 1480px;
    --radius: 4px;
}

html {
    background: var(--rfr-red-dark);
    overflow-x: clip;
}

body {
    min-height: 100dvh;
    color: var(--rfr-ink);
    background:
        linear-gradient(rgba(255, 248, 230, 0.62), rgba(255, 248, 230, 0.62)),
        repeating-linear-gradient(90deg, var(--rfr-cream) 0 54px, #e6c9a7 54px 108px);
    background-attachment: fixed;
    overflow-x: hidden;
}

/* Reserve the shared header's place while its fragment is being fetched. */
body:not(:has(header.site-header)) {
    padding-top: 76px;
}

::selection {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

a,
button {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: var(--rfr-red);
}

a:hover {
    color: var(--rfr-red-dark);
}

button:active,
.show-button:active,
.map-attraction:active,
.home-directory-item:active {
    translate: 0 2px;
}

.reveal {
    opacity: 1;
    transform: none;
    transition: none;
}

@media (prefers-reduced-motion: no-preference) {
    body.showground-motion .reveal:not(.in-view) {
        opacity: 0;
        transform: translateY(22px) rotate(0.3deg);
    }

    body.showground-motion .reveal {
        transition: opacity 650ms cubic-bezier(0.16, 1, 0.3, 1), transform 650ms cubic-bezier(0.16, 1, 0.3, 1);
    }
}

.site-page {
    width: min(var(--page-width), calc(100% - 40px));
    padding: 52px 0 74px;
}

.section-panel,
.article-content,
.modal-content,
.summary-page-shell,
.dashboard-sidebar,
.dashboard-section,
.sign-in-card,
.tickets-poster,
.event-facts {
    border: var(--rfr-border);
    border-radius: 4px;
    box-shadow: 8px 8px 0 rgba(127, 21, 32, 0.18), var(--rfr-shadow-small);
    background:
        linear-gradient(rgba(255, 247, 228, 0.94), rgba(255, 247, 228, 0.94)),
        repeating-linear-gradient(0deg, transparent 0 27px, rgba(82, 44, 32, 0.08) 28px 29px);
}

.page-header {
    position: relative;
    margin-bottom: 32px;
    padding: 30px 34px 28px;
    border: var(--rfr-border);
    background: var(--rfr-paper);
    box-shadow: 8px 8px 0 rgba(127, 21, 32, 0.18), var(--rfr-shadow-small);
}

.page-header::before,
.page-header::after {
    content: "";
    position: absolute;
    left: 18px;
    right: 18px;
    height: 5px;
    background: repeating-linear-gradient(90deg, var(--rfr-red) 0 28px, var(--rfr-gold) 28px 56px);
}

.page-header::before { top: 10px; }
.page-header::after { bottom: 10px; }

.page-header-main {
    max-width: 980px;
}

.page-title,
.summary-page-title {
    color: var(--rfr-red);
    letter-spacing: 0.015em;
    text-transform: uppercase;
    text-shadow: 2px 2px 0 var(--rfr-gold);
}

.page-title {
    font-size: clamp(2.45rem, 5vw, 5.3rem);
    line-height: 0.98;
}

.page-summary {
    max-width: 78ch;
    color: var(--rfr-ink);
    font-size: 1.1rem;
    line-height: 1.65;
}

.page-summary-muted {
    color: var(--rfr-ink-soft);
}

.section-title,
.article-section h2,
.stats-group h3,
.summary-section h2,
.dashboard-section-title,
.player-card-name,
.player-stats-name,
#eventTitle,
#bioName {
    color: var(--rfr-red-dark);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.show-button,
.button,
.sign-in-submit,
.dashboard-sign-out {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 19px;
    border: 2px solid var(--rfr-ink);
    border-radius: 3px;
    font-family: 'Bungee', sans-serif;
    font-size: 0.9rem;
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
    box-shadow: 4px 4px 0 rgba(44, 23, 20, 0.92);
    transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.show-button:hover,
.button:hover,
.sign-in-submit:hover,
.dashboard-sign-out:hover {
    transform: translate(-1px, -2px);
    box-shadow: 6px 7px 0 rgba(44, 23, 20, 0.92);
}

.show-button-red,
.button-primary,
.sign-in-submit,
.dashboard-sign-out {
    background: var(--rfr-red);
    color: var(--rfr-paper);
}

.show-button-red:hover,
.button-primary:hover,
.sign-in-submit:hover,
.dashboard-sign-out:hover {
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
}

.show-button-gold {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.show-button-gold:hover {
    background: #f2c65e;
    color: var(--rfr-ink);
}

.show-button-paper,
.button-secondary {
    background: var(--rfr-paper);
    color: var(--rfr-ink);
}

.show-button-paper:hover,
.button-secondary:hover {
    background: #fffdf4;
    color: var(--rfr-ink);
}

.text-button {
    padding: 4px 0 2px;
    border: 0;
    border-bottom: 2px solid currentColor;
    background: transparent;
    color: currentColor;
    font-family: 'Bungee', sans-serif;
    font-size: 0.78rem;
}

/* Header */
header.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    height: 76px;
    border: 0;
    border-bottom: 5px solid var(--rfr-gold);
    background:
        linear-gradient(rgba(142, 20, 31, 0.97), rgba(142, 20, 31, 0.97)),
        repeating-linear-gradient(90deg, transparent 0 50px, rgba(255,255,255,0.08) 50px 100px);
    box-shadow: 0 6px 0 var(--rfr-ink), 0 13px 24px rgba(44, 23, 20, 0.24);
}

.header-container {
    width: min(var(--header-width), calc(100% - 28px));
    height: 71px;
    grid-template-columns: 190px minmax(0, 1fr) auto;
    gap: 16px;
    padding: 0;
}

.header-brand {
    justify-content: flex-start;
    gap: 10px;
    height: 100%;
}

.header-brand .logo {
    height: 58px;
}

.brand-lockup {
    display: grid;
    color: var(--rfr-paper);
    line-height: 1;
}

.brand-lockup strong {
    color: var(--rfr-paper);
    font-size: 1.25rem;
}

.brand-lockup small {
    margin-top: 4px;
    color: var(--rfr-gold);
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.navigation {
    justify-content: center;
}

.navigation-heading,
.navigation-mobile-auth {
    display: none;
}

.navigation ul {
    flex-wrap: nowrap;
    gap: 4px;
}

.navigation li + li::before {
    content: "★";
    margin: 0 5px;
    color: var(--rfr-gold);
    font-size: 0.68rem;
}

.navigation a {
    min-height: 42px;
    padding: 0 2px;
    font-size: clamp(0.72rem, 0.95vw, 0.94rem);
    white-space: nowrap;
}

.navigation a:hover,
.navigation a[aria-current="page"] {
    color: var(--rfr-gold);
    border-color: transparent;
}

.header-actions {
    gap: 10px;
    width: 276px;
    min-height: 38px;
    justify-content: flex-end;
}

.auth-link,
.auth-button {
    min-height: 38px;
    padding: 0 12px;
    border: 2px solid var(--rfr-gold);
    background: var(--rfr-paper);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
    box-shadow: 3px 3px 0 var(--rfr-ink);
}

.auth-link:hover,
.auth-button:hover {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.auth-link-admin,
.auth-link-admin[aria-current="page"] {
    border-color: var(--rfr-paper);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    box-shadow: 3px 3px 0 var(--rfr-paper);
}

.auth-link-admin:hover {
    background: var(--rfr-paper);
    color: var(--rfr-red-dark);
}

.auth-link-account[aria-current="page"] {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.header-greeting {
    display: none;
}

.menu-toggle {
    color: var(--rfr-paper);
}

/* Home entrance */
.page-home .site-header {
    position: relative;
}

.home-page {
    width: 100%;
    flex: 1;
    background: var(--rfr-paper);
    transition: background-color 520ms ease;
}

.showground-hero {
    position: relative;
    isolation: isolate;
    min-height: calc(100dvh - 76px);
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
    grid-template-rows: auto auto;
    align-items: start;
    align-content: start;
    gap: clamp(26px, 6vw, 90px);
    padding: 42px max(5vw, calc((100vw - 1320px) / 2)) 112px;
    overflow: hidden;
    color: var(--rfr-paper);
    background:
        linear-gradient(90deg, rgba(24, 12, 14, 0.88), rgba(24, 12, 14, 0.48) 55%, rgba(24, 12, 14, 0.78)),
        url("images/rfr5-big-top-poster.jpg") center / cover no-repeat;
    border-bottom: 7px solid var(--rfr-gold);
}

.showground-hero::before {
    content: "";
    position: absolute;
    inset: 18px;
    z-index: -1;
    border: 2px solid rgba(224, 170, 62, 0.58);
    pointer-events: none;
}

.showground-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    background:
        radial-gradient(circle at 12% 10%, rgba(255, 225, 139, 0.96) 0 2px, rgba(224, 170, 62, 0.26) 3px 12px, transparent 13px),
        radial-gradient(circle at 35% 7%, rgba(255, 225, 139, 0.96) 0 2px, rgba(224, 170, 62, 0.24) 3px 11px, transparent 12px),
        radial-gradient(circle at 64% 12%, rgba(255, 225, 139, 0.96) 0 2px, rgba(224, 170, 62, 0.24) 3px 11px, transparent 12px),
        radial-gradient(circle at 88% 8%, rgba(255, 225, 139, 0.96) 0 2px, rgba(224, 170, 62, 0.26) 3px 12px, transparent 13px),
        linear-gradient(110deg, rgba(2, 6, 16, 0.89), rgba(17, 7, 28, 0.82));
    transition: opacity 480ms ease;
}

.hero-curtain {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 10;
    width: 50%;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(70, 3, 13, 0.35), transparent 20% 78%, rgba(70, 3, 13, 0.4)),
        repeating-linear-gradient(90deg, #9f1727 0 9%, #c02a38 9% 17%, #7d101e 17% 23%);
    box-shadow: inset -30px 0 50px rgba(38, 5, 10, 0.36);
    transform-origin: top;
    backface-visibility: hidden;
    will-change: transform;
}

.hero-curtain-left { left: 0; }
.hero-curtain-right { right: 0; transform: scaleX(-1); }

@media (prefers-reduced-motion: no-preference) {
    .showground-open .hero-curtain-left {
        animation: curtain-left-grand 1150ms 120ms cubic-bezier(0.77, 0, 0.18, 1) both;
    }

    .showground-open .hero-curtain-right {
        animation: curtain-right-grand 1150ms 120ms cubic-bezier(0.77, 0, 0.18, 1) both;
    }

    .curtain-reluctant.showground-open .hero-curtain-left {
        animation-name: curtain-left-reluctant;
        animation-duration: 1750ms;
    }

    .curtain-reluctant.showground-open .hero-curtain-right {
        animation-duration: 900ms;
    }

    .curtain-peek.showground-open .hero-curtain-left {
        animation-name: curtain-left-peek;
        animation-duration: 1500ms;
    }

    .curtain-peek.showground-open .hero-curtain-right {
        animation-name: curtain-right-peek;
        animation-duration: 1500ms;
    }

    .curtain-crossed.showground-open .hero-curtain-left {
        animation-name: curtain-left-crossed;
        animation-duration: 1400ms;
    }

    .curtain-crossed.showground-open .hero-curtain-right {
        animation-name: curtain-right-crossed;
        animation-duration: 1400ms;
    }

    @keyframes curtain-left-grand {
        from { transform: translateX(0); }
        to { transform: translateX(-106%) skewX(-3deg); }
    }

    @keyframes curtain-right-grand {
        from { transform: translateX(0) scaleX(-1); }
        to { transform: translateX(106%) scaleX(-1) skewX(-3deg); }
    }

    @keyframes curtain-left-reluctant {
        0% { transform: translateX(0); }
        30% { transform: translateX(-22%) rotate(-1deg); }
        44% { transform: translateX(-16%) rotate(1deg); }
        100% { transform: translateX(-106%) rotate(3deg); }
    }

    @keyframes curtain-left-peek {
        0% { transform: translateX(0); }
        58% { transform: translateX(-72%); }
        70% { transform: translateX(-69%); }
        100% { transform: translateX(-106%) skewX(-2deg); }
    }

    @keyframes curtain-right-peek {
        0% { transform: translateX(0) scaleX(-1); }
        58% { transform: translateX(72%) scaleX(-1); }
        70% { transform: translateX(69%) scaleX(-1); }
        100% { transform: translateX(106%) scaleX(-1) skewX(-2deg); }
    }

    @keyframes curtain-left-crossed {
        0% { transform: translateX(0); }
        18% { transform: translateX(5%) rotate(0.5deg); }
        29% { transform: translateX(2%) rotate(-0.5deg); }
        100% { transform: translateX(-106%) skewX(-3deg); }
    }

    @keyframes curtain-right-crossed {
        0% { transform: translateX(0) scaleX(-1); }
        18% { transform: translateX(-5%) scaleX(-1) rotate(0.5deg); }
        29% { transform: translateX(-2%) scaleX(-1) rotate(-0.5deg); }
        100% { transform: translateX(106%) scaleX(-1) skewX(-3deg); }
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-curtain { display: none; }
}

.showground-settled .hero-curtain {
    visibility: hidden;
    will-change: auto;
}

.hero-copy {
    position: relative;
    z-index: 2;
    max-width: 850px;
    margin-top: clamp(20px, 2.25vw, 34px);
}

.hero-kicker {
    display: inline-block;
    margin: 0 0 12px;
    padding: 7px 12px 5px;
    transform: rotate(-1.5deg);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hero-copy h1 {
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(4.4rem, 9.4vw, 9.5rem);
    line-height: 0.79;
    letter-spacing: 0.005em;
    text-transform: uppercase;
    text-shadow:
        3px 3px 0 var(--rfr-red),
        7px 7px 0 var(--rfr-gold-dark),
        11px 11px 0 rgba(26, 12, 13, 0.82);
}

.hero-declaration {
    max-width: 680px;
    margin: 26px 0 0;
    font-size: clamp(1.08rem, 1.8vw, 1.45rem);
    font-weight: 600;
    line-height: 1.45;
    color: #fff5d8;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.hero-champion {
    position: relative;
    z-index: 2;
    display: grid;
    justify-items: center;
    align-content: center;
    min-height: 430px;
    padding: 42px 30px 34px;
    border: 5px double var(--rfr-gold);
    background: rgba(118, 12, 26, 0.92);
    box-shadow: 10px 10px 0 rgba(16, 8, 9, 0.72);
    text-align: center;
    transform: rotate(1.5deg);
    margin-top: clamp(20px, 2.25vw, 34px);
}

.hero-champion::before {
    content: "";
    position: absolute;
    inset: 9px;
    border: 1px solid rgba(255, 244, 210, 0.46);
    pointer-events: none;
}

.hero-champion p {
    margin: 0 0 14px;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
}

.hero-champion img {
    width: 180px;
    aspect-ratio: 1;
    border: 7px solid var(--rfr-paper);
    outline: 3px solid var(--rfr-gold);
    border-radius: 50%;
    object-fit: cover;
    filter: saturate(0.92) contrast(1.04);
}

.hero-champion strong {
    max-width: 290px;
    margin-top: 22px;
    color: var(--rfr-paper);
    font-size: 1.12rem;
    line-height: 1.25;
}

.hero-champion > span:not(.champion-rosette) {
    margin-top: 8px;
    color: rgba(255, 247, 228, 0.78);
}

.hero-rfr5-mark {
    position: relative;
    z-index: 2;
    grid-column: 1 / -1;
    justify-self: center;
    width: clamp(405px, 40.5vw, 570px);
    margin-top: clamp(-24px, -1.5vw, -12px);
    filter: drop-shadow(0 12px 8px rgba(12, 6, 8, 0.66));
}

.hero-rfr5-mark img {
    display: block;
    width: 100%;
    height: auto;
}

.champion-rosette {
    position: absolute;
    top: -28px;
    right: -22px;
    width: 88px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: repeating-conic-gradient(var(--rfr-gold) 0 12deg, #f4cf73 12deg 24deg);
    color: var(--rfr-red-dark);
    box-shadow: 0 0 0 5px var(--rfr-red-dark), 0 0 0 8px var(--rfr-gold);
}

.champion-rosette span {
    width: 58px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
}

.hero-ticker {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    overflow: hidden;
    border-top: 3px solid var(--rfr-ink);
    border-bottom: 3px solid var(--rfr-ink);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.78rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.hero-ticker-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 0;
    padding: 10px 0 8px;
}

.hero-ticker-sequence {
    display: flex;
    align-items: center;
    gap: 26px;
    padding-right: 26px;
}

.hero-ticker b { color: var(--rfr-red); }

@media (prefers-reduced-motion: no-preference) {
    .hero-ticker-track { animation: ticketRoll 105s linear infinite; }
    @keyframes ticketRoll { to { transform: translateX(-50%); } }
}

.home-noticeboard,
.home-sideshow,
.home-lucky-dip,
.home-proclamation {
    width: min(var(--page-width), calc(100% - 40px));
    margin-inline: auto;
}

.home-noticeboard {
    position: relative;
    margin-top: 64px;
    padding: clamp(26px, 4vw, 52px);
    border: 12px solid #744222;
    outline: 3px solid var(--rfr-ink);
    background:
        linear-gradient(rgba(244, 224, 181, 0.93), rgba(244, 224, 181, 0.93)),
        url("images/events/RFR3-23-thumb.jpg") center / cover;
    box-shadow: inset 0 0 38px rgba(78, 42, 23, 0.22), var(--rfr-shadow);
}

.home-noticeboard::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 2px dashed rgba(79, 40, 27, 0.26);
    pointer-events: none;
}

.noticeboard-title {
    position: relative;
    z-index: 1;
    width: fit-content;
    margin: -84px 0 34px 3%;
    padding: 16px 32px 13px;
    transform: rotate(-1.1deg);
    border: var(--rfr-border);
    background: var(--rfr-red);
    box-shadow: 6px 6px 0 var(--rfr-ink);
    color: var(--rfr-paper);
}

.noticeboard-title p,
.noticeboard-title h2 { margin: 0; }
.noticeboard-title p { color: var(--rfr-gold); font-size: 0.85rem; }
.noticeboard-title h2 { font-family: 'Bungee', sans-serif; font-size: clamp(1.6rem, 3vw, 2.7rem); text-transform: uppercase; }

.showground-map {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 18px;
}

.map-attraction {
    grid-column: span 4;
    min-height: 150px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 21px;
    border: 2px solid var(--rfr-ink);
    background: var(--rfr-paper);
    color: var(--rfr-ink);
    text-decoration: none;
    box-shadow: 5px 5px 0 rgba(44, 23, 20, 0.9);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.map-attraction:nth-child(2),
.map-attraction:nth-child(6) { transform: rotate(0.6deg); }
.map-attraction:nth-child(3),
.map-attraction:nth-child(8) { transform: rotate(-0.7deg); }

.map-attraction:hover {
    transform: translate(-2px, -4px) rotate(0deg);
    box-shadow: 8px 10px 0 rgba(44, 23, 20, 0.9);
    color: var(--rfr-ink);
}

.map-attraction-featured {
    grid-column: span 8;
    color: var(--rfr-paper);
    background:
        linear-gradient(90deg, rgba(118, 12, 26, 0.96), rgba(118, 12, 26, 0.72)),
        url("images/rfr5-big-top-poster.jpg") center 48% / cover;
}

.map-attraction-featured:hover { color: var(--rfr-paper); }

.map-icon,
.map-number {
    flex: 0 0 62px;
    width: 62px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border: 3px double currentColor;
    border-radius: 50%;
    font-family: 'Bungee', sans-serif;
    font-size: 1.8rem;
}

.map-number {
    width: 96px;
    flex-basis: 96px;
    color: var(--rfr-gold);
    font-size: 3.8rem;
}

.map-attraction h3 {
    margin: 0 0 5px;
    color: inherit;
    font-family: 'Bungee', sans-serif;
    font-size: 1rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.map-attraction p {
    margin: 0;
    color: inherit;
    line-height: 1.35;
    opacity: 0.82;
}

.home-sideshow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 24px;
    margin-top: 72px;
}

.sideshow-stat,
.sideshow-photo,
.sideshow-fortune {
    min-width: 0;
    position: relative;
}

.sideshow-stat,
.sideshow-fortune {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 440px;
    padding: 34px;
    border: var(--rfr-border);
    box-shadow: 7px 7px 0 var(--rfr-ink);
}

.sideshow-stat {
    box-sizing: border-box;
    inline-size: 100%;
    block-size: 440px;
    min-block-size: 440px;
    max-block-size: 440px;
    overflow: hidden;
    contain: size;
    transform: rotate(-1deg);
    background: var(--rfr-paper);
}

.sideshow-stat p,
.sideshow-fortune > p {
    margin: 0 0 14px;
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.sideshow-stat > strong {
    width: 100%;
    min-height: 0.9em;
    display: flex;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
    color: var(--rfr-red);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(3.75rem, 7vw, 6rem);
    letter-spacing: -0.025em;
    line-height: 0.9;
    text-shadow: 3px 3px 0 var(--rfr-gold);
}

.sideshow-stat h2,
.sideshow-fortune h2 {
    margin: 14px 0 24px;
    color: inherit;
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.25rem, 2.2vw, 2rem);
    line-height: 1.12;
    text-transform: uppercase;
}

.sideshow-stat h2 {
    min-height: 3.4em;
    display: flex;
    align-items: center;
}

.sideshow-photo {
    min-height: 440px;
    margin: 0;
    padding: 12px 12px 44px;
    transform: rotate(0.8deg) translateY(10px);
    border: var(--rfr-border);
    background: var(--rfr-paper);
    box-shadow: 7px 7px 0 var(--rfr-ink);
}

.sideshow-photo img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
    filter: sepia(0.1) contrast(1.05);
}

.sideshow-photo figcaption {
    margin-top: 11px;
    text-align: center;
    font-weight: 700;
}

.sideshow-fortune {
    overflow: hidden;
    color: var(--rfr-paper);
    background:
        radial-gradient(circle at 50% 35%, rgba(224, 170, 62, 0.24), transparent 32%),
        var(--rfr-night);
    transform: rotate(0.6deg);
    text-align: center;
}

.sideshow-fortune::before {
    content: "✦  ✧  ✦  ✧  ✦  ✧  ✦";
    position: absolute;
    top: 18px;
    left: 0;
    right: 0;
    color: var(--rfr-gold);
    letter-spacing: 0.35em;
}

.sideshow-fortune > p { color: rgba(255, 247, 228, 0.72); text-transform: none; font-family: inherit; font-size: 1rem; }

.fortune-star {
    color: var(--rfr-gold);
    font-size: 4.5rem;
    line-height: 1;
}

.home-lucky-dip {
    display: grid;
    grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1.35fr);
    gap: 42px;
    align-items: center;
    margin-top: 84px;
    padding: 48px;
    border: var(--rfr-border);
    background: var(--rfr-red);
    box-shadow: 10px 10px 0 var(--rfr-gold-dark);
    color: var(--rfr-paper);
}

.lucky-copy h2 {
    margin: 0;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.4rem, 5vw, 5rem);
    line-height: 0.94;
    text-transform: uppercase;
}

.lucky-copy p {
    max-width: 42ch;
    margin: 20px 0 25px;
    color: rgba(255, 247, 228, 0.88);
    font-size: 1.08rem;
}

.lucky-photo {
    position: relative;
    margin: 0;
    padding: 14px 14px 46px;
    transform: rotate(1.2deg);
    background: var(--rfr-paper);
    color: var(--rfr-ink);
    box-shadow: 10px 10px 0 rgba(44, 23, 20, 0.58);
}

.lucky-photo::before {
    content: "LUCKY DIP";
    position: absolute;
    top: -16px;
    right: 22px;
    padding: 7px 10px;
    transform: rotate(2deg);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
}

.lucky-photo img {
    width: 100%;
    height: min(52vw, 520px);
    min-height: 320px;
    object-fit: cover;
}

.lucky-photo figcaption {
    margin-top: 12px;
    text-align: center;
    font-weight: 700;
}

.home-proclamation {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr) auto;
    align-items: center;
    gap: 30px;
    margin-top: 84px;
    margin-bottom: 84px;
    padding: 34px 40px;
    border: 5px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-night);
    color: var(--rfr-paper);
    box-shadow: 9px 9px 0 var(--rfr-red);
}

.proclamation-mark {
    width: 86px;
}

.home-proclamation p,
.home-proclamation h2 { margin: 0; }
.home-proclamation p { color: var(--rfr-gold); text-transform: uppercase; font-size: 0.8rem; }
.home-proclamation h2 { margin-top: 5px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(1.15rem, 2vw, 1.8rem); line-height: 1.25; }

/* Footer */
.site-footer {
    position: relative;
    margin-top: auto;
    padding: 50px 20px 22px;
    border-top: 7px solid var(--rfr-gold);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    text-align: left;
}

.footer-bunting {
    position: absolute;
    top: -4px;
    left: 0;
    right: 0;
    height: 30px;
    background: repeating-conic-gradient(from 45deg at 50% 0, var(--rfr-gold) 0 25%, transparent 0 50%) 0 0 / 54px 30px;
}

.footer-inner {
    width: min(var(--page-width), 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
}

.footer-mark { display: inline-flex; }
.footer-mark img { height: 68px; width: auto; }
.footer-copy strong { color: var(--rfr-paper); font-size: 1.1rem; }
.footer-copy p { margin: 3px 0 0; color: rgba(255,247,228,0.72); }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 20px; }
.footer-links a,
.footer-secret { color: var(--rfr-gold); font-weight: 700; background: none; border: 0; padding: 0; text-decoration: underline; text-underline-offset: 0.18em; }
.footer-small { width: min(var(--page-width), 100%); margin: 24px auto 0; padding-top: 18px; border-top: 1px solid rgba(255,247,228,0.2); color: rgba(255,247,228,0.58); text-align: center; font-size: 0.8rem; }

/* Dialogs */
dialog {
    color: var(--rfr-ink);
}

dialog::backdrop {
    background: rgba(25, 10, 12, 0.78);
    backdrop-filter: blur(4px);
}

.fortune-dialog {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    width: min(900px, calc(100% - 32px));
    max-height: min(720px, calc(100dvh - 24px));
    margin: auto;
    overflow-y: auto;
    padding: 18px;
    border: 5px double var(--rfr-gold);
    outline: 3px solid var(--rfr-paper);
    background:
        radial-gradient(circle at 71% 43%, rgba(224, 170, 62, 0.18), transparent 34%),
        repeating-linear-gradient(135deg, rgba(255,255,255,0.018) 0 4px, transparent 4px 10px),
        var(--rfr-night);
    box-shadow: 12px 12px 0 var(--rfr-red-dark);
    color: var(--rfr-paper);
    text-align: center;
}

.fortune-dialog[open] {
    display: block;
}

.fortune-dialog::before,
.fortune-dialog::after {
    content: "";
    position: absolute;
    z-index: 2;
    left: 22px;
    right: 22px;
    height: 10px;
    pointer-events: none;
    background: radial-gradient(circle, var(--rfr-gold) 0 3px, transparent 3.5px) 0 50% / 20px 10px repeat-x;
}

.fortune-dialog::before { top: 8px; }
.fortune-dialog::after { bottom: 8px; }

.fortune-dialog-stage {
    position: relative;
    display: grid;
    grid-template-columns: minmax(220px, 0.82fr) minmax(285px, 1.18fr);
    gap: 24px;
    padding: 17px;
    border: 2px solid rgba(224, 170, 62, 0.58);
    background:
        linear-gradient(90deg, rgba(127,21,32,0.13), transparent 48%),
        rgba(5, 11, 24, 0.42);
}

.fortune-dialog-stage::before,
.fortune-dialog-stage::after {
    position: absolute;
    z-index: 3;
    color: var(--rfr-gold);
    font-size: 1.15rem;
    line-height: 1;
    pointer-events: none;
}

.fortune-dialog-stage::before { content: "✦"; top: 7px; left: 8px; }
.fortune-dialog-stage::after { content: "✦"; right: 8px; bottom: 7px; }

.fortune-madame {
    position: relative;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 3px solid var(--rfr-gold-dark);
    outline: 1px solid rgba(255,247,228,0.76);
    background: #25141a;
    box-shadow: 7px 7px 0 rgba(0,0,0,0.38);
}

.fortune-madame::after {
    content: "";
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 42px rgba(8,8,12,0.62);
    pointer-events: none;
}

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

.fortune-madame figcaption {
    position: absolute;
    z-index: 2;
    right: 14px;
    bottom: 14px;
    left: 14px;
    padding: 10px 12px 9px;
    transform: rotate(-0.8deg);
    border: 3px double var(--rfr-gold);
    background: rgba(35, 11, 22, 0.92);
    box-shadow: 4px 4px 0 rgba(0,0,0,0.38);
}

.fortune-madame figcaption span {
    display: block;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fortune-madame h2 {
    margin: 2px 0 0;
    color: var(--rfr-paper);
    font-family: 'Rye', serif;
    font-size: clamp(1.45rem, 2.6vw, 2.25rem);
    font-weight: 400;
    line-height: 1;
}

.fortune-reading {
    position: relative;
    min-width: 0;
    display: grid;
    grid-template-rows: auto minmax(190px, 0.95fr) minmax(150px, auto) auto;
    align-items: center;
    gap: 10px;
    padding: 13px 10px 8px;
}

.fortune-reading::before,
.fortune-reading::after {
    content: "☾";
    position: absolute;
    top: 48%;
    color: rgba(224, 170, 62, 0.3);
    font-family: serif;
    font-size: 2rem;
    pointer-events: none;
}

.fortune-reading::before { left: 3%; transform: rotate(-18deg); }
.fortune-reading::after { content: "✦"; right: 3%; transform: rotate(13deg); }

.fortune-card-stage {
    position: relative;
    min-height: 190px;
    display: grid;
    place-items: center;
    perspective: 900px;
}

.fortune-card-stage::before {
    content: "";
    position: absolute;
    width: 260px;
    max-width: 76%;
    aspect-ratio: 1;
    opacity: 0.42;
    background: repeating-conic-gradient(from 6deg, rgba(224,170,62,0.24) 0 2deg, transparent 2deg 18deg);
    -webkit-mask: radial-gradient(circle, transparent 0 43%, #000 44% 63%, transparent 64%);
    mask: radial-gradient(circle, transparent 0 43%, #000 44% 63%, transparent 64%);
}

.fortune-card {
    position: relative;
    z-index: 1;
    width: 126px;
    aspect-ratio: 2 / 3;
    margin: 0 auto;
    overflow: hidden;
    transform: rotate(-3deg);
    border: 3px solid var(--rfr-gold);
    outline: 1px solid var(--rfr-paper);
    background: var(--rfr-red-dark);
    box-shadow: 8px 9px 0 rgba(0,0,0,0.45);
    transform-origin: 50% 100%;
}

.fortune-card-art {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.fortune-card-crest {
    position: absolute;
    top: 43%;
    left: 50%;
    width: 34%;
    height: 37%;
    transform: translate(-50%, -50%);
    object-fit: contain;
    filter: drop-shadow(0 2px 0 rgba(0,0,0,0.54));
}

.fortune-prophecy {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    block-size: 190px;
    min-block-size: 190px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 9px;
    padding: 18px 22px 15px;
    border: 5px double var(--rfr-gold-dark);
    outline: 1px solid rgba(255,247,228,0.58);
    background:
        linear-gradient(rgba(255,247,228,0.94), rgba(247,232,197,0.94)),
        repeating-linear-gradient(0deg, transparent 0 13px, rgba(127,21,32,0.06) 13px 14px);
    box-shadow: 5px 5px 0 rgba(0,0,0,0.38), inset 0 0 24px rgba(127,21,32,0.08);
    color: var(--rfr-ink);
}

.fortune-prophecy::before,
.fortune-prophecy::after {
    content: "✦";
    position: absolute;
    color: var(--rfr-red);
    font-size: 0.72rem;
}

.fortune-prophecy::before { top: 7px; left: 9px; }
.fortune-prophecy::after { right: 9px; bottom: 7px; }

.dialog-close {
    position: absolute;
    z-index: 6;
    top: 10px;
    right: 12px;
    width: 38px;
    height: 38px;
    border: 2px solid var(--rfr-gold);
    border-radius: 50%;
    background: transparent;
    color: var(--rfr-paper);
    font-size: 1.6rem;
    line-height: 1;
}

.fortune-overline { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase; }
.fortune-result { min-block-size: calc(3 * 1.28em); display: grid; place-items: center; margin: 0; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: clamp(0.92rem, 1.55vw, 1.18rem); line-height: 1.28; text-wrap: balance; }
.fortune-dialog .text-button { color: var(--rfr-gold); }

.showground-toast {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 50;
    width: min(460px, calc(100% - 32px));
    padding: 15px 20px;
    transform: translate(-50%, 150%);
    border: 3px solid var(--rfr-gold);
    background: var(--rfr-night);
    color: var(--rfr-paper);
    box-shadow: 6px 6px 0 var(--rfr-red);
    font-weight: 700;
    text-align: center;
    transition: transform 250ms cubic-bezier(0.16, 1, 0.3, 1);
}

.showground-toast.is-visible { transform: translate(-50%, 0); }

/* Travelling history */
.history-page { padding-top: 46px; }

.history-hero {
    height: min(560px, calc(100dvh - 118px));
    min-height: 480px;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(430px, 0.92fr);
    overflow: hidden;
    border: var(--rfr-border);
    background: var(--rfr-night);
    box-shadow: 10px 10px 0 rgba(127, 21, 32, 0.44), var(--rfr-shadow);
}

.history-hero-copy {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(42px, 6vw, 78px);
    color: var(--rfr-paper);
    background:
        linear-gradient(100deg, rgba(127, 21, 32, 0.98), rgba(127, 21, 32, 0.91)),
        repeating-linear-gradient(90deg, transparent 0 44px, rgba(255,255,255,0.08) 44px 88px);
}

.history-hero-copy::after {
    content: "";
    position: absolute;
    inset: 18px;
    border: 5px double var(--rfr-gold);
    pointer-events: none;
}

.history-hero-copy > * {
    position: relative;
    z-index: 1;
}

.history-hero-copy .page-stamp {
    align-self: flex-start;
    margin: 0 0 18px;
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.history-hero-copy h1 {
    max-width: 650px;
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(3rem, 6vw, 6.5rem);
    line-height: 0.96;
    text-shadow: 3px 3px 0 var(--rfr-gold-dark);
    text-transform: uppercase;
}

.history-hero-copy > p:last-child {
    max-width: 53ch;
    margin: 24px 0 0;
    color: rgba(255, 247, 228, 0.86);
    font-size: 1.12rem;
    line-height: 1.55;
}

.history-hero-collage {
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 14px;
    overflow: hidden;
    background: var(--rfr-gold-dark);
}

.history-hero-tile {
    min-width: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 4px solid var(--rfr-paper);
    overflow: hidden;
}

.history-hero-year {
    display: grid;
    place-items: center;
    border-color: var(--rfr-gold);
    background:
        radial-gradient(circle at 50% 45%, rgba(224, 170, 62, 0.08), transparent 44%),
        #090909;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.4rem, 5vw, 5.8rem);
    line-height: 1;
    text-shadow: 3px 3px 0 rgba(127, 21, 32, 0.5);
}

.history-hero-logo {
    position: relative;
    overflow: hidden;
}

.history-hero-logo img {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: 76%;
    max-width: 84%;
    max-height: none;
    object-fit: contain;
    transform: translate(-50%, -50%);
    filter: saturate(0.9) contrast(1.04);
}

.history-hero-logo-original { background: #17110f; }
.history-hero-logo-three { background: #9a9a94; }
.history-hero-logo-four { background: #44270f; }
.history-hero-logo-original img { height: 72%; }
.history-hero-logo-three img { height: 83%; }
.history-hero-logo-four img { height: 76%; }

.history-timeline {
    position: relative;
    margin-top: 86px;
}

.history-timeline-heading {
    max-width: 760px;
    margin-bottom: 48px;
    padding: 0 0 22px 28px;
    border-left: 8px solid var(--rfr-red);
    border-bottom: 3px double var(--rfr-gold-dark);
}

.history-timeline-heading h2 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.2rem, 5vw, 4.8rem);
    line-height: 1;
    text-transform: uppercase;
}

.history-timeline-heading p {
    max-width: 62ch;
    margin: 14px 0 0;
    color: var(--rfr-ink-soft);
    font-size: 1.08rem;
}

.history-ephemera {
    position: relative;
    z-index: 2;
    justify-self: center;
    align-self: center;
    max-width: 100%;
    height: auto;
    pointer-events: none;
    filter: drop-shadow(7px 9px 0 rgba(127, 21, 32, 0.18));
    user-select: none;
}

.history-ephemera-heading {
    position: absolute;
    top: -70px;
    right: 44px;
    width: 250px;
    transform: rotate(4deg);
}

.history-ephemera-poker {
    grid-column: 8 / 12;
    grid-row: 1;
    width: 270px;
    transform: translate(8px, 20px) rotate(7deg);
}

.history-ephemera-modern-poker {
    grid-column: 1 / 6;
    grid-row: 1;
    width: 290px;
    transform: translate(-8px, 8px) rotate(-5deg);
}

.history-ephemera-prohibition {
    grid-column: 8 / 13;
    grid-row: 1;
    width: 300px;
    transform: translate(22px, 12px) rotate(5deg);
}

.history-ephemera-western {
    grid-column: 1 / 6;
    grid-row: 1;
    width: 310px;
    transform: translate(-20px, 22px) rotate(-6deg);
}

.history-route {
    position: relative;
    display: grid;
    gap: 64px;
    margin: 0;
    padding: 0 0 26px;
    list-style: none;
}

.history-route::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 14px;
    bottom: 26px;
    left: 50%;
    width: 13px;
    transform: translateX(-50%);
    border: 2px solid var(--rfr-ink);
    background: repeating-linear-gradient(0deg, var(--rfr-red) 0 24px, var(--rfr-gold) 24px 48px);
    box-shadow: 3px 0 0 rgba(44, 23, 20, 0.18);
}

.history-stop {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-width: 0;
}

.history-route-marker {
    position: absolute;
    z-index: 3;
    top: 30px;
    left: 50%;
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    transform: translateX(-50%) rotate(-3deg);
    border: 5px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: 0.8rem;
    line-height: 1;
    box-shadow: 4px 4px 0 rgba(44, 23, 20, 0.34);
}

.history-route-marker-origin {
    width: 196px;
    height: auto;
    min-height: 62px;
    padding: 9px 16px;
    line-height: 1.16;
    text-align: center;
}

.history-stop:nth-child(even) .history-route-marker { transform: translateX(-50%) rotate(3deg); }

.history-card {
    min-width: 0;
    border: var(--rfr-border);
    border-radius: 3px;
    background: var(--rfr-paper);
    box-shadow: 8px 8px 0 rgba(127, 21, 32, 0.34), var(--rfr-shadow-small);
}

.history-stop-left .history-card {
    grid-column: 1 / 6;
    margin-right: 14px;
}

.history-stop-right .history-card {
    grid-column: 8 / 13;
    margin-left: 14px;
}

.history-date {
    display: block;
    margin: 0 0 9px;
    color: var(--rfr-red);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.history-card h3 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.45rem, 3vw, 2.5rem);
    line-height: 1.06;
    text-transform: uppercase;
}

.history-origin-card {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(330px, 0.84fr);
    overflow: hidden;
    border: 8px double var(--rfr-gold-dark);
    outline: 3px solid var(--rfr-ink);
    background:
        repeating-linear-gradient(0deg, transparent 0 28px, rgba(82, 44, 32, 0.1) 29px 30px),
        var(--rfr-paper);
    box-shadow: 12px 12px 0 var(--rfr-red-dark);
}

.history-stop-origin .history-route-marker { top: -25px; }

.history-origin-story {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(38px, 6vw, 72px);
}

.history-origin-story h3 {
    max-width: 700px;
    font-size: clamp(2.4rem, 5.8vw, 5.7rem);
}

.history-origin-story > p:not(.history-date) {
    max-width: 72ch;
    color: var(--rfr-ink);
    font-size: 1.02rem;
    line-height: 1.72;
}

.history-origin-story .history-origin-lead {
    margin: 22px 0;
    color: var(--rfr-red-dark);
    font-family: 'Caveat', cursive;
    font-size: clamp(1.75rem, 3vw, 2.6rem);
    font-weight: 700;
    line-height: 1.15;
}

.history-name-correction {
    display: grid;
    justify-items: start;
    gap: 16px;
    margin-top: clamp(36px, 5vw, 66px);
}

.history-name-correction .history-wrong-name {
    position: relative;
    color: rgba(44, 23, 20, 0.62);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.55rem, 3.3vw, 3.45rem);
    line-height: 1.08;
    text-decoration-color: var(--rfr-red);
    text-decoration-line: line-through;
    text-decoration-thickness: 0.12em;
}

.history-name-correction .history-wrong-name:hover,
.history-name-correction .history-wrong-name:focus-visible {
    color: var(--rfr-red-dark);
    text-decoration-color: var(--rfr-gold-dark);
    transform: rotate(-1deg);
}

.history-name-correction strong {
    color: var(--rfr-red-dark);
    font-family: 'Caveat', cursive;
    font-size: clamp(3.1rem, 6.4vw, 6.8rem);
    font-weight: 700;
    line-height: 0.92;
    transform: rotate(-2deg);
}

.history-origin-verdict {
    width: min(360px, 100%);
    display: grid;
    gap: 4px;
    margin-top: 30px;
    padding: 16px 20px;
    transform: rotate(-2deg);
    border: 6px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
}

.history-origin-verdict span { font-size: 0.62rem; }
.history-origin-verdict strong { color: var(--rfr-red-dark); font-size: 1.35rem; }

.history-chat-slot {
    display: grid;
    align-content: center;
    gap: 14px;
    margin: 0;
    padding: clamp(34px, 5vw, 58px);
    border-left: 4px dashed var(--rfr-gold-dark);
    background: #e4c987;
}

.history-chat-placeholder {
    aspect-ratio: 4 / 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px;
    border: 4px dashed var(--rfr-red-dark);
    outline: 8px solid rgba(255, 247, 228, 0.48);
    background:
        repeating-linear-gradient(-45deg, rgba(255,247,228,0.72) 0 18px, rgba(224,170,62,0.12) 18px 36px),
        var(--rfr-paper);
    color: var(--rfr-ink);
    text-align: center;
}

.history-chat-placeholder span {
    color: var(--rfr-red);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    text-transform: uppercase;
}

.history-chat-placeholder strong {
    max-width: 12ch;
    margin-top: 12px;
    color: var(--rfr-red-dark);
    font-size: clamp(1.25rem, 2.4vw, 2rem);
    line-height: 1.1;
    text-transform: uppercase;
}

.history-chat-placeholder p {
    max-width: 26ch;
    margin: 14px 0 0;
    color: var(--rfr-ink-soft);
    line-height: 1.4;
}

.history-chat-evidence {
    display: block;
    width: min(100%, 330px);
    height: auto;
    justify-self: center;
    transform: rotate(1deg);
    border: 8px solid var(--rfr-paper);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-night);
    box-shadow: 9px 10px 0 rgba(127, 21, 32, 0.28);
}

.history-chat-slot figcaption {
    color: var(--rfr-ink-soft);
    font-family: 'Caveat', cursive;
    font-size: 1.3rem;
    line-height: 1.2;
    text-align: center;
}

.history-event-card { overflow: hidden; }

.history-event-photo {
    height: 250px;
    margin: 0;
    overflow: hidden;
    border-bottom: 6px double var(--rfr-gold-dark);
    background: var(--rfr-night);
}

.history-event-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.85) contrast(1.03);
    transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}

.history-event-card:hover .history-event-photo img { transform: scale(1.025); }
.history-event-photo-rfr1 img { object-position: center 64%; }
.history-event-photo-rfr4 img { object-position: center 52%; }

.history-event-copy { padding: 28px; }

.history-event-copy > p {
    margin: 18px 0 0;
    color: var(--rfr-ink-soft);
    line-height: 1.62;
}

.history-event-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 24px 0 0;
    padding-top: 16px;
    border-top: 4px double var(--rfr-gold-dark);
}

.history-event-facts div { min-width: 0; padding: 0 12px; }
.history-event-facts div:first-child { padding-left: 0; }
.history-event-facts div + div { border-left: 1px solid rgba(127, 21, 32, 0.32); }

.history-event-facts dt {
    color: var(--rfr-red);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    text-transform: uppercase;
}

.history-event-facts dd {
    margin: 4px 0 0;
    color: var(--rfr-ink);
    line-height: 1.25;
}

.history-arrival-card {
    grid-column: 3 / 11;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) 132px;
    align-items: center;
    gap: 28px;
    padding: 28px;
    border: 7px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    box-shadow: 10px 10px 0 var(--rfr-gold-dark);
}

.history-arrival-card figure {
    margin: 0;
    padding: 8px;
    transform: rotate(-2deg);
    border: 3px solid var(--rfr-ink);
    background: var(--rfr-paper);
    box-shadow: 5px 5px 0 rgba(44, 23, 20, 0.5);
}

.history-arrival-card figure img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.history-arrival-card .history-date { color: var(--rfr-gold); }
.history-arrival-card h3 { color: var(--rfr-paper); }
.history-arrival-card p:last-child { margin: 14px 0 0; color: rgba(255, 247, 228, 0.82); line-height: 1.55; }

.history-six {
    display: grid;
    place-items: center;
    align-content: center;
    min-height: 130px;
    transform: rotate(3deg);
    border: 5px double var(--rfr-gold);
    color: var(--rfr-gold);
    font-size: 2.6rem;
    line-height: 0.92;
    text-align: center;
}

.history-six span { margin: 5px 0; color: var(--rfr-paper); font-size: 0.5rem; text-transform: uppercase; }

.history-next-card {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(360px, 0.86fr) minmax(0, 1.14fr);
    overflow: hidden;
    border: 8px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-night);
    color: var(--rfr-paper);
    box-shadow: 12px 12px 0 var(--rfr-red);
}

.history-stop-next .history-route-marker { top: -24px; }
.history-next-card figure { min-height: 430px; margin: 0; border-right: 5px solid var(--rfr-gold-dark); }
.history-next-card figure img { width: 100%; height: 100%; object-fit: contain; object-position: center; }

.history-next-card > div {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(38px, 6vw, 76px);
}

.history-next-card .history-date { color: var(--rfr-gold); }
.history-next-card h3 { color: var(--rfr-paper); font-size: clamp(2.3rem, 5vw, 5rem); }
.history-next-card > div > p { max-width: 60ch; margin: 20px 0 0; color: rgba(255, 247, 228, 0.78); font-size: 1.04rem; line-height: 1.62; }
.history-next-card .history-event-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); border-color: var(--rfr-gold); }
.history-next-card .history-event-facts div + div { border-color: rgba(224, 170, 62, 0.45); }
.history-next-card .history-event-facts dt { color: var(--rfr-gold); }
.history-next-card .history-event-facts dd { color: var(--rfr-paper); }
.history-next-card .show-button { align-self: flex-start; margin-top: 28px; }

@media (prefers-reduced-motion: no-preference) {
    body.showground-motion .history-stop.reveal,
    body.showground-motion .history-stop.reveal:not(.in-view) {
        opacity: 1;
        transform: none;
        transition: none;
    }

    body.showground-motion .history-stop.reveal .history-card {
        transform: translateY(20px);
        transition: transform 620ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    body.showground-motion .history-stop.reveal.in-view .history-card { transform: none; }
    .history-stop.reveal.in-view .history-route-marker { animation: history-marker-arrival 520ms cubic-bezier(0.16, 1, 0.3, 1) both; }
}

@keyframes history-marker-arrival {
    0% { opacity: 0; transform: translateX(-50%) scale(0.55) rotate(-12deg); }
    75% { opacity: 1; transform: translateX(-50%) scale(1.08) rotate(2deg); }
    100% { opacity: 1; transform: translateX(-50%) scale(1) rotate(-3deg); }
}

@media (min-width: 861px) {
    .history-stop-origin,
    .history-stop-arrival,
    .history-stop-next { padding-top: 76px; }

    .history-stop-origin .history-route-marker,
    .history-stop-arrival .history-route-marker,
    .history-stop-next .history-route-marker { top: 0; }
}

@media (max-width: 1040px) {
    .history-hero { grid-template-columns: minmax(0, 1fr) 400px; }
    .history-stop-left .history-card { grid-column: 1 / 7; }
    .history-stop-right .history-card { grid-column: 7 / 13; }
    .history-arrival-card { grid-column: 2 / 12; }
    .history-ephemera-heading { right: 22px; width: 210px; }
    .history-ephemera-poker { grid-column: 8 / 13; width: 235px; }
    .history-ephemera-modern-poker { grid-column: 1 / 6; width: 245px; }
    .history-ephemera-prohibition { grid-column: 8 / 13; width: 250px; }
    .history-ephemera-western { grid-column: 1 / 6; width: 255px; }
}

@media (max-width: 860px) {
    .history-page { padding-top: 32px; }
    .history-hero { height: auto; grid-template-columns: minmax(0, 1fr); }
    .history-hero-copy { min-height: 430px; }
    .history-hero-collage { min-height: 480px; }
    .history-ephemera { display: none; }
    .history-origin-card { grid-template-columns: minmax(0, 1fr); }
    .history-chat-slot { border-left: 0; border-top: 4px dashed var(--rfr-gold-dark); }
    .history-chat-placeholder { max-width: 430px; width: 100%; justify-self: center; }

    .history-route::before { left: 31px; transform: none; }
    .history-route-marker { left: 37px; transform: translateX(-50%) rotate(-3deg); }
    .history-route-marker-origin { left: 72px; width: 136px; height: auto; min-height: 62px; padding: 8px 12px; font-size: 0.58rem; }
    .history-stop { padding-left: 82px; }
    .history-stop-origin,
    .history-stop-next { padding-left: 82px; }
    .history-stop-left .history-card,
    .history-stop-right .history-card,
    .history-arrival-card,
    .history-origin-card,
    .history-next-card { grid-column: 1 / -1; margin: 0; }
    .history-stop-origin .history-route-marker,
    .history-stop-next .history-route-marker { top: 28px; }
    .history-arrival-card { grid-template-columns: 150px minmax(0, 1fr); }
    .history-six { display: none; }
    .history-next-card { grid-template-columns: minmax(0, 1fr); }
    .history-next-card figure { min-height: 360px; border-right: 0; border-bottom: 5px solid var(--rfr-gold-dark); }
}

@media (max-width: 620px) {
    .history-hero-copy { min-height: 390px; padding: 38px 30px; }
    .history-hero-copy::after { inset: 11px; }
    .history-hero-copy h1 { font-size: clamp(2.7rem, 14vw, 4.4rem); }
    .history-hero-collage { min-height: 370px; padding: 9px; gap: 5px; }
    .history-hero-collage img { border-width: 3px; }
    .history-timeline { margin-top: 62px; }
    .history-timeline-heading { padding-left: 18px; }
    .history-route { gap: 48px; }
    .history-route::before { left: 17px; width: 10px; }
    .history-stop,
    .history-stop-origin,
    .history-stop-next { padding-left: 50px; }
    .history-route-marker { left: 22px; width: 48px; height: 48px; border-width: 4px; outline-width: 2px; font-size: 0.64rem; }
    .history-route-marker-origin { left: 56px; width: 104px; height: auto; min-height: 48px; padding: 6px 9px; font-size: 0.48rem; line-height: 1.14; }
    .history-origin-story { padding: 34px 24px; }
    .history-origin-story h3 { font-size: clamp(2.1rem, 11vw, 3.5rem); }
    .history-chat-slot { padding: 34px 22px; }
    .history-event-photo { height: 210px; }
    .history-event-copy { padding: 22px 20px; }
    .history-event-facts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .history-event-facts div { padding: 0; }
    .history-event-facts div + div { padding-top: 12px; border-left: 0; border-top: 1px solid rgba(127, 21, 32, 0.32); }
    .history-arrival-card { grid-template-columns: minmax(0, 1fr); padding: 22px; }
    .history-arrival-card figure { width: min(210px, 100%); }
    .history-next-card figure { min-height: 250px; }
    .history-next-card > div { padding: 34px 24px; }
    .history-next-card h3 { font-size: clamp(2rem, 10vw, 3.4rem); }
    .history-next-card .history-event-facts { grid-template-columns: minmax(0, 1fr); }
}

/* Hall of Legends */
.events-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 210px; align-items: center; gap: 28px; }
.events-header-props { position: relative; width: 210px; justify-self: end; padding-bottom: 17px; }
.events-tally { min-height: 150px; display: grid; place-items: center; align-content: center; padding: 18px; border: 5px double var(--rfr-gold); outline: 2px solid var(--rfr-ink); background: var(--rfr-red); color: var(--rfr-paper); text-align: center; transform: rotate(1deg); }
.events-tally strong { color: var(--rfr-gold); font-size: 4.8rem; line-height: 0.9; }
.events-tally span { margin-top: 8px; font-family: 'Bungee', sans-serif; font-size: 0.72rem; line-height: 1.25; text-transform: uppercase; }
.events-egg-toggle { position: absolute; left: -42px; bottom: -9px; z-index: 3; width: 80px; height: 98px; padding: 0; overflow: visible; border: 0; border-radius: 46%; outline: 0; background: transparent; box-shadow: none; cursor: default; transform: rotate(-7deg); transition: transform 220ms cubic-bezier(.16,1,.3,1), filter 220ms ease; }
.events-egg-toggle::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 7px; height: 9px; z-index: -1; border-radius: 50%; background: rgba(44,23,20,0.24); filter: blur(3px); pointer-events: none; }
.events-egg-toggle img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; transform: scale(1.5); transform-origin: 50% 54%; filter: drop-shadow(2px 3px 0 rgba(44,23,20,0.2)); }
.events-egg-toggle:hover,
.events-egg-toggle:focus-visible { transform: translate(-2px, -3px) rotate(-2deg); }
.events-egg-toggle:focus-visible { outline: 3px double var(--rfr-gold); outline-offset: 4px; }
.events-egg-toggle.is-hatching { animation: events-egg-rattle 520ms ease-in-out infinite; }
.egg-history-active .events-egg-toggle { filter: drop-shadow(0 0 9px rgba(224,170,62,0.62)); transform: rotate(5deg); }
.archive-cover .archive-event-image.is-hatching,
.event-dossier > #eventImage.is-hatching { animation: archive-image-hatch 560ms cubic-bezier(.16,1,.3,1); }
@keyframes events-egg-rattle {
    0%, 100% { transform: rotate(-7deg); }
    35% { transform: translateX(-2px) rotate(-11deg); }
    70% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes archive-image-hatch {
    0% { opacity: 0.38; transform: scale(1.028) rotate(-0.35deg); filter: saturate(0.45) sepia(0.35) contrast(1.08); }
    100% { opacity: 1; transform: scale(1); }
}
.event-archive { display: grid; gap: 52px; }
.archive-entry { position: relative; display: grid; grid-template-columns: minmax(340px, 0.92fr) minmax(0, 1.08fr); min-height: 500px; border: var(--rfr-border); background: var(--rfr-paper); box-shadow: 10px 10px 0 rgba(127,21,32,0.42); }
.archive-entry::before {
    content: "★";
    position: absolute;
    top: -30px;
    left: 10px;
    z-index: 6;
    color: #f2c44e;
    font-family: Georgia, serif;
    font-size: 78px;
    line-height: 1;
    -webkit-text-stroke: 2px #986518;
    filter: drop-shadow(3px 4px 0 rgba(44,23,20,0.38));
    transform: rotate(-11deg);
    pointer-events: none;
}
.archive-entry:nth-child(even) { grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr); }
.archive-entry:nth-child(even)::before { right: 10px; left: auto; transform: rotate(10deg); }
.archive-entry:nth-child(even) .archive-cover { order: 2; }
.archive-cover { position: relative; min-height: 500px; overflow: hidden; border-right: 3px dashed var(--rfr-gold-dark); background: var(--rfr-night); }
.archive-entry:nth-child(even) .archive-cover { border-right: 0; border-left: 3px dashed var(--rfr-gold-dark); }
.archive-cover::before {
    content: "";
    position: absolute;
    inset: 13px;
    z-index: 2;
    background:
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) left top / 52px 5px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) left top / 5px 52px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) right top / 52px 5px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) right top / 5px 52px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) left bottom / 52px 5px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) left bottom / 5px 52px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) right bottom / 52px 5px no-repeat,
        linear-gradient(var(--rfr-gold), var(--rfr-gold)) right bottom / 5px 52px no-repeat;
    filter: drop-shadow(2px 2px 0 rgba(44,23,20,0.42));
    opacity: 0.82;
    pointer-events: none;
}
.archive-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(25,11,13,0.72)); pointer-events: none; }
.archive-cover img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.78) sepia(0.08) contrast(1.04); transition: transform 650ms cubic-bezier(0.16,1,0.3,1); }
.archive-entry:hover .archive-cover img { transform: scale(1.035); }
.archive-chapter { position: absolute; left: 20px; bottom: 18px; z-index: 1; padding: 9px 13px; border: 2px solid var(--rfr-gold); background: var(--rfr-red-dark); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.78rem; text-transform: uppercase; }
.archive-copy {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(28px, 5vw, 58px);
    background:
        radial-gradient(circle at 50% 50%, rgba(224,170,62,0.13), transparent 42%),
        repeating-conic-gradient(from -9deg at 50% 50%, rgba(224,170,62,0.055) 0 9deg, transparent 9deg 18deg),
        var(--rfr-paper);
}
.archive-copy h2 { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: clamp(1.8rem, 3.8vw, 3.55rem); line-height: 1; text-transform: uppercase; }
.archive-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; margin: 24px 0; padding: 14px 0; border-block: 3px double var(--rfr-gold-dark); }
.archive-meta div { display: grid; grid-template-columns: 76px 1fr; gap: 8px; padding: 6px 0; }
.archive-meta dt { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-transform: uppercase; }
.archive-meta dd { margin: 0; color: var(--rfr-ink); line-height: 1.25; }
.archive-teaser { margin: 0; color: var(--rfr-ink-soft); font-size: 1.02rem; line-height: 1.55; }
.archive-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.archive-loading { grid-column: 1 / -1; column-span: all; width: 100%; margin: 0; padding: 50px; box-sizing: border-box; break-inside: avoid; border: var(--rfr-border); background: var(--rfr-paper); text-align: center; font-family: 'Bungee', sans-serif; }
.archive-next { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 62px; padding: 30px 36px; border: 5px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 8px 8px 0 var(--rfr-red); color: var(--rfr-paper); }
.archive-next p,
.archive-next h2 { margin: 0; }
.archive-next p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.archive-next h2 { margin-top: 5px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(1.35rem, 2.5vw, 2.25rem); }
.event-dossier-modal { padding: 28px 0; background: rgba(25,10,12,0.82); }
.event-dossier { position: relative; width: min(900px, calc(100% - 28px)); max-height: calc(100dvh - 56px); overflow-y: auto; padding: clamp(24px, 5vw, 50px); border: 6px double var(--rfr-gold); outline: 3px solid var(--rfr-paper); background: var(--rfr-paper); }
.event-dossier .close-event { position: absolute; top: 12px; right: 14px; width: 42px; height: 42px; border: 2px solid var(--rfr-ink); border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); font-size: 1.6rem; line-height: 1; }
.dossier-label { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.event-dossier h2 { margin: 5px 48px 20px 0; font-family: 'Bungee', sans-serif; font-size: clamp(1.8rem, 4vw, 3.3rem); line-height: 1; text-transform: uppercase; }
.dossier-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
.dossier-meta p { margin: 0; padding: 10px; border: 1px solid var(--rfr-gold-dark); background: rgba(224,170,62,0.1); line-height: 1.3; }
.event-dossier > #eventImage { display: block; width: auto; max-width: 100%; height: auto; max-height: min(70dvh, 720px); margin: 16px auto; border: var(--rfr-border); background: var(--rfr-night); object-fit: contain; object-position: center top; }
.event-dossier #eventDescription { margin-top: 24px; color: var(--rfr-ink); line-height: 1.7; }

/* Illustrated event reports */
.page-event-summary .summary-page { padding-top: 50px; }
.page-event-summary .summary-page-shell { position: relative; overflow: visible; padding: clamp(22px, 4vw, 48px); background: var(--rfr-paper); }
.summary-back-link { display: inline-flex; margin-bottom: 22px; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.74rem; text-transform: uppercase; }
.page-event-summary .summary-page-header { grid-template-columns: minmax(0, 1fr) 260px; gap: 34px; align-items: center; padding-bottom: 34px; border-bottom: 6px double var(--rfr-gold-dark); }
.summary-volume { margin: 0 0 8px; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.page-event-summary .summary-page-title { color: var(--rfr-red-dark); font-size: clamp(2.4rem, 5.2vw, 5rem); line-height: 0.95; }
.summary-event-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 24px 0 0; }
.summary-event-meta div { padding: 11px; border: 1px solid var(--rfr-gold-dark); background: rgba(224,170,62,0.1); }
.summary-event-meta dt { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.65rem; text-transform: uppercase; }
.summary-event-meta dd { margin: 4px 0 0; line-height: 1.25; }
.page-event-summary .summary-logo-section { padding: 20px; border: 4px double var(--rfr-gold-dark); background: #fff; box-shadow: 6px 6px 0 rgba(44,23,20,0.3); transform: rotate(1deg); }
.page-event-summary .summary-logo-image { max-height: 230px; margin: auto; object-fit: contain; }
.summary-filmstrip-section { position: relative; margin: 40px 0 34px; padding: 20px; transform: rotate(-0.35deg); border-block: 4px solid var(--rfr-ink); background: var(--rfr-night); }
.page-event-summary .summary-gallery { grid-template-columns: repeat(6, 1fr); gap: 10px; }
.page-event-summary .summary-gallery img { aspect-ratio: 1; width: 100%; height: auto; border: 6px solid var(--rfr-paper); object-fit: cover; }
.page-event-summary .summary-gallery img:nth-child(even) { transform: translateY(6px) rotate(1deg); }
.page-event-summary .summary-layout { grid-template-columns: minmax(0, 1fr) 330px; gap: 40px; }
.page-event-summary .summary-section { border: 0; box-shadow: none; background: transparent; }
.page-event-summary .summary-copy-section { padding: 0; }
.page-event-summary .summary-copy-section h2 { display: inline-block; margin: 0 0 25px; padding: 10px 14px; transform: rotate(-0.5deg); background: var(--rfr-red); color: var(--rfr-paper); box-shadow: 4px 4px 0 var(--rfr-ink); }
.page-event-summary .summary-copy { color: var(--rfr-ink); font-size: 1.07rem; line-height: 1.85; }
.page-event-summary .summary-copy br + br { display: block; content: ""; margin-top: 1.1em; }
.page-event-summary .summary-rail { position: sticky; top: 110px; align-self: start; display: grid; gap: 24px; }
.page-event-summary .summary-rail .summary-section { padding: 20px; border: 2px solid var(--rfr-ink); background: #f0dcae; box-shadow: 5px 5px 0 rgba(127,21,32,0.45); }
.page-event-summary .summary-rail .summary-section:nth-child(even) { transform: rotate(0.5deg); background: var(--rfr-paper); }
.page-event-summary .summary-section h2 { color: var(--rfr-red-dark); font-size: 1.1rem; }
.page-event-summary .summary-copy-section > h2 { color: #fff7e4; text-shadow: 2px 2px 0 var(--rfr-red-dark); }
.page-event-summary .summary-table th { background: var(--rfr-red); color: var(--rfr-paper); font-size: 0.68rem; }
.page-event-summary .summary-table th,
.page-event-summary .summary-table td { padding: 8px; }
.page-event-summary .summary-winner-image { display: block; width: auto; max-width: 100%; height: auto; max-height: 620px; margin-inline: auto; border: 6px double var(--rfr-gold-dark); object-fit: contain; object-position: center top; }
.page-event-summary .comment { padding: 10px 0; border-bottom: 1px dashed var(--rfr-gold-dark); }

/* Marvellous Performers */
.players-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: stretch; gap: 32px; }
.players-header-photo { position: relative; z-index: 1; margin: 0; align-self: stretch; overflow: hidden; border: 5px double var(--rfr-gold-dark); background: var(--rfr-night); box-shadow: 5px 5px 0 rgba(44,23,20,0.24); }
.players-header-photo img { display: block; width: 100%; height: 100%; min-height: 260px; object-fit: contain; object-position: center; filter: saturate(0.78) sepia(0.08); }
.performer-files > header { max-width: 760px; margin-bottom: 28px; }
.performer-files > header h2 { margin: 0; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1; text-transform: uppercase; }
.performer-files > header p { color: var(--rfr-ink-soft); font-size: 1.05rem; }
.page-players .player-card-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 22px; }
.page-players .player-card { grid-column: span 4; min-height: 390px; display: flex; flex-direction: column; padding: 0; overflow: hidden; border: 3px solid var(--rfr-ink); border-radius: 3px; background: var(--rfr-paper); color: var(--rfr-ink); box-shadow: 7px 7px 0 color-mix(in srgb, var(--player-accent) 76%, var(--rfr-ink)); transform: none; transition: transform 220ms cubic-bezier(.16,1,.3,1), box-shadow 220ms ease, background-color 220ms ease; text-align: left; }
.page-players .player-card:nth-child(2),
.page-players .player-card:nth-child(5) { transform: translateY(15px) rotate(0.45deg); }
.page-players .player-card:nth-child(3),
.page-players .player-card:nth-child(6) { transform: rotate(-0.35deg); }
.page-players .player-card:hover { transform: translate(-2px, -5px) rotate(0); background: var(--rfr-paper); color: var(--rfr-ink); box-shadow: 10px 12px 0 color-mix(in srgb, var(--player-accent) 76%, var(--rfr-ink)); }
.page-players .player-card-header { position: relative; flex: 1; display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 17px; align-items: start; padding: 22px; border-bottom: 5px double var(--rfr-gold-dark); }
.page-players .player-card-portrait-frame { width: 105px; aspect-ratio: 1; border: 5px double var(--player-accent); border-radius: 50%; background: var(--rfr-paper); box-shadow: 3px 3px 0 rgba(44,23,20,0.35); }
.page-players .player-card-avatar { border-radius: 50%; }
.page-players .player-card-name { margin: 3px 0 7px; color: var(--rfr-red-dark); font-size: 1rem; line-height: 1.2; }
.page-players .player-card-highlight { margin: 0; color: var(--rfr-ink-soft); font-size: 0.84rem; }
.page-players .player-card-key { position: absolute; left: 20px; bottom: 16px; display: flex; align-items: baseline; gap: 6px; color: var(--player-accent); }
.page-players .player-card-key-label { font-family: 'Bungee', sans-serif; font-size: 0.62rem; text-transform: uppercase; }
.page-players .player-card-key-value { color: var(--player-accent); font-size: 2rem; }
.page-players .player-card-stats { grid-template-columns: repeat(2, 1fr); gap: 0; background: #eed9ac; }
.page-players .player-card-stat { min-height: 74px; padding: 12px 15px; border: 0; border-right: 1px dashed rgba(44,23,20,0.28); border-bottom: 1px dashed rgba(44,23,20,0.28); background: transparent; }
.page-players .player-card-stat-label { color: var(--rfr-ink-soft); font-size: 0.65rem; }
.page-players .player-card-stat-value { color: var(--rfr-ink); font-size: 1rem; }

.duel-booth { margin-top: 74px; padding: clamp(26px, 5vw, 54px); border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: linear-gradient(120deg, rgba(31,23,25,0.96), rgba(87,18,29,0.94)), url("images/events/RFR2-25.jpeg") center / cover; box-shadow: 10px 10px 0 var(--rfr-red); color: var(--rfr-paper); }
.duel-intro { max-width: 740px; }
.duel-intro > p:first-child { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.duel-intro h2 { margin: 6px 0 12px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.2rem, 5vw, 4.5rem); line-height: 0.95; text-transform: uppercase; }
.duel-intro p { color: rgba(255,247,228,0.75); }
.duel-controls { display: grid; grid-template-columns: minmax(0, 1fr) 60px minmax(0, 1fr) auto; align-items: end; gap: 16px; margin-top: 30px; }
.duel-controls label { display: grid; gap: 7px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.duel-controls select { width: 100%; min-height: 50px; padding: 8px 12px; border: 2px solid var(--rfr-gold); background: var(--rfr-paper); color: var(--rfr-ink); }
.duel-controls > span { align-self: center; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 1.4rem; text-align: center; }
.duel-result { margin-top: 34px; padding: 26px; border: 3px solid var(--rfr-gold); background: rgba(255,247,228,0.96); color: var(--rfr-ink); box-shadow: 6px 6px 0 rgba(0,0,0,0.44); }
.duel-result-head { display: grid; grid-template-columns: 120px 1fr 120px; align-items: center; gap: 18px; margin-bottom: 20px; text-align: center; }
.duel-result-head span { color: var(--rfr-red); font-family: 'Bungee', sans-serif; }
.duel-result-head h3 { margin: 0; font-family: 'Bungee', sans-serif; font-size: 1.25rem; line-height: 1.25; text-transform: uppercase; }
.duel-category { display: grid; grid-template-columns: 1fr 1.7fr 1fr; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--rfr-gold-dark); text-align: center; }
.duel-category span { color: var(--rfr-ink-soft); }
.duel-category strong { color: var(--rfr-ink); font-size: 1.2rem; }
.duel-category-winner { color: var(--rfr-red) !important; }
.duel-disclaimer,
.duel-warning { margin: 18px 0 0; color: var(--rfr-ink-soft); text-align: center; }
.duel-mirror-notice { width: fit-content; max-width: 100%; margin: -10px auto 24px; padding: 8px 14px; border: 3px double var(--rfr-red); background: var(--rfr-ink); color: var(--rfr-paper); font-size: 0.82rem; text-align: center; transform: rotate(-0.7deg); box-shadow: 4px 4px 0 rgba(127,21,32,0.45); }
.duel-mirror-notice span { display: block; margin-bottom: 3px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; }
.duel-result.is-mirror-match { border-color: var(--rfr-red); background: repeating-linear-gradient(135deg, rgba(127,21,32,0.035) 0 8px, transparent 8px 18px), rgba(255,247,228,0.98); }
.duel-result.is-mirror-match .duel-category strong { font-size: clamp(0.76rem, 1.5vw, 1.05rem); line-height: 1.2; }
.players-ledgers { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 74px; }
.players-ledgers .section-panel { padding: 26px; }
.ledger-note { color: var(--rfr-ink-soft); }
.players-ledgers thead th { background: var(--rfr-red); color: var(--rfr-paper); }
.players-ledgers .player-leader td { background: rgba(224,170,62,0.22); }
.players-wide-photo { position: relative; min-height: 480px; margin-top: 74px; overflow: hidden; border: var(--rfr-border); box-shadow: 10px 10px 0 var(--rfr-red); }
.players-wide-photo img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; filter: saturate(0.72) contrast(1.04); }
.players-wide-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,23,25,0.9), rgba(30,23,25,0.12) 72%); }
.players-wide-photo > div { position: absolute; left: clamp(25px, 6vw, 72px); top: 50%; z-index: 1; max-width: 560px; transform: translateY(-50%); color: var(--rfr-paper); }
.players-wide-photo p,
.players-wide-photo h2 { margin: 0; }
.players-wide-photo p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; text-transform: uppercase; }
.players-wide-photo h2 { margin-top: 8px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.1rem, 5vw, 4.8rem); line-height: 0.95; text-transform: uppercase; }
.players-wide-photo span { display: block; margin-top: 14px; color: rgba(255,247,228,0.72); font-size: 1.05rem; }
.page-players .modal { background: rgba(25,10,12,0.82); }
.page-players .modal-content { position: relative; border: 6px double var(--rfr-gold); outline: 3px solid var(--rfr-paper); background: var(--rfr-paper); }
.page-players .modal-content .close { position: absolute; top: 10px; right: 12px; z-index: 2; width: 42px; height: 42px; display: grid; place-items: center; border: 2px solid var(--rfr-ink); border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); font-size: 1.6rem; line-height: 1; }
.page-players #bioContainer { gap: 28px; }
.page-players .bio-image-frame { border: var(--rfr-border); }
.page-players .player-modal-panel { border: 2px solid var(--rfr-gold-dark); background: #f0dcae; }

/* Sideshow of Dubious Numbers */
.stats-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 210px; align-items: center; gap: 28px; }
.stats-seal { width: 185px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; justify-self: end; padding: 0; border: 7px double var(--rfr-gold); border-radius: 50%; appearance: none; background: var(--rfr-red); color: var(--rfr-paper); box-shadow: 6px 6px 0 var(--rfr-ink); cursor: default; font: inherit; transform: rotate(2deg); text-align: center; }
.stats-seal:hover { background: var(--rfr-red); color: var(--rfr-paper); box-shadow: 6px 6px 0 var(--rfr-ink); transform: rotate(2deg); }
.stats-seal:focus:not(:focus-visible) { outline: 0; }
.stats-seal:focus-visible { outline: 4px dashed var(--rfr-night); outline-offset: 7px; }
.stats-seal > .stats-seal-count { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 4rem; line-height: 0.8; }
.stats-seal strong { color: var(--rfr-paper); font-size: 0.9rem; }
.stats-seal small { color: rgba(255,247,228,0.68); }

.departing-ghost {
    position: fixed;
    z-index: 120;
    left: var(--ghost-start-x);
    top: var(--ghost-start-y);
    width: var(--ghost-size);
    margin: 0;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-50%, -20%, 0) rotate(var(--ghost-tilt)) scale(0.72);
    will-change: transform, opacity;
}

.departing-ghost img {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 0 17px rgba(101, 245, 238, 0.8));
}

.departing-ghost.is-floating {
    animation: tournament-ghost-rise var(--ghost-duration) cubic-bezier(0.21, 0.72, 0.36, 1) forwards;
}

@keyframes tournament-ghost-rise {
    0% { opacity: 0; transform: translate3d(-50%, -20%, 0) rotate(var(--ghost-tilt)) scale(0.72); }
    10% { opacity: 0.96; transform: translate3d(calc(-50% + var(--ghost-hover-forward)), -28%, 0) rotate(var(--ghost-tilt)) scale(0.98); }
    20% { opacity: 0.98; transform: translate3d(calc(-50% + var(--ghost-hover-back)), -23%, 0) rotate(var(--ghost-tilt)) scale(1); }
    30% { opacity: 0.98; transform: translate3d(calc(-50% + var(--ghost-hover-return)), -31%, 0) rotate(var(--ghost-tilt)) scale(1); }
    39% { opacity: 0.96; transform: translate3d(-50%, -28%, 0) rotate(var(--ghost-tilt)) scale(1); }
    67% { opacity: 0.9; transform: translate3d(calc(-50% + var(--ghost-drift-mid)), -52vh, 0) rotate(3deg) scale(1.08); }
    100% { opacity: 0; transform: translate3d(calc(-50% + var(--ghost-drift)), calc(-100vh - 260px), 0) rotate(-8deg) scale(1.16); }
}

.rfr-cancellation-dialog {
    box-sizing: border-box;
    width: min(1180px, calc(100% - 32px));
    max-width: none;
    max-height: calc(100dvh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0;
    border: 8px double var(--rfr-gold);
    border-radius: 2px;
    outline: 3px solid var(--rfr-paper);
    background: var(--rfr-night);
    box-shadow: 14px 15px 0 rgba(127, 21, 32, 0.86);
    color: var(--rfr-paper);
}

.rfr-cancellation-dialog[open] {
    animation: cancellation-notice-arrives 240ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.rfr-cancellation-dialog::backdrop {
    background: rgba(18, 5, 10, 0.9);
    backdrop-filter: blur(6px) sepia(0.15);
}

@keyframes cancellation-notice-arrives {
    from { opacity: 0; transform: translateY(38px) rotate(-0.7deg) scale(0.96); }
    to { opacity: 1; transform: translateY(0) rotate(0) scale(1); }
}

.rfr-cancellation-notice {
    position: relative;
    min-height: 100%;
    background:
        linear-gradient(rgba(255, 247, 228, 0.035) 1px, transparent 1px) 0 0 / 100% 31px,
        radial-gradient(circle at 50% 14%, rgba(224, 170, 62, 0.2), transparent 32%),
        var(--rfr-night);
}

.rfr-cancellation-notice::before {
    content: "";
    display: block;
    height: 24px;
    border-bottom: 3px solid var(--rfr-gold);
    background: repeating-linear-gradient(135deg, var(--rfr-red) 0 28px, var(--rfr-paper) 28px 56px, var(--rfr-gold) 56px 84px);
}

.rfr-cancellation-close { z-index: 5; top: 35px; right: 18px; background: var(--rfr-red-dark); }

.rfr-cancellation-heading {
    position: relative;
    padding: clamp(38px, 5vw, 62px) clamp(24px, 6vw, 72px) 34px;
    border-bottom: 5px double var(--rfr-gold);
    text-align: center;
}

.rfr-cancellation-heading p,
.rfr-cancellation-heading h2 { margin: 0; }
.rfr-cancellation-heading p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; }
.rfr-cancellation-heading h2 { max-width: 960px; margin: 10px auto 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.5rem, 7vw, 6.2rem); line-height: 0.88; text-transform: uppercase; text-shadow: 5px 5px 0 var(--rfr-red-dark); }
.rfr-cancellation-heading > span { display: inline-block; margin-top: 24px; padding: 8px 14px; border: 4px solid var(--rfr-red-bright); color: var(--rfr-red-bright); font-family: 'Bungee', sans-serif; font-size: clamp(0.8rem, 2vw, 1.2rem); letter-spacing: 0.08em; text-transform: uppercase; transform: rotate(-3deg); }

.rfr-cancellation-copy { max-width: 820px; margin: 0 auto; padding: 30px 28px 22px; text-align: center; }
.rfr-cancellation-copy > p:first-child { margin: 0; color: var(--rfr-paper); font-size: clamp(1.05rem, 2.4vw, 1.4rem); line-height: 1.45; }
.rfr-cancellation-copy h3 { margin: 28px 0 4px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: clamp(1.35rem, 3vw, 2.25rem); line-height: 1; text-transform: uppercase; }
.rfr-cancellation-copy h3 + p { margin: 0; color: rgba(255, 247, 228, 0.68); }

.replacement-lineup {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(15px, 2vw, 24px);
    padding: 12px clamp(22px, 5vw, 58px) 44px;
}

.replacement-lineup figure {
    grid-column: span 4;
    position: relative;
    margin: 0;
    border: 5px double var(--rfr-gold);
    background: var(--rfr-paper);
    box-shadow: 7px 8px 0 var(--rfr-red-dark);
    color: var(--rfr-ink);
    transform: rotate(-0.7deg);
}

.replacement-lineup figure:nth-child(2),
.replacement-lineup figure:nth-child(5) { transform: translateY(12px) rotate(0.65deg); }
.replacement-lineup figure:nth-child(3),
.replacement-lineup figure:nth-child(4) { transform: rotate(0.45deg); }
.replacement-lineup figure::before { content: "★"; position: absolute; z-index: 2; top: -16px; left: -15px; width: 34px; aspect-ratio: 1; display: grid; place-items: center; border: 2px solid var(--rfr-ink); border-radius: 50%; background: var(--rfr-gold); color: var(--rfr-red-dark); font-size: 1.05rem; transform: rotate(-10deg); }
.replacement-lineup img { display: block; width: 100%; aspect-ratio: 1; border-bottom: 3px solid var(--rfr-ink); background: #e8cd9a; object-fit: cover; object-position: center; }
.replacement-lineup figcaption { min-height: 82px; display: grid; align-content: center; gap: 5px; padding: 13px 14px 14px; text-align: center; }
.replacement-lineup figcaption strong { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: clamp(0.72rem, 1.45vw, 0.92rem); line-height: 1.2; text-transform: uppercase; }
.replacement-lineup figcaption span { color: var(--rfr-ink-soft); font-size: 0.78rem; font-weight: 700; }

.rfr-cancellation-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 26px; padding: 24px clamp(22px, 5vw, 58px) 30px; border-top: 5px double var(--rfr-gold); background: var(--rfr-red-dark); }
.rfr-cancellation-actions p { margin: 0; color: rgba(255, 247, 228, 0.74); }
.rfr-cancellation-actions > div { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.rfr-cancellation-actions .text-button { color: var(--rfr-gold); }
.rfr-cancellation-actions .show-button { white-space: nowrap; }

@media (max-width: 760px) {
    .rfr-cancellation-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 12px); }
    .rfr-cancellation-heading { padding-right: 22px; padding-left: 22px; }
    .rfr-cancellation-heading h2 { font-size: clamp(2.25rem, 12vw, 4.3rem); }
    .replacement-lineup { gap: 14px 12px; padding-right: 16px; padding-left: 16px; }
    .replacement-lineup figure { grid-column: span 6; transform: none !important; }
    .replacement-lineup figcaption { min-height: 92px; padding: 10px 8px 12px; }
    .replacement-lineup figcaption strong { font-size: clamp(0.62rem, 3.4vw, 0.84rem); }
    .replacement-lineup figcaption span { font-size: 0.68rem; }
    .rfr-cancellation-actions { grid-template-columns: 1fr; text-align: center; }
    .rfr-cancellation-actions > div { justify-content: center; flex-wrap: wrap; }
}

@media (max-width: 350px) {
    .rfr-cancellation-close { top: 31px; right: 8px; width: 34px; height: 34px; }
    .rfr-cancellation-heading { padding-right: 18px; padding-left: 18px; }
    .rfr-cancellation-heading h2 { font-size: 2.15rem; }
    .replacement-lineup figure { grid-column: 1 / -1; }
}

@keyframes tournament-ghost-fade {
    0%, 100% { opacity: 0; }
    18%, 78% { opacity: 0.96; }
}

@media (prefers-reduced-motion: reduce) {
    .departing-ghost,
    .departing-ghost.is-floating { transform: translate3d(-50%, -20%, 0); }
    .departing-ghost.is-floating { animation: tournament-ghost-fade var(--ghost-duration) linear forwards; }
    .rfr-cancellation-dialog[open] { animation: none; }
}
.statistics-canvas { display: grid; grid-template-columns: 0.85fr 1.15fr; grid-template-areas: "quick photo" "records photo"; gap: 24px; align-items: stretch; }
.stats-quick-board,
.stats-record-board { padding: 28px; border: var(--rfr-border); box-shadow: 7px 7px 0 rgba(127,21,32,0.55); background: var(--rfr-paper); }
.stats-quick-board { grid-area: quick; transform: rotate(-0.35deg); }
.stats-record-board { grid-area: records; background: #edd8aa; transform: rotate(0.3deg); }
.stats-quick-board h2,
.stats-record-board h2,
.dubious-wall header h2,
.placement-history > header h2,
.group-scoreboard-section > header h2 { margin: 0 0 18px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: clamp(1.6rem, 3vw, 2.7rem); line-height: 1; text-transform: uppercase; }
.page-statistics .stats-summary-list { display: grid; gap: 0; }
.page-statistics .stats-summary-row { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(120px, auto); align-items: center; gap: 18px; padding: 13px 0; border-bottom: 1px dashed var(--rfr-gold-dark); }
.page-statistics .stats-summary-label { color: var(--rfr-ink-soft); }
.page-statistics .stats-summary-value { max-width: 270px; color: var(--rfr-red); font-size: 1rem; text-align: right; }
.page-statistics .stats-loading { grid-column: 1 / -1; }
.stats-feature-photo { grid-area: photo; position: relative; min-height: 760px; margin: 0; padding: 13px 13px 52px; border: var(--rfr-border); background: var(--rfr-paper); box-shadow: 8px 8px 0 var(--rfr-ink); transform: rotate(0.6deg); }
.stats-feature-photo img { width: 100%; height: 100%; min-height: 690px; object-fit: cover; filter: saturate(0.76) sepia(0.1); }
.stats-feature-photo figcaption { margin-top: 12px; font-weight: 700; text-align: center; }
.record-row { display: grid; grid-template-columns: 1fr 1.1fr; gap: 6px 16px; padding: 15px 0; border-bottom: 1px dashed var(--rfr-gold-dark); }
.record-row > span { color: var(--rfr-ink-soft); }
.record-row > strong { color: var(--rfr-red-dark); text-align: right; }
.record-row small { grid-column: 1 / -1; color: var(--rfr-ink-soft); }
.fan-poll { margin-top: 74px; overflow: hidden; border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 10px 10px 0 var(--rfr-red); color: var(--rfr-paper); }
.fan-poll-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 28px; padding: 34px 38px 26px; border-bottom: 2px solid rgba(224,170,62,0.55); }
.fan-poll-header p,
.fan-poll-header h2 { margin: 0; }
.fan-poll-kicker { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.fan-poll-header h2 { margin-top: 6px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2rem, 4vw, 3.7rem); line-height: 0.98; text-transform: uppercase; }
.fan-poll-header div > p:last-child { max-width: 680px; margin-top: 12px; color: rgba(255,247,228,0.72); }
.fan-poll-button { min-width: 205px; border-color: var(--rfr-gold); background: var(--rfr-gold); color: var(--rfr-ink); box-shadow: 5px 5px 0 var(--rfr-red); white-space: nowrap; }
.fan-poll-button:hover { background: var(--rfr-paper); color: var(--rfr-red-dark); }
.fan-poll-button:disabled { opacity: 0.68; cursor: wait; transform: none; }
.fan-poll-result { display: flex; align-items: baseline; justify-content: space-between; gap: 22px; padding: 13px 38px; background: var(--rfr-red-dark); }
.fan-poll-result strong { color: var(--rfr-gold); font-size: 0.82rem; text-transform: uppercase; }
.fan-poll-result span { color: rgba(255,247,228,0.78); text-align: right; }
.fan-vote-stage { --fan-score-height: 54px; --fan-meter-height: 500px; --fan-performer-height: 140px; --fan-grid-step: 25px; --fan-labelled-grid-step: 50px; --fan-column-height: calc(var(--fan-score-height) + var(--fan-meter-height) + var(--fan-performer-height) + 6px); position: relative; padding: 54px 34px 30px 82px; }
.fan-vote-plot { position: relative; }
.fan-vote-axis { position: absolute; top: var(--fan-score-height); left: -70px; z-index: 3; width: 58px; height: var(--fan-meter-height); pointer-events: none; }
.fan-vote-axis span { position: absolute; top: var(--fan-axis-position); right: 0; color: rgba(255,247,228,0.68); font-variant-numeric: tabular-nums; font-size: 0.68rem; line-height: 1; transform: translateY(-50%); }
.fan-vote-gridlines { position: absolute; top: var(--fan-score-height); right: 0; left: 0; z-index: 0; height: var(--fan-meter-height); border-top: 1px solid rgba(224,170,62,0.34); pointer-events: none; background: repeating-linear-gradient(to top, rgba(224,170,62,0.22) 0 1px, transparent 1px var(--fan-labelled-grid-step)), repeating-linear-gradient(to top, rgba(255,247,228,0.1) 0 1px, transparent 1px var(--fan-grid-step)); }
.fan-vote-chart { position: relative; z-index: 1; min-height: var(--fan-column-height); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(12px, 2vw, 24px); align-items: end; border-bottom: 3px solid var(--rfr-gold); }
.fan-vote-chart > .stats-loading { grid-column: 1 / -1; align-self: center; justify-self: center; color: rgba(255,247,228,0.7); }
.fan-vote-column { position: relative; height: var(--fan-column-height); display: grid; grid-template-rows: var(--fan-score-height) var(--fan-meter-height) var(--fan-performer-height); align-items: end; min-width: 0; }
.fan-vote-score { position: relative; z-index: 2; display: grid; justify-items: center; align-self: end; padding-bottom: 7px; text-align: center; }
.fan-vote-leader-badge { position: absolute; left: 50%; bottom: 53px; min-width: 102px; padding: 5px 8px; border: 2px solid var(--rfr-paper); background: var(--rfr-red); box-shadow: 3px 3px 0 var(--rfr-gold); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.52rem; line-height: 1.1; text-transform: uppercase; opacity: 0; transform: translateX(-50%) rotate(2deg) scale(0.78); transition: opacity 140ms ease, transform 180ms cubic-bezier(.2,.8,.2,1.25); }
.fan-vote-column.is-race-leader .fan-vote-leader-badge { opacity: 1; transform: translateX(-50%) rotate(-2deg) scale(1); }
.fan-vote-score strong { color: var(--rfr-paper); font-size: clamp(0.86rem, 1.4vw, 1.05rem); line-height: 1; transition: color 160ms ease, transform 160ms ease; }
.fan-vote-column.is-race-leader .fan-vote-score strong { color: var(--rfr-gold); transform: scale(1.12); }
.fan-vote-score small { margin-top: 3px; color: rgba(255,247,228,0.58); font-size: 0.66rem; line-height: 1; text-transform: uppercase; }
.fan-vote-rosette { position: absolute; left: 50%; bottom: 53px; z-index: 2; min-width: 120px; padding: 6px 9px; border: 2px solid var(--rfr-ink); background: var(--rfr-gold); box-shadow: 3px 3px 0 var(--rfr-red); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.58rem; line-height: 1.1; text-transform: uppercase; transform: translateX(-50%) rotate(-2deg) scale(0.78); opacity: 0; transition: opacity 180ms ease, transform 260ms cubic-bezier(.2,.8,.2,1.25); }
.fan-poll.is-counted .fan-vote-rosette { opacity: 1; transform: translateX(-50%) rotate(-2deg) scale(1); }
.fan-vote-meter { position: relative; width: min(80%, 92px); height: var(--fan-meter-height); justify-self: center; overflow: hidden; border: 3px solid var(--rfr-gold); border-bottom: 0; background: rgba(255,247,228,0.08); box-shadow: 4px 0 0 rgba(0,0,0,0.25); transition: border-color 160ms ease, box-shadow 160ms ease, filter 160ms ease; }
.fan-vote-column.is-race-leader .fan-vote-meter { border-color: var(--rfr-paper); box-shadow: 0 0 0 4px var(--rfr-red), 0 0 24px rgba(224,170,62,0.68); filter: saturate(1.18); }
.fan-vote-meter > span { position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: var(--fan-colour); border-top: 6px solid var(--rfr-paper); will-change: height; }
.fan-vote-meter > span::before { content: ""; position: absolute; inset: 8px 9px; border-left: 3px solid rgba(255,247,228,0.18); border-right: 3px solid rgba(0,0,0,0.16); }
.fan-vote-performer { position: relative; align-self: start; display: grid; justify-items: center; width: 100%; padding-top: 14px; text-align: center; }
.fan-vote-performer img { width: 62px; aspect-ratio: 1; border: 4px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-paper); object-fit: cover; }
.fan-vote-performer h3 { max-width: 100%; margin: 8px 0 0; overflow-wrap: anywhere; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(0.66rem, 1.2vw, 0.82rem); line-height: 1; text-transform: uppercase; }
.fan-vote-percent { margin-top: 4px; color: var(--rfr-gold); font-size: 0.75rem; font-weight: 700; }
.dubious-wall { margin-top: 74px; padding: 42px; border: 8px solid #744222; outline: 3px solid var(--rfr-ink); background: #e8cd9a; box-shadow: var(--rfr-shadow); }
.dubious-wall > header { max-width: 720px; }
.dubious-wall header p,
.placement-history > header p,
.group-scoreboard-section > header p { color: var(--rfr-ink-soft); }
.dubious-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; margin-top: 28px; }
.dubious-grid article { grid-column: span 3; min-height: 185px; display: flex; flex-direction: column; justify-content: center; padding: 22px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 5px 5px 0 rgba(44,23,20,0.72); text-align: center; }
.dubious-grid article:nth-child(2),
.dubious-grid article:nth-child(7) { transform: translateY(10px) rotate(0.6deg); background: #f1dcae; }
.dubious-grid article:nth-child(4),
.dubious-grid article:nth-child(5) { transform: rotate(-0.55deg); }
.dubious-grid strong { color: var(--rfr-red); font-size: clamp(2.5rem, 5vw, 4.3rem); line-height: 0.9; text-shadow: 2px 2px 0 var(--rfr-gold); }
.dubious-grid span { margin-top: 12px; font-family: 'Bungee', sans-serif; font-size: 0.82rem; text-transform: uppercase; }
.dubious-grid small { margin-top: 6px; color: var(--rfr-ink-soft); }
.placement-history { margin-top: 78px; }
.placement-history > header { max-width: 760px; }
.placement-history-grid { display: grid; gap: 14px; margin-top: 26px; }
.placement-player { display: grid; grid-template-columns: 190px minmax(0, 1fr); align-items: stretch; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 4px 4px 0 rgba(127,21,32,0.35); }
.placement-player h3 { display: flex; align-items: center; margin: 0; padding: 17px; border-right: 3px double var(--rfr-gold-dark); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.86rem; line-height: 1.2; text-transform: uppercase; }
.placement-cells { display: grid; grid-template-columns: repeat(4, 1fr); }
.placement-cell { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 8px; padding: 11px 13px; border-right: 1px dashed rgba(44,23,20,0.3); }
.placement-cell > span { color: var(--rfr-ink-soft); font-size: 0.72rem; }
.placement-cell > strong { grid-row: span 2; color: var(--rfr-red); font-size: 1.8rem; }
.placement-cell > small { color: var(--rfr-ink-soft); }
.placement-cell.place-1 { padding-right: 42px; background: rgba(224,170,62,0.28); }
.placement-cell.place-1::after { content: "♛"; position: absolute; top: 50%; right: 10px; transform: translateY(-52%) rotate(7deg); color: var(--rfr-gold-dark); font-family: Georgia, serif; font-size: 1.45rem; line-height: 1; text-shadow: 1px 1px 0 var(--rfr-paper); }
.placement-cell.place-absent { background: repeating-linear-gradient(-45deg, transparent 0 8px, rgba(44,23,20,0.05) 8px 16px); }
.placement-cell.place-absent > strong { color: var(--rfr-ink-soft); }
.era-booth { display: grid; grid-template-columns: 0.65fr 1.35fr; gap: 28px; align-items: center; margin-top: 76px; padding: 44px; border: 6px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 9px 9px 0 var(--rfr-red); color: var(--rfr-paper); }
.era-heading p,
.era-heading h2 { margin: 0; }
.era-heading p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.era-heading h2 { margin-top: 7px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2rem, 4vw, 3.7rem); line-height: 0.98; text-transform: uppercase; }
.era-heading span { display: block; margin-top: 15px; color: rgba(255,247,228,0.67); }
.era-scoreboards { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.era-card { padding: 22px; border: 2px solid var(--rfr-gold); background: rgba(255,247,228,0.07); }
.era-card > p { margin: 0; color: var(--rfr-gold); }
.era-card h3 { margin: 4px 0 15px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.15rem; text-transform: uppercase; }
.era-card > div { display: grid; }
.era-card div > span { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px dashed rgba(224,170,62,0.35); }
.era-card b { color: var(--rfr-gold); }
.era-card strong { color: var(--rfr-paper); font-family: inherit; }
.era-card em { color: rgba(255,247,228,0.65); font-style: normal; }
.group-scoreboard-section { margin-top: 78px; }
.group-scoreboard-section > header { max-width: 760px; }
.page-statistics .scoreboard-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; margin-top: 28px; }
.page-statistics .stats-group { grid-column: span 6; padding: 25px; border: var(--rfr-border); background: var(--rfr-paper); box-shadow: 6px 6px 0 rgba(127,21,32,0.5); }
.page-statistics .stats-group:nth-child(even) { background: #f0dcaf; transform: translateY(10px); }
.page-statistics .stats-group h3 { margin: 0 0 15px; }
.page-statistics .scoreboard-table th { background: var(--rfr-red); color: var(--rfr-paper); }

/* Photographic Evidence Tent */
.gallery-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: center; gap: 28px; }
.gallery-count { width: 170px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; justify-self: end; border: 7px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); box-shadow: 6px 6px 0 var(--rfr-ink); color: var(--rfr-paper); text-align: center; transform: rotate(2deg); }
.gallery-count strong { color: var(--rfr-gold); font-size: 3.2rem; line-height: 0.9; }
.gallery-count span { max-width: 100px; font-family: 'Bungee', sans-serif; font-size: 0.68rem; line-height: 1.2; text-transform: uppercase; }
.gallery-controls { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-top: 58px; padding: 20px 24px; border: var(--rfr-border); background: #e7cc97; box-shadow: 6px 6px 0 rgba(44,23,20,0.55); }
.gallery-controls label { display: block; margin-bottom: 5px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.gallery-controls select { min-width: 300px; min-height: 48px; padding: 8px 12px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); color: var(--rfr-ink); }
.page-gallery .gallery-panel { margin-top: 28px; padding: 0; border: 0; box-shadow: none; background: transparent; opacity: 1 !important; transform: none !important; }
.page-gallery #gallery.evidence-grid { display: block; columns: 4 240px; column-gap: 14px; }
.page-gallery #gallery.evidence-grid > img { display: block; width: 100%; height: auto; aspect-ratio: auto; margin: 0 0 14px; break-inside: avoid; border: 8px solid var(--rfr-paper); outline: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 5px 5px 0 rgba(127,21,32,0.45); cursor: pointer; object-fit: contain; transition: transform 180ms ease, box-shadow 180ms ease; }
.page-gallery #gallery.evidence-grid > img:hover { position: relative; z-index: 2; transform: translateY(-4px); box-shadow: 8px 9px 0 rgba(127,21,32,0.58); }
.page-gallery #gallery.evidence-grid > img:focus-visible { outline: 5px solid var(--rfr-gold); outline-offset: 3px; }
body.gallery-viewer-open { overflow: hidden; }
.gallery-social-dialog { width: min(1180px, calc(100% - 32px)); height: min(860px, calc(100dvh - 32px)); max-width: none; max-height: none; margin: auto; padding: 0; overflow: hidden; border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 12px 12px 0 rgba(44,23,20,0.72); color: var(--rfr-paper); }
.gallery-social-dialog::backdrop { background: rgba(18,8,10,0.9); backdrop-filter: blur(5px); }
.gallery-social-shell { position: relative; height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.58fr) minmax(350px, 0.72fr); }
.gallery-social-close { position: absolute; top: 13px; right: 13px; z-index: 8; width: 42px; height: 42px; border: 3px solid var(--rfr-ink); background: var(--rfr-red); box-shadow: 3px 3px 0 var(--rfr-gold); color: var(--rfr-paper); }
.gallery-social-stage { position: relative; min-width: 0; display: grid; place-items: center; overflow: hidden; padding: 46px 66px 54px; border-right: 5px double var(--rfr-gold); background: radial-gradient(circle at 50% 44%, rgba(224,170,62,0.18), transparent 46%), repeating-linear-gradient(92deg, rgba(127,21,32,0.16) 0 58px, rgba(255,247,228,0.025) 58px 116px), var(--rfr-night); }
.gallery-social-image-frame { width: 100%; height: 100%; min-width: 0; min-height: 0; overflow: hidden; border: 9px solid var(--rfr-paper); outline: 3px solid var(--rfr-gold); background: #181216; box-shadow: 11px 11px 0 rgba(0,0,0,0.48); }
.gallery-social-image-frame img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; border: 0; background: transparent; object-fit: contain; object-position: center; }
.gallery-social-nav { position: absolute; top: 50%; z-index: 4; width: 48px; height: 48px; display: grid; place-items: center; padding: 0 0 4px; border: 3px solid var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); box-shadow: 4px 4px 0 rgba(0,0,0,0.45); color: var(--rfr-paper); font-size: 2.1rem; line-height: 1; transform: translateY(-50%); }
.gallery-social-nav:hover { background: var(--rfr-paper); color: var(--rfr-red-dark); }
.gallery-social-nav:active { transform: translateY(calc(-50% + 1px)); }
.gallery-social-nav:disabled { opacity: 0.34; }
.gallery-social-prev { left: 13px; }
.gallery-social-next { right: 13px; }
.gallery-social-position { position: absolute; bottom: 17px; left: 50%; padding: 6px 10px; border: 2px solid var(--rfr-gold); background: rgba(23,18,26,0.88); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.62rem; text-transform: uppercase; transform: translateX(-50%); }
.gallery-social-panel { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; background: var(--rfr-paper); color: var(--rfr-ink); }
.gallery-social-heading { padding: 28px 70px 19px 24px; border-bottom: 4px double var(--rfr-gold-dark); background: #eedbaa; }
.gallery-social-heading p,
.gallery-social-heading h2 { margin: 0; }
.gallery-social-heading p { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.61rem; letter-spacing: 0.05em; text-transform: uppercase; }
.gallery-social-heading h2 { margin-top: 5px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: clamp(1.35rem, 2.35vw, 2.25rem); line-height: 1.04; text-transform: uppercase; }
.gallery-social-heading > span { display: block; margin-top: 7px; color: var(--rfr-ink-soft); font-size: 0.76rem; }
.gallery-social-actions { display: flex; align-items: center; gap: 13px; padding: 13px 22px; border-bottom: 2px solid rgba(127,21,32,0.3); background: #e5ca92; }
.gallery-like-button { min-width: 102px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 13px; border: 3px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 3px 3px 0 var(--rfr-gold-dark); color: var(--rfr-red-dark); }
.gallery-like-button span { color: var(--rfr-red); font-size: 1.35rem; line-height: 1; }
.gallery-like-button strong { font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-transform: uppercase; }
.gallery-like-button[aria-pressed="true"] { background: var(--rfr-red); color: var(--rfr-paper); }
.gallery-like-button[aria-pressed="true"] span { color: var(--rfr-paper); }
.gallery-like-button:active:not(:disabled) { transform: translateY(1px); box-shadow: 2px 2px 0 var(--rfr-gold-dark); }
.gallery-like-button:disabled { opacity: 0.52; }
.gallery-social-actions > span { color: var(--rfr-ink-soft); font-size: 0.82rem; font-weight: 700; }
.gallery-comment-ledger { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.gallery-comment-ledger > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 22px 10px; border-bottom: 1px dashed rgba(127,21,32,0.42); }
.gallery-comment-ledger h3 { margin: 0; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.78rem; text-transform: uppercase; }
.gallery-comment-ledger header span { min-width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid var(--rfr-red); border-radius: 50%; color: var(--rfr-red-dark); font-weight: 800; }
.gallery-comment-list { min-height: 0; overflow-y: auto; padding: 0 22px; overscroll-behavior: contain; }
.gallery-comment { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding: 14px 0; border-bottom: 1px dashed rgba(127,21,32,0.3); }
.gallery-comment:last-child { border-bottom: 0; }
.gallery-comment > img { width: 44px; height: 44px; border: 3px double var(--rfr-gold-dark); border-radius: 50%; background: #e2c37e; object-fit: cover; }
.gallery-comment-body { min-width: 0; }
.gallery-comment-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.gallery-comment-tools { flex: 0 0 auto; display: inline-flex; align-items: baseline; gap: 8px; }
.gallery-comment strong { color: var(--rfr-red-dark); font-size: 0.83rem; }
.gallery-comment time { flex: 0 0 auto; color: var(--rfr-ink-soft); font-size: 0.62rem; }
.gallery-comment p { margin: 5px 0 0; color: var(--rfr-ink); font-size: 0.88rem; line-height: 1.42; overflow-wrap: anywhere; }
.gallery-comment-remove { padding: 0; border: 0; background: transparent; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.55rem; text-decoration: underline; text-underline-offset: 0.18em; text-transform: uppercase; }
.gallery-comment-remove:hover { color: var(--rfr-red); }
.gallery-comment-remove:focus-visible { outline: 2px solid var(--rfr-gold-dark); outline-offset: 3px; }
.gallery-comment-confirm { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px 10px; margin-top: 10px; padding: 9px 10px; border: 2px dashed var(--rfr-red); background: rgba(127,21,32,0.07); color: var(--rfr-red-dark); font-size: 0.72rem; font-weight: 700; }
.gallery-comment-confirm[hidden] { display: none; }
.gallery-comment-confirm-actions { display: inline-flex; gap: 6px; }
.gallery-comment-confirm button { min-height: 30px; padding: 4px 8px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.55rem; text-transform: uppercase; }
.gallery-comment-confirm button:active:not(:disabled) { transform: translateY(1px); }
.gallery-comment-confirm .gallery-comment-confirm-delete { background: var(--rfr-red); color: var(--rfr-paper); }
.gallery-comment-confirm button:disabled { opacity: 0.58; }
.gallery-comment-remove-status { grid-column: 1 / -1; color: var(--rfr-red-dark); font-size: 0.68rem; font-weight: 700; }
.gallery-comment-state { margin: 0; padding: 24px 0; color: var(--rfr-ink-soft); font-style: italic; text-align: center; }
.gallery-comment-state.is-error { color: var(--rfr-red-dark); font-weight: 700; }
.gallery-comment-compose { padding: 14px 18px 17px; border-top: 4px double var(--rfr-gold-dark); background: #ead39f; }
.gallery-comment-author { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 9px; margin-bottom: 9px; color: var(--rfr-ink-soft); font-size: 0.74rem; }
.gallery-comment-author[hidden] { display: none; }
.gallery-comment-author img { width: 36px; height: 36px; border: 2px solid var(--rfr-red-dark); border-radius: 50%; object-fit: cover; }
.gallery-comment-author strong { color: var(--rfr-red-dark); }
.gallery-comment-compose form label { display: block; margin-bottom: 6px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.64rem; text-transform: uppercase; }
.gallery-comment-compose textarea { width: 100%; resize: vertical; min-height: 72px; max-height: 150px; padding: 9px 11px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); color: var(--rfr-ink); line-height: 1.35; }
.gallery-comment-compose textarea::placeholder { color: #725c50; opacity: 1; }
.gallery-comment-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 9px; }
.gallery-comment-submit-row p { min-height: 1.3em; margin: 0; color: var(--rfr-red-dark); font-size: 0.7rem; line-height: 1.25; }
.gallery-comment-submit-row .show-button { flex: 0 0 auto; min-height: 38px; padding: 7px 10px; white-space: nowrap; }
.gallery-sign-in-note p { margin: 0 0 8px; color: var(--rfr-ink-soft); font-size: 0.82rem; }
.gallery-sign-in-note a { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-decoration: underline; text-underline-offset: 0.18em; text-transform: uppercase; }
@media (prefers-reduced-motion: no-preference) {
    .gallery-social-dialog[open] .gallery-social-shell { animation: gallery-social-arrive 260ms cubic-bezier(.16,1,.3,1); }
}
@keyframes gallery-social-arrive { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }

/* Rules Booth */
.rules-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 28px; align-items: center; }
.rules-booth-sign { width: 190px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; justify-self: end; border: 7px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); box-shadow: 6px 6px 0 var(--rfr-ink); text-align: center; transform: rotate(1.5deg); }
.rules-booth-sign span { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 3.8rem; line-height: 0.9; }
.rules-booth-sign strong { color: var(--rfr-paper); font-size: 0.76rem; }
.rules-booth-sign small { max-width: 120px; color: rgba(255,247,228,0.7); line-height: 1.15; }
.poker-cheat-sheet { margin-top: 42px; overflow: hidden; border: 5px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 10px 10px 0 var(--rfr-red); }
.cheat-header { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 24px 30px; border-bottom: 6px double var(--rfr-gold); background: var(--rfr-red-dark); color: var(--rfr-paper); }
.cheat-logo { width: 82px; height: 82px; object-fit: contain; filter: drop-shadow(2px 3px 0 rgba(23,18,26,.5)); }
.cheat-header p,
.cheat-header h2 { margin: 0; }
.cheat-header p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.cheat-header h2 { margin-top: 4px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(1.7rem, 3.5vw, 3.3rem); line-height: 1; text-transform: uppercase; }
.cheat-print-button { min-height: 44px; display: inline-grid; place-items: center; padding: 8px 14px; border: 2px solid var(--rfr-gold); background: var(--rfr-paper); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; text-decoration: none; box-shadow: 4px 4px 0 var(--rfr-ink); cursor: pointer; }
.cheat-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr); gap: 28px; padding: 30px; }
.hand-ranking-sheet h3,
.cheat-side h3 { margin: 0 0 14px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 1.1rem; text-transform: uppercase; }
.hand-ranking-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.hand-ranking-list li { min-height: 58px; display: grid; grid-template-columns: 36px minmax(145px, 1fr) minmax(160px, auto); align-items: center; gap: 11px; margin: 0; padding: 7px 10px; border: 1px solid var(--rfr-gold-dark); background: rgba(224,170,62,0.09); }
.hand-ranking-list li > b { width: 30px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); }
.hand-ranking-list li > span { display: grid; }
.hand-ranking-list li strong { color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.73rem; text-transform: uppercase; }
.hand-ranking-list li small { color: var(--rfr-ink-soft); }
.card-example { color: var(--rfr-ink); font-family: 'DM Sans', sans-serif; font-size: 0.8rem; font-style: normal; font-weight: 800; text-align: right; white-space: nowrap; }
.red-suit { color: var(--rfr-red); }
.cheat-side { display: grid; gap: 18px; align-content: start; }
.cheat-rounds,
.cheat-actions,
.cheat-reminders { padding: 20px; border: 2px solid var(--rfr-ink); background: #eed9aa; }
.cheat-rounds > div,
.cheat-actions > div { display: grid; grid-template-columns: 90px 1fr; gap: 9px; padding: 7px 0; border-bottom: 1px dashed var(--rfr-gold-dark); }
.cheat-rounds b,
.cheat-actions b { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.7rem; }
.cheat-rounds span,
.cheat-actions span { line-height: 1.3; }
.cheat-reminders { background: var(--rfr-night); color: var(--rfr-paper); }
.cheat-reminders h3 { color: var(--rfr-gold); }
.cheat-reminders ul { padding-left: 18px; }
.cheat-reminders li { color: rgba(255,247,228,0.78); line-height: 1.35; }
.cheat-footer { display: flex; justify-content: space-between; gap: 18px; padding: 13px 24px; border-top: 3px solid var(--rfr-ink); background: var(--rfr-gold); color: var(--rfr-ink); }
.cheat-footer strong { color: var(--rfr-ink); }
.rules-full-guide { margin-top: 58px; }
.page-how-to-play .rules-full-guide .article-section h2 { border: 3px solid var(--rfr-ink); box-shadow: 4px 4px 0 var(--rfr-gold-dark); }

/* The Cabinet of Rumpé Curiosities */
.cabinet-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 28px; align-items: center; }
.cabinet-key { width: 170px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; justify-self: end; border: 7px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); box-shadow: 6px 6px 0 var(--rfr-ink); color: var(--rfr-paper); transform: rotate(2deg); }
.cabinet-key span { color: var(--rfr-gold); font-size: 3rem; line-height: 0.9; }
.cabinet-key strong { color: var(--rfr-paper); font-size: 1.2rem; }
.cabinet-tabs {
    margin-top: 62px;
    border: 7px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-paper);
    box-shadow:
        11px 0 0 rgba(127,21,32,0.5),
        0 12px 0 rgba(127,21,32,0.5),
        11px 12px 0 rgba(127,21,32,0.5);
}
.cabinet-tablist { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 0; margin: 0; padding: 0; }
.cabinet-tab {
    position: relative;
    min-height: 68px;
    margin: 0;
    padding: 16px 18px;
    border: 0;
    border-right: 4px solid var(--rfr-ink);
    border-bottom: 4px solid var(--rfr-ink);
    border-radius: 0;
    background: #d7bd7d;
    box-shadow: none;
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(0.82rem, 1.5vw, 1.08rem);
    letter-spacing: 0.025em;
    text-transform: uppercase;
    transition: transform 160ms ease, background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
.cabinet-tab:last-child { border-right: 0; }
.cabinet-tab:hover { background: #ead596; }
.cabinet-tab[aria-selected="true"] { z-index: 3; background: var(--rfr-paper); color: var(--rfr-red-dark); border-bottom-color: var(--rfr-paper); box-shadow: inset 0 5px 0 var(--rfr-red); transform: none; }
.cabinet-tab:active { transform: translateY(1px); }
.cabinet-tab:focus-visible { z-index: 4; outline: 4px double var(--rfr-red); outline-offset: -9px; }
.cabinet-tab-panels { position: relative; z-index: 1; margin: 0; padding: clamp(24px, 4vw, 46px); border: 0; outline: 0; background: linear-gradient(rgba(255,247,228,0.94), rgba(239,220,174,0.94)); box-shadow: none; }
.cabinet-tab-panel[hidden] { display: none; }
.cabinet-shelf-heading { margin: 0 0 30px; padding: 0 0 22px; border-bottom: 5px double var(--rfr-gold-dark); }
.cabinet-shelf-heading h2 { margin: 0; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: 0.92; text-transform: uppercase; }
.cabinet-shelf-heading p { max-width: 66ch; margin: 12px 0 0; color: var(--rfr-ink-soft); font-size: 1.03rem; line-height: 1.5; }
.cabinet-tab-panel > .cabinet-grid { margin-top: 0; }
.cabinet-tab-panel > .cabinet-feature + .cabinet-grid { margin-top: 44px; }
.cabinet-feature { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(0, 1fr); min-height: 600px; overflow: hidden; border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 10px 10px 0 var(--rfr-red); color: var(--rfr-paper); }
.cabinet-feature figure { min-height: 600px; margin: 0; overflow: hidden; }
.cabinet-feature figure img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; filter: saturate(0.72) sepia(0.08); }
.cabinet-feature > div { display: flex; flex-direction: column; justify-content: center; padding: clamp(30px, 5vw, 60px); }
.cabinet-feature > div > p:first-child { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.cabinet-feature h2 { margin: 8px 0 20px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.4rem, 5vw, 4.8rem); line-height: 0.94; text-transform: uppercase; }
.cabinet-feature > div > p { color: rgba(255,247,228,0.76); font-size: 1.05rem; }
.cabinet-feature dl { display: grid; gap: 0; margin-top: 24px; }
.cabinet-feature dl div { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px dashed rgba(224,170,62,0.4); }
.cabinet-feature dt { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-transform: uppercase; }
.cabinet-feature dd { margin: 0; }
.cabinet-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; gap: 22px; margin-top: 64px; }
.cabinet-grid-prizes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cabinet-grid-prizes .cabinet-item { grid-column: auto; }
.cabinet-item { grid-column: span 4; overflow: hidden; border: var(--rfr-border); background: var(--rfr-paper); box-shadow: 7px 7px 0 rgba(127,21,32,0.52); }
.cabinet-item-wide { grid-column: span 8; display: grid; grid-template-columns: 1.15fr 0.85fr; }
.cabinet-item-full { grid-column: span 12; grid-template-columns: 1.55fr 0.65fr; }
.cabinet-item-tall { grid-row: span 2; }
.cabinet-item img { width: 100%; height: 280px; object-fit: cover; filter: saturate(0.75) sepia(0.06); }
.cabinet-item-wide img { height: 100%; min-height: 390px; }
.cabinet-item-queens-appointment img { object-position: 100% 50%; }
.cabinet-item-food-cupcakes { height: 511px; }
.cabinet-item-food-cupcakes img { height: 100%; min-height: 0; object-position: center 84%; }
.cabinet-item-matted img { height: 440px; object-fit: contain; padding: 14px; background: var(--rfr-night); }
.cabinet-item-tall img { height: 500px; }
.cabinet-item > div { padding: 22px; }
.cabinet-item > div > p:first-child { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-transform: uppercase; }
.cabinet-item h2 { margin: 6px 0 10px; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 1.15rem; line-height: 1.15; text-transform: uppercase; }
.cabinet-item div > p { color: var(--rfr-ink-soft); line-height: 1.45; }
.cabinet-item div > span { display: block; margin-top: 16px; padding-top: 10px; border-top: 1px dashed var(--rfr-gold-dark); color: var(--rfr-red-dark); font-weight: 700; }
.cabinet-ledger,
.about-cabinet-link { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 70px; padding: 32px 38px; border: 5px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-red-dark); box-shadow: 8px 8px 0 var(--rfr-gold-dark); color: var(--rfr-paper); }
.cabinet-ledger p,
.cabinet-ledger h2,
.about-cabinet-link p,
.about-cabinet-link h2 { margin: 0; }
.cabinet-ledger p,
.about-cabinet-link p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.cabinet-ledger h2,
.about-cabinet-link h2 { margin-top: 6px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(1.5rem, 3vw, 2.6rem); line-height: 1.05; text-transform: uppercase; }
.cabinet-ledger span,
.about-cabinet-link span { display: block; margin-top: 8px; color: rgba(255,247,228,0.72); }

@media (prefers-reduced-motion: no-preference) {
    .cabinet-tab-panel:not([hidden]) { animation: cabinet-shelf-arrival 260ms cubic-bezier(0.16, 1, 0.3, 1) both; }
}

@keyframes cabinet-shelf-arrival {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

/* About */
.about-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 28px; align-items: center; }
.about-founded { width: 180px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; justify-self: end; border: 7px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); box-shadow: 6px 6px 0 var(--rfr-ink); text-align: center; transform: rotate(2deg); }
.about-founded strong { color: var(--rfr-gold); font-size: 2.2rem; }
.about-founded span { max-width: 120px; font-family: 'Bungee', sans-serif; font-size: 0.66rem; line-height: 1.2; text-transform: uppercase; }
.about-photo-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 42px; padding: 14px; transform: rotate(-0.25deg); border: var(--rfr-border); background: var(--rfr-night); box-shadow: 7px 7px 0 var(--rfr-red); }
.about-photo { position: relative; min-width: 0; height: 250px; margin: 0; overflow: hidden; border: 5px solid var(--rfr-paper); background: var(--rfr-ink); }
.about-photo::before { content: ""; position: absolute; inset: -14px; background: var(--about-photo) center / cover no-repeat; filter: blur(12px) saturate(0.5) brightness(0.45); transform: scale(1.06); }
.about-photo img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; filter: saturate(0.72) sepia(0.08); }
.about-photo:nth-child(even) { transform: translateY(6px) rotate(0.7deg); }
.page-about .article-content { padding: clamp(24px, 5vw, 52px); }
.page-about .article-section + .article-section { margin-top: 42px; padding-top: 38px; border-top: 4px double var(--rfr-gold-dark); }
.page-about .article-section h2 { border: 3px solid var(--rfr-ink); box-shadow: 4px 4px 0 var(--rfr-gold-dark); }
.page-about .article-section p,
.page-about .article-section li { font-size: 1.04rem; }

/* Visual aids, legacy invitations and hidden corners */
.visual-aids-intro { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 27px 32px; border: 5px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 8px 8px 0 var(--rfr-red); color: var(--rfr-paper); }
.visual-aids-intro h2,
.visual-aids-intro p { margin: 0; }
.visual-aids-intro h2 { color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.6rem; text-transform: uppercase; }
.visual-aids-intro p { margin-top: 5px; color: rgba(255,247,228,0.7); }
.visual-aids-panel { margin-top: 44px; }
.page-visual-aids .visual-aids-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.page-visual-aids .visual-aids-gallery img { grid-column: span 4; width: 100%; height: 360px; border: 8px solid var(--rfr-paper); outline: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 6px 6px 0 rgba(127,21,32,0.45); object-fit: contain; }
.page-visual-aids .visual-aids-gallery img:nth-child(4n + 1) { transform: rotate(-0.45deg); }
.page-visual-aids .visual-aids-gallery img:nth-child(4n + 3) { transform: rotate(0.5deg); }
.page-rfr3 .article-content,
.page-rfr4 .article-content { padding: clamp(24px, 5vw, 48px); }
.page-rfr3 .page-header,
.page-rfr4 .page-header { background: var(--rfr-paper); }
.page-rfr4 .event-detail-layout-wide { max-width: 100%; grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); }
.page-rfr4 .event-sidebar { min-width: 0; }
.page-rfr4 .event-facts { overflow-wrap: anywhere; }

.page-queen { background: var(--rfr-night); }
.queen-page { min-height: calc(100dvh - 150px); display: grid; place-items: center; }
.queen-stage { width: min(1050px, 100%); display: grid; grid-template-columns: 1fr 380px; align-items: center; gap: 64px; padding: clamp(32px, 6vw, 72px); border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-paper); background: radial-gradient(circle at 70% 42%, rgba(185,31,46,0.32), transparent 28%), var(--rfr-night); box-shadow: 12px 12px 0 var(--rfr-red-dark); color: var(--rfr-paper); }
.queen-copy > p:first-child { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.queen-copy h1 { margin: 8px 0 18px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(3rem, 7vw, 6.8rem); line-height: 0.86; text-transform: uppercase; text-shadow: 4px 4px 0 var(--rfr-red); }
.queen-copy p { color: rgba(255,247,228,0.72); font-size: 1.08rem; }
.queen-card { position: relative; width: 100%; aspect-ratio: 0.68; padding: 0; transform-style: preserve-3d; border: 0; background: transparent; box-shadow: 11px 11px 0 var(--rfr-red); transition: transform 700ms cubic-bezier(0.16,1,0.3,1); }
.queen-card.is-flipped { transform: rotateY(180deg); }
.queen-card-front,
.queen-card-back { position: absolute; inset: 0; display: grid; place-items: center; padding: 14px; backface-visibility: hidden; border: 7px double var(--rfr-gold); background: var(--rfr-paper); }
.queen-card-back { transform: rotateY(180deg); }
.queen-card img { width: 100%; height: 100%; object-fit: contain; }
.queen-return { margin-top: 32px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.74rem; text-align: center; text-transform: uppercase; }
.page-access-denied,
.page-lost {
    background:
        radial-gradient(circle at 18% 10%, rgba(185, 31, 46, 0.26), transparent 34%),
        linear-gradient(rgba(14, 8, 11, 0.9), rgba(14, 8, 11, 0.96)),
        repeating-linear-gradient(90deg, var(--rfr-night) 0 54px, #28181d 54px 108px);
}

.access-denied-page,
.lost-page {
    width: min(1340px, calc(100% - 40px));
    min-height: calc(100dvh - 76px);
    display: grid;
    place-items: center;
    padding-block: clamp(34px, 5vw, 70px);
}

.error-scene {
    width: 100%;
    display: grid;
    overflow: hidden;
    border: 8px double var(--rfr-gold);
    outline: 3px solid var(--rfr-paper);
    background: var(--rfr-night);
    box-shadow: 14px 14px 0 var(--rfr-red-dark), 0 28px 70px rgba(7, 3, 5, 0.58);
    color: var(--rfr-paper);
}

.access-denied-scene { grid-template-columns: minmax(0, 1.3fr) minmax(390px, 0.7fr); }
.lost-scene { grid-template-columns: minmax(390px, 0.72fr) minmax(0, 1.28fr); }

.error-scene-art {
    position: relative;
    min-width: 0;
    min-height: 610px;
    margin: 0;
    overflow: hidden;
    background: #130c10;
}

.access-denied-art { border-right: 5px solid var(--rfr-gold); }
.lost-art { border-left: 5px solid var(--rfr-gold); }

.error-scene-art::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(0deg, transparent 0 4px, rgba(255, 247, 228, 0.035) 4px 5px);
    mix-blend-mode: screen;
}

.error-scene-art img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.error-scene-copy {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(34px, 5vw, 68px);
    background:
        linear-gradient(rgba(127, 21, 32, 0.92), rgba(92, 13, 27, 0.96)),
        repeating-linear-gradient(135deg, transparent 0 17px, rgba(255, 247, 228, 0.05) 17px 20px);
}

.lost-copy {
    background:
        linear-gradient(rgba(29, 22, 25, 0.96), rgba(20, 13, 17, 0.98)),
        repeating-linear-gradient(135deg, transparent 0 17px, rgba(224, 170, 62, 0.05) 17px 20px);
}

.error-scene-kicker {
    width: fit-content;
    margin: 0 0 20px;
    padding: 7px 10px 6px;
    transform: rotate(-1deg);
    border: 2px solid var(--rfr-ink);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
    line-height: 1.25;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 rgba(14, 8, 11, 0.72);
}

.error-scene-stamp {
    position: absolute;
    top: 26px;
    right: 24px;
    padding: 8px 11px 7px;
    transform: rotate(5deg);
    border: 4px double var(--rfr-paper);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(0.7rem, 1.2vw, 0.95rem);
    line-height: 1;
    text-transform: uppercase;
    opacity: 0.72;
}

.error-scene-copy h1 {
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.5rem, 5vw, 5.6rem);
    line-height: 0.9;
    text-transform: uppercase;
    text-shadow: 4px 4px 0 var(--rfr-ink);
}

.error-scene-copy > p:not(.error-scene-kicker) {
    max-width: 55ch;
    margin: 24px 0 0;
    color: rgba(255, 247, 228, 0.82);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    line-height: 1.58;
}

.error-scene-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.lost-code {
    display: block;
    margin: 0 0 18px;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(5.8rem, 11vw, 10rem);
    line-height: 0.72;
    text-shadow: 6px 6px 0 var(--rfr-red-dark);
}

.lost-location {
    display: grid;
    gap: 3px;
    width: min(100%, 430px);
    margin-top: 28px;
    padding: 15px 17px;
    transform: rotate(-0.6deg);
    border: 2px dashed var(--rfr-gold);
    background: rgba(224, 170, 62, 0.09);
}

.lost-location strong {
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.68rem;
    text-transform: uppercase;
}

.lost-location span { color: rgba(255, 247, 228, 0.78); }

@media (max-width: 980px) {
    .access-denied-scene,
    .lost-scene { grid-template-columns: minmax(0, 1fr); }

    .error-scene-art {
        min-height: 0;
        aspect-ratio: 3 / 2;
    }

    .access-denied-art { border-right: 0; border-bottom: 5px solid var(--rfr-gold); }
    .lost-art { order: -1; border-bottom: 5px solid var(--rfr-gold); border-left: 0; }
}

@media (max-width: 620px) {
    .access-denied-page,
    .lost-page { width: min(100% - 24px, 1340px); padding-block: 26px 42px; }

    .error-scene { border-width: 6px; box-shadow: 7px 8px 0 var(--rfr-red-dark); }
    .error-scene-copy { padding: 34px 22px 38px; }
    .error-scene-kicker { max-width: calc(100% - 96px); margin-bottom: 18px; font-size: 0.6rem; }
    .error-scene-stamp { top: 24px; right: 17px; border-width: 3px; font-size: 0.58rem; }
    .error-scene-copy h1 { font-size: clamp(2.1rem, 12vw, 3.3rem); }
    .lost-code { font-size: clamp(5.2rem, 27vw, 7.5rem); }
    .error-scene-actions { width: 100%; }
    .error-scene-actions .show-button { width: 100%; }
}

@media (max-width: 980px) {
    .cheat-layout { grid-template-columns: 1fr; }
    .cabinet-tab-panels { padding: 28px 22px; }
    .cabinet-feature { grid-template-columns: 1fr; }
    .cabinet-feature figure { min-height: 500px; max-height: 650px; }
    .cabinet-item { grid-column: span 6; }
    .cabinet-item-wide { grid-column: span 12; }
    .cabinet-grid-prizes { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .rules-show-header,
    .cabinet-show-header,
    .about-show-header { grid-template-columns: 1fr; }
    .rules-booth-sign,
    .cabinet-key,
    .about-founded { justify-self: start; width: 145px; }
    .cabinet-tabs { margin-top: 46px; }
    .cabinet-tablist { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cabinet-tab { min-height: 56px; padding: 12px 4px; font-size: clamp(0.64rem, 2.8vw, 0.76rem); transform: none !important; }
    .cabinet-tab[aria-selected="true"] { min-height: 56px; transform: none !important; }
    .cabinet-tab-panels { padding: 24px 14px; }
    .cabinet-shelf-heading { margin-bottom: 22px; padding-bottom: 17px; }
    .cheat-header { grid-template-columns: 60px 1fr; padding: 18px; }
    .cheat-logo { width: 58px; }
    .cheat-print-button { grid-column: 1 / -1; }
    .cheat-layout { padding: 17px; }
    .hand-ranking-list li { grid-template-columns: 31px 1fr; }
    .card-example { grid-column: 2; text-align: left; }
    .cheat-footer { display: grid; }
    .cabinet-feature figure { min-height: 440px; }
    .cabinet-feature > div { padding: 28px 20px; }
    .cabinet-feature dl div { grid-template-columns: 1fr; }
    .cabinet-item,
    .cabinet-item-wide { grid-column: span 12; display: block; }
    .cabinet-item-food-cupcakes { height: auto; }
    .cabinet-item-wide img,
    .cabinet-item-tall img { height: 320px; min-height: 0; }
    .cabinet-ledger,
    .about-cabinet-link { display: grid; padding: 26px 20px; }
    .about-photo-strip { grid-template-columns: 1fr 1fr; }
    .about-photo { height: 190px; }
    .visual-aids-intro { display: grid; padding: 24px 20px; }
    .page-visual-aids .visual-aids-gallery img { grid-column: span 12; height: auto; min-height: 280px; transform: none !important; }
    .page-rfr4 .event-detail-layout-wide { grid-template-columns: 1fr; }
    .queen-stage { grid-template-columns: 1fr; padding: 30px 18px; }
    .queen-card { width: min(340px, 100%); justify-self: center; }
}

@media print {
    .page-how-to-play { background: #fff !important; }
    .page-how-to-play .site-page { width: 100%; padding: 0; }
    .page-how-to-play .rules-show-header,
    .page-how-to-play .rules-full-guide { display: none !important; }
    .poker-cheat-sheet { margin: 0; border: 2px solid #222; box-shadow: none; break-inside: avoid; }
    .cheat-header { padding: 10px 14px; color-adjust: exact; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .cheat-logo { width: 56px; height: 56px; }
    .cheat-header h2 { font-size: 1.6rem; }
    .cheat-print-button { display: none; }
    .cheat-layout { grid-template-columns: 1.1fr 0.9fr; gap: 10px; padding: 10px; }
    .hand-ranking-list { gap: 2px; }
    .hand-ranking-list li { min-height: 0; padding: 3px 5px; grid-template-columns: 25px 1fr 130px; gap: 5px; }
    .hand-ranking-list li > b { width: 22px; font-size: 0.7rem; }
    .hand-ranking-list li strong,
    .hand-ranking-list li small,
    .card-example { font-size: 0.58rem; }
    .cheat-side { gap: 6px; }
    .cheat-rounds,
    .cheat-actions,
    .cheat-reminders { padding: 7px 9px; color-adjust: exact; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .cheat-side h3 { margin-bottom: 4px; font-size: 0.72rem; }
    .cheat-rounds > div,
    .cheat-actions > div { padding: 2px 0; font-size: 0.57rem; }
    .cheat-reminders li { margin-top: 2px; font-size: 0.55rem; }
    .cheat-footer { padding: 6px 10px; font-size: 0.6rem; color-adjust: exact; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Carnival of Cards expansion */
.show-button-night { border-color: var(--rfr-gold); background: #101827; color: var(--rfr-paper); }
.show-button-night:hover { background: #07101f; color: var(--rfr-gold); }
.champion-spotlight-button { margin-top: 12px; padding: 8px 12px; border: 2px solid var(--rfr-gold); background: transparent; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.62rem; text-transform: uppercase; }
.champion-spotlight-button:hover { background: var(--rfr-gold); color: var(--rfr-ink); }

.showground-after-dark .home-page { background: #080e1a; }
.showground-after-dark .showground-hero::after { opacity: 1; }
.showground-after-dark .hero-copy,
.showground-after-dark .hero-champion,
.showground-after-dark .hero-ticker { z-index: 2; }
.hero-champion,
.home-noticeboard,
.map-attraction,
.sideshow-stat,
.sideshow-photo,
.home-lucky-dip,
.home-proclamation { transition: background-color 400ms ease, color 400ms ease, box-shadow 400ms ease, border-color 400ms ease; }
.showground-after-dark .hero-champion { box-shadow: 0 0 0 6px var(--rfr-red), 0 0 45px rgba(224,170,62,0.55), 10px 10px 0 rgba(0,0,0,0.55); }
.showground-after-dark .hero-ticker { border-color: var(--rfr-gold); background: var(--rfr-red-dark); color: var(--rfr-paper); }
.showground-after-dark .hero-ticker b { color: var(--rfr-gold); }
.showground-after-dark .home-noticeboard {
    background:
        linear-gradient(rgba(10, 17, 31, 0.94), rgba(10, 17, 31, 0.94)),
        url("images/events/RFR3-23-thumb.jpg") center / cover;
    color: var(--rfr-paper);
    box-shadow: inset 0 0 55px rgba(0, 0, 0, 0.72), 0 0 0 3px var(--rfr-gold), 9px 12px 0 rgba(0, 0, 0, 0.48);
}
.showground-after-dark .map-attraction { background: #182235; color: var(--rfr-paper); }
.showground-after-dark .map-attraction-featured {
    background:
        linear-gradient(90deg, rgba(77, 7, 22, 0.98), rgba(12, 18, 34, 0.88)),
        url("images/rfr5-big-top-poster.jpg") center 48% / cover;
}
.showground-after-dark .map-attraction h3 { color: var(--rfr-gold); }
.showground-after-dark .map-attraction p { color: rgba(255,247,228,0.68); }
.showground-after-dark .sideshow-stat { border-color: var(--rfr-gold); background: #111b2d; color: var(--rfr-paper); box-shadow: 7px 7px 0 var(--rfr-red); }
.showground-after-dark .sideshow-stat p { color: rgba(255,247,228,0.62); }
.showground-after-dark .sideshow-stat > strong { color: var(--rfr-gold); text-shadow: 3px 3px 0 var(--rfr-red-dark); }
.showground-after-dark .sideshow-photo { border-color: var(--rfr-gold); background: #101827; color: var(--rfr-paper); box-shadow: 7px 7px 0 var(--rfr-red); }
.showground-after-dark .home-lucky-dip { border-color: var(--rfr-gold); background: #56101c; box-shadow: 10px 10px 0 #0a1220, 0 0 38px rgba(224,170,62,0.14); }
.showground-after-dark .home-proclamation { box-shadow: 9px 9px 0 var(--rfr-gold-dark), 0 0 46px rgba(224,170,62,0.2); }

.champion-dialog { width: min(680px, calc(100% - 30px)); overflow: hidden; padding: 38px; border: 8px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 12px 12px 0 var(--rfr-red); color: var(--rfr-paper); text-align: center; }
.champion-dialog::backdrop { background: rgba(13,8,12,0.88); }
.champion-portrait-pair { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; justify-items: center; gap: clamp(18px, 7vw, 72px); }
.champion-portrait-pair img { width: min(190px, 100%); aspect-ratio: 1; border: 7px double var(--rfr-gold); border-radius: 50%; box-shadow: 0 0 42px rgba(224,170,62,0.62); object-fit: cover; }
.champion-portrait-original { transform: rotate(-1.5deg); }
.champion-portrait-carnival { transform: rotate(1.5deg); object-position: center 22%; }
.champion-dialog > p { position: relative; z-index: 2; margin: 18px 0 5px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.champion-dialog > h2 { position: relative; z-index: 2; margin: 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2rem, 6vw, 4rem); line-height: 0.98; text-transform: uppercase; }
.champion-dialog .show-button { position: relative; z-index: 2; }
.champion-beam { position: absolute; left: 50%; top: -70px; width: 320px; height: 520px; transform: translateX(-50%); background: linear-gradient(to bottom, rgba(255,232,164,0.46), rgba(255,232,164,0)); clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%); pointer-events: none; }
.champion-placard-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 25px 0; }
.champion-placard-stats span { padding: 12px 8px; border: 1px dashed var(--rfr-gold); color: rgba(255,247,228,0.72); font-size: 0.76rem; }
.champion-placard-stats strong { display: block; color: var(--rfr-gold); font-size: 1.5rem; }

.lucky-handle-machine { display: flex; align-items: center; gap: 20px; margin-top: 20px; }
.lucky-handle-machine p { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.75rem; text-transform: uppercase; }
.lucky-handle {
    position: relative;
    flex: 0 0 92px;
    width: 92px;
    height: 118px;
    overflow: visible;
    padding: 0;
    border: 5px double var(--rfr-gold);
    border-radius: 8px;
    background: linear-gradient(145deg, #7e1724, #3a0d16);
    box-shadow: inset 0 0 0 5px #29151a, 5px 6px 0 rgba(0,0,0,0.42);
}
.lucky-handle::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 15px;
    width: 42px;
    height: 42px;
    transform: translateX(-50%);
    border: 4px double var(--rfr-gold);
    border-radius: 50%;
    background: #161924;
    box-shadow: inset 0 0 0 4px #5d1621;
}
.lucky-handle span {
    position: absolute;
    z-index: 1;
    left: calc(50% - 5px);
    bottom: 33px;
    width: 10px;
    height: 64px;
    transform-origin: 50% calc(100% - 2px);
    border: 1px solid #6e4b17;
    border-radius: 6px;
    background: linear-gradient(90deg, #8e671c, #ffe29a 45%, #a06d17);
    box-shadow: 2px 2px 0 rgba(0,0,0,0.3);
    transition: transform 520ms cubic-bezier(.16,.85,.22,1.25);
}
.lucky-handle span::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -23px;
    width: 34px;
    height: 34px;
    transform: translateX(-50%);
    border: 4px solid var(--rfr-paper);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #e94b58, var(--rfr-red) 58%, #6d111d 60%);
    box-shadow: 3px 3px 0 rgba(0,0,0,0.4);
}
.lucky-handle span::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 20px;
    height: 20px;
    transform: translateX(-50%);
    border: 3px solid var(--rfr-gold);
    border-radius: 50%;
    background: #3c1019;
}
.lucky-handle:is(:active, .is-pulled) span { transform: rotate(126deg); }

.fortune-audience { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; }
.fortune-progress { min-height: 2.4em; margin: 0; color: var(--rfr-ink-soft); font-size: 0.74rem; }
@keyframes fortune-arrive { 0% { opacity: 0; transform: rotateX(90deg) translateY(-18px); } 100% { opacity: 1; transform: none; } }
@keyframes fortune-card-consult {
    0% { transform: rotate(-3deg) translateY(0) rotateY(0); }
    34% { transform: rotate(4deg) translateY(-14px) rotateY(10deg); }
    62% { transform: rotate(-1deg) translateY(-7px) rotateY(-7deg); }
    100% { transform: rotate(-3deg) translateY(0) rotateY(0); }
}
@keyframes fortune-prophecy-awaken {
    0%, 100% { box-shadow: 5px 5px 0 rgba(0,0,0,0.38), inset 0 0 24px rgba(127,21,32,0.08); }
    48% { box-shadow: 5px 5px 0 rgba(0,0,0,0.38), 0 0 0 5px rgba(224,170,62,0.14), inset 0 0 38px rgba(224,170,62,0.24); }
}
@keyframes rumour-arrive { 0% { opacity: 0; transform: translateX(-18px) rotate(-1deg); } 100% { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
    .fortune-arriving { animation: fortune-arrive 500ms cubic-bezier(.16,1,.3,1); }
    .fortune-dialog.is-reading .fortune-card { animation: fortune-card-consult 850ms cubic-bezier(.16,1,.3,1); }
    .fortune-dialog.is-reading .fortune-prophecy { animation: fortune-prophecy-awaken 850ms ease; }
    .rumour-arriving { animation: rumour-arrive 420ms cubic-bezier(.16,1,.3,1); }
}

.carnival-confetti { position: fixed; inset: 0; z-index: 9999; overflow: hidden; pointer-events: none; }
.carnival-confetti i { position: absolute; left: var(--x); top: -50px; color: var(--rfr-gold); font-style: normal; font-size: 22px; text-shadow: 1px 1px 0 var(--rfr-ink); animation: carnival-fall var(--fall) var(--delay) cubic-bezier(.2,.65,.35,1) forwards; }
.carnival-confetti i:nth-child(4n + 1) { color: var(--rfr-red); }
.carnival-confetti i:nth-child(4n + 2) { color: #fff0c0; }
.carnival-confetti i:nth-child(4n + 3) { color: #29456d; }
@keyframes carnival-fall { to { transform: translate(var(--drift), 115vh) rotate(720deg); opacity: 0.25; } }

/* Interactive RFR V bills */
.rfr5-title-ticket { width: fit-content; margin: 12px auto 0; padding: 6px 12px; border-block: 2px solid var(--rfr-gold); color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; letter-spacing: 0.08em; }
.performer-card { min-height: 620px; overflow: visible; perspective: 1300px; background: transparent; }
.performer-card-flipper { width: 100%; min-height: 580px; display: block; padding: 0; border: 0; background: transparent; color: inherit; transform-style: preserve-3d; transition: transform 700ms cubic-bezier(.16,1,.3,1); text-align: left; }
.performer-card.is-flipped .performer-card-flipper { transform: rotateY(180deg); }
.performer-face { position: absolute; inset: 0; display: flex; flex-direction: column; overflow: hidden; border: var(--rfr-border); background: var(--rfr-night); box-shadow: 7px 7px 0 rgba(127,21,32,0.8); backface-visibility: hidden; }
.performer-front img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.performer-copy { flex: 1; display: flex; flex-direction: column; padding: 20px; }
.performer-copy b { color: var(--rfr-gold); }
.performer-copy strong { margin: 7px 0 9px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.05rem; line-height: 1.2; text-transform: uppercase; }
.performer-copy em { color: rgba(255,247,228,0.72); font-style: normal; line-height: 1.35; }
.performer-back { justify-content: center; gap: 8px; padding: 34px; transform: rotateY(180deg); background: radial-gradient(circle at center, rgba(224,170,62,0.2), transparent 44%), repeating-linear-gradient(45deg, rgba(255,255,255,0.025) 0 4px, transparent 4px 9px), var(--rfr-red-dark); text-align: center; }
.performer-back::before { content: "♠  ♥  ♦  ♣"; color: var(--rfr-gold); font-size: 1.4rem; }
.performer-back > b { margin-top: 8px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.62rem; text-transform: uppercase; }
.performer-back > strong { color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.45rem; line-height: 1.1; text-transform: uppercase; }
.performer-back > span { color: rgba(255,247,228,0.78); }
.performer-live-stats { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--rfr-gold); color: var(--rfr-gold) !important; font-size: 0.78rem; }
@media (prefers-reduced-motion: no-preference) {
    .performer-card:nth-child(1).is-flipped { animation: performer-escape 780ms ease; }
    .performer-card:nth-child(2).is-flipped { animation: performer-detect 780ms ease; }
    .performer-card:nth-child(3).is-flipped { animation: performer-lift 780ms ease; }
    .performer-card:nth-child(4).is-flipped { animation: performer-mesmerise 780ms ease; }
    .performer-card:nth-child(5).is-flipped { animation: performer-whirl 780ms ease; }
    .performer-card:nth-child(6).is-flipped { animation: performer-mystery 780ms ease; }
}
@keyframes performer-escape { 50% { transform: translateY(-18px); opacity: 0.82; } }
@keyframes performer-detect { 50% { filter: contrast(1.35); } }
@keyframes performer-lift { 50% { transform: translateY(-13px) scale(1.015); } }
@keyframes performer-mesmerise { 50% { filter: saturate(1.8); } }
@keyframes performer-whirl { 50% { transform: rotate(1.5deg) scale(1.01); } }
@keyframes performer-mystery { 50% { filter: grayscale(1) contrast(1.2); } }

.rfr5-games > header { max-width: 720px; }
.rfr5-games > header p { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.rfr5-games > header h2 { margin: 7px 0 28px; font-family: 'Bungee', sans-serif; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; text-transform: uppercase; }
.rfr5-games-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.strength-tester,
.carnival-wheel-booth { min-height: 430px; display: grid; grid-template-columns: 145px 1fr; gap: 28px; align-items: center; padding: 32px; border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 8px 8px 0 var(--rfr-red); color: var(--rfr-paper); }
.strength-tester h3,
.carnival-wheel-booth h3 { margin: 7px 0 16px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.6rem; line-height: 1.1; text-transform: uppercase; }
.strength-tester p,
.carnival-wheel-booth p { color: rgba(255,247,228,0.65); }
.strength-tester > div:last-child > strong,
.carnival-wheel-booth > div:last-child > strong { display: block; min-height: 3em; margin-top: 18px; color: var(--rfr-gold); line-height: 1.35; }
.strength-tower { position: relative; width: 96px; height: 335px; justify-self: center; border: 6px double var(--rfr-gold); background: repeating-linear-gradient(to top, #821927 0 12px, #f1d590 12px 16px); box-shadow: inset 0 0 0 8px #29151a; }
.strength-tower::before { content: "100\A 75\A 50\A 25"; white-space: pre; position: absolute; right: 105%; top: 19px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.55rem; line-height: 5.9; }
.strength-bell { position: absolute; left: 50%; top: -37px; width: 78px; height: 48px; display: grid; place-items: center; transform: translateX(-50%); border: 4px double var(--rfr-gold); border-radius: 50% 50% 10px 10px; background: var(--rfr-red); color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.65rem; }
.strength-tower i { position: absolute; left: 12px; right: 12px; bottom: 9px; height: 22px; transform: translateY(0); border: 3px solid var(--rfr-paper); border-radius: 50%; background: var(--rfr-red); }
.strength-tester.is-running .strength-tower i { animation: strength-climb 1.8s linear infinite alternate; }
@keyframes strength-climb { from { transform: translateY(0); } to { transform: translateY(-278px); } }

.carnival-wheel-booth { grid-template-columns: 210px 1fr; background: linear-gradient(130deg, #5d111c, #17121a); }
.carnival-wheel { position: relative; width: 200px; aspect-ratio: 1; display: grid; place-items: center; border: 9px double var(--rfr-gold); border-radius: 50%; background: conic-gradient(var(--rfr-red) 0 45deg, #e8cc88 45deg 90deg, #24436b 90deg 135deg, #f4e3b4 135deg 180deg, #811826 180deg 225deg, #d9a832 225deg 270deg, #173a32 270deg 315deg, #ead89d 315deg); box-shadow: 0 0 0 7px var(--rfr-ink), 7px 8px 0 rgba(0,0,0,0.55); transition: transform 2.8s cubic-bezier(.13,.66,.12,1); }
.carnival-wheel::before { content: "▼"; position: absolute; top: -28px; color: var(--rfr-gold); font-size: 2rem; text-shadow: 2px 2px 0 var(--rfr-ink); }
.carnival-wheel span { width: 62px; aspect-ratio: 1; display: grid; place-items: center; border: 5px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-night); color: var(--rfr-gold); font-family: 'Bungee', sans-serif; }

.performance-board { width: min(920px, calc(100% - 30px)); margin: 86px auto 22px; padding: 22px 30px; transform: rotate(-0.5deg); border: 6px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-red-dark); box-shadow: 9px 9px 0 var(--rfr-ink); color: var(--rfr-paper); text-align: center; }
.performance-board span { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.78rem; text-transform: uppercase; }
.performance-board strong { display: block; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.3rem, 7vw, 5.7rem); line-height: 1; letter-spacing: 0.04em; }
.performance-board p { margin: 7px 0 0; color: rgba(255,247,228,0.68); }

/* Duel sequence and player archive */
.duel-arena { min-height: 270px; display: grid; grid-template-columns: max-content minmax(110px, 1fr) 90px minmax(110px, 1fr) max-content; align-items: center; margin-top: 32px; overflow: hidden; border: 4px solid var(--rfr-gold); background: radial-gradient(circle, rgba(185,31,46,0.34), transparent 60%); }
.duel-arena.is-mirror-match { border-color: #d77a9c; background: radial-gradient(circle at 50% 50%, rgba(223,69,113,0.34), transparent 43%), repeating-linear-gradient(125deg, rgba(81,21,88,0.23) 0 16px, rgba(24,12,28,0.18) 16px 32px); box-shadow: inset 0 0 44px rgba(218,49,104,0.2); }
.duel-arena > div { min-width: 0; display: flex; align-items: center; gap: 18px; padding: 24px; }
.duel-arena > div:last-child { flex-direction: row-reverse; text-align: right; }
.duel-arena img { width: 200px; aspect-ratio: 1; border: 6px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-paper); transition: transform 240ms cubic-bezier(.16,1,.3,1), filter 240ms ease, opacity 240ms ease, box-shadow 240ms ease; }
.duel-bell { color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.4rem; text-align: center; }
.duel-arena .is-duel-winner img { transform: scale(1.06); box-shadow: 0 0 0 5px rgba(224,170,62,0.2), 6px 7px 0 rgba(18,8,10,0.52); }
.duel-arena .is-duel-loser img { opacity: 0.66; filter: grayscale(0.88) sepia(0.16); transform: scale(0.92) rotate(-3deg); }
.duel-arena > div:last-child.is-duel-loser img { transform: scale(0.92) rotate(3deg); }
.duel-arena.is-mirror-match > div:last-child img { border-color: #d77a9c; box-shadow: 0 0 0 5px rgba(99,24,105,0.35), 6px 7px 0 rgba(18,8,10,0.56); }
.duel-outcome { flex: 0 0 auto; width: 94px; min-height: 90px; display: grid; place-items: center; align-content: center; gap: 1px; padding: 8px 6px; border: 5px double currentColor; font-family: 'Bungee', sans-serif; line-height: 1; text-align: center; text-transform: uppercase; box-shadow: 4px 5px 0 rgba(18,8,10,0.48); }
.duel-outcome-mark { font-size: 1.45rem; line-height: 0.9; }
.duel-outcome b { font-size: 0.65rem; }
.duel-score { min-width: 110px; justify-self: center; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(6rem, 11.2vw, 10.4rem); line-height: 0.8; text-align: center; text-shadow: 3px 3px 0 var(--rfr-red-dark), 6px 6px 0 rgba(18,8,10,0.58); }
.duel-score:first-of-type { transform: rotate(-2deg); }
.duel-score:last-of-type { transform: rotate(2deg); }
.duel-outcome-winner { outline: 2px solid var(--rfr-paper); background: var(--rfr-gold); color: var(--rfr-ink); transform: rotate(-4deg); }
.duel-arena > div:last-child .duel-outcome-winner { transform: rotate(4deg); }
.duel-outcome-loser { outline: 2px solid rgba(255,247,228,0.62); background: rgba(89,22,31,0.88); color: rgba(255,247,228,0.82); transform: rotate(5deg); }
.duel-arena > div:last-child .duel-outcome-loser { transform: rotate(-5deg); }
.duel-outcome-draw { outline: 2px solid var(--rfr-paper); background: #ead9ae; color: var(--rfr-red-dark); transform: rotate(-2deg); }
.duel-arena > div:last-child .duel-outcome-draw { transform: rotate(2deg); }
@media (prefers-reduced-motion: no-preference) {
    .duel-arena.is-fighting > div:first-child { animation: fighter-one 760ms cubic-bezier(.16,1,.3,1); }
    .duel-arena.is-fighting > div:last-child { animation: fighter-two 760ms cubic-bezier(.16,1,.3,1); }
    .duel-arena.is-fighting .duel-bell { animation: duel-bell 700ms ease; }
    .duel-arena.is-fighting .duel-outcome { animation: duel-verdict-stamp 430ms 620ms cubic-bezier(.18,.86,.25,1.28) both; }
    .duel-arena.is-fighting .duel-score { animation: duel-score-reveal 430ms 520ms cubic-bezier(.18,.86,.25,1.28) both; }
    .duel-result.is-revealing .duel-category { opacity: 0; animation: duel-row 380ms var(--duel-delay) ease forwards; }
}
@keyframes fighter-one { 0% { transform: translateX(-105%); } 70% { transform: translateX(6%); } 100% { transform: none; } }
@keyframes fighter-two { 0% { transform: translateX(105%); } 70% { transform: translateX(-6%); } 100% { transform: none; } }
@keyframes duel-bell { 30%,70% { transform: rotate(-8deg) scale(1.25); } 50%,90% { transform: rotate(8deg) scale(1.25); } }
@keyframes duel-verdict-stamp { from { opacity: 0; scale: 1.7; } to { opacity: 1; scale: 1; } }
@keyframes duel-score-reveal { from { opacity: 0; scale: 1.6; } to { opacity: 1; scale: 1; } }
@keyframes duel-row { to { opacity: 1; transform: none; } from { opacity: 0; transform: translateY(12px); } }
.duel-print { display: flex; margin: 20px auto 0; }

@media (max-width: 1180px) and (min-width: 761px) {
    .duel-arena { grid-template-columns: max-content minmax(72px, 1fr) 72px minmax(72px, 1fr) max-content; }
    .duel-arena > div { display: grid; justify-items: center; gap: 8px; padding: 16px 12px; }
    .duel-arena > div:last-child { justify-items: center; text-align: center; }
    .duel-arena img { width: clamp(130px, 16vw, 170px); }
    .duel-score { min-width: 72px; font-size: clamp(5.2rem, 11vw, 7.4rem); }
    .duel-bell { font-size: 1.15rem; }
}

.page-players .player-card { position: relative; isolation: isolate; }
.page-players .player-card::after { content: ""; position: absolute; z-index: 4; inset: -60% -100%; pointer-events: none; background: linear-gradient(110deg, transparent 38%, rgba(255,255,255,0.06) 44%, rgba(255,228,137,0.74) 49%, rgba(105,190,220,0.58) 53%, rgba(240,118,165,0.4) 57%, transparent 64%); transform: translateX(-35%) rotate(8deg); opacity: 0; transition: transform 750ms ease, opacity 220ms ease; }
.page-players .player-card:hover::after { opacity: 1; transform: translateX(45%) rotate(8deg); }
.player-theme-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 12px; }
.player-theme-tabs button { padding: 9px 12px; border: 2px solid var(--rfr-ink); background: #ead9ae; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.62rem; text-transform: uppercase; }
.player-theme-tabs button.is-active { border-color: var(--rfr-red); background: var(--rfr-red); color: var(--rfr-paper); }

/* Statistics attractions */
.championship-race { margin-top: 80px; padding: clamp(24px,5vw,48px); border: 7px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 10px 10px 0 var(--rfr-red); color: var(--rfr-paper); }
.championship-race > header { display: flex; align-items: end; justify-content: space-between; gap: 22px; }
.championship-race h2 { margin: 5px 0 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2rem,5vw,3.8rem); line-height: 1; text-transform: uppercase; }
.championship-race header p { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-transform: uppercase; }
.race-scoreboard { display: flex; justify-content: space-between; gap: 18px; margin: 28px 0 18px; padding: 12px 16px; border: 2px solid var(--rfr-gold); background: var(--rfr-red-dark); }
.race-scoreboard strong { color: var(--rfr-gold); }
.race-scoreboard span { color: rgba(255,247,228,0.72); }
.championship-track { display: grid; gap: 7px; }
.race-lane { display: grid; grid-template-columns: 105px 1fr; align-items: center; min-height: 68px; border-bottom: 1px dashed rgba(255,247,228,0.25); }
.race-lane > strong { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.race-course { position: relative; height: 60px; background: repeating-linear-gradient(90deg, transparent 0 9.8%, rgba(255,247,228,0.08) 10%); }
.race-course::after { content: "FINISH"; position: absolute; right: 0; inset-block: 0; width: 45px; display: grid; place-items: center; background: repeating-conic-gradient(#fff 0 25%, #17121a 0 50%) 0 0/14px 14px; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.5rem; writing-mode: vertical-rl; }
.race-start { position: absolute; left: 0; bottom: 1px; color: rgba(255,247,228,0.38); font-size: 0.55rem; }
.race-runner { position: absolute; z-index: 2; left: 0; top: 4px; width: 52px; aspect-ratio: 1; transform: translate3d(0,0,0); transition: transform 1.15s cubic-bezier(.16,1,.3,1); will-change: transform; }
.race-runner img { width: 100%; height: 100%; border: 3px solid var(--racer-colour); border-radius: 50%; background: var(--rfr-paper); }
.race-runner b { position: absolute; right: -5px; bottom: -2px; width: 20px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--racer-colour); color: var(--rfr-paper); font-size: 0.65rem; }
.race-status { position: absolute; right: 52px; top: 19px; color: rgba(255,247,228,0.64); font-size: 0.72rem; }
.race-lane.is-waiting .race-runner { filter: grayscale(1); opacity: 0.42; }
.race-lane.is-waiting .race-status { color: var(--rfr-gold); font-style: italic; }

/* Gallery booth */
.gallery-controls { flex-wrap: wrap; }

/* Ticket punch and backstage ceremony */
.ticket-punch-result { min-height: 2.5em; color: var(--rfr-red-dark); font-style: italic; }
.golden-ticket { position: relative; }
.ticket-punch-hole { position: absolute; z-index: 4; top: -18px; width: 31px; aspect-ratio: 1; transform: scale(0); border-radius: 50%; background: var(--rfr-night); box-shadow: inset 0 -3px 0 rgba(255,255,255,0.1); }
.ticket-punch-hole-one { left: 18%; }
.ticket-punch-hole-two { left: 49%; }
.ticket-punch-hole-three { left: 76%; }
.golden-ticket.is-punched .ticket-punch-hole { transform: scale(1); }
.golden-ticket.is-punched .ticket-punch-hole-two { transition-delay: 150ms; }
.golden-ticket.is-punched .ticket-punch-hole-three { transition-delay: 300ms; }
@media (prefers-reduced-motion: no-preference) {
    .golden-ticket.is-punched { animation: ticket-punch 680ms ease; }
    .golden-ticket.is-punched .ticket-punch-hole { transition: transform 240ms cubic-bezier(.2,1.5,.4,1); }
    .golden-ticket.ticket-rejected { animation: ticket-no 520ms ease; }
    .challenge-card.stamp-impact { animation: stamp-impact 430ms ease; }
    .sign-in-form.bouncer-rejection { animation: bouncer-no 520ms ease; }
}
@keyframes ticket-punch { 20%,60% { transform: translateY(8px) rotate(.5deg); } 40%,80% { transform: translateY(-3px) rotate(-.4deg); } }
@keyframes ticket-no { 25%,75% { transform: translateX(-8px); } 50% { transform: translateX(8px); } }
@keyframes stamp-impact { 50% { transform: scale(.97) rotate(-.5deg); } }
@keyframes bouncer-no { 25%,75% { transform: translateX(-7px); } 50% { transform: translateX(7px); } }

.passport-completion { position: relative; display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 22px; margin-top: 30px; padding: 24px; overflow: hidden; border: 5px double var(--rfr-gold); outline: 2px solid var(--rfr-ink); background: var(--rfr-red-dark); color: var(--rfr-paper); }
.passport-completion[hidden] { display: none; }
.passport-completion-seal { width: 105px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; border: 6px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-night); transform: rotate(-5deg); text-align: center; }
.passport-completion-seal span { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 1.4rem; }
.passport-completion-seal strong { color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.5rem; }
.passport-completion-copy p,
.passport-completion-copy h4 { margin: 0; }
.passport-completion-copy p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.64rem; text-transform: uppercase; }
.passport-completion-copy h4 { margin: 4px 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.35rem; text-transform: uppercase; }
.passport-completion-copy span { color: rgba(255,247,228,0.66); }
.passport-completion-actions { display: grid; gap: 8px; }
.completion-certificate,
.completion-secret { grid-column: 1 / -1; }
.completion-certificate { display: none; margin-top: 14px; padding: 34px; border: 10px double var(--rfr-gold); background: var(--rfr-paper); color: var(--rfr-ink); text-align: center; }
.passport-completion.is-complete .completion-certificate { display: grid; gap: 6px; }
.completion-certificate p,
.completion-certificate h5 { margin: 0; }
.completion-certificate p { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: .7rem; text-transform: uppercase; }
.completion-certificate h5 { font-family: 'Bungee', sans-serif; font-size: clamp(1.5rem,4vw,2.6rem); text-transform: uppercase; }
.completion-certificate > strong { color: var(--rfr-red-dark); font-size: 2rem; }
.completion-certificate > b { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 1.2rem; text-transform: uppercase; }
.completion-certificate small { color: var(--rfr-ink-soft); }
.completion-secret { margin: 0; padding: 13px; border: 2px dashed var(--rfr-gold); color: var(--rfr-gold); text-align: center; }
@media (prefers-reduced-motion: no-preference) { .passport-completion.is-celebrating .passport-completion-seal { animation: ceremony-seal 900ms cubic-bezier(.16,1,.3,1); } }
@keyframes ceremony-seal { 0% { transform: scale(3) rotate(-35deg); opacity: 0; } 70% { transform: scale(.92) rotate(2deg); } 100% { transform: rotate(-5deg); } }

/* Rules Midway */
.poker-challenge-tent { margin: 78px 0; padding: clamp(24px,5vw,50px); border: 8px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: linear-gradient(120deg, rgba(23,18,26,.97), rgba(93,17,28,.95)), url("images/events/RFR3-21.jpg") center/cover; box-shadow: 10px 10px 0 var(--rfr-red); color: var(--rfr-paper); }
.poker-challenge-tent > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.poker-challenge-tent header p { margin: 0; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: .68rem; text-transform: uppercase; }
.poker-challenge-tent header h2 { margin: 5px 0 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.2rem,5vw,4rem); line-height: 1; text-transform: uppercase; }
.challenge-score { width: 125px; aspect-ratio: 1; display: grid; place-items: center; align-content: center; border: 6px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-red); text-align: center; }
.challenge-score strong { color: var(--rfr-gold); font-size: 2.5rem; line-height: 1; }
.challenge-score span { max-width: 80px; font-family: 'Bungee', sans-serif; font-size: .55rem; text-transform: uppercase; }
.challenge-machine { margin-top: 30px; padding: 28px; border: 6px double var(--rfr-gold-dark); background: rgba(255,247,228,.98); box-shadow: inset 0 0 0 3px var(--rfr-paper), inset 0 0 0 5px rgba(127,21,32,.22); color: var(--rfr-ink); }
.challenge-machine-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 11px; border-bottom: 2px dashed rgba(127,21,32,.35); }
.challenge-category { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: .7rem; text-transform: uppercase; }
.challenge-round { color: var(--rfr-ink-soft); font-family: 'Bungee', sans-serif; font-size: .62rem; text-align: right; text-transform: uppercase; }
.challenge-machine h3 { height: 2.8em; display: flex; align-items: end; margin: 16px 0 20px; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: clamp(1.2rem,3vw,2rem); line-height: 1.2; }
.challenge-cards { height: 326px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; overflow: hidden; border: 4px double var(--rfr-gold-dark); background: #174333; box-shadow: inset 0 0 22px rgba(5,24,18,.55); }
.challenge-card-group { min-width: 0; padding: 12px; border: 1px solid rgba(255,247,228,.28); background: rgba(7,35,26,.38); }
.challenge-card-group.is-board { grid-column: 1 / -1; }
.challenge-cards.group-count-1 .challenge-card-group { display: grid; grid-column: 1 / -1; align-content: center; }
.challenge-cards.group-count-2 .challenge-card-group.is-hand { width: min(340px, 100%); grid-column: 1 / -1; justify-self: center; }
.challenge-card-label { display: block; margin-bottom: 9px; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: .6rem; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.challenge-card-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.challenge-playing-card { min-width: 62px; min-height: 82px; display: grid; place-items: center; padding: 8px; border: 2px solid var(--rfr-ink); border-radius: 5px; background: var(--rfr-paper); box-shadow: 3px 4px 0 rgba(0,0,0,.35); color: #151218; font-family: Georgia, serif; font-size: 1.4rem; font-style: normal; font-weight: 800; }
.challenge-playing-card.is-red { color: #b91f2e; }
.challenge-playing-card.is-word-card { min-width: 150px; font-family: 'Bungee', sans-serif; font-size: .8rem; text-align: center; }
.challenge-inline-card { color: #151218; font: inherit; white-space: nowrap; }
.challenge-inline-card.is-after-card { margin-left: .12em; }
.challenge-inline-card.is-red { color: #b91f2e; }
.challenge-options { height: 58px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 18px; }
.challenge-options.option-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.challenge-options button { min-height: 58px; padding: 10px; border: 2px solid var(--rfr-ink); background: #ead9ae; box-shadow: 3px 3px 0 rgba(44,23,20,.42); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: .67rem; line-height: 1.3; text-transform: uppercase; }
.challenge-options button:hover:not(:disabled) { transform: translateY(-2px); background: var(--rfr-gold); }
.challenge-options button.is-correct { border-color: #1c5c42; background: #cee6d5; }
.challenge-options button.is-wrong { border-color: var(--rfr-red); background: #f1c7c8; }
.challenge-verdict { height: 82px; display: flex; align-items: center; margin: 18px 0; padding: 12px 14px; overflow: auto; border: 2px dashed var(--rfr-gold-dark); border-left: 6px solid var(--rfr-gold-dark); background: #f0dfba; }
.challenge-verdict.is-correct { border-color: #1c5c42; }
.challenge-verdict.is-wrong { border-color: var(--rfr-red); }
.challenge-record-status { min-height: 1.4em; margin: -8px 0 12px; color: var(--rfr-red-dark); font-size: .78rem; font-weight: 800; line-height: 1.4; }
.challenge-record-status[hidden] { display: none; }
.challenge-machine #pokerChallengeNext[hidden] { display: none; }
.challenge-next-slot { height: 48px; display: flex; align-items: start; }
.challenge-cards > .challenge-final-seal { grid-column: 1 / -1; align-self: center; justify-self: center; }
.challenge-final-seal { margin: auto; padding: 20px; transform: rotate(-4deg); border: 8px double var(--rfr-red); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.4rem; }

/* Event exhibits and themed archive movement */
.archive-trophy-plate { position: absolute; z-index: 3; left: 22px; right: 22px; bottom: 20px; padding: 12px 15px; border: 4px double var(--rfr-gold); background: rgba(23,18,26,.94); box-shadow: 4px 4px 0 rgba(0,0,0,.5); color: var(--rfr-paper); }
.archive-trophy-plate span { display: block; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: .54rem; text-transform: uppercase; }
.archive-trophy-plate strong { display: block; margin-top: 4px; color: #fff7e4; font-family: 'Bungee', sans-serif; font-size: clamp(.88rem, 1.5vw, 1.05rem); line-height: 1.25; text-shadow: 2px 2px 0 #7f1520; }
.archive-theme-high-noon .archive-cover img { filter: sepia(.22) saturate(1.12); }
.archive-theme-prohibition-express .archive-cover img { filter: sepia(.34) contrast(1.08); }
.archive-theme-padfield-showdown .archive-cover { outline: 8px solid #5e311c; outline-offset: -8px; }
@media (prefers-reduced-motion: no-preference) {
    .archive-theme-high-noon.in-view .archive-cover { animation: archive-dust 800ms ease; }
    .archive-theme-prohibition-express.in-view .archive-cover img { animation: archive-train 900ms cubic-bezier(.16,1,.3,1); }
    .archive-theme-padfield-showdown.in-view .archive-cover { animation: archive-saloon 750ms ease; }
}
@keyframes archive-dust { 40% { filter: sepia(.8); transform: translateX(5px); } }
@keyframes archive-train { from { transform: translateX(-8%); } }
@keyframes archive-saloon { 30%,70% { transform: rotate(-.7deg); } 50% { transform: rotate(.7deg); } }

.incident-exhibits { margin: 48px 0; padding: clamp(24px,4vw,42px); border: 6px double var(--rfr-gold); background: var(--rfr-night); box-shadow: 9px 9px 0 var(--rfr-red); color: var(--rfr-paper); }
.incident-exhibits > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.incident-exhibits header p,
.incident-exhibits header h2 { margin: 0; }
.incident-exhibits header p { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: .66rem; text-transform: uppercase; }
.page-event-summary .incident-exhibits > header > h2 { color: #fff7e4; font-family: 'Bungee', sans-serif; font-size: clamp(1.7rem,4vw,3rem); text-shadow: 2px 2px 0 rgba(23,18,26,.72); text-transform: uppercase; }
.invitation-missing { max-width: 250px; color: rgba(255,247,228,.58); font-size: .8rem; font-style: italic; text-align: right; }
.incident-exhibit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.incident-exhibit { display: grid; grid-template-columns: 44% 1fr; min-height: 240px; border: 3px solid var(--rfr-gold); background: var(--rfr-paper); color: var(--rfr-ink); }
.incident-exhibit img { width: 100%; height: 100%; object-fit: contain; background: #111; }
.incident-exhibit > div { align-self: center; padding: 20px; }
.incident-exhibit p { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: .62rem; text-transform: uppercase; }
.incident-exhibit h3 { margin: 5px 0 9px; font-family: 'Bungee', sans-serif; font-size: 1.1rem; line-height: 1.15; text-transform: uppercase; }
.incident-exhibit span { color: var(--rfr-ink-soft); font-size: .86rem; line-height: 1.35; }
.event-theme-opening-night .incident-exhibits { background: #4f101a; }
.event-theme-high-noon .incident-exhibits { background: #5b351f; }
.event-theme-prohibition-express .incident-exhibits { background: #17232b; }
.event-theme-padfield-showdown .incident-exhibits { background: #3b2519; }

/* Visual aid classification */
.page-visual-aids .visual-aids-gallery figure { grid-column: span 4; margin: 0; padding: 10px 10px 0; border: 8px solid var(--rfr-paper); outline: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 6px 6px 0 rgba(127,21,32,0.45); }
.page-visual-aids .visual-aids-gallery figure:nth-child(4n + 1) { transform: rotate(-.45deg); }
.page-visual-aids .visual-aids-gallery figure:nth-child(4n + 3) { transform: rotate(.5deg); }
.page-visual-aids .visual-aids-gallery figure img { width: 100%; height: 330px; border: 0; outline: 0; box-shadow: none; object-fit: contain; transform: none; }
.page-visual-aids .visual-aids-gallery figcaption { padding: 10px 6px 12px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: .58rem; text-align: center; text-transform: uppercase; }

@media (max-width: 1050px) {
    .rfr5-games-grid,
    .incident-exhibit-grid { grid-template-columns: 1fr; }
    .duel-controls { grid-template-columns: 1fr 45px 1fr; }
    .duel-controls .show-button { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 760px) {
    body { background-attachment: scroll; }
    .page-players .modal-content .close,
    .event-dossier .close-event { position: sticky; top: 2px; z-index: 5; margin: 0 0 -42px auto; }
    .champion-placard-stats,
    .rfr5-games-grid,
    .incident-exhibit-grid { grid-template-columns: 1fr; }
    .strength-tester,
    .carnival-wheel-booth { grid-template-columns: 1fr; text-align: center; }
    .strength-tower { margin-top: 40px; }
    .carnival-wheel { justify-self: center; }
    .championship-race > header,
    .race-scoreboard,
    .poker-challenge-tent > header,
    .incident-exhibits > header { align-items: start; flex-direction: column; }
    .race-lane { grid-template-columns: 78px 1fr; }
    .race-status { right: 45px; }
    .duel-arena { grid-template-columns: minmax(0, 1fr) 58px 48px 58px minmax(0, 1fr); grid-template-rows: auto 82px; min-height: 290px; padding-block: 10px; }
    .duel-arena > div { display: grid; justify-items: center; gap: 6px; padding: 12px 7px; }
    .duel-arena > div:first-child { grid-column: 1 / 3; grid-row: 1; }
    .duel-arena > div:last-child { grid-column: 4 / 6; grid-row: 1; justify-items: center; }
    .duel-score:first-of-type { grid-column: 2; grid-row: 2; }
    .duel-bell { grid-column: 3; grid-row: 2; }
    .duel-score:last-of-type { grid-column: 4; grid-row: 2; }
    .duel-arena img { width: 104px; }
    .duel-arena .is-duel-winner img { transform: scale(1.03); }
    .duel-arena .is-duel-loser img,
    .duel-arena > div:last-child.is-duel-loser img { transform: scale(0.94); }
    .duel-outcome,
    .duel-arena > div:last-child .duel-outcome { width: auto; min-width: 76px; min-height: 0; display: flex; gap: 4px; padding: 5px 7px; border-width: 3px; transform: none; }
    .duel-outcome-mark { font-size: .9rem; }
    .duel-outcome b { font-size: .52rem; }
    .duel-score { min-width: 0; font-size: clamp(3.6rem, 18vw, 4.8rem); text-shadow: 2px 2px 0 var(--rfr-red-dark), 4px 4px 0 rgba(18,8,10,0.58); }
    .duel-controls,
    .duel-controls .show-button { grid-template-columns: 1fr; grid-column: auto; }
    .challenge-machine { padding: 18px; }
    .challenge-machine-top { align-items: start; flex-direction: column; gap: 5px; }
    .challenge-round { text-align: left; }
    .challenge-machine h3 { height: 5.8em; align-items: end; }
    .challenge-cards { height: 520px; grid-template-columns: 1fr; align-content: start; padding: 10px; }
    .challenge-card-group,
    .challenge-card-group.is-board,
    .challenge-cards.group-count-1 .challenge-card-group,
    .challenge-cards.group-count-2 .challenge-card-group.is-hand { width: auto; grid-column: 1; justify-self: stretch; }
    .challenge-options,
    .challenge-options.option-count-2 { height: 194px; grid-template-columns: 1fr; }
    .challenge-playing-card { min-width: 55px; min-height: 75px; font-size: 1.15rem; }
    .challenge-playing-card.is-word-card { min-width: 120px; }
    .challenge-verdict { height: 154px; }
    .passport-completion { grid-template-columns: 1fr; text-align: center; }
    .passport-completion-seal { justify-self: center; }
    .passport-completion-actions { justify-items: center; }
    .incident-exhibit { grid-template-columns: 1fr; }
    .incident-exhibit img { max-height: 360px; }
    .invitation-missing { text-align: left; }
    .page-visual-aids .visual-aids-gallery figure { grid-column: span 12; transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    .carnival-confetti { display: none; }
    .performer-card-flipper,
    .carnival-wheel,
    .race-runner { transition-duration: 1ms; }
}

@media print {
    body.printing-duel > *:not(.site-page),
    body.printing-duel .site-page > *:not(.duel-booth),
    body.printing-duel .duel-intro,
    body.printing-duel .duel-controls,
    body.printing-duel .duel-print,
    body.printing-duel .duel-arena { display: none !important; }
    body.printing-duel .duel-booth { margin: 0; padding: 20px; border: 8px double #111; box-shadow: none; background: #fff; color: #111; }
    body.printing-duel .duel-result { display: block !important; box-shadow: none; }

    body.printing-certificate > *:not(.dashboard-page),
    body.printing-certificate .dashboard-page > *:not(.dashboard-layout),
    body.printing-certificate .dashboard-sidebar,
    body.printing-certificate .dashboard-content > *:not(.dashboard-challenge-section),
    body.printing-certificate .dashboard-challenge-section > *:not(.passport-completion),
    body.printing-certificate .passport-completion > *:not(.completion-certificate) { display: none !important; }
    body.printing-certificate .dashboard-layout,
    body.printing-certificate .dashboard-content,
    body.printing-certificate .dashboard-section,
    body.printing-certificate .passport-completion { display: block !important; margin: 0; padding: 0; border: 0; outline: 0; background: #fff; box-shadow: none; }
    body.printing-certificate .completion-certificate { display: grid !important; min-height: 75vh; align-content: center; }
}

@media (max-width: 920px) {
    .page-gallery #gallery.evidence-grid { columns: 3 200px; }
    .gallery-social-shell { grid-template-columns: minmax(0, 1fr) 320px; }
    .gallery-social-stage { padding-right: 58px; padding-left: 58px; }
}

@media (max-width: 620px) {
    .gallery-show-header { grid-template-columns: 1fr; }
    .gallery-count { justify-self: start; width: 140px; }
    .gallery-controls { display: grid; }
    .gallery-controls select { width: 100%; min-width: 0; }
    .page-gallery #gallery.evidence-grid { columns: 1; }
    .page-gallery #gallery.evidence-grid > img { min-height: 0; transform: none; }
    .gallery-social-dialog { width: calc(100% - 12px); height: calc(100dvh - 12px); border-width: 5px; box-shadow: none; }
    .gallery-social-shell { grid-template-columns: 1fr; grid-template-rows: minmax(240px, 39dvh) minmax(0, 1fr); }
    .gallery-social-close { top: 8px; right: 8px; width: 38px; height: 38px; }
    .gallery-social-stage { padding: 27px 48px 37px; border-right: 0; border-bottom: 5px double var(--rfr-gold); }
    .gallery-social-image-frame { border-width: 6px; box-shadow: 6px 6px 0 rgba(0,0,0,0.46); }
    .gallery-social-nav { width: 40px; height: 40px; font-size: 1.75rem; }
    .gallery-social-prev { left: 5px; }
    .gallery-social-next { right: 5px; }
    .gallery-social-position { bottom: 7px; padding: 4px 7px; font-size: 0.55rem; }
    .gallery-social-heading { padding: 14px 55px 10px 14px; }
    .gallery-social-heading h2 { font-size: 1.15rem; }
    .gallery-social-heading > span { margin-top: 4px; }
    .gallery-social-actions { padding: 9px 13px; }
    .gallery-like-button { min-width: 94px; padding: 6px 10px; }
    .gallery-comment-ledger > header { padding: 9px 13px 7px; }
    .gallery-comment-list { padding: 0 13px; }
    .gallery-comment { grid-template-columns: 38px minmax(0, 1fr); gap: 9px; padding: 11px 0; }
    .gallery-comment > img { width: 38px; height: 38px; }
    .gallery-comment-compose { padding: 9px 12px 11px; }
    .gallery-comment-author { margin-bottom: 6px; }
    .gallery-comment-compose textarea { min-height: 58px; max-height: 92px; }
    .gallery-comment-submit-row { margin-top: 7px; }
}

@media (max-width: 980px) {
    .statistics-canvas { grid-template-columns: 1fr 1fr; grid-template-areas: "quick records" "photo photo"; }
    .stats-feature-photo,
    .stats-feature-photo img { min-height: 480px; }
    .dubious-grid article { grid-column: span 6; }
    .era-booth { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .stats-show-header { grid-template-columns: 1fr; }
    .stats-seal { justify-self: start; width: 150px; }
    .statistics-canvas { grid-template-columns: 1fr; grid-template-areas: "quick" "photo" "records"; }
    .stats-feature-photo,
    .stats-feature-photo img { min-height: 420px; }
    .fan-poll-header { grid-template-columns: 1fr; align-items: start; padding: 28px 22px 22px; }
    .fan-poll-button { width: 100%; min-width: 0; }
    .fan-poll-result { display: grid; gap: 4px; padding: 13px 22px; }
    .fan-poll-result span { text-align: left; }
    .fan-vote-stage { --fan-meter-height: 420px; --fan-performer-height: 120px; --fan-grid-step: 21px; --fan-labelled-grid-step: 42px; padding: 56px 18px 24px 60px; }
    .fan-vote-axis { left: -53px; width: 45px; }
    .fan-vote-axis span { font-size: 0.58rem; }
    .fan-vote-gridlines { display: none; }
    .fan-vote-chart { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 12px; border-bottom: 0; }
    .fan-vote-column { border-bottom: 3px solid var(--rfr-gold); }
    .dubious-wall { padding: 28px 18px; }
    .dubious-grid article { grid-column: span 12; min-height: 150px; transform: none !important; }
    .placement-player { grid-template-columns: 1fr; }
    .placement-player h3 { border-right: 0; border-bottom: 3px double var(--rfr-gold-dark); }
    .placement-cells { grid-template-columns: 1fr 1fr; }
    .era-booth { padding: 30px 20px; }
    .era-scoreboards { grid-template-columns: 1fr; }
    .page-statistics .stats-group { grid-column: span 12; transform: none !important; }
}

@media (max-width: 420px) {
    .fan-vote-stage { padding-left: 18px; }
    .fan-vote-axis { display: none; }
    .fan-vote-chart { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .fan-vote-meter > span,
    .fan-vote-rosette { transition: none; }
}

@media (max-width: 1020px) {
    .players-show-header { grid-template-columns: 1fr; }
    .players-header-photo { margin: 0; }
    .page-players .player-card { grid-column: span 6; }
    .duel-controls { grid-template-columns: 1fr 54px 1fr; }
    .duel-controls .show-button { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 720px) {
    .page-players .player-card { grid-column: span 12; transform: none !important; }
    .duel-controls { grid-template-columns: 1fr; }
    .duel-controls > span { padding: 3px; }
    .duel-controls .show-button { grid-column: auto; width: 100%; }
    .duel-result-head { grid-template-columns: 1fr; }
    .duel-result-head span { display: none; }
    .duel-category { grid-template-columns: 1fr 1.2fr 1fr; }
    .players-ledgers { grid-template-columns: 1fr; }
    .players-wide-photo,
    .players-wide-photo img { min-height: 520px; }
    .players-wide-photo > div { right: 22px; }
}

@media (max-width: 900px) {
    .events-show-header { grid-template-columns: 1fr; }
    .events-header-props { width: 100%; padding-bottom: 20px; }
    .events-tally { min-height: 120px; grid-template-columns: auto 1fr; gap: 18px; }
    .events-egg-toggle { left: auto; right: 18px; bottom: -15px; width: 72px; height: 82px; }
    .archive-entry,
    .archive-entry:nth-child(even) { grid-template-columns: 1fr; }
    .archive-entry:nth-child(even) .archive-cover { order: initial; }
    .archive-cover,
    .archive-entry:nth-child(even) .archive-cover { min-height: 420px; border-right: 0; border-left: 0; border-bottom: 3px dashed var(--rfr-gold-dark); }
    .page-event-summary .summary-page-header { grid-template-columns: 1fr; }
    .page-event-summary .summary-logo-section { width: min(300px, 100%); }
    .page-event-summary .summary-layout { grid-template-columns: 1fr; }
    .page-event-summary .summary-rail { position: static; grid-template-columns: 1fr 1fr; }
    .page-event-summary .summary-results-section { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
    .archive-entry::before { top: -20px; left: 8px; font-size: 58px; }
    .archive-entry:nth-child(even)::before { right: 8px; left: auto; }
    .archive-cover { min-height: 300px; }
    .archive-copy { padding: 26px 18px; }
    .archive-meta { grid-template-columns: 1fr; }
    .archive-actions { display: grid; }
    .archive-actions .show-button { width: 100%; }
    .archive-next { display: grid; padding: 25px 20px; }
    .dossier-meta { grid-template-columns: 1fr; }
    .page-event-summary .summary-page { width: calc(100% - 16px); }
    .page-event-summary .summary-page-shell { padding: 18px; }
    .summary-event-meta { grid-template-columns: 1fr; }
    .summary-filmstrip-section { margin-inline: 0; padding-inline: 18px; overflow-x: auto; }
    .page-event-summary .summary-gallery { width: 720px; }
    .page-event-summary .summary-rail { grid-template-columns: 1fr; }
    .page-event-summary .summary-results-section { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .events-egg-toggle,
    .archive-cover .archive-event-image,
    .event-dossier > #eventImage { transition: none; }
    .events-egg-toggle.is-hatching,
    .archive-cover .archive-event-image.is-hatching,
    .event-dossier > #eventImage.is-hatching { animation: none; }
}

/* RFR V */
.rfr5-page {
    display: block;
    width: 100%;
    min-width: 0;
    place-items: initial;
}

.rfr5-hero {
    position: relative;
    min-height: calc(100dvh - 76px);
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 24px max(4vw, calc((100vw - 1320px) / 2));
    background:
        linear-gradient(rgba(12, 7, 10, 0.1), rgba(12, 7, 10, 0.22)),
        url("images/rfr5-big-top-poster.jpg") center 48% / cover no-repeat,
        #160e15;
    border-bottom: 8px solid var(--rfr-gold);
}

.rfr5-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 28%, rgba(8, 5, 7, 0.18) 72%, rgba(8, 5, 7, 0.48));
    pointer-events: none;
}

.rfr5-event-flyer {
    position: relative;
    z-index: 1;
    width: min(1080px, 100%);
    display: grid;
    justify-items: center;
    color: var(--rfr-paper);
    text-align: center;
    transform: rotate(-0.35deg);
}

.rfr5-flyer-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.rfr5-flyer-poster {
    position: relative;
    width: min(975px, calc(100vw - max(48px, 8vw)));
    margin: 0;
    border: 2px solid #120b0d;
    outline: 4px solid rgba(224, 170, 62, 0.78);
    outline-offset: -8px;
    box-shadow: 10px 12px 0 rgba(8, 5, 7, 0.72), 0 24px 54px rgba(8, 5, 7, 0.56);
}

.rfr5-flyer-poster::before,
.rfr5-flyer-poster::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 10px;
    width: 12px;
    aspect-ratio: 1;
    border: 2px solid #6d3b17;
    border-radius: 50%;
    background: var(--rfr-gold);
    box-shadow: inset 2px 2px 0 rgba(255, 247, 228, 0.32), 2px 3px 0 rgba(8, 5, 7, 0.42);
}

.rfr5-flyer-poster::before { left: 12px; }
.rfr5-flyer-poster::after { right: 12px; }
.rfr5-flyer-art { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; }
.rfr5-flyer-notes { width: min(610px, 100%); margin-top: 14px; color: var(--rfr-paper); text-shadow: 2px 2px 0 rgba(8, 5, 7, 0.92); }
.rfr5-subtitle { max-width: 60ch; margin: 0 auto; color: rgba(255, 247, 228, 0.94); font-size: 0.9rem; font-weight: 700; line-height: 1.35; }
.rfr5-flyer-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 22px; margin: 8px 0 0; color: var(--rfr-paper); font-size: 0.72rem; text-transform: uppercase; }
.rfr5-flyer-meta span { display: flex; align-items: baseline; gap: 6px; }
.rfr5-flyer-meta b { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.62rem; }
.rfr5-flyer-smallprint { display: block; margin-top: 4px; color: rgba(255, 247, 228, 0.76); font-size: 0.64rem; line-height: 1.25; }
.rfr5-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 10px; }
.rfr5-event-flyer .show-button { padding: 9px 13px; font-size: 0.62rem; box-shadow: 3px 3px 0 rgba(8, 5, 7, 0.7); }
.rfr5-event-flyer .rfr5-ticket-cta {
    width: min(440px, 100%);
    min-height: 68px;
    padding: 16px 30px;
    border-width: 3px;
    font-size: clamp(0.92rem, 1.8vw, 1.2rem);
    letter-spacing: 0.02em;
    text-shadow: none;
    box-shadow: 6px 7px 0 rgba(8, 5, 7, 0.78);
    transform: rotate(0.35deg);
}
.rfr5-event-flyer .rfr5-ticket-cta:hover {
    transform: translate(-1px, -2px) rotate(0.35deg);
    box-shadow: 8px 10px 0 rgba(8, 5, 7, 0.78);
}

.rfr5-performers { padding-top: 84px; }
.performers-heading { width: fit-content; margin: 0 auto 38px; padding: 15px 26px; transform: rotate(-0.7deg); border: var(--rfr-border); background: var(--rfr-red); box-shadow: 7px 7px 0 var(--rfr-ink); color: var(--rfr-paper); text-align: center; }
.performers-heading p,
.performers-heading h2 { margin: 0; }
.performers-heading p { color: var(--rfr-gold); text-transform: uppercase; }
.performers-heading h2 { font-family: 'Bungee', sans-serif; font-size: clamp(1.8rem, 4vw, 3.6rem); text-transform: uppercase; }
.performer-wheel { display: grid; grid-template-columns: repeat(12, 1fr); gap: 22px; }
.performer-card { grid-column: span 4; position: relative; min-height: 480px; overflow: hidden; border: var(--rfr-border); background: var(--rfr-night); box-shadow: 7px 7px 0 rgba(127,21,32,0.8); color: var(--rfr-paper); }
.performer-card:nth-child(2),
.performer-card:nth-child(5) { transform: translateY(18px) rotate(0.5deg); }
.performer-card:nth-child(3),
.performer-card:nth-child(4) { transform: rotate(-0.45deg); }
.performer-card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; background: var(--rfr-ink); object-fit: cover; object-position: center top; filter: none; }
.performer-card > div { position: relative; padding: 22px; }
.performer-card > div::before { content: ""; position: absolute; top: -12px; left: 22px; right: 22px; height: 4px; background: var(--rfr-gold); }
.performer-card p { margin: 0; color: var(--rfr-gold); font-weight: 700; }
.performer-card h3 { margin: 7px 0 9px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 1.1rem; line-height: 1.2; text-transform: uppercase; }
.performer-card span { color: rgba(255,247,228,0.72); line-height: 1.35; }
.performer-mystery img { filter: none; }

.rfr5-day-programme { padding-top: 70px; }
.rfr5-programme-shell { position: relative; isolation: isolate; overflow: hidden; border: 8px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); box-shadow: 12px 12px 0 var(--rfr-red); color: var(--rfr-paper); }
.rfr5-programme-shell::before { content: ""; position: absolute; inset: 0 0 auto; z-index: -1; height: 72px; border-bottom: 4px solid var(--rfr-gold); background: repeating-linear-gradient(102deg, var(--rfr-red-dark) 0 72px, #f0bd45 72px 144px); box-shadow: 0 9px 0 rgba(0,0,0,0.32); }
.rfr5-programme-shell::after { content: ""; position: absolute; inset: 14px; z-index: 5; border: 1px solid rgba(255,247,228,0.2); pointer-events: none; }
.rfr5-programme-bulbs { position: absolute; top: 17px; right: 18px; left: 18px; z-index: 6; height: 15px; pointer-events: none; background: radial-gradient(circle, #fff7cf 0 2px, var(--rfr-gold) 2.5px 5px, transparent 5.5px) 0 0 / 34px 15px repeat-x; filter: drop-shadow(0 0 4px rgba(255,224,119,0.72)); }
.rfr5-programme-heading { position: relative; max-width: 1020px; margin: 0 auto; padding: 104px 36px 31px; text-align: center; }
.rfr5-programme-heading::after { content: "★  ★  ★"; display: block; margin-top: 20px; color: var(--rfr-gold); font-size: 1rem; letter-spacing: 0.26em; }
.rfr5-programme-heading > p:first-child { width: fit-content; margin: 0 auto 13px; padding: 6px 11px; transform: rotate(-1deg); border: 2px solid var(--rfr-gold); background: var(--rfr-red); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.rfr5-programme-heading h2 { max-width: 900px; margin: 0 auto; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.35rem, 5.8vw, 5.6rem); line-height: 0.93; text-transform: uppercase; text-shadow: 4px 4px 0 var(--rfr-red), 7px 7px 0 rgba(0,0,0,0.38); }
.rfr5-programme-heading > p:last-of-type { max-width: 760px; margin: 22px auto 0; color: rgba(255,247,228,0.78); font-size: 1.02rem; line-height: 1.5; }

.rfr5-day-timings { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 28px 27px; border: 4px solid var(--rfr-ink); outline: 3px solid var(--rfr-gold); background: #f3d894; box-shadow: 7px 7px 0 var(--rfr-red); color: var(--rfr-ink); transform: rotate(-0.3deg); }
.rfr5-day-timings > div { position: relative; min-width: 0; display: grid; align-content: center; justify-items: center; min-height: 148px; padding: 16px 22px; text-align: center; }
.rfr5-day-timings > div + div { border-left: 3px dashed rgba(44,23,20,0.6); }
.rfr5-day-timings > div:nth-child(2) { background: var(--rfr-red); color: var(--rfr-paper); transform: scale(1.035) rotate(0.7deg); box-shadow: 5px 5px 0 rgba(44,23,20,0.52); }
.rfr5-day-timings span { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; }
.rfr5-day-timings > div:nth-child(2) span { color: var(--rfr-gold); }
.rfr5-day-timings strong { display: block; margin: 2px 0 5px; color: inherit; font-family: 'Bungee', sans-serif; font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 0.92; }
.rfr5-day-timings small { max-width: 25ch; color: var(--rfr-ink-soft); font-size: 0.76rem; line-height: 1.25; }
.rfr5-day-timings > div:nth-child(2) small { color: rgba(255,247,228,0.78); }

.rfr5-programme-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 22px; padding: 13px 28px 34px; }
.rfr5-programme-act { position: relative; min-width: 0; overflow: hidden; border: 4px solid var(--rfr-ink); box-shadow: 7px 7px 0 rgba(0,0,0,0.46); }
.rfr5-programme-copy { padding: 26px 28px; }
.rfr5-programme-copy > p:first-child { width: fit-content; margin: 0 0 9px; padding: 5px 9px; transform: rotate(-1deg); background: var(--rfr-red); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.64rem; text-transform: uppercase; }
.rfr5-programme-copy h3 { margin: 0; color: inherit; font-family: 'Bungee', sans-serif; font-size: clamp(1.45rem, 3vw, 2.65rem); line-height: 1.02; text-transform: uppercase; }
.rfr5-programme-copy > p:last-child { margin: 14px 0 0; color: inherit; line-height: 1.48; }
.rfr5-programme-act figure { margin: 0; }
.rfr5-programme-act img { display: block; width: 100%; object-fit: cover; }
.rfr5-programme-act figcaption { padding: 8px 11px; background: var(--rfr-paper); color: var(--rfr-ink); font-size: 0.72rem; font-weight: 700; line-height: 1.25; text-align: center; }

.rfr5-programme-main-ring { grid-column: span 8; background: #ead6a6; color: var(--rfr-ink); transform: rotate(-0.25deg); }
.rfr5-programme-main-ring .rfr5-programme-copy { display: grid; grid-template-columns: minmax(220px, 0.65fr) minmax(0, 1fr); align-items: end; gap: 26px; }
.rfr5-programme-main-ring .rfr5-programme-copy > p:first-child { grid-column: 1 / -1; margin-bottom: -10px; }
.rfr5-programme-main-ring .rfr5-programme-copy > p:last-child { margin: 0; }
.rfr5-programme-illustration { margin: 0 17px 17px !important; border: 3px solid var(--rfr-ink); background: var(--rfr-ink); }
.rfr5-programme-illustration img { aspect-ratio: 3 / 2; }

.rfr5-programme-concessions { grid-column: span 4; align-self: stretch; display: flex; flex-direction: column; background: var(--rfr-gold); color: var(--rfr-ink); transform: rotate(0.55deg); }
.rfr5-programme-concessions .rfr5-programme-copy { flex: 1 1 auto; }
.rfr5-programme-concessions .rfr5-programme-copy > p:first-child { background: var(--rfr-night); }
.rfr5-programme-concessions .rfr5-programme-copy h3 { font-size: clamp(1.42rem, 2.3vw, 2.2rem); }
.rfr5-concession-gallery { display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: end; gap: 10px; padding: 0 15px 15px; }
.rfr5-concession-gallery figure { border: 3px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 4px 4px 0 rgba(44,23,20,0.4); }
.rfr5-concession-gallery figure:first-child { transform: rotate(-2deg); }
.rfr5-concession-gallery figure:last-child { transform: translateY(3px) rotate(2deg); }
.rfr5-concession-gallery img { height: 245px; }
.rfr5-concession-photo-food img { object-position: center; }
.rfr5-concession-photo-drink img { object-position: center 42%; }

.rfr5-programme-midway { grid-column: span 4; display: grid; grid-template-columns: minmax(0, 1fr) 155px; align-items: stretch; background: var(--rfr-red-dark); color: var(--rfr-paper); transform: rotate(-0.55deg); }
.rfr5-programme-midway .rfr5-programme-copy > p:first-child { background: var(--rfr-gold); color: var(--rfr-ink); }
.rfr5-programme-midway .rfr5-programme-copy > p:last-child { color: rgba(255,247,228,0.78); }
.rfr5-programme-midway .rfr5-programme-copy strong { color: var(--rfr-gold); }
.rfr5-programme-midway figure { display: flex; flex-direction: column; min-width: 0; border-left: 3px solid var(--rfr-gold); }
.rfr5-programme-midway figure img { flex: 1 1 auto; min-height: 320px; object-position: center 30%; }

.rfr5-programme-prizes { grid-column: span 8; display: grid; grid-template-columns: minmax(250px, 0.78fr) minmax(0, 1.22fr); background: var(--rfr-paper); color: var(--rfr-ink); transform: rotate(0.3deg); }
.rfr5-programme-prizes .rfr5-programme-copy { align-self: center; }
.rfr5-prize-gallery { position: relative; min-height: 405px; padding: 19px 21px 25px 0; }
.rfr5-prize-gallery figure { border: 3px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 5px 5px 0 rgba(44,23,20,0.42); }
.rfr5-prize-gallery figure:first-child { width: 88%; transform: rotate(-1.5deg); }
.rfr5-prize-gallery figure:first-child img { height: 250px; object-position: center 42%; }
.rfr5-prize-gallery figure:first-child figcaption { width: 45%; min-height: 52px; box-sizing: border-box; text-align: left; }
.rfr5-prize-gallery figure:last-child { position: absolute; right: 20px; bottom: 22px; width: 58%; transform: rotate(2.5deg); }
.rfr5-prize-gallery figure:last-child img { height: 165px; }

.rfr5-performer-call { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr); align-items: center; gap: 28px; margin: 9px 7px 2px; padding: 24px 30px; border: 4px double var(--rfr-gold); outline: 2px solid var(--rfr-paper); background: var(--rfr-red); box-shadow: 7px 7px 0 var(--rfr-gold-dark); color: var(--rfr-paper); transform: rotate(-0.25deg); }
.rfr5-performer-call div { padding-right: 27px; border-right: 3px dashed rgba(255,247,228,0.52); }
.rfr5-performer-call span { display: block; color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.64rem; text-transform: uppercase; }
.rfr5-performer-call strong { display: block; margin-top: 4px; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(1.35rem, 3vw, 2.35rem); line-height: 1; text-transform: uppercase; }
.rfr5-performer-call p { margin: 0; color: rgba(255,247,228,0.86); font-size: 1.02rem; line-height: 1.45; }

.rfr5-midway { display: grid; grid-template-columns: 0.9fr 0.7fr 1.1fr; align-items: stretch; gap: 25px; padding-top: 64px; }
.rumour-booth,
.prize-tease,
.rfr5-photo-stack { min-height: 470px; border: var(--rfr-border); box-shadow: 8px 8px 0 var(--rfr-ink); }
.rumour-booth { display: flex; flex-direction: column; justify-content: center; padding: 34px; background: var(--rfr-red); color: var(--rfr-paper); text-align: center; }
.booth-stars { color: var(--rfr-gold); letter-spacing: 0.3em; }
.rumour-booth > p { color: rgba(255,247,228,0.7); text-transform: uppercase; font-size: 0.74rem; }
.rumour-booth h2,
.prize-tease h2 { margin: 6px 0 18px; color: inherit; font-family: 'Bungee', sans-serif; font-size: clamp(1.65rem, 3vw, 2.6rem); line-height: 1.05; text-transform: uppercase; }
.rumour-booth blockquote { min-height: 125px; margin: 0 0 22px; padding: 18px; border: 2px dashed var(--rfr-gold); background: rgba(44,23,20,0.18); color: var(--rfr-paper); font-size: 1.08rem; }
.rumour-booth .show-button { align-self: center; }
.prize-tease { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; background: var(--rfr-paper); text-align: center; }
.prize-tease > p:first-child { margin: 0; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.prize-silhouette { width: 150px; aspect-ratio: 1; display: grid; place-items: center; margin: 20px 0; border: 6px double var(--rfr-gold); border-radius: 50%; background: var(--rfr-ink); color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 4.5rem; box-shadow: 0 0 0 5px var(--rfr-red); }
.prize-tease > p { color: var(--rfr-ink-soft); }
.rfr5-photo-stack { position: relative; margin: 0; padding: 15px 15px 50px; background: var(--rfr-paper); transform: rotate(0.5deg); }
.rfr5-photo-stack > img:first-child { width: 78%; height: 330px; object-fit: cover; }
.rfr5-photo-overlap { position: absolute; right: 18px; bottom: 64px; width: 55%; height: 235px; object-fit: cover; border: 10px solid var(--rfr-paper); box-shadow: 5px 5px 0 rgba(44,23,20,0.4); transform: rotate(3deg); }
.rfr5-photo-stack figcaption { position: absolute; left: 18px; bottom: 14px; right: 18px; font-weight: 700; text-align: center; }
.rfr5-proclamations { width: 100%; max-width: 100vw; overflow: hidden; border-block: 3px solid var(--rfr-ink); background: var(--rfr-gold); }
.proclamation-track { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; padding: 12px clamp(18px, 4vw, 48px); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; text-align: center; text-transform: uppercase; }
.proclamation-track span { white-space: nowrap; }
.proclamation-track b { color: var(--rfr-red); }
.rfr5-final { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.rfr5-final p,
.rfr5-final h2 { margin: 0; }
.rfr5-final p { color: var(--rfr-red); font-family: 'Bungee', sans-serif; text-transform: uppercase; }
.rfr5-final h2 { max-width: 800px; margin-top: 5px; color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: clamp(1.5rem, 3vw, 2.8rem); line-height: 1.12; }

/* Ticket office */
.tickets-show-header { display: grid; grid-template-columns: minmax(0, 1fr) 245px; gap: 28px; align-items: stretch; overflow: hidden; }
.page-stamp { width: fit-content; margin: 0 0 8px; padding: 5px 9px; transform: rotate(-1deg); background: var(--rfr-gold); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.ticket-roll { display: grid; align-content: center; gap: 16px; margin: -30px -34px -28px 0; padding: 28px; border-left: 3px dashed var(--rfr-ink); background: var(--rfr-red); color: var(--rfr-paper); text-align: center; }
.ticket-roll span { padding: 8px; border: 2px solid var(--rfr-gold); font-family: 'Bungee', sans-serif; transform: rotate(-1deg); }
.ticket-roll span:nth-child(2) { color: var(--rfr-gold); font-size: 2rem; transform: rotate(1deg); }

.ticket-briefing { margin-top: 48px; }
.ticket-briefing-heading { margin-bottom: 28px; }
.ticket-briefing-heading h2,
.ticket-account-guide h2 { margin: 0; font-family: 'Bungee', sans-serif; font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1; text-transform: uppercase; }
.ticket-briefing-heading p,
.ticket-account-guide > header p { margin: 12px 0 0; color: var(--rfr-ink-soft); font-size: 1.05rem; line-height: 1.5; }

.ticket-question-groups {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 62px minmax(0, 0.9fr);
    overflow: hidden;
    border: 8px solid #744222;
    outline: 3px solid var(--rfr-ink);
    background: #e7c994;
    box-shadow: var(--rfr-shadow);
}

.ticket-question-group { position: relative; min-width: 0; display: grid; align-content: space-between; gap: 28px; min-height: 470px; padding: 42px 38px 36px; }
.ticket-entry-group {
    background:
        radial-gradient(circle at 14px 14px, rgba(255, 255, 255, 0.24) 0 2px, transparent 2.5px) 0 0 / 28px 28px,
        var(--rfr-gold);
}
.ticket-prize-group {
    background:
        repeating-linear-gradient(-8deg, transparent 0 20px, rgba(255, 247, 228, 0.035) 21px 22px),
        var(--rfr-red-dark);
    color: var(--rfr-paper);
}
.ticket-group-copy { position: relative; z-index: 1; }
.ticket-group-name { display: inline-block; padding: 7px 10px; transform: rotate(-1deg); background: var(--rfr-red-dark); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.ticket-prize-group .ticket-group-name { background: var(--rfr-gold); color: var(--rfr-ink); transform: rotate(1deg); }
.ticket-group-copy h3 { max-width: 15ch; margin: 16px 0 13px; font-family: 'Bungee', sans-serif; font-size: clamp(1.65rem, 3vw, 2.8rem); line-height: 1.05; text-transform: uppercase; }
.ticket-group-copy p { max-width: 48ch; margin: 0; color: var(--rfr-ink-soft); font-size: 1rem; line-height: 1.5; }
.ticket-prize-group .ticket-group-copy p { color: rgba(255, 247, 228, 0.82); }

.ticket-question-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.ticket-question-strip li { min-width: 0; min-height: 114px; display: grid; align-content: center; justify-items: center; gap: 6px; padding: 12px 8px; border: 2px dashed rgba(44, 23, 20, 0.65); background: rgba(255, 247, 228, 0.42); text-align: center; }
.ticket-question-strip li:nth-child(2) { transform: rotate(0.7deg); }
.ticket-question-strip b { display: grid; place-items: center; width: 42px; aspect-ratio: 1; border: 3px double var(--rfr-red-dark); border-radius: 50%; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 1.1rem; }
.ticket-question-strip span { color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.56rem; line-height: 1.25; text-transform: uppercase; }
.ticket-prize-group .ticket-question-strip li { border-color: rgba(224, 170, 62, 0.75); background: rgba(255, 247, 228, 0.08); }
.ticket-prize-group .ticket-question-strip b { border-color: var(--rfr-gold); color: var(--rfr-gold); }
.ticket-prize-group .ticket-question-strip span { color: var(--rfr-paper); }

.ticket-group-outcome { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-top: 3px dashed rgba(44, 23, 20, 0.58); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.95rem; text-transform: uppercase; }
.ticket-group-outcome span { color: var(--rfr-ink-soft); font-size: 0.6rem; }
.ticket-prize-group .ticket-group-outcome { border-top-color: rgba(224, 170, 62, 0.7); color: var(--rfr-gold); }
.ticket-prize-group .ticket-group-outcome span { color: rgba(255, 247, 228, 0.62); }

.ticket-tear-line { position: relative; display: grid; place-items: center; border-inline: 3px dashed rgba(44, 23, 20, 0.72); background: #d8b879; }
.ticket-tear-line::before,
.ticket-tear-line::after { content: ""; position: absolute; left: 50%; width: 30px; aspect-ratio: 1; transform: translateX(-50%); border: 3px solid var(--rfr-ink); border-radius: 50%; background: var(--rfr-paper); }
.ticket-tear-line::before { top: -18px; }
.ticket-tear-line::after { bottom: -18px; }
.ticket-tear-line span { padding: 9px 6px; transform: rotate(-90deg); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.55rem; text-transform: uppercase; white-space: nowrap; }

.ticket-account-guide { display: grid; grid-template-columns: minmax(250px, 0.55fr) minmax(0, 1fr); gap: 44px; align-items: start; margin-top: 62px; padding: 38px; border: 4px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 8px 8px 0 rgba(127, 21, 32, 0.72); }
.ticket-account-guide > header { position: sticky; top: 110px; }
.ticket-account-button { margin-top: 22px; }
.ticket-account-route { margin: 0; padding: 0; counter-reset: ticket-route; list-style: none; }
.ticket-account-route li { position: relative; min-height: 104px; display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: baseline; gap: 20px; padding: 20px 16px 22px 66px; border-bottom: 2px dashed rgba(127, 21, 32, 0.45); counter-increment: ticket-route; }
.ticket-account-route li:last-child { border-bottom: 0; }
.ticket-account-route li::before { content: counter(ticket-route); position: absolute; left: 4px; top: 18px; display: grid; place-items: center; width: 42px; aspect-ratio: 1; transform: rotate(-3deg); border: 3px double var(--rfr-red-dark); border-radius: 50%; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; }
.ticket-account-route b { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.78rem; line-height: 1.25; text-transform: uppercase; }
.ticket-account-route p { margin: 0; color: var(--rfr-ink-soft); line-height: 1.45; }
.ticket-account-route p strong { color: var(--rfr-ink); }

.ticket-warning { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 68px; padding: 28px 32px; border: 5px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-night); color: var(--rfr-paper); box-shadow: 8px 8px 0 var(--rfr-red); }
.ticket-warning > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; }
.ticket-warning strong { padding: 10px; background: var(--rfr-gold); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.ticket-warning p { margin: 0; color: rgba(255, 247, 228, 0.8); }
.ticket-warning-stamp { flex: 0 0 auto; padding: 10px 14px; transform: rotate(-2deg); border: 4px double var(--rfr-red); color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 0.68rem; text-align: center; text-transform: uppercase; }

/* Backstage entrance and dashboard */
.backstage-gate { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr); gap: 44px; align-items: center; min-height: calc(100dvh - 200px); padding: clamp(28px, 5vw, 60px); border: 8px solid var(--rfr-gold); outline: 4px solid var(--rfr-ink); background: linear-gradient(90deg, rgba(31,21,22,0.94), rgba(31,21,22,0.78)), url("images/events/RFR3-31.jpg") center / cover; box-shadow: 12px 12px 0 var(--rfr-red-dark); color: var(--rfr-paper); }
.backstage-gate .sign-in-copy { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.gate-sign { width: fit-content; margin: 0 0 14px; padding: 7px 11px; transform: rotate(-1deg); background: var(--rfr-gold); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; text-transform: uppercase; }
.backstage-gate .page-title { color: var(--rfr-paper); text-shadow: 3px 3px 0 var(--rfr-red); }
.backstage-gate .sign-in-intro { max-width: 58ch; color: rgba(255,247,228,0.78); font-size: 1.08rem; }
.gate-rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 30px; }
.gate-rules p { margin: 0; padding: 12px; border: 1px solid rgba(224,170,62,0.5); color: var(--rfr-paper); }
.gate-rules span { display: inline-grid; place-items: center; width: 25px; aspect-ratio: 1; margin-right: 5px; border-radius: 50%; background: var(--rfr-red); color: var(--rfr-paper); font-weight: 800; }
.backstage-gate .sign-in-card { overflow: hidden; padding: 0; border-color: var(--rfr-gold); background: var(--rfr-paper); color: var(--rfr-ink); box-shadow: 9px 9px 0 rgba(0,0,0,0.44); }
.sign-in-card-header { display: flex; justify-content: space-between; align-items: center; padding: 17px 22px; background: var(--rfr-red); color: var(--rfr-paper); font-family: 'Bungee', sans-serif; text-transform: uppercase; }
.sign-in-card-header strong { color: var(--rfr-gold); font-size: 1.2rem; }
.backstage-gate .sign-in-form { padding: 28px; }
.sign-in-field { gap: 7px; }
.sign-in-field span { color: var(--rfr-ink); font-size: 0.75rem; }
.sign-in-field input { min-height: 50px; border: 2px solid var(--rfr-ink); border-radius: 2px; background: #fffdf5; color: var(--rfr-ink); }
.sign-in-submit { width: 100%; min-height: 52px; }
.sign-in-small { margin: 0; padding: 0 28px 25px; color: var(--rfr-ink-soft); font-size: 0.78rem; text-align: center; }

.backstage-sign { display: flex; align-items: end; gap: 18px; margin-bottom: 34px; padding: 22px 30px; border: 5px double var(--rfr-gold); outline: 3px solid var(--rfr-ink); background: var(--rfr-red-dark); box-shadow: 8px 8px 0 rgba(44,23,20,0.8); color: var(--rfr-paper); }
.backstage-sign span { align-self: flex-start; padding: 6px 9px; transform: rotate(-2deg); background: var(--rfr-gold); color: var(--rfr-ink); font-family: 'Bungee', sans-serif; font-size: 0.7rem; text-transform: uppercase; }
.backstage-sign h1 { margin: 0; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; font-size: clamp(2.4rem, 5vw, 5rem); line-height: 0.9; text-transform: uppercase; }
.backstage-sign p { margin: 0 0 3px; color: rgba(255,247,228,0.72); }
.page-dashboard .dashboard-layout { grid-template-columns: 350px minmax(0, 1fr); gap: 30px; }
.page-dashboard .dashboard-layout > * { min-width: 0; }
.page-dashboard .dashboard-sidebar,
.page-dashboard .dashboard-content { grid-template-columns: minmax(0, 1fr); }
.page-dashboard .dashboard-sidebar { position: sticky; top: 108px; align-self: start; padding: 28px; background: #f0d79f; }
.dashboard-pass-label { margin: 0 0 18px; color: var(--rfr-red); font-family: 'Bungee', sans-serif; text-transform: uppercase; }
.page-dashboard .dashboard-profile-avatar-frame { border: 6px double var(--rfr-red-dark); border-radius: 50%; background: var(--rfr-paper); }
.page-dashboard .dashboard-profile-avatar { border-radius: 50%; }
.page-dashboard .dashboard-profile-name { font-size: 1.35rem; line-height: 1.15; }
.page-dashboard .dashboard-profile-stats { grid-template-columns: minmax(0, 1fr); }
.page-dashboard .dashboard-profile-stat { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 58px; padding: 12px 14px; border: 2px solid rgba(44,23,20,0.36); background: rgba(255,247,228,0.55); }
.page-dashboard .dashboard-profile-stat-label { color: var(--rfr-ink-soft); font-family: 'Bungee', sans-serif; font-size: 0.65rem; line-height: 1.25; text-transform: uppercase; }
.page-dashboard .dashboard-profile-stat-value { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 1rem; text-align: right; }
.page-dashboard .dashboard-section { padding: 28px; }
.page-dashboard .dashboard-section + .dashboard-section { margin-top: 28px; }
.dashboard-section-header { border-bottom: 4px double var(--rfr-red); }
.dashboard-section-title { font-size: 1.7rem; }
.dashboard-section-meta { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.72rem; }
.dashboard-note-row { background: rgba(224,170,62,0.11); }
.dashboard-note-row:nth-child(even) { background: rgba(185,31,46,0.07); }
.dashboard-ledger-table th { background: var(--rfr-red); color: var(--rfr-paper); }
.dashboard-admission-pass { display: grid; grid-template-columns: minmax(0, 1fr) 190px; min-height: 290px; overflow: hidden; border: 4px solid var(--rfr-ink); background: var(--rfr-gold); box-shadow: 9px 9px 0 rgba(44,23,20,0.86); transform: rotate(-0.25deg); }
.dashboard-admission-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 34px 42px; background: radial-gradient(circle at 14px 14px, rgba(255,255,255,0.25) 0 2px, transparent 2.5px) 0 0 / 28px 28px, var(--rfr-gold); }
.dashboard-admission-copy > p { margin: 0; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.72rem; text-transform: uppercase; }
.dashboard-admission-copy h2 { margin: 8px 0 5px; font-family: 'Bungee', sans-serif; font-size: clamp(1.8rem, 4vw, 3.5rem); line-height: 0.98; text-transform: uppercase; }
.dashboard-admission-copy > strong { color: var(--rfr-red-dark); }
.dashboard-admission-copy blockquote { margin: 24px 0 0; padding: 12px 15px; border: 2px dashed var(--rfr-red-dark); background: rgba(255,247,228,0.34); font-style: italic; }
.dashboard-admission-stub { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 13px; padding: 24px; border-left: 3px dashed var(--rfr-ink); background: var(--rfr-red); color: var(--rfr-paper); text-align: center; }
.dashboard-admission-stub span { color: var(--rfr-gold); font-family: 'Bungee', sans-serif; font-size: 2rem; }
.dashboard-admission-stub b { writing-mode: vertical-rl; color: var(--rfr-paper); font-family: 'Bungee', sans-serif; letter-spacing: 0.12em; }
.dashboard-admission-stub small { color: rgba(255,247,228,0.72); line-height: 1.25; }
.dashboard-challenge-section { margin-top: 30px; }
.challenge-stamp-summary { display: flex; align-items: center; gap: 13px; margin: 24px 0; padding: 13px 18px; border: 3px double var(--rfr-gold); background: var(--rfr-night); color: var(--rfr-paper); }
.challenge-stamp-summary strong { color: var(--rfr-gold); font-size: 1.5rem; }
.challenge-stamp-summary span { color: rgba(255,247,228,0.74); }
.challenge-groups { display: grid; gap: 28px; }
.challenge-group { padding: 22px; border: 2px solid var(--rfr-ink); background: rgba(224,170,62,0.1); }
.challenge-group h4 { margin: 0; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 1.15rem; text-transform: uppercase; }
.challenge-group > p { margin: 6px 0 20px; color: var(--rfr-ink-soft); }
.challenge-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.challenge-card { position: relative; min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 18px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 4px 4px 0 rgba(44,23,20,0.42); }
.challenge-card h5 { margin: 0 0 8px; font-family: 'Bungee', sans-serif; font-size: 0.86rem; text-transform: uppercase; }
.challenge-card p { margin: 0; color: var(--rfr-ink-soft); font-size: 0.9rem; line-height: 1.35; }
.challenge-stamp { align-self: flex-end; min-width: 92px; padding: 8px 10px; border: 2px solid var(--rfr-red); background: transparent; color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 0.67rem; text-transform: uppercase; }
.challenge-card.is-stamped { background: #ead9ae; }
.challenge-card.is-stamped::after { content: "APPROVED"; position: absolute; right: 13px; top: 50%; transform: rotate(-13deg); border: 5px double var(--rfr-red); color: rgba(185,31,46,0.34); font-family: 'Bungee', sans-serif; font-size: 1.1rem; pointer-events: none; }
.challenge-card.is-stamped .challenge-stamp { background: var(--rfr-red); color: var(--rfr-paper); }

@media (max-width: 1080px) {
    .rfr5-hero { padding: 22px 20px; }
    .rfr5-flyer-poster { width: min(875px, calc(100vw - 48px)); }
    .performer-card { grid-column: span 6; }
    .rfr5-programme-main-ring { grid-column: span 7; }
    .rfr5-programme-concessions { grid-column: span 5; }
    .rfr5-programme-midway { grid-column: span 5; }
    .rfr5-programme-prizes { grid-column: span 7; grid-template-columns: minmax(210px, 0.78fr) minmax(0, 1.22fr); }
    .rfr5-programme-main-ring .rfr5-programme-copy { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .rfr5-programme-main-ring .rfr5-programme-copy > p:last-child { margin-top: 4px; }
    .rfr5-prize-gallery { min-height: 435px; }
    .rfr5-midway { grid-template-columns: 1fr 1fr; }
    .rfr5-photo-stack { grid-column: 1 / -1; }
    .ticket-question-groups { grid-template-columns: minmax(0, 1fr) 48px minmax(0, 0.9fr); }
    .ticket-question-group { padding: 34px 26px 30px; }
    .ticket-account-guide { grid-template-columns: 1fr; }
    .ticket-account-guide > header { position: static; }
    .backstage-gate { grid-template-columns: 1fr; }
    .challenge-list { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
    .rfr5-programme-main-ring,
    .rfr5-programme-concessions,
    .rfr5-programme-midway,
    .rfr5-programme-prizes { grid-column: 1 / -1; }
    .rfr5-programme-midway { grid-template-columns: minmax(0, 1fr) 220px; }
    .rfr5-programme-prizes { grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr); }
    .rfr5-concession-gallery img { height: 300px; }
    .rfr5-final { display: grid; }
    .tickets-show-header { grid-template-columns: 1fr; }
    .ticket-roll { grid-template-columns: repeat(3, 1fr); margin: 0 -24px -18px; border-left: 0; border-top: 3px dashed var(--rfr-ink); }
    .ticket-question-groups { grid-template-columns: minmax(0, 1fr); }
    .ticket-question-group { min-height: 0; }
    .ticket-tear-line { min-height: 58px; border-inline: 0; border-block: 3px dashed rgba(44, 23, 20, 0.72); }
    .ticket-tear-line::before,
    .ticket-tear-line::after { top: 50%; bottom: auto; transform: translateY(-50%); }
    .ticket-tear-line::before { left: -18px; }
    .ticket-tear-line::after { left: auto; right: -18px; }
    .ticket-tear-line span { transform: none; }
    .ticket-warning { display: grid; }
    .ticket-warning-stamp { justify-self: start; }
    .page-dashboard .dashboard-layout { grid-template-columns: 1fr; }
    .page-dashboard .dashboard-sidebar { position: static; }
}

@media (max-width: 620px) {
    .rfr5-hero { min-height: 0; padding: 24px 12px 28px; background-position: center top; }
    .rfr5-event-flyer { width: 100%; transform: none; }
    .rfr5-flyer-poster { width: min(800px, calc(100vw - 24px)); box-shadow: 7px 9px 0 rgba(8, 5, 7, 0.72), 0 18px 40px rgba(8, 5, 7, 0.5); }
    .rfr5-flyer-notes { margin-top: 15px; padding-inline: 8px; }
    .rfr5-subtitle { font-size: 0.86rem; }
    .rfr5-flyer-meta { display: grid; gap: 4px; }
    .rfr5-flyer-meta span { justify-content: center; }
    .rfr5-flyer-smallprint { max-width: 34ch; margin-inline: auto; }
    .rfr5-actions { display: grid; }
    .rfr5-actions .show-button { width: 100%; }
    .rfr5-event-flyer .rfr5-ticket-cta { min-height: 60px; padding: 14px 18px; font-size: 0.88rem; }
    .performer-card { grid-column: span 12; transform: none !important; }
    .rfr5-day-programme { padding-top: 48px; }
    .rfr5-programme-shell { border-width: 5px; box-shadow: 7px 8px 0 var(--rfr-red); }
    .rfr5-programme-shell::before { height: 54px; background-size: auto; }
    .rfr5-programme-shell::after { inset: 8px; }
    .rfr5-programme-bulbs { top: 12px; right: 10px; left: 10px; }
    .rfr5-programme-heading { padding: 77px 18px 24px; }
    .rfr5-programme-heading h2 { font-size: clamp(2rem, 11vw, 3.2rem); }
    .rfr5-programme-heading > p:last-of-type { font-size: 0.92rem; }
    .rfr5-day-timings { grid-template-columns: minmax(0, 1fr); margin: 0 13px 23px; transform: none; }
    .rfr5-day-timings > div { min-height: 116px; }
    .rfr5-day-timings > div + div { border-top: 3px dashed rgba(44,23,20,0.6); border-left: 0; }
    .rfr5-day-timings > div:nth-child(2) { transform: none; }
    .rfr5-programme-grid { gap: 17px; padding: 8px 13px 24px; }
    .rfr5-programme-act,
    .rfr5-performer-call { transform: none; }
    .rfr5-programme-copy { padding: 22px 19px; }
    .rfr5-programme-main-ring .rfr5-programme-copy { display: block; }
    .rfr5-programme-main-ring .rfr5-programme-copy > p:first-child { margin-bottom: 9px; }
    .rfr5-programme-main-ring .rfr5-programme-copy > p:last-child { margin-top: 13px; }
    .rfr5-programme-illustration { margin: 0 10px 10px !important; }
    .rfr5-concession-gallery { gap: 7px; padding: 0 10px 10px; }
    .rfr5-concession-gallery figure { transform: none !important; }
    .rfr5-concession-gallery img { height: 205px; }
    .rfr5-programme-midway { grid-template-columns: minmax(0, 1fr) 115px; }
    .rfr5-programme-midway figure img { min-height: 330px; }
    .rfr5-programme-prizes { grid-template-columns: minmax(0, 1fr); }
    .rfr5-prize-gallery { min-height: 0; display: grid; gap: 10px; padding: 0 16px 24px; }
    .rfr5-prize-gallery figure:first-child { width: 100%; }
    .rfr5-prize-gallery figure:first-child img { height: 230px; }
    .rfr5-prize-gallery figure:first-child figcaption { width: 100%; min-height: 0; text-align: center; }
    .rfr5-prize-gallery figure:last-child { position: relative; right: auto; bottom: auto; width: 78%; margin: -4px 0 0 auto; }
    .rfr5-prize-gallery figure:last-child img { height: 145px; }
    .rfr5-performer-call { grid-template-columns: minmax(0, 1fr); gap: 15px; margin-inline: 3px; padding: 22px 18px; }
    .rfr5-performer-call div { padding: 0 0 15px; border-right: 0; border-bottom: 3px dashed rgba(255,247,228,0.52); }
    .rfr5-midway { grid-template-columns: 1fr; }
    .rfr5-photo-stack { grid-column: auto; }
    .rfr5-final { padding-inline: 12px; }
    .tickets-show-header { padding-inline: 20px; }
    .ticket-roll { grid-template-columns: 1fr; }
    .ticket-roll span:nth-child(1),
    .ticket-roll span:nth-child(3) { display: none; }
    .ticket-briefing-heading h2,
    .ticket-account-guide h2 { font-size: clamp(1.85rem, 10vw, 2.7rem); }
    .ticket-question-group { gap: 22px; padding: 28px 18px 24px; }
    .ticket-group-copy h3 { max-width: none; font-size: 1.55rem; }
    .ticket-question-strip { gap: 6px; }
    .ticket-question-strip li { min-height: 98px; padding-inline: 4px; }
    .ticket-question-strip b { width: 36px; }
    .ticket-question-strip span { font-size: 0.47rem; }
    .ticket-group-outcome { align-items: flex-start; flex-direction: column; gap: 4px; }
    .ticket-account-guide { gap: 24px; padding: 26px 16px; }
    .ticket-account-route li { grid-template-columns: minmax(0, 1fr); gap: 7px; padding: 18px 8px 20px 54px; }
    .ticket-warning > div { grid-template-columns: 1fr; }
    .gate-rules { grid-template-columns: 1fr; }
    .backstage-gate { padding: 28px 18px; }
    .backstage-sign { display: grid; padding: 20px; }
    .page-dashboard .dashboard-profile-stats { grid-template-columns: minmax(0, 1fr); }
    .dashboard-admission-pass { grid-template-columns: 1fr; }
    .dashboard-admission-stub { min-height: 125px; border-left: 0; border-top: 3px dashed var(--rfr-ink); }
    .dashboard-admission-stub b { writing-mode: initial; }
    .dashboard-admission-copy { padding: 28px 20px; }
    .challenge-list { grid-template-columns: 1fr; }
}

@media (max-width: 1120px) {
    .header-container { grid-template-columns: 74px minmax(0, 1fr) auto; }
    .brand-lockup { display: none; }
    .navigation a { font-size: 0.7rem; }
    .navigation li + li::before { margin: 0 3px; font-size: 0.52rem; }
    .showground-hero { grid-template-columns: minmax(0, 1fr) 300px; }
    .hero-copy h1 { font-size: clamp(4rem, 9vw, 7.2rem); }
    .map-attraction { grid-column: span 6; }
    .map-attraction-featured { grid-column: span 12; }
    .home-sideshow { grid-template-columns: 1fr 1fr; }
    .sideshow-photo { grid-column: span 2; order: 3; }
}

@media (max-width: 860px) {
    body:not(:has(header.site-header)) { padding-top: 72px; }
    .site-page,
    .home-noticeboard,
    .home-sideshow,
    .home-lucky-dip,
    .home-proclamation { width: min(100% - 24px, var(--page-width)); }

    header.site-header { height: 72px; }
    .header-container { height: 67px; grid-template-columns: auto 1fr auto; }
    .header-brand .logo { height: 52px; }
    .menu-toggle { display: inline-flex; align-items: center; justify-content: center; justify-self: end; gap: 8px; width: auto; min-width: 78px; padding: 0 10px; border: 2px solid var(--rfr-gold); border-radius: 3px; font-family: 'Bungee', sans-serif; font-size: 0.72rem; }
    .menu-toggle-lines { display: grid; gap: 3px; }
    .menu-toggle-lines i { display: block; width: 18px; height: 2px; background: currentColor; transition: opacity 160ms ease, transform 220ms cubic-bezier(.16,1,.3,1); }
    body.menu-open .menu-toggle-lines i:nth-child(1) { transform: translateY(5px) rotate(45deg); }
    body.menu-open .menu-toggle-lines i:nth-child(2) { opacity: 0; }
    body.menu-open .menu-toggle-lines i:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
    .header-actions { grid-column: 2; grid-row: 1; justify-self: end; margin-right: 92px; }
    .navigation { position: fixed; inset: 72px 0 0; display: grid; align-content: start; padding: 28px 20px 50px; transform: translateX(105%); overflow-y: auto; background: var(--rfr-red-dark); transition: transform 300ms cubic-bezier(0.16,1,0.3,1); }
    .navigation.active { transform: translateX(0); }
    .navigation-heading { display: grid; margin-bottom: 20px; color: var(--rfr-paper); }
    .navigation-heading span { color: var(--rfr-gold); text-transform: uppercase; font-size: 0.72rem; }
    .navigation-heading strong { color: var(--rfr-paper); font-size: 1.4rem; }
    .navigation ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .navigation li { display: block; }
    .navigation li + li::before { display: none; }
    .navigation a { min-height: 66px; display: flex; padding: 12px 14px; border: 2px solid var(--rfr-gold); background: rgba(255,247,228,0.04); font-size: 0.9rem; }
    .navigation a:hover { background: var(--rfr-gold); color: var(--rfr-ink); }
    .navigation-mobile-auth { display: flex; margin-top: 18px; }
    body.menu-open { overflow: hidden; }

    .showground-hero { min-height: auto; grid-template-columns: 1fr; grid-template-rows: auto; gap: 42px; padding: 48px 24px 104px; }
    .hero-copy { max-width: 680px; }
    .hero-copy h1 { font-size: clamp(4.1rem, 16vw, 7.2rem); }
    .hero-champion { width: min(360px, 100%); min-height: 390px; justify-self: center; }
    .hero-rfr5-mark { grid-column: 1; width: clamp(405px, 87vw, 555px); margin-top: 26px; }
    .home-noticeboard { margin-top: 86px; }
    .noticeboard-title { margin-left: 0; }
    .home-lucky-dip { grid-template-columns: 1fr; padding: 32px; }
    .lucky-photo img { height: 64vw; max-height: 500px; }
    .home-proclamation { grid-template-columns: 72px 1fr; }
    .home-proclamation .show-button { grid-column: 1 / -1; justify-self: start; }
    .footer-inner { grid-template-columns: 54px 1fr; }
    .footer-links { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 620px) {
    .site-page { padding-top: 34px; }
    .header-actions { display: none; }
    .navigation ul { grid-template-columns: 1fr; }
    .navigation-mobile-auth { display: flex; }
    .navigation-mobile-auth .auth-link,
    .navigation-mobile-auth .auth-button { display: inline-flex; }
    .showground-hero { padding-inline: 18px; background-position: 48% center; }
    .showground-hero::before { inset: 10px; }
    .hero-copy h1 { font-size: clamp(3.45rem, 17.7vw, 5.4rem); text-shadow: 2px 2px 0 var(--rfr-red), 5px 5px 0 var(--rfr-gold-dark); }
    .hero-declaration { font-size: 1rem; }
    .hero-actions { display: grid; }
    .hero-actions .show-button { width: 100%; }
    .hero-champion { min-height: 360px; padding-inline: 20px; }
    .hero-rfr5-mark { width: min(calc(100vw - 32px), 495px); margin-top: 22px; }
    .champion-rosette { right: -3px; }
    .home-noticeboard { padding: 28px 18px; border-width: 8px; }
    .noticeboard-title { width: calc(100% - 12px); margin-top: -72px; padding: 14px 18px; }
    .map-attraction,
    .map-attraction-featured { grid-column: span 12; min-height: 128px; padding: 16px; }
    .map-number { width: 66px; flex-basis: 66px; font-size: 2.7rem; }
    .map-icon { width: 52px; flex-basis: 52px; font-size: 1.4rem; }
    .home-sideshow { grid-template-columns: 1fr; }
    .sideshow-photo { grid-column: auto; order: initial; }
    .sideshow-stat { block-size: 390px; min-block-size: 390px; max-block-size: 390px; }
    .sideshow-fortune { min-height: 360px; }
    .sideshow-stat h2 { min-height: 3em; }
    .sideshow-photo,
    .sideshow-photo img { min-height: 340px; }
    .home-lucky-dip { padding: 24px 18px; }
    .lucky-photo img { min-height: 250px; }
    .home-proclamation { grid-template-columns: 1fr; padding: 28px 22px; }
    .proclamation-mark { width: 70px; }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-mark { display: none; }
    .fortune-dialog { width: calc(100% - 18px); max-height: calc(100dvh - 18px); padding: 10px; }
    .fortune-dialog::before,
    .fortune-dialog::after { left: 15px; right: 15px; }
    .fortune-dialog-stage { grid-template-columns: 1fr; gap: 12px; padding: 18px 9px 12px; }
    .fortune-madame { height: 190px; }
    .fortune-madame img { object-position: center 27%; }
    .fortune-madame figcaption { right: 10px; bottom: 9px; left: 10px; padding: 8px 10px 7px; }
    .fortune-madame h2 { font-size: 1.55rem; }
    .fortune-reading { grid-template-rows: auto 150px minmax(138px, auto) auto; padding: 6px 8px 4px; }
    .fortune-card-stage { min-height: 150px; }
    .fortune-card { width: 92px; }
    .fortune-card-stage::before { width: 188px; }
    .fortune-prophecy { block-size: 190px; min-block-size: 190px; padding: 17px 17px 14px; }
    .fortune-result { font-size: clamp(0.75rem, 3.8vw, 1rem); }
    .fortune-reading::before,
    .fortune-reading::after { top: 38%; }
}

/* Keep the interactive performer bills taller than the original static-card shell. */
.performer-card[data-performer-card] {
    min-height: 0;
    aspect-ratio: 4 / 7;
    margin-bottom: 0;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.performer-card[data-performer-card] .performer-card-flipper {
    position: relative;
    height: 100%;
    min-height: 0;
}

/* Firebase backstage paperwork */
.dashboard-loading-papers {
    display: grid;
    gap: 12px;
    min-height: 280px;
    align-content: center;
    padding: 34px;
    border: var(--rfr-border);
    background: var(--rfr-paper);
    box-shadow: 8px 8px 0 rgba(127, 21, 32, 0.18);
}

.dashboard-loading-papers strong {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    text-transform: uppercase;
}

.dashboard-loading-papers span {
    width: 100%;
    height: 18px;
    background: linear-gradient(90deg, #e4cfaa 20%, #f6e7ca 50%, #e4cfaa 80%);
    background-size: 220% 100%;
}

.dashboard-loading-papers span:nth-child(3) { width: 82%; }
.dashboard-loading-papers span:nth-child(4) { width: 64%; }

@media (prefers-reduced-motion: no-preference) {
    .dashboard-loading-papers span { animation: backstage-paperwork 1.3s linear infinite; }
}

@keyframes backstage-paperwork {
    to { background-position: -220% 0; }
}

.dashboard-load-failure {
    display: grid;
    gap: 8px;
    padding: 34px;
    border: 5px double var(--rfr-red);
    background: var(--rfr-paper);
}

.dashboard-load-failure strong {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 1.4rem;
    text-transform: uppercase;
}

.dashboard-admission-official-name {
    margin-bottom: 8px;
    color: rgba(44, 23, 20, 0.68);
}

.prediction-field > span,
.challenge-evidence-form label,
.admin-filter-field > span {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.68rem;
    line-height: 1.25;
    text-transform: uppercase;
}

.prediction-field select,
.challenge-evidence-form textarea,
.admin-filter-field select {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 2px solid var(--rfr-ink);
    border-radius: 2px;
    background: #fffdf5;
    color: var(--rfr-ink);
}

.prediction-field select:focus,
.challenge-evidence-form textarea:focus,
.admin-filter-field select:focus {
    outline: 3px solid rgba(224, 170, 62, 0.52);
    outline-offset: 2px;
}

.dashboard-mini-button,
.challenge-refresh-button,
.challenge-submit-button,
.admin-approve-button,
.admin-return-button {
    min-height: 42px;
    padding: 8px 12px;
    border: 2px solid var(--rfr-ink);
    border-radius: 2px;
    font-family: 'Bungee', sans-serif;
    font-size: 0.68rem;
    line-height: 1.2;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.72);
}

.dashboard-mini-button,
.challenge-submit-button,
.admin-approve-button {
    background: var(--rfr-red);
    color: var(--rfr-paper);
}

.dashboard-mini-button:hover,
.challenge-submit-button:hover,
.admin-approve-button:hover {
    background: var(--rfr-red-dark);
}

.dashboard-mini-button:active,
.challenge-refresh-button:active,
.challenge-submit-button:active,
.admin-approve-button:active,
.admin-return-button:active {
    transform: translateY(2px);
    box-shadow: 1px 1px 0 rgba(44, 23, 20, 0.72);
}

button:disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.dashboard-form-message {
    margin: 0;
    color: var(--rfr-green);
    font-size: 0.82rem;
    line-height: 1.35;
}

.dashboard-form-message.is-error { color: var(--rfr-red-dark); }
.dashboard-form-message[hidden] { display: none; }

.prediction-slip {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    width: 100%;
    margin-inline: 0;
    padding: 0 28px 28px;
    border: 2px solid var(--rfr-ink);
    background:
        repeating-linear-gradient(0deg, rgba(44, 23, 20, 0.035) 0 1px, transparent 1px 24px),
        #efd9aa;
    box-shadow: 7px 7px 0 rgba(44, 23, 20, 0.34);
    scroll-margin-top: 104px;
}

.prediction-slip::after {
    content: "";
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 10px;
    border-bottom: 2px dotted rgba(127, 21, 32, 0.62);
}

.prediction-slip-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "event theme" "title theme";
    align-items: center;
    column-gap: 18px;
    margin: 0 -28px;
    padding: 17px 22px;
    border-bottom: 4px double var(--rfr-gold);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    text-transform: uppercase;
}

.prediction-slip-heading > span { grid-area: event; color: var(--rfr-gold); font-size: 0.64rem; letter-spacing: 0.08em; }
.prediction-slip-heading > strong {
    grid-area: title;
    color: var(--rfr-paper);
    font-size: clamp(1.25rem, 3vw, 1.75rem);
    line-height: 1.05;
}
.prediction-slip-heading > small { grid-area: theme; max-width: 150px; color: rgba(255, 247, 228, 0.78); font-size: 0.62rem; line-height: 1.35; text-align: right; }

.prediction-slip-details {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0;
    padding: 15px 2px;
    border-bottom: 2px dashed rgba(127, 21, 32, 0.56);
}

.prediction-slip-details div { display: grid; gap: 2px; min-width: 0; }
.prediction-slip-details dt { color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: 0.55rem; text-transform: uppercase; }
.prediction-slip-details dd { min-width: 0; margin: 0; color: var(--rfr-ink); font-size: 0.82rem; font-weight: 700; }

.prediction-odds-market {
    padding: 18px 2px 17px;
    border-bottom: 2px dashed rgba(127, 21, 32, 0.56);
}

.prediction-odds-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 12px;
}

.prediction-odds-heading h3 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(0.9rem, 1.5vw, 1.08rem);
    line-height: 1.15;
    text-transform: uppercase;
}

.prediction-odds-stamp {
    flex: 0 0 auto;
    padding: 5px 8px 4px;
    transform: rotate(-2deg);
    border: 3px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.54rem;
    line-height: 1;
    text-transform: uppercase;
}

.prediction-odds-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border: 2px solid var(--rfr-ink);
    background: rgba(255, 247, 228, 0.58);
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.34);
    list-style: none;
}

.prediction-odds-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 38px;
    align-items: center;
    gap: 10px;
    min-height: 60px;
    padding: 8px 10px 8px 12px;
    border-bottom: 1px dashed rgba(127, 21, 32, 0.44);
}

.prediction-odds-row:nth-child(odd) { border-right: 1px dashed rgba(127, 21, 32, 0.44); }
.prediction-odds-row:nth-last-child(-n + 2) { border-bottom: 0; }

.prediction-odds-player {
    display: grid;
    min-width: 0;
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    line-height: 1.1;
    text-transform: uppercase;
}

.prediction-odds-player strong {
    overflow: hidden;
    font-size: 0.73rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prediction-odds-player small {
    margin-top: 3px;
    overflow: hidden;
    color: var(--rfr-ink-soft);
    font-size: 0.52rem;
    letter-spacing: 0.04em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prediction-odds-price {
    min-width: 48px;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.prediction-odds-info {
    display: grid;
    width: 38px;
    aspect-ratio: 1;
    place-items: center;
    padding: 0;
    transform: rotate(-2deg);
    border: 2px solid var(--rfr-ink);
    border-radius: 50%;
    background: var(--rfr-gold);
    box-shadow: 2px 2px 0 rgba(44, 23, 20, 0.72);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.88rem;
    line-height: 1;
    cursor: pointer;
}

.prediction-odds-info:hover,
.prediction-odds-info.is-active {
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
}

.prediction-odds-info:focus-visible {
    outline: 3px solid var(--rfr-red-dark);
    outline-offset: 3px;
}

.prediction-odds-info:active {
    transform: rotate(-2deg) translateY(2px);
    box-shadow: none;
}

.prediction-odds-dialog {
    box-sizing: border-box;
    width: min(620px, calc(100% - 28px));
    max-width: none;
    max-height: calc(100dvh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 10px;
    border: 0;
    background: transparent;
}

.prediction-odds-dialog:not([open]) { display: none; }

.prediction-odds-dialog[open] { display: block; }

.prediction-odds-dialog-card {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 5vw, 42px);
    transform: rotate(-0.35deg);
    border: 5px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background:
        linear-gradient(90deg, var(--rfr-red-dark) 0 12px, transparent 12px),
        repeating-linear-gradient(0deg, transparent 0 26px, rgba(82, 44, 32, 0.06) 27px 28px),
        #fff4d8;
    box-shadow: 10px 10px 0 var(--rfr-red-dark);
}

.prediction-odds-dialog-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 12px;
    height: 10px;
    background: repeating-linear-gradient(90deg, var(--rfr-red-dark) 0 30px, var(--rfr-gold) 30px 52px, var(--rfr-paper) 52px 64px);
}

.prediction-odds-dialog .prediction-odds-dialog-close {
    top: 18px;
    right: 20px;
    z-index: 1;
    border-color: var(--rfr-ink);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    cursor: pointer;
}

.prediction-odds-dialog .prediction-odds-dialog-close:hover { background: var(--rfr-ink); }

.prediction-odds-dialog .prediction-odds-dialog-close:focus-visible {
    outline: 3px solid var(--rfr-gold-dark);
    outline-offset: 3px;
}

.prediction-odds-dialog-kicker {
    margin: 2px 58px 22px 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.prediction-odds-dialog-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 24px;
    padding-bottom: 16px;
    border-bottom: 2px dashed rgba(127, 21, 32, 0.56);
}

.prediction-odds-dialog-heading span,
.prediction-odds-dialog-heading small {
    display: block;
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    line-height: 1.25;
    text-transform: uppercase;
}

.prediction-odds-dialog-heading h2 {
    margin: 5px 0 4px;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.7rem, 5vw, 2.7rem);
    line-height: 0.95;
    text-transform: uppercase;
}

.prediction-odds-dialog-price {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.2rem, 8vw, 4.2rem);
    font-variant-numeric: tabular-nums;
    line-height: 0.8;
    white-space: nowrap;
}

.prediction-odds-dialog-market-note {
    display: inline-block;
    margin: 22px 0 15px;
    padding: 6px 9px 5px;
    transform: rotate(-1.25deg);
    border: 3px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.66rem;
    line-height: 1.1;
    text-transform: uppercase;
}

.prediction-odds-dialog-reason {
    margin: 0;
    color: var(--rfr-ink);
    font-size: clamp(0.93rem, 2vw, 1.05rem);
    line-height: 1.62;
}

@media (prefers-reduced-motion: no-preference) {
    .prediction-odds-dialog[open] .prediction-odds-dialog-card {
        animation: prediction-odds-dialog-in 180ms cubic-bezier(0.2, 0.78, 0.34, 1) both;
    }
}

@keyframes prediction-odds-dialog-in {
    from { opacity: 0; transform: translateY(14px) rotate(-0.35deg) scale(0.97); }
    to { opacity: 1; transform: translateY(0) rotate(-0.35deg) scale(1); }
}

.prediction-field {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    align-items: stretch;
    margin-top: 14px;
    padding: 0;
    border: 2px solid var(--rfr-ink);
    background: rgba(255, 247, 228, 0.76);
    text-align: left;
}

.prediction-field-champion { border-color: var(--rfr-gold-dark); }
.prediction-field-last { border-color: var(--rfr-red-dark); }

.prediction-position-marker {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 4px;
    min-height: 108px;
    padding: 14px 10px;
    border-right: 2px solid currentColor;
    background: var(--rfr-gold);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    line-height: 1;
    text-align: center;
}

.prediction-field-last .prediction-position-marker { background: var(--rfr-ink); color: var(--rfr-paper); }
.prediction-position-marker b { font-size: 1.55rem; }
.prediction-position-marker small { font-size: 0.52rem; letter-spacing: 0.08em; text-transform: uppercase; }

.prediction-field-control {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
    padding: 16px 18px 18px;
}

.prediction-field-label {
    color: var(--rfr-ink) !important;
    font-size: 0.86rem !important;
}

.prediction-field-hint { color: var(--rfr-ink-soft); font-size: 0.74rem; line-height: 1.3; }
.prediction-field select { width: 100%; margin-top: 3px; }
.prediction-slip-controls {
    display: grid;
    align-items: center;
    justify-items: center;
    gap: 12px;
    margin-top: 18px;
    padding: 18px 0 4px;
    border-top: 2px dashed rgba(127, 21, 32, 0.56);
    text-align: center;
}

.challenge-stamp-summary {
    flex-wrap: wrap;
}

.challenge-stamp-summary .challenge-refresh-button {
    margin-left: auto;
    border-color: var(--rfr-gold);
    background: transparent;
    box-shadow: none;
    color: var(--rfr-gold);
}

.challenge-stamp-summary .challenge-refresh-button:hover {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.challenge-passport-tracker {
    position: relative;
    display: grid;
    gap: 20px;
    margin: 24px 0 28px;
    padding: 24px 22px 18px;
    border: 4px solid var(--rfr-ink);
    outline: 3px double var(--rfr-red-dark);
    background:
        linear-gradient(90deg, transparent 49.6%, rgba(44, 23, 20, 0.2) 49.8% 50%, rgba(255, 247, 228, 0.48) 50.2%, transparent 50.4%),
        repeating-linear-gradient(0deg, transparent 0 25px, rgba(82, 44, 32, 0.055) 26px 27px),
        #ead6aa;
    box-shadow: 7px 8px 0 rgba(44, 23, 20, 0.46), inset 0 0 28px rgba(82, 44, 32, 0.12);
}

.challenge-passport-tracker::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 13px;
    bottom: 57px;
    left: 50%;
    border-left: 1px dashed rgba(127, 21, 32, 0.45);
    pointer-events: none;
}

.challenge-passport-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.challenge-passport-stamp {
    --stamp-paper: #f4e4c2;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-width: 0;
    min-height: 228px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    align-items: start;
    gap: 13px;
    padding: 21px 20px 18px;
    border: 1px solid rgba(104, 68, 57, 0.64);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.28), transparent 42%),
        #f4e4c2;
    box-shadow:
        3px 4px 0 rgba(82, 44, 32, 0.18),
        inset 0 0 0 4px rgba(127, 21, 32, 0.08),
        inset 0 0 0 7px rgba(255, 247, 228, 0.42);
    color: var(--rfr-ink);
    text-align: center;
}

.challenge-passport-stamp:nth-child(odd) { transform: rotate(-0.35deg); }
.challenge-passport-stamp:nth-child(even) { transform: rotate(0.35deg); }

.challenge-passport-stamp::before {
    content: attr(data-stamp-number);
    position: absolute;
    z-index: 2;
    top: 11px;
    right: 13px;
    color: rgba(104, 68, 57, 0.52);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
}

.challenge-passport-stamp::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    background:
        radial-gradient(circle at 7px 0, #ead6aa 0 4px, transparent 4.5px) top left / 14px 8px repeat-x,
        radial-gradient(circle at 7px 100%, #ead6aa 0 4px, transparent 4.5px) bottom left / 14px 8px repeat-x,
        radial-gradient(circle at 0 7px, #ead6aa 0 4px, transparent 4.5px) top left / 8px 14px repeat-y,
        radial-gradient(circle at 100% 7px, #ead6aa 0 4px, transparent 4.5px) top right / 8px 14px repeat-y;
    pointer-events: none;
}

.challenge-passport-stamp small {
    padding-inline: 24px;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    letter-spacing: 0.045em;
    line-height: 1.2;
    text-transform: uppercase;
}

.challenge-passport-stamp strong {
    align-self: center;
    font-family: 'Bungee', sans-serif;
    font-size: 0.88rem;
    line-height: 1.24;
    text-transform: uppercase;
}

.challenge-passport-stamp b {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 92px;
    padding: 15px 14px 13px;
    transform: rotate(-4deg);
    border: 6px solid currentColor;
    border-radius: 2px;
    box-shadow:
        inset 0 0 0 4px var(--stamp-paper),
        inset 0 0 0 7px currentColor;
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.3rem, 2.6vw, 1.55rem);
    letter-spacing: 0.065em;
    line-height: 1.05;
    opacity: 0.88;
    text-shadow: 1px 0 currentColor, -0.6px 0.5px currentColor, 0 1px currentColor;
    text-transform: uppercase;
}

.challenge-passport-stamp b::before,
.challenge-submission-status::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: -2px;
    background:
        radial-gradient(ellipse at 12% 24%, var(--stamp-paper) 0 1.8px, transparent 2.4px) 0 0 / 31px 27px,
        radial-gradient(ellipse at 73% 48%, var(--stamp-paper) 0 2.4px, transparent 3px) 9px 7px / 53px 39px,
        radial-gradient(ellipse at 38% 77%, var(--stamp-paper) 0 1.3px, transparent 2px) 4px 13px / 41px 33px;
    opacity: 0.8;
    pointer-events: none;
}

.challenge-passport-stamp b::after,
.challenge-submission-status::after {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    background:
        linear-gradient(94deg, transparent 0 9%, var(--stamp-paper) 9.2% 10.2%, transparent 10.5% 42%, var(--stamp-paper) 42.3% 43.2%, transparent 43.5% 78%, var(--stamp-paper) 78.2% 79%, transparent 79.3%),
        linear-gradient(3deg, transparent 0 17%, var(--stamp-paper) 17.2% 18%, transparent 18.3% 69%, var(--stamp-paper) 69.2% 70%, transparent 70.3%);
    opacity: 0.32;
    pointer-events: none;
}

.challenge-passport-stamp:nth-child(even) b { transform: rotate(3.2deg); }
.challenge-passport-stamp.is-open b { visibility: hidden; }
.challenge-passport-stamp.is-submitted { --stamp-paper: #f4e0ad; background: var(--stamp-paper); }
.challenge-passport-stamp.is-submitted b { color: var(--rfr-gold-dark); }
.challenge-passport-stamp.is-approved { --stamp-paper: #dce8d5; background: var(--stamp-paper); }
.challenge-passport-stamp.is-approved b { color: var(--rfr-green); }
.challenge-passport-stamp.is-declined { --stamp-paper: #f3d4cf; background: var(--stamp-paper); }
.challenge-passport-stamp.is-declined b { color: var(--rfr-red-dark); }

.challenge-passport-controls {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    padding-top: 13px;
    border-top: 2px dashed rgba(127, 21, 32, 0.55);
    color: var(--rfr-ink-soft);
    font-size: 0.8rem;
}

.challenge-passport-controls .challenge-refresh-button {
    flex: 0 0 auto;
    margin-left: auto;
    border-color: var(--rfr-red-dark);
    background: var(--rfr-red-dark);
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.42);
    color: var(--rfr-paper);
}

.challenge-passport-controls .challenge-refresh-button:hover {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.challenge-group {
    position: relative;
    overflow: hidden;
    padding: 24px 22px 26px;
    border: 3px solid var(--rfr-ink);
    background:
        repeating-linear-gradient(0deg, transparent 0 27px, rgba(82, 44, 32, 0.065) 28px 29px),
        #f4e4c2;
    box-shadow: 6px 7px 0 rgba(44, 23, 20, 0.3), inset 12px 0 0 rgba(127, 21, 32, 0.08);
}

.challenge-group:nth-child(even) {
    background:
        repeating-linear-gradient(0deg, transparent 0 27px, rgba(82, 44, 32, 0.065) 28px 29px),
        #eddaaf;
}

.challenge-group::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 9px;
    border-left: 2px dotted rgba(127, 21, 32, 0.45);
    pointer-events: none;
}

.challenge-group > h4,
.challenge-group > p,
.challenge-group > .challenge-tab-list,
.challenge-group > .challenge-list {
    position: relative;
    z-index: 1;
}

.challenge-tab-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 7px;
    margin: 20px 7px -2px;
}

.challenge-tab {
    position: relative;
    min-width: 0;
    min-height: 72px;
    padding: 25px 10px 9px;
    border: 2px solid var(--rfr-ink);
    border-radius: 3px 3px 0 0;
    background:
        linear-gradient(135deg, rgba(255, 247, 228, 0.3), transparent 45%),
        #d8bf88;
    box-shadow: 3px -2px 0 rgba(44, 23, 20, 0.27);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.78rem;
    line-height: 1.25;
    text-transform: uppercase;
}

.challenge-tab::before {
    content: attr(data-verdict);
    position: absolute;
    top: 7px;
    left: 9px;
    right: 9px;
    overflow: hidden;
    color: var(--rfr-ink-soft);
    font-size: 0.52rem;
    letter-spacing: 0.07em;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.challenge-tab:hover { background: var(--rfr-gold); }
.challenge-tab:active { transform: translateY(2px); box-shadow: 1px 0 0 rgba(44, 23, 20, 0.52); }
.challenge-tab[aria-selected="true"] {
    transform: translateY(2px);
    border-color: var(--rfr-red-dark);
    background: var(--rfr-red-dark);
    box-shadow: 1px -2px 0 rgba(44, 23, 20, 0.52);
    color: var(--rfr-paper);
}
.challenge-tab[aria-selected="true"]::before { color: var(--rfr-gold); }
.challenge-tab.is-submitted:not([aria-selected="true"]) { border-color: var(--rfr-gold-dark); }
.challenge-tab.is-approved:not([aria-selected="true"]) { border-color: var(--rfr-green); }
.challenge-tab.is-declined:not([aria-selected="true"]) { border-color: var(--rfr-red-dark); }

.challenge-tab-panel[hidden] { display: none; }

.dashboard-challenge-section .challenge-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}

.dashboard-challenge-section .challenge-card:first-child {
    grid-column: auto;
}

.dashboard-challenge-section .challenge-card {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "challenge-copy challenge-status"
        "challenge-response challenge-response";
    align-items: start;
    column-gap: 24px;
    row-gap: 18px;
    padding: 23px 20px 20px;
    border-width: 3px;
    background:
        repeating-linear-gradient(0deg, transparent 0 25px, rgba(82, 44, 32, 0.07) 26px 27px),
        var(--rfr-paper);
    box-shadow: 5px 6px 0 rgba(44, 23, 20, 0.34);
}

.dashboard-challenge-section .challenge-card[hidden] { display: none; }

.dashboard-challenge-section .challenge-card > .challenge-card-copy { grid-area: challenge-copy; }
.dashboard-challenge-section .challenge-card > .challenge-response { grid-area: challenge-response; }

.dashboard-challenge-section .challenge-card.is-pending {
    border-color: var(--rfr-gold-dark);
    background: #f8ebcf;
}

.dashboard-challenge-section .challenge-card.is-returned {
    border-color: var(--rfr-red);
    background: #f3d4cf;
}

.dashboard-challenge-section .challenge-card.is-stamped {
    border-color: var(--rfr-green);
    background: #dce8d5;
}

.dashboard-challenge-section .challenge-card.is-stamped::after {
    display: none;
}

.challenge-submission-status {
    --stamp-paper: var(--rfr-paper);
    position: relative;
    isolation: isolate;
    overflow: hidden;
    grid-area: challenge-status;
    align-self: center;
    justify-self: end;
    min-width: 156px;
    min-height: 72px;
    display: grid;
    place-items: center;
    width: fit-content;
    margin: 0 !important;
    padding: 14px 13px 12px;
    transform: rotate(-3deg);
    border: 6px solid currentColor;
    border-radius: 2px;
    box-shadow:
        inset 0 0 0 4px var(--stamp-paper),
        inset 0 0 0 7px currentColor;
    font-family: 'Bungee', sans-serif;
    font-size: 1.1rem !important;
    letter-spacing: 0.06em;
    line-height: 1.1 !important;
    opacity: 0.88;
    text-align: center;
    text-shadow: 1px 0 currentColor, -0.6px 0.5px currentColor, 0 1px currentColor;
    text-transform: uppercase;
}

.challenge-submission-status.is-empty { visibility: hidden; }
.challenge-submission-status.is-pending { color: var(--rfr-gold-dark); }
.challenge-submission-status.is-approved { color: var(--rfr-green); }
.challenge-submission-status.is-rejected { color: var(--rfr-red-dark); }
.challenge-card.is-pending .challenge-submission-status { --stamp-paper: #f8ebcf; transform: rotate(2.5deg); }
.challenge-card.is-returned .challenge-submission-status { --stamp-paper: #f3d4cf; }
.challenge-card.is-stamped .challenge-submission-status { --stamp-paper: #dce8d5; transform: rotate(2deg); }

.challenge-evidence-form {
    display: grid;
    gap: 8px;
}

.challenge-response {
    min-block-size: 355px;
}

.challenge-evidence-form textarea {
    box-sizing: border-box;
    block-size: calc(16.2em + 24px);
    min-block-size: calc(16.2em + 24px);
    max-block-size: calc(16.2em + 24px);
    overflow-y: auto;
    resize: none;
    line-height: 1.35;
}

.challenge-submit-button { justify-self: end; }

.challenge-linked-record {
    position: relative;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 14px;
    padding: 19px;
    border: 2px dashed rgba(127, 21, 32, 0.7);
    background: #fff7e6;
    box-shadow: inset 0 0 0 5px rgba(216, 191, 136, 0.28);
}

.challenge-linked-record::before,
.challenge-linked-record::after {
    content: "";
    position: absolute;
    top: 16px;
    bottom: 16px;
    width: 0;
    border-left: 4px dotted var(--rfr-red-dark);
    opacity: 0.34;
    pointer-events: none;
}

.challenge-linked-record::before { left: -3px; }
.challenge-linked-record::after { right: -3px; }

.challenge-linked-record > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid rgba(127, 21, 32, 0.44);
}

.challenge-linked-record h6 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(0.9rem, 1.6vw, 1.15rem);
    line-height: 1.15;
    text-transform: uppercase;
}

.challenge-linked-record header span {
    flex: 0 0 auto;
    padding: 6px 8px;
    border: 2px solid var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.52rem;
    line-height: 1.15;
    text-align: center;
    text-transform: uppercase;
    transform: rotate(1.5deg);
}

.challenge-linked-record dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
}

.challenge-linked-record dl > div {
    min-width: 0;
    padding: 13px 14px;
    border: 2px solid rgba(44, 23, 20, 0.78);
    background: #f2dfb7;
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.18);
}

.challenge-linked-record dt {
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.challenge-linked-record dd {
    overflow-wrap: anywhere;
    margin: 7px 0 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.12rem, 2.5vw, 1.65rem);
    line-height: 1.1;
}

.challenge-linked-record[data-record-type="score"] dd {
    font-size: clamp(1.55rem, 3.8vw, 2.4rem);
}

.challenge-linked-record .challenge-linked-note {
    align-self: center;
    margin: 0;
    color: var(--rfr-ink-soft);
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.45;
}

.challenge-linked-action {
    justify-self: end;
    padding: 8px 10px;
    border: 2px solid var(--rfr-ink);
    background: var(--rfr-gold);
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.32);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
}

.challenge-linked-action:hover { background: var(--rfr-paper); }
.challenge-linked-record.is-unavailable { border-color: rgba(82, 44, 32, 0.45); }

/* Fan mail post room */
.backstage-sign {
    position: relative;
}

.fan-mail-launcher {
    position: relative;
    flex: 0 0 auto;
    align-self: center;
    width: 72px;
    height: 58px;
    margin-left: auto;
    padding: 0;
    border: 3px solid var(--rfr-ink);
    border-radius: 3px;
    background:
        linear-gradient(145deg, rgba(255, 247, 228, 0.3), transparent 46%),
        var(--rfr-gold);
    box-shadow: 4px 4px 0 rgba(30, 23, 25, 0.72);
    color: var(--rfr-red-dark);
}

.fan-mail-launcher::before,
.fan-mail-launcher::after {
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    height: 2px;
    background: rgba(127, 21, 32, 0.42);
    pointer-events: none;
}

.fan-mail-launcher::before { top: 8px; }
.fan-mail-launcher::after { bottom: 8px; }
.fan-mail-launcher:hover { background-color: var(--rfr-paper); }
.fan-mail-launcher:focus-visible { outline: 4px solid var(--rfr-paper); outline-offset: 4px; }

.fan-mail-launcher-envelope {
    position: relative;
    display: block;
    width: 46px;
    height: 31px;
    margin: auto;
    overflow: hidden;
    border: 3px solid var(--rfr-ink);
    border-radius: 2px;
    background: var(--rfr-paper);
    box-shadow: 2px 2px 0 var(--rfr-red-dark);
    transform: rotate(-2deg);
}

.fan-mail-launcher-envelope::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -18px;
    width: 32px;
    height: 32px;
    border: 2px solid var(--rfr-ink);
    background: #ead9ae;
    transform: translateX(-50%) rotate(45deg);
}

.fan-mail-launcher-envelope::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 18px;
    width: 8px;
    aspect-ratio: 1;
    border: 2px solid var(--rfr-ink);
    border-radius: 50%;
    background: var(--rfr-red-bright);
    transform: translate(-50%, -50%);
}

.fan-mail-launcher-badge {
    position: absolute;
    top: -13px;
    right: -14px;
    min-width: 39px;
    min-height: 30px;
    display: grid;
    place-items: center;
    padding: 3px 6px;
    border: 2px solid var(--rfr-paper);
    border-radius: 50%;
    background: var(--rfr-red-bright);
    box-shadow: 2px 2px 0 var(--rfr-ink);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: 0.67rem;
    line-height: 1;
}

.fan-mail-dialog {
    box-sizing: border-box;
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(var(--page-width), calc(100% - 40px));
    height: min(1290px, 80dvh);
    max-width: none;
    max-height: none;
    overflow: hidden;
    padding: 0;
    border: 7px double var(--rfr-gold);
    border-radius: 3px;
    outline: 3px solid var(--rfr-ink);
    background:
        repeating-linear-gradient(0deg, transparent 0 27px, rgba(82, 44, 32, 0.055) 28px 29px),
        var(--rfr-paper-deep);
    box-shadow: 13px 14px 0 rgba(30, 23, 25, 0.82);
    color: var(--rfr-ink);
}

.fan-mail-dialog[open] {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.fan-mail-dialog::backdrop {
    background: rgba(25, 10, 12, 0.82);
    backdrop-filter: blur(5px);
}

.fan-mail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 118px;
    padding: 19px 24px 18px 30px;
    border-bottom: 5px double var(--rfr-gold);
    background:
        linear-gradient(90deg, transparent 0 45%, rgba(255, 247, 228, 0.06) 45% 46%, transparent 46% 100%),
        var(--rfr-red-dark);
    color: var(--rfr-paper);
}

.fan-mail-heading-copy { min-width: 0; }
.fan-mail-office-label {
    display: block;
    margin-bottom: 3px;
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fan-mail-header h2 {
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2rem, 5vw, 3.35rem);
    line-height: 0.95;
    text-transform: uppercase;
}

.fan-mail-header p {
    margin: 7px 0 0;
    color: rgba(255, 247, 228, 0.74);
    font-size: 0.84rem;
}

.fan-mail-close {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    padding: 0 0 4px;
    border: 3px solid var(--rfr-gold);
    border-radius: 50%;
    background: transparent;
    color: var(--rfr-paper);
    font-size: 2rem;
    line-height: 1;
}

.fan-mail-close:hover { background: var(--rfr-gold); color: var(--rfr-ink); }
.fan-mail-close:focus-visible,
.fan-mail-page-button:focus-visible,
.fan-mail-reader-back:focus-visible,
.fan-mail-row:focus-visible { outline: 4px solid var(--rfr-gold); outline-offset: -4px; }

.fan-mail-column-headings {
    display: grid;
    grid-template-columns: minmax(150px, 0.55fr) minmax(0, 1.45fr) 78px;
    gap: 18px;
    padding: 10px 24px 9px;
    border-bottom: 2px solid var(--rfr-ink);
    background: #d3b878;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fan-mail-column-headings span:last-child { text-align: right; }

.fan-mail-list {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgba(255, 247, 228, 0.58);
    scrollbar-color: var(--rfr-red-dark) #d3b878;
}

.fan-mail-row {
    width: 100%;
    min-height: 76px;
    display: grid;
    grid-template-columns: minmax(150px, 0.55fr) minmax(0, 1.45fr) 78px;
    align-items: center;
    gap: 18px;
    padding: 13px 24px 12px;
    border: 0;
    border-bottom: 1px solid rgba(104, 68, 57, 0.38);
    border-radius: 0;
    background: rgba(255, 247, 228, 0.92);
    color: var(--rfr-ink);
    font: inherit;
    text-align: left;
}

.fan-mail-row:nth-child(even) { background: rgba(240, 215, 159, 0.72); }
.fan-mail-row:hover { background: #f3d493; }
.fan-mail-row.is-read { background: rgba(234, 214, 170, 0.58); color: var(--rfr-ink-soft); }
.fan-mail-row.is-read .fan-mail-row-sender,
.fan-mail-row.is-read .fan-mail-row-subject { font-weight: 500; }

.fan-mail-row-sender,
.fan-mail-row-copy,
.fan-mail-row-subject,
.fan-mail-row-preview { min-width: 0; }

.fan-mail-row-sender {
    overflow: hidden;
    font-size: 0.78rem;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fan-mail-row-copy { display: grid; gap: 3px; }
.fan-mail-row-subject,
.fan-mail-row-preview {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fan-mail-row-subject { color: var(--rfr-red-dark); font-size: 0.84rem; }
.fan-mail-row-preview { color: var(--rfr-ink-soft); font-size: 0.76rem; }
.fan-mail-row-date { color: var(--rfr-ink-soft); font-size: 0.68rem; text-align: right; }

.fan-mail-pagination {
    min-height: 70px;
    display: grid;
    grid-template-columns: minmax(120px, auto) 1fr minmax(120px, auto);
    align-items: center;
    gap: 18px;
    padding: 11px 18px;
    border-top: 3px solid var(--rfr-ink);
    background: #d3b878;
}

.fan-mail-page-button,
.fan-mail-reader-back {
    min-height: 42px;
    padding: 8px 13px;
    border: 2px solid var(--rfr-ink);
    border-radius: 2px;
    background: var(--rfr-paper);
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.34);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    text-transform: uppercase;
}

.fan-mail-page-button:hover,
.fan-mail-reader-back:hover { background: var(--rfr-red-dark); color: var(--rfr-paper); }
.fan-mail-page-button:disabled { opacity: 0.42; translate: none; }
.fan-mail-page-status {
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.65rem;
    text-align: center;
    text-transform: uppercase;
}

.fan-mail-reader {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    background:
        radial-gradient(circle at 50% 0, rgba(224, 170, 62, 0.18), transparent 36%),
        var(--rfr-night);
    opacity: 0;
}

.fan-mail-reader[hidden] { display: none; }
.fan-mail-reader.is-open { opacity: 1; }

.fan-mail-reader-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 76px;
    padding: 14px 22px;
    border-bottom: 4px double var(--rfr-gold);
    background: var(--rfr-night);
    color: var(--rfr-paper);
}

.fan-mail-reader-position {
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.64rem;
    text-transform: uppercase;
}

.fan-mail-letter-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    min-height: 0;
    overflow-y: auto;
    padding: 0;
    background: #f1ddb0;
}

.fan-mail-letter {
    width: 100%;
    min-height: 100%;
    margin: 0;
    border: 0;
    background: #fffaf0;
    box-shadow: inset 0 5px 0 var(--rfr-gold), inset 0 9px 0 var(--rfr-red-dark);
    transform: none;
}

.fan-mail-message-header {
    padding: clamp(30px, 4vw, 48px) clamp(30px, 5vw, 64px) 23px;
    border-bottom: 1px solid rgba(104, 68, 57, 0.34);
    background:
        linear-gradient(90deg, rgba(255, 247, 228, 0.42), transparent 52%),
        #efd9aa;
}

.fan-mail-message-kicker {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}

.fan-mail-letter-stamp {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    min-width: 70px;
    min-height: 34px;
    padding: 5px 10px;
    border: 2px solid var(--rfr-red-dark);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    line-height: 1;
}

.fan-mail-letter-label {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fan-mail-letter h3 {
    max-width: 900px;
    margin: 0;
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.2rem, 2.1vw, 1.8rem);
    line-height: 1.18;
    text-transform: uppercase;
}

.fan-mail-letter-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px 32px;
    margin: 22px 0 0;
    padding: 15px 0 0;
    border-top: 1px solid rgba(104, 68, 57, 0.32);
}

.fan-mail-letter-meta div { display: grid; min-width: 0; gap: 2px; }
.fan-mail-letter-meta div:last-child { text-align: right; }
.fan-mail-letter-meta dt {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.55rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.fan-mail-letter-meta dd { min-width: 0; margin: 0; color: var(--rfr-ink-soft); font-size: 0.86rem; line-height: 1.35; }

.fan-mail-letter-body {
    max-width: 84ch;
    padding: clamp(28px, 4vw, 48px) clamp(30px, 5vw, 64px) clamp(44px, 6vw, 72px);
    color: var(--rfr-ink);
    font-family: 'Baloo 2', sans-serif;
    font-size: 1.02rem;
    line-height: 1.62;
}

.fan-mail-letter-body p { margin: 0 0 1.05em; }
.fan-mail-letter-body p:last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: no-preference) {
    .fan-mail-dialog[open] { animation: fan-mail-arrive 240ms cubic-bezier(.16, 1, .3, 1); }
    .fan-mail-reader { transition: opacity 180ms ease; }
    .fan-mail-reader.is-open .fan-mail-letter { animation: fan-letter-arrive 280ms cubic-bezier(.16, 1, .3, 1); }
}

@keyframes fan-mail-arrive {
    from { opacity: 0; transform: translateY(20px) rotate(-0.4deg) scale(0.97); }
    to { opacity: 1; transform: none; }
}

@keyframes fan-letter-arrive {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 760px) {
    .fan-mail-dialog {
        width: calc(100% - 12px);
        height: 80dvh;
        border-width: 5px;
        outline-width: 2px;
        box-shadow: 6px 7px 0 rgba(30, 23, 25, 0.82);
    }

    .fan-mail-header { min-height: 98px; padding: 15px 14px 14px 18px; }
    .fan-mail-header h2 { font-size: clamp(1.85rem, 9vw, 2.7rem); }
    .fan-mail-close { width: 40px; height: 40px; }
    .fan-mail-column-headings {
        grid-template-columns: minmax(0, 1fr) 58px;
        gap: 10px;
        padding-inline: 13px;
    }
    .fan-mail-column-headings span:first-child { display: none; }
    .fan-mail-column-headings span:last-child { text-align: right; }
    .fan-mail-row {
        min-height: 82px;
        grid-template-columns: minmax(0, 1fr) 58px;
        gap: 10px;
        padding: 11px 13px;
    }
    .fan-mail-row-sender { grid-column: 1; font-size: 0.7rem; }
    .fan-mail-row-copy { grid-column: 1; }
    .fan-mail-row-date { grid-column: 2; grid-row: 1 / span 2; }
    .fan-mail-row-preview { display: none; }
    .fan-mail-pagination { grid-template-columns: 1fr 1fr; gap: 8px; padding-inline: 10px; }
    .fan-mail-page-status { grid-column: 1 / -1; grid-row: 1; }
    .fan-mail-page-button { grid-row: 2; }
    .fan-mail-reader-bar { min-height: 66px; padding: 10px 12px; }
    .fan-mail-reader-position { font-size: 0.52rem; }
    .fan-mail-message-header { padding: 24px 20px 18px; }
    .fan-mail-message-kicker { margin-bottom: 10px; }
    .fan-mail-letter-stamp { min-width: 58px; min-height: 30px; font-size: 0.55rem; }
    .fan-mail-letter h3 { max-width: none; font-size: clamp(1.05rem, 4.7vw, 1.45rem); }
    .fan-mail-letter-meta { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 17px; }
    .fan-mail-letter-meta div:last-child { text-align: left; }
    .fan-mail-letter-body { max-width: none; padding: 24px 20px 44px; font-size: 0.95rem; line-height: 1.58; }
}

@media (max-width: 620px) {
    .backstage-sign { padding-right: 92px; }
    .fan-mail-launcher {
        position: absolute;
        top: 18px;
        right: 18px;
        width: 60px;
        height: 50px;
        margin: 0;
    }
    .fan-mail-launcher-envelope { width: 39px; height: 27px; }
    .fan-mail-launcher-envelope::before { top: -17px; width: 29px; height: 29px; }
    .fan-mail-launcher-envelope::after { top: 16px; width: 7px; }
    .fan-mail-launcher-badge { top: -10px; right: -10px; min-width: 34px; min-height: 27px; font-size: 0.58rem; }
}

/* Public scouting office */
.scouting-page {
    --scouting-sheet-height: clamp(720px, 77dvh, 840px);
}

.scouting-page-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 126px 150px;
    align-items: center;
    gap: 20px;
}

.scouting-header-seal {
    grid-column: 3;
    display: grid;
    place-items: center;
    min-height: 118px;
    padding: 14px;
    border: 6px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    transform: rotate(2deg);
}

.scouting-header-seal span {
    margin-bottom: 8px;
    color: var(--rfr-gold-dark);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
}

.scouting-header-seal strong {
    font-size: 1.35rem;
}

.scouting-blacklight {
    position: relative;
    z-index: 4;
    grid-column: 2;
    width: 126px;
    min-height: 118px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--rfr-ink);
    cursor: default;
    touch-action: none;
    user-select: none;
}

.scouting-blacklight:focus-visible {
    outline: 0;
}

.scouting-blacklight:focus-visible .scouting-blacklight-torch {
    filter: drop-shadow(4px 5px 2px rgba(44, 23, 20, 0.28)) drop-shadow(0 0 2px rgba(74, 61, 80, 0.42));
}

.scouting-blacklight.has-moved {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 81;
    grid-column: auto;
    margin: 0;
    transform: translate3d(var(--blacklight-x), var(--blacklight-y), 0);
}

.scouting-blacklight.is-dragging {
    cursor: default;
}

.scouting-blacklight-torch {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 132px;
    height: 56px;
    filter: drop-shadow(4px 5px 2px rgba(44, 23, 20, 0.28));
    transform: translate(-50%, -50%) rotate(122deg);
    transform-origin: 50% 50%;
    transition: filter 100ms ease;
}

.scouting-blacklight-torch::after {
    content: "";
    position: absolute;
    top: 19px;
    left: 0;
    width: 13px;
    height: 16px;
    border: 2px solid #242526;
    border-right: 0;
    border-radius: 8px 0 0 8px;
    background: #414345;
}

.scouting-blacklight-barrel {
    position: absolute;
    top: 14px;
    left: 8px;
    width: 89px;
    height: 28px;
    border: 3px solid #202122;
    border-radius: 12px 3px 3px 12px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.17), transparent 28%, rgba(0, 0, 0, 0.26) 78%),
        linear-gradient(90deg, #4f5253, #292b2c 72%, #1f2021);
    box-shadow:
        inset 0 2px 1px rgba(255, 255, 255, 0.2),
        inset 0 -3px 2px rgba(0, 0, 0, 0.34);
}

.scouting-blacklight-barrel::before {
    content: "";
    position: absolute;
    inset: 3px 26px 3px 10px;
    border-radius: 6px;
    background: repeating-linear-gradient(90deg, transparent 0 4px, rgba(8, 9, 9, 0.5) 4px 7px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.scouting-blacklight-barrel::after {
    content: "";
    position: absolute;
    top: 1px;
    right: -10px;
    width: 11px;
    height: 26px;
    border: 2px solid #202122;
    border-radius: 2px;
    background: linear-gradient(90deg, #242627, #5b5e5f 55%, #2b2d2e);
}

.scouting-blacklight-lens {
    position: absolute;
    top: 1px;
    right: -1px;
    width: 42px;
    height: 53px;
    border: 3px solid #202122;
    border-radius: 4px 16px 16px 4px;
    background: linear-gradient(90deg, #242627, #515455 52%, #303233);
    box-shadow:
        inset 0 2px 1px rgba(255, 255, 255, 0.18),
        inset -5px 0 3px rgba(0, 0, 0, 0.28);
}

.scouting-blacklight-lens::before {
    content: "";
    position: absolute;
    top: 4px;
    right: 3px;
    width: 12px;
    height: 39px;
    border: 2px solid #1f2021;
    border-radius: 50%;
    background: linear-gradient(90deg, #4f5253, #8b8e8f 70%, #b7b9b7);
}

.scouting-blacklight-lens::after {
    content: "";
    position: absolute;
    top: 10px;
    right: 6px;
    width: 6px;
    height: 27px;
    border-radius: 50%;
    background: rgba(197, 197, 193, 0.78);
}

.scouting-blacklight-switch {
    position: absolute;
    bottom: 6px;
    left: 62px;
    width: 17px;
    height: 8px;
    border: 2px solid #202122;
    border-radius: 2px 2px 5px 5px;
    background: linear-gradient(#676a6b, #303233);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.scouting-blacklight-emitter {
    position: absolute;
    top: 50%;
    right: -4px;
    width: 2px;
    height: 2px;
    transform: translateY(-50%);
    pointer-events: none;
}

.scouting-blacklight.is-shining .scouting-blacklight-lens {
    background: linear-gradient(90deg, #282a2b, #57515c 52%, #38303e);
}

.scouting-blacklight-beam {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 80;
    width: clamp(280px, 28vw, 370px);
    height: clamp(280px, 27vw, 355px);
    opacity: 0;
    pointer-events: none;
    transform: translate3d(calc(var(--blacklight-beam-x) - 100%), var(--blacklight-beam-y), 0);
    transform-origin: right top;
    transition: opacity 90ms ease;
}

.scouting-blacklight-beam::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 44% 79%, rgba(173, 125, 202, 0.24), rgba(130, 78, 165, 0.12) 39%, transparent 72%),
        linear-gradient(148deg, rgba(197, 170, 216, 0.04) 5%, rgba(143, 98, 177, 0.1) 43%, rgba(105, 57, 143, 0.2) 100%);
    clip-path: polygon(
        98.5% 0,
        100% 3%,
        70% 86%,
        18% 86%,
        17.95% 85.25%,
        18.17% 84.5%,
        18.69% 83.5%,
        19.51% 82.48%
    );
    /* Punch the pool out of the cone so the two translucent layers meet without stacking. */
    -webkit-mask-image: radial-gradient(ellipse 26% 10.1% at 44% 86%, transparent 98.5%, #000 100%);
    mask-image: radial-gradient(ellipse 26% 10.1% at 44% 86%, transparent 98.5%, #000 100%);
    pointer-events: none;
}

.scouting-blacklight-pool {
    position: absolute;
    bottom: 4.5%;
    left: 18%;
    width: 52%;
    height: 19%;
    border: 2px solid rgba(116, 65, 151, 0.27);
    border-radius: 50%;
    background: radial-gradient(
        ellipse at center,
        rgba(228, 210, 237, 0.23) 0 18%,
        rgba(181, 139, 207, 0.34) 39%,
        rgba(122, 72, 158, 0.26) 62%,
        rgba(92, 45, 126, 0.12) 78%,
        transparent 100%
    );
    box-shadow:
        inset 0 0 18px rgba(106, 57, 142, 0.24),
        inset 0 -3px 8px rgba(87, 40, 120, 0.12),
        0 0 12px rgba(111, 62, 148, 0.16);
    pointer-events: none;
}

.scouting-blacklight-beam.is-active {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .scouting-blacklight-torch,
    .scouting-blacklight-beam,
    .scouting-secret-message,
    .scouting-cover-detective {
        transition: none;
    }
}

.scouting-office {
    position: relative;
    margin-top: 42px;
}

.scouting-office-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding: 22px 26px;
    border: 3px solid var(--rfr-ink);
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    box-shadow: 7px 7px 0 var(--rfr-gold-dark);
}

.scouting-office-heading h2 {
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
    text-transform: uppercase;
}

.scouting-office-heading p {
    max-width: 70ch;
    margin: 5px 0 0;
    color: rgba(255, 247, 228, 0.8);
    line-height: 1.45;
}

.scouting-office-status {
    flex: 0 0 auto;
    padding: 8px 11px;
    border: 3px double var(--rfr-gold);
    color: var(--rfr-gold);
    font-family: 'Bungee', sans-serif;
    font-size: 0.65rem;
    text-transform: uppercase;
    transform: rotate(-1deg);
}

.scouting-player-tabs {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: end;
    gap: 8px;
    min-height: 54px;
    padding: 0 18px;
}

.scouting-player-tab {
    min-width: 0;
    min-height: 52px;
    padding: 10px 9px 12px;
    border: 3px solid var(--rfr-ink);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: #c69b4f;
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(0.58rem, 1vw, 0.76rem);
    line-height: 1.1;
    text-transform: uppercase;
    transform: translateY(3px);
    transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.scouting-player-tab:hover {
    background: #e7cb91;
}

.scouting-player-tab[aria-selected="true"] {
    position: relative;
    z-index: 2;
    background: #f4e5c4;
    color: var(--rfr-red-dark);
    transform: translateY(0);
}

.scouting-player-tab:focus-visible,
.scouting-close-file:focus-visible {
    outline: 3px solid var(--rfr-red-dark);
    outline-offset: 2px;
}

.scouting-tabs-loading {
    grid-column: 1 / -1;
    align-self: center;
    color: var(--rfr-ink-soft);
    font-weight: 700;
    text-align: center;
}

.scouting-file-stage {
    position: relative;
    height: var(--scouting-sheet-height);
    border: 3px solid var(--rfr-ink);
    background: #d8b56d;
    box-shadow: 10px 10px 0 rgba(44, 23, 20, 0.38);
}

.scouting-public-cover,
.scouting-player-sheet {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.scouting-public-cover {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    gap: 34px;
    padding: clamp(42px, 7vw, 82px);
    overflow: hidden;
    background:
        linear-gradient(rgba(44, 23, 20, 0.035) 1px, transparent 1px) 0 0 / 100% 25px,
        #d8b56d;
}

.scouting-public-cover::before {
    content: "";
    position: absolute;
    inset: 22px;
    border: 2px solid rgba(44, 23, 20, 0.34);
    pointer-events: none;
}

.scouting-cover-copy {
    position: relative;
    z-index: 1;
    max-width: 720px;
}

.scouting-cover-copy > p {
    margin: 0 0 15px;
    color: rgba(44, 23, 20, 0.72);
    font-family: 'Bungee', sans-serif;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.scouting-cover-copy h2 {
    width: fit-content;
    margin: 0;
    padding: 12px 17px;
    border: 7px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2rem, 5vw, 4.5rem);
    line-height: 0.95;
    text-transform: uppercase;
    transform: rotate(-1deg);
}

.scouting-cover-copy > span {
    display: block;
    max-width: 56ch;
    margin-top: 22px;
    color: var(--rfr-ink);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.55;
}

.scouting-cover-detective {
    --secret-light-x: -9999px;
    --secret-light-y: -9999px;
    --secret-light-radius-x: 1px;
    --secret-light-radius-y: 1px;
    position: relative;
    z-index: 1;
    display: block;
    width: clamp(270px, 34vw, 440px);
    height: auto;
    margin: clamp(90px, 11vw, 165px) 8% 0 auto;
    opacity: 0;
    pointer-events: none;
    transition: opacity 80ms ease;
    -webkit-mask-image: radial-gradient(
        ellipse var(--secret-light-radius-x) var(--secret-light-radius-y)
        at var(--secret-light-x) var(--secret-light-y),
        #000 0 48%,
        rgba(0, 0, 0, 0.9) 67%,
        transparent 100%
    );
    mask-image: radial-gradient(
        ellipse var(--secret-light-radius-x) var(--secret-light-radius-y)
        at var(--secret-light-x) var(--secret-light-y),
        #000 0 48%,
        rgba(0, 0, 0, 0.9) 67%,
        transparent 100%
    );
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.scouting-cover-detective.is-revealed {
    opacity: 0.88;
}

.scouting-cover-stamp {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    min-height: 165px;
    padding: 18px;
    border: 7px double var(--rfr-green);
    color: var(--rfr-green);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.4rem, 2.7vw, 2.2rem);
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
    transform: rotate(4deg);
}

.scouting-cover-instruction {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    margin: 0;
    padding-top: 19px;
    border-top: 2px solid rgba(44, 23, 20, 0.42);
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
    text-align: center;
    text-transform: uppercase;
}

.scouting-public-cover[hidden],
.scouting-player-sheet[hidden] {
    display: none;
}

.scouting-player-sheet {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    background:
        linear-gradient(90deg, transparent 0 35px, rgba(185, 31, 46, 0.14) 35px 37px, transparent 37px),
        repeating-linear-gradient(0deg, rgba(44, 23, 20, 0.052) 0 1px, transparent 1px 29px),
        #f4e5c4;
}

.scouting-sheet-header {
    position: relative;
    display: grid;
    grid-template-columns: 136px minmax(0, 1fr) 140px;
    align-items: center;
    gap: 24px;
    min-height: 178px;
    padding: 22px 172px 22px 28px;
    border-bottom: 6px double var(--rfr-red-dark);
    background: rgba(255, 247, 228, 0.76);
}

.scouting-sheet-portrait {
    width: 136px;
    height: 136px;
    padding: 6px;
    border: 3px solid var(--rfr-ink);
    background: var(--rfr-paper);
    box-shadow: 5px 5px 0 rgba(44, 23, 20, 0.3);
    transform: rotate(-1deg);
}

.scouting-sheet-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scouting-sheet-identity {
    min-width: 0;
}

.scouting-sheet-classification {
    margin: 0 0 7px;
    color: var(--rfr-gold-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.64rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.scouting-sheet-name {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(1.45rem, 3vw, 2.65rem);
    line-height: 1.05;
    text-transform: uppercase;
}

.scouting-sheet-summary {
    max-width: 65ch;
    margin: 11px 0 0;
    color: var(--rfr-ink-soft);
    line-height: 1.45;
}

.scouting-sheet-rank {
    display: grid;
    place-items: center;
    min-height: 104px;
    padding: 12px;
    border: 5px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    text-align: center;
    transform: rotate(2deg);
}

.scouting-sheet-rank strong {
    font-family: 'Bungee', sans-serif;
    font-size: 2.15rem;
    line-height: 1;
}

.scouting-sheet-rank span {
    margin-top: 5px;
    font-family: 'Bungee', sans-serif;
    font-size: 0.55rem;
    text-transform: uppercase;
}

.scouting-close-file {
    position: absolute;
    top: 18px;
    right: 20px;
    min-height: 38px;
    padding: 7px 10px;
    border: 2px solid var(--rfr-ink);
    border-radius: 2px;
    background: var(--rfr-red-dark);
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: 0.58rem;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 rgba(44, 23, 20, 0.65);
}

.scouting-close-file:hover {
    background: var(--rfr-gold);
    color: var(--rfr-ink);
}

.scouting-sheet-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
    gap: 26px;
    min-height: 0;
    padding: 26px 28px 32px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: var(--rfr-gold-dark) rgba(44, 23, 20, 0.12);
}

.scouting-data-column,
.scouting-notes-column {
    min-width: 0;
}

.scouting-data-column > h3,
.scouting-notes-column > h3 {
    margin: 0 0 15px;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 1rem;
    text-transform: uppercase;
}

.scouting-fact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.scouting-fact {
    display: grid;
    align-content: start;
    gap: 5px;
    min-height: 88px;
    padding: 12px;
    border: 2px solid rgba(44, 23, 20, 0.58);
    background: rgba(255, 247, 228, 0.76);
}

.scouting-fact:nth-child(even) {
    background: rgba(224, 170, 62, 0.17);
}

.scouting-fact-label,
.scouting-record-label {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.55rem;
    line-height: 1.25;
    text-transform: uppercase;
}

.scouting-fact-value {
    overflow-wrap: anywhere;
    color: var(--rfr-ink);
    font-size: 1.05rem;
    line-height: 1.18;
}

.scouting-record-list {
    display: grid;
    gap: 9px;
    margin-top: 13px;
}

.scouting-record {
    display: grid;
    grid-template-columns: minmax(190px, 0.68fr) minmax(0, 1fr);
    gap: 15px;
    padding: 11px 13px;
    border-left: 5px solid var(--rfr-gold-dark);
    background: rgba(255, 247, 228, 0.7);
}

.scouting-record > div {
    display: grid;
    align-content: start;
    gap: 4px;
}

.scouting-record-value {
    color: var(--rfr-ink);
    font-size: 0.82rem;
    line-height: 1.3;
}

.scouting-record-detail {
    margin: 0;
    color: var(--rfr-ink-soft);
    font-size: 0.8rem;
    line-height: 1.42;
}

.scouting-notes-intro {
    margin: 0 0 15px;
    padding-bottom: 12px;
    border-bottom: 3px double rgba(127, 21, 32, 0.46);
    color: var(--rfr-ink-soft);
    line-height: 1.45;
}

.scouting-public-note-list {
    display: grid;
    gap: 10px;
}

.scouting-public-note {
    padding: 16px 17px;
    border-left: 6px solid var(--rfr-red-dark);
    background: rgba(255, 247, 228, 0.76);
}

.scouting-public-note:nth-child(even) {
    border-left-color: var(--rfr-gold-dark);
    background: rgba(224, 170, 62, 0.16);
}

.scouting-public-note h4 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.78rem;
    line-height: 1.3;
    text-transform: uppercase;
}

.scouting-public-note p,
.scouting-empty-note {
    margin: 7px 0 0;
    color: var(--rfr-ink);
    line-height: 1.52;
}

@media (max-width: 860px) {
    .scouting-page {
        --scouting-sheet-height: 760px;
    }

    .scouting-page-header {
        grid-template-columns: minmax(0, 1fr) 104px 112px;
        gap: 14px;
    }

    .scouting-header-seal {
        min-height: 96px;
    }

    .scouting-blacklight {
        width: 104px;
        min-height: 108px;
    }

    .scouting-blacklight-torch {
        transform: translate(-50%, -50%) rotate(122deg) scale(0.88);
    }

    .scouting-office-heading {
        align-items: flex-start;
    }

    .scouting-player-tabs {
        display: flex;
        gap: 6px;
        padding: 0 8px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .scouting-player-tab {
        flex: 0 0 118px;
        font-size: 0.66rem;
    }

    .scouting-sheet-header {
        grid-template-columns: 104px minmax(0, 1fr) 104px;
        gap: 16px;
        min-height: 158px;
        padding: 18px 142px 18px 22px;
    }

    .scouting-sheet-portrait {
        width: 104px;
        height: 104px;
    }

    .scouting-sheet-rank {
        min-height: 88px;
    }

    .scouting-sheet-columns {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .scouting-page-header {
        grid-template-columns: minmax(0, 1fr) 88px;
    }

    .scouting-header-seal {
        display: none;
    }

    .scouting-blacklight {
        grid-column: 2;
        width: 88px;
        min-height: 94px;
    }

    .scouting-blacklight-torch {
        transform: translate(-50%, -50%) rotate(122deg) scale(0.76);
    }

    .scouting-blacklight-beam {
        width: clamp(235px, 82vw, 290px);
        height: clamp(245px, 86vw, 305px);
    }

    .scouting-office {
        margin-top: 30px;
    }

    .scouting-office-heading {
        display: grid;
        gap: 14px;
        padding: 18px;
    }

    .scouting-office-status {
        justify-self: start;
    }

    .scouting-public-cover {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr) auto auto;
        align-content: center;
        gap: 22px;
        padding: 38px 24px;
    }

    .scouting-cover-stamp {
        justify-self: start;
        min-width: 132px;
        min-height: 116px;
        font-size: 1.25rem;
    }

    .scouting-cover-copy h2 {
        padding: 10px 12px;
        border-width: 5px;
        font-size: clamp(1.85rem, 10vw, 3rem);
    }

    .scouting-sheet-header {
        grid-template-columns: 78px minmax(0, 1fr);
        grid-template-rows: auto auto;
        align-items: start;
        min-height: 210px;
        padding: 54px 16px 17px;
    }

    .scouting-sheet-portrait {
        width: 78px;
        height: 78px;
        padding: 4px;
    }

    .scouting-sheet-name {
        font-size: clamp(1.2rem, 6vw, 1.65rem);
    }

    .scouting-sheet-summary {
        font-size: 0.82rem;
    }

    .scouting-sheet-rank {
        grid-column: 1 / -1;
        grid-template-columns: auto 1fr;
        justify-content: start;
        justify-items: start;
        gap: 10px;
        min-height: 0;
        padding: 8px 11px;
        border-width: 3px;
        transform: none;
    }

    .scouting-sheet-rank strong {
        font-size: 1.3rem;
    }

    .scouting-sheet-rank span {
        margin-top: 0;
    }

    .scouting-close-file {
        top: 11px;
        right: 12px;
    }

    .scouting-sheet-columns {
        gap: 24px;
        padding: 20px 15px 26px;
    }

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

    .scouting-record {
        grid-template-columns: minmax(0, 1fr);
        gap: 5px;
    }
}

/* Tall handwritten scouting file */
.scouting-office-heading {
    justify-content: flex-start;
}

.scouting-file-stage {
    height: auto;
    aspect-ratio: 210 / 297;
    overflow: clip;
    border: 2px solid #5d442a;
    border-radius: 2px 6px 3px 1px;
    background:
        radial-gradient(circle at 16% 21%, rgba(91, 58, 26, 0.13), transparent 13%),
        radial-gradient(circle at 84% 77%, rgba(91, 58, 26, 0.1), transparent 17%),
        repeating-linear-gradient(97deg, rgba(64, 39, 18, 0.018) 0 1px, transparent 1px 7px),
        #cba763;
    box-shadow:
        4px 5px 0 #a27c3e,
        11px 13px 0 rgba(44, 23, 20, 0.2),
        18px 23px 28px rgba(44, 23, 20, 0.3);
}

.scouting-public-cover,
.scouting-player-sheet {
    overflow: clip;
}

.scouting-public-cover {
    display: block;
    padding: clamp(42px, 7vw, 82px);
    background:
        radial-gradient(ellipse at 23% 82%, rgba(95, 61, 28, 0.13), transparent 22%),
        radial-gradient(ellipse at 73% 17%, rgba(255, 246, 213, 0.15), transparent 18%),
        repeating-linear-gradient(4deg, rgba(69, 43, 20, 0.025) 0 1px, transparent 1px 8px),
        #cba763;
}

.scouting-public-cover::before {
    inset: 25px 29px 31px 23px;
    border: 1px solid rgba(73, 45, 21, 0.23);
    border-radius: 1px 7px 2px 4px;
    box-shadow: inset 0 0 35px rgba(76, 45, 19, 0.07);
}

.scouting-public-cover::after {
    content: none;
}

.scouting-cover-copy {
    position: relative;
    top: auto;
    left: auto;
    width: auto;
    max-width: 720px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
    margin-top: clamp(24px, 3vw, 48px);
}

.scouting-cover-copy::before,
.scouting-cover-copy::after {
    content: none;
}

.scouting-cover-copy > p {
    margin: 0 0 15px;
    color: rgba(44, 23, 20, 0.72);
    font-family: 'Bungee', sans-serif;
    font-size: 0.72rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.scouting-cover-copy h2 {
    width: fit-content;
    margin: 0;
    padding: 12px 17px;
    border: 7px double var(--rfr-red-dark);
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2rem, 5vw, 4.5rem);
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
    transform: rotate(-1deg);
}

.scouting-cover-copy > span {
    display: block;
    max-width: 56ch;
    margin-top: 22px;
    color: var(--rfr-ink);
    font-family: inherit;
    font-size: 1.22rem;
    font-weight: 700;
    line-height: 1.55;
}

.scouting-cover-instruction {
    position: relative;
    right: auto;
    bottom: auto;
    width: auto;
    max-width: none;
    margin: 0;
    padding-top: 19px;
    border-top: 2px solid rgba(44, 23, 20, 0.42);
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.7rem;
    font-weight: 400;
    text-align: center;
    text-transform: uppercase;
    transform: none;
}

.scouting-player-sheet {
    display: block;
    color: #253d54;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    background:
        linear-gradient(90deg, transparent 0 76px, rgba(184, 77, 77, 0.34) 76px 78px, transparent 78px),
        repeating-linear-gradient(0deg, transparent 0 31px, rgba(66, 121, 151, 0.2) 31px 32px),
        radial-gradient(circle at 88% 12%, rgba(129, 91, 46, 0.09), transparent 14%),
        radial-gradient(circle at 17% 73%, rgba(129, 91, 46, 0.07), transparent 16%),
        #f4efdc;
}

.scouting-player-sheet::after {
    content: none;
}

.scouting-inline-doodle {
    position: absolute;
    z-index: 2;
    display: block;
    width: var(--doodle-size);
    height: auto;
    opacity: 0.88;
    filter: grayscale(1) contrast(1.4) brightness(0.88);
    mix-blend-mode: multiply;
    pointer-events: none;
}

.scouting-doodle-anchor {
    position: relative;
}

.scouting-inline-doodle.is-outer-left,
.scouting-inline-doodle.is-outer-right,
.scouting-inline-doodle.is-inset-left,
.scouting-inline-doodle.is-inset-right {
    top: var(--doodle-top);
    transform: translate(var(--doodle-x), calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
}

.scouting-inline-doodle.is-outer-left {
    right: calc(100% + 8px);
}

.scouting-inline-doodle.is-outer-right {
    left: calc(100% + 8px);
}

.scouting-inline-doodle.is-inset-left {
    left: 22px;
}

.scouting-inline-doodle.is-inset-right {
    right: 4px;
}

.scouting-inline-doodle[src$="jamie-8.png"] {
    filter: grayscale(1) contrast(1.42) brightness(0.82);
}

.scouting-inline-doodle.is-page-bottom-left {
    left: 28%;
    bottom: 143px;
    transform: translate(var(--doodle-x), var(--doodle-y)) rotate(var(--doodle-rotate));
}

.scouting-inline-doodle.is-page-jamie-medals,
.scouting-inline-doodle.is-page-jamie-spotlight,
.scouting-inline-doodle.is-page-jamie-pair,
.scouting-inline-doodle.is-page-zac-horse,
.scouting-inline-doodle.is-page-zac-banana,
.scouting-inline-doodle.is-page-zac-prohibition-express,
.scouting-inline-doodle.is-zac-energy-drink,
.scouting-inline-doodle.is-page-carys-banana,
.scouting-inline-doodle.is-page-carys-ring,
.scouting-inline-doodle.is-page-carys-queen,
.scouting-inline-doodle.is-page-carys-prohibition,
.scouting-inline-doodle.is-page-kaori-costume-hat,
.scouting-inline-doodle.is-page-kaori-costume-scarf,
.scouting-inline-doodle.is-page-kaori-costume-extras,
.scouting-inline-doodle.is-page-kaori-vaseline,
.scouting-inline-doodle.is-page-kaori-cat,
.scouting-inline-doodle.is-page-andrew-split-pot,
.scouting-inline-doodle.is-page-andrew-disguise,
.scouting-inline-doodle.is-andrew-head-to-head,
.scouting-inline-doodle.is-page-violet-jacks,
.scouting-inline-doodle.is-page-violet-paw,
.scouting-inline-doodle.is-page-violet-cats,
.scouting-inline-doodle.is-page-violet-card-spring,
.scouting-inline-doodle.is-page-violet-knitted-tent {
    transform: translate(var(--doodle-x), var(--doodle-y)) rotate(var(--doodle-rotate));
}

.scouting-inline-doodle.is-page-jamie-medals {
    bottom: 155px;
    left: 6%;
}

.scouting-inline-doodle.is-page-jamie-spotlight {
    right: 3%;
    bottom: 75px;
}

.scouting-inline-doodle.is-page-jamie-pair {
    bottom: 425px;
    left: 35%;
}

.scouting-inline-doodle.is-page-violet-cats {
    bottom: 180px;
    left: 7%;
    width: min(var(--doodle-size), 44.2%);
}

.scouting-inline-doodle.is-page-violet-card-spring {
    top: 620px;
    left: 53%;
    z-index: 1;
    opacity: 0.76;
    transform: translateX(-50%) rotate(var(--doodle-rotate));
}

.scouting-inline-doodle.is-page-violet-knitted-tent {
    right: 8.4%;
    bottom: 20px;
    left: auto;
    width: min(var(--doodle-size), 22%);
}

.scouting-inline-doodle.is-page-violet-jacks {
    top: 120px;
    left: 66%;
}

.scouting-inline-doodle.is-page-violet-paw {
    right: 16px;
    bottom: 22px;
}

#scouting-panel-violet .scouting-sheet-summary {
    max-width: 510px;
}

#scouting-panel-violet .scouting-event-list {
    gap: 8px;
}

#scouting-panel-violet .scouting-record-list {
    margin-top: 6px;
}

#scouting-panel-violet .scouting-public-note-list {
    gap: 17px;
}

.scouting-inline-doodle.is-page-zac-horse {
    bottom: 55px;
    left: 9%;
}

.scouting-inline-doodle.is-page-zac-banana {
    bottom: 10px;
    left: 53%;
}

.scouting-inline-doodle.is-zac-energy-drink {
    top: -140px;
    right: 145px;
}

.scouting-inline-doodle.is-page-zac-prohibition-express {
    bottom: 470px;
    left: 32%;
}

#scouting-panel-zac .scouting-public-note-list {
    gap: 8px;
}

.scouting-inline-doodle.is-page-carys-banana {
    right: auto;
    bottom: 90px;
    left: 60%;
    transform: translate(calc(-50% + var(--doodle-x)), var(--doodle-y)) rotate(var(--doodle-rotate)) scaleX(1.18);
}

.scouting-inline-doodle.is-page-carys-queen {
    top: 55px;
    right: 130px;
}

.scouting-inline-doodle.is-page-carys-prohibition {
    bottom: 250px;
    left: 7%;
}

.scouting-inline-doodle.is-page-carys-ring {
    top: 226px;
    right: 225px;
}

#scouting-panel-carys .scouting-event-history {
    margin-top: 20px;
}

#scouting-panel-carys .scouting-event-history > h4 {
    margin-bottom: 9px;
}

#scouting-panel-carys .scouting-event-list {
    gap: 8px;
}

#scouting-panel-carys .scouting-record-list {
    margin-top: 16px;
}

#scouting-panel-carys .scouting-notes-intro {
    margin-bottom: 12px;
}

#scouting-panel-carys .scouting-public-note-list {
    gap: 5px;
}

#scouting-panel-carys .scouting-public-note p {
    line-height: 1.3;
}

#scouting-panel-kaori .scouting-public-note-list {
    gap: 3px;
}

#scouting-panel-kaori .scouting-sheet-summary {
    max-width: 510px;
}

#scouting-panel-kaori .scouting-public-note p {
    line-height: 1.3;
}

.scouting-inline-doodle.is-page-kaori-costume-hat {
    top: 24px;
    left: 68%;
}

.scouting-inline-doodle.is-page-kaori-costume-scarf {
    top: 112px;
    left: 66%;
}

.scouting-inline-doodle.is-page-kaori-costume-extras {
    top: 26px;
    right: 0;
    left: auto;
}

.scouting-inline-doodle.is-page-kaori-vaseline {
    right: 76px;
    bottom: 150px;
    left: auto;
}

.scouting-inline-doodle.is-page-kaori-cat {
    bottom: 110px;
    left: 6%;
}

.scouting-inline-doodle.is-note-kaori-mystery-ball {
    top: var(--doodle-top);
    right: -96px;
    transform: translate(var(--doodle-x), calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
}

.scouting-event-entry.has-event-kaori-cigarette {
    padding-right: 175px;
}

.scouting-inline-doodle.is-event-kaori-cigarette {
    top: var(--doodle-top);
    right: -70px;
    transform: translate(var(--doodle-x), calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
}

.scouting-inline-doodle.is-page-andrew-split-pot {
    bottom: 12px;
    left: 54%;
}

.scouting-inline-doodle.is-page-andrew-disguise {
    bottom: 150px;
    left: 3%;
}

#scouting-panel-andrew .scouting-sheet-name {
    font-size: clamp(2rem, 4.6vw, 4.45rem);
    white-space: nowrap;
}

#scouting-panel-andrew .scouting-sheet-summary {
    max-width: 300px;
}

.scouting-inline-doodle.is-andrew-head-to-head {
    top: 120px;
    left: 45%;
}

.scouting-secret-message {
    --secret-light-x: -9999px;
    --secret-light-y: -9999px;
    --secret-light-radius-x: 1px;
    --secret-light-radius-y: 1px;
    position: absolute;
    z-index: 3;
    display: block;
    color: rgba(91, 39, 130, 0.96);
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    width: min(280px, 35%);
    font-size: clamp(1.75rem, 2.4vw, 2.15rem);
    font-weight: 700;
    letter-spacing: 0.075em;
    line-height: 1.02;
    opacity: 0;
    pointer-events: none;
    text-align: center;
    text-shadow: 0 0 8px rgba(184, 116, 226, 0.68);
    transform: translateX(-50%);
    transition: opacity 80ms ease;
    -webkit-mask-image: radial-gradient(
        ellipse var(--secret-light-radius-x) var(--secret-light-radius-y)
        at var(--secret-light-x) var(--secret-light-y),
        #000 0 48%,
        rgba(0, 0, 0, 0.9) 67%,
        transparent 100%
    );
    mask-image: radial-gradient(
        ellipse var(--secret-light-radius-x) var(--secret-light-radius-y)
        at var(--secret-light-x) var(--secret-light-y),
        #000 0 48%,
        rgba(0, 0, 0, 0.9) 67%,
        transparent 100%
    );
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.scouting-secret-ink {
    display: block;
    transform: rotate(var(--secret-rotate, -7deg));
    transform-origin: center;
}

.scouting-secret-message.is-revealed {
    opacity: 0.92;
}

#scouting-panel-jamie .scouting-secret-message {
    top: 300px;
    left: 51.7%;
    --secret-rotate: -7deg;
}

#scouting-panel-violet .scouting-secret-message {
    top: 265px;
    left: 51.7%;
    --secret-rotate: 5deg;
}

#scouting-panel-zac .scouting-secret-message {
    top: 315px;
    left: 38%;
    font-size: clamp(1.5rem, 2.1vw, 1.8rem);
    --secret-rotate: -4deg;
}

#scouting-panel-carys .scouting-secret-message {
    top: 265px;
    left: 51.7%;
    --secret-rotate: 6deg;
}

#scouting-panel-kaori .scouting-secret-message {
    top: 300px;
    left: 51.7%;
    --secret-rotate: -5deg;
}

#scouting-panel-andrew .scouting-secret-message {
    top: 1608px;
    left: 40.9%;
    --secret-rotate: 4deg;
}

@media (max-width: 1140px) {
    .scouting-inline-doodle.is-page-carys-banana {
        display: none;
    }
}

.scouting-sheet-header {
    position: relative;
    z-index: 2;
    display: block;
    min-height: 355px;
    padding: 66px 64px 30px 355px;
    border: 0;
    background: transparent;
}

.scouting-sheet-portrait {
    position: absolute;
    top: 52px;
    left: 73px;
    width: 238px;
    height: auto;
    padding: 11px 11px 42px;
    border: 1px solid rgba(55, 48, 39, 0.45);
    background: #faf7ed;
    box-shadow: 5px 8px 12px rgba(44, 23, 20, 0.32);
    transform: rotate(-3deg);
}

.scouting-sheet-portrait::before {
    content: "";
    position: absolute;
    top: -13px;
    left: 50%;
    width: 86px;
    height: 25px;
    background: rgba(229, 214, 171, 0.72);
    box-shadow: 0 1px 3px rgba(44, 23, 20, 0.22);
    transform: translateX(-50%) rotate(2deg);
}

.scouting-sheet-portrait img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    border: 1px solid rgba(44, 23, 20, 0.28);
    filter: saturate(0.88) contrast(0.98);
    object-fit: cover;
}

.scouting-photo-caption {
    position: absolute;
    right: 13px;
    bottom: 7px;
    left: 13px;
    color: #31455a;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
}

.scouting-sheet-identity {
    max-width: 710px;
    transform: rotate(0.35deg);
}

.scouting-sheet-classification {
    margin: 0 0 3px;
    color: #806b43;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.scouting-sheet-name {
    margin: 0;
    color: #203c57;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: clamp(3rem, 5vw, 4.7rem);
    font-weight: 700;
    line-height: 0.9;
    text-decoration: underline;
    text-decoration-color: rgba(32, 60, 87, 0.5);
    text-decoration-thickness: 2px;
    text-transform: none;
}

.scouting-name-swap {
    position: relative;
    display: inline-block;
    white-space: nowrap;
}

.scouting-name-former {
    text-decoration-line: line-through;
    text-decoration-color: rgba(146, 32, 43, 0.88);
    text-decoration-thickness: 4px;
}

.scouting-name-current {
    position: absolute;
    top: -0.62em;
    left: 23%;
    color: #8e2634;
    font-size: 0.68em;
    line-height: 1;
    transform: rotate(-5deg);
}

.scouting-sheet-summary {
    max-width: 54ch;
    margin: 18px 0 0;
    color: #31485c;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    font-weight: 500;
    line-height: 1.35;
}

.scouting-sheet-rank {
    position: absolute;
    right: 72px;
    bottom: 23px;
    display: grid;
    min-width: 135px;
    min-height: 105px;
    padding: 11px 20px;
    border: 0;
    color: #8e2834;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    transform: rotate(5deg);
}

.scouting-sheet-rank::before,
.scouting-sheet-rank::after {
    content: "";
    position: absolute;
    inset: 2px 5px;
    border: 2px solid rgba(142, 40, 52, 0.65);
    border-radius: 49% 44% 52% 46%;
    transform: rotate(-3deg);
}

.scouting-sheet-rank::after {
    inset: 7px 1px 0 9px;
    border-width: 1px;
    transform: rotate(4deg);
}

.scouting-sheet-rank strong {
    position: relative;
    z-index: 1;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 2.7rem;
    font-weight: 700;
}

.scouting-sheet-rank span {
    position: relative;
    z-index: 1;
    margin-top: 0;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1rem;
    font-weight: 600;
    text-transform: none;
}

.scouting-close-file {
    top: 21px;
    right: 26px;
    z-index: 3;
    min-height: 34px;
    padding: 6px 11px;
    border: 1px solid rgba(58, 42, 29, 0.72);
    border-radius: 0;
    background: #b34442;
    color: #f8edcf;
    box-shadow: 2px 3px 0 rgba(44, 23, 20, 0.35);
    transform: rotate(1.2deg);
}

.scouting-sheet-columns {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.07fr) minmax(330px, 0.93fr);
    gap: clamp(42px, 6vw, 78px);
    min-height: 0;
    padding: 0 clamp(54px, 6vw, 82px) 90px clamp(68px, 7vw, 96px);
    overflow: visible;
    overscroll-behavior: auto;
}

.scouting-data-column,
.scouting-notes-column {
    position: relative;
    min-width: 0;
}

.scouting-notes-column {
    margin-top: 52px;
    transform: rotate(-0.35deg);
}

.scouting-notes-column::before {
    content: "";
    position: absolute;
    top: -18px;
    bottom: -25px;
    left: clamp(-44px, -3vw, -28px);
    width: 1px;
    background: rgba(48, 64, 82, 0.22);
    transform: rotate(0.8deg);
}

.scouting-data-column > h3,
.scouting-notes-column > h3 {
    width: fit-content;
    margin: 0 0 19px;
    color: #244764;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: clamp(1.85rem, 3vw, 2.45rem);
    font-weight: 700;
    line-height: 1;
    text-decoration: underline;
    text-decoration-color: rgba(36, 71, 100, 0.55);
    text-decoration-thickness: 2px;
    text-transform: none;
    transform: rotate(-1deg);
}

.scouting-fact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
    margin: 0 8px 28px;
}

.scouting-fact,
.scouting-fact:nth-child(even) {
    display: block;
    min-height: 66px;
    padding: 3px 7px 5px;
    border: 0;
    border-bottom: 2px solid rgba(48, 69, 91, 0.31);
    background: transparent;
}

.scouting-fact:nth-child(1) { transform: rotate(-1.2deg) translateY(3px); }
.scouting-fact:nth-child(2) { transform: rotate(0.8deg) translateY(-2px); }
.scouting-fact:nth-child(3) { transform: rotate(0.4deg) translateX(6px); }
.scouting-fact:nth-child(4) { transform: rotate(-0.9deg) translateY(4px); }
.scouting-fact:nth-child(5) { transform: rotate(1deg) translateX(-4px); }
.scouting-fact:nth-child(6) { transform: rotate(-0.4deg) translateY(-3px); }

.scouting-fact-label,
.scouting-record-label {
    display: block;
    color: #8a3041;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.05;
    text-transform: none;
}

.scouting-fact-value {
    display: block;
    margin-top: 4px;
    overflow-wrap: anywhere;
    color: #263f55;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.86rem;
    font-weight: 600;
    line-height: 1;
}

.scouting-record-list {
    display: grid;
    gap: 21px;
    margin: 24px 5px 0 16px;
}

.scouting-record,
.scouting-record:nth-child(even) {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
}

.scouting-record:nth-child(1) { transform: rotate(0.45deg); }
.scouting-record:nth-child(2) { margin-left: 13px; transform: rotate(-0.6deg); }
.scouting-record:nth-child(3) { margin-right: -8px; transform: rotate(0.7deg); }
.scouting-record:nth-child(4) { margin-left: -5px; transform: rotate(-0.25deg); }
.scouting-record:nth-child(5) { margin-left: 9px; transform: rotate(0.4deg); }

.scouting-record > div {
    display: block;
}

.scouting-record-value {
    display: block;
    margin-top: 2px;
    color: #263f55;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.61rem;
    font-weight: 700;
    line-height: 1.13;
}

.scouting-record-detail {
    margin: 5px 0 0 13px;
    color: #365065;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.34rem;
    font-weight: 500;
    line-height: 1.25;
}

.scouting-event-history {
    position: relative;
    margin: 28px 2px 0 12px;
}

.scouting-event-history > h4 {
    width: fit-content;
    margin: 0 0 13px;
    color: #244764;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: underline;
    text-decoration-color: rgba(36, 71, 100, 0.45);
    text-decoration-thickness: 2px;
    transform: rotate(0.6deg);
}

.scouting-event-list {
    display: grid;
    gap: 16px;
}

.scouting-event-entry {
    position: relative;
    padding: 3px 5px 8px 12px;
    border-left: 2px solid rgba(48, 69, 91, 0.28);
}

.scouting-event-entry:nth-child(1) { margin-right: 5px; transform: rotate(-0.35deg); }
.scouting-event-entry:nth-child(2) { margin-left: 8px; transform: rotate(0.4deg); }
.scouting-event-entry:nth-child(3) { margin-right: -4px; transform: rotate(-0.2deg); }
.scouting-event-entry:nth-child(4) { margin-left: 3px; transform: rotate(0.3deg); }

.scouting-event-heading {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 27px;
    padding-right: 58px;
}

.scouting-event-heading strong {
    color: #8a3041;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.49rem;
    font-weight: 700;
    line-height: 1.05;
}

.scouting-event-result {
    flex: 0 0 auto;
    color: #244764;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.42rem;
    font-weight: 700;
    line-height: 1;
}

.scouting-event-entry p {
    margin: 5px 7px 0 4px;
    color: #365065;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.28rem;
    font-weight: 500;
    line-height: 1.22;
}

.scouting-event-crown {
    position: absolute;
    top: var(--crown-top);
    right: var(--crown-right);
    width: var(--crown-size);
    height: auto;
    opacity: 0.9;
    filter: grayscale(1) contrast(1.42) brightness(0.86);
    mix-blend-mode: multiply;
    transform: scaleX(var(--crown-flip)) rotate(var(--crown-rotate));
}

.scouting-absent-stamp {
    position: absolute;
    top: -3px;
    right: 1px;
    padding: 2px 7px 1px;
    border: 2px solid rgba(138, 48, 65, 0.78);
    border-radius: 2px;
    color: #8a3041;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.16rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    transform: rotate(-7deg);
}

.scouting-event-entry.is-absent p {
    color: rgba(54, 80, 101, 0.63);
}

.scouting-notes-intro {
    margin: 0 7px 25px 16px;
    padding: 0;
    border: 0;
    color: #4a5b68;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.44rem;
    font-weight: 500;
    line-height: 1.3;
    transform: rotate(0.6deg);
}

.scouting-public-note-list {
    display: grid;
    gap: 27px;
    margin: 0 4px 0 12px;
}

.scouting-public-note,
.scouting-public-note:nth-child(even) {
    position: relative;
    padding: 0 5px 0 24px;
    border: 0;
    background: transparent;
}

.scouting-public-note::before {
    content: "•";
    position: absolute;
    top: -2px;
    left: 2px;
    color: rgba(138, 48, 65, 0.8);
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.86rem;
    font-weight: 700;
}

.scouting-public-note:nth-child(1) { transform: rotate(-0.7deg); }
.scouting-public-note:nth-child(2) { margin-left: 12px; transform: rotate(0.85deg); }
.scouting-public-note:nth-child(3) { margin-left: -5px; transform: rotate(-0.3deg); }
.scouting-public-note:nth-child(4) { margin-left: 8px; transform: rotate(0.55deg); }
.scouting-public-note:nth-child(5) { margin-left: -2px; transform: rotate(-0.65deg); }
.scouting-public-note:nth-child(6) { margin-left: 14px; transform: rotate(0.35deg); }

.scouting-public-note.is-speculative h4::after {
    content: " ?";
    color: rgba(138, 48, 65, 0.62);
    font-size: 0.88em;
}

.scouting-public-note h4 {
    margin: 0;
    color: #8a3041;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.76rem;
    font-weight: 700;
    line-height: 1.05;
    text-transform: none;
}

.scouting-public-note p,
.scouting-empty-note {
    margin: 7px 0 0;
    color: #2d475c;
    font-family: 'Caveat', 'Comic Sans MS', cursive;
    font-size: 1.48rem;
    font-weight: 500;
    line-height: 1.35;
}

.scouting-sheet-summary.has-inset-left,
.scouting-record.has-inset-left {
    padding-left: calc(var(--doodle-inset) + 5px);
}

.scouting-event-entry.has-inset-left {
    padding-left: calc(var(--doodle-inset) + 12px);
}

.scouting-public-note.has-inset-left {
    padding-left: calc(var(--doodle-inset) + 24px);
}

.scouting-sheet-summary.has-inset-right,
.scouting-record.has-inset-right,
.scouting-event-entry.has-inset-right,
.scouting-public-note.has-inset-right {
    padding-right: calc(var(--doodle-inset) + 5px);
}

@media (min-width: 761px) {
    #scouting-panel-jamie [data-note-index="3"] h4 {
        width: calc(100% + 88px);
        white-space: nowrap;
    }
}

@media (max-width: 760px) {
    .scouting-file-stage {
        height: 3200px;
        aspect-ratio: auto;
    }

    .scouting-public-cover {
        padding: clamp(38px, 7vw, 58px);
    }

    .scouting-cover-detective {
        width: min(72vw, 340px);
        margin: 90px auto 0;
    }

    .scouting-event-entry.has-event-kaori-cigarette {
        padding-right: 60px;
    }

    .scouting-inline-doodle.is-event-kaori-cigarette,
    .scouting-inline-doodle.is-note-kaori-mystery-ball {
        right: 4px;
    }

    .scouting-sheet-header {
        min-height: 420px;
        padding: 62px 38px 28px 290px;
    }

    .scouting-sheet-portrait {
        left: 48px;
        width: 205px;
    }

    .scouting-sheet-summary {
        font-size: 1.25rem;
    }

    .scouting-sheet-rank {
        right: 40px;
        bottom: 20px;
    }

    .scouting-sheet-columns {
        grid-template-columns: minmax(0, 1fr);
        gap: 54px;
        padding: 5px 58px 88px 84px;
    }

    .scouting-notes-column {
        margin: 0 0 0 18px;
    }

    .scouting-notes-column::before {
        display: none;
    }

    .scouting-inline-doodle {
        width: min(var(--doodle-size), 46px);
    }

    #scouting-panel-jamie [data-note-index="3"].has-inset-right {
        padding-right: 58px;
    }

    #scouting-panel-jamie [data-note-index="3"] .scouting-inline-doodle.is-inset-right {
        transform: translate(18px, calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
    }

    .scouting-doodle-anchor.has-outer-left,
    .scouting-doodle-anchor.has-outer-right {
        padding-right: 54px;
    }

    .scouting-inline-doodle.is-outer-left,
    .scouting-inline-doodle.is-outer-right {
        right: 4px;
        left: auto;
    }

    .scouting-inline-doodle.is-page-bottom-left {
        right: auto;
        bottom: 95px;
        left: 28%;
        width: min(var(--doodle-size), 162px);
    }

    .scouting-inline-doodle.is-page-jamie-medals {
        bottom: 215px;
        left: 4%;
        width: min(var(--doodle-size), 175px);
    }

    .scouting-inline-doodle.is-page-jamie-spotlight {
        right: 1%;
        bottom: 80px;
        width: min(var(--doodle-size), 56px);
    }

    .scouting-inline-doodle.is-page-jamie-pair {
        bottom: 380px;
        left: 29%;
        width: min(var(--doodle-size), 150px);
    }

    .scouting-inline-doodle[src$="jamie-8.png"] {
        width: min(var(--doodle-size), 116px);
    }

    .scouting-inline-doodle[src$="zac-8.png"] {
        width: min(var(--doodle-size), 150px);
    }

    .scouting-inline-doodle[src$="zac-5.png"] {
        width: min(var(--doodle-size), 76px);
    }

    .scouting-inline-doodle[src$="zac-7.png"] {
        width: min(var(--doodle-size), 128px);
    }

    #scouting-panel-zac [data-note-index="3"].has-inset-right {
        padding-right: 140px;
    }

    #scouting-panel-zac [data-note-index="3"] .scouting-inline-doodle.is-inset-right {
        transform: translate(48px, calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
    }

    #scouting-panel-zac [data-note-index="5"].has-outer-right {
        padding-right: 82px;
    }

    .scouting-inline-doodle.is-zac-energy-drink {
        top: -112px;
        right: 20px;
        width: min(var(--doodle-size), 60px);
    }

    .scouting-inline-doodle.is-page-zac-horse {
        bottom: 50px;
        left: 7%;
        width: min(var(--doodle-size), 250px);
    }

    .scouting-inline-doodle.is-page-zac-banana {
        right: 4%;
        bottom: 54px;
        left: auto;
        width: min(var(--doodle-size), 275px);
    }

    .scouting-inline-doodle.is-page-zac-prohibition-express {
        bottom: 430px;
        left: 35%;
        width: min(var(--doodle-size), 340px);
    }

    .scouting-inline-doodle.is-page-carys-queen {
        top: 115px;
        right: 14px;
        width: min(var(--doodle-size), 60px);
    }

    .scouting-inline-doodle[src$="carys-3.png"] {
        width: min(var(--doodle-size), 58px);
    }

    .scouting-inline-doodle[src$="carys-4.png"] {
        width: min(var(--doodle-size), 76px);
    }

    .scouting-inline-doodle[src$="carys-5.png"] {
        width: min(var(--doodle-size), 82px);
    }

    .scouting-inline-doodle.is-page-carys-prohibition {
        bottom: 587px;
        left: 8%;
        width: min(var(--doodle-size), 200px);
    }

    .scouting-inline-doodle.is-page-carys-ring {
        top: 314px;
        right: 190px;
        width: min(var(--doodle-size), 100px);
    }

    .scouting-inline-doodle.is-page-violet-cats {
        bottom: 62px;
        left: 7%;
        width: min(var(--doodle-size), 330px);
    }

    .scouting-inline-doodle.is-page-violet-card-spring {
        top: 1490px;
        width: min(var(--doodle-size), 240px);
        opacity: 0.32;
    }

    .scouting-inline-doodle.is-page-violet-knitted-tent {
        right: 7%;
        bottom: 300px;
        left: auto;
        width: min(var(--doodle-size), 330px);
    }

    .scouting-inline-doodle.is-page-kaori-cat {
        bottom: 68px;
        left: 4%;
        width: min(var(--doodle-size), 330px);
    }

    .scouting-inline-doodle.is-page-kaori-vaseline {
        right: 8%;
        bottom: 350px;
        width: min(var(--doodle-size), 380px);
    }

    .scouting-inline-doodle.is-page-andrew-split-pot {
        bottom: 350px;
        left: 60%;
        width: min(var(--doodle-size), 180px);
    }

    .scouting-inline-doodle.is-page-andrew-disguise {
        bottom: 150px;
        left: 3%;
        width: min(var(--doodle-size), 420px);
    }

    #scouting-panel-andrew .scouting-sheet-summary {
        max-width: 175px;
    }

    .scouting-inline-doodle.is-andrew-head-to-head {
        top: 112px;
        right: 8%;
        left: auto;
        width: min(var(--doodle-size), 180px);
    }

    .scouting-secret-message { width: min(270px, 42%); }
    #scouting-panel-jamie .scouting-secret-message { top: 2550px; left: 42%; }
    #scouting-panel-violet .scouting-secret-message { top: 306px; left: 44%; }
    #scouting-panel-zac .scouting-secret-message { top: 2790px; left: 76%; }
    #scouting-panel-carys .scouting-secret-message { top: 306px; left: 35%; }
    #scouting-panel-kaori .scouting-secret-message { top: 306px; left: 45%; }
    #scouting-panel-andrew .scouting-secret-message { top: 318px; left: 45%; }

}

@media (max-width: 540px) {
    .scouting-file-stage {
        height: 3850px;
    }

    .scouting-public-cover::before {
        inset: 16px;
    }

    .scouting-cover-copy {
        padding: 0;
    }

    .scouting-cover-copy h2 {
        padding: 10px 12px;
        border-width: 5px;
        font-size: clamp(1.85rem, 10vw, 3rem);
    }

    .scouting-cover-detective {
        width: min(78vw, 300px);
        margin-top: 78px;
    }

    .scouting-cover-instruction {
        right: auto;
        bottom: auto;
        max-width: none;
    }

    .scouting-sheet-header {
        min-height: 0;
        padding: 345px 27px 26px 48px;
    }

    .scouting-sheet-portrait {
        top: 54px;
        left: 50%;
        width: 215px;
        transform: translateX(-50%) rotate(-3deg);
    }

    .scouting-sheet-name {
        font-size: clamp(2.7rem, 14vw, 4rem);
    }

    .scouting-sheet-summary {
        font-size: 1.18rem;
    }

    .scouting-sheet-rank {
        position: relative;
        right: auto;
        bottom: auto;
        width: 132px;
        margin: 24px 0 0 auto;
    }

    .scouting-close-file {
        top: 14px;
        right: 14px;
    }

    .scouting-sheet-columns {
        gap: 48px;
        padding: 22px 26px 70px 51px;
    }

    .scouting-fact-grid {
        gap: 17px 14px;
        margin-right: 0;
        margin-left: 0;
    }

    .scouting-fact-value {
        font-size: 1.62rem;
    }

    .scouting-record-list {
        margin-left: 5px;
    }

    .scouting-notes-column {
        margin-left: 0;
    }

    .scouting-public-note-list {
        margin-left: 0;
    }

    .scouting-inline-doodle {
        width: min(var(--doodle-size), 40px);
    }

    .scouting-inline-doodle.is-page-bottom-left {
        bottom: 72px;
        left: 28%;
        width: min(var(--doodle-size), 132px);
    }

    .scouting-inline-doodle.is-page-jamie-medals {
        bottom: 180px;
        left: 3%;
        width: min(var(--doodle-size), 145px);
    }

    .scouting-inline-doodle.is-page-jamie-spotlight {
        right: 1%;
        bottom: 65px;
        width: min(var(--doodle-size), 48px);
    }

    .scouting-inline-doodle.is-page-jamie-pair {
        bottom: 330px;
        left: 26%;
        width: min(var(--doodle-size), 128px);
    }

    .scouting-inline-doodle[src$="jamie-8.png"] {
        width: min(var(--doodle-size), 92px);
    }

    .scouting-inline-doodle[src$="zac-8.png"] {
        width: min(var(--doodle-size), 118px);
    }

    .scouting-inline-doodle[src$="zac-5.png"] {
        width: min(var(--doodle-size), 65px);
    }

    .scouting-inline-doodle[src$="zac-7.png"] {
        width: min(var(--doodle-size), 100px);
    }

    #scouting-panel-zac [data-note-index="3"].has-inset-right {
        padding-right: 112px;
    }

    #scouting-panel-zac [data-note-index="3"] .scouting-inline-doodle.is-inset-right {
        transform: translate(24px, calc(-50% + var(--doodle-y))) rotate(var(--doodle-rotate));
    }

    #scouting-panel-zac [data-note-index="5"].has-outer-right {
        padding-right: 72px;
    }

    .scouting-inline-doodle.is-zac-energy-drink {
        top: -92px;
        right: 10px;
        width: min(var(--doodle-size), 50px);
    }

    .scouting-inline-doodle[src$="carys-3.png"] {
        width: min(var(--doodle-size), 52px);
    }

    .scouting-inline-doodle[src$="carys-4.png"] {
        width: min(var(--doodle-size), 68px);
    }

    .scouting-inline-doodle[src$="carys-5.png"] {
        width: min(var(--doodle-size), 70px);
    }

    .scouting-inline-doodle.is-page-carys-prohibition {
        bottom: 565px;
        left: 8%;
        width: min(var(--doodle-size), 169px);
    }

    .scouting-inline-doodle.is-page-carys-ring {
        top: 620px;
        right: 174px;
        width: min(var(--doodle-size), 82px);
    }

    .scouting-inline-doodle.is-page-zac-horse {
        bottom: 50px;
        left: 7%;
        width: min(var(--doodle-size), 165px);
    }

    .scouting-inline-doodle.is-page-zac-banana {
        right: 2%;
        bottom: 42px;
        left: auto;
        width: min(var(--doodle-size), 185px);
    }

    .scouting-inline-doodle.is-page-zac-prohibition-express {
        bottom: 330px;
        left: 27%;
        width: min(var(--doodle-size), 323px);
    }

    .scouting-inline-doodle.is-page-violet-cats {
        right: auto;
        bottom: 42px;
        left: 50%;
        width: min(var(--doodle-size), 270px);
        transform: translate(calc(-50% + var(--doodle-x)), var(--doodle-y)) rotate(var(--doodle-rotate));
    }

    .scouting-inline-doodle.is-page-violet-card-spring {
        top: 1730px;
        width: min(var(--doodle-size), 150px);
        opacity: 0.28;
    }

    .scouting-inline-doodle.is-page-violet-knitted-tent {
        right: 4%;
        bottom: 260px;
        left: auto;
        width: min(var(--doodle-size), 260px);
    }

    .scouting-inline-doodle.is-page-kaori-cat {
        bottom: 58px;
        left: 4%;
        width: min(var(--doodle-size), 260px);
    }

    .scouting-inline-doodle.is-page-kaori-vaseline {
        right: 8%;
        bottom: 300px;
        width: min(var(--doodle-size), 290px);
    }

    .scouting-inline-doodle.is-page-andrew-split-pot {
        bottom: 380px;
        left: 58%;
        width: min(var(--doodle-size), 150px);
    }

    .scouting-inline-doodle.is-page-andrew-disguise {
        bottom: 115px;
        left: 2%;
        width: min(var(--doodle-size), 340px);
    }

    #scouting-panel-andrew .scouting-sheet-summary {
        max-width: 190px;
    }

    .scouting-inline-doodle.is-andrew-head-to-head {
        top: 118px;
        right: 7%;
        left: auto;
        width: min(var(--doodle-size), 190px);
    }

    .scouting-secret-message {
        width: min(170px, 50%);
        font-size: 1.38rem;
    }
    #scouting-panel-jamie .scouting-secret-message { top: 940px; left: 32%; }
    #scouting-panel-violet .scouting-secret-message { top: 630px; left: 32%; }
    #scouting-panel-zac .scouting-secret-message { top: 1140px; left: 32%; }
    #scouting-panel-carys .scouting-secret-message { top: 720px; left: 32%; }
    #scouting-panel-kaori .scouting-secret-message { top: 710px; left: 32%; }
    #scouting-panel-andrew .scouting-secret-message { top: 620px; left: 32%; }

}

/* Standalone Ringmaster office */
.admin-office-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    min-height: 330px;
    overflow: hidden;
    border: 7px double var(--rfr-gold);
    outline: 3px solid var(--rfr-ink);
    background: var(--rfr-red-dark);
    box-shadow: 10px 10px 0 rgba(44, 23, 20, 0.82);
    color: var(--rfr-paper);
}

.admin-office-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(30px, 5vw, 60px);
}

.admin-office-copy > p:first-child {
    width: fit-content;
    margin: 0 0 16px;
    padding: 7px 10px;
    transform: rotate(-1deg);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.admin-office-copy h1 {
    max-width: 850px;
    margin: 0;
    color: var(--rfr-paper);
    font-family: 'Bungee', sans-serif;
    font-size: clamp(2.7rem, 6vw, 5.5rem);
    line-height: 0.94;
    text-transform: uppercase;
}

.admin-office-copy #adminWelcome {
    max-width: 62ch;
    margin: 18px 0 24px;
    color: rgba(255, 247, 228, 0.78);
    font-size: 1.05rem;
}

.admin-office-seal {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 24px;
    border-left: 3px dashed var(--rfr-ink);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    text-align: center;
}

.admin-office-seal span,
.admin-office-seal strong {
    font-family: 'Bungee', sans-serif;
    line-height: 1;
}

.admin-office-seal span { font-size: 2.6rem; }
.admin-office-seal strong { color: var(--rfr-red-dark); font-size: 1.4rem; }
.admin-office-seal small { font-weight: 800; text-transform: uppercase; }
.admin-office-content { margin-top: 44px; }
.admin-office-content .dashboard-loading-papers { min-height: 360px; }
.page-admin .dashboard-admin-section { padding: clamp(24px, 4vw, 42px); }

.dashboard-admin-section {
    position: relative;
    border-width: 5px;
    border-color: var(--rfr-red-dark);
    box-shadow: 9px 9px 0 var(--rfr-gold-dark);
}

.dashboard-admin-section::before {
    content: "RINGMASTER ACCESS";
    position: absolute;
    top: -17px;
    right: 26px;
    padding: 5px 10px;
    transform: rotate(1deg);
    border: 2px solid var(--rfr-ink);
    background: var(--rfr-gold);
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
}

.admin-status-board {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 14px;
    border: 3px double var(--rfr-gold);
    background: var(--rfr-night);
}

.admin-review-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: min(720px, 100%);
}

.admin-review-tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 58px;
    padding: 9px 12px;
    border: 2px solid var(--rfr-gold-dark);
    background: #f1dfb7;
    color: var(--rfr-ink);
    font-family: 'Bungee', sans-serif;
    font-size: 0.68rem;
    line-height: 1.15;
    text-align: left;
    text-transform: uppercase;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.34);
}

.admin-review-tab:hover {
    background: #fff5dc;
    transform: translateY(-1px);
}

.admin-review-tab:focus-visible {
    outline: 3px solid #fff8dc;
    outline-offset: 3px;
}

.admin-review-tab strong {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    min-width: 34px;
    min-height: 34px;
    padding: 3px;
    border: 2px solid currentColor;
    border-radius: 50%;
    color: inherit;
    font-size: 0.95rem;
}

.admin-review-tab.is-pending { color: #704900; }
.admin-review-tab.is-rejected { color: var(--rfr-red-dark); }
.admin-review-tab.is-approved { color: #1c5c42; }

.admin-review-tab[aria-selected="true"] {
    border-color: var(--rfr-gold);
    background: var(--rfr-red-dark);
    color: #fff8dc;
    box-shadow: inset 0 -5px 0 var(--rfr-gold), 4px 4px 0 rgba(0, 0, 0, 0.44);
    transform: none;
}

.admin-status-board .dashboard-mini-button { flex: 0 0 auto; }

.admin-review-list { display: grid; gap: 14px; }
.admin-review-card {
    display: grid;
    gap: 12px;
    padding: 18px;
    border: 2px solid var(--rfr-ink);
    background: #fffdf5;
    box-shadow: 4px 4px 0 rgba(44, 23, 20, 0.36);
}

.admin-review-card.is-approved { border-left: 8px solid var(--rfr-green); }
.admin-review-card.is-pending { border-left: 8px solid var(--rfr-gold-dark); }
.admin-review-card.is-rejected { border-left: 8px solid var(--rfr-red); }
.admin-review-card header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
}

.admin-review-card header p,
.admin-review-card header h4 { margin: 0; }
.admin-review-card header p {
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 0.66rem;
    text-transform: uppercase;
}

.admin-review-card header h4 {
    font-family: 'Bungee', sans-serif;
    font-size: 1rem;
    line-height: 1.25;
    text-transform: uppercase;
}

.admin-review-status {
    flex: 0 0 auto;
    padding: 5px 8px;
    border: 2px solid currentColor;
    color: var(--rfr-red-dark);
    font-size: 0.58rem;
    text-transform: uppercase;
}

.admin-review-card blockquote {
    margin: 0;
    padding: 14px;
    border-left: 5px solid var(--rfr-gold);
    background: #f3e5c8;
    color: var(--rfr-ink);
    font-size: 1rem;
    line-height: 1.5;
}

.admin-review-card small { color: var(--rfr-ink-soft); }
.admin-review-actions { display: flex; justify-content: flex-end; gap: 10px; }
.admin-return-button { background: var(--rfr-paper); color: var(--rfr-red-dark); }
.admin-return-button:hover { background: #f2d0c9; }
.admin-empty-state { padding: 22px; border: 2px dashed var(--rfr-gold-dark); }

.admin-prediction-ledger {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 5px double var(--rfr-red);
}

.admin-prediction-ledger > h4 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 1.25rem;
    text-transform: uppercase;
}

.admin-prediction-ledger > p { margin: 5px 0 17px; color: var(--rfr-ink-soft); }
.admin-prediction-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.admin-prediction-grid article {
    position: relative;
    padding: 17px;
    border: 2px dashed var(--rfr-red-dark);
    background: #efd59d;
}

.admin-prediction-grid article > strong {
    display: block;
    margin-bottom: 10px;
    color: var(--rfr-red-dark);
}

.admin-prediction-grid p {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 8px;
    margin: 5px 0;
}

.admin-prediction-grid span {
    color: var(--rfr-ink-soft);
    font-family: 'Bungee', sans-serif;
    font-size: 0.62rem;
    text-transform: uppercase;
}

.admin-prediction-grid b { font-weight: 700; }

.admin-rules-midway-ledger {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 5px double var(--rfr-red);
}

.admin-rules-midway-ledger > h4 {
    margin: 0;
    color: var(--rfr-red-dark);
    font-family: 'Bungee', sans-serif;
    font-size: 1.25rem;
    text-transform: uppercase;
}

.admin-rules-midway-ledger > p { margin: 5px 0 17px; color: var(--rfr-ink-soft); }
.admin-rules-midway-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.admin-rules-midway-grid article { padding: 16px; border: 3px double var(--rfr-red-dark); background: #fffdf5; box-shadow: 3px 3px 0 rgba(44,23,20,.28); }
.admin-rules-midway-grid article.is-empty { border-style: dashed; background: rgba(255,253,245,.5); }
.admin-rules-midway-grid article > strong { display: block; color: var(--rfr-red-dark); font-size: .82rem; }
.admin-rules-midway-score { display: flex; align-items: baseline; gap: 7px; margin: 9px 0 5px; color: var(--rfr-red-dark); }
.admin-rules-midway-score b { color: var(--rfr-red); font-family: 'Bungee', sans-serif; font-size: 2.3rem; line-height: 1; }
.admin-rules-midway-score span { font-family: 'Bungee', sans-serif; font-size: .72rem; }
.admin-rules-midway-grid article > .admin-rules-midway-attempts { margin-bottom: 5px; color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: .66rem; text-transform: uppercase; }
.admin-rules-midway-grid article > p { margin: 0; color: var(--rfr-ink-soft); font-size: .72rem; }
.admin-rules-midway-ledger .admin-rules-midway-unavailable { margin: 0; padding: 14px 16px; border: 2px dashed var(--rfr-gold-dark); background: rgba(255,253,245,.62); color: var(--rfr-red-dark); font-weight: 800; }
.admin-rules-midway-reset-tools { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin: 0 0 17px; padding: 11px 12px; border: 2px dashed var(--rfr-gold-dark); background: rgba(255,253,245,.62); }
.admin-rules-midway-reset { flex: 0 0 auto; min-height: 40px; padding: 8px 12px; border: 2px solid var(--rfr-ink); background: var(--rfr-paper); box-shadow: 3px 3px 0 rgba(44,23,20,.34); color: var(--rfr-red-dark); font-family: 'Bungee', sans-serif; font-size: .58rem; line-height: 1.25; text-transform: uppercase; white-space: nowrap; }
.admin-rules-midway-reset:hover:not(:disabled) { transform: translateY(-1px); background: var(--rfr-gold); }
.admin-rules-midway-reset:active:not(:disabled) { transform: translateY(1px); box-shadow: 1px 1px 0 rgba(44,23,20,.34); }
.admin-rules-midway-reset.is-armed { background: var(--rfr-red); color: var(--rfr-paper); }
.admin-rules-midway-reset:disabled { cursor: not-allowed; opacity: .58; }
.admin-rules-midway-reset-status { flex: 1 1 auto; margin: 0; color: var(--rfr-ink-soft); font-size: .72rem; font-weight: 800; line-height: 1.4; }
.admin-rules-midway-reset-status[hidden] { display: none; }
.admin-rules-midway-reset-status[data-tone="warning"],
.admin-rules-midway-reset-status[data-tone="error"] { color: var(--rfr-red-dark); }
.admin-rules-midway-reset-status[data-tone="success"] { color: #1c5c42; }

@media (max-width: 1120px) {
    .prediction-odds-list { grid-template-columns: minmax(0, 1fr); }
    .admin-rules-midway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .prediction-odds-row:nth-child(odd) { border-right: 0; }
    .prediction-odds-row:nth-last-child(-n + 2) { border-bottom: 1px dashed rgba(127, 21, 32, 0.44); }
    .prediction-odds-row:last-child { border-bottom: 0; }
}

@media (max-width: 760px) {
    .page-dashboard .dashboard-section { padding: 22px 16px; }
    .prediction-slip,
    .dashboard-challenge-section .challenge-list,
    .admin-prediction-grid,
    .admin-rules-midway-grid { grid-template-columns: 1fr; }
    .admin-rules-midway-reset-tools { align-items: stretch; flex-direction: column; }
    .admin-rules-midway-reset { width: 100%; white-space: normal; }
    .prediction-slip { padding: 0 14px 24px; }
    .prediction-slip-heading { grid-template-columns: minmax(0, 1fr); grid-template-areas: "event" "title" "theme"; gap: 3px; margin-inline: -14px; }
    .prediction-slip-heading > small { max-width: none; text-align: left; }
    .prediction-slip-details { grid-template-columns: minmax(0, 1fr); gap: 7px; }
    .prediction-slip-details div { grid-template-columns: 74px minmax(0, 1fr); align-items: baseline; }
    .prediction-odds-heading { align-items: start; }
    .prediction-odds-row { grid-template-columns: minmax(0, 1fr) auto 40px; padding-left: 10px; }
    .prediction-odds-info { width: 40px; }
    .prediction-odds-dialog { width: calc(100% - 18px); max-height: calc(100dvh - 12px); padding: 8px; }
    .prediction-odds-dialog-card { padding: 34px 22px 26px; box-shadow: 6px 7px 0 var(--rfr-red-dark); }
    .prediction-odds-dialog-heading { gap: 14px; }
    .prediction-odds-dialog-price { font-size: clamp(2rem, 14vw, 3.2rem); }
    .prediction-field { grid-template-columns: 78px minmax(0, 1fr); padding: 0; }
    .prediction-position-marker { min-height: 116px; }
    .prediction-position-marker b { font-size: 1.18rem; }
    .prediction-field-control { padding: 14px 12px; }
    .dashboard-challenge-section .challenge-card:first-child { grid-column: auto; }
    .dashboard-challenge-section .challenge-group { padding: 18px 12px; }
    .prediction-slip-controls,
    .admin-status-board,
    .admin-review-card header { align-items: stretch; flex-direction: column; }
    .prediction-slip-controls { display: grid; grid-column: auto; }
    .prediction-slip-controls .show-button { width: 100%; }
    .admin-review-tabs { width: 100%; }
    .admin-review-tab {
        position: relative;
        justify-content: center;
        min-height: 70px;
        padding: 29px 4px 8px;
        font-size: 0.57rem;
        text-align: center;
    }
    .admin-review-tab strong {
        position: absolute;
        top: 6px;
        left: 50%;
        min-width: 22px;
        min-height: 22px;
        border-width: 1px;
        font-size: 0.7rem;
        transform: translateX(-50%);
    }
    .admin-review-actions { display: grid; }
    .challenge-stamp-summary .challenge-refresh-button { width: 100%; margin-left: 0; }
    .challenge-passport-tracker { padding-inline: 12px; }
    .challenge-passport-tracker::before { display: none; }
    .challenge-passport-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 15px;
        padding: 2px;
    }
    .challenge-passport-stamp { min-height: 210px; }
    .challenge-passport-controls { align-items: stretch; flex-direction: column; }
    .challenge-passport-controls .challenge-refresh-button { width: 100%; margin-left: 0; }
    .challenge-tab-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin-inline: 0; overflow: visible; padding-bottom: 5px; }
    .challenge-tab { min-height: 76px; padding: 25px 5px 8px; font-size: 0.64rem; line-height: 1.18; }
    .challenge-tab::before {
        left: 5px;
        right: 5px;
        overflow: visible;
        font-size: 0.42rem;
        letter-spacing: 0.025em;
        line-height: 1.05;
        text-overflow: clip;
        white-space: normal;
    }
    .dashboard-challenge-section .challenge-card {
        min-block-size: 650px;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "challenge-copy"
            "challenge-status"
            "challenge-response";
        row-gap: 14px;
    }
    .challenge-submission-status { min-width: 136px; min-height: 70px; padding-inline: 9px; font-size: 0.94rem !important; }
    .challenge-linked-record > header { align-items: flex-start; flex-direction: column; }
    .challenge-linked-record dl { grid-template-columns: minmax(0, 1fr); }
    .challenge-linked-action { justify-self: stretch; text-align: center; }
    .dashboard-ledger-table { display: block; max-width: 100%; overflow-x: auto; }
    .admin-office-header { grid-template-columns: minmax(0, 1fr); }
    .admin-office-copy,
    .admin-office-seal { min-width: 0; }
    .admin-office-copy { padding: 30px 22px; }
    .admin-office-copy h1 { font-size: clamp(2rem, 9vw, 3.5rem); }
    .admin-office-seal { min-height: 120px; border-left: 0; border-top: 3px dashed var(--rfr-ink); }
    .page-admin .dashboard-admin-section { padding: 22px 18px; }
}

@media (max-width: 860px) {
    .navigation-mobile-auth {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
    }

    .navigation-mobile-auth .auth-link,
    .navigation-mobile-auth .auth-button {
        width: 100%;
        min-width: 0;
        margin: 0;
        white-space: normal;
        text-align: center;
    }

    .navigation-mobile-auth .auth-link-admin,
    .navigation-mobile-auth .auth-link-admin[aria-current="page"] {
        background: var(--rfr-gold);
        color: var(--rfr-ink);
    }
}

@media (max-width: 620px) {
    .navigation-mobile-auth { grid-template-columns: 1fr; }
}

@media print {
    body:not(:has(header.site-header)) { padding-top: 0; }
    body::before,
    header.site-header,
    .site-footer,
    .hero-curtain,
    .hero-ticker { display: none !important; }
}
