*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page-bg);color:var(--text);font-family:var(--font)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #888;outline-offset:4px}[hidden]{display:none!important}.shell{width:min(var(--container),calc(100% - 40px));margin-inline:auto}.site-header{height:120px;display:grid;grid-template-columns:180px 140px 1fr 160px;gap:20px;align-items:center}.brand{height:112px;display:flex;align-items:center}.brand img{width:155px;height:112px;object-fit:contain}.nav-afisha{display:grid;place-items:center;background:var(--text);color:white;height:50px;border-radius:12px}.search{display:flex;align-items:center;border:1px solid var(--text);border-radius:12px;height:50px;padding:0 20px;gap:18px}.search-icon{display:block;width:24px;height:24px;flex:0 0 24px}.search input{border:0;background:transparent;min-width:0;width:100%;outline:none;font-size:16px}.header-right{align-self:center;display:grid;gap:8px}.menu-button{background:transparent;border:1px solid var(--text);border-radius:6px;height:30px}.header-right>a{font-size:18px;white-space:nowrap}.menu{background:white;padding:30px;border-radius:25px;display:flex;gap:40px;margin-bottom:20px}.home-hero{padding-top:18px}.slider{position:relative}.slide>a:first-child{display:block}.slide img{width:100%;height:642px;object-fit:cover;border-radius:var(--image-radius);display:block}.button{display:flex;align-items:center;justify-content:center;text-align:center;min-height:60px;border:1px solid var(--border);border-radius:var(--button-radius);background:transparent;font-size:20px;padding:12px 22px}.button:hover{background:var(--text);color:white}.primary{background:#000;color:white;border-color:#000}.slide>.button{margin-top:22px;min-height:68px;font-weight:400}.slider-prev,.slider-next{position:absolute;top:42%;border:0;background:white;border-radius:50%;width:32px;height:32px;font-size:25px;line-height:1}.slider-prev{left:-clamp(15px,8vw,125px)}.slider-next{right:-clamp(15px,8vw,125px)}.slide-dots{display:flex;justify-content:center;gap:9px;padding-top:12px}.slide-dot{width:10px;height:10px;border-radius:50%;padding:0;border:0;background:#ddd}.slide-dot[aria-pressed=true]{background:#fff}.afisha{padding-top:55px}.afisha h1,.schedule h2{font-size:40px;line-height:1.2;margin:18px 0 45px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px var(--grid-gap);align-items:start}.event-card{background:var(--surface);border-radius:var(--card-radius);padding:32px}.event-card h2{font-size:30px;line-height:1.3;margin:12px 0 14px;font-weight:700}.event-card p{font-size:18px;line-height:1.3;margin:0 0 20px;min-height:0}.event-card p:empty{display:none}.card-image{display:block}.card-image img{display:block;width:100%;height:350px;object-fit:cover;border-radius:var(--image-radius)}.event-card>.button{margin-top:24px;font-weight:700}.site-footer{display:grid;grid-template-columns:200px 1fr;gap:20px;margin-top:80px;padding:25px 0 35px;align-items:center}.site-footer img{width:160px;height:100px;object-fit:contain}.site-footer>div{justify-self:end}.footer-nav,.footer-legal{display:flex;gap:35px;justify-content:flex-end}.footer-legal{font-size:14px;margin-top:28px}.site-footer p{grid-column:1/-1;margin:0;font-size:14px}.program-hero{margin-top:50px;min-height:540px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:60px;background-image:var(--hero);background-size:cover;background-position:center;border-radius:var(--image-radius)}.program-hero h1{color:white;font-size:40px;line-height:1.2;max-width:450px;margin:0 0 36px}.program-hero>.button{background:white;min-width:300px}.program-hero>.button:hover{background:black}.schedule{padding-top:70px}.schedule h2{margin-bottom:32px}.year{font-size:40px;margin:40px 0}.performance{display:grid;grid-template-columns:1fr 1.25fr 1fr 210px;align-items:center;gap:25px;background:white;border-radius:35px;padding:25px 32px;margin-bottom:20px;min-height:114px}.performance strong{font-weight:400;font-size:26px;display:block}.performance span{display:block;font-size:18px;margin-top:8px}.performance-label{font-size:24px}.performance .button{font-size:18px;min-height:54px}.description{padding:70px 70px 45px;font-size:22px;line-height:1.5}.description p{margin:0 0 22px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-photo{border:0;padding:0;background:none;border-radius:24px;overflow:hidden}.gallery-photo img{width:100%;height:280px;object-fit:cover;display:block}.videos{margin-top:30px}.video-preview{width:100%;position:relative;border:0;padding:0;background:none;border-radius:var(--image-radius);overflow:hidden}.video-preview img{width:100%;max-height:650px;object-fit:cover;display:block}.play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:50%;padding:26px 32px;font-size:34px}.media-dialog{border:0;background:#141414;padding:40px 20px 20px;max-width:95vw;border-radius:16px}.media-dialog::backdrop{background:#000b}.dialog-content img{max-width:85vw;max-height:80vh}.dialog-content iframe{width:min(1000px,85vw);height:min(560px,65vh);border:0}.dialog-close{position:absolute;right:8px;top:4px;border:0;background:transparent;color:white;font-size:30px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.search-empty{font-size:20px}
@media(max-width:1199px){.site-header{grid-template-columns:160px 110px 1fr 160px;gap:16px}.slide img{height:auto;aspect-ratio:1.8}.event-card{padding:25px}.card-image img{height:300px}.performance{grid-template-columns:150px 1fr 180px;gap:20px}.performance-label{display:none}}
@media(max-width:639px){.shell{width:calc(100% - 48px)}.site-header{height:185px;grid-template-columns:1fr 120px 90px;grid-template-rows:105px 64px;gap:10px 16px}.brand{height:105px}.brand img{width:130px;height:100px}.nav-afisha{height:50px;align-self:start;margin-top:18px;font-size:14px}.header-right{height:90px;align-self:start;padding-top:18px;gap:10px}.menu-button{height:50px;border-radius:10px;font-size:14px}.header-right>a{font-size:18px;position:absolute;right:24px;top:80px}.search{grid-column:1/-1;grid-row:2;height:62px}.search input{font-size:14px}.home-hero{padding-top:18px}.slide img{aspect-ratio:1.9;object-fit:cover;border-radius:30px}.slide>.button{margin-top:44px;min-height:50px;font-size:16px}.slider-prev,.slider-next{width:24px;height:24px;font-size:20px;top:42%}.slider-prev{left:-21px}.slider-next{right:-21px}.afisha{padding-top:70px}.afisha h1,.schedule h2{font-size:28px;margin-bottom:30px}.cards{grid-template-columns:1fr;gap:30px}.event-card{padding:26px;border-radius:35px}.event-card h2{font-size:26px;margin-top:10px}.event-card p{font-size:16px}.card-image img{height:auto;aspect-ratio:1.45;border-radius:30px}.event-card>.button{min-height:52px;font-size:18px}.site-footer{grid-template-columns:1fr;margin-top:50px}.site-footer>div{justify-self:start}.footer-nav,.footer-legal{justify-content:flex-start;gap:18px;flex-wrap:wrap}.site-footer p{font-size:12px}.program-hero{min-height:460px;margin-top:15px;padding:30px;border-radius:30px;background-position:center}.program-hero h1{font-size:30px}.program-hero>.button{min-width:0;width:100%;min-height:52px;font-size:18px}.schedule{padding-top:45px}.year{font-size:30px;margin:30px 0}.performance{grid-template-columns:100px 1fr;padding:24px;gap:20px;border-radius:28px}.performance strong{font-size:22px}.performance span{font-size:16px}.performance .button{grid-column:1/-1;width:100%}.performance-label{display:block;grid-column:1/-1;font-size:20px}.description{padding:40px 0;font-size:18px}.gallery{grid-template-columns:1fr 1fr;gap:12px}.gallery-photo img{height:170px}.video-preview{border-radius:25px}.play{font-size:24px;padding:18px 22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.brand img{width:183px;height:183px;object-fit:contain;transform:translateY(-10px)}
.slider-prev{left:clamp(-125px,calc((var(--container) - 100vw)/2 + 12px),-15px)}
.slider-next{right:clamp(-125px,calc((var(--container) - 100vw)/2 + 12px),-15px)}
@media(max-width:639px){.brand img{width:142px;height:142px;transform:translateY(-10px)}.slider-prev{left:-21px}.slider-next{right:-21px}}
@media(max-width:639px){.site-header{grid-template-columns:minmax(0,1fr) 100px 78px;column-gap:12px}.brand{min-width:0}.brand img{width:min(142px,100%);height:auto}.search{min-width:0}.program-hero{min-height:0;height:auto;aspect-ratio:1.25;background-position:center top}.program-hero h1{font-size:24px;margin-bottom:20px}.program-hero>.button{font-size:16px;min-height:44px}}
@media(max-width:639px){.hero-with-title{aspect-ratio:.85}.hero-graphic{aspect-ratio:1.9;margin-bottom:90px;padding:0}.hero-graphic>.button{position:absolute;top:calc(100% + 25px);width:100%}}
.page-back{padding-top:18px}.page-back a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:16px}.page-back a:hover{text-decoration:underline}.page-back+.program-hero{margin-top:15px}
/* Poster artwork always fits in full: text printed on the image stays visible. */
.card-image{aspect-ratio:3/2;border-radius:var(--image-radius);overflow:hidden;background:var(--page-bg);display:flex;align-items:center;justify-content:center}
.card-image img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:0}
.slide img{height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center;background:var(--page-bg)}
.event-card h2,.event-card p{overflow-wrap:anywhere}
.program-hero{display:block;min-height:0;aspect-ratio:auto;height:auto;padding:0;background-image:none}
.program-poster{width:100%;height:auto;display:block;border-radius:var(--image-radius)}
.program-hero h1{color:var(--text);max-width:none;margin:24px 0;font-size:clamp(26px,4vw,40px)}
.program-hero>.button{position:static;margin-top:22px;width:100%;min-width:0}
.hero-graphic{margin-bottom:0}
@media(max-width:639px){.card-image img{height:100%;aspect-ratio:auto}.slide img{aspect-ratio:16/9;object-fit:contain}.program-hero,.hero-with-title,.hero-graphic{height:auto;aspect-ratio:auto;padding:0}.hero-graphic>.button{position:static;width:100%;margin-top:22px}}

/* Card framing is independent of the full event poster. */
.card-image{background:var(--surface);aspect-ratio:1.46}
.card-image img{object-fit:var(--poster-fit,cover);object-position:var(--poster-x,50%) var(--poster-y,50%);transform:scale(var(--poster-zoom,1));transform-origin:var(--poster-x,50%) var(--poster-y,50%)}
