:root {
    color-scheme: dark;
    --black: #0b0907;
    --deep: #17110b;
    --panel: #21180f;
    --gold: #f0c86c;
	--pale: #fff0c2;
	--dim: #b58b42;
    --grid: #725629;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #070605; color: var(--pale); }
body { padding: clamp(10px, 2vw, 28px); font-family: Georgia, "Times New Roman", serif; }
a { color: var(--pale); }

.event-board {
    width: min(100%, 1600px);
    margin: 0 auto;
    padding: clamp(14px, 2.1vw, 34px);
    background: radial-gradient(circle at 50% 0, #2a1e10 0, var(--black) 42%, #100c08 100%);
    border: clamp(3px, .45vw, 8px) solid var(--gold);
    box-shadow: inset 0 0 0 2px #513b1d, inset 0 0 50px #000, 0 18px 45px #000b;
}

.board-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; padding: 0 1% 16px; border-bottom: 2px solid var(--dim); }
.club-title p, .club-title h1, .month-title strong, .month-title span { margin: 0; text-transform: uppercase; }
.club-title p { color: var(--gold); font-size: clamp(12px, 1.1vw, 18px); letter-spacing: .3em; }
.club-title h1 { font-size: clamp(32px, 4.3vw, 72px); line-height: .95; letter-spacing: .14em; font-weight: 500; }
.month-title { text-align: right; }
.month-title strong { display: block; font-size: clamp(18px, 2.1vw, 34px); letter-spacing: .08em; }
.month-title span { display: block; color: var(--gold); font-size: clamp(12px, 1.3vw, 21px); letter-spacing: .28em; }

.valknut { position: relative; width: clamp(50px, 5vw, 82px); height: clamp(52px, 5.2vw, 85px); }
.valknut span { position: absolute; left: 18%; top: 8%; width: 62%; height: 62%; border: 4px solid var(--gold); transform: rotate(45deg) skew(8deg, 8deg); }
.valknut span:nth-child(2) { left: 3%; top: 31%; }
.valknut span:nth-child(3) { left: 34%; top: 31%; }

.site-actions { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding: 14px 4px 2px; font-family: Arial, sans-serif; font-size: 14px; }
.site-actions > a:last-child { text-align: right; }
.primary-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.site-actions a { padding: 8px 12px; color: var(--gold); text-decoration: none; border: 1px solid var(--dim); }
.site-actions a:hover, .site-actions a:focus-visible { color: var(--black); background: var(--gold); }
.notice { margin: 14px 0; padding: 12px; color: var(--pale); background: #392313; border-left: 4px solid var(--gold); }

.board-content { display: grid; grid-template-columns: minmax(0, 70%) minmax(240px, 1fr); gap: clamp(10px, 2vw, 28px); padding-top: clamp(12px, 1.6vw, 24px); }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: auto repeat(6, minmax(70px, 1fr)); gap: 3px; min-width: 0; }
.weekday { display: grid; place-items: center; min-height: 34px; color: var(--gold); background: #251b10; font: 700 clamp(10px, .9vw, 14px) Arial, sans-serif; letter-spacing: .13em; }
.day-cell { position: relative; min-width: 0; min-height: clamp(74px, 8.5vw, 136px); overflow: hidden; padding: clamp(7px, .8vw, 12px); background: #12100d; border: 1px solid var(--grid); }
.day-cell.empty { opacity: .3; }
.day-cell.has-event { background: linear-gradient(135deg, #332617, #17120c); border-color: var(--dim); }
.day-cell.today { box-shadow: inset 0 0 0 3px var(--gold); }
.day-number { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: var(--dim); font: 700 clamp(12px, 1.05vw, 17px) Arial, sans-serif; }
.day-number em { color: var(--gold); font-size: .7em; font-style: normal; text-transform: uppercase; letter-spacing: .08em; }
.calendar-event { margin-top: clamp(6px, .7vw, 11px); overflow: hidden; }
.calendar-event strong, .calendar-event span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event strong { color: var(--pale); font: 700 clamp(10px, .88vw, 14px) Arial, sans-serif; }
.calendar-event span { margin-top: 3px; color: var(--gold); font: 400 clamp(10px, .82vw, 13px) Arial, sans-serif; }
.more-events { display: block; margin-top: 5px; color: var(--gold); font: 700 11px Arial, sans-serif; }

.event-sidebar { min-width: 0; padding: clamp(18px, 2.7vw, 44px); background: linear-gradient(180deg, #21180f, #15110c); border-left: 3px solid var(--dim); }
.sidebar-label { margin: 0; color: var(--gold); font: 700 clamp(11px, 1vw, 15px) Arial, sans-serif; letter-spacing: .22em; text-transform: uppercase; }
.next-date { margin: 24px 0 0; font: 700 clamp(12px, 1.1vw, 17px) Arial, sans-serif; }
.event-sidebar h2 { margin: 10px 0 0; font-size: clamp(25px, 3vw, 50px); line-height: 1.03; font-weight: 500; }
.next-dj { margin: 14px 0 0; color: var(--gold); font-size: clamp(18px, 1.7vw, 27px); font-weight: 700; text-transform: uppercase; }
.next-time { margin: 7px 0 0; font: 400 clamp(11px, 1vw, 15px) Arial, sans-serif; }
.sidebar-rule { height: 1px; margin: 30px 0 24px; background: var(--dim); }
.upcoming-list article { padding: 14px 0; border-bottom: 1px solid #4a3922; }
.upcoming-list strong, .upcoming-list span, .upcoming-list small { display: block; }
.upcoming-list strong { color: var(--gold); font: 700 clamp(11px, .9vw, 14px) Arial, sans-serif; }
.upcoming-list span { margin-top: 3px; font-size: clamp(15px, 1.3vw, 21px); }
.upcoming-list small, .quiet { color: #b89c68; font: 400 clamp(11px, .9vw, 14px) Arial, sans-serif; }

.board-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 15px; margin-top: 18px; padding: 14px 4px 0; color: var(--dim); border-top: 1px solid var(--dim); font: 400 clamp(10px, .85vw, 14px) Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.board-footer strong { color: var(--gold); text-align: center; }
.board-footer time { text-align: right; }

.board-mode { padding: 0; overflow: hidden; }
.board-mode .event-board { width: 100vw; height: 100vh; max-width: none; border-width: 6px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.board-mode .board-content { min-height: 0; }
.board-mode .calendar-grid { grid-template-rows: auto repeat(6, minmax(0, 1fr)); }
.board-mode .day-cell { min-height: 0; }

@media (max-width: 820px) {
    .board-content { grid-template-columns: 1fr; }
    .event-sidebar { border-left: 0; border-top: 3px solid var(--dim); }
    .site-actions { grid-template-columns: 1fr 1fr; }
    .primary-actions { grid-column: 1 / -1; grid-row: 2; }
    .calendar-grid { grid-template-rows: auto repeat(6, minmax(62px, 1fr)); }
    .calendar-event strong { white-space: normal; }
}

@media (max-width: 540px) {
    body { padding: 0; }
    .event-board { border-width: 3px; }
    .valknut { display: none; }
    .board-header { grid-template-columns: 1fr auto; gap: 8px; }
    .club-title p { letter-spacing: .15em; }
    .club-title h1 { letter-spacing: .08em; }
    .day-cell { padding: 5px; }
    .calendar-event span { display: none; }
    .board-footer span:first-child { display: none; }
    .board-footer { grid-template-columns: 1fr auto; }
}
