.calendar-route{--calendar-border:color-mix(in srgb, var(--color-border) 88%, transparent);--calendar-hour-height:3rem;min-height:calc(100vh - 5rem);color:var(--color-text)}.calendar-toolbar{z-index:20;min-height:4.25rem;padding:.65rem var(--shell-inline-padding);border-bottom:1px solid var(--calendar-border);background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.calendar-toolbar-controls{flex:none;min-width:0}.calendar-search-control{flex:0 0 18rem;width:18rem;min-width:0}.calendar-search-portal{z-index:40;position:relative}.calendar-search-results{border:1px solid var(--color-kumo-line);max-width:min(32rem,100vw - 2rem);box-shadow:0 20px 45px #00000047,0 4px 12px #0000002e}.calendar-search-result-copy{gap:.15rem;min-width:0;display:grid}.calendar-search-result-copy>span{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}.calendar-search-result small{color:var(--color-kumo-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1.3;overflow:hidden}.calendar-toolbar h1{flex:1 1 0;min-width:10rem;margin:0;font-size:1.35rem;font-weight:550;line-height:1.2}.calendar-filter-toggle{display:none}.calendar-view-tabs{flex:none}.calendar-layout{grid-template-columns:14rem minmax(0,1fr);min-height:calc(100vh - 9.25rem);display:grid}.calendar-layout>aside{border-right:1px solid var(--calendar-border);padding:1.25rem}.calendar-layout>aside h2{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .85rem;font-size:.75rem}.calendar-layout>aside p{color:var(--color-text-muted);margin:1.25rem 0 .5rem;font-size:.75rem;line-height:1.5}.calendar-layout>aside .calendar-subscription-actions{margin-top:1.25rem}.calendar-kind-filters{gap:.15rem;display:grid}.calendar-kind-filter{padding-right:1.1rem;position:relative}.calendar-kind-filter:after{background:var(--calendar-item-color);content:"";border-radius:50%;width:.7rem;height:.7rem;position:absolute;top:50%;right:.1rem;transform:translateY(-50%)}.calendar-surface{min-width:0;position:relative;overflow:hidden}.calendar-month{grid-template-columns:repeat(7,minmax(0,1fr));min-height:calc(100vh - 9.25rem);display:grid}.calendar-weekday{border-bottom:1px solid var(--calendar-border);color:var(--color-text-muted);text-align:center;text-transform:uppercase;padding:.45rem .55rem;font-size:.7rem;font-weight:600}.calendar-day-cell{border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);min-width:0;min-height:7.4rem;padding:.3rem}.calendar-day-cell:nth-child(7n+7){border-right:0}.calendar-day-cell.is-outside{background:color-mix(in srgb, var(--color-border) 10%, var(--color-bg));color:var(--color-text-muted)}.calendar-day-number{width:1.65rem;height:1.65rem;color:inherit;border-radius:50%;place-items:center;margin:0 auto .2rem;font-size:.78rem;display:grid}.calendar-day-number:hover{background:color-mix(in srgb, var(--color-border) 50%, transparent);text-decoration:none}.calendar-day-number.is-today{background:var(--color-accent);color:#fff;font-weight:650}.calendar-day-items{gap:2px;display:grid}.calendar-item{--calendar-item-color:#64748b;border-left:3px solid var(--calendar-item-color);background:color-mix(in srgb, var(--calendar-item-color) 13%, var(--color-bg));min-width:0;color:var(--color-text);border-radius:.25rem;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.4rem;padding:.23rem .38rem;font-size:.75rem;line-height:1.25;display:grid;container-type:inline-size}.calendar-item:hover{background:color-mix(in srgb, var(--calendar-item-color) 22%, var(--color-bg));text-decoration:none}.calendar-item:focus-visible,.calendar-cluster-child:focus-visible,.calendar-contact-strip a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.calendar-item time{color:var(--color-text-muted);flex:none;font-size:.68rem}.calendar-density-micro{border-left:0;min-height:1.15rem;padding:.12rem .28rem;display:block;overflow:hidden}.calendar-density-compact{min-height:2.1rem}.calendar-density-rich{height:3.6rem}.calendar-density-expanded{min-height:4.6rem}.calendar-entry-copy{gap:.08rem;min-width:0;display:grid}.calendar-entry-primary,.calendar-entry-secondary,.calendar-entry-tertiary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-entry-primary{font-weight:600}.calendar-entry-secondary,.calendar-entry-tertiary{color:var(--color-text-muted);font-size:.68rem;font-weight:450}.calendar-entry-visual{border-radius:.28rem;flex:none;place-items:center;width:2.8rem;height:2.8rem;display:grid;overflow:hidden}.calendar-entry-artwork,.calendar-entry-artwork img,.calendar-entry-image-wrap,.calendar-entry-image{object-fit:cover;width:100%;height:100%;display:block}.calendar-entry-image-wrap{position:relative}.calendar-entry-image{z-index:1;opacity:0;position:relative}.calendar-entry-image.is-loaded{opacity:1}.calendar-entry-image-fallback{height:100%;color:var(--color-text-muted);text-align:center;place-items:center;padding:.25rem;font-size:.62rem;line-height:1.2;display:grid;position:absolute;inset:0}.calendar-entry-artwork .spotify-artwork-placeholder{background:color-mix(in srgb, var(--calendar-item-color) 12%, var(--color-bg));width:100%;height:100%;display:block}.calendar-route-glyph{width:100%;height:100%;color:var(--calendar-item-color);opacity:.7}.calendar-route-glyph path{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.calendar-marker{border:1px solid color-mix(in srgb, var(--calendar-item-color) 36%, var(--color-border));max-width:8rem;color:var(--color-text-muted);text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:.12rem .35rem;font-size:.62rem;line-height:1.2;overflow:hidden}.calendar-marker-rating{color:var(--calendar-item-color);letter-spacing:-.05em}.calendar-scoreboard{grid-template-columns:1fr 1fr;align-items:center;width:100%;height:100%;display:grid}.calendar-scoreboard-team{min-width:0;color:var(--color-text-muted);place-items:center;gap:.05rem;display:grid}.calendar-scoreboard-team.is-winner{color:var(--color-text);font-weight:700}.calendar-scoreboard-team.is-loser{opacity:.68}.calendar-team-logo-stack{place-items:center;width:1.5rem;height:1.5rem;display:grid;position:relative}.calendar-team-logo,.calendar-team-logo img{object-fit:contain;width:1.5rem;height:1.5rem;display:block}.calendar-team-logo{opacity:0;position:absolute;inset:0}.calendar-team-logo.is-loaded{opacity:1}.calendar-scoreboard-score{font-size:.65rem}.calendar-scoreboard-abbreviation{text-overflow:ellipsis;max-width:2rem;font-size:.58rem;overflow:hidden}.calendar-scoreboard-state{text-align:center;grid-column:1/-1;font-size:.58rem}.calendar-item.is-compacted{grid-template-columns:auto minmax(0,1fr);height:2.2rem;min-height:2.2rem}.calendar-item.is-compacted .calendar-entry-visual,.calendar-item.is-compacted .calendar-entry-tertiary,.calendar-item.is-compacted .calendar-marker{display:none}.calendar-more{color:var(--color-text-muted);padding-left:.35rem;font-size:.7rem}.calendar-cluster{background:color-mix(in srgb, var(--calendar-border) 10%, transparent);border-radius:.3rem;min-width:0}.calendar-release-cluster>.calendar-item{border-radius:.3rem .3rem 0 0}.calendar-cluster-children{border-left:3px solid var(--calendar-item-color,#7c3aed);gap:1px;padding:.14rem .28rem .2rem .7rem;display:grid}.calendar-cluster-child{min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;overflow:hidden}.calendar-cluster-child:before{color:var(--calendar-item-color);content:"↳ "}.calendar-cluster-overflow{color:var(--color-text-muted);font-size:.62rem}.calendar-contact-strip{border-radius:.3rem;grid-template-columns:repeat(3,minmax(0,1fr));height:4.6rem;display:grid;position:relative;overflow:hidden}.calendar-contact-strip a{min-width:0;overflow:hidden}.calendar-contact-strip .calendar-entry-image-wrap,.calendar-contact-strip img{object-fit:cover;width:100%;height:100%}.calendar-contact-strip>.calendar-cluster-overflow{color:#fff;background:#000000a6;border-radius:999px;padding:.1rem .3rem;position:absolute;bottom:.25rem;right:.25rem}.calendar-kind-concert{--calendar-item-color:#c2410c}.calendar-kind-sporting-event{--calendar-item-color:#15803d}.calendar-kind-activity{--calendar-item-color:#0891b2}.calendar-kind-track,.calendar-kind-album,.calendar-kind-playlist,.calendar-kind-mix{--calendar-item-color:#7c3aed}.calendar-kind-podcast{--calendar-item-color:#b45309}.calendar-kind-movie,.calendar-kind-video{--calendar-item-color:#be123c}.calendar-kind-reading,.calendar-kind-book{--calendar-item-color:#2563eb}.calendar-kind-writing,.calendar-kind-blog{--calendar-item-color:#0f766e}.calendar-kind-photo{--calendar-item-color:#a21caf}.calendar-kind-work{--calendar-item-color:#475569}.calendar-time-grid-wrap{height:calc(100vh - 9.25rem);overflow:auto}.calendar-time-grid{grid-template-columns:4.2rem repeat(var(--calendar-days), minmax(8.5rem, 1fr));grid-template-rows:3.5rem auto calc(24 * var(--calendar-hour-height));min-width:calc(4.2rem + var(--calendar-days) * 8.5rem);display:grid}.calendar-time-corner,.calendar-time-day-heading{z-index:7;border-bottom:1px solid var(--calendar-border);background:var(--color-bg);position:sticky;top:0}.calendar-time-corner{z-index:9;border-right:1px solid var(--calendar-border);left:0}.calendar-time-day-heading{border-right:1px solid var(--calendar-border);color:var(--color-text);justify-content:center;align-items:center;gap:.45rem;display:flex}.calendar-time-day-heading:hover{text-decoration:none}.calendar-time-day-heading span{color:var(--color-text-muted);text-transform:uppercase;font-size:.7rem}.calendar-time-day-heading strong{border-radius:50%;place-items:center;width:1.9rem;height:1.9rem;font-size:1rem;display:grid}.calendar-time-day-heading.is-today strong{background:var(--color-accent);color:#fff}.calendar-all-day-label{z-index:6;border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);background:var(--color-bg);color:var(--color-text-muted);text-align:right;padding:.4rem .45rem;font-size:.65rem;position:sticky;left:0}.calendar-all-day-cell{border-right:1px solid var(--calendar-border);border-bottom:1px solid var(--calendar-border);align-content:start;gap:2px;min-height:2.25rem;padding:.25rem;display:grid}.calendar-hours{z-index:5;grid-template-rows:repeat(24, var(--calendar-hour-height));border-right:1px solid var(--calendar-border);background:var(--color-bg);display:grid;position:sticky;left:0}.calendar-hours span{color:var(--color-text-muted);text-align:right;padding-right:.45rem;font-size:.62rem;position:relative;top:-.65em}.calendar-time-column{border-right:1px solid var(--calendar-border);background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--calendar-hour-height) - 1px), var(--calendar-border) calc(var(--calendar-hour-height) - 1px), var(--calendar-border) var(--calendar-hour-height));position:relative}.calendar-timed-position{z-index:2;left:calc(.2rem + var(--calendar-lane,0) * ((100% - .4rem) / var(--calendar-lane-count,1)));width:calc(((100% - .4rem) / var(--calendar-lane-count,1)) - .12rem);min-height:1.65rem;position:absolute;transform:translateY(-1px)}.calendar-timed-position .calendar-item{box-shadow:0 1px 2px #0000001f}.calendar-overlap-link{background:var(--color-bg);color:var(--color-text-muted);border-radius:0 0 .25rem .25rem;padding:.1rem .25rem;font-size:.58rem;display:block}.calendar-now-line{z-index:4;background:#ea4335;height:2px;position:absolute;left:0;right:0}.calendar-now-line:before{content:"";background:#ea4335;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.calendar-schedule{width:min(52rem,100%);margin:0 auto;padding:1.5rem clamp(.8rem,3vw,2rem) 4rem}.calendar-schedule-day{border-bottom:1px solid var(--calendar-border);grid-template-columns:7rem 1fr;gap:1rem;padding:1rem 0;display:grid}.calendar-schedule-day header{grid-template-columns:2rem 2rem;align-content:start;align-items:center;display:grid}.calendar-schedule-day header strong{color:var(--color-text-muted);text-transform:uppercase;font-size:.72rem}.calendar-schedule-day header span{border-radius:50%;place-items:center;width:1.9rem;height:1.9rem;font-size:1rem;display:grid}.calendar-schedule-day header small{color:var(--color-text-muted);grid-column:1/-1;margin-top:.25rem;font-size:.7rem}.calendar-schedule-day>div{gap:.35rem;display:grid}.calendar-schedule-day .calendar-item{align-items:center}.calendar-empty{color:var(--color-text-muted);text-align:center}.calendar-year{grid-template-columns:repeat(4,minmax(11rem,1fr));gap:2rem 2.5rem;padding:2rem clamp(1rem,4vw,4rem) 4rem;display:grid}.calendar-mini-month h3{margin:0 0 .6rem;font-size:.95rem;font-weight:600}.calendar-mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:.15rem;display:grid}.calendar-mini-grid>span,.calendar-mini-grid>a{aspect-ratio:1;color:var(--color-text);place-items:center;font-size:.68rem;display:grid}.calendar-mini-grid>a{border-radius:50%;position:relative}.calendar-mini-grid>a:hover{background:color-mix(in srgb, var(--color-border) 55%, transparent);text-decoration:none}.calendar-mini-grid>a.is-outside{visibility:hidden}.calendar-mini-grid>a.has-items{background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));font-weight:650}.calendar-mini-grid>a i{background:var(--color-accent);color:#fff;border-radius:999px;min-width:.85rem;font-size:.5rem;font-style:normal;position:absolute;bottom:-2px;right:-1px}.calendar-mini-weekday{font-weight:650;color:var(--color-text-muted)!important}.calendar-loading{z-index:30;border:1px solid var(--color-border);background:var(--color-bg);border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .75rem;font-size:.75rem;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 18px #00000026}.calendar-error{margin:.75rem}@container (width<=14rem){.calendar-entry-visual,.calendar-entry-tertiary{display:none}.calendar-item{grid-template-columns:auto minmax(0,1fr) auto}}@container (width<=9rem){.calendar-entry-visual,.calendar-entry-tertiary,.calendar-marker,.calendar-item time{display:none}.calendar-item{grid-template-columns:minmax(0,1fr)}}@media (width<=920px){.calendar-toolbar{flex-wrap:wrap;gap:.45rem}.calendar-toolbar h1{flex-basis:100%;order:6;padding-top:.2rem;font-size:1.1rem}.calendar-toolbar-controls{min-width:100%}.calendar-search-control{display:none}.calendar-filter-toggle{display:inline-block}.calendar-view-tabs{margin-left:auto}.calendar-layout{grid-template-columns:1fr;min-height:calc(100vh - 11.5rem)}.calendar-layout>aside{z-index:15;border:1px solid var(--color-border);background:var(--color-bg);border-radius:0 0 .75rem;width:min(19rem,100vw - 2rem);max-height:70vh;display:none;position:absolute;top:0;left:0;overflow:auto;box-shadow:0 10px 30px #0000002e}.calendar-layout>aside.is-open{display:block}.calendar-month{min-height:calc(100vh - 11.5rem)}.calendar-year{grid-template-columns:repeat(2,minmax(10rem,1fr))}.calendar-time-grid-wrap{height:calc(100vh - 11.5rem)}}@media (width<=600px){.calendar-toolbar{padding:.55rem .7rem;position:relative}.calendar-view-tabs{width:100%;overflow-x:auto}.calendar-day-cell{min-height:5.6rem;padding:.18rem}.calendar-weekday{padding-inline:.1rem;font-size:.6rem}.calendar-day-number{width:1.45rem;height:1.45rem;font-size:.7rem}.calendar-day-items .calendar-density-micro{background:var(--calendar-item-color);border-radius:999px;height:.35rem;min-height:.35rem;padding:0;font-size:0}.calendar-day-items .calendar-density-micro .calendar-entry-copy{height:.3rem}.calendar-more{display:none}.calendar-schedule{padding-inline:.7rem}.calendar-schedule-day{grid-template-columns:4.7rem 1fr;gap:.5rem}.calendar-contact-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-contact-strip>a:nth-child(n+3){display:none}.calendar-year{grid-template-columns:1fr;gap:2rem;padding:1.25rem max(1rem,8vw) 3rem}}@media (prefers-reduced-motion:reduce){.calendar-route *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (prefers-contrast:more){.calendar-item,.calendar-cluster{border:1px solid}.calendar-item{border-left:4px solid var(--calendar-item-color);background:var(--color-bg)}.calendar-route-glyph{opacity:1}}.site-header{margin-bottom:0}.site-content-frame.site-content-frame-wide{max-width:none;padding:0}.site-content-frame.site-content-frame-wide>.site-main{min-width:0}.site-content-frame.site-content-frame-wide .site-footer{padding-inline:var(--shell-inline-padding)}
