:root {
	--lgo-bg: #0a0a0a;
	--lgo-bg-secondary: #111111;
	--lgo-card: #161616;
	--lgo-border: #282828;
	--lgo-text: #f4f4f4;
	--lgo-text-muted: #a6a6a6;
	--lgo-accent: #f4f4f4;
	/* A4 portrait (ISO 216). */
	--lgo-poster-ratio: 210 / 297;
	/* Pale vertical title gradients — stronger stops so the fade reads clearly. */
	--lgo-title-grad-hero: linear-gradient(180deg, #ffffff 0%, #f3e9dc 38%, #c4b09a 100%);
	--lgo-title-grad-section: linear-gradient(180deg, #ffffff 0%, #e3eaf5 40%, #a8b8cf 100%);
	--lgo-title-grad-event: linear-gradient(180deg, #fff9f4 0%, #f0ddd2 42%, #c4a894 100%);
	--lgo-title-grad-card: linear-gradient(180deg, #ffffff 0%, #ebe6df 45%, #b8b0a6 100%);
	--lgo-title-grad-article: linear-gradient(180deg, #f7fbf9 0%, #dce8e3 42%, #a7bfb6 100%);
	--lgo-title-glow: drop-shadow(0 0 10px rgba(255, 255, 255, 0.4)) drop-shadow(0 0 28px rgba(255, 255, 255, 0.18));
	--lgo-title-glow-strong: drop-shadow(0 0 14px rgba(255, 255, 255, 0.5)) drop-shadow(0 0 40px rgba(255, 255, 255, 0.24)) drop-shadow(0 0 70px rgba(255, 255, 255, 0.1));
	--lgo-font-display: "Arial Narrow", "Helvetica Neue Condensed", Impact, Haettenschweiler, sans-serif;
	--lgo-font-body: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	--lgo-container: 1200px;
	--lgo-header-h: 64px;
	--lgo-radius: 2px;
	--lgo-focus: #ffffff;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	min-width: 320px;
	background: var(--lgo-bg);
	color: var(--lgo-text);
	font-family: var(--lgo-font-body);
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: var(--lgo-accent);
}

button,
input,
select,
textarea {
	font: inherit;
}

:focus-visible {
	outline: 2px solid var(--lgo-focus);
	outline-offset: 3px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.lgo-skip-link:focus {
	clip: auto;
	clip-path: none;
	height: auto;
	width: auto;
	left: 1rem;
	top: 1rem;
	z-index: 100000;
	background: var(--lgo-card);
	padding: 0.75rem 1rem;
}
