/* public pages */

/* == reset == */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body {
	display:flex; align-items:center; justify-content:center;
	width:100%; min-height:100vh;
	font-family: 'Segoe UI', Tahoma, sans-serif;
	font-size: 12px;
	color: var(--text-primary);
	background-color: var(--bg-0);
	background-image:
		linear-gradient(var(--grid-color) 1px, transparent 1px),
		linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
	background-size: 20px 20px;
	-webkit-font-smoothing: antialiased;
}
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--bg-5); border-radius:4px; }


/* == animations == */
@keyframes fadeUp {
	from { opacity:0; transform:translateY(12px); }
	to { opacity:1; transform:translateY(0); }
}
@keyframes pulse {
	0%, 100% { box-shadow:0 0 6px var(--ok); }
	50% { box-shadow:0 0 10px var(--ok), 0 0 16px rgba(52,211,153,0.3); }
}

@media (prefers-reduced-motion: reduce) {
	* { animation-duration:0s !important; transition-duration:0s !important; }
}
