/* A short brand reveal; all content remains visible when JavaScript is unavailable. */
.brand-entrance{display:none;position:fixed;inset:0;z-index:90;overflow:hidden;background:#050609;color:#fff;isolation:isolate}
html.is-entering .brand-entrance{display:block}
html.is-entering{overflow:hidden}
.entrance-halo{position:absolute;width:85vw;height:60vh;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#1745a521,transparent 65%);animation:entrance-halo 2.2s ease both}
.entrance-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px}
.entrance-symbol{position:relative;width:clamp(170px,24vw,320px);aspect-ratio:1080/389;background:linear-gradient(125deg,#5b6b8a,#dce8ff 38%,#8ca5d0 58%,#323f59);mask:url('../assets/brand/virtek-symbol-white.png') center/contain no-repeat;-webkit-mask:url('../assets/brand/virtek-symbol-white.png') center/contain no-repeat;animation:entrance-symbol 1.2s cubic-bezier(.2,.7,.2,1) both}
.entrance-symbol::after{content:'';position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 15%,#5678be 34%,#dce9ff 46%,#fff 49%,#719deb 53%,#354869 63%,transparent 80%);transform:translateX(-110%);animation:entrance-light 1.65s cubic-bezier(.25,.5,.25,1) .15s both}
.entrance-wordmark{width:130px;height:auto;margin-top:38px;animation:entrance-label .7s ease .35s both}
.entrance-center p{font-size:12px;letter-spacing:.2px;color:#959eae;margin-top:17px;animation:entrance-label .7s ease .5s both}
.entrance-footer{position:absolute;left:32px;right:32px;bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.3px;color:#8b94a6}
.entrance-footer button{padding:12px 0 12px 15px;display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:0;color:#d5dce8}
.entrance-footer button:hover{color:#fff}
.entrance-line{position:absolute;left:0;bottom:0;width:100%;height:2px;transform-origin:left;background:linear-gradient(90deg,#244583,#b3d0ff);animation:entrance-line 1.8s cubic-bezier(.2,.6,.3,1) both}
html.is-entering:not(.is-revealing) .opening-title>span,
html.is-entering:not(.is-revealing) .opening-note,
html.is-entering:not(.is-revealing) .site-head,
html.is-entering:not(.is-revealing) .chapter-nav,
html.is-entering:not(.is-revealing) .opening .scene-bottom{opacity:0}
html.is-revealing .brand-entrance{animation:entrance-curtain .85s cubic-bezier(.76,0,.24,1) both;pointer-events:none}
html.is-revealing .opening-art img{animation:entrance-art 1.8s cubic-bezier(.2,.7,.2,1) both}
html.is-revealing .opening-title>span{animation:entrance-title 1.1s cubic-bezier(.16,1,.3,1) .35s both}
html.is-revealing .opening-title>span+span{animation-delay:.5s}
html.is-revealing .opening-note{animation:entrance-copy 1s ease .6s both}
html.is-revealing .site-head,html.is-revealing .chapter-nav,html.is-revealing .opening .scene-bottom{animation:entrance-label .8s ease .65s both}
@keyframes entrance-symbol{from{opacity:0;filter:blur(12px);transform:scale(.86) translateY(15px)}to{opacity:1;filter:blur(0);transform:scale(1) translateY(0)}}
@keyframes entrance-light{to{transform:translateX(110%)}}
@keyframes entrance-label{from{opacity:0}to{opacity:1}}
@keyframes entrance-halo{from{opacity:0;scale:.7}to{opacity:1;scale:1.15}}
@keyframes entrance-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes entrance-curtain{to{clip-path:inset(0 0 100% 0)}}
@keyframes entrance-title{from{opacity:0;filter:blur(8px);translate:0 55px}to{opacity:1;filter:blur(0);translate:0 0}}
@keyframes entrance-art{from{scale:1.12}to{scale:1}}
@keyframes entrance-copy{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur(0)}}
@media(max-width:600px){.entrance-wordmark{width:110px;margin-top:30px}.entrance-center p{font-size:11px}.entrance-footer{left:22px;right:22px;bottom:20px}.entrance-footer>span{font-size:6px;letter-spacing:.8px}}
@media(prefers-reduced-motion:reduce){html.is-entering{overflow:visible}html.is-entering .brand-entrance{display:none}html.is-entering:not(.is-revealing) .opening-title>span,html.is-entering:not(.is-revealing) .opening-note,html.is-entering:not(.is-revealing) .site-head,html.is-entering:not(.is-revealing) .chapter-nav,html.is-entering:not(.is-revealing) .opening .scene-bottom{opacity:1}}

