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

html {
	scroll-behavior: smooth;
	background: var(--bg);
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	transition: background-color .25s ease, color .25s ease;
}

body.menu-open { overflow: hidden; }

img { display:block; max-width:100%; height:auto; }
a { color: inherit; }
button,input,select,textarea { font: inherit; }
button { color: inherit; }
::selection { background: var(--gold); color:#111; }

.screen-reader-text {
	position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.skip-link:focus {
	position:fixed !important;top:12px;left:12px;z-index:9999;width:auto;height:auto;padding:10px 14px;background:var(--surface);color:var(--text);clip:auto;
}

.shell { width:min(calc(100% - (2 * var(--gutter))),var(--shell));margin-inline:auto; }
.shell--wide { width:min(calc(100% - (2 * var(--gutter))),var(--shell-wide)); }

.eyebrow { margin:0 0 18px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.2em;line-height:1.2;text-transform:uppercase; }

h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:.95; }
h1 { font-size:clamp(60px,7vw,116px); }
h2 { font-size:clamp(44px,5.3vw,78px); }
h3 { font-size:22px;font-weight:600;letter-spacing:-.025em;line-height:1.18; }

.section { padding-block:var(--section);border-bottom:1px solid var(--border);background:var(--bg); }
.section--surface { background:var(--surface); }

.admin-empty {
	padding:18px 20px;
	border:1px dashed var(--gold);
	color:var(--muted);
	background:color-mix(in srgb,var(--surface) 90%,var(--gold));
}

[data-reveal] { opacity:0;transform:translateY(18px);transition:opacity .75s var(--ease),transform .75s var(--ease); }
[data-reveal].is-visible { opacity:1;transform:translateY(0); }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior:auto; }
	[data-reveal] { opacity:1;transform:none; }
	* { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important; }
}
