/* Full-screen entrance sequence for the public homepage. */
.site-intro {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #f6edf2;
    background:
        radial-gradient(ellipse at 50% 52%, rgba(116, 8, 22, .28), transparent 24%),
        radial-gradient(ellipse at 50% 50%, #100206 0%, #060207 53%, #020104 100%);
    transition: opacity .65s ease, visibility .65s ease;
}
.site-intro--leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.site-intro::before,
.site-intro::after { content: ''; position: absolute; pointer-events: none; }
.site-intro::before { inset: 0; background: repeating-linear-gradient(90deg, transparent 0 74px, rgba(255,255,255,.018) 75px), repeating-linear-gradient(0deg, transparent 0 74px, rgba(255,255,255,.012) 75px); mask-image: radial-gradient(circle, #000, transparent 70%); }
.site-intro::after { width: 170vmax; height: 2px; background: linear-gradient(90deg, transparent, rgba(255,65,85,.2), transparent); top: 50%; left: 50%; transform: translate(-50%,-50%) rotate(-34deg); box-shadow: 0 0 70px 22px rgba(207,13,37,.14); animation: introSlash 2.5s ease-in-out both; }
.site-intro-grain { position: absolute; inset: 0; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 130 130' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.site-intro-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center, transparent 20%, rgba(0,0,0,.77) 100%); }
.site-intro-center { position:relative; z-index:2; width:min(420px, 84vw); text-align:center; transform: translateY(-8px); }
.site-intro-sigil { position:absolute; width:330px; aspect-ratio:1; left:50%; top:46%; transform:translate(-50%,-50%); pointer-events:none; }
.site-intro-ring { position:absolute; inset:0; border-radius:50%; border:1px solid rgba(222,34,55,.3); box-shadow:0 0 30px rgba(201,12,35,.12), inset 0 0 22px rgba(176,8,27,.09); }
.site-intro-ring-one { border-style:dashed; animation:introSpin 12s linear infinite; }
.site-intro-ring-two { inset:23px; border-color:rgba(245,229,211,.2); border-top-color:#ef3048; border-bottom-color:#ef3048; animation:introSpinReverse 7s linear infinite; }
.site-intro-ring-three { inset:49px; transform:rotate(45deg); border-radius:17%; border-color:rgba(224,30,50,.28); animation:introPulse 1.8s ease-in-out infinite; }
.site-intro-spark { position:absolute; width:5px; height:5px; border-radius:50%; background:#ffb9c1; box-shadow:0 0 12px 3px #f52d46; animation:introSpark 1.6s ease-in-out infinite; }.site-intro-spark-a { top:4%;left:49%; }.site-intro-spark-b { top:48%;right:2%; animation-delay:.5s; }.site-intro-spark-c { bottom:3%;left:49%; animation-delay:1s; }
.site-intro-logo-wrap { position:relative; z-index:1; display:inline-grid; place-items:center; min-height:250px; padding:25px; opacity:0; }
.site-intro--ready .site-intro-logo-wrap { animation:introLogoEnter 1.2s cubic-bezier(.16,1,.3,1) both; }
.site-intro-logo { position:relative; z-index:2; display:block; width:min(230px, 58vw); max-height:250px; object-fit:contain; filter:drop-shadow(0 0 5px rgba(255,245,245,.5)) drop-shadow(0 0 23px rgba(218,17,41,.5)) drop-shadow(0 18px 21px rgba(0,0,0,.85)); }
.site-intro-flare { position:absolute; z-index:0; width:80%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgba(255,112,128,.32) 0 2%, rgba(205,7,29,.18) 17%, transparent 66%); animation:introPulse 2s ease-in-out infinite; }
.site-intro-message { margin:15px 0 12px; color:#e8d6d8; font-family:Orbitron, Rajdhani, sans-serif; font-size:11px; font-weight:700; letter-spacing:.31em; text-transform:uppercase; opacity:0; }.site-intro-message span { color:#ff4257; }
.site-intro--ready .site-intro-message { animation:introText .65s ease .75s forwards; }
.site-intro-loader { width:190px; height:2px; margin:auto; overflow:hidden; background:rgba(255,255,255,.15); }.site-intro-loader span { display:block; width:100%; height:100%; transform:translateX(-102%); background:linear-gradient(90deg,#7f091a,#ff485e,#ffe4e7); box-shadow:0 0 10px #fa4054; }
.site-intro--ready .site-intro-loader span { animation:introLoad 3.25s cubic-bezier(.2,.7,.2,1) .25s forwards; }
@keyframes introLogoEnter { from { opacity:0; transform:scale(.58); filter:blur(13px); } 65% { opacity:1; transform:scale(1.06); filter:blur(0); } to { opacity:1; transform:scale(1); filter:blur(0); } }
@keyframes introLoad { to { transform:translateX(0); } } @keyframes introText { to { opacity:1; } } @keyframes introSpin { to { transform:rotate(360deg); } } @keyframes introSpinReverse { to { transform:rotate(-360deg); } } @keyframes introPulse { 50% { opacity:.48; transform:scale(1.06) rotate(45deg); } } @keyframes introSpark { 50% { transform:scale(2.4); opacity:.35; } } @keyframes introSlash { from { opacity:0; transform:translate(-50%,-50%) rotate(-34deg) scaleX(.1); } 35%,65% { opacity:1; } to { opacity:0; transform:translate(-50%,-50%) rotate(-34deg) scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .site-intro *, .site-intro::after { animation:none !important; }.site-intro-logo-wrap, .site-intro-message { opacity:1 !important; }.site-intro-loader span { transform:translateX(0); }.site-intro { transition-duration:.2s; } }
@media (max-width:520px) { .site-intro-sigil { width:270px; }.site-intro-logo-wrap { min-height:220px; }.site-intro-logo { width:min(200px,62vw); }.site-intro-message { font-size:9px; letter-spacing:.23em; } }