/* Fluid composition. Photo footprints and typography reserve their own space;
   decorative overhang is bounded within explicit gaps, never a percentage guess. */
:root{--gutter:clamp(22px,6vw,100px);--section-gutter:max(var(--gutter),calc((100vw - 1500px)/2))}
main,section,header,footer{min-width:0}h1,h2,h3,p,a{overflow-wrap:break-word}img,svg{max-width:100%}
.overture,.cabaret,.live-art,.hotel,.work,.about,.engagements,.questions,.contact{padding-inline:var(--section-gutter)}
.scene,.about{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.scene-copy,.about-copy,.art-composition,.cabaret-art,.hotel-copy,.hotel-visual,.guestbook,.faq{min-width:0}
.scene-copy,.about-copy{max-width:440px}
.header{padding-inline:var(--section-gutter)}.brand{width:clamp(155px,15vw,198px)}
/* Intrinsic hero height prevents its bloom or performers being cut by the viewport. */
.hero{height:auto;min-height:900px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-inline:var(--section-gutter)}
.hero-copy{grid-column:1;position:relative;width:auto;max-width:680px;padding:clamp(145px,12vw,190px) 0 85px;z-index:3}
.hero h1{font-size:clamp(76px,8.2vw,132px);margin:25px 0 24px;line-height:.97;letter-spacing:-.035em}
.hero-description{font-size:clamp(22px,2vw,27px);margin-bottom:26px}
.hero-photo{inset:85px 0 0 auto;width:75%;height:auto}
.depth-performers{inset:3% auto auto -4%;width:108%;height:93%;object-fit:contain;object-position:center bottom;max-width:none}
.hero-fan{position:relative;left:auto;bottom:auto;width:clamp(300px,32vw,480px);max-width:100%;margin:30px 0 0;opacity:.94;pointer-events:auto;z-index:2}
.hero-fan .feather-fan{rotate:0deg;overflow:visible;filter:drop-shadow(0 12px 15px #0004)}
.feather-fan{overflow:visible}.fan-feather{will-change:transform}
.hero-foot{left:var(--section-gutter);right:var(--section-gutter);bottom:25px}
.hero-foot>span{max-width:45%}.hero-foot>a{text-align:right}
/* A narrowly framed photograph occupies its grid column. Only the key reaches into the gap. */
.hotel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(125px,15vw,230px);padding-block:130px 140px;align-items:center;min-height:0}
.hotel-copy{max-width:440px;width:100%}.hotel h2{font-size:clamp(58px,5.8vw,94px);letter-spacing:-.025em}
.hotel h2 br:first-child{display:block}.hotel-copy>p:not(.eyebrow){max-width:360px;font-size:clamp(13px,1.1vw,15px)}
.hotel-visual{width:100%;max-width:640px;margin:0;padding-bottom:90px;rotate:3deg;justify-self:end;perspective:1200px}
.key-art{width:147.058824%;margin-left:-47.058824%;max-width:none;aspect-ratio:1024/683;perspective:1000px;perspective-origin:32% 47.56%;transform-style:preserve-3d;isolation:auto}
.key-photo{clip-path:inset(0 0 0 32%);max-width:none}
.polaroid-paper,.key-art.key-ready .polaroid-paper{left:calc(32% - 15px);right:-15px;top:-15px;bottom:-85px}
.polaroid-caption,.key-ready .polaroid-caption{left:32%;width:68%;font-size:clamp(18px,1.7vw,25px);top:calc(100% + 16px)}
.polaroid-caption em{font-size:1.08em}
.key-outside{opacity:1;clip-path:inset(-12% 68% -15% -15%);perspective:1000px;perspective-origin:32% 47.56%;overflow:visible}
.key-projection{max-width:none;transform-origin:32% 47.56%;transform:rotateY(var(--key-lift,21deg));filter:drop-shadow(8px 14px 7px #40102250);will-change:transform}
.hotel-stamp{right:-5px;top:-80px;width:95px;height:95px;font-size:7px;padding-top:18px}
.hotel-number{font-size:clamp(70px,9vw,120px)}
/* Keep every collage in its allocated column at intermediate laptop widths. */
.cabaret{gap:clamp(45px,7vw,110px)}.cabaret-art{margin-right:20px}
.scene h2{font-size:clamp(60px,6.1vw,100px)}
.live-art{gap:clamp(50px,9vw,130px)}.art-label{right:-25px;max-width:90%}
.about{gap:clamp(60px,11vw,150px)}.about h2{font-size:clamp(60px,5.3vw,90px)}
.about-copy{max-width:460px}.handwritten{right:-25px}
.work{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(35px,5vw,85px)}
.work-heading h2{font-size:clamp(45px,4.2vw,68px)}.guestbook{width:100%;max-width:none}
.work-entry{grid-template-columns:23px minmax(0,1fr) 75px 18px}.work-entry h3{font-size:clamp(25px,2.4vw,36px)}
.engagement{grid-template-columns:42px minmax(0,1fr) 120px 20px}
.engagement-heading h2{font-size:clamp(43px,5vw,75px)}
.questions{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.footer{padding-inline:var(--section-gutter);flex-wrap:wrap}.footer>div{flex-wrap:wrap}
@media(max-width:1100px){
 .header{height:82px}.nav-cta{display:none}.header nav{gap:21px}.hero{min-height:850px}.hero-copy{padding-top:145px}.hero h1{font-size:clamp(69px,8.2vw,100px)}
 .hero-photo{width:85%;right:-6%;top:82px}.hero-fan{width:clamp(290px,32vw,365px)}
 .work{grid-template-columns:1fr;gap:38px}.work-heading{position:relative;top:auto}.work-heading h2{font-size:60px}.work-heading h2 br{display:none}
 .work-entry{grid-template-columns:25px minmax(0,1fr) 95px 20px}.work-entry h3{font-size:34px}
 .scene h2{font-size:clamp(54px,6.3vw,70px)}.about h2{font-size:clamp(54px,6vw,66px)}
 .hotel{padding-block:110px 125px}.hotel-stamp{width:80px;height:80px;top:-65px;padding-top:13px;font-size:6px}.hotel-stamp b{font-size:20px}
}
@media(max-width:900px){
 .header{height:80px}.header .brand{width:168px}.menu-toggle{display:block;padding:9px 16px;font-size:11px;letter-spacing:1px;border:1px solid #e6a5b888;background:#190e1566;color:var(--paper)}
 .header nav{display:none;position:absolute;top:79px;left:0;right:0;padding:27px var(--gutter);background:#1a0e18fa;border-block:1px solid var(--line);font:25px var(--serif)}.header nav.open{display:flex;flex-direction:column;gap:23px}
 .hero{display:flex;flex-direction:column;padding:0;min-height:0;height:auto}
 .hero-copy{width:100%;max-width:none;padding:127px var(--gutter) 20px}
 .hero h1{font-size:clamp(67px,12.2vw,106px);max-width:690px}
 .hero .eyebrow{font-size:8px;letter-spacing:1.7px}.hero-description{font-size:clamp(22px,3.3vw,27px);max-width:450px}
 .hero-fan{width:clamp(285px,55vw,420px);max-width:100%;margin:24px 0 0;opacity:.9}
 .hero-photo{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.4;margin-top:-20px;overflow:hidden}
 .hero-original{object-fit:contain;object-position:center bottom}
 .depth-performers{inset:0 auto auto 0;width:100%;height:96%;object-position:center bottom}
 .hero-photo:after{background:linear-gradient(180deg,var(--deep),transparent 15%),linear-gradient(0deg,var(--deep),transparent 17%)}
 .hero-side{display:none}.hero-foot{position:relative;inset:auto;gap:28px;padding:15px var(--gutter) 25px;font-size:7px;letter-spacing:1.2px;background:var(--deep)}
 .hero-foot>span{max-width:50%}.hero-foot a{max-width:50%}.hero-foot a span{margin-left:10px}
 .overture-inner{grid-template-columns:1fr;gap:27px;padding:65px 0 48px}.display-statement{font-size:clamp(39px,7.5vw,66px)}.intro-note{max-width:530px}.overture-star{right:0;left:auto;top:22px;width:30px}
 .clients{display:block}.clients>.eyebrow{max-width:none}.clients>div{flex-wrap:wrap;justify-content:flex-start;gap:20px 28px;margin-top:20px}.clients>div span{font-size:20px}
 .scene{grid-template-columns:1fr}.cabaret{padding-block:75px 95px;gap:38px}.scene-copy,.live-art .scene-copy{max-width:600px}
 .scene h2{font-size:clamp(61px,10vw,90px)}.cabaret h2{max-width:600px}.cabaret h2 br:first-of-type{display:block}.cabaret h2 em br{display:none}
 .scene-index{flex-direction:row;flex-wrap:wrap;gap:0 20px;margin-top:27px}.scene-copy>p:not(.eyebrow):not(.scene-footnote){max-width:460px}
 .cabaret-art{width:85%;max-width:510px;justify-self:center;margin:20px 0 0;padding-bottom:80px}.cabaret-fan{left:-10%;width:82%;bottom:0}.artist-note{right:-3px;bottom:36px}
 .live-art{display:flex;flex-direction:column-reverse;padding-block:75px 100px;gap:65px}.art-composition{width:85%;max-width:520px;align-self:center;margin:0;padding-bottom:75px}.art-label{right:-15px;bottom:0;padding:24px;max-width:90%}
 .hotel{grid-template-columns:1fr;gap:90px;padding-block:80px 125px}
 .hotel-copy{max-width:600px}.hotel h2{font-size:clamp(62px,10.5vw,88px)}.hotel h2 br:first-child{display:none}.hotel-copy>p:not(.eyebrow){max-width:460px}
 .hotel-visual{width:76%;max-width:460px;justify-self:end;margin-right:4%;rotate:3deg;padding-bottom:85px}
 .hotel-copy>.text-link{max-width:100%}.hotel-stamp{right:0;top:-68px;width:80px;height:80px;font-size:6px}
 .hotel-number{right:8%;top:26px}.polaroid-caption{font-size:clamp(18px,3.4vw,24px)}
 .about{display:flex;flex-direction:column-reverse;padding-block:80px 110px;gap:55px}.about-copy{max-width:600px}.about h2{font-size:clamp(59px,9.7vw,83px)}
 .about-collage{width:82%;max-width:450px;align-self:center;margin:15px 0 0;padding-bottom:75px}.handwritten{right:-15px;font-size:clamp(21px,3.5vw,27px)}
 .work{padding-block:75px 95px}.work-heading h2{font-size:clamp(47px,7.5vw,65px)}.work-heading h2 br{display:block}
 .questions{grid-template-columns:1fr;padding-block:65px;gap:30px}.questions h2{font-size:60px}.faq{width:100%}
 .contact{padding-block:85px;min-height:0}.contact h2{font-size:clamp(61px,11vw,105px)}.contact-fan{width:530px;right:-370px;opacity:.22}
 .footer{display:grid;grid-template-columns:1fr;gap:20px}.footer>div{margin:0}
}
@media(max-width:540px){
 .hero-copy{padding-top:120px}.hero h1{font-size:clamp(63px,17vw,89px);letter-spacing:-.04em}.hero-description{font-size:23px}.hero-fan{width:min(100%,330px)}
 .hero-photo{margin-top:0;aspect-ratio:1.1}.depth-performers{height:100%;object-position:center 72%}.hero-photo:after{background:linear-gradient(180deg,var(--deep),transparent 15%),linear-gradient(0deg,var(--deep),transparent 16%)}
 .header .brand{width:156px}.header{gap:15px}.hero .eyebrow{font-size:7px;letter-spacing:1.2px}
 .hotel{gap:85px;padding-bottom:100px}.hotel-visual{width:76%;margin-right:3%;padding-bottom:80px}
 .polaroid-paper,.key-art.key-ready .polaroid-paper{left:calc(32% - 10px);right:-10px;top:-10px;bottom:-73px}
 .polaroid-caption,.key-ready .polaroid-caption{font-size:clamp(16px,4.5vw,21px);top:calc(100% + 13px)}
 .hotel h2{font-size:clamp(59px,14vw,74px)}.hotel-pinstripe{inset:12px}.hotel-stamp{width:70px;height:70px;top:-57px;padding-top:11px;font-size:5.5px}
 .guestbook{padding:20px 17px}.guestbook-top{font-size:6px;letter-spacing:.7px}.guestbook-top>span:first-child{font-size:12px}
 .work-entry{grid-template-columns:17px minmax(0,1fr) 18px;gap:10px}.work-entry h3{font-size:clamp(24px,6.3vw,31px)}.entry-type{display:none}.work-entry p{font-size:10px}
 .guestbook-bottom{flex-wrap:wrap}.guestbook-bottom em{font-size:18px}.guestbook-bottom .text-link{font-size:9px}
 .engagement{grid-template-columns:22px minmax(0,1fr) 80px;gap:11px}.engagement>span:last-child{display:none}.engagement h3{font-size:clamp(25px,6.5vw,32px)}.engagement-price{font-size:29px}.engagement-price small{font-size:6px;letter-spacing:.5px}.engagement p{font-size:10px}.engagement-number{font-size:21px}
 .engagement-heading h2{font-size:clamp(39px,9vw,49px)}.engagement-heading{text-align:left}.pricing-note{text-align:left;font-size:9px}.pricing-note a{display:table;margin:7px 0 0}
 .contact .button{font-size:11px;padding-inline:16px;gap:15px}.button{max-width:100%}.text-link{max-width:100%;gap:16px}
 .art-label em{font-size:25px}.about-line{inset:-16px 15px 75px -15px}.founder-star{right:-22px;width:46px}
}
@media(prefers-reduced-motion:reduce){.fan-feather,.key-projection{will-change:auto}.key-projection{transform:rotateY(21deg)}}
/* Keep the room's floor visible behind complete feet rather than masking the lower bodies. */
@media(min-width:901px){.hero-photo:after{background:linear-gradient(90deg,var(--deep),#100c10b8 17%,transparent 52%),linear-gradient(0deg,var(--deep),transparent 8%),linear-gradient(180deg,#100c1070,transparent 17%)}}
.hotel{padding-inline:max(var(--gutter),calc((100vw - 1320px)/2))}
