html.intro-pending body{visibility:hidden}
html.intro-running{overflow:hidden}
.matrix-intro{position:fixed;inset:0;z-index:1000;isolation:isolate;visibility:visible;overflow:hidden;pointer-events:auto}
.matrix-curtain{position:absolute;inset:0;display:flex;z-index:0}
.matrix-curtain span{flex:1;background:#09090c;will-change:transform;transform-origin:bottom;transform:scaleY(1);margin-right:-1px}
.matrix-intro.is-revealing .matrix-curtain span{animation:matrix-unveil 850ms cubic-bezier(.76,0,.24,1) forwards;animation-delay:var(--delay)}
.matrix-intro canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;transition:opacity 950ms ease}
.matrix-intro.is-revealing canvas{opacity:0}
.matrix-intro-caption{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;z-index:2;color:#f5f5f7;font-family:'Courier New',monospace;pointer-events:none;text-shadow:0 0 25px #ff405555;transition:opacity .4s ease,transform .5s ease}
.matrix-intro-caption strong{font-size:clamp(28px,6vw,64px);font-weight:500;letter-spacing:.05em}
.matrix-intro-caption small{font-size:10px;letter-spacing:.3em;color:#bfc2ca}
.matrix-intro.is-revealing .matrix-intro-caption{animation:none;opacity:0;transform:translateY(-12px)}
.matrix-word{display:inline-block;min-width:9ch;text-align:center}
.matrix-cursor{color:#ff6373;animation:matrix-cursor 1.65s ease forwards}
.matrix-scan{position:absolute;left:0;right:0;top:-15%;height:12%;background:linear-gradient(transparent,rgba(255,70,90,.065));border-bottom:1px solid #ff6b7c3d;z-index:2;pointer-events:none;animation:matrix-scan 2.8s cubic-bezier(.4,0,.3,1) forwards}
.matrix-intro-caption{animation:matrix-caption .6s ease both}
@keyframes matrix-scan{to{top:105%}}
@keyframes matrix-caption{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}
@keyframes matrix-cursor{80%{color:#ff6373}100%{color:#e75059}}
.matrix-skip{position:absolute;right:28px;bottom:26px;z-index:3;padding:10px 18px;background:#101014d9;border:1px solid #777982;color:#f1f1f5;font:12px 'Courier New',monospace;cursor:pointer;border-radius:3px}
.matrix-skip:hover{background:#29292e}.matrix-skip:focus-visible{outline:2px solid #fff;outline-offset:4px}
@keyframes matrix-unveil{to{transform:scaleY(0)}}
@media(prefers-reduced-motion:reduce){html.intro-pending body{visibility:visible}.matrix-intro{display:none}}
