        :root {
            --ink: #08070b;
            --night: #171020;
            --paper: #fff7e6;
            --gold: #ffc31a;
            --orange: #ff681f;
            --red: #d71820;
            --green: #1c5818;
            --purple: #5a3091;
            --blue: #177ca6;
            --line: rgba(255, 255, 255, .2);
            --shadow: 0 22px 70px rgba(0, 0, 0, .34);
        }

        * { box-sizing: border-box; }

        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            color: #fff;
            background:
                radial-gradient(circle at 50% 0%, rgba(255, 195, 26, .34), transparent 24rem),
                linear-gradient(180deg, #5c0815 0%, #ea3217 22%, #191016 55%, #08070b 100%);
            font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
            letter-spacing: 0;
        }

        body::before {
            position: fixed;
            inset: 0;
            z-index: -2;
            background: url('assets/flyer-front.jpg') center top / cover no-repeat;
            content: "";
            filter: saturate(1.12);
        }

        body::after {
            position: fixed;
            inset: 0;
            z-index: -1;
            background: linear-gradient(180deg, rgba(8, 7, 11, .38), rgba(8, 7, 11, .9) 44%, rgba(8, 7, 11, .96));
            content: "";
        }

        a {
            color: inherit;
        }

        .topbar {
            position: sticky;
            top: 0;
            z-index: 30;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding: .85rem clamp(1rem, 3vw, 2rem);
            background: rgba(8, 7, 11, .82);
            border-bottom: 1px solid var(--line);
            backdrop-filter: blur(16px);
        }

        .brand {
            display: flex;
            align-items: center;
            gap: .7rem;
            min-width: 0;
            text-transform: uppercase;
        }

        .brand-mark {
            display: grid;
            place-items: center;
            width: 2.6rem;
            aspect-ratio: 1;
            color: var(--ink);
            background: #fff;
            border: 4px solid #fff;
            border-radius: 50%;
            box-shadow: 0 0 0 2px var(--ink) inset;
            font-size: 1rem;
        }

        .brand span:last-child {
            overflow-wrap: anywhere;
        }

        .nav {
            display: flex;
            align-items: center;
            gap: .7rem;
        }

        .nav a,
        .button {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 2.75rem;
            padding: .75rem 1rem;
            color: #fff;
            text-decoration: none;
            text-transform: uppercase;
            background: var(--orange);
            border: 2px solid #090609;
            border-radius: 8px;
            box-shadow: 4px 4px 0 #090609;
            font-family: inherit;
            font-size: .98rem;
            cursor: pointer;
        }

        .nav a.secondary {
            background: transparent;
            box-shadow: none;
            border-color: rgba(255,255,255,.35);
        }

        .hero {
            display: grid;
            align-items: end;
            min-height: 88svh;
            padding: clamp(4rem, 12vw, 8rem) clamp(1rem, 4vw, 4rem) clamp(2rem, 5vw, 4rem);
        }

        .hero-content {
            width: min(1120px, 100%);
            margin: 0 auto;
        }

        .kicker {
            display: inline-flex;
            align-items: center;
            gap: .75rem;
            padding: .45rem .8rem;
            color: #101010;
            background: var(--gold);
            border: 2px solid #08070b;
            box-shadow: 4px 4px 0 #08070b;
            text-transform: uppercase;
        }

        h1 {
            max-width: 980px;
            margin: 1.2rem 0 .8rem;
            color: #fff;
            font-size: clamp(3rem, 10vw, 8.5rem);
            line-height: .88;
            text-transform: uppercase;
            text-shadow:
                0 6px 0 #08070b,
                0 10px 24px rgba(0,0,0,.7);
        }

        .hero-copy {
            max-width: 760px;
            margin: 0;
            font-family: Arial, Helvetica, sans-serif;
            font-size: clamp(1rem, 2.2vw, 1.35rem);
            line-height: 1.6;
            font-weight: 800;
        }

        .hero-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 1rem;
            margin-top: 1.5rem;
        }

        .page-band {
            padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 4vw, 4rem);
            background: rgba(8, 7, 11, .9);
        }

        .page-band.light {
            color: var(--ink);
            background: var(--paper);
        }

        .inner {
            width: min(1180px, 100%);
            margin: 0 auto;
        }

        .section-heading {
            display: grid;
            gap: .65rem;
            margin-bottom: 1.5rem;
        }

        h2 {
            margin: 0;
            font-size: clamp(2rem, 5vw, 4.5rem);
            line-height: .95;
            text-transform: uppercase;
        }

        .section-heading p {
            max-width: 760px;
            margin: 0;
            font-family: Arial, Helvetica, sans-serif;
            font-weight: 800;
            line-height: 1.55;
        }

        .event-strip {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            border-top: 3px solid var(--orange);
            border-bottom: 3px solid var(--orange);
            background: rgba(0, 0, 0, .5);
        }

        .event-strip div {
            min-width: 0;
            padding: 1rem;
            border-right: 1px solid var(--line);
        }

        .event-strip b {
            display: block;
            color: var(--gold);
            text-transform: uppercase;
        }

        .event-strip span {
            font-family: Arial, Helvetica, sans-serif;
            font-size: .95rem;
            font-weight: 800;
            line-height: 1.4;
        }

        .layout-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
            gap: clamp(1.2rem, 3vw, 2rem);
            align-items: start;
        }

        .map-shell,
        .signup-shell {
            background: rgba(8, 7, 11, .78);
            border: 1px solid var(--line);
            border-radius: 8px;
            box-shadow: var(--shadow);
            overflow: hidden;
        }

        .map-wrap {
            position: relative;
            background: #101010;
        }

        .map-wrap img {
            display: block;
            width: 100%;
            height: auto;
        }

        .spot-marker {
            position: absolute;
            left: var(--x);
            top: var(--y);
            display: grid;
            place-items: center;
            width: clamp(1.45rem, 2.7vw, 2.15rem);
            aspect-ratio: 1;
            transform: translate(-50%, -50%);
            color: #151008;
            background: var(--gold);
            border: 2px solid #0b0707;
            border-radius: 4px;
            box-shadow: 2px 2px 0 rgba(0,0,0,.65);
            font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
            font-size: clamp(.72rem, 1.35vw, 1rem);
            cursor: pointer;
        }

        .spot-marker[disabled] {
            color: rgba(255,255,255,.75);
            background: #5e5b5b;
            cursor: not-allowed;
            text-decoration: line-through;
        }

        .spot-marker.is-selected {
            color: #fff;
            background: var(--green);
            outline: 3px solid #fff;
            outline-offset: 2px;
        }

        .map-footer {
            display: flex;
            flex-wrap: wrap;
            gap: .65rem;
            align-items: center;
            justify-content: space-between;
            padding: .9rem 1rem;
            font-family: Arial, Helvetica, sans-serif;
            font-weight: 800;
        }

        .legend {
            display: flex;
            flex-wrap: wrap;
            gap: .8rem;
            font-size: .86rem;
        }

        .legend span {
            display: inline-flex;
            align-items: center;
            gap: .35rem;
        }

        .dot {
            width: .8rem;
            aspect-ratio: 1;
            border-radius: 3px;
            background: var(--gold);
            border: 1px solid #fff;
        }

        .dot.selected { background: var(--green); }
        .dot.booked { background: #5e5b5b; }

        .signup-shell {
            padding: clamp(1rem, 2.5vw, 1.4rem);
        }

        .selected-display {
            display: grid;
            gap: .25rem;
            margin-bottom: 1rem;
            padding: 1rem;
            color: var(--ink);
            background: var(--gold);
            border: 2px solid var(--ink);
            border-radius: 8px;
            box-shadow: 4px 4px 0 var(--ink);
        }

        .selected-display b {
            font-size: 2.2rem;
            line-height: 1;
        }

        form {
            display: grid;
            gap: .85rem;
        }

        label {
            display: grid;
            gap: .35rem;
            font-family: Arial, Helvetica, sans-serif;
            font-size: .9rem;
            font-weight: 900;
            text-transform: uppercase;
        }

        input,
        select,
        textarea {
            width: 100%;
            min-height: 3rem;
            padding: .8rem;
            color: #fff;
            background: rgba(255,255,255,.08);
            border: 1px solid rgba(255,255,255,.32);
            border-radius: 6px;
            font: 800 1rem Arial, Helvetica, sans-serif;
        }

        option {
            color: var(--ink);
        }

        textarea {
            min-height: 7rem;
            resize: vertical;
        }

        .form-row {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: .85rem;
        }

        .button {
            width: 100%;
            margin-top: .25rem;
        }

        .alert {
            margin-bottom: 1rem;
            padding: 1rem;
            border-radius: 8px;
            font-family: Arial, Helvetica, sans-serif;
            font-weight: 800;
            line-height: 1.45;
        }

        .alert.success {
            color: #06290a;
            background: #b9ff87;
            border: 2px solid #123b08;
        }

        .alert.error {
            color: #fff;
            background: #a70d17;
            border: 2px solid #fff;
        }

        .flyer-gallery {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: clamp(1rem, 3vw, 2rem);
        }

        .flyer-gallery img {
            width: 100%;
            border: 4px solid #fff;
            border-radius: 8px;
            box-shadow: var(--shadow);
        }

        .spot-list {
            display: flex;
            flex-wrap: wrap;
            gap: .45rem;
            margin-top: 1rem;
        }

        .spot-chip {
            min-width: 2.35rem;
            padding: .35rem .5rem;
            color: var(--ink);
            text-align: center;
            background: var(--gold);
            border: 1px solid var(--ink);
            border-radius: 5px;
            font-family: Arial, Helvetica, sans-serif;
            font-weight: 900;
        }

        .spot-chip.booked {
            color: #fff;
            background: #5e5b5b;
            text-decoration: line-through;
        }

        .footer {
            padding: 1.5rem clamp(1rem, 4vw, 4rem);
            color: rgba(255,255,255,.8);
            background: #08070b;
            font-family: Arial, Helvetica, sans-serif;
            font-weight: 800;
            text-align: center;
        }

        @media (max-width: 900px) {
            .event-strip,
            .layout-grid,
            .flyer-gallery {
                grid-template-columns: 1fr;
            }

            .event-strip div {
                border-right: 0;
                border-bottom: 1px solid var(--line);
            }

            .topbar {
                align-items: flex-start;
                flex-direction: column;
            }

            .nav {
                width: 100%;
            }

            .nav a {
                flex: 1;
            }
        }

        @media (max-width: 560px) {
            .form-row {
                grid-template-columns: 1fr;
            }

            .hero {
                min-height: 82svh;
            }

            .spot-marker {
                width: 1.25rem;
                border-width: 1px;
                font-size: .65rem;
            }
        }