/* H-door v22 — premium single-emblem transition. The CRISP reactor is the
   star; glow sits behind, restrained; one quick subtle unlock flash.
   Single sharp raster scaled/faded on the GPU: crisp on every machine. */
.hdoor{position:fixed;inset:0;z-index:1000;background:rgba(10,22,64,.42);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s}
.hdoor.on{opacity:1;visibility:visible}
.rz{position:relative;width:min(38vh,360px);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;will-change:transform,opacity}
.rz-glow{position:absolute;inset:-30%;border-radius:50%;pointer-events:none;opacity:0;z-index:1;
  background:radial-gradient(circle,rgba(111,227,255,.5) 0%,rgba(111,227,255,.14) 42%,rgba(111,227,255,0) 66%)}
.rz-emblem{position:relative;z-index:2;width:100%;height:100%;
  filter:drop-shadow(0 0 16px rgba(111,227,255,.4))}
.rz-flash{position:absolute;inset:-4%;border-radius:50%;pointer-events:none;opacity:0;z-index:3;
  background:radial-gradient(circle,rgba(224,250,255,.85) 0%,rgba(140,232,255,.32) 40%,rgba(140,232,255,0) 62%)}

.hdoor.on .rz-emblem{animation:rzEmblem 1.3s cubic-bezier(.5,0,.3,1) both}
.hdoor.on .rz-glow{animation:rzGlow 1.3s ease-in-out both}
.hdoor.on .rz-flash{animation:rzFlash 1.3s ease-out both}

@keyframes rzEmblem{
  0%{opacity:0;transform:scale(.92)}
  16%{opacity:1;transform:scale(1)}
  46%{transform:scale(.99)}
  56%{transform:scale(1)}
  64%{transform:scale(1.025)}
  100%{opacity:0;transform:scale(1.7)}
}
@keyframes rzGlow{0%{opacity:0}46%{opacity:.32}62%{opacity:.55}74%{opacity:.3}100%{opacity:0}}
@keyframes rzFlash{0%{opacity:0}58%{opacity:0}64%{opacity:.6}76%{opacity:0}100%{opacity:0}}

/* entry: page revealed as the veil melts (pre-paint set by the head script) */
html.hdoor-arrive::before{content:'';position:fixed;inset:0;z-index:999;
  background:rgba(10,22,64,.48);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hdoor-in{position:fixed;inset:0;z-index:1000;pointer-events:none;
  background:rgba(10,22,64,.48);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center}
.hdoor-in .rz{width:min(38vh,360px)}
.hdoor-in .rz-emblem{position:relative;width:100%;height:100%;
  filter:drop-shadow(0 0 16px rgba(111,227,255,.4))}
.hdoor-in.go{animation:rzVeilMelt .55s ease-out .04s forwards}
.hdoor-in.go .rz-emblem{animation:rzEmblemIn .5s cubic-bezier(.4,0,.6,1) forwards}
@keyframes rzVeilMelt{to{opacity:0;visibility:hidden}}
@keyframes rzEmblemIn{from{opacity:1;transform:scale(1.7)}to{opacity:0;transform:scale(1)}}

@media(prefers-reduced-motion:reduce){.hdoor,.hdoor-in{display:none!important}html.hdoor-arrive::before{display:none!important}}
