/* News & Stories */
.comp-filter { margin-bottom: var(--space-6); }
.comps { display: grid; gap: var(--space-4); }
.comp { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--space-6); padding: var(--space-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.comp[hidden] { display: none; }
.comp--upcoming, .comp--open { border: 2px solid var(--storm); }
.comp__date { display: grid; gap: var(--space-1); align-content: start; }
.comp__day { font: 800 30px/1.05 var(--font-display); }
.comp__body { display: grid; gap: var(--space-3); min-width: 0; }
.comp__body h3 { margin: 0; font: 800 36px/1 var(--font-display); }
.comp__body p { margin: 0; line-height: 24px; }
.comp__where { color: var(--ink-muted); }
.comp__details { margin: 0; display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.comp__details > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: var(--space-3); padding: var(--space-2) var(--space-3); background: var(--surface); font-size: 15px; line-height: 22px; }
.comp__details dt { font: 700 12px/22px var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.comp__details dd { margin: 0; }
@media (max-width: 760px) {
  .comp { grid-template-columns: 1fr; gap: var(--space-3); padding: var(--space-4); }
  .comp__details > div { grid-template-columns: 1fr; gap: 0; }
}

.recaps { display: grid; gap: var(--space-4); }
.recap { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--space-6); padding: var(--space-6); background: var(--surface); border-radius: var(--radius-md); }
.recap__month { font: 800 28px/1.05 var(--font-display); color: var(--storm); }
.recap__body h3 { margin: 0 0 var(--space-3); font: 700 22px/28px var(--font-sans); }
.recap__body ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-4); }
.recap__body li p { margin: 0 0 var(--space-1); line-height: 25px; }
@media (max-width: 760px) { .recap { grid-template-columns: 1fr; gap: var(--space-2); padding: var(--space-4); } }

.timeline { margin: 0; padding: 0; list-style: none; position: relative; display: grid; gap: var(--space-6); }
.timeline::before { content: ""; position: absolute; left: 143px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
.tl { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 48px; position: relative; }
.tl::before { content: ""; position: absolute; left: 136px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--lime); border: 2px solid var(--ink); }
.tl__year { font: 800 26px/1 var(--font-display); text-align: right; padding-top: 4px; }
.tl__body h3 { margin: 0 0 var(--space-1); font: 700 20px/26px var(--font-sans); }
.tl__body p { margin: 0 0 var(--space-1); max-width: 70ch; line-height: 25px; }
@media (max-width: 600px) {
  .timeline::before { left: 7px; }
  .tl { grid-template-columns: 1fr; gap: var(--space-1); padding-left: 32px; }
  .tl::before { left: 0; top: 4px; }
  .tl__year { text-align: left; font-size: 22px; padding-top: 0; }
}

.stories { display: grid; gap: var(--space-3); }
.story { border-radius: var(--radius-md); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); }
.story summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-6); cursor: pointer; list-style: none; border-radius: var(--radius-md); }
.story summary::-webkit-details-marker { display: none; }
.story summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 2px solid var(--lime); border-bottom: 2px solid var(--lime); transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
.story[open] summary::after { transform: translateY(3px) rotate(-135deg); }
.story summary:hover { background: rgba(255,255,255,.05); }
.story summary:focus-visible { outline: 2px solid var(--lime); outline-offset: 2px; }
.story h3 { margin: 0; font: 800 28px/1.1 var(--font-display); }
.story__body { display: grid; gap: var(--space-3); padding: 0 var(--space-6) var(--space-6); }
.story p { margin: 0; line-height: 25px; }
.story h4 { margin: var(--space-3) 0 0; font: 800 22px/1.1 var(--font-display); color: inherit; text-transform: none; letter-spacing: normal; }
.story__list { margin: 0; padding-left: 1.2em; display: grid; gap: var(--space-2); line-height: 25px; }
@media (prefers-reduced-motion: reduce) { .story summary::after { transition: none; } }
.section--storm .src { color: rgba(255,255,255,.75); }
.stories__submit { margin-top: var(--space-6); font-size: 15px; }
