@font-face {
	font-family: "SF Pro Display";
	src: url("fonts/SF-Pro-Display-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "SF Pro Display";
	src: url("fonts/SF-Pro-Display-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "SF Pro Display";
	src: url("fonts/SF-Pro-Display-Semibold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "SF Pro Text";
	src: url("fonts/SF-Pro-Text-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

:root {
	--bs-font-sans-serif: "SF Pro Text", -apple-system,
		BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "SF Pro Display", var(--bs-font-sans-serif);
}

/* ── Mobile: no horizontal scroll on the page ── */
html {
	overflow-x: hidden;
	max-width: 100%;
}

body {
	max-width: 100%;
}

@media (prefers-color-scheme: dark) {
	:root {
		color-scheme: dark;
	}

	html,
	body,
	#quarto-content,
	#quarto-document-content,
	main#quarto-document-content,
	main.content,
	.content,
	.quarto-container,
	.page-layout-article,
	.page-columns,
	.page-rows-contents,
	.column-page,
	.column-body,
	#title-block-header,
	.quarto-title,
	.quarto-title-meta,
	.quarto-title-banner,
	.quarto-page-breadcrumbs,
	.quarto-title-breadcrumbs,
	.nav-footer,
	footer {
		background: #000 !important;
		color: #fff !important;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	.title,
	.subtitle {
		color: #fff !important;
	}

	p,
	li,
	dt,
	dd,
	td,
	th,
	label,
	small,
	figcaption,
	.quarto-title-meta-heading,
	.quarto-title-meta-contents,
	.breadcrumb,
	.breadcrumb-item,
	.quarto-page-breadcrumbs,
	.quarto-title-breadcrumbs,
	#title-block-header .quarto-page-breadcrumbs,
	#title-block-header .quarto-title-breadcrumbs {
		color: rgba(255, 255, 255, 0.88) !important;
	}

	.breadcrumb-item+.breadcrumb-item::before,
	.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item::before,
	.quarto-title-breadcrumbs .breadcrumb-item+.breadcrumb-item::before {
		color: rgba(255, 255, 255, 0.88) !important;
	}

	a {
		color: #6ea8ff;
	}

	hr,
	table,
	th,
	td,
	.table,
	.table> :not(caption)>*>* {
		border-color: rgba(255, 255, 255, 0.14) !important;
	}

	table,
	.table,
	pre,
	code,
	blockquote,
	.callout,
	.callout-body,
	.callout-header {
		background: #000 !important;
		color: #fff !important;
	}

	mjx-container,
	mjx-container *,
	.MathJax,
	.MathJax * {
		color: #fff !important;
	}

	#inn-site-nav,
	#inn-mobile-topbar,
	#inn-mobile-search-panel,
	#inn-site-nav .inn-site-nav__search-shell,
	#inn-mobile-search-panel .inn-site-nav__search-shell,
	#inn-site-nav .inn-site-nav__results,
	#inn-mobile-search-panel .inn-site-nav__results,
	#inn-site-nav .inn-site-nav__menu,
	#inn-site-nav .inn-site-nav__header,
	#inn-site-nav .inn-site-nav__search {
		background: #000 !important;
	}

	#inn-site-nav,
	#inn-mobile-topbar,
	#inn-mobile-search-panel,
	#inn-site-nav .sidebar-link,
	#inn-site-nav .sidebar-item-text,
	#inn-site-nav .menu-text,
	#inn-mobile-search-panel .sidebar-link,
	#inn-mobile-search-panel .sidebar-item-text,
	#inn-mobile-search-panel .menu-text,
	#inn-site-nav .inn-site-nav__search-input,
	#inn-site-nav .inn-site-nav__search-input::placeholder,
	#inn-mobile-search-panel .inn-site-nav__search-input,
	#inn-mobile-search-panel .inn-site-nav__search-input::placeholder,
	#inn-site-nav .inn-site-nav__results-header,
	#inn-site-nav .inn-site-nav__result-title,
	#inn-site-nav .inn-site-nav__result-crumbs,
	#inn-site-nav .inn-site-nav__result-text,
	#inn-mobile-search-panel .inn-site-nav__results-header,
	#inn-mobile-search-panel .inn-site-nav__result-title,
	#inn-mobile-search-panel .inn-site-nav__result-crumbs,
	#inn-mobile-search-panel .inn-site-nav__result-text {
		color: #fff !important;
	}

	#inn-site-nav .sidebar-link:hover,
	#inn-site-nav .sidebar-link:hover .menu-text,
	#inn-site-nav .sidebar-item-text:hover,
	#inn-site-nav .sidebar-item-text:hover .menu-text,
	#inn-site-nav .sidebar-item-container:hover>.sidebar-item-toggle,
	#inn-site-nav .sidebar-item-container:hover>.sidebar-item-toggle .inn-nav-chevron,
	#inn-site-nav .sidebar-item-container:focus-within>.sidebar-item-toggle,
	#inn-site-nav .sidebar-item-container:focus-within>.sidebar-item-toggle .inn-nav-chevron {
		color: #6ea8ff !important;
	}

	#inn-site-nav .inn-site-nav__tools .quarto-navigation-tool,
	#inn-site-nav .inn-site-nav__tools .quarto-navigation-tool i,
	#inn-site-nav .inn-site-nav__search-icon,
	#inn-site-nav .inn-site-nav__search-icon svg,
	#inn-site-nav .inn-site-nav__search-icon svg *,
	#inn-site-nav .inn-site-nav__search-clear,
	#inn-site-nav .inn-site-nav__search-clear svg,
	#inn-site-nav .inn-site-nav__search-clear svg *,
	#inn-site-nav .sidebar-item-toggle,
	#inn-site-nav .sidebar-item-toggle svg,
	#inn-site-nav .sidebar-item-toggle svg *,
	#inn-site-nav .inn-nav-chevron,
	#inn-site-nav .inn-nav-chevron svg,
	#inn-site-nav .inn-nav-chevron svg *,
	#inn-mobile-topbar .inn-mobile-topbar__button,
	#inn-mobile-topbar .inn-mobile-topbar__button svg,
	#inn-mobile-topbar .inn-mobile-topbar__button svg * {
		color: #fff !important;
		stroke: #fff !important;
	}

	#inn-mobile-topbar .inn-mobile-topbar__button.is-active,
	#inn-mobile-topbar .inn-mobile-topbar__button.is-active svg,
	#inn-mobile-topbar .inn-mobile-topbar__button.is-active svg * {
		color: var(--inn-accent) !important;
		stroke: var(--inn-accent) !important;
	}

	#inn-site-nav .inn-site-nav__search-shell,
	#inn-mobile-search-panel .inn-site-nav__search-shell,
	#inn-site-nav .inn-site-nav__results,
	#inn-mobile-search-panel .inn-site-nav__results {
		border-color: rgba(255, 255, 255, 0.14) !important;
		background: #000 !important;
	}

	mark.search-match,
	#inn-site-nav .inn-site-nav__result mark,
	#inn-site-nav .inn-site-nav__results mark,
	#inn-mobile-search-panel .inn-site-nav__result mark,
	#inn-mobile-search-panel .inn-site-nav__results mark {
		background: rgba(255, 255, 255, 0.96) !important;
		color: #000 !important;
	}

	.inn-pill,
	.inn-pill__label,
	.inn-pill__title,
	.inn-pill__meta {
		color: #fff !important;
	}

	.inn-pill {
		background: #000 !important;
		border-color: rgba(255, 255, 255, 0.16) !important;
	}

	.inn-pill:hover {
		background: rgba(255, 255, 255, 0.04) !important;
		border-color: rgba(255, 255, 255, 0.24) !important;
	}

	.inn-pill__icon {
		background: rgba(255, 255, 255, 0.06) !important;
		border-color: rgba(255, 255, 255, 0.14) !important;
		color: #6ea8ff !important;
	}

	.inn-pill--read.is-active,
	.inn-pill--solved.is-active {
		background: rgba(255, 255, 255, 0.08) !important;
		border-color: rgba(255, 255, 255, 0.22) !important;
		color: #fff !important;
	}

	.inn-pill--read.is-active .inn-pill__icon {
		color: #6ea8ff !important;
		background: rgba(110, 168, 255, 0.14) !important;
		border-color: rgba(110, 168, 255, 0.22) !important;
	}

	.inn-pill--solved.is-active .inn-pill__icon {
		color: #7ee787 !important;
		background: rgba(126, 231, 135, 0.12) !important;
		border-color: rgba(126, 231, 135, 0.22) !important;
	}

	.inn-read-title,
	#inn-site-nav .sidebar-link.inn-read-title,
	#inn-site-nav .sidebar-link.inn-read-title .menu-text,
	.problem-heading.is-solved .problem-title-text {
		color: rgba(255, 255, 255, 0.48) !important;
		text-decoration-color: rgba(180, 180, 180, 0.64) !important;
		opacity: 0.72 !important;
	}
}

/* Math display blocks — scroll only inside the block */
.math.display,
mjx-container[display="true"],
.MathJax[display="true"] {
	display: block;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

/* Inline math — allow wrapping context to scroll */
.math.inline,
mjx-container:not([display="true"]) {
	max-width: 100%;
}

/* Any other potentially wide element (tables, code blocks, pre) */
table {
	display: block;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

pre,
code {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

pre,
pre.sourceCode,
div.sourceCode pre,
pre code,
pre.sourceCode code {
	padding-bottom: 4px !important;
}

/* Diagrams and images — force a white canvas so text remains readable in dark mode */
figure img,
figure svg,
.figure img,
.figure svg,
.quarto-figure img,
.quarto-figure svg,
.cell-output-display img,
.cell-output-display svg,
.mermaid svg {
	background: #fff;
	border-radius: 12px;
	padding: 12px;
	box-sizing: border-box;
}

@media (prefers-color-scheme: dark) {

	.mermaid,
	.mermaid svg {
		--mermaid-bg-color: #ffffff !important;
		--mermaid-edge-color: #6c757d !important;
		--mermaid-node-fg-color: #1f2d3d !important;
		--mermaid-fg-color: #1f2d3d !important;
		--mermaid-fg-color--lighter: #425466 !important;
		--mermaid-fg-color--lightest: #5f7080 !important;
		--mermaid-label-bg-color: #ffffff !important;
		--mermaid-label-fg-color: #1f2d3d !important;
		--mermaid-node-bg-color: rgba(13, 110, 253, 0.14) !important;
	}

	.mermaid svg text,
	.mermaid svg tspan,
	.mermaid svg .label,
	.mermaid svg .nodeLabel,
	.mermaid svg .edgeLabel,
	.mermaid svg .cluster-label text {
		fill: #1f2d3d !important;
		color: #1f2d3d !important;
	}

	.mermaid svg foreignObject,
	.mermaid svg foreignObject *,
	.mermaid .label,
	.mermaid .label *,
	.mermaid .nodeLabel,
	.mermaid .nodeLabel *,
	.mermaid .edgeLabel,
	.mermaid .edgeLabel * {
		color: #1f2d3d !important;
		fill: #1f2d3d !important;
	}
}