/*
 * Future Forum — base tokens & globals (loaded site-wide).
 */

/* Brand fonts (so non-home PHP pages render them too; the homepage app bundle
   declares its own copy). Weight ranges mirror the original next/font setup. */
@font-face {
	font-family: "PP Mori";
	src: url(../fonts/PPMori-Semibold.woff2) format("woff2");
	font-weight: 300 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "PP Mori";
	src: url(../fonts/PPMori-Black.woff2) format("woff2");
	font-weight: 700 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "PP Fraktion Mono";
	src: url(../fonts/PPFraktionMono-Bold.woff2) format("woff2");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
}

:root {
	--background: #dedbc6;
	--foreground: #122022;
	--scrollbar-thumb: #e1ff00;
	--scrollbar-track: #dedbc6;
	--layout-inline-padding: 17px;

	--font-pp-mori: "PP Mori", system-ui, sans-serif;
	--font-pp-fraktion-mono: "PP Fraktion Mono", ui-monospace, monospace;
	--font-display: var(--font-pp-mori), var(--font-pp-fraktion-mono);
	--font-body: var(--font-pp-mori), var(--font-pp-fraktion-mono);
	--font-code: var(--font-pp-fraktion-mono), var(--font-pp-mori);
}

@media (min-width: 64rem) {
	:root {
		--layout-inline-padding: 30px;
	}
}

* {
	box-sizing: border-box;
}

/* Kill the core default block gap (the 24px margin added above each top-level
   and flow-layout block). Sections manage their own spacing. */
:root .wp-site-blocks > *,
:root :where(.is-layout-flow) > *,
:root :where(.is-layout-constrained) > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

html {
	min-height: 100%;
	background-color: var(--foreground);
}

body {
	margin: 0;
	min-height: 100vh;
	background-color: var(--foreground);
	color: var(--foreground);
	font-family: var(--font-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html,
body {
	scrollbar-color: var(--scrollbar-thumb) transparent;
	scrollbar-width: thin;
	overflow-x: clip;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
	width: 12px;
	height: 12px;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
	background: var(--scrollbar-thumb);
	border-radius: 999px;
}

a {
	color: inherit;
}

.layout-inline-padding {
	padding-left: var(--layout-inline-padding);
	padding-right: var(--layout-inline-padding);
}

.no-text-selection {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.menu-nav-label {
	font-family: var(--font-pp-fraktion-mono);
	font-weight: 500;
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0;
	transition-property: color;
	transition-duration: 0ms;
	transition-timing-function: ease;
}

.menu-nav-label.is-highlighted {
	transition-duration: 200ms;
}

/* Lenis smooth scroll */
html.lenis,
html.lenis body {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}

.lenis.lenis-stopped {
	overflow: hidden;
}

.lenis.lenis-scrolling iframe {
	pointer-events: none;
}

html.mobile-menu-open,
body.mobile-menu-open {
	overflow: hidden;
	overscroll-behavior: none;
}
