/* Omega3 — design tokens & base (warm peach / coral style) */

:root {
	--o3-ink: #1c2a36;
	--o3-ink-soft: #3a4a56;
	--o3-muted: #5c6b76;
	--o3-coral: #e07a5f;
	--o3-coral-deep: #c9654b;
	--o3-peach: #f4d5c8;
	--o3-peach-soft: #f8e8e0;
	--o3-cream: #fefaf7;
	--o3-sand: #f7efe9;
	--o3-amber: #d4a017;
	--o3-white: #ffffff;
	--o3-line: color-mix(in srgb, var(--o3-ink) 10%, transparent);

	--o3-font-display: "Playfair Display", Georgia, serif;
	--o3-font-body: "Outfit", system-ui, sans-serif;
	--o3-font-script: "Caveat", "Segoe Script", cursive;

	--o3-space-1: 0.5rem;
	--o3-space-2: 1rem;
	--o3-space-3: 1.5rem;
	--o3-space-4: 2.5rem;
	--o3-space-5: 4rem;
	--o3-space-6: 6.5rem;

	--o3-radius: 0.75rem;
	--o3-radius-lg: 1.25rem;
	--o3-max: 1140px;
	--o3-content: 40rem;
	--o3-header-h: 4.75rem;

	--o3-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--o3-font-body);
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--o3-ink);
	background: var(--o3-cream);
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--o3-coral-deep);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color 0.2s var(--o3-ease);
}

a:hover {
	color: var(--o3-ink);
}

h1,
h2,
h3,
h4 {
	font-family: var(--o3-font-display);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--o3-ink);
	margin: 0 0 var(--o3-space-2);
}

h1 {
	font-size: clamp(2.15rem, 5vw, 3.5rem);
}

h2 {
	font-size: clamp(1.7rem, 3.4vw, 2.55rem);
}

h3 {
	font-size: clamp(1.2rem, 2vw, 1.55rem);
}

p {
	margin: 0 0 var(--o3-space-2);
}

p:last-child {
	margin-bottom: 0;
}

ul {
	margin: 0 0 var(--o3-space-2);
	padding-left: 1.15rem;
}

.o3-skip {
	position: absolute;
	left: -9999px;
	top: auto;
}

.o3-skip:focus {
	left: var(--o3-space-2);
	top: var(--o3-space-2);
	z-index: 1000;
	padding: 0.75rem 1rem;
	background: var(--o3-ink);
	color: var(--o3-white);
}

.o3-shell {
	width: min(100% - 2rem, var(--o3-max));
	margin-inline: auto;
}

.o3-shell--narrow {
	width: min(100% - 2rem, var(--o3-content));
}

.o3-main {
	padding-top: var(--o3-header-h);
}

.o3-reveal {
	opacity: 0;
	transform: translateY(1.15rem);
	transition:
		opacity 0.7s var(--o3-ease),
		transform 0.7s var(--o3-ease);
}

.o3-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.o3-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
