/* Headline font. Declared here rather than in theme.json so that devices with the real
   Helvetica Neue (the logo typeface) use it, and only other devices download the free twin. */
@font-face {
	font-family: "TeX Gyre Heros";
	src: url("../fonts/tex-gyre-heros-bold-latin.woff") format("woff");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   OZARI — design system
   Dark, precise, luminous. Lime = live energy. Cyan = data and AI.
   Sections:
   01 Tokens · 02 Base · 03 Layout · 04 Header · 05 Footer · 06 Buttons
   07 Type helpers · 08 Cards & bento · 09 Status pills · 10 Stats
   11 Lists & steps · 12 Tables · 13 FAQ · 14 Media frames · 15 Marquee
   16 Tabs · 17 Heroes · 18 Visuals · 19 Blog & prose · 20 Forms
   21 Paper sections · 22 Motion · 23 Utilities
   ========================================================================== */

/* 01 — Tokens ------------------------------------------------------------ */
:root {
	--oz-ink: var(--wp--preset--color--ink, #070a09);
	--oz-ink-2: var(--wp--preset--color--ink-2, #0c110f);
	--oz-ink-3: var(--wp--preset--color--ink-3, #121915);
	--oz-ink-4: var(--wp--preset--color--ink-4, #1a231e);
	--oz-text: var(--wp--preset--color--text, #eef3ef);
	--oz-text-2: var(--wp--preset--color--text-2, #a9b5ae);
	--oz-text-3: var(--wp--preset--color--text-3, #74827a);
	--oz-lime: var(--wp--preset--color--lime, #8cc63f);
	--oz-lime-bright: var(--wp--preset--color--lime-bright, #a9e063);
	--oz-lime-deep: var(--wp--preset--color--lime-deep, #3f6516);
	--oz-cyan: var(--wp--preset--color--cyan, #45d0e2);
	--oz-amber: var(--wp--preset--color--amber, #f3b746);
	--oz-red: var(--wp--preset--color--red, #ff6363);
	--oz-paper: var(--wp--preset--color--paper, #f2f4ef);
	--oz-paper-2: var(--wp--preset--color--paper-2, #e4e9e1);

	--oz-line: rgba(255, 255, 255, 0.08);
	--oz-line-2: rgba(255, 255, 255, 0.14);
	--oz-glass: rgba(18, 25, 21, 0.55);
	--oz-glass-strong: rgba(12, 17, 15, 0.82);
	--oz-lime-a10: rgba(140, 198, 63, 0.1);
	--oz-lime-a20: rgba(140, 198, 63, 0.2);
	--oz-lime-a40: rgba(140, 198, 63, 0.4);
	--oz-cyan-a15: rgba(69, 208, 226, 0.15);

	--oz-r-s: 10px;
	--oz-r-m: 16px;
	--oz-r-l: 24px;
	--oz-r-xl: 32px;
	--oz-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--oz-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
	--oz-header-h: 72px;
	--oz-mono: var(--wp--preset--font-family--mono, ui-monospace, Menlo, monospace);
	--oz-pad-x: var(--wp--style--root--padding-left, clamp(1rem, 0.4rem + 2.6vw, 2.5rem));
	--oz-section-y: clamp(4rem, 2.6rem + 5vw, 7.5rem);
	--oz-noise: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* 02 — Base -------------------------------------------------------------- */
html {
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	scroll-padding-top: calc(var(--oz-header-h) + 1rem);
	background: var(--oz-ink);
}

body {
	background: var(--oz-ink);
	color: var(--oz-text);
	font-feature-settings: "ss01" 1, "cv11" 1;
	overflow-x: clip;
}

body::before {
	/* film grain for depth */
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: var(--oz-noise);
	opacity: 0.035;
	mix-blend-mode: overlay;
}

.wp-site-blocks {
	position: relative;
	z-index: 1;
}

::selection {
	background: var(--oz-lime);
	color: var(--oz-ink);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--oz-lime);
	outline-offset: 3px;
	border-radius: 6px;
}

h1, h2, h3, h4,
.wp-block-heading {
	text-wrap: balance;
	font-kerning: normal;
}

p, li {
	text-wrap: pretty;
}

strong, b {
	font-weight: 600;
	color: var(--oz-text);
}

mark.has-inline-color {
	background: transparent;
}

/* Lime full stops and highlights in headings: <mark class="has-lime-color"> */
mark.has-lime-color {
	color: var(--oz-lime) !important;
}

.has-text-2-color { color: var(--oz-text-2) !important; }
.has-text-3-color { color: var(--oz-text-3) !important; }

hr.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--oz-line);
	opacity: 1;
}

img {
	height: auto;
}

/* 03 — Layout ------------------------------------------------------------ */
.oz-section {
	position: relative;
	padding-block: var(--oz-section-y);
	isolation: isolate;
}

.oz-section--tight {
	padding-block: clamp(3rem, 2rem + 4vw, 6rem);
}

.oz-section--flush-top { padding-top: 0; }
.oz-section--flush-bottom { padding-bottom: 0; }

.oz-section + .oz-section.oz-section--joined {
	padding-top: 0;
}

.oz-section__head {
	margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
}

.oz-section__head > * + * {
	margin-top: 1.1rem;
}

.oz-section__head.is-centered {
	text-align: center;
	margin-inline: auto;
}

.oz-section__head.is-centered .is-style-oz-eyebrow {
	justify-content: center;
}

.oz-divider-top {
	border-top: 1px solid var(--oz-line);
}

/* Blueprint grid backdrop (block style only; page sections stay clean) */
.is-style-oz-grid::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 72px 72px;
	background-position: center top;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 20%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 20%, transparent 75%);
}

/* Aurora glows */
.oz-aurora::after {
	content: "";
	position: absolute;
	inset: -10% 0 auto;
	height: 90%;
	z-index: -2;
	pointer-events: none;
	background:
		radial-gradient(40% 55% at 18% 20%, rgba(140, 198, 63, 0.16), transparent 70%),
		radial-gradient(35% 50% at 85% 10%, rgba(69, 208, 226, 0.12), transparent 70%);
	filter: blur(10px);
}

.oz-aurora--low::after {
	inset: auto 0 -20%;
	background:
		radial-gradient(45% 60% at 50% 100%, rgba(140, 198, 63, 0.16), transparent 70%),
		radial-gradient(30% 40% at 90% 90%, rgba(69, 208, 226, 0.1), transparent 70%);
}

.oz-horizon {
	position: relative;
}

.oz-horizon::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: min(1100px, 90vw);
	height: 1px;
	transform: translateX(-50%);
	background: linear-gradient(90deg, transparent, rgba(140, 198, 63, 0.7), rgba(69, 208, 226, 0.6), transparent);
	box-shadow: 0 0 24px 2px rgba(140, 198, 63, 0.35);
}

/* 04 — Header ------------------------------------------------------------ */
/* The header itself must never get a filter, backdrop-filter or transform: those would make it the
   containing block for the mobile menu overlay (position: fixed) and trap the overlay inside the bar.
   The frosted glass lives on a pseudo-element instead. */
.oz-header {
	position: sticky;
	top: 0;
	z-index: 100;
}

/* WordPress wraps the header part in a box exactly as tall as the header, so the sticky header had no
   room to stick. The wrapper steps aside, and the header sticks against the whole page on every screen. */
.wp-site-blocks > .wp-block-template-part:first-child,
.wp-site-blocks > .wp-block-template-part:has(> .oz-header) {
	display: contents;
}

.oz-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: rgba(7, 10, 9, 0.72);
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	border-bottom: 1px solid var(--oz-line);
	opacity: 0;
	transition: opacity 0.35s var(--oz-ease);
}

.admin-bar .oz-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

/* On small screens the WordPress admin bar scrolls away with the page. */
@media (max-width: 600px) {
	.admin-bar .oz-header { top: 0; }
}

.oz-header.is-scrolled::before,
.oz-header:has(.wp-block-navigation-item:hover)::before,
.oz-header:focus-within::before {
	opacity: 1;
}

.oz-header__bar {
	min-height: var(--oz-header-h);
	gap: 1.5rem;
}

.oz-header .oz-logo {
	flex: 0 0 auto;
	color: var(--oz-text);
}

.oz-header .wp-block-navigation {
	flex: 1 1 auto;
	gap: 0.25rem;
}

.oz-header .wp-block-navigation .wp-block-navigation__container {
	gap: 0.15rem;
}

.oz-header .wp-block-navigation-item__content {
	color: var(--oz-text-2);
	padding: 0.55rem 0.8rem !important;
	border-radius: 999px;
	transition: color 0.2s, background-color 0.2s;
}

.oz-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.oz-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content {
	color: var(--oz-text);
	background: rgba(255, 255, 255, 0.05);
}

.oz-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.oz-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--oz-text);
}

.oz-header .wp-block-navigation__submenu-icon {
	width: 0.6em;
	height: 0.6em;
	margin-left: -0.35rem;
	opacity: 0.6;
	transition: transform 0.3s var(--oz-ease);
}

.oz-header .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-icon,
.oz-header .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-icon {
	transform: rotate(180deg);
}

/* Mega panel (desktop) */
@media (min-width: 600px) {
	.oz-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container {
		top: calc(100% + 10px) !important;
		left: 50% !important;
		min-width: 0 !important;
		width: max-content;
		max-width: min(92vw, 720px);
		padding: 0.6rem !important;
		background: rgba(12, 17, 15, 0.94) !important;
		-webkit-backdrop-filter: blur(22px) saturate(150%);
		backdrop-filter: blur(22px) saturate(150%);
		border: 1px solid var(--oz-line-2) !important;
		border-radius: 20px;
		box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(140, 198, 63, 0.06);
		display: grid !important;
		grid-template-columns: repeat(2, minmax(250px, 1fr));
		gap: 0.25rem;
		translate: -50% 6px;
		transition: opacity 0.25s var(--oz-ease), translate 0.35s var(--oz-ease), visibility 0.25s;
	}

	.oz-header .wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container,
	.oz-header .wp-block-navigation .has-child:focus-within > .wp-block-navigation__submenu-container {
		translate: -50% 0;
	}

	.oz-header .wp-block-navigation .has-child > .wp-block-navigation__submenu-container::before {
		/* hover bridge between the trigger and the panel */
		content: "";
		position: absolute;
		inset: -14px 0 auto;
		height: 14px;
	}

	.oz-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
		padding: 0.85rem 1rem !important;
		border-radius: 14px;
		color: var(--oz-text);
		font-weight: 600;
		white-space: normal;
	}

	.oz-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.oz-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
		background: rgba(255, 255, 255, 0.05);
	}

	.oz-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__label::after {
		content: " →";
		opacity: 0;
		color: var(--oz-lime);
		transition: opacity 0.2s;
	}

	.oz-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover .wp-block-navigation-item__label::after {
		opacity: 1;
	}

	.oz-header .wp-block-navigation-item__description {
		display: block;
		font-weight: 400;
		font-size: 0.8125rem;
		line-height: 1.4;
		color: var(--oz-text-3);
		max-width: 30ch;
	}
}

/* Mobile overlay */
.oz-header .wp-block-navigation__responsive-container-open,
.oz-header .wp-block-navigation__responsive-container-close {
	color: var(--oz-text);
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--oz-ink) !important;
	color: var(--oz-text) !important;
	padding: 1.25rem var(--oz-pad-x) 2rem;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	align-items: flex-start;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.25rem;
	width: 100%;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--oz-text);
	padding: 0.4rem 0 !important;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding: 0.25rem 0 0.75rem 0.25rem !important;
	gap: 0 !important;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1rem;
	font-weight: 500;
	color: var(--oz-text-2);
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__description {
	display: none;
}

.oz-header__cta .wp-block-button__link {
	padding: 0.62rem 1.05rem;
	font-size: 0.875rem;
}

@media (max-width: 781px) {
	.oz-header__bar { gap: 0.75rem; }
	.oz-header .wp-block-navigation { flex: 0 0 auto; order: 3; }
	.oz-header__cta { order: 2; margin-left: auto !important; }
	.oz-header__cta .wp-block-button__link { padding: 0.5rem 0.85rem; font-size: 0.8125rem; }
	.oz-header__cta .wp-block-button__link::after { display: none; }
}

@media (max-width: 360px) {
	.oz-header__cta { display: none !important; }
}

/* 05 — Footer ------------------------------------------------------------ */
.oz-footer {
	position: relative;
	overflow: hidden;
	border-top: 1px solid var(--oz-line);
	padding-top: clamp(3.5rem, 2.5rem + 4vw, 6rem);
	background:
		radial-gradient(60% 50% at 50% 120%, rgba(140, 198, 63, 0.12), transparent 70%),
		var(--oz-ink);
}

.oz-footer__top {
	gap: clamp(2rem, 1rem + 4vw, 5rem) !important;
}

.oz-footer__brand p {
	color: var(--oz-text-2);
	max-width: 34ch;
}

.oz-footer h2,
.oz-footer .oz-footer__title {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--oz-text-3);
	margin: 0 0 1.1rem;
}

.oz-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.6rem;
	font-size: 0.9375rem;
}

.oz-footer__links a {
	color: var(--oz-text-2);
	transition: color 0.2s;
}

.oz-footer__links a:hover {
	color: var(--oz-text);
}

.oz-footer__mark {
	margin-top: clamp(3rem, 2rem + 4vw, 6rem);
	margin-bottom: -0.2em;
	color: rgba(255, 255, 255, 0.05);
	pointer-events: none;
	user-select: none;
	-webkit-mask-image: linear-gradient(180deg, #000 30%, transparent 95%);
	mask-image: linear-gradient(180deg, #000 30%, transparent 95%);
}

.oz-footer__mark .oz-logo__link {
	width: 100% !important;
	display: block;
}

.oz-footer__mark .oz-logo__svg circle {
	fill: rgba(140, 198, 63, 0.28);
}

.oz-footer__bottom {
	border-top: 1px solid var(--oz-line);
	padding-block: 1.25rem;
	font-size: 0.8125rem;
	color: var(--oz-text-3);
	font-family: var(--oz-mono);
	letter-spacing: 0.02em;
}

.oz-footer__bottom a {
	color: var(--oz-text-2);
}

/* Logo block */
.oz-logo {
	line-height: 0;
}

.oz-logo__link {
	display: inline-block;
	color: inherit;
}

.oz-logo__svg {
	display: block;
	width: 100%;
	height: auto;
}

.oz-logo__link:hover .oz-logo__svg circle {
	filter: drop-shadow(0 0 10px rgba(140, 198, 63, 0.8));
}

/* 06 — Buttons ----------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	transition: background-color 0.25s, color 0.25s, box-shadow 0.3s var(--oz-ease), transform 0.3s var(--oz-ease), border-color 0.25s;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 8px 30px -12px rgba(140, 198, 63, 0.6);
}

.wp-block-button:not(.is-style-oz-ghost):not(.is-style-outline):not(.is-style-oz-arrow) .wp-block-button__link:hover {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 10px 40px -8px rgba(140, 198, 63, 0.75);
	transform: translateY(-1px);
}

.wp-block-button:not(.oz-no-arrow) .wp-block-button__link::after {
	content: "→";
	font-weight: 400;
	transition: transform 0.3s var(--oz-ease);
}

.wp-block-button .wp-block-button__link:hover::after {
	transform: translateX(3px);
}

.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-oz-ghost .wp-block-button__link {
	background: rgba(255, 255, 255, 0.03);
	color: var(--oz-text);
	border: 1px solid var(--oz-line-2);
	box-shadow: none;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-oz-ghost .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(255, 255, 255, 0.28);
	color: var(--oz-text);
}

.wp-block-button.is-style-oz-arrow .wp-block-button__link {
	background: transparent;
	color: var(--oz-lime);
	padding: 0.3rem 0;
	border-radius: 0;
	box-shadow: none;
	font-weight: 600;
}

.wp-block-button.is-style-oz-arrow .wp-block-button__link:hover {
	color: var(--oz-lime-bright);
	background: transparent;
}

.wp-block-buttons {
	gap: 0.75rem;
}

/* 07 — Type helpers ------------------------------------------------------ */
.is-style-oz-eyebrow,
.oz-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--oz-mono);
	font-size: 0.75rem !important;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--oz-lime);
	margin-bottom: 0;
}

.is-style-oz-eyebrow::before,
.oz-eyebrow::before {
	content: "";
	width: 22px;
	height: 1px;
	background: currentColor;
	opacity: 0.8;
	flex: none;
}

.is-style-oz-eyebrow.has-text-align-center {
	justify-content: center;
}

.is-style-oz-lead,
.oz-lead {
	font-size: var(--wp--preset--font-size--large) !important;
	line-height: 1.5;
	color: var(--oz-text-2);
	max-width: 62ch;
	letter-spacing: -0.01em;
}

.is-style-oz-note,
.oz-note {
	font-family: var(--oz-mono);
	font-size: 0.75rem !important;
	line-height: 1.6;
	color: var(--oz-text-3);
	letter-spacing: 0.01em;
}

.is-style-oz-gradient,
.oz-gradient-text {
	background: linear-gradient(100deg, var(--oz-text) 0%, var(--oz-text) 35%, var(--oz-lime-bright) 70%, var(--oz-cyan) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
}

.oz-mono {
	font-family: var(--oz-mono);
	letter-spacing: 0.02em;
}

.oz-display {
	font-size: var(--wp--preset--font-size--display) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.055em !important;
	font-weight: 600;
}

.oz-kicker {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.oz-muted { color: var(--oz-text-2); }

/* 08 — Cards & bento ----------------------------------------------------- */
.is-style-oz-glass,
.is-style-oz-card,
.is-style-oz-outline,
.oz-card {
	position: relative;
	border-radius: var(--oz-r-l);
	padding: clamp(1.4rem, 1rem + 1.4vw, 2.1rem);
	transition: border-color 0.35s var(--oz-ease), transform 0.45s var(--oz-ease), background-color 0.35s;
	overflow: hidden;
}

.is-style-oz-glass {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)), var(--oz-glass);
	border: 1px solid var(--oz-line);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 30px 60px -40px rgba(0, 0, 0, 0.8);
}

.is-style-oz-card,
.oz-card {
	background: var(--oz-ink-2);
	border: 1px solid var(--oz-line);
}

.is-style-oz-outline {
	background: transparent;
	border: 1px solid var(--oz-line-2);
}

/* Cursor spotlight (ozari.js sets --mx/--my) */
.is-style-oz-glass::after,
.is-style-oz-card::after,
.oz-card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.4s;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(140, 198, 63, 0.1), transparent 45%);
}

.is-style-oz-glass:hover::after,
.is-style-oz-card:hover::after,
.oz-card:hover::after {
	opacity: 1;
}

.is-style-oz-glass:hover,
.is-style-oz-card:hover,
.oz-card:hover {
	border-color: rgba(140, 198, 63, 0.28);
}

.oz-lift:hover {
	transform: translateY(-4px);
}

/* Featured card: gradient hairline */
.oz-card--featured {
	border: 1px solid transparent !important;
	background:
		linear-gradient(var(--oz-ink-2), var(--oz-ink-2)) padding-box,
		linear-gradient(135deg, rgba(140, 198, 63, 0.65), rgba(255, 255, 255, 0.07) 40%, rgba(255, 255, 255, 0.05) 60%, rgba(69, 208, 226, 0.55)) border-box !important;
}

.is-style-oz-glass > *,
.is-style-oz-card > *,
.oz-card > * {
	position: relative;
	z-index: 1;
}

.is-style-oz-glass h3,
.is-style-oz-card h3,
.oz-card h3 {
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	letter-spacing: -0.02em;
}

.is-style-oz-glass p,
.is-style-oz-card p,
.oz-card p {
	color: var(--oz-text-2);
}

.oz-card__icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	display: grid;
	place-items: center;
	background: var(--oz-lime-a10);
	border: 1px solid var(--oz-lime-a20);
	color: var(--oz-lime);
	margin-bottom: 0.25rem !important;
}

.oz-card__link {
	margin-top: auto !important;
	padding-top: 0.5rem;
}

.oz-cards-equal > * {
	display: flex;
	flex-direction: column;
}

/* Bento */
.oz-bento {
	gap: 1rem !important;
}

.oz-bento > * {
	min-height: 260px;
	display: flex;
	flex-direction: column;
	margin: 0 !important;
}

.oz-bento .oz-visual {
	margin-top: auto !important;
	margin-inline: calc(-1 * clamp(1.4rem, 1rem + 1.4vw, 2.1rem));
	margin-bottom: calc(-1 * clamp(1.4rem, 1rem + 1.4vw, 2.1rem)) !important;
}

@media (min-width: 900px) {
	.oz-span-2 { grid-column: span 2; }
	.oz-span-3 { grid-column: span 3; }
	.oz-row-2 { grid-row: span 2; }
}

/* Icons via CSS masks: <p class="oz-ico oz-ico--solar"> or on a card icon */
.oz-ico::before {
	content: "";
	display: block;
	width: 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: var(--oz-ico) center / contain no-repeat;
	mask: var(--oz-ico) center / contain no-repeat;
}

/* 09 — Status pills ------------------------------------------------------ */
.oz-status {
	--oz-dot: var(--oz-lime);
	display: inline-flex !important;
	align-items: center;
	gap: 0.55rem;
	width: fit-content;
	padding: 0.4rem 0.8rem 0.4rem 0.7rem;
	border-radius: 999px;
	border: 1px solid var(--oz-line-2);
	background: rgba(255, 255, 255, 0.03);
	font-family: var(--oz-mono);
	font-size: 0.6875rem !important;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-text-2);
	line-height: 1.2;
}

.oz-status::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--oz-dot);
	box-shadow: 0 0 0 0 var(--oz-dot);
	animation: oz-pulse 2.4s var(--oz-ease) infinite;
	flex: none;
}

.oz-status a {
	color: var(--oz-text);
}

.oz-status--live { --oz-dot: var(--oz-lime); border-color: rgba(140, 198, 63, 0.35); color: var(--oz-text); }
.oz-status--beta { --oz-dot: var(--oz-cyan); border-color: rgba(69, 208, 226, 0.3); }
.oz-status--dev { --oz-dot: var(--oz-amber); border-color: rgba(243, 183, 70, 0.28); }
.oz-status--roadmap { --oz-dot: var(--oz-text-3); }
.oz-status--roadmap::before { animation: none; }

@keyframes oz-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--oz-dot) 60%, transparent); }
	70% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--oz-dot) 0%, transparent); }
	100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--oz-dot) 0%, transparent); }
}

/* Chips (tags, protocols) */
.oz-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.oz-chips li,
.oz-chip {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	padding: 0.35rem 0.65rem;
	border-radius: 8px;
	border: 1px solid var(--oz-line-2);
	color: var(--oz-text-2);
	background: rgba(255, 255, 255, 0.025);
	margin: 0;
}

/* 10 — Stats ------------------------------------------------------------- */
.oz-stats {
	gap: 0 !important;
	border-top: 1px solid var(--oz-line);
}

.oz-stats > * {
	margin: 0 !important;
	padding: 1.75rem 1.5rem 1.5rem 0;
	border-bottom: 1px solid var(--oz-line);
}

@media (min-width: 782px) {
	.oz-stats > * + * {
		padding-left: 1.5rem;
		border-left: 1px solid var(--oz-line);
	}
}

.oz-stat__value {
	font-size: clamp(2.5rem, 1.8rem + 3vw, 4.25rem) !important;
	font-weight: 600;
	letter-spacing: -0.05em;
	line-height: 1 !important;
	color: var(--oz-text);
	font-variant-numeric: tabular-nums;
	margin: 0 0 0.75rem !important;
}

.oz-stat__value .has-lime-color,
.oz-stat__value mark {
	font-size: 0.55em;
	letter-spacing: -0.02em;
	margin-left: 0.08em;
}

.oz-stat__label {
	color: var(--oz-text-2);
	font-size: 0.9375rem !important;
	line-height: 1.45;
	margin: 0 !important;
	max-width: 28ch;
}

.oz-stat__source {
	font-family: var(--oz-mono);
	font-size: 0.6875rem !important;
	letter-spacing: 0.04em;
	color: var(--oz-text-3);
	margin: 0.75rem 0 0 !important;
}

.oz-stat__source a {
	color: var(--oz-text-3);
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.2);
	text-underline-offset: 3px;
}

/* Proof metrics (terminal style) */
.oz-proof {
	gap: 1px !important;
	background: var(--oz-line);
	border: 1px solid var(--oz-line);
	border-radius: var(--oz-r-l);
	overflow: hidden;
}

.oz-proof > * {
	background: var(--oz-ink-2);
	margin: 0 !important;
	padding: 1.6rem 1.5rem;
	min-height: 170px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.oz-proof .oz-stat__value {
	font-size: clamp(2rem, 1.5rem + 2vw, 3rem) !important;
	color: var(--oz-lime);
	font-family: var(--oz-mono);
	letter-spacing: -0.04em;
}

/* 11 — Lists & steps ----------------------------------------------------- */
.is-style-oz-check,
.is-style-oz-dash {
	list-style: none;
	padding-left: 0 !important;
	display: grid;
	gap: 0.7rem;
}

.is-style-oz-check li,
.is-style-oz-dash li {
	position: relative;
	padding-left: 1.9rem;
	color: var(--oz-text-2);
}

.is-style-oz-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--oz-lime-a10) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4 8.2l2.6 2.5L12 5.4' fill='none' stroke='%238CC63F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 70% no-repeat;
	border: 1px solid var(--oz-lime-a20);
}

.is-style-oz-dash li::before {
	content: "";
	position: absolute;
	left: 0.1rem;
	top: 0.8em;
	width: 0.9rem;
	height: 1px;
	background: var(--oz-lime);
}

.is-style-oz-check li strong,
.is-style-oz-dash li strong {
	color: var(--oz-text);
}

/* Numbered steps: vertical by default, horizontal timeline in wide containers */
.is-style-oz-steps {
	list-style: none;
	padding: 0 !important;
	margin: 0;
	counter-reset: oz-step;
	display: grid;
	gap: 0;
}

.is-style-oz-steps > li {
	counter-increment: oz-step;
	position: relative;
	padding: 0 0 2rem 3.4rem;
	color: var(--oz-text-2);
}

.is-style-oz-steps > li::before {
	content: counter(oz-step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: -0.1rem;
	width: 2.3rem;
	height: 2.3rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-lime);
	background: var(--oz-ink);
	border: 1px solid var(--oz-lime-a40);
	box-shadow: 0 0 0 4px var(--oz-ink), 0 0 20px -4px rgba(140, 198, 63, 0.5);
	z-index: 1;
}

.is-style-oz-steps > li::after {
	content: "";
	position: absolute;
	left: calc(1.15rem - 0.5px);
	top: 2.4rem;
	bottom: 0.1rem;
	width: 1px;
	background: linear-gradient(180deg, var(--oz-lime-a40), rgba(255, 255, 255, 0.06));
}

.is-style-oz-steps > li:last-child::after {
	display: none;
}

.is-style-oz-steps > li strong {
	display: block;
	color: var(--oz-text);
	font-size: 1.0625rem;
	margin-bottom: 0.3rem;
	letter-spacing: -0.01em;
}

@media (min-width: 900px) {
	.alignwide.is-style-oz-steps,
	.oz-steps-row .is-style-oz-steps {
		grid-auto-flow: column;
		grid-auto-columns: 1fr;
		gap: 1.25rem;
	}

	.alignwide.is-style-oz-steps > li,
	.oz-steps-row .is-style-oz-steps > li {
		padding: 3.6rem 0 0;
	}

	.alignwide.is-style-oz-steps > li::after,
	.oz-steps-row .is-style-oz-steps > li::after {
		left: 2.6rem;
		right: -1.25rem;
		top: 1.15rem;
		bottom: auto;
		width: auto;
		height: 1px;
		display: block;
		background: linear-gradient(90deg, var(--oz-lime-a40), rgba(255, 255, 255, 0.06));
	}

	.alignwide.is-style-oz-steps > li:last-child::after,
	.oz-steps-row .is-style-oz-steps > li:last-child::after {
		display: none;
	}
}

/* 12 — Tables ------------------------------------------------------------ */
.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table :where(th, td) {
	border: 0;
	border-bottom: 1px solid var(--oz-line);
	padding: 0.85rem 1rem 0.85rem 0;
	text-align: left;
	vertical-align: top;
}

.wp-block-table thead {
	border-bottom: 0;
}

.wp-block-table thead th {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-text-3);
	border-bottom: 1px solid var(--oz-line-2);
}

.is-style-oz-spec {
	border: 1px solid var(--oz-line);
	border-radius: var(--oz-r-l);
	overflow-x: auto;
	background: var(--oz-ink-2);
}

.is-style-oz-spec table :where(th, td) {
	padding: 0.95rem 1.25rem;
}

.is-style-oz-spec tbody tr:last-child td {
	border-bottom: 0;
}

.is-style-oz-spec tbody tr:hover td {
	background: rgba(255, 255, 255, 0.02);
}

.is-style-oz-spec td:first-child {
	color: var(--oz-text);
	font-weight: 500;
	white-space: nowrap;
}

.is-style-oz-spec td {
	color: var(--oz-text-2);
	font-size: 0.9375rem;
}

.is-style-oz-spec td mark {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.is-style-oz-spec td mark::before {
	content: "● ";
	font-size: 0.7em;
	vertical-align: 0.15em;
}

.wp-block-table figcaption {
	margin-top: 0.75rem;
}

/* 13 — FAQ --------------------------------------------------------------- */
.is-style-oz-faq {
	border-bottom: 1px solid var(--oz-line);
	padding: 0;
	margin: 0 !important;
}

.is-style-oz-faq:first-of-type {
	border-top: 1px solid var(--oz-line);
}

.is-style-oz-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.35rem 3rem 1.35rem 0;
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: -0.01em;
	position: relative;
	color: var(--oz-text);
}

.is-style-oz-faq summary::-webkit-details-marker {
	display: none;
}

.is-style-oz-faq summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	translate: 0 -50%;
	width: 2rem;
	height: 2rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--oz-line-2);
	color: var(--oz-lime);
	font-family: var(--oz-mono);
	transition: rotate 0.3s var(--oz-ease), background-color 0.3s;
}

.is-style-oz-faq[open] summary::after {
	rotate: 45deg;
	background: var(--oz-lime-a10);
}

.is-style-oz-faq > :not(summary) {
	color: var(--oz-text-2);
	padding-bottom: 1.35rem;
	margin: 0;
	max-width: 70ch;
}

/* 14 — Media frames ------------------------------------------------------ */
.wp-block-image img {
	border-radius: inherit;
}

.is-style-oz-window {
	position: relative;
	margin: 0;
	padding-top: 30px;
	border-radius: 14px;
	background: #0d1310;
	border: 1px solid var(--oz-line-2);
	box-shadow: 0 50px 100px -40px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(0, 0, 0, 0.6), 0 0 120px -40px rgba(140, 198, 63, 0.25);
	overflow: hidden;
}

.is-style-oz-window::before {
	content: "";
	position: absolute;
	top: 11px;
	left: 14px;
	width: 42px;
	height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, rgba(255, 255, 255, 0.22) 4px, transparent 4.5px),
		radial-gradient(circle at 21px 4.5px, rgba(255, 255, 255, 0.14) 4px, transparent 4.5px),
		radial-gradient(circle at 37.5px 4.5px, rgba(255, 255, 255, 0.1) 4px, transparent 4.5px);
}

.is-style-oz-window img {
	display: block;
	width: 100%;
	border-radius: 0 !important;
	border-top: 1px solid var(--oz-line);
}

.is-style-oz-window figcaption,
.is-style-oz-glow figcaption,
.is-style-oz-tilt figcaption {
	margin: 0;
	padding: 0.85rem 1rem;
	text-align: left;
	border-top: 1px solid var(--oz-line);
	background: #0d1310;
}

.is-style-oz-glow img {
	border-radius: var(--oz-r-l);
	border: 1px solid var(--oz-line-2);
	box-shadow: 0 40px 100px -40px rgba(140, 198, 63, 0.35), 0 30px 60px -30px rgba(0, 0, 0, 0.9);
}

.is-style-oz-tilt {
	perspective: 1800px;
}

.is-style-oz-tilt img {
	border-radius: 16px;
	border: 1px solid var(--oz-line-2);
	transform: rotateX(10deg) rotateY(-14deg) rotateZ(1deg);
	transform-origin: 60% 50%;
	box-shadow: -30px 60px 120px -40px rgba(0, 0, 0, 0.95), 0 0 120px -30px rgba(140, 198, 63, 0.3);
	transition: transform 1.2s var(--oz-ease);
}

.is-style-oz-tilt:hover img {
	transform: rotateX(4deg) rotateY(-6deg) rotateZ(0.5deg);
}

/* 15 — Marquee ----------------------------------------------------------- */
.oz-marquee {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.oz-marquee__track,
.oz-marquee > ul {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 0;
	width: max-content;
	list-style: none;
	padding: 0 !important;
	margin: 0 !important;
	animation: oz-marquee var(--oz-marquee-speed, 45s) linear infinite;
}

.oz-marquee:hover .oz-marquee__track,
.oz-marquee:hover > ul,
.oz-marquee:focus-within > ul {
	animation-play-state: paused;
}

.oz-marquee li {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0 1.4rem;
	font-family: var(--oz-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	color: var(--oz-text-2);
	white-space: nowrap;
}

.oz-marquee li::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--oz-lime);
	opacity: 0.8;
}

@keyframes oz-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.oz-band {
	border-block: 1px solid var(--oz-line);
	padding-block: 1.1rem;
	background: rgba(255, 255, 255, 0.012);
}

/* 16 — Tabs (enhanced by ozari.js) ---------------------------------------- */
.oz-tabs__nav {
	display: inline-flex !important;
	flex-wrap: wrap;
	gap: 0.25rem !important;
	padding: 0.3rem;
	border-radius: 999px;
	border: 1px solid var(--oz-line-2);
	background: rgba(255, 255, 255, 0.025);
	margin-bottom: 1.75rem;
}

.oz-tabs__nav .wp-block-button__link {
	background: transparent;
	color: var(--oz-text-2);
	box-shadow: none;
	padding: 0.55rem 1rem;
	font-size: 0.875rem;
	font-weight: 500;
}

.oz-tabs__nav .wp-block-button__link::after {
	display: none;
}

.oz-tabs__nav .wp-block-button__link:hover {
	color: var(--oz-text);
	background: rgba(255, 255, 255, 0.05);
	transform: none;
	box-shadow: none;
}

.oz-tabs__nav .wp-block-button__link[aria-selected="true"] {
	background: var(--oz-lime);
	color: var(--oz-ink);
}

.oz-js .oz-tabs.is-ready .oz-tabs__panel[hidden] {
	display: none !important;
}

.oz-tabs.is-ready .oz-tabs__panel:not([hidden]) {
	animation: oz-fade-up 0.6s var(--oz-ease) both;
}

.oz-tabs__panel + .oz-tabs__panel {
	margin-top: 2.5rem;
}

.oz-tabs.is-ready .oz-tabs__panel + .oz-tabs__panel {
	margin-top: 0;
}

/* 17 — Heroes ------------------------------------------------------------ */
.oz-hero {
	position: relative;
	isolation: isolate;
	padding-top: clamp(3.5rem, 2rem + 6vw, 7.5rem);
	padding-bottom: clamp(3.5rem, 2rem + 6vw, 7rem);
	overflow: hidden;
}

.oz-hero--home {
	min-height: min(100svh - var(--oz-header-h), 980px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: clamp(2rem, 1rem + 4vw, 5rem);
}

.oz-hero h1 {
	font-size: var(--wp--preset--font-size--display);
	line-height: 0.98;
	letter-spacing: -0.055em;
	font-weight: 600;
	margin-top: 1.4rem;
}

.oz-hero--page h1 {
	font-size: var(--wp--preset--font-size--huge);
	letter-spacing: -0.05em;
	line-height: 1.02;
	max-width: 18ch;
}

.oz-hero .is-style-oz-lead {
	margin-top: 1.6rem;
	max-width: 54ch;
}

.oz-hero .wp-block-buttons {
	margin-top: 2.25rem;
}

.oz-hero__columns {
	align-items: center !important;
	gap: clamp(2rem, 1rem + 3vw, 4rem) !important;
}

@media (min-width: 1100px) {
	.oz-hero__visual {
		margin-right: calc(-1 * clamp(0rem, 1.5vw, 2rem)) !important;
	}
}

.oz-hero__meta {
	margin-top: clamp(2.5rem, 2rem + 3vw, 4.5rem) !important;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 2rem;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.oz-hero__meta span::before {
	content: "▸ ";
	color: var(--oz-lime);
}

/* Page hero (templates/page.html) */
.oz-page-hero {
	position: relative;
	isolation: isolate;
	padding-top: clamp(3.5rem, 2rem + 6vw, 7rem);
	padding-bottom: clamp(2.5rem, 1.5rem + 4vw, 4.5rem);
	border-bottom: 1px solid var(--oz-line);
}

.oz-page-hero .wp-block-post-title {
	font-size: var(--wp--preset--font-size--huge);
	letter-spacing: -0.05em;
	line-height: 1.02;
	max-width: 20ch;
}

.oz-page-hero .wp-block-post-excerpt {
	color: var(--oz-text-2);
	font-size: var(--wp--preset--font-size--large);
	max-width: 60ch;
}

/* 18 — Visuals ----------------------------------------------------------- */
.oz-visual {
	position: relative;
	margin: 0;
}

.oz-visual svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.oz-visual__caption {
	margin-top: 1rem;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	letter-spacing: 0.02em;
}

/* Shared SVG vocabulary */
.oz-svg-line { stroke: rgba(255, 255, 255, 0.14); fill: none; }
.oz-svg-faint { stroke: rgba(255, 255, 255, 0.06); fill: none; }
.oz-svg-text {
	font-family: var(--oz-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	fill: var(--oz-text-3);
	text-transform: uppercase;
}
.oz-svg-text--lime { fill: var(--oz-lime); }
.oz-svg-text--cyan { fill: var(--oz-cyan); }
.oz-svg-text--strong { fill: var(--oz-text); font-family: var(--wp--preset--font-family--sans); letter-spacing: -0.01em; text-transform: none; font-size: 14px; font-weight: 600; }

.oz-flow {
	fill: none;
	stroke: var(--oz-lime);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-dasharray: 2 10;
	animation: oz-dash 1.1s linear infinite;
	filter: drop-shadow(0 0 3px rgba(140, 198, 63, 0.8));
}

.oz-flow--data {
	stroke: var(--oz-cyan);
	stroke-dasharray: 1 7;
	stroke-width: 1.4;
	animation-duration: 0.9s;
	filter: drop-shadow(0 0 3px rgba(69, 208, 226, 0.8));
}

.oz-flow--rev { animation-direction: reverse; }
.oz-flow--slow { animation-duration: 2.2s; }

@keyframes oz-dash {
	to { stroke-dashoffset: -24; }
}

.oz-rotor {
	transform-box: view-box;
	animation: oz-spin var(--oz-spin, 7s) linear infinite;
}

@keyframes oz-spin {
	to { transform: rotate(360deg); }
}

.oz-blink {
	animation: oz-blink 2.8s steps(1) infinite;
}

.oz-blink:nth-of-type(3n) { animation-delay: 0.7s; }
.oz-blink:nth-of-type(3n+1) { animation-delay: 1.6s; }

@keyframes oz-blink {
	0%, 60% { opacity: 1; }
	61%, 75% { opacity: 0.25; }
	76%, 100% { opacity: 1; }
}

.oz-glow-pulse {
	animation: oz-glow-pulse 3.2s var(--oz-ease-io) infinite;
}

@keyframes oz-glow-pulse {
	0%, 100% { opacity: 0.55; }
	50% { opacity: 1; }
}

/* Floating telemetry chips (hero) */
.oz-chipset {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.oz-tchip {
	position: absolute;
	left: var(--x);
	top: var(--y);
	display: grid;
	gap: 0.15rem;
	padding: 0.55rem 0.75rem 0.6rem;
	min-width: 132px;
	border-radius: 12px;
	background: rgba(10, 15, 13, 0.72);
	border: 1px solid var(--oz-line-2);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.9);
	font-family: var(--oz-mono);
	animation: oz-float 7s var(--oz-ease-io) infinite;
	animation-delay: var(--d, 0s);
	pointer-events: auto;
}

.oz-tchip__k {
	white-space: nowrap;
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-text-3);
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.oz-tchip__k::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--c, var(--oz-lime));
	box-shadow: 0 0 8px var(--c, var(--oz-lime));
}

.oz-tchip__v {
	font-size: 0.9375rem;
	color: var(--oz-text);
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
}

.oz-tchip__v small {
	font-size: 0.7rem;
	color: var(--oz-text-3);
	margin-left: 0.2rem;
}

.oz-tchip--ai {
	min-width: 250px;
	max-width: 290px;
	border-color: rgba(140, 198, 63, 0.35);
	background: linear-gradient(180deg, rgba(140, 198, 63, 0.1), rgba(10, 15, 13, 0.82) 60%);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.9), 0 0 50px -20px rgba(140, 198, 63, 0.45);
}

.oz-tchip--ai .oz-tchip__v {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--oz-text-2);
	letter-spacing: 0;
}

.oz-tchip--ai .oz-tchip__v b {
	color: var(--oz-text);
	font-weight: 600;
}

.oz-tchip__foot {
	margin-top: 0.35rem;
	padding-top: 0.45rem;
	border-top: 1px solid var(--oz-line);
	display: flex;
	justify-content: space-between;
	gap: 0.5rem;
	font-size: 0.625rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--oz-amber);
}

.oz-tchip__foot span:first-child {
	color: var(--oz-text-3);
}

.oz-tchip.is-right {
	left: auto;
	right: var(--xr, 0%);
}

@keyframes oz-float {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -6px; }
}

@media (max-width: 700px) {
	.oz-tchip { transform: scale(0.82); transform-origin: top left; }
	.oz-tchip.is-right { transform-origin: top right; }
	.oz-tchip--hide-sm { display: none; }
}

/* Hero park */
.oz-visual--hero-park .oz-park {
	position: relative;
	aspect-ratio: 1200 / 860;
}

.oz-visual--hero-park .oz-park > svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	filter: drop-shadow(0 40px 60px rgba(0, 0, 0, 0.5));
}

/* Diagram shells (control path, purdue, hub, stack) */
.oz-diagram {
	position: relative;
	border-radius: var(--oz-r-xl);
	border: 1px solid var(--oz-line);
	background:
		radial-gradient(80% 60% at 50% 0%, rgba(140, 198, 63, 0.06), transparent 70%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0)),
		var(--oz-ink-2);
	padding: clamp(1rem, 0.5rem + 2vw, 2rem);
	overflow: hidden;
}

.oz-diagram::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
	background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}

.oz-diagram > * {
	position: relative;
}

/* Control path */
.oz-cpath {
	display: grid;
	gap: 0.6rem;
}

.oz-cpath__ai {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.9rem 1.1rem;
	border-radius: 16px;
	border: 1px dashed rgba(69, 208, 226, 0.45);
	background: rgba(69, 208, 226, 0.06);
	color: var(--oz-text-2);
	font-size: 0.875rem;
}

.oz-cpath__ai b {
	color: var(--oz-cyan);
	font-family: var(--oz-mono);
	font-weight: 500;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
}

.oz-cpath__wall {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-red);
	padding: 0.2rem 0.2rem;
}

.oz-cpath__wall::before,
.oz-cpath__wall::after {
	content: "";
	flex: 1;
	height: 1px;
	background: repeating-linear-gradient(90deg, rgba(255, 99, 99, 0.6) 0 6px, transparent 6px 12px);
}

.oz-cpath__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.6rem;
	counter-reset: cp;
	position: relative;
}

.oz-cpath__steps li {
	counter-increment: cp;
	position: relative;
	padding: 0.9rem 0.9rem 1rem;
	border-radius: 14px;
	border: 1px solid var(--oz-line);
	background: rgba(255, 255, 255, 0.02);
	display: grid;
	gap: 0.3rem;
	align-content: start;
	transition: border-color 0.3s, background-color 0.3s, box-shadow 0.3s;
}

.oz-cpath__steps li::before {
	content: counter(cp, decimal-leading-zero);
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	color: var(--oz-text-3);
	letter-spacing: 0.1em;
}

.oz-cpath__steps li b {
	color: var(--oz-text);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.oz-cpath__steps li span {
	color: var(--oz-text-3);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.oz-cpath__steps li.is-active {
	border-color: rgba(140, 198, 63, 0.55);
	background: rgba(140, 198, 63, 0.07);
	box-shadow: 0 0 30px -10px rgba(140, 198, 63, 0.6);
}

.oz-cpath__steps li.is-active::before {
	color: var(--oz-lime);
}

.oz-cpath__steps li.is-done {
	border-color: rgba(140, 198, 63, 0.25);
}

.oz-cpath__steps li.is-done::before {
	content: "✓ " counter(cp, decimal-leading-zero);
	color: var(--oz-lime);
}

.oz-cpath__field {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.85rem 1.1rem;
	border-radius: 14px;
	border: 1px solid var(--oz-line);
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.oz-cpath__field i {
	font-style: normal;
	color: var(--oz-lime);
}

@media (max-width: 781px) {
	.oz-cpath__steps { grid-template-columns: repeat(2, 1fr); }
}

/* Purdue stack */
.oz-zones {
	display: grid;
	gap: 0.5rem;
}

.oz-zone {
	display: grid;
	grid-template-columns: 7rem 1fr;
	gap: 1rem;
	align-items: center;
	padding: 0.75rem 1rem;
	border-radius: 14px;
	border: 1px solid var(--oz-line);
	background: rgba(255, 255, 255, 0.02);
}

.oz-zone__lvl {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	color: var(--oz-text-3);
	text-transform: uppercase;
	line-height: 1.3;
}

.oz-zone__lvl b {
	display: block;
	color: var(--oz-text);
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	font-weight: 600;
}

.oz-zone__nodes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.oz-node {
	font-size: 0.8125rem;
	padding: 0.35rem 0.6rem;
	border-radius: 8px;
	border: 1px solid var(--oz-line-2);
	background: var(--oz-ink-3);
	color: var(--oz-text-2);
	white-space: nowrap;
}

.oz-node--lime {
	border-color: rgba(140, 198, 63, 0.5);
	color: var(--oz-text);
	background: rgba(140, 198, 63, 0.1);
}

.oz-node--cyan {
	border-color: rgba(69, 208, 226, 0.5);
	color: var(--oz-text);
	background: rgba(69, 208, 226, 0.08);
}

.oz-zone--core {
	border-color: rgba(140, 198, 63, 0.35);
	background: linear-gradient(90deg, rgba(140, 198, 63, 0.08), rgba(255, 255, 255, 0.015));
}

.oz-zone--dmz {
	border-style: dashed;
	border-color: rgba(69, 208, 226, 0.4);
}

.oz-conduit {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding-left: 8rem;
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--oz-amber);
}

.oz-conduit::after {
	content: "";
	flex: 1;
	height: 1px;
	background: repeating-linear-gradient(90deg, rgba(243, 183, 70, 0.55) 0 5px, transparent 5px 10px);
}

.oz-conduit--diode {
	color: #b89cff;
}

.oz-conduit--diode::after {
	background: repeating-linear-gradient(90deg, rgba(184, 156, 255, 0.6) 0 5px, transparent 5px 10px);
}

@media (max-width: 600px) {
	.oz-zone { grid-template-columns: 1fr; gap: 0.5rem; }
	.oz-conduit { padding-left: 0; }
}

/* Data hub */
.oz-hub svg .oz-hub-node rect {
	fill: var(--oz-ink-3);
	stroke: rgba(255, 255, 255, 0.14);
}

.oz-hub svg .oz-hub-node text {
	font-family: var(--oz-mono);
	font-size: 12px;
	fill: var(--oz-text);
	letter-spacing: 0.02em;
}

.oz-hub svg .oz-hub-node .oz-hub-sub {
	font-size: 9.5px;
	fill: var(--oz-text-3);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* AI advisor card */
.oz-advisor {
	border-radius: 20px;
	border: 1px solid rgba(140, 198, 63, 0.3);
	background: linear-gradient(180deg, rgba(140, 198, 63, 0.08), rgba(12, 17, 15, 0.9) 45%);
	padding: 1.25rem;
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.9), 0 0 60px -30px rgba(140, 198, 63, 0.4);
	font-size: 0.875rem;
	color: var(--oz-text-2);
	display: grid;
	gap: 0.9rem;
}

.oz-advisor__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.oz-advisor__who {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--oz-text);
	font-weight: 600;
}

.oz-orb {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, #d9ff9e, var(--oz-lime) 45%, #2c4d0e 100%);
	box-shadow: 0 0 0 0 rgba(140, 198, 63, 0.5), 0 0 18px rgba(140, 198, 63, 0.7);
	animation: oz-orb 3s var(--oz-ease-io) infinite;
	flex: none;
}

@keyframes oz-orb {
	0%, 100% { box-shadow: 0 0 0 0 rgba(140, 198, 63, 0.45), 0 0 18px rgba(140, 198, 63, 0.6); scale: 1; }
	50% { box-shadow: 0 0 0 10px rgba(140, 198, 63, 0), 0 0 26px rgba(140, 198, 63, 0.9); scale: 1.06; }
}

.oz-advisor__tag {
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.25rem 0.5rem;
	border-radius: 6px;
	border: 1px solid rgba(69, 208, 226, 0.4);
	color: var(--oz-cyan);
}

.oz-advisor__title {
	color: var(--oz-text);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

.oz-advisor__why {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.8125rem;
}

.oz-advisor__why li {
	padding-left: 1rem;
	position: relative;
}

.oz-advisor__why li::before {
	content: "›";
	position: absolute;
	left: 0;
	color: var(--oz-lime);
}

.oz-conf {
	display: grid;
	gap: 0.35rem;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	color: var(--oz-text-3);
	text-transform: uppercase;
}

.oz-conf__bar {
	height: 5px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.07);
	overflow: hidden;
}

.oz-conf__bar i {
	display: block;
	height: 100%;
	width: var(--v, 80%);
	border-radius: inherit;
	background: linear-gradient(90deg, var(--oz-lime-deep), var(--oz-lime));
	box-shadow: 0 0 12px rgba(140, 198, 63, 0.7);
}

.oz-advisor__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}

.oz-advisor__btn {
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.6rem 0.7rem;
	border-radius: 10px;
	border: 1px solid var(--oz-line-2);
	text-align: center;
	color: var(--oz-text);
	background: rgba(255, 255, 255, 0.03);
}

.oz-advisor__btn--primary {
	background: var(--oz-lime);
	border-color: var(--oz-lime);
	color: var(--oz-ink);
}

.oz-advisor__lock {
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--oz-amber);
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

/* SOC stream */
.oz-stream {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	border-radius: 18px;
	border: 1px solid var(--oz-line);
	background: #090d0b;
	overflow: hidden;
}

.oz-stream__head {
	display: flex;
	justify-content: space-between;
	padding: 0.7rem 1rem;
	border-bottom: 1px solid var(--oz-line);
	color: var(--oz-text-3);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.625rem;
}

.oz-stream__rows {
	list-style: none;
	margin: 0;
	padding: 0.35rem 0;
	height: 250px;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, transparent, #000 12%, #000 85%, transparent);
	mask-image: linear-gradient(180deg, transparent, #000 12%, #000 85%, transparent);
}

.oz-stream__rows li {
	display: grid;
	grid-template-columns: 4.6rem 1fr auto;
	gap: 0.75rem;
	align-items: center;
	padding: 0.45rem 1rem;
	color: var(--oz-text-2);
	white-space: nowrap;
}

.oz-stream__rows li span:nth-child(2) {
	overflow: hidden;
	text-overflow: ellipsis;
}

.oz-stream__rows time {
	color: var(--oz-text-3);
}

.oz-sev {
	font-size: 0.625rem;
	letter-spacing: 0.08em;
	padding: 0.15rem 0.4rem;
	border-radius: 5px;
	border: 1px solid currentColor;
}

.oz-sev--hi { color: var(--oz-red); }
.oz-sev--med { color: var(--oz-amber); }
.oz-sev--lo { color: var(--oz-cyan); }
.oz-sev--ok { color: var(--oz-lime); }

.oz-stream__rows li.is-new {
	animation: oz-row-in 0.8s var(--oz-ease) both;
}

@keyframes oz-row-in {
	from { opacity: 0; transform: translateY(-8px); background: rgba(140, 198, 63, 0.12); }
	to { opacity: 1; transform: none; background: transparent; }
}

/* 19 — Blog & prose ------------------------------------------------------ */
.oz-post-grid {
	gap: 1.25rem !important;
}

.oz-post-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	border-radius: var(--oz-r-l);
	border: 1px solid var(--oz-line);
	background: var(--oz-ink-2);
	overflow: hidden;
	transition: border-color 0.3s, transform 0.5s var(--oz-ease);
}

.oz-post-card:hover {
	border-color: rgba(140, 198, 63, 0.3);
	transform: translateY(-4px);
}

.oz-post-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	border-bottom: 1px solid var(--oz-line);
}

.oz-post-card .wp-block-post-featured-image img {
	transition: transform 1.2s var(--oz-ease);
}

.oz-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

.oz-post-card__body {
	padding: 1.4rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	flex: 1;
}

.oz-post-card__body > * {
	margin: 0 !important;
}

.oz-post-card .wp-block-post-title {
	font-size: 1.25rem;
	letter-spacing: -0.02em;
	line-height: 1.25;
}

.oz-post-card .wp-block-post-title a {
	color: var(--oz-text);
}

.oz-post-card .wp-block-post-title a::before {
	/* whole-card link target */
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.oz-post-card {
	position: relative;
}

.oz-post-card .wp-block-post-excerpt {
	color: var(--oz-text-2);
	font-size: 0.9375rem;
}

.oz-post-card .wp-block-post-excerpt__more-text {
	display: none;
}

.oz-post-card .wp-block-post-terms a,
.oz-article .wp-block-post-terms a {
	color: var(--oz-lime);
	position: relative;
	z-index: 2;
}

.oz-post-card__meta {
	margin-top: auto !important;
	padding-top: 0.5rem;
	color: var(--oz-text-3);
}

/* Featured (first) post */
.oz-post-featured .oz-post-card {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
}

.oz-post-featured .oz-post-card .wp-block-post-featured-image {
	border-bottom: 0;
	border-right: 1px solid var(--oz-line);
	height: 100%;
}

.oz-post-featured .oz-post-card .wp-block-post-featured-image img {
	height: 100% !important;
	object-fit: cover;
}

.oz-post-featured .oz-post-card__body {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	justify-content: center;
}

.oz-post-featured .oz-post-card .wp-block-post-title {
	font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.4rem);
	letter-spacing: -0.035em;
	line-height: 1.1;
}

@media (max-width: 781px) {
	.oz-post-featured .oz-post-card { grid-template-columns: 1fr; }
	.oz-post-featured .oz-post-card .wp-block-post-featured-image { border-right: 0; border-bottom: 1px solid var(--oz-line); }
}

/* Article */
.oz-article-hero {
	padding-top: clamp(3rem, 2rem + 5vw, 6rem);
	padding-bottom: clamp(2rem, 1.5rem + 2vw, 3rem);
}

.oz-article-hero .wp-block-post-title {
	font-size: clamp(2.25rem, 1.5rem + 3.4vw, 4.25rem);
	letter-spacing: -0.045em;
	line-height: 1.04;
}

.oz-article-hero .wp-block-post-excerpt {
	font-size: var(--wp--preset--font-size--large);
	color: var(--oz-text-2);
}

.oz-article-media img {
	border-radius: var(--oz-r-l);
	border: 1px solid var(--oz-line);
}

.oz-prose {
	font-size: 1.125rem;
	line-height: 1.75;
	color: #d6ded9;
}

.oz-prose > * + * {
	margin-top: 1.4em;
}

.oz-prose h2 {
	font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.1rem);
	letter-spacing: -0.03em;
	margin-top: 2.4em;
	line-height: 1.15;
}

.oz-prose h3 {
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	margin-top: 2em;
}

.oz-prose a:where(:not(.wp-element-button)) {
	color: var(--oz-text);
	text-decoration: underline;
	text-decoration-color: var(--oz-lime);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.oz-prose a:where(:not(.wp-element-button)):hover {
	color: var(--oz-lime-bright);
}

.oz-prose ul,
.oz-prose ol {
	padding-left: 1.3em;
}

.oz-prose li + li {
	margin-top: 0.4em;
}

.oz-prose li::marker {
	color: var(--oz-lime);
}

.oz-prose blockquote {
	margin-inline: 0;
	font-size: 1.3rem;
	color: var(--oz-text);
}

.oz-prose .wp-block-pullquote {
	border: 0;
	border-block: 1px solid var(--oz-line);
	padding: 2rem 0;
	text-align: left;
}

.oz-prose .wp-block-pullquote blockquote p {
	font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem);
	letter-spacing: -0.03em;
	line-height: 1.25;
	font-weight: 500;
}

.oz-prose .oz-sources {
	font-size: 0.875rem;
	color: var(--oz-text-3);
	border-top: 1px solid var(--oz-line);
	padding-top: 1.5rem;
	margin-top: 3rem;
}

.oz-prose .oz-sources a {
	color: var(--oz-text-2);
	word-break: break-word;
}

.oz-keypoints {
	border-radius: var(--oz-r-l);
	border: 1px solid rgba(140, 198, 63, 0.25);
	background: rgba(140, 198, 63, 0.045);
	padding: 1.4rem 1.6rem;
}

.oz-keypoints > p:first-child {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--oz-lime);
	margin: 0 0 0.75rem;
}

/* Reading progress (scroll-driven, progressive enhancement) */
.oz-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 200;
	background: linear-gradient(90deg, var(--oz-lime), var(--oz-cyan));
	transform-origin: 0 50%;
	transform: scaleX(0);
	pointer-events: none;
}

@supports (animation-timeline: scroll()) {
	.oz-progress {
		animation: oz-progress linear both;
		animation-timeline: scroll(root);
	}
}

@keyframes oz-progress {
	to { transform: scaleX(1); }
}

/* Pagination */
.wp-block-query-pagination {
	gap: 0.5rem;
	font-family: var(--oz-mono);
	font-size: 0.875rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	padding: 0.4rem 0.8rem;
	border-radius: 8px;
	border: 1px solid var(--oz-line);
	color: var(--oz-text-2);
}

.wp-block-query-pagination .current {
	border-color: var(--oz-lime);
	color: var(--oz-lime);
}

/* 20 — Forms ------------------------------------------------------------- */
.oz-form-wrap {
	border-radius: var(--oz-r-xl);
	border: 1px solid var(--oz-line-2);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.01)), var(--oz-ink-2);
	padding: clamp(1.4rem, 1rem + 2vw, 2.6rem);
	box-shadow: 0 40px 100px -50px rgba(0, 0, 0, 0.9);
}

.oz-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem 1.25rem;
}

.oz-field {
	display: grid;
	gap: 0.45rem;
	margin: 0;
}

.oz-field--full {
	grid-column: 1 / -1;
}

.oz-field label {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--oz-text-2);
}

.oz-field label span {
	color: var(--oz-lime);
}

.oz-field input[type="text"],
.oz-field input[type="email"],
.oz-field select,
.oz-field textarea,
.wp-block-search__input {
	box-sizing: border-box; /* padding and border sit inside the 100% width, so fields never spill into the next column */
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--oz-text);
	background: rgba(0, 0, 0, 0.25);
	border: 1px solid var(--oz-line-2);
	border-radius: 12px;
	padding: 0.8rem 0.95rem;
	transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
	appearance: none;
}

.oz-field select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5l5 5 5-5' fill='none' stroke='%23A9B5AE' stroke-width='1.5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 11px;
	padding-right: 2.5rem;
}

.oz-field select option {
	background: var(--oz-ink-2);
	color: var(--oz-text);
}

.oz-field input:focus,
.oz-field select:focus,
.oz-field textarea:focus,
.wp-block-search__input:focus {
	outline: none;
	border-color: var(--oz-lime);
	box-shadow: 0 0 0 4px rgba(140, 198, 63, 0.15);
	background: rgba(0, 0, 0, 0.35);
}

.oz-field textarea {
	resize: vertical;
	min-height: 140px;
}

.oz-field--check {
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 0.75rem;
}

.oz-field--check input {
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.15rem;
	accent-color: var(--oz-lime);
}

.oz-field--check label {
	font-weight: 400;
	color: var(--oz-text-3);
	line-height: 1.5;
}

.oz-field [aria-invalid="true"] {
	border-color: var(--oz-red);
}

.oz-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.oz-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.25rem;
	margin-top: 1.5rem;
}

.oz-form__submit {
	cursor: pointer;
	border: 0;
}

.oz-form__submit::after {
	content: "→";
}

.oz-form__submit[disabled] {
	opacity: 0.6;
	cursor: progress;
}

.oz-form__status {
	margin: 0;
	font-size: 0.875rem;
	color: var(--oz-text-2);
}

.oz-form__status.is-error { color: var(--oz-red); }
.oz-form__status.is-success { color: var(--oz-lime); }

.oz-form__notice {
	margin-bottom: 1.25rem;
	padding: 0.9rem 1.1rem;
	border-radius: 12px;
	font-size: 0.9375rem;
}

.oz-form__notice.is-success {
	background: rgba(140, 198, 63, 0.1);
	border: 1px solid rgba(140, 198, 63, 0.4);
	color: var(--oz-text);
}

.oz-form__notice.is-error {
	background: rgba(255, 99, 99, 0.08);
	border: 1px solid rgba(255, 99, 99, 0.4);
}

.oz-form.is-sent .oz-form__grid,
.oz-form.is-sent .oz-form__submit {
	display: none;
}

@media (max-width: 640px) {
	.oz-form__grid { grid-template-columns: 1fr; }
}

/* Search block */
.wp-block-search__button {
	margin-left: 0.5rem;
}

.wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

/* 21 — Paper sections (light) -------------------------------------------- */
.oz-section--paper {
	background: var(--oz-paper);
	color: #1b221e;
	--oz-line: rgba(11, 16, 13, 0.1);
	--oz-line-2: rgba(11, 16, 13, 0.16);
	--oz-text: #0b100d;
	--oz-text-2: #3b4640;
	--oz-text-3: #66716b;
	--oz-ink-2: #ffffff;
	--oz-ink-3: #f7f9f5;
}

.oz-section--paper :where(h1, h2, h3, h4, h5) {
	color: var(--oz-text);
}

.oz-section--paper .is-style-oz-eyebrow,
.oz-section--paper mark.has-lime-color,
.oz-section--paper .oz-stat__value mark {
	color: var(--oz-lime-deep) !important;
}

.oz-section--paper .is-style-oz-card,
.oz-section--paper .oz-card {
	background: #fff;
	box-shadow: 0 1px 0 rgba(11, 16, 13, 0.04), 0 20px 40px -30px rgba(11, 16, 13, 0.25);
}

.oz-section--paper .is-style-oz-check li::before {
	background-color: rgba(63, 101, 22, 0.1);
	border-color: rgba(63, 101, 22, 0.25);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4 8.2l2.6 2.5L12 5.4' fill='none' stroke='%233F6516' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

.oz-section--paper .is-style-oz-steps > li::before {
	background: var(--oz-paper);
	color: var(--oz-lime-deep);
	border-color: rgba(63, 101, 22, 0.35);
	box-shadow: 0 0 0 4px var(--oz-paper);
}

.oz-section--paper .wp-block-button.is-style-oz-arrow .wp-block-button__link {
	color: var(--oz-lime-deep);
}

.oz-section--paper .wp-block-button.is-style-outline .wp-block-button__link,
.oz-section--paper .wp-block-button.is-style-oz-ghost .wp-block-button__link {
	color: var(--oz-text);
	background: transparent;
}

.oz-section--paper .wp-block-button:not(.is-style-outline):not(.is-style-oz-ghost):not(.is-style-oz-arrow) .wp-block-button__link {
	background: var(--oz-ink);
	color: #fff;
	box-shadow: none;
}

.oz-section--paper a:where(:not(.wp-element-button)) {
	color: var(--oz-lime-deep);
}

.oz-section--paper .oz-status {
	color: var(--oz-text-2);
}

.oz-section--paper .oz-grid-bg::before,
.oz-section--paper.oz-grid-bg::before {
	background-image:
		linear-gradient(to right, rgba(11, 16, 13, 0.06) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(11, 16, 13, 0.06) 1px, transparent 1px);
}

/* 22 — Motion ------------------------------------------------------------ */
@keyframes oz-fade-up {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

.oz-js .oz-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.9s var(--oz-ease), transform 1.1s var(--oz-ease);
	transition-delay: var(--oz-delay, 0s);
}

.oz-js .oz-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* Hero title: word-by-word rise (words wrapped by ozari.js) */
.oz-js .oz-split .oz-w {
	display: inline-block;
	animation: oz-word 1s var(--oz-ease) both;
	animation-delay: calc(var(--i, 0) * 55ms + 120ms);
}

/* The hidden state exists only inside the keyframes, so text is never stuck invisible if animations do not run. */
@keyframes oz-word {
	from { opacity: 0; transform: translateY(0.35em); filter: blur(6px); }
	to { opacity: 1; transform: none; filter: none; }
}

/* Scroll-linked straighten for tilted screenshots */
@supports (animation-timeline: view()) {
	.is-style-oz-tilt img {
		animation: oz-untilt linear both;
		animation-timeline: view();
		animation-range: entry 10% cover 45%;
	}

	@keyframes oz-untilt {
		from { transform: rotateX(16deg) rotateY(-18deg) rotateZ(2deg) scale(0.94); }
		to { transform: rotateX(2deg) rotateY(-4deg) rotateZ(0deg) scale(1); }
	}

	.oz-parallax {
		animation: oz-parallax linear both;
		animation-timeline: view();
	}

	@keyframes oz-parallax {
		from { transform: translateY(40px); }
		to { transform: translateY(-40px); }
	}
}

/* Cross-document view transitions */
@view-transition {
	navigation: auto;
}

::view-transition-old(root) {
	animation: 0.25s var(--oz-ease) both oz-vt-out;
}

::view-transition-new(root) {
	animation: 0.45s var(--oz-ease) both oz-vt-in;
}

@keyframes oz-vt-out {
	to { opacity: 0; transform: translateY(-8px); }
}

@keyframes oz-vt-in {
	from { opacity: 0; transform: translateY(10px); }
}

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

	.oz-js .oz-reveal,
	.oz-js .oz-split .oz-w {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}

	.oz-marquee > ul,
	.oz-marquee__track {
		animation: none !important;
		flex-wrap: wrap !important;
		width: auto !important;
	}

	.oz-rotor,
	.oz-flow,
	.oz-tchip {
		animation: none !important;
	}

	@view-transition {
		navigation: none;
	}
}

@media (prefers-reduced-transparency: reduce) {
	.oz-header::before,
	.is-style-oz-glass,
	.oz-tchip {
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		background: var(--oz-ink-2);
	}
}

/* 23 — Utilities --------------------------------------------------------- */
.oz-center { text-align: center; }
.oz-mt-0 { margin-top: 0 !important; }
.oz-mb-0 { margin-bottom: 0 !important; }
.oz-maxw-s { max-width: 48ch; }
.oz-maxw-m { max-width: 62ch; }
.oz-nowrap { white-space: nowrap; }
.oz-hide-sm { }
@media (max-width: 781px) { .oz-hide-sm { display: none !important; } }
@media (min-width: 782px) { .oz-show-sm { display: none !important; } }

.oz-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link.screen-reader-text:focus {
	background: var(--oz-lime);
	color: var(--oz-ink);
	border-radius: 999px;
	padding: 0.7rem 1.2rem;
	z-index: 1000;
}

/* 404 */
.oz-404 {
	font-size: clamp(7rem, 4rem + 18vw, 18rem) !important;
	line-height: 0.85 !important;
	letter-spacing: -0.08em !important;
	font-weight: 600;
	background: linear-gradient(180deg, var(--oz-text) 20%, rgba(238, 243, 239, 0.05) 95%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
}

/* Pause looping animations while a visual is off-screen (set by ozari.js). */
.oz-visual.is-offscreen *,
.oz-visual.is-offscreen *::before,
.oz-visual.is-offscreen *::after {
	animation-play-state: paused !important;
}

/* Platform stack */
.oz-stack__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 230px;
	gap: 0.75rem;
}

.oz-stack__main {
	display: grid;
	gap: 0.6rem;
}

.oz-stack__layer {
	border: 1px solid var(--oz-line);
	border-radius: 16px;
	padding: 1rem 1.1rem 1.1rem;
	background: rgba(255, 255, 255, 0.02);
}

.oz-stack__layer--base {
	border-color: rgba(140, 198, 63, 0.4);
	background: linear-gradient(90deg, rgba(140, 198, 63, 0.09), rgba(255, 255, 255, 0.01));
	box-shadow: 0 0 60px -30px rgba(140, 198, 63, 0.6);
}

.oz-stack__title {
	display: block;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--oz-text-3);
	margin-bottom: 0.75rem;
}

.oz-stack__items {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.oz-mod {
	display: inline-grid;
	gap: 0.15rem;
	padding: 0.5rem 0.7rem;
	border-radius: 10px;
	border: 1px solid var(--oz-line-2);
	background: var(--oz-ink-3);
}

.oz-mod b {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--oz-text);
}

.oz-mod i {
	font-style: normal;
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}

.oz-mod--live { border-color: rgba(140, 198, 63, 0.55); }
.oz-mod--live i { color: var(--oz-lime); }
.oz-mod--dev i { color: var(--oz-amber); }
.oz-mod--beta { border-color: rgba(69, 208, 226, 0.4); }
.oz-mod--beta i { color: var(--oz-cyan); }

.oz-stack__side {
	border: 1px dashed rgba(69, 208, 226, 0.45);
	border-radius: 16px;
	padding: 1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	background: rgba(69, 208, 226, 0.045);
}

.oz-stack__side b {
	font-size: 1.15rem;
	color: var(--oz-text);
	letter-spacing: -0.01em;
}

.oz-stack__side > span:not(.oz-stack__title):not(.oz-status) {
	color: var(--oz-text-2);
	font-size: 0.875rem;
	line-height: 1.5;
}

.oz-stack__side .oz-status {
	margin-top: auto;
}

@media (max-width: 781px) {
	.oz-stack__grid { grid-template-columns: 1fr; }
}

/* Adoption path */
.oz-path__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1rem;
	position: relative;
}

.oz-path__steps::before {
	content: "";
	position: absolute;
	top: 9px;
	left: 9px;
	right: 9px;
	height: 1px;
	background: linear-gradient(90deg, var(--oz-lime), rgba(69, 208, 226, 0.5), rgba(255, 255, 255, 0.08));
}

.oz-path__steps::after {
	content: "";
	position: absolute;
	top: 5px;
	left: 0;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--oz-lime);
	box-shadow: 0 0 12px 2px rgba(140, 198, 63, 0.8);
	animation: oz-travel 7s var(--oz-ease-io) infinite;
}

@keyframes oz-travel {
	0% { left: 0; opacity: 0; }
	8% { opacity: 1; }
	92% { opacity: 1; }
	100% { left: calc(100% - 9px); opacity: 0; }
}

.oz-path__steps li {
	position: relative;
	display: grid;
	gap: 0.3rem;
	align-content: start;
}

.oz-path__dot {
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--oz-ink);
	border: 1px solid rgba(140, 198, 63, 0.5);
	box-shadow: 0 0 0 4px var(--oz-ink);
	position: relative;
	z-index: 1;
	margin-bottom: 0.6rem;
}

.oz-path__dot::after {
	content: "";
	position: absolute;
	inset: 5px;
	border-radius: 50%;
	background: var(--oz-lime);
	opacity: calc(1 - var(--i) * 0.14);
}

.oz-path__steps b {
	color: var(--oz-text);
	font-weight: 600;
	letter-spacing: -0.01em;
}

.oz-path__steps span:not(.oz-path__dot) {
	color: var(--oz-text-3);
	font-size: 0.875rem;
	line-height: 1.4;
}

@media (max-width: 900px) {
	.oz-path__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem; }
	.oz-path__steps::before, .oz-path__steps::after { display: none; }
}

@media (max-width: 520px) {
	.oz-path__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Signal lines */
.oz-signal {
	overflow: hidden;
	height: 140px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent);
}

.oz-signal svg {
	width: 200%;
	height: 100%;
	animation: oz-signal 14s linear infinite;
}

@keyframes oz-signal {
	to { transform: translateX(-50%); }
}

/* Charts: draw lines when revealed */
.oz-js .oz-visual.oz-reveal .oz-draw {
	stroke-dasharray: 2400;
	stroke-dashoffset: 2400;
}

.oz-js .oz-visual.oz-reveal.is-in .oz-draw {
	animation: oz-draw 2.4s var(--oz-ease) 0.2s forwards;
}

@keyframes oz-draw {
	to { stroke-dashoffset: 0; }
}

/* Visual in a card: keep charts legible */
.oz-card-visual {
	border-radius: 16px;
	border: 1px solid var(--oz-line);
	background: rgba(0, 0, 0, 0.2);
	padding: 0.75rem;
}

/* Proof strip (under the home hero) */
.oz-proofstrip {
	display: flex !important;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}

.oz-proofstrip > * {
	margin: 0 !important;
}

.oz-proofstrip strong {
	color: var(--oz-lime);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: -0.01em;
	margin-right: 0.35rem;
	text-transform: none;
}

.oz-proofstrip__link a {
	color: var(--oz-text);
}

/* Spacing utilities */
.oz-mt-s { margin-top: 1rem !important; }
.oz-mt-m { margin-top: 2rem !important; }
.oz-mt-l { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem) !important; }

/* Home hero sizing: three lines of headline at desktop, lead and buttons above the fold */
.oz-hero--home h1 {
	font-size: clamp(2.7rem, 0.9rem + 4.3vw, 5.4rem);
	line-height: 0.98;
	margin-top: 1.2rem;
}

.oz-hero--home .is-style-oz-lead {
	margin-top: 1.4rem;
	max-width: 48ch;
}

.oz-hero--home .wp-block-buttons {
	margin-top: 1.9rem;
}

@media (max-width: 781px) {
	.oz-hero--home {
		min-height: 0;
	}

	.oz-hero__visual {
		margin-top: 1rem;
	}
}

.oz-chips--lg li {
	font-size: 0.875rem;
	padding: 0.55rem 0.85rem;
	border-radius: 10px;
	color: var(--oz-text);
}

/* Footer wordmark: keep the dot as faint as the letters */
.oz-footer__mark .oz-logo__svg circle {
	fill: rgba(140, 198, 63, 0.14);
}

/* Page hero with a visual beside the headline */
.oz-hero--page .oz-hero__columns h1 {
	font-size: clamp(2.4rem, 1rem + 3.1vw, 4.1rem);
	max-width: 16ch;
}

.oz-footer__mark .oz-logo__svg circle {
	fill: rgba(140, 198, 63, 0.07);
}

.is-style-oz-tilt.alignwide img {
	width: 100%;
}

/* Mobile menu overlay: left aligned, generous targets */
.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start !important;
	text-align: left;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.6rem !important;
}

.oz-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.3rem 0 !important;
}

.oz-header .wp-block-navigation__responsive-container-close {
	top: 1.4rem;
	right: var(--oz-pad-x);
}

/* Wayfinder mark */
.oz-wf-mark {
	width: min(100%, 420px);
	aspect-ratio: 1;
	margin-inline: auto;
}

.oz-wf-mark svg {
	width: 100%;
	height: 100%;
	overflow: visible;
}

.oz-wf-mark__loop {
	transform-box: view-box;
	transform-origin: 60px 60px;
	animation: oz-spin 9s linear infinite;
}

.oz-wf-mark__star {
	transform-box: view-box;
	transform-origin: 60px 60px;
	animation: oz-glint 4.5s var(--oz-ease-io) infinite;
}

.oz-wf-mark__dot {
	filter: drop-shadow(0 0 6px rgba(140, 198, 63, 0.9));
	animation: oz-glow-pulse 3.2s var(--oz-ease-io) infinite;
}

@keyframes oz-glint {
	0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.85; }
	50% { transform: scale(1.08) rotate(45deg); opacity: 1; }
}

/* Inline brand lockup: mark + name, used in cards and chips */
.oz-wf-lockup {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

.oz-wf-lockup svg {
	width: 1.35em;
	height: 1.35em;
	flex: none;
}

/* Improvement loop */
.oz-loop svg {
	display: block;
	width: 100%;
	height: auto;
}

.oz-loop__runner {
	transform-box: view-box;
	transform-origin: 0 0;
	animation: oz-spin 12s linear infinite;
}

.oz-loop__num {
	font-family: var(--oz-mono);
	font-size: 17px;
	font-weight: 600;
}

.oz-loop__title {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.01em;
	fill: var(--oz-text);
}

.oz-loop__sub {
	font-family: var(--oz-mono);
	font-size: 11.5px;
	letter-spacing: 0.02em;
	fill: var(--oz-text-3);
}

.oz-loop__stage--dev .oz-loop__title {
	fill: var(--oz-text-2);
}

.oz-loop__gate-label {
	font-family: var(--oz-mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	fill: var(--oz-lime);
}

.oz-loop__eyebrow {
	font-family: var(--oz-mono);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	fill: var(--oz-text-3);
}

.oz-loop__gen {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 64px;
	font-weight: 600;
	letter-spacing: -0.04em;
	fill: var(--oz-text);
}

.oz-loop__gen.is-bump {
	animation: oz-gen-bump 0.9s var(--oz-ease);
}

@keyframes oz-gen-bump {
	0% { fill: var(--oz-lime); }
	100% { fill: var(--oz-text); }
}

.oz-loop__caption {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 13px;
	fill: var(--oz-text-3);
}

.oz-loop__legend text {
	font-family: var(--oz-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	fill: var(--oz-text-3);
}

/* Autonomy stages */
.oz-autonomy > * {
	position: relative;
}

.oz-autonomy > *::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	border-radius: 3px 3px 0 0;
	background: var(--oz-stage, var(--oz-line-2));
}

.oz-autonomy > *:nth-child(1) { --oz-stage: rgba(255, 255, 255, 0.18); }
.oz-autonomy > *:nth-child(2) { --oz-stage: rgba(69, 208, 226, 0.7); }
.oz-autonomy > *:nth-child(3) { --oz-stage: linear-gradient(90deg, rgba(69, 208, 226, 0.7), rgba(140, 198, 63, 0.7)); }
.oz-autonomy > *:nth-child(4) { --oz-stage: var(--oz-lime); }

/* Brand statement band ("Guides. Never steers.") */
.oz-band-statement {
	border-block: 1px solid var(--oz-line);
	background:
		radial-gradient(50% 120% at 50% 100%, rgba(140, 198, 63, 0.08), transparent 70%),
		var(--oz-ink);
}

.oz-statement {
	font-size: clamp(2.6rem, 1.2rem + 5.4vw, 6.2rem) !important;
	font-weight: 600;
	letter-spacing: -0.055em;
	line-height: 0.98 !important;
	color: var(--oz-text);
	margin: 0 !important;
	text-wrap: balance;
}

.oz-statement__lead {
	margin: 1.4rem auto 0 !important;
	max-width: 60ch;
}

/* Status words inside step lists */
.is-style-oz-steps mark,
.is-style-oz-check mark {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	margin-left: 0.25rem;
}

/* ozari+ wordmark */
.oz-plus-wordmark {
	width: min(100%, 460px);
	margin: 0 auto 1.6rem;
	color: var(--oz-text);
	line-height: 0;
}

.oz-plus-wordmark svg {
	display: block;
	width: 100%;
	height: auto;
}

.oz-plus-wordmark svg g[fill] {
	filter: drop-shadow(0 0 18px rgba(140, 198, 63, 0.45));
}

.oz-plus-mark .oz-wf-mark__star {
	animation: oz-plus-breathe 4.2s var(--oz-ease-io) infinite;
	filter: drop-shadow(0 0 8px rgba(140, 198, 63, 0.8));
}

@keyframes oz-plus-breathe {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.07); }
}

/* Keep the ozari+ name lowercase inside diagrams */
.oz-cpath__ai b {
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 0.8125rem;
}

/* ozari+ mark inside a bento card */
.oz-bento .oz-bento-mark {
	margin: 0.5rem auto 0 !important;
	width: min(62%, 220px);
}

.oz-bento .oz-bento-mark .oz-wf-mark {
	width: 100%;
}

/* How Ozari works: the operating loop ------------------------------------ */
.oz-oploop {
	display: grid;
	gap: 0.4rem;
	padding-block: clamp(1.4rem, 1rem + 1.5vw, 2.4rem);
}

.oz-oploop__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1rem;
	position: relative;
}

.oz-oploop__steps::before {
	content: "";
	position: absolute;
	top: 14px;
	left: 14px;
	right: 14px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, rgba(69, 208, 226, 0.55), rgba(69, 208, 226, 0.35) 45%, rgba(140, 198, 63, 0.85) 55%, rgba(69, 208, 226, 0.3) 70%, rgba(255, 255, 255, 0.12));
}

.oz-oploop__steps::after {
	content: "";
	position: absolute;
	top: 10px;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--oz-cyan);
	box-shadow: 0 0 14px 3px rgba(69, 208, 226, 0.7);
	animation: oz-travel 7.2s linear infinite;
}

.oz-oploop__step {
	position: relative;
	display: grid;
	gap: 0.3rem;
	align-content: start;
}

.oz-oploop__node {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--oz-ink-2);
	border: 1.5px solid rgba(69, 208, 226, 0.6);
	box-shadow: 0 0 0 5px var(--oz-ink-2);
	position: relative;
	z-index: 1;
	margin-bottom: 0.75rem;
	animation: oz-oploop-node 7.2s var(--oz-ease-io) infinite;
	animation-delay: calc(var(--i) * 1.2s);
}

.oz-oploop__node::after {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--oz-cyan);
}

@keyframes oz-oploop-node {
	0%, 18%, 100% { box-shadow: 0 0 0 5px var(--oz-ink-2); }
	6% { box-shadow: 0 0 0 5px var(--oz-ink-2), 0 0 24px 6px rgba(69, 208, 226, 0.55); }
}

.oz-oploop__n {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	color: var(--oz-text-3);
}

.oz-oploop__step b {
	color: var(--oz-text);
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.3rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.oz-oploop__step em {
	font-style: normal;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--oz-cyan);
}

.oz-oploop__step--understand em {
	text-transform: none;
	letter-spacing: 0.04em;
	font-size: 0.8125rem;
}

.oz-oploop__desc {
	color: var(--oz-text-3);
	font-size: 0.8125rem;
	line-height: 1.45;
}

/* The one step Ozari never automates away: people decide. */
.oz-oploop__step--decide .oz-oploop__node {
	width: 40px;
	height: 40px;
	margin-top: -5px;
	margin-bottom: 0.45rem;
	background: var(--oz-lime);
	border-color: var(--oz-lime);
	color: var(--oz-ink);
	animation-name: oz-oploop-node-lime;
}

.oz-oploop__step--decide .oz-oploop__node::after {
	display: none;
}

.oz-oploop__step--decide .oz-oploop__node svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	width: 20px;
	height: 20px;
}

.oz-oploop__step--decide .oz-oploop__node svg circle {
	fill: currentColor;
	stroke: none;
}

@keyframes oz-oploop-node-lime {
	0%, 18%, 100% { box-shadow: 0 0 0 5px var(--oz-ink-2), 0 0 18px 2px rgba(140, 198, 63, 0.45); }
	6% { box-shadow: 0 0 0 5px var(--oz-ink-2), 0 0 32px 10px rgba(140, 198, 63, 0.75); }
}

.oz-oploop__step--decide em {
	color: var(--oz-lime);
}

.oz-oploop__step--decide b::after {
	content: "Always people";
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0.15rem 0.45rem;
	border-radius: 6px;
	border: 1px solid rgba(140, 198, 63, 0.45);
	font-family: var(--oz-mono);
	font-size: 0.5625rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-lime);
	vertical-align: 0.3em;
}

/* Return path: from "Prove" back to "Understand". */
.oz-oploop__return {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 0.6rem;
}

.oz-oploop__return span {
	grid-column: 3 / 6;
	margin-left: 14px;
	margin-right: calc(-1rem - 14px);
	position: relative;
	height: 26px;
	border: 1.5px dashed rgba(140, 198, 63, 0.5);
	border-top: 0;
	border-radius: 0 0 16px 16px;
	display: flex;
	justify-content: center;
	align-items: flex-end;
}

.oz-oploop__return span::before {
	content: "";
	position: absolute;
	left: -6.5px;
	top: -9px;
	border: 5px solid transparent;
	border-bottom: 8px solid rgba(140, 198, 63, 0.85);
	border-top: 0;
}

.oz-oploop__return i {
	font-style: normal;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	color: var(--oz-lime);
	background: var(--oz-ink-2);
	padding: 0 0.75rem;
	line-height: 1.2;
	translate: 0 55%;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.oz-oploop__steps {
		grid-template-columns: 1fr;
		gap: 1.1rem;
	}

	.oz-oploop__steps::before {
		top: 14px;
		bottom: 14px;
		left: 14px;
		right: auto;
		width: 2px;
		height: auto;
		background: linear-gradient(180deg, rgba(69, 208, 226, 0.55), rgba(140, 198, 63, 0.85) 55%, rgba(255, 255, 255, 0.12));
	}

	.oz-oploop__steps::after {
		display: none;
	}

	.oz-oploop__step {
		grid-template-columns: 30px 1fr;
		column-gap: 1rem;
		row-gap: 0.2rem;
	}

	.oz-oploop__node {
		grid-row: 1 / span 4;
		margin-bottom: 0;
	}

	.oz-oploop__step--decide .oz-oploop__node {
		margin: -5px 0 0 -5px;
	}

	.oz-oploop__return {
		display: block;
		margin-top: 0.2rem;
	}

	.oz-oploop__return span {
		margin: 0;
		height: auto;
		border: 0;
		justify-content: flex-start;
		padding-left: 46px;
	}

	.oz-oploop__return span::before {
		display: none;
	}

	.oz-oploop__return i {
		translate: none;
		padding: 0;
		white-space: normal;
	}

	.oz-oploop__return i::before {
		content: "↺ ";
	}
}

/* Recommendation trace -------------------------------------------------- */
.oz-trace {
	border-radius: 20px;
	border: 1px solid rgba(69, 208, 226, 0.25);
	background: linear-gradient(180deg, rgba(69, 208, 226, 0.06), rgba(12, 17, 15, 0.92) 30%);
	padding: 1.25rem 1.25rem 1rem;
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.9), 0 0 60px -34px rgba(69, 208, 226, 0.45);
	font-size: 0.875rem;
	color: var(--oz-text-2);
	display: grid;
	gap: 1rem;
}

.oz-trace__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.oz-trace__tag,
.oz-trace__foot {
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}

.oz-trace__rows {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	position: relative;
}

.oz-trace__rows::before {
	content: "";
	position: absolute;
	top: 0.6rem;
	bottom: 0.6rem;
	left: calc(3.4rem + 5px);
	width: 1px;
	background: linear-gradient(180deg, rgba(69, 208, 226, 0.5), rgba(140, 198, 63, 0.5), rgba(69, 208, 226, 0.4));
}

.oz-trace__row {
	display: grid;
	grid-template-columns: 3.4rem 1fr;
	gap: 1.1rem;
	padding: 0.55rem 0;
	position: relative;
}

.oz-trace__row::before {
	content: "";
	position: absolute;
	left: 3.4rem;
	top: 0.95rem;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--oz-ink-2);
	border: 2px solid var(--oz-dot, var(--oz-text-3));
}

.oz-trace__row--ai { --oz-dot: var(--oz-cyan); }
.oz-trace__row--engine { --oz-dot: var(--oz-text-2); }
.oz-trace__row--person { --oz-dot: var(--oz-lime); }
.oz-trace__row--system { --oz-dot: var(--oz-text); }

.oz-trace__row--person::before {
	background: var(--oz-lime);
	box-shadow: 0 0 12px rgba(140, 198, 63, 0.7);
}

.oz-trace__time {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	padding-top: 0.2rem;
}

.oz-trace__body {
	display: grid;
	gap: 0.15rem;
	padding-left: 0.4rem;
}

.oz-trace__who {
	font-family: var(--oz-mono);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-dot);
}

.oz-trace__row--ai .oz-trace__who {
	text-transform: none;
	letter-spacing: 0.04em;
	font-size: 0.75rem;
}

.oz-trace__body b {
	color: var(--oz-text);
	font-weight: 600;
	font-size: 0.9375rem;
	letter-spacing: -0.01em;
}

.oz-trace__text {
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--oz-text-2);
}

.oz-trace__foot {
	border-top: 1px solid var(--oz-line);
	padding-top: 0.8rem;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 0.6875rem;
}

.oz-js .oz-reveal .oz-trace__row {
	opacity: 0;
}

.oz-js .oz-reveal.is-in .oz-trace__row {
	animation: oz-trace-in 0.55s var(--oz-ease) both;
	animation-delay: calc(var(--i) * 160ms + 250ms);
}

@keyframes oz-trace-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

@media (max-width: 520px) {
	.oz-trace {
		padding: 1rem 1rem 0.9rem;
	}

	.oz-trace__rows::before { left: calc(2.9rem + 5px); }
	.oz-trace__row { grid-template-columns: 2.9rem 1fr; gap: 0.9rem; }
	.oz-trace__row::before { left: 2.9rem; }
}

/* Coverage table: status chips inside cells ------------------------------ */
.oz-coverage td {
	vertical-align: top;
	min-width: 8.5rem;
}

.oz-coverage td:first-child {
	min-width: 10rem;
	white-space: normal;
}

.oz-coverage th:nth-child(4) {
	text-transform: none;
	letter-spacing: 0.04em;
}

.oz-coverage td em {
	display: block;
	font-style: normal;
	margin-top: 0.3rem;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--oz-text-3);
}

/* Coverage and comparison tables become stacked cards on small screens. */
@media (max-width: 781px) {
	:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) :is(table, tbody, tr, td) {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) thead {
		display: none;
	}

	:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) tr {
		padding: 1rem 1.1rem 0.8rem;
		border-bottom: 1px solid var(--oz-line);
	}

	:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) tbody tr:last-child {
		border-bottom: 0;
	}

	.is-style-oz-spec:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) table :where(th, td) {
		border: 0;
		padding: 0.35rem 0;
		min-width: 0;
	}

	:is(.oz-coverage, .oz-compare, .oz-standards, .oz-ifthen) td:first-child {
		font-size: 1rem;
		white-space: normal;
		padding-bottom: 0.55rem;
	}

	:is(.oz-coverage, .oz-compare, .oz-standards) td:not(:first-child) {
		display: grid;
		grid-template-columns: 6.8rem minmax(0, 1fr);
		column-gap: 0.8rem;
		align-items: baseline;
	}

	:is(.oz-coverage, .oz-compare, .oz-standards) td:not(:first-child)::before {
		grid-row: span 2;
		font-family: var(--oz-mono);
		font-size: 0.625rem;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--oz-text-3);
	}

	.oz-coverage td:nth-child(2)::before { content: "Monitoring"; }
	.oz-coverage td:nth-child(3)::before { content: "Control"; }
	.oz-coverage td:nth-child(4)::before { content: "ozari+"; text-transform: none; letter-spacing: 0.04em; font-size: 0.75rem; }
	.oz-coverage td:nth-child(5)::before { content: "Engineering"; }
	.oz-compare td:nth-child(2)::before { content: "Often today"; }
	.oz-compare td:nth-child(3)::before { content: "With Ozari"; color: var(--oz-lime); }
	.oz-standards td:nth-child(2)::before { content: "Status"; }
	.oz-standards td:nth-child(3)::before { content: "Why it matters"; }

	.oz-ifthen td:nth-child(2) {
		padding-top: 0 !important;
	}

	.oz-coverage td em {
		grid-column: 2;
		margin-top: 0.1rem;
	}

	.oz-compare td:nth-child(2) {
		width: 100%;
	}
}

/* Comparison table: the Ozari column carries the emphasis. */
.oz-compare td:nth-child(2) {
	color: var(--oz-text-3);
}

.oz-compare td:nth-child(3) {
	color: var(--oz-text);
}

.oz-compare th:nth-child(3) {
	color: var(--oz-lime);
}

@media (min-width: 782px) {
	.oz-compare td:nth-child(2) { width: 36%; }
}

/* Standards table: the "why it matters" column is secondary. */
.oz-standards td:nth-child(3) {
	color: var(--oz-text-3);
}

.oz-standards td:nth-child(2) mark {
	display: block;
	width: fit-content;
	margin: 0 0 0.3rem;
}

/* Captions inside spec tables read as a footer row. */
.is-style-oz-spec > figcaption {
	margin: 0;
	padding: 0.85rem 1.25rem;
	border-top: 1px solid var(--oz-line);
	text-align: left;
}

@media (min-width: 782px) {
	.oz-standards td:nth-child(2) { width: 42%; }
	.oz-ifthen td:first-child { width: 32%; white-space: normal; }
}

/* Evidence log ----------------------------------------------------------- */
.oz-evfilter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 auto 1.4rem;
}

.oz-evfilter button {
	font: inherit;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--oz-text-2);
	background: transparent;
	border: 1px solid var(--oz-line-2);
	border-radius: 999px;
	padding: 0.45rem 0.9rem;
	cursor: pointer;
	transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}

.oz-evfilter button:hover {
	color: var(--oz-text);
	border-color: rgba(255, 255, 255, 0.3);
}

.oz-evfilter button[aria-pressed="true"] {
	color: var(--oz-ink);
	background: var(--oz-lime);
	border-color: var(--oz-lime);
}

.oz-evfilter button span {
	opacity: 0.6;
	margin-left: 0.35rem;
}

.oz-evlog > .oz-evrec {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.25rem 1.3rem 1.1rem;
	border-radius: var(--oz-r-l);
	border: 1px solid var(--oz-line);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01)), var(--oz-ink-2);
	transition: border-color 0.3s var(--oz-ease), transform 0.4s var(--oz-ease);
}

.oz-evlog > .oz-evrec:hover {
	border-color: rgba(140, 198, 63, 0.35);
	transform: translateY(-2px);
}

.oz-evlog > .oz-evrec.is-hidden {
	display: none;
}

.oz-evrec > * {
	margin: 0 !important;
}

.oz-evrec__id {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}

.oz-evrec__id mark {
	margin-left: 0.3rem;
}

.oz-evrec__value {
	font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.6rem);
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--oz-text);
}

.oz-evrec h3 {
	font-size: 1rem !important;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.oz-evrec__method {
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--oz-text-2);
	flex: 1;
}

.oz-evrec__src {
	border-top: 1px solid var(--oz-line);
	padding-top: 0.7rem;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	color: var(--oz-text-3);
}

/* Free checklist: red flags, question counts and the resource band ------- */
.oz-flags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.6rem;
}

.oz-flags li {
	position: relative;
	padding: 0.85rem 1rem 0.85rem 2.9rem;
	border-radius: 12px;
	border: 1px solid rgba(255, 99, 99, 0.22);
	background: rgba(255, 99, 99, 0.05);
	color: var(--oz-text);
	font-size: 0.9688rem;
	line-height: 1.45;
}

.oz-flags li::before {
	content: "!";
	position: absolute;
	left: 1rem;
	top: 0.95rem;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--oz-red);
	color: var(--oz-ink);
	font-weight: 700;
	font-size: 0.75rem;
	display: grid;
	place-items: center;
}

.oz-checklist__count {
	margin-top: auto !important;
	padding-top: 0.9rem;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}

.oz-section--flush-bottom {
	padding-bottom: 0 !important;
}

.oz-resource-band {
	gap: 1.25rem 2rem;
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem) clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
	border-radius: var(--oz-r-xl);
	border: 1px solid rgba(140, 198, 63, 0.3);
	background:
		radial-gradient(60% 140% at 100% 50%, rgba(140, 198, 63, 0.12), transparent 70%),
		var(--oz-ink-2);
}

.oz-resource-band > .wp-block-group > * {
	margin: 0 !important;
}

.oz-resource-band > .wp-block-group > * + * {
	margin-top: 0.5rem !important;
}

.oz-resource-band__title {
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem) !important;
	letter-spacing: -0.03em;
}

.oz-resource-band p:not(.oz-status) {
	color: var(--oz-text-2);
}

/* Console tour ------------------------------------------------------------ */
.oz-tour {
	display: grid;
	gap: 1rem;
}

.oz-tour__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2.25rem;
}

.oz-tour__shot {
	margin: 0;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--oz-line-2);
	background: var(--oz-ink-2);
}

.oz-tour__canvas {
	position: relative;
	transform-origin: var(--ox, 50%) var(--oy, 50%);
	transition: transform 1.4s var(--oz-ease);
}

.oz-tour__canvas img {
	display: block;
	width: 100%;
	height: auto;
}

/* The spotlight: a lime frame, with the rest of the screen dimmed. */
.oz-tour__spot {
	position: absolute;
	left: var(--x);
	top: var(--y);
	width: var(--w);
	height: var(--h);
	border-radius: 10px;
	border: 2px solid var(--oz-lime);
	box-shadow: 0 0 0 200vmax rgba(4, 7, 6, 0.52), 0 0 32px rgba(140, 198, 63, 0.5);
	pointer-events: none;
}

.oz-tour__tip {
	position: absolute;
	left: -2px;
	bottom: calc(100% + 8px);
	padding: 0.3rem 0.6rem;
	border-radius: 6px;
	background: var(--oz-lime);
	color: var(--oz-ink);
	font-family: var(--oz-mono);
	font-size: clamp(0.5625rem, 0.45rem + 0.3vw, 0.75rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.oz-tour__spot.is-low .oz-tour__tip {
	bottom: auto;
	top: calc(100% + 8px);
}

.oz-tour__copy {
	margin-top: 0.9rem;
	display: grid;
	gap: 0.25rem;
}

.oz-tour__n {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	color: var(--oz-lime);
}

.oz-tour__title {
	margin: 0 !important;
	font-size: 1.125rem !important;
	font-weight: 600;
	letter-spacing: -0.015em;
}

.oz-tour__copy p {
	margin: 0 !important;
	color: var(--oz-text-2);
	font-size: 0.9375rem;
	line-height: 1.55;
}

.oz-tour__note {
	margin: 0 !important;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
	color: var(--oz-text-3);
}

/* Interactive mode, switched on by ozari.js. */
.oz-tour.is-ready {
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem);
	grid-template-areas: "stage rail" "nav rail" "note rail";
	column-gap: clamp(1rem, 0.5rem + 1.5vw, 2rem);
	row-gap: 0.9rem;
	align-items: start;
}

.oz-tour.is-ready .oz-tour__stage { grid-area: stage; }
.oz-tour.is-ready .oz-tour__list { grid-area: rail; gap: 0.35rem; }
.oz-tour.is-ready .oz-tour__nav { grid-area: nav; }
.oz-tour.is-ready .oz-tour__note { grid-area: note; }

.oz-tour__frame {
	border-radius: 18px;
	border: 1px solid var(--oz-line-2);
	background: var(--oz-ink-2);
	overflow: hidden;
	box-shadow: 0 50px 100px -50px rgba(0, 0, 0, 0.9), 0 0 80px -40px rgba(140, 198, 63, 0.35);
}

.oz-tour__bar {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.6rem 0.9rem;
	border-bottom: 1px solid var(--oz-line);
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	color: var(--oz-text-3);
}

.oz-tour__bar i {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
}

.oz-tour__bar span {
	margin-left: 0.5rem;
}

.oz-tour__screens {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.oz-tour.is-ready .oz-tour__screens .oz-tour__shot {
	position: absolute;
	inset: 0;
	border: 0;
	border-radius: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.6s var(--oz-ease), visibility 0s linear 0.6s;
}

.oz-tour.is-ready .oz-tour__screens .oz-tour__shot.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.6s var(--oz-ease), visibility 0s;
}

.oz-tour.is-ready .oz-tour__spot {
	opacity: 0;
	transform: scale(1.04);
	transition: opacity 0.5s var(--oz-ease) 0.35s, transform 0.6s var(--oz-ease) 0.35s;
}

.oz-tour.is-ready .oz-tour__shot.is-active .oz-tour__spot {
	opacity: 1;
	transform: none;
}

.oz-tour.is-ready .oz-tour__shot.is-active .oz-tour__canvas {
	transform: scale(1.05);
}

.oz-tour.is-ready .oz-tour__item {
	border-radius: 14px;
	border: 1px solid transparent;
	transition: background-color 0.25s, border-color 0.25s;
}

.oz-tour.is-ready .oz-tour__item.is-active {
	border-color: rgba(140, 198, 63, 0.4);
	background: rgba(140, 198, 63, 0.06);
}

.oz-tour.is-ready .oz-tour__copy {
	margin: 0;
	padding: 0.7rem 0.9rem;
}

.oz-tour__go {
	all: unset;
	cursor: pointer;
	display: grid;
	grid-template-columns: 2rem 1fr;
	align-items: baseline;
	gap: 0.2rem;
	color: var(--oz-text-2);
}

.oz-tour__go:focus-visible {
	outline: 2px solid var(--oz-lime);
	outline-offset: 4px;
	border-radius: 4px;
}

.oz-tour.is-ready .oz-tour__item.is-active .oz-tour__go,
.oz-tour__go:hover {
	color: var(--oz-text);
}

.oz-tour.is-ready .oz-tour__title {
	font-size: 1rem !important;
	color: inherit;
}

.oz-tour.is-ready .oz-tour__copy p {
	display: none;
	padding-left: 2.2rem;
	font-size: 0.875rem;
	margin-top: 0.35rem !important;
}

.oz-tour.is-ready .oz-tour__item.is-active .oz-tour__copy p {
	display: block;
	animation: oz-fade-up 0.5s var(--oz-ease) both;
}

.oz-tour__nav {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.oz-tour__btn {
	font: inherit;
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	border-radius: 999px;
	padding: 0.55rem 1.1rem;
	border: 1px solid var(--oz-line-2);
	background: transparent;
	color: var(--oz-text);
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.oz-tour__btn:hover {
	border-color: rgba(255, 255, 255, 0.35);
}

.oz-tour__btn.is-primary {
	background: var(--oz-lime);
	border-color: var(--oz-lime);
	color: var(--oz-ink);
}

.oz-tour__btn:focus-visible {
	outline: 2px solid var(--oz-lime);
	outline-offset: 3px;
}

.oz-tour__track {
	flex: 1;
	height: 3px;
	border-radius: 3px;
	background: rgba(255, 255, 255, 0.08);
	overflow: hidden;
}

.oz-tour__track i {
	display: block;
	height: 100%;
	width: var(--p, 0%);
	background: linear-gradient(90deg, var(--oz-cyan), var(--oz-lime));
	transition: width 0.5s var(--oz-ease);
}

.oz-tour__count {
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-3);
	min-width: 3.2rem;
	text-align: center;
}

@media (max-width: 960px) {
	.oz-tour.is-ready {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "stage" "nav" "rail" "note";
	}

	.oz-tour.is-ready .oz-tour__item:not(.is-active) {
		display: none;
	}

	.oz-tour.is-ready .oz-tour__copy p {
		padding-left: 0;
	}

	.oz-tour__tip {
		display: none;
	}
}


/* =========================================================================
   1.4 design: the logo's typeface for every heading, the drawing-board
   colour scheme (ink, white line work, lime, red pen) and a calmer layout.
   ========================================================================= */
:root {
	--oz-display: var(--wp--preset--font-family--display, "Helvetica Neue", Helvetica, Arial, sans-serif);
	--oz-hand: var(--wp--preset--font-family--hand, cursive);
	--oz-pen: #FF7A59;
	--oz-section-y: clamp(4.5rem, 3rem + 5vw, 8.5rem);
}

/* Headings: Helvetica, as in the ozari logo. */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.wp-block-post-title,
.oz-statement,
.oz-stat__value,
.oz-evrec__value,
.oz-tour__title,
.oz-trace__body b,
.oz-oploop__step b,
.oz-proof .oz-stat__value {
	font-family: var(--oz-display);
	font-weight: 700;
}

h1, .wp-block-heading:is(h1) { letter-spacing: -0.04em; }
h2, .wp-block-heading:is(h2) { letter-spacing: -0.035em; }
h3, h4 { letter-spacing: -0.02em; }
h5, h6 { letter-spacing: -0.01em; }

/* Calmer layout: no glows, no blur, no pulsing, quieter labels. */
.oz-aurora::after,
.oz-aurora--low::after {
	content: none;
}

.oz-status::before {
	animation: none;
}

.is-style-oz-eyebrow::before,
.oz-eyebrow::before {
	content: none;
}

.is-style-oz-eyebrow,
.oz-eyebrow {
	color: var(--oz-text-3);
	letter-spacing: 0.08em;
}

.is-style-oz-glass {
	background: var(--oz-ink-2);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	border: 1px solid var(--oz-line-2);
}

.is-style-oz-glass::after {
	content: none;
}

/* A dark panel band replaces the old light "paper" sections. */
.oz-section--panel {
	background: var(--oz-ink-2);
	border-block: 1px solid var(--oz-line);
}

/* Hero headline: the second sentence in lime, like the dot in the logo. */
.oz-hero h1 .oz-accent {
	color: var(--oz-lime);
}

/* Living grid (NEM map) ---------------------------------------------------- */
.oz-nem { position: relative; }
.oz-nem__stage { position: relative; }
.oz-nem__canvas { display: block; width: 100%; }
.oz-nem__still { display: block; width: 100%; height: auto; }
.oz-nem.is-live .oz-nem__still { display: none; }
.oz-nem:not(.is-live) :is(.oz-nem__canvas, .oz-nem__hud, .oz-nem__controls) { display: none; }
.oz-nem__hud {
	position: absolute;
	inset: 0 0 auto 0;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	pointer-events: none;
}
.oz-nem__clock {
	font-family: var(--oz-display);
	font-weight: 700;
	font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.8rem);
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--oz-text);
}
.oz-nem__clock small {
	margin-left: 0.5rem;
	font-family: var(--oz-mono);
	font-weight: 400;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: var(--oz-text-3);
}
.oz-nem__legend {
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	line-height: 1.8;
	text-align: right;
	color: var(--oz-text-3);
}
.oz-nem__legend .up { color: var(--oz-lime); }
.oz-nem__legend .down { color: var(--oz-cyan); }
.oz-nem__controls {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0.9rem;
	margin-top: 0.6rem;
}
.oz-nem__play {
	font: inherit;
	font-family: var(--oz-mono);
	font-size: 0.75rem;
	color: var(--oz-text-2);
	background: transparent;
	border: 1px solid var(--oz-line-2);
	border-radius: 999px;
	padding: 0.4rem 0.85rem;
	cursor: pointer;
}
.oz-nem__play:hover { color: var(--oz-text); border-color: rgba(255, 255, 255, 0.35); }
.oz-nem__play:focus-visible, .oz-nem__controls input:focus-visible { outline: 2px solid var(--oz-lime); outline-offset: 3px; }
.oz-nem__controls input { width: 100%; accent-color: var(--oz-lime); }
.oz-nem__note {
	margin: 0.5rem 0 0 !important;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	color: var(--oz-text-3);
}

/* Scroll story: a day on feeder F3 ------------------------------------------ */
.oz-story {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 1rem + 3vw, 4rem);
}
.oz-story__steps { list-style: none; margin: 0; padding: 12vh 0 24vh; }
.oz-story__step {
	min-height: 62vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	transition: opacity 0.5s var(--oz-ease);
}
.oz-js .oz-story__step { opacity: 0.3; }
.oz-js .oz-story__step.is-on { opacity: 1; }
.oz-story__step time {
	font-family: var(--oz-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	color: var(--oz-text-3);
}
.oz-story__step h3 {
	margin: 0.4rem 0 0.7rem !important;
	font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem) !important;
}
.oz-story__step p {
	margin: 0 !important;
	max-width: 40ch;
	font-size: 1.0625rem;
	color: var(--oz-text-2);
}
.oz-story__who {
	width: fit-content;
	margin-top: 0.8rem;
	padding: 0.25rem 0.55rem;
	border: 1px solid var(--oz-line-2);
	border-radius: 6px;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--oz-text-2);
}
.oz-story__rail { position: relative; }
.oz-story__panel {
	position: sticky;
	top: 96px;
	padding: 1.3rem 1.4rem 1rem;
	border: 1px solid var(--oz-line-2);
	border-radius: 20px;
	background: var(--oz-ink-2);
}
.oz-story__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.oz-story__feeder {
	display: block;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--oz-text-3);
}
.oz-story__clock {
	display: block;
	font-family: var(--oz-display);
	font-weight: 700;
	font-size: clamp(2.4rem, 1.8rem + 1.6vw, 3.4rem);
	letter-spacing: -0.035em;
	line-height: 1;
	color: var(--oz-text);
}
.oz-story__flow { text-align: right; font-family: var(--oz-mono); font-size: 0.8125rem; color: var(--oz-cyan); }
.oz-story__flow b { display: block; font-size: 1.4rem; font-weight: 500; color: var(--oz-text); }
.oz-story__chart, .oz-story__feed { display: block; width: 100%; height: auto; margin-top: 0.6rem; }
.oz-story__chart text, .oz-story__feed text { font-family: var(--oz-mono); font-size: 11px; fill: var(--oz-text-3); }
.oz-story__zero { stroke: rgba(255, 255, 255, 0.18); }
.oz-story__limit { stroke: var(--oz-red); stroke-width: 1.4; stroke-dasharray: 6 5; }
.oz-story__chart .oz-story__limit-label { fill: var(--oz-red); }
.oz-story__band { fill: rgba(140, 198, 63, 0.1); opacity: 0; transition: opacity 0.4s; }
.oz-story__fc { fill: none; stroke: var(--oz-cyan); stroke-width: 2; stroke-dasharray: 5 5; opacity: 0; transition: opacity 0.4s; }
.oz-story__breach { fill: rgba(255, 99, 99, 0.25); opacity: 0; transition: opacity 0.4s; }
.oz-story__act { fill: none; stroke: var(--oz-lime); stroke-width: 2.6; }
.oz-story__cur { stroke: rgba(255, 255, 255, 0.45); }
.oz-story__dot { fill: var(--oz-lime); }
.oz-story.is-live .is-shown { opacity: 1; }
.oz-story__sub circle { fill: none; stroke: var(--oz-text); stroke-width: 2; }
.oz-story__wire { stroke: var(--oz-cyan); stroke-width: 3; stroke-dasharray: 2 12; stroke-linecap: round; }
.oz-story__home path:first-child { fill: var(--oz-ink-3); stroke: var(--oz-text-2); stroke-width: 1.4; }
.oz-story__pv { fill: none; stroke: var(--oz-amber); stroke-width: 3; }
.oz-story__events {
	list-style: none;
	margin: 0.6rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}
.oz-story__events li {
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--oz-line);
	border-radius: 10px;
	font-size: 0.8125rem;
	line-height: 1.35;
	color: var(--oz-text-3);
	transition: color 0.4s, border-color 0.4s, background-color 0.4s;
}
.oz-story__events li b {
	display: block;
	margin-bottom: 2px;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.oz-story__events li.is-on { color: var(--oz-text); border-color: rgba(140, 198, 63, 0.4); background: rgba(140, 198, 63, 0.07); }
.oz-story__events li.is-on.is-ai b { color: var(--oz-cyan); }
.oz-story__events li.is-on.is-person b { color: var(--oz-lime); }
.oz-story__events li.is-on.is-sys b { color: var(--oz-text-2); }
.oz-story__foot { margin: 0.7rem 0 0 !important; font-family: var(--oz-mono); font-size: 0.6875rem; color: var(--oz-text-3); }

@media (max-width: 900px) {
	.oz-story { grid-template-columns: minmax(0, 1fr); }
	.oz-story__rail { order: -1; position: sticky; top: calc(var(--oz-header-h) + 8px); z-index: 2; }
	.oz-story__panel { position: static; padding: 0.9rem 1rem 0.7rem; box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.8); }
	.oz-story :is(.oz-story__feed, .oz-story__events, .oz-story__foot) { display: none; }
	.oz-story__steps { padding: 4vh 0 30vh; }
	.oz-story__step { min-height: 70vh; justify-content: flex-end; padding-bottom: 12vh; }
	/* The first step sits right under the chart, so the story never opens on an empty screen. */
	.oz-story__step:first-child { min-height: 36vh; }
}

/* Marked-up console ---------------------------------------------------------- */
.oz-markup__sheet { display: block; width: 100%; height: auto; overflow: visible; }
.oz-markup__frame { fill: var(--oz-ink-2); stroke: var(--oz-line-2); stroke-width: 3; }
.oz-markup__pen path {
	fill: none;
	stroke: var(--oz-pen);
	stroke-width: 7;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.oz-markup__notes text {
	font-family: var(--oz-hand);
	font-weight: 600;
	font-size: 74px;
	fill: var(--oz-pen);
}
.oz-js .oz-reveal .oz-markup__pen path {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 1.2s var(--oz-ease-io);
}
.oz-js .oz-reveal .oz-markup__pen path:nth-child(2n) { transition-delay: 0.9s; }
.oz-js .oz-reveal .oz-markup__pen path:nth-child(3), .oz-js .oz-reveal .oz-markup__pen path:nth-child(4) { transition-delay: 0.4s; }
.oz-js .oz-reveal.is-in .oz-markup__pen path { stroke-dashoffset: 0; }
.oz-js .oz-reveal .oz-markup__notes { opacity: 0; transition: opacity 0.6s 1.1s; }
.oz-js .oz-reveal.is-in .oz-markup__notes { opacity: 1; }

/* Busbar layout: cards hang off a bus like feeders ------------------------------ */
.oz-bus {
	position: relative;
	margin-top: 2.2rem !important;
	row-gap: 2.5rem !important;
}
.oz-bus::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 5px;
	border-radius: 3px;
	background: var(--oz-text);
}
.oz-bus::after {
	position: absolute;
	left: 0;
	top: -1.7rem;
	font-family: var(--oz-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	color: var(--oz-text-3);
}
.oz-bus--platform::after { content: "OZARI · PLATFORM BUS"; }
.oz-bus--principles::after { content: "OZARI · PRINCIPLES BUS"; }
.oz-feeder { display: flex; flex-direction: column; }
.oz-feeder > .oz-visual { margin: 0 auto !important; width: 90px; }
.oz-js .oz-feeder > .oz-visual.oz-reveal { opacity: 1 !important; transform: none !important; }
.oz-feeder > :is(.is-style-oz-card, .is-style-oz-glass, .is-style-oz-outline) { flex: 1; margin-top: 0 !important; }
.oz-sym { display: block; width: 90px; height: 120px; overflow: visible; }
.oz-sym :is(line, path, circle, rect) { fill: none; stroke: var(--oz-text); stroke-width: 2.2; stroke-linecap: round; }
.oz-sym .lime { stroke: var(--oz-lime); }
.oz-sym :is(.dot, .solid) { fill: var(--oz-lime); stroke: var(--oz-lime); }
.oz-sym .dash { stroke: var(--oz-text-3); stroke-dasharray: 3 4; }
.oz-sym text { font-family: var(--oz-mono); font-size: 10px; letter-spacing: 0.06em; fill: var(--oz-text-3); stroke: none; }
.oz-sym .lime-t { fill: var(--oz-lime); font-size: 12px; font-weight: 600; }
.oz-js .oz-reveal .oz-sym .ink { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1s var(--oz-ease-io) 0.15s; }
.oz-js .oz-reveal.is-in .oz-sym .ink { stroke-dashoffset: 0; }

@media (max-width: 781px) {
	.oz-bus::before, .oz-bus::after { display: none; }
	.oz-bus { margin-top: 0 !important; }
	.oz-feeder > .oz-visual { width: 70px; }
	.oz-sym { width: 70px; height: 94px; }
}
/* Without JavaScript the story chart shows the whole day, forecast included. */
html:not(.oz-js) .oz-story__band,
html:not(.oz-js) .oz-story__fc,
html:not(.oz-js) .oz-story__breach { opacity: 1; }
html:not(.oz-js) :is(.oz-story__cur, .oz-story__dot) { display: none; }
