/* The panels retain their natural grid height throughout the animation. */
.concierge-layout{perspective:1800px}
.concierge-opening{transform-origin:left center;animation:concierge-unfold 1.25s cubic-bezier(.2,.7,.2,1) both;backface-visibility:hidden}
#concierge-handoff.enquiry-motion{position:relative;perspective:1400px;isolation:isolate}
.enquiry-sheet{background:#15365b;border-radius:10px;position:relative;transform-origin:center;backface-visibility:hidden}
.enquiry-mail-scene{position:absolute;inset:0;pointer-events:none;opacity:0;display:flex;align-items:center;justify-content:center;perspective:1100px;overflow:hidden;border-radius:18px}
.enquiry-envelope{position:absolute;width:min(76%,330px);aspect-ratio:1.55;filter:drop-shadow(0 22px 18px #071e4430);transform-style:preserve-3d}
.mail-back{position:absolute;inset:0;border-radius:9px;background:#416fac;border:1px solid #87aee5}
.mail-pocket{position:absolute;inset:0;border-radius:8px;background:linear-gradient(145deg,#b5d4ff,#7fa9e4);clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);z-index:3}
.mail-pocket:after{content:'';position:absolute;inset:0;background:linear-gradient(155deg,#d6e7ff,#8bb7f0);clip-path:polygon(0 100%,50% 43%,100% 100%)}
.mail-flap{position:absolute;inset:0 0 45%;background:linear-gradient(155deg,#dceaff,#aacbf6);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:4;backface-visibility:visible}
.mail-letter{position:absolute;inset:10% 9%;border-radius:5px;background:#fbfaf4;padding:20% 13%;z-index:2;box-shadow:0 0 8px #102b5020}
.mail-letter span{display:block;height:3px;margin:0 0 9px;background:#8eafd6;border-radius:2px}.mail-letter span:last-child{width:60%}
.mail-seal{position:absolute;left:calc(50% - 18px);top:45%;z-index:5;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#15365b;color:#fff;font:italic 28px Georgia,serif;box-shadow:0 3px 7px #17325d40}
.mail-confirmation{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:26px;text-align:center;opacity:0;transform:translateY(12px);transition:opacity .4s,transform .4s;color:#15365b}
.mail-confirmation strong{font-size:clamp(24px,2.5vw,34px);font-weight:500;line-height:1.15}.mail-confirmation>span:last-child{font-size:16px}.mail-check{width:64px;height:64px;border:1px solid #8bafd9;border-radius:50%;display:grid;place-items:center;font-size:32px;background:#edf4ff}
#concierge-handoff.mail-arriving,#concierge-handoff.mail-sending{background:transparent;box-shadow:none}
/* One continuous handoff from envelope to panel; no staged rotations or overshoot. */
.mail-arriving:before{content:'';position:absolute;inset:0;z-index:-1;background:#15365b;border-radius:18px;box-shadow:0 18px 35px #15365b1c;animation:panel-open 1.2s .35s cubic-bezier(.22,1,.36,1) both}
.mail-arriving .enquiry-sheet{background:transparent;animation:enquiry-unfold 1.1s .5s cubic-bezier(.22,1,.36,1) both;will-change:transform,opacity}
.mail-arriving .enquiry-mail-scene{animation:arrival-scene .65s .65s ease-out both}
.mail-arriving .enquiry-envelope{animation:mail-arrive .7s cubic-bezier(.22,1,.36,1) both}
.mail-arriving .mail-flap{animation:flap-open .8s .12s cubic-bezier(.4,0,.2,1) both}
.mail-arriving .mail-letter{animation:letter-rise .95s .2s cubic-bezier(.22,1,.36,1) both}
.mail-arriving .mail-seal{animation:seal-away .25s .12s ease-out both}
.mail-sending .enquiry-sheet{animation:enquiry-fold .85s ease-in both;pointer-events:none}
.mail-sending .enquiry-mail-scene{opacity:1}
.mail-sending .enquiry-envelope{animation:mail-depart 1.75s cubic-bezier(.4,0,.3,1) both}
.mail-sending .mail-flap{animation:flap-close 1.2s both}
.mail-sending .mail-letter{animation:letter-in 1s both}
.mail-sending .mail-seal{animation:seal-on 1.2s both}
.mail-delivered .mail-confirmation{opacity:1;transform:none}
.mail-returning .enquiry-sheet{animation:sheet-return .65s ease both}
.mail-pending #concierge-send-enquiry span{display:inline-block;animation:send-await 1.2s ease-in-out infinite}
.mail-preview{display:block;margin:15px auto 0;border:0;border-bottom:1px solid #a5bfdf;background:none;color:#d9e8fb;font:inherit;font-size:12px;cursor:pointer;padding:3px}
@keyframes concierge-unfold{0%{opacity:0;transform:rotateY(-82deg) translateX(-18px);box-shadow:25px 20px 50px #15365b30}40%{opacity:1}100%{transform:none}}
@keyframes panel-open{from{opacity:0;transform:translateY(16px) scale(.72,.4)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes enquiry-unfold{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes arrival-scene{from{opacity:1}to{opacity:0}}
@keyframes mail-arrive{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes flap-open{from{transform:rotateX(0)}to{transform:rotateX(175deg)}}
@keyframes letter-rise{from{transform:translateY(0)}to{transform:translateY(-38%)}}
@keyframes seal-away{from{opacity:1}to{opacity:0}}
@keyframes enquiry-fold{0%{opacity:1;transform:none}55%{opacity:1;transform:rotateX(35deg) scale(.72,.35)}100%{opacity:0;transform:translateY(24px) rotateX(65deg) scale(.5,.1)}}
@keyframes mail-depart{0%,30%{opacity:0;transform:translateY(24px) scale(.85)}50%,72%{opacity:1;transform:none}100%{opacity:0;transform:translate(110%,-100px) rotate(-12deg) scale(.65)}}
@keyframes flap-close{0%,55%{transform:rotateX(175deg)}100%{transform:rotateX(0)}}
@keyframes letter-in{0%,45%{transform:translateY(-60%)}100%{transform:none}}
@keyframes seal-on{0%,80%{opacity:0;transform:scale(.6)}100%{opacity:1;transform:scale(1)}}
@keyframes sheet-return{from{opacity:0;transform:translateY(12px) rotateX(-9deg)}to{opacity:1;transform:none}}
@keyframes send-await{50%{transform:translate(3px,-3px);opacity:.5}}
@media(max-width:850px){.concierge-opening{transform-origin:center;animation-name:sheet-return;animation-duration:.8s}.enquiry-envelope{max-width:280px}}
@media(prefers-reduced-motion:reduce){.mail-sending .enquiry-sheet{opacity:0}.mail-sending .enquiry-envelope{display:none}.mail-delivered .mail-confirmation{opacity:1;transform:none}}
