@charset "UTF-8";

.lr-home {
  --lr-ink: oklch(20% 0.045 253);
  --lr-navy: oklch(28% 0.115 252);
  --lr-blue: oklch(43% 0.145 246);
  --lr-muted: oklch(50% 0.035 250);
  --lr-paper: oklch(99% 0.004 230);
  --lr-surface: oklch(96% 0.018 229);
  --lr-line: oklch(79% 0.04 237);
  --lr-focus: oklch(70% 0.17 225);
  min-width: 320px;
  color: var(--lr-ink);
  background: oklch(93% 0.02 236);
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
}

.lr-home *, .lr-home *::before, .lr-home *::after { box-sizing: border-box; }

.lr-home a:focus-visible,
.lr-home button:focus-visible,
.lr-home select:focus-visible,
.lr-home .datecell:focus-visible {
  outline: 3px solid var(--lr-focus);
  outline-offset: 3px;
}

.lr-main {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: clamp(32px, 4.5vw, 64px);
  scroll-margin-top: 72px;
  background: var(--lr-surface);
  border: 1px solid oklch(78% 0.05 233);
}

.lr-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 18px;
  border-bottom: 3px solid var(--lr-navy);
}

.lr-kicker {
  margin: 0;
  color: oklch(47% 0.13 244);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .15em;
}

.lr-section-head h1,
.lr-section-head h2 {
  margin: 4px 0 0;
  color: var(--lr-ink);
  font-size: clamp(1.65rem, 3vw, 2.45rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.04em;
}

.lr-data-status {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .06em;
}

.lr-data-status i {
  width: 9px;
  height: 9px;
  background: oklch(66% 0.19 151);
  box-shadow: 0 0 0 5px oklch(66% 0.19 151 / .15);
}

.lr-column-labels,
.lr-event {
  display: grid;
  grid-template-columns: 110px minmax(260px, 1.5fr) minmax(210px, 1fr) 90px;
  gap: 24px;
  align-items: center;
}

.lr-column-labels {
  padding: 13px 18px;
  color: var(--lr-muted);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .08em;
  border-bottom: 1px solid oklch(76% 0.045 238);
}

.lr-event {
  min-height: 108px;
  padding: 18px;
  color: inherit;
  text-decoration: none;
  background: var(--lr-paper);
  border-bottom: 1px solid var(--lr-line);
  transition: color .2s ease-out, background-color .2s ease-out, transform .2s ease-out;
}

.lr-event:hover {
  color: oklch(30% 0.13 245);
  background: oklch(98% 0.02 222);
  transform: translateX(4px);
}

.lr-event time { display: grid; }
.lr-event time strong { font-size: 1.45rem; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.lr-event time span { color: oklch(50% 0.11 242); font-size: .68rem; font-weight: 800; }

.lr-event h2 {
  margin: 0;
  color: inherit;
  font-size: clamp(.94rem, 1.5vw, 1.1rem);
  font-weight: 750;
  line-height: 1.55;
}

.lr-event-meta p {
  margin: 0;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.55;
  white-space: pre-line;
}

.lr-event-meta small {
  display: block;
  margin-top: 5px;
  color: var(--lr-muted);
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
}

.lr-open {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 0 12px;
  color: oklch(97% 0.008 220);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .04em;
  background: oklch(32% 0.13 250);
}

.lr-open i { font-style: normal; }
.lr-empty { margin: 0; padding: 28px 18px; color: var(--lr-muted); background: var(--lr-paper); }

.lr-calendar,
.lr-archive { margin-top: clamp(64px, 9vw, 112px); }

.lr-month-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}

.lr-month-controls button {
  width: 42px;
  height: 42px;
  padding: 0;
  cursor: pointer;
  color: oklch(24% 0.06 250);
  background: var(--lr-paper);
  border: 1px solid oklch(65% 0.07 239);
  border-radius: 0;
}

.lr-month-controls strong {
  min-width: 112px;
  margin: 0;
  text-align: center;
  font-size: .92rem;
  font-variant-numeric: tabular-nums;
}

.lr-search-message {
  min-height: 0;
  margin-top: 16px;
  color: var(--lr-muted);
  font-size: .78rem;
}

.lr-search-message:empty { display: none; }
.lr-search-results { display: grid; gap: 1px; margin: 8px 0 18px; padding: 0; list-style: none; background: var(--lr-line); }
.lr-search-results:empty { display: none; }
.lr-search-results a { display: block; padding: 14px 16px; color: var(--lr-ink); text-decoration: none; background: var(--lr-paper); }
.lr-search-results a:hover { color: var(--lr-blue); }

.lr-calendar .container-calendar {
  width: 100%;
  margin: 18px 0 0;
  padding: 0;
  overflow: visible;
  background: var(--lr-paper);
}

.lr-calendar .table-calendar {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-top: 1px solid oklch(72% 0.04 238);
  border-left: 1px solid oklch(72% 0.04 238);
}

.lr-calendar .table-calendar th,
.lr-calendar .table-calendar td {
  width: auto;
  height: 68px;
  padding: 8px 5px;
  color: var(--lr-ink);
  text-align: center;
  vertical-align: middle;
  background: var(--lr-paper);
  border: 0;
  border-right: 1px solid var(--lr-line);
  border-bottom: 1px solid var(--lr-line);
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
}

.lr-calendar .table-calendar th {
  height: 40px;
  color: var(--lr-muted);
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .06em;
}

.lr-calendar .table-calendar th:first-child,
.lr-calendar .table-calendar td:first-child { color: oklch(51% 0.17 29); }
.lr-calendar .table-calendar th:last-child,
.lr-calendar .table-calendar td:last-child { color: oklch(48% 0.15 252); }

.lr-calendar .datecell { cursor: pointer; transition: color .16s ease-out, background-color .16s ease-out; }
.lr-calendar .datecell:hover { color: oklch(98% 0.004 230); background: oklch(43% 0.13 244); transform: none; }
.lr-calendar .date-picker.is-outside-month { color: oklch(65% 0.025 245); background: oklch(97% 0.01 235); }
.lr-calendar .date-picker.is-today {
  color: oklch(25% 0.1 249);
  background: oklch(92% 0.055 225);
  box-shadow: inset 0 0 0 2px oklch(55% 0.15 236);
}
.lr-calendar .date-picker.is-active-date {
  color: oklch(98% 0.004 230) !important;
  background: oklch(28% 0.13 250) !important;
  box-shadow: inset 0 0 0 3px oklch(72% 0.16 225);
}
.lr-calendar .calendar-day-number { display: block; font-weight: 800; line-height: 1; }
.lr-calendar .calendar-today-label {
  display: inline-block;
  margin-top: 6px;
  padding: 2px 4px;
  color: oklch(98% 0.004 230);
  font-size: .48rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .06em;
  background: oklch(43% 0.145 246);
  border: 0;
}
.lr-calendar .date-picker.is-active-date .calendar-today-label {
  color: oklch(25% 0.1 249);
  background: oklch(91% 0.06 225);
}
.lr-calendar .calendar-events { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; margin-top: 6px; }
.lr-calendar .calendar-event-type {
  display: inline-block;
  padding: 2px 4px;
  color: oklch(31% 0.1 250);
  font-size: .56rem;
  font-weight: 850;
  line-height: 1.15;
  white-space: nowrap;
  background: oklch(91% 0.045 239);
}
.lr-calendar .calendar-event-type.type-2 { color: oklch(39% 0.15 348); background: oklch(92% 0.055 348); }
.lr-calendar .calendar-event-type.type-3 { color: oklch(38% 0.12 57); background: oklch(92% 0.08 78); }
.lr-calendar .date-picker:is(:hover, .is-active-date) .calendar-event-type {
  color: oklch(98% 0.004 230);
  background: oklch(100% 0 0 / .2);
}

.lr-calendar .footer-container-calendar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 0;
  padding: 14px 0 0;
  border: 0;
  background: var(--lr-surface);
}

.lr-calendar .footer-container-calendar label { margin-right: auto; color: var(--lr-muted); font-size: .72rem; }
.lr-calendar .footer-container-calendar select {
  min-height: 42px;
  padding: 0 30px 0 10px;
  color: var(--lr-ink);
  background-color: var(--lr-paper);
  border: 1px solid oklch(65% 0.07 239);
  border-radius: 0;
  font-size: .78rem;
}

.lr-season-count {
  margin: 0;
  color: oklch(45% 0.04 248);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  font-variant-numeric: tabular-nums;
}

.lr-season-count strong { margin-right: 4px; color: oklch(25% 0.105 250); font-size: 1.35rem; }

.lr-year-filter {
  display: flex;
  gap: 8px;
  padding: 16px 0;
  overflow-x: auto;
  border-bottom: 1px solid oklch(76% 0.045 238);
  scrollbar-width: thin;
}

.lr-year-filter button {
  flex: 0 0 auto;
  min-width: 64px;
  min-height: 40px;
  padding: 0 14px;
  cursor: pointer;
  color: oklch(38% 0.07 249);
  background: transparent;
  border: 1px solid oklch(65% 0.07 239);
  border-radius: 0;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .06em;
}

.lr-year-filter button[aria-pressed="true"] {
  color: oklch(98% 0.004 230);
  background: oklch(31% 0.125 250);
  border-color: oklch(31% 0.125 250);
}

.lr-archive-labels,
.lr-archive-row {
  display: grid;
  grid-template-columns: 88px minmax(280px, 1fr) minmax(110px, .35fr) 100px;
  gap: 24px;
  align-items: center;
}

.lr-archive-labels {
  padding: 11px 16px;
  color: var(--lr-muted);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  border-bottom: 1px solid oklch(76% 0.045 238);
}

.lr-archive-row {
  min-height: 82px;
  padding: 14px 16px;
  color: inherit;
  text-decoration: none;
  background: var(--lr-paper);
  border-bottom: 1px solid var(--lr-line);
  transition: color .18s ease-out, background-color .18s ease-out;
}

.lr-archive-row:hover { color: oklch(33% 0.13 244); background: oklch(98% 0.02 222); }
.lr-archive-row[hidden] { display: none; }
.lr-archive-row time { font-size: 1.12rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.lr-archive-row strong { display: block; font-size: .9rem; line-height: 1.5; }
.lr-archive-row small { display: block; margin-top: 3px; color: var(--lr-muted); font-size: .68rem; }
.lr-archive-row > span:nth-child(3) { color: oklch(42% 0.035 250); font-size: .76rem; font-weight: 700; white-space: pre-line; }
.lr-archive-row b { display: flex; justify-content: space-between; font-size: .68rem; letter-spacing: .06em; }
.lr-archive-row i { font-style: normal; }

.lr-archive-all {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 54px;
  padding: 0 16px;
  cursor: pointer;
  color: oklch(97% 0.008 220);
  background: oklch(24% 0.095 252);
  border: 0;
  border-radius: 0;
  font-size: .78rem;
  font-weight: 800;
  text-align: left;
}

.lr-archive-all small { font-size: .64rem; letter-spacing: .1em; }
.lr-archive-all:hover { background: oklch(34% 0.13 246); }
.lr-archive-all[hidden] { display: none; }

.lr-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lr-home footer { margin-top: clamp(56px, 8vw, 96px); }

@media (max-width: 900px) {
  .lr-column-labels { display: none; }
  .lr-event { grid-template-columns: 90px minmax(0, 1fr) 80px; }
  .lr-event-meta { grid-column: 2; }
  .lr-open { grid-column: 3; grid-row: 1 / span 2; }
  .lr-archive-labels, .lr-archive-row { grid-template-columns: 70px minmax(0, 1fr) 88px; gap: 16px; }
  .lr-archive-labels span:nth-child(3), .lr-archive-row > span:nth-child(3) { display: none; }
}

@media (max-width: 620px) {
  .lr-home { background: var(--lr-surface); }

  .lr-main {
    width: calc(100% - 8px);
    margin-inline: 4px;
    padding: 28px 0 0;
    border-inline: 0;
  }

  .lr-section-head { align-items: flex-start; flex-direction: column; margin-inline: 16px; }
  .lr-data-status { min-height: 28px; }
  .lr-event { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .lr-event time strong { font-size: 1.28rem; }
  .lr-event-meta { grid-column: 2; }
  .lr-open { grid-column: 1 / -1; grid-row: auto; }

  .lr-calendar,
  .lr-archive { margin-top: 64px; }

  .lr-month-controls { width: 100%; justify-content: space-between; }
  .lr-calendar .table-calendar th, .lr-calendar .table-calendar td { height: 62px; padding: 6px 2px; font-size: .72rem; }
  .lr-calendar .table-calendar th { height: 38px; font-size: .6rem; }
  .lr-calendar .calendar-event-type { padding-inline: 2px; font-size: .48rem; }
  .lr-calendar .footer-container-calendar { flex-wrap: wrap; padding: 14px 16px 0; }
  .lr-calendar .footer-container-calendar label { width: 100%; }
  .lr-search-message { margin-inline: 16px; }
  .lr-search-results { margin-inline: 16px; }

  .lr-year-filter { padding-inline: 16px; }
  .lr-archive-labels { display: none; }
  .lr-archive-row { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 16px; }
  .lr-archive-row b { grid-column: 2; justify-content: flex-start; gap: 10px; margin-top: 3px; color: oklch(39% 0.13 244); }
  .lr-archive-all { align-items: flex-start; flex-direction: column; justify-content: center; gap: 5px; padding: 12px 16px; }
  .lr-empty { padding-inline: 16px; }
  .lr-home footer { margin-top: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  .lr-home *, .lr-home *::before, .lr-home *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
