/* Scene motion only. Theme and the eight cover-film positions live in guest.css. */
.envelope-stage{background:none;perspective:1300px;backdrop-filter:none}
.envelope-stage.active,.home-wipe.active{pointer-events:auto;touch-action:none}
.envelope-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--red) 78%,var(--deep)),var(--deep) 85%);pointer-events:none}
.envelope-button-label{position:absolute;display:grid;place-items:center;pointer-events:none}
.envelope-scene{position:absolute;width:min(390px,84vw);perspective:1300px;transform-style:preserve-3d}
.envelope{transform-style:preserve-3d;transform:none;will-change:transform}
.envelope-back{background:color-mix(in srgb,var(--paper) 73%,var(--red));box-shadow:0 2px 0 #fff4,0 35px 85px #0008}
.envelope-flap{background:linear-gradient(155deg,var(--paper),color-mix(in srgb,var(--paper) 72%,var(--red)));transform-origin:50% 0;transform-style:preserve-3d;will-change:transform;filter:drop-shadow(0 7px 4px #21020c3b)}
.envelope-pocket{background:linear-gradient(28deg,color-mix(in srgb,var(--paper) 87%,var(--red)),var(--paper) 54%,color-mix(in srgb,var(--paper) 92%,#fff));box-shadow:inset 0 -1px #fff6;transform:translateZ(4px)}
.envelope-letter{inset:8% 7% 1%;display:block;overflow:hidden;padding:0!important;background:var(--paper);color:var(--ink);border-radius:3px;transform-origin:50% 100%;box-shadow:0 -4px 15px #1a030923;letter-spacing:normal;font:inherit;will-change:transform}
.envelope-preview{position:absolute;left:0;top:0;max-width:none;margin:0;transform-origin:0 0;box-shadow:none;border-radius:0;pointer-events:none}
.envelope-seal{background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--red) 65%,#b34d62),var(--red));color:var(--paper);box-shadow:0 2px 0 #ba637755,0 6px 12px #16020a66;border:1px solid #b965755c;font-weight:400;transform:translateZ(8px)}
.home-wipe{overflow:hidden;isolation:isolate;contain:layout paint}
.home-wipe>.scene-film{inset:auto;left:-30vw;width:160vw;height:80svh;top:-15svh;display:flex;align-items:center;border:0;background:var(--red);box-shadow:0 24px 65px #0008;transform:translate3d(-135%,0,0) rotate(-8deg);transform-origin:center;will-change:transform,background-color;overflow:hidden}
.home-wipe>.scene-film+.scene-film{top:35svh;background:var(--deep);transform:translate3d(135%,0,0) rotate(8deg)}
.scene-film:before,.scene-film:after{content:'';position:absolute;left:0;right:0;height:18px;z-index:2;background:repeating-linear-gradient(90deg,transparent 0 17px,var(--paper) 17px 37px,transparent 37px 55px);opacity:.48}
.scene-film:before{top:13px}.scene-film:after{bottom:13px}
.scene-film .wipe-frames{height:calc(100% - 80px);width:100%;display:flex;gap:16px;opacity:.43;mix-blend-mode:luminosity;pointer-events:none}
.wipe-frames img{height:100%;width:28vw;min-width:170px;object-fit:cover;filter:sepia(.28) saturate(.5);user-select:none}
.scene-film .wipe-label{position:absolute;bottom:34px;left:32vw;font:400 11px var(--display);letter-spacing:4px;color:var(--paper);opacity:.62}
.home-wipe[data-destination="gallery"]>.scene-film+.scene-film,.home-wipe[data-destination="news"]>.scene-film+.scene-film{background:var(--paper)}
.home-wipe[data-destination="gallery"]>.scene-film+.scene-film:before,.home-wipe[data-destination="gallery"]>.scene-film+.scene-film:after,.home-wipe[data-destination="news"]>.scene-film+.scene-film:before,.home-wipe[data-destination="news"]>.scene-film+.scene-film:after{background:repeating-linear-gradient(90deg,transparent 0 17px,var(--red) 17px 37px,transparent 37px 55px)}
.location-section{padding-top:clamp(110px,18svh,180px);background:var(--deep)}
.location-atmosphere{position:absolute;inset:0 0 auto;height:min(900px,110svh);overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 38%,#74173375,transparent 68%);opacity:calc(.12 + var(--city-progress,0)*.88)}
.location-section .city{bottom:auto;width:620px;height:620px;z-index:1;opacity:calc(.06 + var(--city-progress,0)*.52);transform-origin:50% 90%;will-change:transform;background-size:contain;background-repeat:no-repeat;pointer-events:none}
.location-section .city-left{top:-40px;left:-100px;background-image:url('/assets/location-city-left-v2.webp');mask-image:linear-gradient(105deg,#000 25%,#000c 56%,transparent 94%);transform:translate3d(calc(-240px + var(--city-progress,0)*240px),calc(70px - var(--city-progress,0)*70px),0) rotate(calc(-3deg + var(--city-progress,0)*3deg)) scale(calc(.92 + var(--city-progress,0)*.08))}
.location-section .city-right{top:150px;right:-80px;background-image:url('/assets/location-city-right-v2.webp');mask-image:linear-gradient(255deg,#000 30%,#000c 60%,transparent 96%);transform:translate3d(calc(240px - var(--city-progress,0)*240px),calc(100px - var(--city-progress,0)*100px),0) rotate(calc(3deg - var(--city-progress,0)*3deg)) scale(calc(.92 + var(--city-progress,0)*.08))}
.location-heading{opacity:calc(.5 + var(--location-heading-progress,0)*.5);transform:translate3d(0,calc(55px - var(--location-heading-progress,0)*55px),0)}
.location-heading h2{clip-path:inset(calc((1 - var(--location-heading-progress,0))*75%) 0 0);transform:translateX(calc(24px - var(--location-heading-progress,0)*24px))}
.location-heading:focus-within,.location-heading:focus-within h2{opacity:1;transform:none;clip-path:none}
.map-reveal{min-width:0;perspective:1400px}
.location-section .map-paper{position:relative;transform:translate3d(0,calc(85px - var(--map-progress,0)*85px),0) rotateX(calc(28deg - var(--map-progress,0)*28deg)) rotateZ(calc(-5deg + var(--map-progress,0)*5deg)) scale(calc(.82 + var(--map-progress,0)*.18));transform-origin:50% 100%;clip-path:inset(0 calc((1 - var(--map-progress,0))*34%) 0 calc((1 - var(--map-progress,0))*34%) round 4px);will-change:transform}
.location-section .map-paper:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#19040a55,transparent 18%,#fff3 49.6%,#19040a66 50%,transparent 72%,#19040a55);opacity:calc(1 - var(--map-progress,0))}
@media(max-width:767px){.location-section .city{width:350px;height:350px}.location-section .city-left{top:-20px;left:-55px}.location-section .city-right{top:140px;right:-55px}}
.gallery-section:before{content:'';position:absolute;inset:0 0 auto;height:340px;z-index:-1;background:linear-gradient(var(--red),transparent);opacity:calc(1 - var(--gallery-progress,0));pointer-events:none}
.gallery-section .film-transition{height:150px;top:-24px;left:-15%;width:130%;background:var(--deep);transform:translate3d(calc(var(--gallery-progress,0)*8vw),calc(30px - var(--gallery-progress,0)*195px),0) rotate(calc(-8deg + var(--gallery-progress,0)*5deg));box-shadow:0 18px 36px #19030946;will-change:transform}
.gallery-section .closing-film{transform:translate3d(calc(var(--news-progress,0)*-18vw),calc(18px - var(--news-progress,0)*48px),0) rotate(calc(3deg - var(--news-progress,0)*5deg));transform-origin:50% 80%;box-shadow:0 14px 34px #26071633;will-change:transform}
.news-section .news-compose{transform:perspective(1100px) translateY(calc(54px - var(--news-progress,0)*54px)) rotateX(calc(5deg - var(--news-progress,0)*5deg));transform-origin:50% 0;opacity:calc(.4 + var(--news-progress,0)*.6)}
.news-section:focus-within .news-compose{transform:none;opacity:1}
@media(max-width:600px){.scene-film:before,.scene-film:after{height:12px}.scene-film:before{top:9px}.scene-film:after{bottom:9px}.scene-film .wipe-frames{height:calc(100% - 60px);gap:10px}.scene-film .wipe-label{bottom:26px;font-size:9px;letter-spacing:3px}.gallery-section .film-transition{height:125px}.envelope-letter{padding:20px}}
@media(prefers-reduced-motion:reduce){.envelope-stage,.home-wipe{display:none!important}.location-section .city,.location-section .map-paper,.location-heading,.location-heading h2,.gallery-section .film-transition,.gallery-section .closing-film,.news-section .news-compose{transform:none!important;clip-path:none!important;will-change:auto}.location-section .city{opacity:.58}.location-heading{opacity:1}.location-section .map-paper:after{display:none}.news-section .news-compose{opacity:1}.gallery-section:before{display:none}}

.menu-dialog[open]{animation:none}
