/* Shared rotating arrangement, scaled for desktop and mobile. */
.events-section{padding-left:5%;padding-right:5%}
.carousel{width:100%;max-width:944px;--card-width:40%;--rear-depth:167px;--front-depth:33px;--far-depth:383px;height:auto;aspect-ratio:944/600;touch-action:pan-y;filter:none}
.carousel-track{display:block;position:absolute;inset:0;overflow:visible;scroll-snap-type:none;perspective:1250px;transform-style:preserve-3d;border-radius:0}
.carousel .slide{position:absolute;left:50%;top:50%;width:var(--card-width);margin-left:calc(var(--card-width) / -2);flex:none;transform:translateY(-50%) translateX(calc(var(--offset, 0) * 69%)) translateZ(calc(var(--depth, 0) * var(--rear-depth) * -1)) rotateY(calc(var(--offset, 0) * -43deg)) scale(.87);transition:transform 550ms cubic-bezier(.22,.7,.25,1),opacity 400ms ease,filter 400ms ease;opacity:.78;filter:brightness(.8);z-index:1;will-change:transform;backface-visibility:hidden}
.carousel .center-slide{transform:translateY(-50%) translateX(0) translateZ(var(--front-depth)) rotateY(0deg) scale(1.06);opacity:1;filter:none;z-index:4}
.carousel .far-slide{transform:translateY(-50%) translateX(calc(var(--offset, 0) * 40%)) translateZ(calc(var(--far-depth) * -1)) rotateY(calc(var(--offset, 0) * -80deg)) scale(.7);opacity:0;pointer-events:none;z-index:0}
.carousel .poster{box-shadow:0 0 24px #c4a05d45}
.carousel .carousel-arrow{top:50%;z-index:6;width:44px;height:44px}
.carousel .previous{left:0}
.carousel .next{right:0}
.carousel-controls{padding-top:20px}
/* Mobile: tilted neighboring posters rotate around the emphasized center. */
@media(max-width:700px){
 .events-section{padding-left:3%;padding-right:3%}
 .carousel{max-width:100%;--card-width:58%;--rear-depth:100px;--front-depth:20px;--far-depth:230px;aspect-ratio:1/1.04}
 .carousel-track{perspective:750px;transform-style:preserve-3d}
 .carousel .carousel-arrow{width:32px;height:32px;font-size:25px;top:auto;bottom:0;transform:none}
 .carousel .previous{left:8%}
 .carousel .next{right:8%}
 .carousel-controls{padding-top:8px}
}
@media(prefers-reduced-motion:reduce){.carousel .slide{transition:none}}

/* Keep the past-event fade independent of carousel position and rotation. */
.carousel .poster.past-event-poster{opacity:0.5}

.carousel .event-countdown{position:absolute;left:0;right:0;bottom:0;z-index:3;pointer-events:none;background:#c4a05d;color:#000;text-align:center;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:clamp(10px,1.2vw,16px);line-height:1.3;padding:10px 5px;border-top:1px solid #eed19a;letter-spacing:.2px}
.carousel .event-countdown.countdown-urgent{background:#d52828;color:#fff;border-top-color:#fa8787}
@media(max-width:700px){.carousel .event-countdown{font-size:clamp(10px,2.4vw,15px);padding:8px 3px}}

.carousel .event-countdown.countdown-urgent > span{animation:countdown-flash 1s steps(1,end) infinite}
@keyframes countdown-flash{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.carousel .event-countdown.countdown-urgent > span{animation:none}}

.carousel .countdown-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
.carousel .countdown-values b,.carousel .countdown-values small{display:block;font-weight:700}
.carousel .countdown-values b{font-size:1.35em;line-height:1.2}
.carousel .countdown-values small{font-size:.8em;line-height:1.4}

.carousel .past-event-carousel-label{position:absolute;left:0;right:0;bottom:0;z-index:3;pointer-events:none;background:#9b2020;color:#fff4dc;text-align:center;font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:clamp(10px,1.2vw,16px);line-height:1.3;letter-spacing:.3px;padding:12px 5px;border-top:1px solid #d2ac61}
@media(max-width:700px){.carousel .past-event-carousel-label{font-size:clamp(10px,2.4vw,15px);padding:10px 3px}}

.floating-socials{position:fixed;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:12px;color:#c4a05d}
.floating-socials a,.floating-socials span{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#10100fe8;border:1px solid #c4a05d80;box-shadow:0 3px 12px #0006}
.floating-socials svg{width:25px;height:25px}
.floating-socials a:hover{color:#efd291;border-color:#efd291;transform:translateY(-2px)}

.poster .home-past-stamp{position:absolute;z-index:4;left:50%;top:50%;width:90%;height:auto;transform:translate(-50%,-50%) rotate(-45deg);color:#e5c77f;opacity:.65;pointer-events:none;filter:drop-shadow(0 1px 2px #000)}.home-past-stamp rect,.home-past-stamp path{fill:none;stroke:currentColor;stroke-width:3}.home-past-stamp rect+rect{stroke-width:1}.home-past-stamp text{fill:currentColor;stroke:none;text-anchor:middle;font-family:Tahoma,Arial,sans-serif;font-weight:900;letter-spacing:2px}.home-past-stamp .stamp-main{font-size:42px}.home-past-stamp .stamp-sub{font-size:19px;letter-spacing:4px}
