
:root {
	/* Authoritative Ochre Field Palette */
	--ground:#C8903A;
	--ground-deep:#A67224;
	--ground-dark:#835717;
	--ink:#14120D;
	--ink-soft:#14120D;
	--ink-muted:#14120D;
	--accent:#1B2A22;
	--accent-light:#2A4034;
	--accent-contrast:#E6EFEA;
	--plate-bg:#B98330;
	--plate-border:#14120D;
	--ledger-line:rgba(20, 18, 13, 0.24);
	--ledger-line-strong:rgba(20, 18, 13, 0.45);
	--frame-border:#14120D;
	--surface-alt:#DF9F43;
	--surface-paper:#D99C44;
	--field-bg:#E3A74C;
	--field-focus:#FFF;

	/* Status and Signal Colors */
	--color-success:#1E4620;
	--color-error:#8A1C14;
	--color-error-bg:#F5D3D0;
	--color-warning:#7D4E00;

	--sifu-5d6:"Epilogue", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--sifu-d6f:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--sifu-e48:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

	/* Fluid Clamp Type Scales */
	--text-xs:clamp(0.72rem, 0.68rem + 0.2vw, 0.8rem);
	--text-sm:clamp(0.84rem, 0.8rem + 0.25vw, 0.94rem);
	--text-base:clamp(0.98rem, 0.94rem + 0.3vw, 1.12rem);
	--text-md:clamp(1.15rem, 1.08rem + 0.5vw, 1.34rem);
	--text-lg:clamp(1.36rem, 1.25rem + 0.75vw, 1.68rem);
	--text-xl:clamp(1.68rem, 1.5rem + 1.1vw, 2.15rem);
	--text-2xl:clamp(2.1rem, 1.82rem + 1.65vw, 2.85rem);
	--text-3xl:clamp(2.65rem, 2.2rem + 2.4vw, 3.8rem);
	--text-hero:clamp(3.1rem, 2.5rem + 3.4vw, 5.2rem);

	/* Line Heights */
	--leading-none:1.05;
	--leading-tight:1.18;
	--leading-snug:1.32;

	--leading-body:1.62;
	--leading-loose:1.78;

	/* Letter Spacing */
	--tracking-tight:-0.035em;
	--tracking-snug:-0.018em;
	--tracking-normal:0em;
	--tracking-wide:0.04em;
	--tracking-caps:0.08em;

	--space-1:0.25rem;  
	--space-2:0.5rem;   /* 8px */
	--space-3:0.75rem;  
	--space-4:1rem;     /* 16px */
	--space-5:1.25rem;  /* 20px */
	--space-6:1.5rem;   /* 24px */
	--space-8:2rem;     /* 32px */
	--space-10:2.5rem;  
	--space-12:3rem;    
	--space-16:4rem;    /* 64px */
	--space-20:5rem;    /* 80px */
	--space-24:6rem;    /* 96px */

	/* Structural Dimensions */
	--site-max-width:1240px;
	--frame-width:4px;
	--top-strip-height:40px;
	--header-height:76px;
	--radius-xs:2px;
	--radius-sm:4px;
	--radius-md:6px;
	--radius-lg:8px;
	--radius-none:0px;

	/* Motion Tokens (Durations and Easing Curves) */
	--ease-spring:cubic-bezier(0.175, 0.885, 0.32, 1.275);
	--ease-out-quad:cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--ease-in-out-quad:cubic-bezier(0.455, 0.03, 0.515, 0.955);
	--ease-hard:cubic-bezier(0.19, 1, 0.22, 1);
	--duration-instant:120ms;
	--duration-fast:180ms;
	--duration-medium:260ms;
	--duration-slow:420ms;

	--shadow-press:inset 0 2px 4px rgba(20, 18, 13, 0.35);
	--shadow-flat:0 1px 0 var(--ink);

	--shadow-card:3px 3px 0 var(--ink);
	--shadow-lift:5px 5px 0 var(--ink);
	--shadow-overlay:0 16px 36px rgba(20, 18, 13, 0.45);
}

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

html {
	-webkit-text-size-adjust:100%;
	-moz-tab-size:4;
	tab-size:4;
	scroll-behavior:smooth;
	background-color:var(--frame-border);
	color:var(--ink);
	font-family:var(--sifu-d6f);
	font-size:16px;
	line-height:var(--leading-body);
}

body {
	background-color:var(--ground);
	color:var(--ink);
	font-family:var(--sifu-d6f);
	font-weight:500;
	min-height:100vh;
	display:flex;
	flex-direction:column;
	overflow-x:hidden;
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
}

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

button {
	background:none;
	border:none;
	cursor:pointer;
	text-align:inherit;
}

/* Media Elements */
img,
picture,
video,
canvas,
svg {
	display:block;
	max-width:100%;
}

img {
	height:auto;
	font-style:italic;
	background-repeat:no-repeat;
	background-size:cover;
	shape-margin:0.75rem;
}

/* Links & Anchors */
a {
	color:inherit;
	text-decoration-skip-ink:auto;
}

/* Lists */
ul,
ol {
	list-style:none;
}

table {
	border-collapse:collapse;
	border-spacing:0;
	width:100%;
}

fieldset {
	border:none;
	margin:0;
	padding:0;
}

h1, h2, h3, h4, h5, h6 {
	font-family:var(--sifu-5d6);
	font-weight:800;
	color:var(--ink);
	line-height:var(--leading-tight);
	letter-spacing:var(--tracking-tight);
	text-wrap:balance;
	overflow-wrap:break-word;
}

h1 {
	font-size:var(--text-3xl);
	font-weight:900;
	margin-bottom:var(--space-4);
	letter-spacing:-0.04em;
}

h2 {
	font-size:var(--text-2xl);
	font-weight:800;
	margin-bottom:var(--space-4);
}

h3 {
	font-size:var(--text-xl);
	font-weight:700;
	margin-bottom:var(--space-3);
}

h4 {
	font-size:var(--text-lg);
	font-weight:700;
	margin-bottom:var(--space-2);
}

p {
	font-size:var(--text-base);
	line-height:var(--leading-body);

	margin-bottom:var(--space-4);
	max-width:68ch;
	text-wrap:pretty;
}

p.lead {
	font-size:var(--text-md);
	line-height:var(--leading-snug);
	font-weight:600;
	color:var(--ink);
	letter-spacing:var(--tracking-snug);
}

small {
	font-size:var(--text-xs);
	line-height:var(--leading-snug);
}

strong, b {
	font-weight:700;
	color:var(--ink);
}

em, i {
	font-style:italic;
}

code, kbd, samp, pre {
	font-family:var(--sifu-e48);
	font-size:0.9em;
}

.mono-figure {
	font-family:var(--sifu-e48);
	font-variant-numeric:tabular-nums lining-nums;
	letter-spacing:-0.02em;
}

.ledger-rule {
	border:0;
	height:1px;
	background-color:var(--ledger-line);
	margin:var(--space-6) 0;
	width:100%;
}

.ledger-rule-strong {
	border:0;
	height:2px;
	background-color:var(--ledger-line-strong);
	margin:var(--space-8) 0;
	width:100%;
}

.ledger-box {
	background-color:var(--plate-bg);
	border:1px solid var(--frame-border);
	background-image:repeating-linear-gradient(
		0deg,
		transparent,
		transparent 23px,
		var(--ledger-line) 23px,
		var(--ledger-line) 24px
	);
	padding:var(--space-6);
}

.ledger-strip {
	border-top:1px solid var(--ledger-line);
	border-bottom:1px solid var(--ledger-line);
	padding:var(--space-3) 0;
}

.site-frame-outer {
	width:100%;
	min-height:100vh;
	background-color:var(--frame-border);
	padding:0;
	display:flex;
	flex-direction:column;
}

@media (min-width: 768px) {
	.site-frame-outer {
		padding:var(--frame-width);
	}
}

.site-frame-inner {
	width:100%;
	max-width:var(--site-max-width);
	margin:0 auto;
	background-color:var(--ground);
	display:flex;
	flex-direction:column;
	flex-grow:1;
	border-left:0;
	border-right:0;
}

@media (min-width: 1240px) {
	.site-frame-inner {
		border-left:2px solid var(--frame-border);
		border-right:2px solid var(--frame-border);
	}
}

.page-container {
	width:100%;
	padding-left:var(--space-4);
	padding-right:var(--space-4);
}

@media (max-width: 480px) {
	.page-container {
		padding-left:var(--space-4);
		padding-right:var(--space-4);
	}
}

@media (min-width: 640px) {
	.page-container {
		padding-left:var(--space-6);
		padding-right:var(--space-6);
	}
}

@media (min-width: 1024px) {
	.page-container {
		padding-left:var(--space-8);
		padding-right:var(--space-8);
	}
}

/* Accessible Visually Hidden Utility */
.visually-hidden {
	position:absolute !important;
	width:1px !important;
	height:1px !important;
	padding:0 !important;
	margin:-1px !important;
	overflow:hidden !important;
	clip:rect(0, 0, 0, 0) !important;
	white-space:nowrap !important;
	border:0 !important;
}

/* Skip Navigation Link */
.skip-link {
	position:absolute;
	top:-100px;
	left:var(--space-4);
	background-color:var(--accent);
	color:var(--accent-contrast);
	padding:var(--space-3) var(--space-5);
	font-family:var(--sifu-e48);
	font-size:var(--text-sm);
	font-weight:600;
	text-decoration:none;
	z-index:9999;
	border:2px solid var(--ground);
	transition:top var(--duration-fast) var(--ease-out-quad);
}

.skip-link:focus-visible {
	top:var(--space-3);
	outline:3px solid var(--ink);
	outline-offset:2px;
}

.icon {
	display:inline-block;
	width:1.25em;
	height:1.25em;
	fill:currentColor;
	vertical-align:-0.2em;
	flex-shrink:0;
}

.icon-sm {
	width:1em;
	height:1em;
	vertical-align:-0.15em;
}

.icon-lg {
	width:1.75em;
	height:1.75em;
	vertical-align:-0.3em;
}

.table-responsive {
	width:100%;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	margin-bottom:var(--space-6);
	border:1px solid var(--frame-border);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration:0.01ms !important;
		animation-iteration-count:1 !important;
		transition-duration:0.01ms !important;
		scroll-behavior:auto !important;
	}

	.marquee-track {
		animation:none !important;
	}
}
