.door-reveal{--door-header:0px;--door-portal-width:min(100%,calc((100svh - var(--door-header)) * .86));--door-open:1;--door-angle:180deg;--door-intro:0;--door-photo-y:0%;--door-ring:1;--door-ring-shift:0px;--door-face-shade:0;position:relative;height:220svh;background:#e3dbce}
.door-stage{position:sticky;top:var(--door-header);height:calc(100svh - var(--door-header));isolation:isolate;overflow:hidden;background:#fbf6f0}
.door-entry:not(.door-ready) .door-reveal{--door-open:0;--door-angle:0deg;--door-intro:1;--door-ring:0}
.door-entry:not(.door-ready) .door-reveal[data-motion=static] .door-leaves,.door-entry:not(.door-ready) .door-reveal[data-motion=static] .door-wall{display:block}
.door-photo-frame{position:absolute;inset:0;overflow:hidden;transform:translate3d(0,var(--door-photo-y),0) scale(1.09)}
.door-paris-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;max-width:none}
.door-ring-stage{position:absolute;left:50%;top:50%;width:min(clamp(260px,40vw,360px),calc(100svh - var(--door-header) - 24px));aspect-ratio:1;z-index:2;opacity:calc(var(--door-ring) * var(--hero-ring-exit,1));transform:translate(-50%,-50%) translate3d(0,var(--door-ring-shift),0)}
.door-ring-stage:before{content:'';position:absolute;inset:9%;background:radial-gradient(ellipse,rgba(251,238,226,.4),rgba(248,229,217,.08) 47%,transparent 73%);pointer-events:none}
.door-ring-toggle{position:relative;display:block;width:100%;height:100%;min-width:44px;min-height:44px;padding:0;border:0;background:none;border-radius:50%;cursor:pointer}
.door-ring-toggle:disabled{opacity:1;cursor:default}
.door-ring-toggle:focus-visible{outline:2px solid #342e29;outline-offset:5px}
.door-ring-media{position:absolute;inset:0;display:block;pointer-events:none;filter:drop-shadow(0 16px 13px rgba(39,25,24,.22))}
.door-ring-still,.door-ring-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center;max-width:none;pointer-events:none}
.door-ring-still{opacity:1}
.door-ring-canvas{opacity:0}
.door-ring-media[data-video-ready=true] .door-ring-still{opacity:0}
.door-ring-media[data-video-ready=true] .door-ring-canvas{opacity:1}
.door-ring-media>.door-ring-source{position:absolute;left:0;top:0;display:block;width:1px;height:1px;min-width:0;min-height:0;opacity:0;pointer-events:none}
.door-wall{position:absolute;inset:0;z-index:4;opacity:calc(1 - var(--door-open));pointer-events:none}
.door-wall:before,.door-wall:after{content:'';position:absolute;top:0;bottom:0;width:calc((100% - var(--door-portal-width)) / 2 + 1px)}
.door-wall:before{left:0;background:linear-gradient(90deg,#e5ddd1,#eee7dc);box-shadow:inset -10px 0 18px rgba(97,79,54,.09)}
.door-wall:after{right:0;background:linear-gradient(90deg,#eee7dc,#e5ddd1);box-shadow:inset 10px 0 18px rgba(97,79,54,.09)}
.door-leaves{position:absolute;top:0;bottom:0;left:50%;width:var(--door-portal-width);transform:translateX(-50%);z-index:5;perspective:1600px;pointer-events:none;transform-style:preserve-3d}
.door-leaf{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(90deg,#d7cdbd,#e8e1d5 14%,#eee7dd 63%,#d9ccba);box-shadow:inset 0 0 0 1px #c9bfaf,inset 0 0 28px rgba(78,60,43,.13),0 8px 25px rgba(8,9,9,.27);backface-visibility:visible;-webkit-backface-visibility:visible;transform-style:preserve-3d}
.door-leaf-left{left:0;transform-origin:left center;transform:rotateY(calc(-1 * var(--door-angle)))}
.door-leaf-right{right:0;transform-origin:right center;transform:rotateY(var(--door-angle))}
.door-leaf:before{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(35,27,19,var(--door-face-shade)),transparent 70%),url('assets/paris-door-leaf.webp');background-size:cover;background-position:right center;opacity:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;pointer-events:none}
.door-leaf-right:before{transform:scaleX(-1)}
.door-reveal[data-door-textured=true] .door-leaf:before{opacity:1}
.door-reveal[data-door-textured=true] .door-panel,.door-reveal[data-door-textured=true] .door-handle{opacity:0}
.door-leaf:after{content:'';position:absolute;top:0;bottom:0;width:18px;background:linear-gradient(90deg,#8d7d64,#c3b49c 45%,#8a7960);box-shadow:inset 0 0 0 1px rgba(89,69,41,.35);backface-visibility:visible}
.door-leaf-left:after{right:-18px;transform-origin:left center;transform:rotateY(90deg)}
.door-leaf-right:after{left:-18px;transform-origin:right center;transform:rotateY(-90deg)}
.door-panel{position:absolute;left:11%;right:11%;border:1px solid #bdb2a0;box-shadow:0 1px 1px #f9f4ea,inset 0 2px 3px rgba(101,82,54,.13);background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(139,118,84,.035))}
.door-panel:before,.door-panel:after{content:'';position:absolute;border:1px solid;pointer-events:none}
.door-panel:before{inset:8px;border-color:#f7f0e5 #c8bdab #c8bdab #f7f0e5;box-shadow:0 0 0 3px rgba(142,125,99,.06)}
.door-panel:after{inset:13px;border-color:#d1c6b5 #eee7da #eee7da #d1c6b5}
.door-panel-upper{top:8%;height:56%}.door-panel-lower{top:69%;bottom:8%}
.door-handle{position:absolute;top:44%;width:5px;height:54px;border-radius:4px;background:linear-gradient(90deg,#7c6037,#d8c397 42%,#a98c52 70%,#6f552f);box-shadow:2px 1px 5px rgba(69,48,24,.3)}
.door-leaf-left .door-handle{right:5.5%}.door-leaf-right .door-handle{left:5.5%}
.door-frame{position:absolute;inset:0;z-index:4;border:12px solid #d5cabc;box-shadow:inset 0 0 0 1px #ac9d88,inset 0 0 17px rgba(58,44,28,.24);opacity:calc(1 - var(--door-open));pointer-events:none}
.door-intro{position:absolute;inset:0;z-index:6;display:grid;place-items:center;color:#342e29;pointer-events:none;opacity:var(--door-intro)}
.door-intro .door-wordmark{font-family:var(--display);font-size:clamp(80px,11vw,150px);font-weight:400;letter-spacing:-.055em;line-height:1;padding-bottom:.12em;margin:0}
.door-reveal[data-motion=static]{height:calc(100svh - var(--door-header))}
.door-reveal[data-motion=static] .door-stage{position:relative;top:0;height:100%}
.door-reveal[data-motion=static] .door-leaves,.door-reveal[data-motion=static] .door-wall{display:none}
.door-reveal[data-motion=static] .door-ring-still{opacity:1}
.door-reveal[data-motion=static] .door-ring-canvas{opacity:0}
@media(max-width:760px){
 .door-reveal{--door-header:0px;height:230svh}
 .door-leaves{perspective:1100px}
 .door-paris-photo{object-fit:cover;object-position:52% center}
 .door-ring-stage{width:min(76vw,340px,calc(100svh - var(--door-header) - 24px))}
 .door-intro .door-wordmark{font-size:clamp(78px,24vw,112px)}
 .door-panel{left:13%;right:13%}
 .door-panel:before{inset:5px}.door-panel:after{inset:9px}
 .door-frame{border-width:8px}
}
@media(max-height:500px) and (orientation:landscape){
 .door-paris-photo{object-fit:contain;object-position:center}
 .door-intro .door-wordmark{font-size:76px}
}
@media(prefers-reduced-motion:reduce){
 .door-reveal{height:calc(100svh - var(--door-header))}
 .door-stage{position:relative;top:0;height:100%}
 .door-leaves,.door-wall{display:none!important}
 .door-ring-still{opacity:1!important}
 .door-ring-canvas{opacity:0!important}
 .door-photo-frame{transform:none}
 .door-intro{opacity:0}
}
