:root { --bg-start: #040814; --bg-end: #0b1330; --ink: #f6fbff; --muted: rgba(219, 231, 255, 0.72); --line: rgba(255, 255, 255, 0.12); --glass: rgba(8, 15, 36, 0.54); --glow-a: #5dd6ff; --glow-b: #79ffb1; --glow-c: #ffe27a; --glow-d: #ff8a5b; --shadow: 0 24px 80px rgba(0, 0, 0, 0.45); --footer-height: 112px; --pointer-x: 50vw; --pointer-y: 50vh; } * { box-sizing: border-box; } html { height: 100%; } body { min-height: 100vh; margin: 0; overflow: hidden; font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--ink); background: radial-gradient(circle at 20% 20%, rgba(93, 214, 255, 0.12), transparent 30%), radial-gradient(circle at 78% 16%, rgba(121, 255, 177, 0.08), transparent 22%), radial-gradient(circle at 50% 120%, rgba(255, 138, 91, 0.12), transparent 36%), linear-gradient(180deg, var(--bg-start) 0%, var(--bg-end) 58%, #030610 100%); } body::before { content: ''; position: fixed; inset: 0; background: radial-gradient(circle 180px at var(--pointer-x) var(--pointer-y), rgba(93, 214, 255, 0.12), transparent 72%), radial-gradient(circle 240px at calc(var(--pointer-x) + 8%) calc(var(--pointer-y) - 6%), rgba(121, 255, 177, 0.08), transparent 70%); pointer-events: none; mix-blend-mode: screen; opacity: 0.9; } .space-scene, .error-stage, .footer-wrap { position: relative; z-index: 1; } .space-scene { position: fixed; inset: 0; overflow: hidden; pointer-events: none; } .starfield, .nebula, .orbit, .planet, .comet, .dust-glow, .stellar-wave { position: absolute; } .starfield { inset: -10%; background-repeat: repeat; animation: drift linear infinite; opacity: 0.85; } .starfield-far { background-image: radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.65) 0 1px, transparent 1.4px), radial-gradient(circle at 44% 72%, rgba(162, 214, 255, 0.55) 0 1px, transparent 1.6px), radial-gradient(circle at 82% 28%, rgba(255, 255, 255, 0.45) 0 1px, transparent 1.5px), radial-gradient(circle at 72% 82%, rgba(121, 255, 177, 0.42) 0 1px, transparent 1.6px), radial-gradient(circle at 24% 86%, rgba(255, 226, 122, 0.35) 0 1px, transparent 1.5px); background-size: 340px 340px; animation-duration: 180s; opacity: 0.4; } .starfield-mid { background-image: radial-gradient(circle at 18% 24%, rgba(255, 255, 255, 0.82) 0 1.2px, transparent 1.9px), radial-gradient(circle at 54% 68%, rgba(93, 214, 255, 0.8) 0 1.1px, transparent 1.7px), radial-gradient(circle at 86% 42%, rgba(255, 255, 255, 0.72) 0 1.2px, transparent 1.8px), radial-gradient(circle at 66% 14%, rgba(121, 255, 177, 0.6) 0 1.1px, transparent 1.8px), radial-gradient(circle at 28% 76%, rgba(255, 226, 122, 0.5) 0 1.1px, transparent 1.7px); background-size: 240px 240px; animation-duration: 110s; opacity: 0.65; } .starfield-near { background-image: radial-gradient(circle at 22% 16%, rgba(255, 255, 255, 0.98) 0 1.8px, transparent 2.4px), radial-gradient(circle at 50% 58%, rgba(93, 214, 255, 0.95) 0 1.7px, transparent 2.4px), radial-gradient(circle at 84% 34%, rgba(255, 255, 255, 0.92) 0 1.9px, transparent 2.5px), radial-gradient(circle at 76% 78%, rgba(121, 255, 177, 0.72) 0 1.7px, transparent 2.3px), radial-gradient(circle at 14% 70%, rgba(255, 226, 122, 0.82) 0 1.7px, transparent 2.3px); background-size: 170px 170px; animation-duration: 70s; opacity: 0.8; } .nebula { width: 46vw; height: 46vw; filter: blur(22px); opacity: 0.48; border-radius: 50%; mix-blend-mode: screen; animation: pulseNebula 18s ease-in-out infinite; } .nebula-left { top: -8vw; left: -10vw; background: radial-gradient(circle, rgba(93, 214, 255, 0.24), rgba(93, 214, 255, 0.06) 42%, transparent 68%); } .nebula-right { right: -12vw; bottom: -16vw; background: radial-gradient(circle, rgba(255, 138, 91, 0.2), rgba(121, 255, 177, 0.06) 38%, transparent 70%); animation-delay: -9s; } .orbit { border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; box-shadow: inset 0 0 30px rgba(255, 255, 255, 0.02); } .orbit-one { width: min(80vw, 1200px); height: min(80vw, 1200px); top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(8deg); } .orbit-two { width: min(56vw, 860px); height: min(56vw, 860px); top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-12deg); } .planet { border-radius: 50%; box-shadow: var(--shadow); animation: floatPlanet 22s ease-in-out infinite; will-change: transform; } .planet::before, .planet::after { content: ''; position: absolute; inset: 0; border-radius: 50%; } .planet::before { background: radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.6), transparent 24%); mix-blend-mode: screen; } .planet::after { inset: auto; width: 140%; height: 18%; left: -20%; top: 42%; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.18); transform: rotate(-18deg); opacity: 0.7; } .planet-one { width: clamp(160px, 18vw, 260px); height: clamp(160px, 18vw, 260px); top: 12%; right: 10%; background: radial-gradient(circle at 28% 24%, rgba(255, 255, 255, 0.92), transparent 18%), radial-gradient(circle at 42% 40%, rgba(93, 214, 255, 0.95), rgba(44, 93, 255, 0.62) 58%, rgba(13, 19, 55, 0.9) 100%); } .planet-two { width: clamp(92px, 10vw, 150px); height: clamp(92px, 10vw, 150px); left: 8%; top: 18%; background: radial-gradient(circle at 34% 24%, rgba(255, 255, 255, 0.8), transparent 16%), radial-gradient(circle at 42% 42%, rgba(121, 255, 177, 0.96), rgba(29, 125, 101, 0.74) 58%, rgba(8, 24, 30, 0.94) 100%); animation-duration: 26s; animation-delay: -8s; } .planet-three { width: clamp(200px, 24vw, 360px); height: clamp(200px, 24vw, 360px); left: -4%; bottom: -8%; background: radial-gradient(circle at 36% 20%, rgba(255, 255, 255, 0.84), transparent 14%), radial-gradient(circle at 44% 38%, rgba(255, 226, 122, 0.95), rgba(255, 138, 91, 0.78) 52%, rgba(73, 22, 15, 0.95) 100%); animation-duration: 28s; } .planet-four { width: clamp(72px, 8vw, 122px); height: clamp(72px, 8vw, 122px); right: 18%; bottom: 20%; background: radial-gradient(circle at 38% 20%, rgba(255, 255, 255, 0.76), transparent 16%), radial-gradient(circle at 44% 42%, rgba(255, 170, 109, 0.95), rgba(169, 74, 224, 0.64) 56%, rgba(20, 12, 46, 0.95) 100%); animation-duration: 24s; animation-delay: -12s; } .comet { top: -18vh; left: -24vw; width: clamp(120px, 16vw, 220px); height: 2px; border-radius: 999px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.95) 40%, rgba(93, 214, 255, 0.25) 100%); box-shadow: 0 0 14px rgba(93, 214, 255, 0.35); opacity: 0; transform: rotate(-24deg); } .comet::before { content: ''; position: absolute; right: -6px; top: 50%; width: 12px; height: 12px; transform: translateY(-50%); border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, 1) 0%, rgba(93, 214, 255, 0.7) 48%, rgba(93, 214, 255, 0) 100%); } .comet-one { animation: cometFly 14s linear infinite; } .comet-two { animation: cometFly 18s linear infinite; animation-delay: 5s; } .comet-three { animation: cometFly 22s linear infinite; animation-delay: 11s; } .dust-glow { width: 22vw; height: 22vw; border-radius: 50%; filter: blur(48px); opacity: 0.18; animation: glowFloat 20s ease-in-out infinite; } .dust-glow-one { top: 20%; left: 18%; background: radial-gradient(circle, rgba(93, 214, 255, 0.8), transparent 65%); } .dust-glow-two { right: 22%; bottom: 14%; background: radial-gradient(circle, rgba(121, 255, 177, 0.75), transparent 65%); animation-delay: -10s; } .error-stage { min-height: calc(100vh - var(--footer-height)); display: grid; place-items: center; padding: 5vh 5vw calc(var(--footer-height) + 2vh); } .error-hero { text-align: center; max-width: 980px; } .error-kicker { margin: 0 0 1.25rem; letter-spacing: 0.44em; text-transform: uppercase; font-size: 0.8rem; font-weight: 700; color: rgba(255, 255, 255, 0.6); } .error-code { position: relative; margin: 0; font-size: clamp(9rem, 34vw, 28rem); line-height: 0.88; font-weight: 900; letter-spacing: -0.08em; color: #f8fdff; text-shadow: 0 0 22px rgba(93, 214, 255, 0.32), 0 0 80px rgba(93, 214, 255, 0.18), 0 26px 120px rgba(0, 0, 0, 0.62); animation: codeFloat 10s ease-in-out infinite; will-change: transform; } .error-code::before, .error-code::after { content: attr(data-text); position: absolute; inset: 0; pointer-events: none; opacity: 0.5; } .error-code::before { color: rgba(93, 214, 255, 0.38); transform: translate(-6px, 2px); } .error-code::after { color: rgba(255, 138, 91, 0.28); transform: translate(6px, -2px); } .error-subtitle { margin: 1rem auto 0; max-width: 560px; font-size: clamp(1rem, 1.8vw, 1.25rem); line-height: 1.7; color: var(--muted); } .footer-wrap { position: fixed; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; padding: 0 1rem 1.25rem; pointer-events: none; } .footer-nav { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; padding: 0.8rem; border: 1px solid var(--line); border-radius: 999px; background: linear-gradient(180deg, rgba(10, 18, 42, 0.88), rgba(6, 10, 24, 0.76)); backdrop-filter: blur(16px); box-shadow: var(--shadow); pointer-events: auto; flex-wrap: wrap; } .footer-link { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0.8rem 1.1rem; border-radius: 999px; border: 1px solid transparent; color: var(--ink); text-decoration: none; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.01em; transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease, color 0.3s ease; } .footer-link:hover, .footer-link:focus-visible { color: var(--ink); border-color: rgba(93, 214, 255, 0.45); background: rgba(93, 214, 255, 0.1); transform: translateY(-2px); outline: none; } .stellar-wave { width: 16px; height: 16px; margin-left: -8px; margin-top: -8px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 0 18px rgba(93, 214, 255, 0.24); animation: waveExpand 1.6s ease-out forwards; pointer-events: none; } @keyframes drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-140px, 180px, 0); } } @keyframes pulseNebula { 0%, 100% { transform: scale(1) translate3d(0, 0, 0); } 50% { transform: scale(1.08) translate3d(3vw, -2vw, 0); } } @keyframes floatPlanet { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -18px, 0); } } @keyframes cometFly { 0% { transform: translate3d(0, 0, 0) rotate(-24deg) scaleX(0.7); opacity: 0; } 8% { opacity: 1; } 62% { opacity: 0.95; } 100% { transform: translate3d(140vw, 85vh, 0) rotate(-24deg) scaleX(1.08); opacity: 0; } } @keyframes glowFloat { 0%, 100% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(24px, -18px, 0) scale(1.08); } } @keyframes codeFloat { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -10px, 0); } } @keyframes waveExpand { from { transform: scale(0.2); opacity: 0.86; } to { transform: scale(24); opacity: 0; } } @media (max-width: 991px) { :root { --footer-height: 132px; } .orbit-one { width: 110vw; height: 110vw; } .orbit-two { width: 82vw; height: 82vw; } .planet-one { top: 10%; right: 2%; } .planet-three { left: -14%; bottom: -6%; } } @media (max-width: 767px) { :root { --footer-height: 168px; } .error-stage { padding-top: 9vh; padding-left: 1.25rem; padding-right: 1.25rem; } .error-kicker { letter-spacing: 0.28em; font-size: 0.72rem; } .error-subtitle { max-width: 320px; font-size: 0.98rem; } .footer-nav { width: min(100%, 560px); border-radius: 28px; } .footer-link { flex: 1 1 calc(50% - 0.6rem); } .planet-two { left: 0; top: 12%; } .planet-four { right: 6%; bottom: 24%; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }