.events-page{max-width:var(--max-width);margin:0 auto;padding:0 2rem 5rem}.events-header{padding:2rem 0 1.5rem;border-bottom:3px solid var(--border);margin-bottom:1.25rem}.events-header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.events-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:700;text-transform:uppercase;letter-spacing:-.03em;line-height:1.05}.events-sub{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);margin-top:.25rem}.view-toggle{display:flex;border:2px solid var(--border)}.view-btn{font-family:var(--font-display);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.4rem 1rem;background:var(--bg);color:var(--text-muted);border:none;cursor:pointer;transition:background .15s,color .15s}.view-btn+.view-btn{border-left:2px solid var(--border)}.view-btn.active{background:var(--border);color:var(--bg)}.view-btn:hover:not(.active){background:var(--highlight-dim)}.source-filters{display:flex;flex-wrap:wrap;gap:.75rem}.source-filter{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.62rem;color:var(--text-secondary);cursor:pointer;user-select:none}.source-filter input{display:none}.source-filter input:not(:checked)~.source-dot{opacity:.2}.source-filter input:not(:checked)~.source-name{opacity:.4;text-decoration:line-through}.source-dot{width:10px;height:10px;display:inline-block;border:2px solid var(--border);transition:opacity .15s}.source-name{transition:opacity .15s}.calendar-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.5rem 0}.nav-btn,.nav-today{font-family:var(--font-display);font-size:.75rem;font-weight:700;padding:.3rem .7rem;border:2px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:background .15s}.nav-btn:hover,.nav-today:hover{background:var(--highlight-dim)}.nav-label{font-family:var(--font-display);font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;min-width:14rem;text-align:center}.nav-today{margin-left:auto}.cal-header{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:3px solid var(--border)}.cal-day-name{font-family:var(--font-display);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;text-align:center;padding:.5rem 0;color:var(--text-muted)}.cal-body{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:10rem;border:1px solid var(--border);padding:.3rem;position:relative;overflow:hidden}.cal-cell.empty{background:var(--bg-subtle);opacity:.3}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--pink)}.cal-cell.has-events{background:var(--bg-elevated)}.cal-date{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:var(--text);display:block;margin-bottom:.2rem}.cal-cell.today .cal-date{color:var(--pink)}.cal-events{display:flex;flex-direction:column;gap:1px}.cal-event-row{display:flex;align-items:center;gap:3px;cursor:pointer;padding:1px 2px;border-radius:1px;transition:background .1s;overflow:hidden}.cal-event-row:hover{background:var(--highlight-dim)}.cal-event-dot{width:5px;height:5px;flex-shrink:0}.cal-event-name{font-family:var(--font-mono);font-size:.48rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.cal-event-row:hover .cal-event-name{color:var(--pink)}.cal-more-label{font-family:var(--font-mono);font-size:.45rem;color:var(--text-muted);padding-left:8px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr)}.week-day{border:1px solid var(--border);min-height:10rem;padding:.4rem;display:flex;flex-direction:column;gap:.3rem}.week-day.today{box-shadow:inset 0 0 0 2px var(--pink)}.week-day-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.2rem;padding-bottom:.2rem;border-bottom:2px solid var(--border)}.week-day-name{font-family:var(--font-display);font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.week-day-num{font-family:var(--font-display);font-size:.9rem;font-weight:700}.week-day.today .week-day-num{color:var(--pink)}.week-event{border-left:3px solid;padding:.25rem .35rem;background:var(--bg-elevated);cursor:pointer;transition:background .1s}.week-event:hover{background:var(--highlight-dim)}.week-event-time{font-family:var(--font-mono);font-size:.48rem;color:var(--text-muted);display:block}.week-event-title{font-family:var(--font-display);font-size:.58rem;font-weight:600;color:var(--text);display:block;line-height:1.2}.week-empty{flex:1}.event-list{margin-top:2rem;border-top:3px solid var(--border);padding-top:1.5rem}.list-empty{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-align:center;padding:2rem 0}.list-day{margin-bottom:1.5rem}.list-day-label{font-family:var(--font-display);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.5rem;padding-bottom:.35rem;border-bottom:2px solid var(--border)}.list-event{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem .5rem;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--bg-subtle)}.list-event:last-child{border-bottom:none}.list-event:hover{background:var(--highlight-dim)}.list-dot{width:10px;height:10px;flex-shrink:0;margin-top:.3rem}.list-event-info{flex:1;min-width:0}.list-event-title{font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--text);display:block;line-height:1.25;margin-bottom:.1rem}.list-event:hover .list-event-title{color:var(--pink)}.list-event-meta{font-family:var(--font-mono);font-size:.6rem;color:var(--text-muted);display:block}.list-event-source{font-family:var(--font-mono);font-size:.52rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;margin-top:.3rem}.panel-overlay{position:fixed;inset:0;background:#0000004d;z-index:200;opacity:0;pointer-events:none;transition:opacity .25s ease}.panel-overlay.open{opacity:1;pointer-events:auto}.event-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,85vw);background:var(--bg-elevated);border-left:3px solid var(--border);box-shadow:-6px 0 20px #0000001f;z-index:201;transform:translate(100%);transition:transform .3s ease;overflow-y:auto;padding:2rem 1.75rem}.event-panel.open{transform:translate(0)}.panel-close{position:absolute;top:1rem;right:1rem;font-size:1.5rem;background:none;border:2px solid var(--border);color:var(--text);cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s,color .15s}.panel-close:hover{background:var(--pink);color:#fff;border-color:var(--pink)}.panel-source{font-family:var(--font-mono);font-size:.58rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .5rem;border:2px solid;display:inline-block;margin-bottom:1.25rem}.panel-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:1.1;margin-bottom:1.5rem}.panel-meta-list{margin-bottom:1.5rem}.panel-meta-row{display:flex;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--bg-subtle)}.panel-meta-label{font-family:var(--font-mono);font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);min-width:5rem;flex-shrink:0}.panel-meta-value{font-family:var(--font-body);font-size:.85rem;color:var(--text);line-height:1.4}.panel-desc{font-family:var(--font-body);font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.panel-link{font-family:var(--font-display);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:#fff;background:var(--pink);padding:.6rem 1.25rem;border:2px solid var(--pink);display:inline-block;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}.panel-link:hover{transform:translate(-1px,-1px);box-shadow:var(--shadow)}.events-updated{font-family:var(--font-mono);font-size:.58rem;color:var(--text-muted);margin-top:2rem;text-align:center}@media(max-width:640px){.events-page{padding:0 1rem 4rem}.events-header-top{flex-direction:column;gap:1rem}.cal-cell{min-height:4rem;padding:.2rem}.cal-event-name{display:none}.cal-event-dot{width:6px;height:6px}.cal-events{flex-direction:row;flex-wrap:wrap;gap:2px}.cal-event-row{padding:0}.cal-more-label{padding-left:0}.week-grid{grid-template-columns:1fr}.week-day{min-height:3rem}.nav-label{min-width:auto;font-size:.85rem}.list-event{padding:.6rem .25rem}.list-event-source{display:none}}
