/* A restrained, desktop-first motion language for Blackstone. */
.brand-curtain{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#111210;color:#e7d5ab;animation:bs-curtain-arrive 180ms ease-out both;cursor:progress}
.brand-curtain-frame{position:absolute;inset:28px;border:1px solid #b99a5740;pointer-events:none;animation:bs-frame-bloom 700ms ease-out both}
.brand-curtain-content{display:flex;flex-direction:column;align-items:center;gap:38px;padding:35px;text-align:center;animation:bs-brand-arrive 650ms cubic-bezier(.22,1,.36,1) both}
.brand-curtain-eyebrow{font:9px/1.8 'DM Sans',sans-serif;letter-spacing:.24em;color:#bda572}
.brand-curtain .brand-reference{width:min(440px,75vw);background:#111210;filter:none;mix-blend-mode:normal;animation:bs-logo-bloom 650ms cubic-bezier(.22,1,.36,1) both}
.brand-curtain .brand-reference:after{content:'';position:absolute;inset:-25% -40%;background:linear-gradient(110deg,transparent 40%,#e1bc6860 50%,transparent 60%);mix-blend-mode:screen;pointer-events:none;animation:bs-logo-shimmer 700ms 50ms ease-in-out both}
.brand-curtain .brand-reference img{filter:grayscale(1) contrast(3) invert(1);mix-blend-mode:screen}
.brand-curtain-line{width:150px;height:1px;background:#b99a5730;overflow:hidden}
.brand-curtain-line i{display:block;width:100%;height:100%;background:#d9bb7b;transform-origin:left;animation:bs-brand-line 750ms cubic-bezier(.3,.1,.3,1) both}
.brand-curtain-caption{font:10px/1.6 'DM Sans',sans-serif;letter-spacing:.38em;color:#d0c7b4;animation:bs-caption-in 450ms 150ms ease-out both}
.brand-curtain.is-leaving{animation:bs-curtain-depart 250ms ease-in both;pointer-events:none}
@keyframes bs-logo-bloom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes bs-logo-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes bs-frame-bloom{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@keyframes bs-curtain-arrive{from{opacity:0}to{opacity:1}}
@keyframes bs-curtain-depart{from{opacity:1}to{opacity:0}}
@keyframes bs-brand-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes bs-brand-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference) {
  :root { --motion-ease:cubic-bezier(.22,1,.36,1) }
  .route-in { animation:none }
  .motion-pending { opacity:0; transform:translateY(24px) }
  ::view-transition-old(root) { animation:bs-page-out 380ms ease both }
  ::view-transition-new(root) { animation:bs-page-unveil 650ms var(--motion-ease) both }
  ::view-transition-group(root) { animation-duration:650ms }
  html[data-motion-context="workspace"]::view-transition-old(root) { animation:bs-page-out 140ms ease both }
  html[data-motion-context="workspace"]::view-transition-new(root) { animation:bs-workspace-in 220ms ease-out both }
  html[data-motion-context="workspace"]::view-transition-group(root) { animation-duration:220ms }
  .hero-image>img { animation:bs-image-settle 1400ms var(--motion-ease) backwards }
  .image-corner { animation:bs-frame-in 1100ms 150ms var(--motion-ease) backwards }
  .image-caption { animation:bs-caption-in 950ms 180ms var(--motion-ease) backwards }
  .nav-links a:after { content:''; position:absolute; left:0; right:0; bottom:-10px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 350ms var(--motion-ease) }
  .nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a.active:after { transform:scaleX(1) }
  .btn .icon,.text-link .icon,.mini-link .icon { transition:transform 350ms var(--motion-ease) }
  .btn:hover .icon,.text-link:hover .icon,.mini-link:hover .icon { transform:translateX(4px) }
  .job-card { transition:transform 400ms var(--motion-ease),border-color 300ms,box-shadow 400ms }
  .job-card:hover { box-shadow:0 18px 38px #0000000c }
  .market-code { transition:background 300ms,border-color 300ms,transform 400ms var(--motion-ease) }
  .market-bar a:hover .market-code { background:var(--gold-soft); border-color:var(--gold); transform:translateY(-3px) }
  .side-nav a { transition:background 180ms,color 180ms }
  dialog[open] .modal-inner { animation:bs-workspace-in 240ms var(--motion-ease) both }
  dialog[open]::backdrop { animation:bs-backdrop-in 200ms ease both }
  @keyframes bs-page-out { to { opacity:0; transform:translateY(-12px) } }
  @keyframes bs-page-unveil { from { clip-path:inset(0 0 100% 0); transform:translateY(16px) } to { clip-path:inset(0); transform:translateY(0) } }
  @keyframes bs-workspace-in { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:translateY(0) } }
  @keyframes bs-image-settle { from { transform:scale(1.065) } to { transform:scale(1) } }
  @keyframes bs-frame-in { from { opacity:0; clip-path:inset(0 100% 100% 0) } to { opacity:1; clip-path:inset(0) } }
  @keyframes bs-caption-in { from { opacity:0; transform:translateY(18px) } to { opacity:1; transform:translateY(0) } }
  @keyframes bs-backdrop-in { from { opacity:0 } to { opacity:1 } }
}
@media (prefers-reduced-motion:reduce) {
  .motion-pending { opacity:1; transform:none }
  ::view-transition-old(root),::view-transition-new(root) { animation:none!important }
}
