/* The curtain is transparent between its two physical surfaces. */
.curtain-intro{display:none}
.theatre-enabled main{overflow-x:clip}
.theatre-enabled .hero-scene{height:calc(var(--stage-height,100svh) * 2 + var(--intro-length,240svh));min-height:0}
.theatre-enabled .hero-sticky{position:sticky;top:0;height:var(--stage-height,100svh);min-height:0;transform:none;isolation:isolate}
.theatre-enabled .hero-content{animation:none;opacity:var(--stage-copy,0);transform:none;pointer-events:none;will-change:opacity;justify-content:flex-end;padding-bottom:clamp(64px,8vh,110px)}
.hero-line.outline{color:#d3b272;-webkit-text-stroke:0;text-shadow:none;filter:drop-shadow(0 2px 14px #190a0bb8)}
.card-turn-cue{display:none}
.theatre-enabled .hero-kicker-spacer{flex:1}
.theatre-enabled .hero-main{transform:none;flex-shrink:0}
.about{margin-top:0}
.gallery-jumps{position:absolute;z-index:6;left:50%;bottom:42px;transform:translateX(-50%);display:flex;align-items:stretch;gap:10px}
.gallery-jumps .gallery-counter{position:static;transform:none;display:grid;place-items:center;min-width:104px}
.gallery-jump{width:42px;min-height:38px;display:grid;place-items:center;border:1px solid #d3b27299;background:#17110dcc;color:#e5c789;backdrop-filter:blur(9px);transition:background .2s,color .2s,opacity .2s}
.gallery-jump svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.gallery-jump:hover:not(:disabled){background:#c6a567;color:#211b16}
.gallery-jump:focus-visible{outline:2px solid #ffe1a5;outline-offset:4px}
.gallery-jump:disabled{opacity:.35;cursor:default}
@media(min-width:761px){.gallery-jumps .gallery-jump{display:grid}}
@media(max-width:760px){.gallery-jumps{bottom:38px;gap:8px}.gallery-jump{min-height:42px}.gallery-jumps .gallery-counter{min-width:92px}}
.connection-screen{height:100svh;min-height:720px;display:flex;flex-direction:column;overflow:hidden}
.connection-screen .marquee{flex-shrink:0}
.connection-screen .connection{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:clamp(40px,7vh,84px);padding-bottom:0;overflow:visible}
.connection-screen .connection>.label{margin-bottom:clamp(25px,4vh,45px);flex-shrink:0}
.connection-screen .connection-grid{position:relative;flex:1;min-height:0;align-items:stretch}
.connection-screen .connection-type{min-height:0}
.connection-screen .connection-copy{padding-top:clamp(32px,5vh,70px);padding-bottom:clamp(62px,9vh,110px)}
.connection-screen .connection-image{position:absolute;left:calc(55% + 15px);right:0;top:clamp(20px,4vh,50px);height:calc(100% + 35px);transform:rotate(4deg)}
.connection-image picture{display:block;width:100%;height:100%}
@media(max-width:760px){
  .connection-screen{min-height:800px}
  .connection-screen .connection{padding-top:28px}
  .connection-screen .connection>.label{margin-bottom:24px}
  .connection-screen .connection-grid{gap:20px}
  .connection-screen .connection-type{flex-shrink:0}
  .connection-screen .connection-copy{margin-top:28px;padding:0;max-width:350px}
  .connection-screen .connection-image{position:relative;left:auto;right:auto;top:28px;flex:1;min-height:220px;height:auto;transform:rotate(2deg)}
}
.theatre-enabled .about-scroll{position:relative;z-index:2;pointer-events:none}
.theatre-enabled .about{position:sticky;top:0;min-height:100svh;transform:translate3d(100%,0,0);will-change:transform;pointer-events:auto}
.theatre-enabled .about .reveal{opacity:1;transform:none;clip-path:none;transition:none}
.theatre-enabled .about-body{margin-bottom:0}
.team .section-head{display:block}
.team .section-note{margin-top:32px;max-width:540px}
.team.has-arc{padding:0 0 80px}
.team.has-arc .team-sticky{height:100svh;position:sticky;top:0;overflow:hidden;isolation:isolate}
.team.has-arc .team-intro{position:absolute;top:clamp(48px,8vh,100px);left:var(--gutter);width:48%;will-change:transform,opacity}
.team.has-arc .team-intro .reveal{opacity:1;transform:none;clip-path:none;transition:none}
.team.has-arc .team-grid{position:absolute;inset:0;display:block;outline-offset:-4px;pointer-events:none}
.team.has-arc .team-grid .flip-card{position:absolute;top:0;left:0;width:var(--portrait-width);height:var(--portrait-height);max-width:none;margin:0;opacity:1;transition:none;will-change:transform;pointer-events:auto}
.team.has-arc .card-front-copy{padding:clamp(25px,3vw,55px)}
.team.has-arc .team-grid .person-name{font-size:clamp(42px,4vw,78px)}
.team.has-arc .team-grid .person-task{max-width:34ch;font-size:clamp(14px,1vw,18px)}
.team.has-arc .team-grid .card-back{padding:clamp(26px,3vw,55px)}
.team.has-arc .team-grid .back-name{font-size:clamp(32px,3vw,58px)}
.team.has-arc .team-grid .bio{font-size:clamp(16px,1.1vw,21px);line-height:1.65}
.team.has-arc>.vacancy-card{width:calc(100% - var(--gutter) * 2);max-width:none;margin:40px var(--gutter) 0}
@media(max-width:760px){
  .team.has-arc .team-intro{width:calc(100% - var(--gutter) * 2);top:60px}
  .team.has-arc .team-grid .person-name{font-size:clamp(32px,10vw,43px)}
  .team.has-arc .team-grid .card-front-copy{padding:25px}
  .team.has-arc .team-grid .card-back{padding:26px}
}
.theatre-enabled .hero-content.is-readable{pointer-events:auto}
.theatre-enabled .header{opacity:var(--stage-copy,0);transform:none;pointer-events:none;will-change:opacity}
.theatre-enabled .header.is-readable{pointer-events:auto}
.theatre-enabled .hero-media{clip-path:none}
.theatre-enabled .slides{filter:brightness(calc(.48 + var(--stage-light,0) * .52)) blur(calc((1 - var(--stage-light,0)) * 2.5px));will-change:filter}
.theatre-enabled .hero-media::after{content:'';position:absolute;inset:0;pointer-events:none;background:#84725f;opacity:calc((1 - var(--stage-light,0)) * .10)}
.theatre-enabled .hero-shade{opacity:calc(.3 + var(--stage-copy,0) * .7)}
.theatre-enabled .slide{filter:sepia(.12) saturate(.85) brightness(.9)}
.theatre-enabled .curtain-intro{display:block;position:absolute;inset:0 0 auto;height:var(--opening-height,100svh);z-index:60;pointer-events:none;overflow:hidden;background:transparent}
.curtain-intro.is-open{visibility:hidden}
.curtain-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;filter:drop-shadow(0 16px 26px #0009)}
.curtain-fallback{position:absolute;inset:0;width:50.05%;background-size:var(--photo-width,100vw) var(--photo-height,100vw);background-position:var(--photo-x,0px) var(--photo-top,0px);transform:scaleX(var(--fallback-scale,1));box-shadow:0 0 32px #0008}
@media(min-width:761px) and (hover:hover) and (pointer:fine){.curtain-fallback{background-image:url('/warm-poster/media/curtain-opening.webp')}}
.curtain-left{right:auto;transform-origin:left center}
.curtain-right{left:auto;transform-origin:right center;background-position:var(--photo-right-x,0px) var(--photo-top,0px)}
.curtain-prompt{position:absolute;z-index:2;left:50%;top:var(--prompt-top,56%);transform:translate(-50%,-50%);width:max-content;max-width:90%;margin:0;text-align:center;color:#ffe6a4;font-family:Manrope,Arial,sans-serif;font-size:clamp(12px,1vw,18px);font-weight:400;line-height:1.8;letter-spacing:.12em;text-transform:uppercase;-webkit-text-stroke:.3px #fff7d4;text-shadow:0 0 2px #fff8dd,0 0 7px #ffcc69,0 0 18px #e9a632,0 0 34px #b8751b;opacity:var(--curtain-prompt-opacity,1);isolation:isolate}
.curtain-prompt::before{content:'';position:absolute;inset:-22px -35px;z-index:-1;background:radial-gradient(ellipse,#21170dc9 0%,#21170d77 40%,transparent 72%);filter:blur(9px)}
@media(max-width:760px){.curtain-prompt{font-size:11px;letter-spacing:.09em}}
.curtain-fallback:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#0000 0%,#0009 6%,#e6c59833 9%,#0000 13%);opacity:var(--fold-strength,0)}
.curtain-intro.has-mesh .curtain-fallback{visibility:hidden}
@media(max-width:760px){.theatre-enabled .hero-content{min-height:940px}.theatre-enabled .hero-sticky{overflow:hidden}}
@media(prefers-reduced-motion:reduce){.curtain-intro{display:none!important}}

/* Give the closing sections a whole screen while allowing longer content to flow. */
.venue,.faq,.invitation{min-height:100svh}

/* The film itself carries the grain and colour grade; stage lighting remains scroll-driven. */
.hero-video-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:1;transition:opacity .7s ease}
.slides .hero-film{opacity:0;transition:opacity .7s ease;object-position:center}
.slides.video-ready .hero-film{opacity:1}
.slides.video-ready .hero-video-poster{opacity:0}
@media(prefers-reduced-motion:reduce){.hero-video-poster,.slides .hero-film{transition:none}}

/* Keep vertical photographs whole, with a soft photographic backdrop at the sides. */
.gallery-frame.portrait-frame .photo-open::before{content:'';position:absolute;inset:-24px;background-image:var(--photo-backdrop);background-size:cover;background-position:center;filter:blur(22px) brightness(.45);pointer-events:none}
.gallery-frame.portrait-frame .photo-open img{position:relative;object-fit:contain}

/* Desktop portraits take only their natural width, adjoining the next photograph. */
@media(min-width:761px){
 .gallery-frame.portrait-frame{width:calc(var(--gallery-height,100svh)*var(--photo-ratio));max-width:none;scroll-snap-align:center}
 .gallery-frame.portrait-frame .photo-open::before{display:none}
}

/* Free scrolling on mobile, including the horizontal photo gallery. */
@media(max-width:760px),(hover:none) and (pointer:coarse){
 .gallery-viewport,.is-pinned .gallery-viewport{scroll-snap-type:none}
}
/* Mobile opens directly on a stable full-screen film frame. */
@media(max-width:760px),(hover:none) and (pointer:coarse){
  .mobile-about-flow .curtain-canvas,.mobile-about-flow .curtain-fallback{display:none}
  .mobile-about-flow .curtain-prompt{top:50%;font-size:11px;letter-spacing:.09em}
  .slides .hero-film,.slides .hero-video-poster{inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;mask-image:none}
}

/* The spring-smoothed page position drives every intermediate 3D angle. */
.team.scroll-flip .team-grid .flip-inner{transition:none;transform:rotateY(var(--scroll-turn,0deg));will-change:transform}
.team.scroll-flip .team-grid .flip-card{touch-action:pan-y}
.team.scroll-flip .team-grid .card-back{overflow:hidden}

/* The desktop portrait in “Сначала человек” is deliberately monochrome. */
@media(min-width:761px) and (hover:hover) and (pointer:fine){
  .connection-image img{filter:grayscale(1) contrast(1.12) brightness(.82)}
}

/* Mobile About follows the hero vertically, without a horizontal scroll stage. */
.theatre-enabled.mobile-about-flow .hero-scene{height:calc(var(--stage-height,100svh) + var(--intro-length,68svh))}
.theatre-enabled.mobile-about-flow .about-scroll{height:auto;margin-top:0;pointer-events:auto}
.theatre-enabled.mobile-about-flow .about{position:relative;top:auto;transform:none;will-change:auto}

/* Mobile-only finishing pass. */
@media(max-width:760px),(hover:none) and (pointer:coarse){
  html,body{scroll-snap-type:none!important;overscroll-behavior-y:none}
  .mobile-about-flow .curtain-intro{display:none}
  .theatre-enabled.mobile-about-flow .hero-sticky{position:relative;top:auto;height:var(--stage-height,100svh);min-height:0}
  .theatre-enabled.mobile-about-flow .hero-content{height:100%;min-height:0}
  .mobile-about-flow .curtain-prompt{top:50%;font-size:12px;letter-spacing:.11em}
  .theatre-enabled.mobile-about-flow .slides{filter:sepia(.1) saturate(.74) contrast(1.12) brightness(.93) hue-rotate(-5deg);will-change:auto}
  .theatre-enabled.mobile-about-flow .hero-media::after{
    content:'';
    background:linear-gradient(145deg,#071b2c29 0%,#071b2c0d 48%,#8b54241f 100%);
    opacity:1
  }
  .mobile-about-flow .hero-video-poster,.mobile-about-flow .slides .hero-film{inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;mask-image:none}
  .theatre-enabled.mobile-about-flow .hero-shade{
    background:
      radial-gradient(ellipse 118% 70% at 0% 43%,#070c127d 0%,#070c1247 46%,#070c1200 78%),
      linear-gradient(180deg,#070a0e52 0%,#070a0e00 24%),
      linear-gradient(0deg,#070a0e8f 0%,#070a0e2e 34%,#070a0e00 58%);
    opacity:1
  }
  .theatre-enabled.mobile-about-flow .header,
  .theatre-enabled.mobile-about-flow h1,
  .theatre-enabled.mobile-about-flow .hero-description,
  .theatre-enabled.mobile-about-flow .hero-ticket{text-shadow:0 1px 2px #000d,0 5px 22px #0007}
  .theatre-enabled.mobile-about-flow .hero-actions .text-link,
  .theatre-enabled.mobile-about-flow .hero-ticket>a{display:none}
  .theatre-enabled.mobile-about-flow .hero-description{position:relative;z-index:0;margin-top:29px}
  .theatre-enabled.mobile-about-flow .hero-description::before{
    content:'';
    position:absolute;
    z-index:-1;
    top:-28px;
    left:calc(-1 * var(--gutter));
    width:100vw;
    height:72vh;
    pointer-events:none;
    background:linear-gradient(180deg,#070a0e00 0%,#070a0e24 54px,#070a0e4a 42%,#070a0e65 100%)
  }
  .theatre-enabled.mobile-about-flow .hero-actions{margin-top:38px}
  .theatre-enabled.mobile-about-flow .hero-ticket{margin-top:65px;padding-top:28px}
  .theatre-enabled.mobile-about-flow .hero-stats{margin-top:54px}

  .connection-image picture{display:block;width:100%;height:100%}
  .connection-image img{filter:grayscale(1) contrast(1.14) brightness(.75);object-position:center}
  .connection-image::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,#10182014,#130d08a8),radial-gradient(circle at 70% 25%,#fff2,transparent 38%);mix-blend-mode:multiply}

  .program-row,.program-row.is-current{background:transparent!important;isolation:isolate;padding-left:0;padding-right:0;transition:none}
  .program-row::before{content:'';position:absolute;top:0;bottom:0;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));z-index:-1;background:linear-gradient(90deg,transparent 0,#241e191c 18%,#241e191c 62%,transparent 100%);opacity:0;transition:opacity .85s cubic-bezier(.22,.8,.24,1)}
  .program-row.is-current::before{opacity:1}

  .gallery-header{will-change:transform,opacity}
  .gallery-frame.portrait-frame .photo-open::before{content:none;display:none;background-image:none}
  .gallery-frame:not(.portrait-frame),.gallery-frame:nth-child(3n+2):not(.portrait-frame){width:calc(var(--gallery-height,100svh) * var(--mobile-ratio,var(--photo-ratio)));max-width:none}
  .gallery-frame:not(.portrait-frame) .photo-open img{object-fit:cover;object-position:var(--mobile-position,center)}

  .team.scroll-flip .card-front>img{filter:none}

  .team.mobile-team-list .team-story{height:auto!important}
  .team.mobile-team-list .team-sticky{position:relative;height:auto;overflow:visible}
  .team.mobile-team-list .team-intro{position:relative;width:auto;transform:none!important}
  .team.mobile-team-list .team-grid{position:relative;inset:auto;display:grid;grid-template-columns:1fr;gap:24px;pointer-events:auto}
  .team.mobile-team-list .team-grid .flip-card{position:relative;inset:auto;width:100%;height:min(138vw,590px);max-width:450px;margin:0 auto;transform:none!important;visibility:visible!important;opacity:1;will-change:auto;touch-action:pan-y}
  .team.mobile-team-list .flip-inner{transition:transform .85s cubic-bezier(.22,.8,.24,1)}
  .team.mobile-team-list .card-front>img{filter:none}
  .team.mobile-team-list .card-turn-cue{position:absolute;z-index:3;top:18px;right:18px;width:42px;height:42px;padding:7px;display:grid;place-items:center;border:1px solid #e8cb91b8;border-radius:50%;background:#17110dd9;color:#f2dbad;box-shadow:0 5px 22px #0008;backdrop-filter:blur(8px);pointer-events:none}
  .team.mobile-team-list .card-turn-cue svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
  .team.mobile-team-list .card-back{overflow-y:auto}

  .faq-list details>.answer{animation:none;padding-top:0;padding-bottom:25px}
}

/* Keep the revealed cover complete when mobile browser chrome leaves a short viewport. */
@media(max-width:760px) and (max-height:780px){
  .theatre-enabled.mobile-about-flow .hero-content{padding:80px var(--gutter) 18px}
  .theatre-enabled.mobile-about-flow .hero-line{font-size:46px;line-height:1}
  .theatre-enabled.mobile-about-flow .hero-small{font-size:20px;line-height:1.1;margin-top:7px}
  .theatre-enabled.mobile-about-flow .hero-description{font-size:12.5px;line-height:1.55;margin-top:18px}
  .theatre-enabled.mobile-about-flow .hero-actions{gap:12px;margin-top:24px}
  .theatre-enabled.mobile-about-flow .hero-actions .button{min-height:46px;padding:11px 16px;font-size:12.5px}
  .theatre-enabled.mobile-about-flow .hero-actions .text-link{gap:10px;padding-bottom:4px;font-size:11px}
  .theatre-enabled.mobile-about-flow .hero-ticket{margin-top:30px;padding-top:18px}
  .theatre-enabled.mobile-about-flow .hero-ticket .eyebrow{font-size:8.5px}
  .theatre-enabled.mobile-about-flow .event-date{font-size:12.5px;margin:5px 0 6px}
  .theatre-enabled.mobile-about-flow .hero-ticket>a{font-size:9.5px}
  .theatre-enabled.mobile-about-flow .hero-stats{margin-top:30px;gap:30px}
  .theatre-enabled.mobile-about-flow .hero-stats strong{font-size:28px}
  .theatre-enabled.mobile-about-flow .hero-stats span{font-size:7.5px;margin-top:4px}
}
@media(max-width:760px) and (max-height:680px){
  .theatre-enabled.mobile-about-flow .hero-content{padding-top:75px;padding-bottom:10px}
  .theatre-enabled.mobile-about-flow .hero-line{font-size:42px}
  .theatre-enabled.mobile-about-flow .hero-small{font-size:18px;margin-top:5px}
  .theatre-enabled.mobile-about-flow .hero-description{font-size:11.5px;line-height:1.45;margin-top:15px}
  .theatre-enabled.mobile-about-flow .hero-actions{gap:9px;margin-top:20px}
  .theatre-enabled.mobile-about-flow .hero-actions .button{min-height:42px;padding:9px 14px;font-size:12px}
  .theatre-enabled.mobile-about-flow .hero-ticket{margin-top:28px;padding-top:16px}
  .theatre-enabled.mobile-about-flow .event-date{font-size:12px;margin:3px 0 4px}
  .theatre-enabled.mobile-about-flow .hero-stats{margin-top:32px}
  .theatre-enabled.mobile-about-flow .hero-stats strong{font-size:26px}
}
