:root {
	--bg: #ffffff;
	--line: #e5e5e5;
	--bold: #1a1a1a;
	--text: #3a3a3a;
	--accent: #306080;
	--muted: #6b6b6b;
	--header-bg: #f5f6f8;
	--footer-bg: #00274c;
	--footer-text: #e6ecf2;
	--footer-accent: #ffcb05;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overscroll-behavior: none; }
body {
	background: var(--bg);
	font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.5;
	color: var(--text);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
a { color: var(--accent); text-decoration: none; }

header { background: var(--header-bg); border-bottom: 1px solid var(--line); }
.header-inner { max-width: 1100px; margin: 0 auto; padding: 24px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.site-title { margin: 0; font-size: 1.8rem; font-weight: 550; line-height: 1.2; }
.site-title a { color: var(--bold); }
.site-title a:hover { color: var(--accent); }
.site-tagline { margin: 4px 0 0; font-size: 1.0rem; color: var(--muted); }
nav ul { list-style: none; margin: 0; padding: 0; font-size: 1.1rem; font-weight: 500; display: flex; flex-wrap: wrap; gap: 12px; }
nav a { color: var(--text); padding: 6px 0; border-bottom: 2px solid transparent; }
nav a.active { color: var(--accent); border-bottom-width: 3px; border-bottom-color: var(--accent); } 
nav a:hover { color: var(--accent); border-bottom-color: var(--accent); }

main { width: 100%; max-width: 1100px; margin: 0 auto; padding: 48px 20px; flex: 1; }
main h2 { font-size: 1.5rem; font-weight: 550; margin: 0 0 12px; color: var(--bold); }
main h3 { font-size: 1.15rem; font-weight: 550; margin: 0 0 6px; color: var(--bold); }
main ul { font-size: 1.0em; }
main p { margin: 0 0 1.0em; }
main hr { border: none; height: 1px; background-color: var(--accent); margin: 24px 0; }

footer { background: var(--footer-bg); border-top: 1px solid var(--line); font-size: 0.9rem; color: var(--muted); }
.footer-inner { max-width: 1100px; margin: 0 auto; padding: 24px 20px; color: var(--footer-text); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.footer-inner p { margin: 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: 16px; }
.footer-links a { color: var(--footer-accent) }
.footer-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 0px 12px 12px; }
@media (max-width: 480px) {
  .footer-logos { justify-content: center; }
}
.footer-logos img { height: auto; padding: 0px 12px 12px; }
.footer-logo-um { width: clamp(0px, 25vw, 100px); }
.footer-logo-math { width: clamp(0px, 80vw, 350px); }