.annual-intro { margin:1.7rem 0 1.4rem; }
.annual-intro h2 { font-size:clamp(1.7rem,4vw,2.5rem); letter-spacing:-.8px; margin:.4rem 0 .7rem; }
.annual-intro>p:last-child { color:var(--muted,#b0b6d5); line-height:1.6; }
.annual-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:1.3rem; margin:0 0 1.6rem; border:1px solid var(--line,#30345e); border-radius:16px; background:var(--paper,#12142d); }
.annual-controls label { display:grid; min-width:0; gap:.5rem; font-size:.8rem; font-weight:650; color:var(--muted,#b0b6d5); }
.annual-controls input,.annual-controls select { box-sizing:border-box; width:100%; min-height:46px; padding:.7rem .8rem; font:inherit; font-size:.95rem; border:1px solid var(--line,#30345e); border-radius:9px; color:var(--ink,#f6f7ff); background:var(--cream,#0a0b1a); }
.annual-controls input::placeholder { color:var(--muted,#b0b6d5); opacity:1; }
.annual-controls .annual-search { grid-column:1/4; grid-row:1; }
.annual-controls .annual-clear { grid-column:4; grid-row:1; align-self:end; justify-self:end; min-height:46px; padding:.6rem 0 .6rem 1rem; border:0; background:transparent; color:var(--action,#00f5d4); font:inherit; font-size:.9rem; font-weight:650; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.annual-coming { color:var(--ink,#f6f7ff); border-top:1px solid var(--line,#30345e); border-bottom:1px solid var(--line,#30345e); padding:1.5rem 0; margin:1.5rem 0; }
.annual-coming-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.annual-coming h3 { margin:0 0 .35rem; font-size:1.65rem; letter-spacing:-.7px; }
.annual-coming-note { margin:0; color:var(--muted,#b0b6d5); font-size:.9rem; line-height:1.5; }
.annual-coming-count { color:var(--muted,#b0b6d5); font-size:.8rem; white-space:nowrap; }
.annual-coming-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem; }
.annual-coming-card { display:flex; gap:1rem; align-items:flex-start; min-width:0; padding:1.1rem; border:1px solid var(--line,#30345e); border-radius:13px; background:var(--paper,#12142d); }
.annual-calendar { flex:0 0 58px; display:flex; flex-direction:column; align-items:center; gap:3px; padding:.6rem .25rem; border-radius:9px; background:var(--event,#20264a); border:1px solid var(--line,#30345e); }
.annual-calendar-month { color:var(--orange,#ff2a85); text-transform:uppercase; font-size:.65rem; font-weight:800; letter-spacing:1px; }
.annual-calendar-day { font-size:1.85rem; line-height:1.05; letter-spacing:-1px; }
.annual-calendar-year { color:var(--muted,#b0b6d5); font-size:.65rem; }
.annual-coming-copy { min-width:0; flex:1; }
.annual-when { display:inline-block; margin:0 0 .45rem; font-size:.65rem; font-weight:750; letter-spacing:.6px; text-transform:uppercase; color:var(--muted,#b0b6d5); }
.annual-when-today,.annual-when-running { color:var(--action,#00f5d4); }
.annual-coming-card h4 { margin:0 0 .6rem; font-size:1rem; line-height:1.3; letter-spacing:-.2px; overflow-wrap:anywhere; }
.annual-coming-card h4 a { color:inherit; text-decoration:none; }
.annual-coming-card h4 a:hover { color:var(--orange,#ff2a85); text-decoration:underline; text-underline-offset:3px; }
.annual-coming-card p { margin:.3rem 0 0; line-height:1.4; font-size:.8rem; }
.annual-coming-date { font-weight:650; }
.annual-coming-place,.annual-coming-time { color:var(--muted,#b0b6d5); }
.annual-show-more { display:block; min-height:44px; margin:1.1rem auto 0; padding:.7rem 1.3rem; border:1px solid var(--line,#30345e); border-radius:9px; background:var(--paper,#12142d); color:var(--ink,#f6f7ff); font:inherit; font-size:.85rem; font-weight:650; cursor:pointer; }
.annual-show-more:hover { border-color:var(--orange,#ff2a85); color:var(--orange,#ff2a85); }
.annual-coming-empty { grid-column:1/-1; color:var(--muted,#b0b6d5); padding:1rem 0; }
.annual-date { font-weight:700; color:var(--orange,#ff2a85); }
.annual-draft { font-size:.85rem; color:#ffd186; font-weight:700; }
.annual-card { scroll-margin-top:1.5rem; }
.annual-card details { margin:1rem 0; }
.annual-card summary { cursor:pointer; min-height:44px; }
.annual-review-notice { padding:1rem; background:#453518; color:#ffe6b0; border-radius:8px; }
.annual-card .card-body { overflow-wrap:anywhere; }
.annual-card h3 { font-size:1.4rem; font-weight:800; line-height:1.25; letter-spacing:-.5px; margin:.6rem 0; }
.annual-card .card-kicker { color:var(--orange,#ff2a85); font-size:.8rem; font-weight:700; }
[hidden] { display:none!important; }
@media(max-width:1000px) { .annual-coming-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
 .annual-controls { grid-template-columns:repeat(2,minmax(0,1fr)); padding:1rem; gap:.9rem; }
 .annual-controls .annual-search { grid-column:1/-1; }
 .annual-controls .annual-clear { grid-column:1/-1; grid-row:auto; justify-self:start; padding:0; }
 .annual-coming-header { align-items:flex-start; flex-direction:column; gap:.5rem; }
 .annual-coming-list { grid-template-columns:1fr; }
 .annual-coming-card { padding:1rem; }
 .annual-coming h3 { font-size:1.45rem; }
}
@media(max-width:350px) { .annual-controls { grid-template-columns:1fr; } }
