/* Photo and doors scale together in a fixed 8:5 frame, never viewport-stretched. */
.is-category .door-stage{display:none}
body:not(.is-category) .hero .door-stage{position:absolute;right:0;top:50%;transform:translateY(-50%);width:min(66%,128svh);aspect-ratio:8 / 5;z-index:2;overflow:hidden;isolation:isolate;background:#142b39}
body:not(.is-category) .hero .door-stage .space,body:not(.is-category) .hero .door-stage .entrance-doors{inset:0;width:100%;height:100%;opacity:1}
body:not(.is-category) .hero .door-stage .linked-door{animation:none;transform:translateX(0);transition:transform 2s cubic-bezier(.65,0,.18,1)}
body:not(.is-category) .hero .door-stage.is-open .linked-door{transform:translateX(var(--travel))}
.door-toggle{position:absolute;right:clamp(12px,2vw,28px);bottom:clamp(12px,2vw,28px);z-index:10;min-width:112px;min-height:48px;padding:12px 22px;border:1px solid #b7cbd6;border-radius:28px;color:#fff;background:rgba(7,21,34,.94);font:inherit;font-size:1rem;cursor:pointer;touch-action:manipulation}
.door-toggle:hover{background:#29465a}.door-toggle:focus-visible{outline:3px solid white;outline-offset:4px}
@media(prefers-reduced-motion:reduce){body:not(.is-category) .hero .door-stage .linked-door{transition:none}}
body:not(.is-category) .hero{
  --visual-start:34%;
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:100vh;
  min-height:100svh;
  min-height:100dvh;
  height:auto;
  width:100%;
  isolation:isolate;
}
body:not(.is-category) .hero nav{
  position:relative;
  grid-row:1;
  padding-top:max(22px,env(safe-area-inset-top));
  padding-left:max(4vw,env(safe-area-inset-left));
  padding-right:max(4vw,env(safe-area-inset-right));
  min-width:0;
}
body:not(.is-category) .hero .copy{
  position:relative;
  grid-row:2;
  align-self:center;
  left:auto;right:auto;top:auto;
  transform:none;
  margin:clamp(28px,6vh,90px) 7vw;
  padding-bottom:max(28px,env(safe-area-inset-bottom));
  max-width:min(590px,86vw);
  min-width:0;
}
body:not(.is-category) .hero .space,
body:not(.is-category) .hero .entrance-doors{
  inset:0 0 0 var(--visual-start);
  width:auto;height:auto;
}
body:not(.is-category) .hero .space{
  background-size:cover;
  background-position:center center;
  animation:none;
  transform:none;
  will-change:auto;
}
body:not(.is-category) .hero h1{font-size:clamp(2rem,4.4vw,4.375rem);overflow-wrap:break-word}
body:not(.is-category) .hero .logo{width:clamp(170px,22vw,290px);max-width:100%;height:auto}
body:not(.is-category) .hero .linked-door{border-width:clamp(1px,.2vw,3px)}
body:not(.is-category) .hero .linked-door.leaf-3:after{height:clamp(32px,10vh,76px);width:clamp(3px,.35vw,5px)}
@media(max-width:800px){
  body:not(.is-category) .hero{grid-template-rows:auto auto 1fr}
  body:not(.is-category) .hero .door-stage{position:relative;grid-row:2;top:auto;right:auto;transform:none;width:100%;aspect-ratio:8 / 5;align-self:start}
  body:not(.is-category) .hero .copy{grid-row:3}
  body:not(.is-category) .hero{--visual-start:0%}
  body:not(.is-category) .hero .panel{width:100%;z-index:0}
  body:not(.is-category) .hero .copy{max-width:86vw;margin:clamp(24px,5vh,60px) 7vw}
  body:not(.is-category) .hero h1{font-size:clamp(1.85rem,6.5vw,3.25rem);line-height:1.45;letter-spacing:-.025em}
}
@media(max-width:700px){
  body:not(.is-category) .hero nav{padding-left:max(6vw,env(safe-area-inset-left));padding-right:max(6vw,env(safe-area-inset-right))}
  body:not(.is-category) .hero .logo{width:clamp(170px,45vw,220px)}
}
@media(max-height:500px) and (orientation:landscape){
  body:not(.is-category) .hero nav{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:12px;gap:12px}
  body:not(.is-category) .hero .copy{margin-top:12px;margin-bottom:12px;padding-bottom:16px}
  body:not(.is-category) .hero h1{font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.3}
  body:not(.is-category) .hero .eyebrow{margin-bottom:12px}
  body:not(.is-category) .hero .rule{margin:14px 0}
}
