/* Uniform scale preserves the six leaves' proportions during entry. */
body:not(.is-category) .hero .door-stage.door-resetting .linked-door{transition:none}
@media(hover:hover) and (pointer:fine){
body:not(.is-category) .hero .door-stage .space{transform:translate3d(var(--bg-x,0px),var(--bg-y,0px),0) scale(1.055);transform-origin:center;transition:transform .22s linear;will-change:transform}
body:not(.is-category) .hero .door-stage .entrance-doors{transform:translate3d(var(--door-x,0px),var(--door-y,0px),0) scale(1.012);transform-origin:center;transition:transform .25s linear;will-change:transform}
body:not(.is-category) .hero .door-stage:after{content:"";position:absolute;inset:-18%;z-index:5;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(226,241,248,.12),transparent 34%);transform:translate3d(var(--glow-x,0px),var(--glow-y,0px),0);mix-blend-mode:screen;opacity:.72;transition:opacity .35s ease}
body:not(.is-category) .hero .door-stage.is-transitioning:after{opacity:0}
}
.door-navigating{overflow:hidden}
.door-transition{position:fixed;inset:0;z-index:100;overflow:hidden;pointer-events:auto;background:#071522}
.door-transition:before{content:"";position:absolute;inset:-30%;z-index:4;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(255,250,240,.62) 0%,rgba(236,243,250,.3) 18%,rgba(190,220,239,.1) 42%,transparent 68%);opacity:0;transform:scale(1.04)}
.door-transition.is-entering:before{animation:entryLight 2.15s cubic-bezier(.2,.7,.2,1) both}
.door-transition .door-stage{display:block;position:absolute;overflow:hidden;isolation:isolate;background:#142b39;transform-origin:0 0;transform:translate(0,0) scale(1);transition:transform 1.95s cubic-bezier(.22,.72,.12,1)}
.door-transition .space,.door-transition .entrance-doors{position:absolute;inset:0;width:100%;height:100%;opacity:1}
.door-transition .space{animation:none;transform:scale(1.03);transform-origin:center;background-size:cover;background-position:center;transition:transform 1.95s cubic-bezier(.22,.72,.12,1),filter 1.8s ease;will-change:transform}
.door-transition.is-entering .space{transform:scale(1);filter:brightness(1.16) saturate(.97) contrast(.98)}
.door-transition .entrance-doors{transform:scale(1);transition:transform 1.7s cubic-bezier(.22,.72,.12,1),opacity .62s ease 1.02s,filter .62s ease 1.02s;will-change:transform,opacity}
.door-transition.is-entering .entrance-doors{transform:translateY(7%) scale(1.08);opacity:0;filter:blur(7px)}
.door-transition .linked-door{animation:none;transform:translateX(0);transition:transform 1.55s cubic-bezier(.3,.78,.12,1)}
.door-transition .is-open .linked-door{transform:translateX(var(--travel))}
.door-transition:after{content:'';position:absolute;inset:0;z-index:9;background:linear-gradient(180deg,#e9f7ff 0%,#cbe9f7 44%,#071522 100%);opacity:0;pointer-events:none}
.door-transition.is-entering:after{animation:categoryReveal 2.25s both}
@keyframes entryLight{0%{opacity:0;transform:translateY(-10%) scale(1.02)}38%{opacity:.42}72%{opacity:.92}100%{opacity:0;transform:translateY(4%) scale(1.3)}}
@keyframes categoryReveal{0%,78%{opacity:0}88%{opacity:.34}100%{opacity:1}}
body:not(.is-category) .hero .door-stage .linked-door{transition-duration:2.8s;transition-timing-function:cubic-bezier(.35,0,.18,1)}
.is-category .category-page:not([hidden]){animation:categoryArrival .55s ease-out both}
@keyframes categoryArrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.door-transition{display:none}.is-category .category-page:not([hidden]){animation:none}body:not(.is-category) .hero .door-stage .linked-door{transition:none}}
