﻿/* A single dark door surface with a continuous, mirrored brass arch. */
.residence-entrance.loader{perspective:1600px;perspective-origin:50% 48%;background:none;}
.residence-entrance .gate-leaf{
  width:50%;
  background:radial-gradient(ellipse at var(--light-x,100%) 28%,#25241f 0%,#171814 48%,#10120f 100%);
  box-shadow:inset -1px 0 0 #b6a17633;
  opacity:1;transition:transform 1.8s cubic-bezier(.32,.08,.2,1),box-shadow 1.8s ease,opacity 350ms ease 1450ms;
}
.residence-entrance .gate-leaf--r{--light-x:0%;box-shadow:inset 1px 0 0 #0009;}
.residence-entrance .gate-leaf::before,.residence-entrance .gate-leaf::after{content:none;}
.residence-entrance .entrance-inlay{position:absolute;inset:0;width:100%;height:100%;opacity:.8;pointer-events:none;}
.residence-entrance .gate-leaf--r .entrance-inlay{transform:scaleX(-1);}
.entrance-handle{position:absolute;top:60%;width:4px;height:clamp(64px,12svh,116px);border-radius:2px;background:linear-gradient(90deg,#65583e,#b9a17a 48%,#807052);box-shadow:3px 3px 5px #0007;}
.gate-leaf--l .entrance-handle{right:18px;}.gate-leaf--r .entrance-handle{left:18px;}
.residence-entrance .loader-body{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:64px 24px 120px;text-align:center;pointer-events:none;}
.residence-entrance .gate-seal{position:relative;width:min(100%,480px);padding:0;background:none;}
.residence-entrance .gate-crown{width:60px;opacity:1;transform:none;animation:none;filter:none;}
.residence-entrance .gate-word{margin-top:24px;font-size:clamp(30px,4vw,46px);line-height:1.1;letter-spacing:.3em;text-indent:.3em;opacity:1;animation:none;color:#e5d8bf;}
.residence-entrance .gate-sub{margin-top:16px;font-size:10px;letter-spacing:.38em;text-indent:.38em;opacity:1;animation:none;color:#bba888;}
.residence-entrance:focus-visible{outline:1px solid #c9b38a;outline-offset:-12px;}
.residence-entrance .gate-seam{width:100px;filter:blur(18px);background:linear-gradient(90deg,#0000,#d8be8e33 48%,#ead9b655 50%,#d8be8e33 52%,#0000);}
.residence-entrance.is-breaking .loader-body{opacity:0;transform:translateY(-6px);pointer-events:none;}
/* Positive left / negative right rotation sends the meeting edges into the room. */
.residence-entrance.is-done .gate-leaf--l{transform:rotateY(88deg);}
.residence-entrance.is-done .gate-leaf--r{transform:rotateY(-88deg);}
.residence-entrance.is-done .gate-leaf{opacity:0;box-shadow:inset 0 0 80px #0006;}
@media(max-width:650px){
  .residence-entrance.loader{perspective:1000px;}
  .residence-entrance .loader-body{padding:64px 24px 110px;}
  .residence-entrance .gate-crown{width:48px;}
  .residence-entrance .gate-word{font-size:30px;letter-spacing:.24em;text-indent:.24em;}
  .entrance-handle{width:3px;height:74px;}
  .gate-leaf--l .entrance-handle{right:12px;}.gate-leaf--r .entrance-handle{left:12px;}
}
@media(max-height:580px){
  .residence-entrance .loader-body{padding:48px 20px 70px;}
  .residence-entrance .gate-crown{width:32px;}
  .residence-entrance .gate-word{font-size:26px;margin-top:14px;}
  .residence-entrance .gate-sub{margin-top:10px;}
}
@media(prefers-reduced-motion:reduce){.residence-entrance .gate-leaf,.residence-entrance .loader-body{transition:none;}}

/* Both greeters share one size, baseline and mirrored distance from the seam. */
.residence-entrance{
  --greeter-height:clamp(160px,25svh,260px);
  --greeter-inset:14px;
  --greeter-top:calc(60% + clamp(32px,6svh,58px) - var(--greeter-height) * .4);
}
.residence-entrance .entrance-whale,
.residence-entrance .entrance-divani{
  position:absolute;z-index:2;
  top:var(--greeter-top);
  height:var(--greeter-height);width:calc(var(--greeter-height) * .82);
  max-width:none;object-fit:contain;object-position:center bottom;
  pointer-events:none;user-select:none;
  transform-origin:50% 96%;transform:none;
  opacity:1;filter:drop-shadow(0 8px 8px #0004);
  transition:transform 430ms ease,opacity 600ms ease;
}
/* Compensate for the narrower whale artwork and its 73.1025% scale at the palm. */
.residence-entrance .entrance-whale{left:calc(var(--greeter-inset) - var(--greeter-height) * .149);scale:.731025;}
.residence-entrance .entrance-divani{right:var(--greeter-inset);}
.residence-entrance.is-breaking .entrance-whale{transform:rotate(-4deg);}
.residence-entrance.is-breaking .entrance-divani{transform:rotate(4deg);}
.residence-entrance.is-done .entrance-whale{transform:rotate(-6deg);}
.residence-entrance.is-done .entrance-divani{transform:rotate(6deg);}
.residence-entrance.is-done .entrance-whale,
.residence-entrance.is-done .entrance-divani{
  opacity:0;transition:transform 1.8s ease,opacity 600ms ease 900ms;
}
@media(max-width:650px){
  .residence-entrance{
    --greeter-height:min(24svh,220px,calc(55vw - 40px));
    --greeter-inset:8px;
    --greeter-top:calc(60% + 37px - var(--greeter-height) * .4);
  }
}
@media(max-height:580px){
  .residence-entrance{--greeter-height:min(140px,calc(55vw - 40px));}
}
@media(prefers-reduced-motion:reduce){
  .residence-entrance .entrance-whale,
  .residence-entrance .entrance-divani{transition:none;}
}