@charset "utf-8";

:root {
	color-scheme: light dark;
	
	/* Modern Theme Adaptation using light-dark() */
	--color-bg: light-dark(#f4f4f7, #0d0d0e);
	--color-card-bg: light-dark(rgba(255, 255, 255, 0.7), rgba(30, 30, 34, 0.4));
	--color-fg: light-dark(#1f2937, #e5e7eb);
	--color-link: light-dark(#2563eb, #60a5fa);
	--color-border: light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
	--color-glow: light-dark(rgba(37, 99, 235, 0.1), rgba(96, 165, 250, 0.15));
}

html, body {
	font-size: 0.9375rem;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	color: var(--color-fg);
	background: radial-gradient(circle at top, var(--color-glow), transparent 60%), var(--color-bg);
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	line-height: 1.8;
	-webkit-text-size-adjust: 100%;
}

#splash {
	display: grid;
	place-items: center;
	text-align: center;
	padding: 1.5rem;
	width: min(90vw, 24rem);
	border: solid 1px var(--color-border);
	background-color: var(--color-card-bg);
	
	/* Premium Glassmorphism & Depth shadow */
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-radius: 1.25rem;
	box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;

	&:hover {
		transform: translateY(-2px);
		box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.2);
	}

	& .welcome-text {
		font-weight: 450;
		text-wrap: pretty; /* Modern text wrapping */
		margin: 0;
	}

	& .siteaddress {
		display: block;
		margin-top: 1.5rem;
		font-size: 0.875rem;
		
		& a {
			color: var(--color-link);
			text-decoration: none;
			font-weight: 500;
			position: relative;
			padding-bottom: 0.2rem;
			transition: color 0.2s ease;

			/* Premium interactive micro-animation for link underline */
			&::after {
				content: '';
				position: absolute;
				width: 100%;
				transform: scaleX(0);
				height: 2px;
				bottom: 0;
				left: 0;
				background-color: var(--color-link);
				transform-origin: bottom right;
				transition: transform 0.25s ease-out;
			}

			&:hover {
				color: var(--color-link);
				
				&::after {
					transform: scaleX(1);
					transform-origin: bottom left;
				}
			}
		}
	}
}

.key {
	width: 4.5rem;
	height: auto;
	margin: 0 auto 1.5rem auto;
	display: block;
	filter: drop-shadow(0 4px 12px var(--color-glow));
}

/* Accessibility: visually hidden but readable by screen readers */
.sr-only:where(:not(:focus-within, :active)) {
	position: absolute !important;
	clip-path: inset(50%) !important;
	overflow: hidden !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	white-space: nowrap !important;
}
