.splash { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-4); background: var(--bg); cursor: pointer; } .leaving { animation: leave 0.2s ease-out forwards; pointer-events: none; } .word { width: min(62vw, 300px); fill: none; stroke: var(--text); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; } .stroke { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 0.3s ease-out forwards; animation-delay: calc(var(--i) * 0.13s); } .hint { margin: 0; color: var(--text-dim); font-size: 13px; opacity: 0; animation: fade-in 0.3s ease-out 0.6s forwards; } @keyframes draw { to { stroke-dashoffset: 0; } } @keyframes fade-in { to { opacity: 1; } } @keyframes leave { to { opacity: 0; } } @media (prefers-reduced-motion: reduce) { .stroke { stroke-dashoffset: 0; animation: none; } .hint { opacity: 1; animation: none; } .leaving { animation: none; opacity: 0; } }