/* IndieTZ 1.0 RC1 — targeted refinements only. No homepage redesign. */

/* Calendar media occupies the complete cell; date remains an overlay. */
.month-cell{isolation:isolate!important}
.month-events{grid-row:1/-1!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;gap:0!important;position:relative!important;z-index:1!important}
.month-events>.month-event,.month-events>.calendar-insert{height:auto!important;min-height:0!important;flex:1 1 0!important;margin:0!important}
.month-events>.month-event:first-child{padding-top:31px!important}
.month-events>.calendar-insert{min-height:0!important;padding-top:34px!important}
.month-event .event-media,.calendar-insert img,.calendar-insert video{inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}

/* Today frame is always the final visual layer, even over an empty-day video/image. */
.month-cell.today-cell::after{content:""!important;position:absolute!important;inset:0!important;border:4px solid var(--hot)!important;z-index:2147483000!important;pointer-events:none!important;transform:none!important;opacity:1!important;background:transparent!important;animation:none!important}
.month-cell.today-cell.day-opening::after{border-color:var(--hot)!important}

/* One concise interaction language: distortion + blink + diagonal sweep. */
.month-event{transform-origin:center!important;transition:flex-grow .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease,filter .2s ease,transform .2s ease!important}
.month-event::after{content:""!important;position:absolute!important;z-index:6!important;top:-80%!important;bottom:-80%!important;width:34%!important;left:-55%!important;background:var(--acid)!important;border-inline:6px solid var(--hot)!important;transform:rotate(-27deg) translateX(-230%)!important;opacity:0!important;pointer-events:none!important}
.month-event:hover{animation:eventSignalBlink .38s steps(2,end) 1!important}
.month-event:hover::after{opacity:.96!important;animation:eventSignalBlade .48s cubic-bezier(.65,0,.22,1) forwards!important}
.month-events:has(.month-event:hover) .month-event:hover{flex-grow:9!important;filter:saturate(1.14) contrast(1.05)!important;transform:skewX(-1deg) scale(1.012)!important;z-index:30!important}
@keyframes eventSignalBlink{0%,100%{filter:saturate(1.12) contrast(1.04)}38%{filter:saturate(.15) contrast(1.45) brightness(1.35)}62%{filter:saturate(1.4) contrast(.9)}}
@keyframes eventSignalBlade{0%{left:-55%;transform:rotate(-27deg) translateX(-230%)}100%{left:125%;transform:rotate(-27deg) translateX(80%)}}

/* Header folds rather than snapping away when the programme docks. */
.site-header{transition:background .28s ease,box-shadow .28s ease!important}
.site-logo-wrap,.header-marquee,.menu-button{transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s linear .28s!important}
.programme-dock-controls{display:grid!important;opacity:0!important;transform:translateY(-100%)!important;pointer-events:none!important;transition:opacity .22s ease,transform .32s cubic-bezier(.2,.8,.2,1)!important}
body.programme-docked .site-logo-wrap,body.programme-docked .header-marquee,body.programme-docked .menu-button{visibility:visible!important;opacity:0!important;transform:translateY(-120%)!important;pointer-events:none!important;transition-delay:0s!important}
body.programme-docked .programme-dock-controls{opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important}

@media (prefers-reduced-motion:reduce){.month-event:hover,.month-event:hover::after{animation:none!important}.programme-dock-controls,.site-logo-wrap,.header-marquee,.menu-button{transition:none!important}}

/* V5.7 private preview */
.private-site-lock{min-height:100vh;display:grid;place-items:center;background:#090909;color:#fffaf0;padding:32px;text-align:center}
.private-site-lock-inner{display:grid;gap:18px;justify-items:center;max-width:760px}
.private-site-lock img{width:min(68vw,520px);max-height:220px;object-fit:contain}
.private-site-lock-logo{font:900 clamp(52px,14vw,150px)/.85 var(--font-display,Arial Black,sans-serif);letter-spacing:-.08em}
.private-site-lock h1{margin:0;font:900 clamp(38px,8vw,86px)/.9 var(--font-display,Arial Black,sans-serif)}
.private-site-lock p{margin:0;font:700 18px/1.4 var(--font-body,Arial,sans-serif);color:#dfff00}
.admin-preview-badge{position:fixed;z-index:99999;left:12px;bottom:12px;background:#dfff00;color:#090909;border:2px solid #090909;padding:8px 11px;font:800 12px/1 var(--font-utility,Arial,sans-serif);box-shadow:4px 4px 0 #ff2b93;pointer-events:none}
