.patient-entry{position:fixed;inset:0;z-index:20000;background:radial-gradient(ellipse at 50% 40%,#174856,#03121e 75%);color:#e1f4ef;isolation:isolate;overflow:hidden}
.patient-entry[hidden]{display:none}
.patient-entry-scene,.patient-entry-scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.patient-entry-copy{position:absolute;left:20px;right:20px;bottom:14%;text-align:center;pointer-events:none;text-shadow:0 2px 16px #03121e}
.patient-entry-copy span{font:500 11px system-ui;letter-spacing:.3em;color:#9bd3c7}
.patient-entry-copy p{font:500 clamp(19px,3vw,28px) system-ui;letter-spacing:.12em;margin:12px 0}
.patient-entry-skip{position:absolute;right:24px;top:max(24px,env(safe-area-inset-top));padding:12px 18px;border:1px solid #729c9b;border-radius:24px;background:#09232dd9;color:#d6eae5;cursor:pointer;z-index:2}
.patient-entry-skip:focus-visible{outline:3px solid #b3e6d7;outline-offset:4px}
.patient-entry-cover{position:absolute;inset:0;background:#061620;pointer-events:none;opacity:0;z-index:3}
.patient-entry.is-entering{animation:patient-reveal 2650ms linear both}
.is-entering .patient-entry-copy{animation:patient-caption 2000ms ease both}
.is-entering .patient-entry-cover{animation:patient-cover 2650ms linear both}
@keyframes patient-reveal{0%{opacity:0}10%,82%{opacity:1}100%{opacity:0}}
@keyframes patient-caption{0%{opacity:0;transform:translateY(8px)}20%,65%{opacity:1;transform:none}100%{opacity:0}}
@keyframes patient-cover{0%,64%{opacity:0}76%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.patient-entry{display:none!important}}
