.calsub-band{border:1px solid hsl(var(--border));border-radius:1.25rem;background:hsl(var(--card));padding:1.5rem;box-shadow:var(--shadow-2)}@media(min-width:768px){.calsub-band{padding:2rem}}.calsub-head{max-width:42rem;margin-bottom:1.5rem}.calsub-title{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}@media(min-width:768px){.calsub-title{font-size:1.75rem}}.calsub-lede{margin-top:.625rem;color:hsl(var(--muted-foreground));line-height:1.6}.calsub-figure{display:grid;gap:1rem;align-items:stretch}@media(min-width:900px){.calsub-figure{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}}.calsub-stage{display:flex;flex-direction:column;gap:.75rem;border:1px solid hsl(var(--border));border-radius:1rem;background:hsl(var(--background));padding:1rem;min-width:0}.calsub-stage-label{font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.calsub-stage-note{margin-top:auto;padding-top:.75rem;border-top:1px solid hsl(var(--border));font-size:.8125rem;line-height:1.5;color:hsl(var(--muted-foreground))}.calsub-note-icon{width:.875rem;height:.875rem;display:inline-block;vertical-align:-.125rem;margin-right:.375rem;color:hsl(var(--primary))}.calsub-field{display:flex;align-items:center;gap:.5rem;border:1px solid hsl(var(--border));border-radius:.75rem;background:hsl(var(--muted) / .5);padding:.75rem .875rem;min-width:0}.calsub-field-icon{width:1rem;height:1rem;flex:none;color:hsl(var(--primary))}.calsub-field-url{min-width:0;flex:1 1 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calsub-events{list-style:none;margin:0;padding:0;display:grid;gap:.375rem}.calsub-event{display:flex;align-items:baseline;gap:.5rem;border:1px solid hsl(var(--border));border-radius:.625rem;background:hsl(var(--card));padding:.4375rem .625rem;font-size:.75rem}.calsub-event-day{color:hsl(var(--muted-foreground));white-space:nowrap;font-variant-numeric:tabular-nums}.calsub-event-name{font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calsub-strip{display:flex;gap:3px;height:.625rem}.calsub-strip-cell{display:block;border-radius:999px;background:hsl(var(--primary) / .85)}.calsub-strip-cell:nth-child(2){background:hsl(var(--primary) / .55)}.calsub-strip-cell:nth-child(3){background:hsl(var(--primary) / .3)}.calsub-blocks{list-style:none;margin:0;padding:0;display:grid;gap:.375rem}.calsub-block{display:flex;align-items:center;gap:.5rem;border:1px solid hsl(var(--border));border-radius:.625rem;background:hsl(var(--card));padding:.5rem .625rem;font-size:.75rem}.calsub-block-icon{width:.875rem;height:.875rem;flex:none;color:hsl(var(--primary))}.calsub-block-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calsub-block-dates{margin-left:auto;color:hsl(var(--muted-foreground));white-space:nowrap;font-variant-numeric:tabular-nums}.calsub-rules{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1rem}@media(min-width:640px){.calsub-rules{grid-template-columns:repeat(2,minmax(0,1fr))}}.calsub-rule{border-top:1px solid hsl(var(--border));padding-top:.875rem}.calsub-rule-title{font-weight:600;line-height:1.35;margin-bottom:.3125rem}.calsub-rule-body{font-size:.875rem;line-height:1.6;color:hsl(var(--muted-foreground))}.calsub-next{display:flex;flex-wrap:wrap;align-items:baseline;gap:.625rem;margin-top:1.5rem;padding:.875rem 1rem;border:1px dashed hsl(var(--border));border-radius:.875rem;background:hsl(var(--muted) / .35)}.calsub-next-body{flex:1 1 16rem;font-size:.875rem;line-height:1.6;color:hsl(var(--muted-foreground))}.calsub-door{margin-top:1rem}.calsub-door-link{font-weight:600;color:hsl(var(--primary))}.calsub-door-link:hover{text-decoration:underline}.reveal[data-reveal=in] .calsub-event,.reveal[data-reveal=in] .calsub-block{animation:calsub-arrive .62s cubic-bezier(.22,1,.36,1) backwards}.reveal[data-reveal=in] .calsub-strip-cell{animation:calsub-fill .62s cubic-bezier(.22,1,.36,1) backwards}@keyframes calsub-arrive{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes calsub-fill{0%{opacity:.15}to{opacity:1}}@media(prefers-reduced-motion:reduce){.reveal[data-reveal=in] .calsub-event,.reveal[data-reveal=in] .calsub-block,.reveal[data-reveal=in] .calsub-strip-cell{animation:none}}
