@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500&family=Montserrat:wght@400;500;600&display=swap");

:root{--room-gold:#d9a45f;--room-ivory:#f1e4d4}
*{box-sizing:border-box}
html,body.stage-gallery-page{width:100%;height:100%;margin:0;overflow:hidden;background:#020101;color:var(--room-ivory);font-family:Montserrat,Arial,sans-serif}
button,a{color:inherit;font:inherit}button{border:0}a{text-decoration:none}
.stage-gallery-page::before{content:"";position:fixed;z-index:30;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.43) 100%),linear-gradient(180deg,rgba(0,0,0,.22),transparent 18%,transparent 82%,rgba(0,0,0,.3))}
.stage-gallery-page::after{content:"";position:fixed;z-index:31;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.projection-page{position:fixed;z-index:1;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,rgba(117,67,26,.13),transparent 53%),#030201}
.projection-viewport{position:absolute;z-index:1;inset:0;overflow:hidden;outline:none;perspective:650px;perspective-origin:50% 50%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.projection-viewport.is-dragging{cursor:grabbing}
.projection-glow{position:absolute;left:50%;top:50%;width:92vw;height:82vh;border-radius:50%;background:radial-gradient(ellipse,rgba(214,151,78,.12),rgba(92,53,24,.025) 47%,transparent 72%);filter:blur(28px);transform:translate(-50%,-50%);pointer-events:none}
.projection-room{--room-x:-3deg;--room-y:-10deg;--room-travel:0px;--room-depth:min(44vw,520px);position:absolute;left:50%;top:50%;width:min(88vw,1040px);height:min(58vw,650px);transform-style:preserve-3d;transform:translate3d(-50%,-50%,calc(450px + var(--room-travel))) rotateX(var(--room-x)) rotateY(var(--room-y));transition:transform .08s linear;will-change:transform}
.projection-viewport.is-dragging .projection-room{transition:none}
.projection-wall{position:absolute;left:50%;top:50%;width:min(88vw,1040px);height:min(58vw,650px);overflow:hidden;border:1px solid rgba(231,188,130,.1);background:linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px) 0 0/25% 100%,linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px) 0 0/100% 50%,rgba(8,6,4,.97);box-shadow:inset 0 0 120px rgba(0,0,0,.5);backface-visibility:hidden;pointer-events:auto}
.projection-wall-0{transform:translate(-50%,-50%) translateZ(calc(var(--room-depth) * -1))}
.projection-wall-1{transform:translate(-50%,-50%) rotateY(90deg) translateZ(calc(var(--room-depth) * -1))}
.projection-wall-2{transform:translate(-50%,-50%) rotateY(180deg) translateZ(calc(var(--room-depth) * -1))}
.projection-wall-3{transform:translate(-50%,-50%) rotateY(-90deg) translateZ(calc(var(--room-depth) * -1))}
.projection-wall-label{position:absolute;z-index:3;left:24px;top:18px;color:rgba(225,175,111,.27);font-size:6px;letter-spacing:.34em}
.projection-wall-layer{width:100%;height:100%;padding:48px 26px 27px}
.projection-wall-layer[hidden]{display:none}
.projection-wall-layer[data-projection-panel="photos"]{position:relative;display:block;overflow:hidden}
.projection-wall-layer[data-projection-panel="videos"]{display:flex;align-items:center;justify-content:center;gap:14px}
.projection-panel{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(240,211,174,.12);border-radius:2px;background:#0c0907;box-shadow:0 13px 30px rgba(0,0,0,.32);color:#f1e4d4;transform:translateZ(2px);transition:transform .35s,border-color .35s,filter .35s;pointer-events:auto}
.projection-panel[hidden]{display:none!important}
.projection-wall-layer[data-projection-panel="photos"] .projection-panel{position:absolute;display:block;min-height:0;margin:0}
.projection-panel:hover,.projection-panel.is-hovered,.projection-panel:focus-visible{z-index:4;border-color:rgba(239,190,125,.62);outline:none;filter:brightness(1.1);transform:translateZ(20px) scale(1.02)}
.projection-panel img,.projection-panel video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.projection-wall-layer[data-projection-panel="photos"] .projection-panel img{height:auto;object-fit:contain}
.projection-panel video{position:absolute;z-index:1;inset:0;opacity:0;transition:opacity .3s}
.projection-panel:hover video,.projection-panel.is-hovered video,.projection-panel:focus-visible video{opacity:1}
.projection-panel-shade{position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.9));opacity:.4;transition:opacity .3s}
.projection-panel p{position:absolute;z-index:3;left:13px;right:13px;bottom:11px;display:grid;gap:3px;margin:0;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}
.projection-panel:hover p,.projection-panel.is-hovered p,.projection-panel:focus-visible p{opacity:1;transform:none}
.projection-panel p small{color:rgba(232,184,122,.74);font-size:5px;font-style:normal;letter-spacing:.25em;text-transform:uppercase}
.projection-panel p strong{overflow:hidden;color:#fff3e5;font:400 15px/1.05 "Cormorant Garamond",Georgia,serif;text-overflow:ellipsis;white-space:nowrap}
.projection-panel p em{color:rgba(237,219,198,.4);font-size:5px;font-style:normal;letter-spacing:.2em}
.projection-film{flex:0 1 31%;height:78%}.projection-film.is-placeholder{cursor:default}
.projection-play{position:absolute;z-index:3;left:50%;top:50%;display:grid;place-items:center;width:38px;height:38px;padding-left:2px;border:1px solid rgba(255,233,205,.42);border-radius:50%;background:rgba(0,0,0,.25);color:#f7dec0;font-size:9px;transform:translate(-50%,-50%);backdrop-filter:blur(8px)}
.projection-reticle{position:absolute;z-index:6;left:50%;top:50%;width:10px;height:10px;pointer-events:none;opacity:.35;transform:translate(-50%,-50%)}.projection-reticle i,.projection-reticle b{position:absolute;background:#e6b574}.projection-reticle i{left:0;top:5px;width:10px;height:1px}.projection-reticle b{left:5px;top:0;width:1px;height:10px}
.projection-return,.projection-categories,.projection-room-pages,.projection-instruction{position:absolute;z-index:40;border:1px solid rgba(236,203,160,.16);background:rgba(7,5,3,.56);box-shadow:0 12px 34px rgba(0,0,0,.22);backdrop-filter:blur(16px)}
.projection-return{left:26px;top:24px;display:flex;align-items:center;height:40px;padding:0 17px;border-radius:999px;color:rgba(245,213,171,.8);font-size:7px;font-weight:600;letter-spacing:.23em;transition:color .25s,background .25s}.projection-return span{margin-right:9px;font-size:13px}.projection-return:hover{color:#fff0d7;background:rgba(65,39,19,.58)}
.projection-categories{right:26px;top:24px;display:flex;gap:5px;padding:4px;border-radius:999px}
.projection-categories button{min-width:126px;height:34px;padding:0 14px;border-radius:999px;background:transparent;color:rgba(236,217,194,.42);font-size:6px;font-weight:600;letter-spacing:.2em;cursor:pointer}.projection-categories .projection-category-label{color:inherit}.projection-categories .projection-category-count{margin-left:5px;color:rgba(219,165,94,.66)}.projection-categories button.is-active{background:rgba(207,145,73,.17);color:#f4e1ca;box-shadow:inset 0 0 0 1px rgba(232,181,114,.17)}
.projection-room-pages{left:50%;bottom:22px;display:flex;align-items:center;justify-content:center;gap:10px;padding:5px 8px;border-radius:999px;transform:translateX(-50%)}.projection-room-pages[hidden]{display:none}.projection-room-pages button{display:grid;place-items:center;width:29px;height:29px;border:1px solid rgba(236,205,166,.14);border-radius:50%;background:rgba(12,8,5,.48);color:#e5b779;cursor:pointer}.projection-room-pages button:disabled{opacity:.25;cursor:default}.projection-room-pages span{min-width:96px;color:rgba(241,221,196,.7);font-size:8px;font-weight:400;letter-spacing:.16em;text-align:center;white-space:nowrap}
.projection-instruction{left:26px;bottom:22px;margin:0;padding:12px 15px;border-radius:999px;color:rgba(239,217,191,.56);font-size:6px;letter-spacing:.25em}.projection-instruction span{margin-right:8px;color:#dca45d;font-size:12px;vertical-align:-1px}
.projection-depth-control{position:absolute;z-index:40;right:27px;top:50%;display:grid;justify-items:center;gap:8px;padding:9px 7px;border:1px solid rgba(236,203,160,.16);border-radius:999px;background:rgba(7,5,3,.56);box-shadow:0 12px 34px rgba(0,0,0,.22);transform:translateY(-50%);backdrop-filter:blur(16px)}
.projection-depth-control button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(236,205,166,.15);border-radius:50%;background:rgba(17,11,7,.6);color:#edc58e;font-size:15px;cursor:pointer}
.projection-depth-control>span{position:relative;width:3px;height:74px;border-radius:3px;background:rgba(238,207,168,.14)}
.projection-depth-control i{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#e3a55a;box-shadow:0 0 10px rgba(227,165,90,.55);transform:translate(-50%,-50%)}
.projection-drag-hint{position:absolute;z-index:45;left:50%;top:50%;display:grid;justify-items:center;gap:7px;pointer-events:none;opacity:1;transform:translate(-50%,-50%);transition:opacity .5s,filter .5s}.projection-drag-hint.is-hidden{opacity:0;filter:blur(4px)}
.projection-drag-hint i{position:relative;width:42px;height:58px;border:1px solid rgba(244,218,184,.62);border-radius:21px;background:rgba(5,3,2,.44);box-shadow:0 0 25px rgba(218,155,78,.13);animation:dragHintSweep 1.8s ease-in-out infinite}.projection-drag-hint i::before{content:"";position:absolute;left:50%;top:10px;width:3px;height:9px;border-radius:3px;background:#e7b36f;transform:translateX(-50%)}.projection-drag-hint i span{position:absolute;left:50%;top:50%;width:72px;height:1px;background:linear-gradient(90deg,transparent,#dca15b,transparent);transform:translate(-50%,-50%)}.projection-drag-hint strong{font:400 19px/1 "Cormorant Garamond",Georgia,serif;letter-spacing:.08em}.projection-drag-hint small{color:rgba(239,216,188,.5);font-size:6px;letter-spacing:.25em}
@keyframes dragHintSweep{0%,100%{transform:translateX(-12px)}50%{transform:translateX(12px)}}

@media(max-width:800px){
  .projection-viewport{perspective:260px}
  .projection-room{--room-depth:45vw;width:90vw;height:64vw;transform:translate3d(-50%,-50%,calc(170px + var(--room-travel))) rotateX(var(--room-x)) rotateY(var(--room-y))}
  .projection-wall{width:90vw;height:64vw}
  .projection-wall-layer{padding:34px 12px 14px}
  .projection-wall-layer[data-projection-panel="photos"] .projection-panel{margin:0}
  .projection-panel p{left:7px;right:7px;bottom:6px}.projection-panel p strong{font-size:10px}
  .projection-return{left:12px;top:12px}.projection-categories{right:12px;top:12px}.projection-categories button{min-width:0;padding:0 9px}
  .projection-instruction{left:12px;bottom:12px}.projection-room-pages{bottom:12px}.projection-depth-control{right:12px}
}
@media(max-width:560px){.projection-categories .projection-category-count{display:none}.projection-instruction{display:none}}
@media(prefers-reduced-motion:reduce){.projection-room,.projection-panel,.projection-panel p,.projection-drag-hint{transition:none}.projection-drag-hint i{animation:none}}

.projection-panel p:has(.projection-credit-from){display:flex;align-items:baseline;gap:3px}
.projection-panel p .projection-credit-from{margin-right:2px;color:rgba(238,215,188,.63);font-size:8px;font-style:italic;letter-spacing:.05em;text-transform:none}
.projection-instruction{pointer-events:none}

/* Films use a separate two-dimensional monitor wall. */
.stage-video-gallery{position:absolute;z-index:2;inset:0;overflow-x:auto;overflow-y:hidden;padding:0;background:radial-gradient(circle at 50% 46%,rgba(154,91,37,.13),transparent 47%),linear-gradient(180deg,rgba(4,3,2,.72),rgba(5,3,2,.94)),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 46px),#050302;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x}
.stage-video-gallery::-webkit-scrollbar{display:none}
.stage-video-gallery[hidden]{display:none}
.stage-video-gallery::before{content:"";position:fixed;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.42),transparent 19%,transparent 81%,rgba(0,0,0,.42));pointer-events:none}
.stage-video-heading{position:fixed;z-index:5;left:clamp(25px,4.8vw,76px);right:clamp(25px,4.8vw,76px);top:92px;display:grid;grid-template-columns:1fr auto;align-items:end;margin:0;color:#dcb77e;pointer-events:none}
.stage-video-heading>span{grid-column:1;font-size:6px;letter-spacing:.33em}
.stage-video-heading h1{grid-column:1;margin:7px 0 0;color:#eadbc7;font:400 clamp(22px,2.6vw,38px)/1 "Cormorant Garamond",Georgia,serif;letter-spacing:.42em}
.stage-video-heading p{grid-column:2;grid-row:1/3;margin:0;color:rgba(226,203,172,.38);font-size:6px;line-height:1.7;letter-spacing:.16em}
.stage-video-wall{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-auto-columns:max-content;align-content:center;justify-content:safe center;gap:clamp(22px,3vh,34px) clamp(24px,2.8vw,42px);width:max-content;min-width:100%;height:100%;padding:150px 8vw 82px}
.stage-video-monitor{--monitor-shift:0px;position:relative;align-self:center;width:auto;height:clamp(172px,28vh,225px);aspect-ratio:var(--film-ratio,16/9);padding:4px;border:1px solid rgba(226,184,127,.13);border-radius:2px;background:#0c0906;box-shadow:0 12px 28px rgba(0,0,0,.5),0 0 0 3px rgba(0,0,0,.2);transform:translateY(var(--monitor-shift));transition:border-color .35s,box-shadow .35s,transform .35s}
.stage-video-monitor:nth-child(4n+1){--monitor-shift:-17px;height:clamp(185px,30vh,238px)}.stage-video-monitor:nth-child(4n+2){--monitor-shift:15px;height:clamp(162px,26vh,210px)}.stage-video-monitor:nth-child(4n+3){--monitor-shift:5px;height:clamp(178px,29vh,230px)}.stage-video-monitor:nth-child(4n){--monitor-shift:-11px;height:clamp(168px,27vh,218px)}
.stage-video-monitor[hidden]{display:none}
.stage-video-monitor:hover,.stage-video-monitor.is-hovered,.stage-video-monitor:focus-within{z-index:3;border-color:rgba(239,180,100,.82);box-shadow:0 18px 42px rgba(0,0,0,.58),0 0 0 1px rgba(245,192,118,.4),0 0 28px rgba(221,139,52,.22);transform:translateY(calc(var(--monitor-shift) - 3px))}
.stage-video-screen{position:absolute;inset:5px;overflow:hidden;background:#090807}
.stage-video-screen img,.stage-video-screen video{display:block;width:100%;height:100%;object-fit:contain;background:#050403;filter:saturate(.76) brightness(.72);transition:filter .35s,transform .7s}
.stage-video-monitor:hover .stage-video-screen img,.stage-video-monitor.is-hovered .stage-video-screen img,.stage-video-monitor:hover .stage-video-screen video,.stage-video-monitor.is-hovered .stage-video-screen video,.stage-video-monitor:focus-within .stage-video-screen img,.stage-video-monitor:focus-within .stage-video-screen video{filter:saturate(.96) brightness(.82);transform:scale(1.015)}
.stage-video-glass{position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.06),transparent 31%,rgba(0,0,0,.28));pointer-events:none}
.stage-video-placeholder{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(circle,rgba(139,80,32,.14),transparent 50%),#080604;color:rgba(221,184,135,.32);font-size:7px;letter-spacing:.32em}
.stage-video-details{position:absolute;z-index:3;left:5px;right:5px;bottom:5px;min-height:48%;padding:clamp(12px,1.5vw,22px);background:linear-gradient(180deg,transparent,rgba(4,2,1,.94) 48%);opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;pointer-events:none}
.stage-video-monitor:hover .stage-video-details,.stage-video-monitor.is-hovered .stage-video-details,.stage-video-monitor:focus-within .stage-video-details{opacity:1;transform:none}
.stage-video-kicker{display:block;margin-bottom:5px;color:#d89b50;font-size:5px;letter-spacing:.24em}
.stage-video-details strong{display:block;max-width:75%;color:#fff0dc;font:400 clamp(12px,1.05vw,16px)/1.08 "Cormorant Garamond","Noto Serif SC Variable",Georgia,serif;letter-spacing:.02em}
.stage-video-details p{margin:5px 0 0;color:rgba(235,210,179,.63);font-size:7px;letter-spacing:.06em}.stage-video-details p em{font-size:6px}
.stage-video-play{position:absolute;right:16px;bottom:17px;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(245,216,178,.55);border-radius:50%;background:rgba(4,2,1,.48);color:#f3d5af;pointer-events:auto;transition:background .25s,transform .25s}.stage-video-play:hover{background:rgba(172,103,36,.4);transform:scale(1.08)}.stage-video-play span{padding-left:2px;font-size:9px}.stage-video-play.is-disabled{opacity:.35;cursor:not-allowed}
.stage-video-empty{grid-column:1/-1;padding:18vh 0;color:rgba(235,210,177,.42);font:400 22px/1.2 "Cormorant Garamond",Georgia,serif;text-align:center}
.stage-video-filters{position:fixed;z-index:42;left:50%;bottom:22px;display:flex;align-items:center;gap:5px;max-width:calc(100vw - 30px);padding:5px;border:1px solid rgba(236,203,160,.16);border-radius:999px;background:rgba(7,5,3,.72);box-shadow:0 12px 34px rgba(0,0,0,.35);transform:translateX(-50%);backdrop-filter:blur(16px)}
.stage-video-filters>span{padding:0 10px;color:rgba(221,170,105,.55);font-size:5px;letter-spacing:.25em}.stage-video-filters button{height:31px;padding:0 15px;border-radius:999px;background:transparent;color:rgba(235,213,187,.45);font-size:6px;letter-spacing:.12em;white-space:nowrap;cursor:pointer}.stage-video-filters button.is-active{background:rgba(207,145,73,.18);color:#f4e1ca;box-shadow:inset 0 0 0 1px rgba(232,181,114,.17)}
.stage-video-scrubber{position:fixed;z-index:43;left:50%;bottom:71px;display:grid;grid-template-columns:auto minmax(180px,42vw);align-items:center;gap:13px;padding:7px 12px;border:1px solid rgba(236,203,160,.12);border-radius:999px;background:rgba(7,5,3,.62);transform:translateX(-50%);backdrop-filter:blur(14px)}
.stage-video-scrubber>span{color:rgba(228,192,145,.42);font-size:5px;letter-spacing:.2em;white-space:nowrap}
.stage-video-scrubber input{width:100%;height:16px;margin:0;accent-color:#d79648;cursor:ew-resize}
.stage-video-scrubber input::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(224,158,79,.62),rgba(238,210,173,.16))}
.stage-video-scrubber input::-webkit-slider-thumb{width:13px;height:13px;margin-top:-5.5px;border:1px solid rgba(255,229,195,.72);border-radius:50%;background:#b97833;box-shadow:0 0 12px rgba(222,148,63,.38);-webkit-appearance:none}
.stage-video-scrubber input:disabled{opacity:.28;cursor:default}
.projection-page.is-video-mode .projection-viewport,.projection-page.is-video-mode .projection-depth-control,.projection-page.is-video-mode .projection-room-pages,.projection-page.is-video-mode .projection-instruction,.projection-page.is-video-mode .projection-drag-hint{opacity:0;visibility:hidden;pointer-events:none}

@media(max-width:800px){
  .stage-video-heading{left:18px;right:18px;top:76px}
  .stage-video-heading p{display:none}
  .stage-video-wall{grid-template-rows:repeat(2,minmax(0,1fr));gap:18px;padding:135px 9vw 85px}
  .stage-video-monitor,.stage-video-monitor:nth-child(n){--monitor-shift:0px;height:clamp(140px,27vh,205px)}
  .stage-video-filters{overflow-x:auto;justify-content:flex-start}
  .stage-video-scrubber{grid-template-columns:1fr;width:min(74vw,420px);gap:4px}.stage-video-scrubber>span{display:none}
}
@media(max-width:520px){
  .stage-video-monitor,.stage-video-monitor:nth-child(n){height:clamp(125px,23vh,175px)}
  .stage-video-filters>span{display:none}
  .stage-video-filters button{padding:0 10px}
}
