:root {
  color-scheme: light;
  --ink: #181818;
  --muted: #666;
  --paper: #f2f0ec;
  --panel: #fff;
  --line: #1d1d1d;
  --red: #d71920;
  --yellow: #f1d84b;
  --gray: #dedbd5;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Arial", "Helvetica Neue", sans-serif; line-height: 1.45; }
a { color: inherit; }
button { font: inherit; }
.site-header { position: sticky; top: 0; z-index: 10; display: grid; grid-template-columns: 220px 1fr auto; gap: 12px; align-items: center; padding: 10px clamp(12px, 3vw, 36px); background: var(--panel); border-bottom: 4px solid var(--line); }
.venue { display: flex; gap: 10px; align-items: center; text-decoration: none; font-weight: 900; letter-spacing: 0; }
.venue-mark { width: 48px; height: 48px; display: grid; place-items: center; background: var(--line); color: #fff; font: 900 18px/1 Arial, sans-serif; }
nav, .lang { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
nav a, .lang button { min-height: 34px; border: 2px solid var(--line); background: #fff; padding: 7px 10px; text-decoration: none; font: 900 12px/1 Arial, sans-serif; }
.lang button[aria-pressed="true"] { background: var(--line); color: #fff; }
main { max-width: 1180px; margin: 0 auto; padding: 18px clamp(12px, 3vw, 28px) 44px; display: grid; gap: 22px; }
.section-label, .tag { margin: 0 0 8px; color: var(--red); font: 900 13px/1 "Arial", sans-serif; text-transform: uppercase; }
.event-lead { display: grid; grid-template-columns: 140px minmax(0, 1fr) 260px; gap: 14px; border: 4px solid var(--line); background: #fff; padding: 14px; }
.date-box { border: 3px solid var(--line); background: var(--yellow); padding: 12px; display: grid; align-content: center; text-align: center; min-height: 170px; }
.date-box span, .date-box small { font: 900 13px/1 Arial, sans-serif; }
.date-box b { font-size: clamp(34px, 6vw, 54px); line-height: .95; }
h1 { margin: 0; font-size: clamp(30px, 5vw, 62px); line-height: .96; letter-spacing: 0; }
.bill { margin: 14px 0; font-weight: 800; }
.time-price { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--line); border-left: 2px solid var(--line); }
.time-price div { border-right: 2px solid var(--line); border-bottom: 2px solid var(--line); padding: 8px; background: #fafafa; }
dt { font: 900 11px/1 Arial, sans-serif; color: var(--muted); }
dd { margin: 4px 0 0; font: 900 20px/1 Arial, sans-serif; }
.ticket-panel { border: 3px solid var(--line); padding: 12px; background: #f8f8f8; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.ticket-panel p { margin: 0; font-weight: 900; }
.ticket-panel button { border: 2px solid var(--line); background: var(--red); color: #fff; padding: 10px; font-weight: 900; cursor: pointer; }
.ticket-panel small { color: var(--muted); font-size: 12px; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 12px; border-bottom: 4px solid var(--line); margin-bottom: 10px; }
h2 { margin: 0; font-size: clamp(24px, 4vw, 42px); line-height: 1; }
.section-head a, .section-head span { font: 900 12px/1.3 Arial, sans-serif; color: var(--muted); }
.pickup-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pickup-grid article { border: 3px solid var(--line); background: #fff; padding: 12px; min-height: 132px; }
.pickup-grid span { display: inline-block; background: var(--line); color: #fff; padding: 4px 7px; font-weight: 900; margin-bottom: 10px; }
.pickup-grid b { display: block; font-size: 18px; line-height: 1.15; }
.pickup-grid small { display: block; margin-top: 10px; color: var(--muted); font-weight: 800; }
.schedule-list { display: grid; gap: 8px; }
.schedule-row { display: grid; grid-template-columns: 180px minmax(0, 1fr) 110px; gap: 10px; align-items: stretch; border: 3px solid var(--line); background: #fff; padding: 10px; }
.schedule-row.is-main { background: #fff8d8; }
.schedule-row time { font: 900 14px/1.2 "Courier New", monospace; color: var(--red); }
.schedule-row h3 { margin: 0 0 6px; font-size: 20px; line-height: 1.1; }
.schedule-row p { margin: 0; color: #333; font-weight: 700; }
.schedule-row a { align-self: center; justify-self: stretch; text-align: center; border: 2px solid var(--line); background: #f4f4f4; padding: 9px 6px; text-decoration: none; font-weight: 900; }
.news-attention { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.news, .attention, .vote-section { border: 3px solid var(--line); background: #fff; padding: 14px; }
.news ul, .attention ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.news li { display: grid; grid-template-columns: 110px 1fr; gap: 10px; border-top: 1px solid var(--gray); padding-top: 8px; }
.news span { font: 900 12px/1 "Courier New", monospace; color: var(--red); }
.attention li { border-top: 1px solid var(--gray); padding-top: 8px; font-weight: 800; }
.vote-section { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: center; }
.vote-section p { margin: 8px 0 0; font-weight: 800; }
.vote-widget { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.vote-widget button { min-height: 44px; border: 3px solid var(--line); background: var(--red); color: #fff; padding: 9px; font-weight: 900; cursor: pointer; }
.vote-widget button:disabled { opacity: .72; cursor: default; }
.vote-widget span { border: 3px solid var(--line); background: var(--yellow); padding: 9px 10px; white-space: nowrap; font-weight: 900; }
.vote-widget em { grid-column: 1 / -1; color: var(--muted); font: 900 11px/1.2 "Courier New", monospace; text-transform: uppercase; font-style: normal; }
footer { border-top: 4px solid var(--line); background: #fff; padding: 18px clamp(12px, 3vw, 36px); display: flex; gap: 16px; flex-wrap: wrap; justify-content: space-between; font-weight: 900; }
@media (max-width: 920px) {
  .site-header, .event-lead, .vote-section, .news-attention { grid-template-columns: 1fr; }
  .site-header { position: static; }
  .pickup-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  main { padding: 12px; }
  .time-price, .schedule-row, .news li, .vote-widget { grid-template-columns: 1fr; }
  h1 { font-size: clamp(30px, 12vw, 46px); }
}
