/*
Theme Name: Overdrive
Theme URI: https://thebighead.ca/free-themes/overdrive
Author: The Big Head
Author URI: https://thebighead.ca/
Description: 1986's idea of the future, selling today's product. A retro-futurist theme for startups, SaaS, apps, agencies, launches, events and podcasts: a CSS-only outrun hero (striped sun, wireframe mountains, an endless grid floor, chrome headline), neon glass cards, a pricing table, testimonials, an FAQ with schema.org data, a newsletter form and a built-in contact form — all driven from the Customizer with four colour presets. No page builder, no remote fonts, no external requests.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: overdrive
Update URI: false
Tags: blog, one-column, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, sticky-post, threaded-comments, block-patterns, block-styles, wide-blocks, editor-style, translation-ready

Overdrive is free software distributed under the terms of the GNU GPL.
*/

/* ==========================================================================
   Fonts. Bundled in assets/fonts (all SIL OFL 1.1) — nothing is fetched from
   another server.
   ========================================================================== */

@font-face {
	font-family: "Jost";
	src: url("/free-themes/preview/overdrive/theme/assets/fonts/jost-variable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Jost";
	src: url("/free-themes/preview/overdrive/theme/assets/fonts/jost-italic-variable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Manrope";
	src: url("/free-themes/preview/overdrive/theme/assets/fonts/manrope-variable.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Fira Code";
	src: url("/free-themes/preview/overdrive/theme/assets/fonts/firacode-variable.woff2") format("woff2");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
}

/* ==========================================================================
   Tokens. Every colour below reads from the eleven at the top; the Customizer
   rewrites those in one inline block (functions.php). A light preset also
   rewrites the "mode" tokens there — on :root, because a custom property that
   refers to another is resolved where it is declared.
   ========================================================================== */

@property --od-angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

:root {
	--od-sky1: #0B0221;
	--od-sky2: #1B0B3B;
	--od-sky3: #3D0E5C;
	--od-sun1: #FFD319;
	--od-sun2: #FF901F;
	--od-sun3: #FF2975;
	--od-sun4: #F222FF;
	--od-accent: #FF2975;
	--od-accent2: #00E5FF;
	--od-text: #F6F1FF;
	--od-muted: #B7A9D6;

	/* Mode tokens — these are the dark values. */
	--od-ink: var(--od-sky1);
	--od-hi: #ffffff;
	--od-star: #ffffff;
	--od-glass: rgba(255, 255, 255, .04);
	--od-glass-2: rgba(255, 255, 255, .075);
	--od-floor-1: color-mix(in srgb, var(--od-sky3) 55%, #000);
	--od-floor-2: var(--od-sky1);
	--od-mtn-back: color-mix(in srgb, var(--od-sky3) 72%, var(--od-sky1));
	--od-mtn-front: color-mix(in srgb, var(--od-sky1) 88%, var(--od-sky3));
	--od-glow-1: color-mix(in srgb, var(--od-accent) 55%, transparent);
	--od-glow-2: color-mix(in srgb, var(--od-accent2) 42%, transparent);
	--od-shadow: 0 30px 70px -34px #000;
	--od-foot-bg: color-mix(in srgb, var(--od-sky1) 55%, #000);
	--od-foot-text: var(--od-text);
	--od-foot-muted: var(--od-muted);
	--od-foot-accent: var(--od-accent);
	--od-foot-accent2: var(--od-accent2);

	/* Derived. */
	--od-bg: var(--od-sky1);
	--od-line: color-mix(in srgb, var(--od-text) 13%, transparent);
	--od-line-2: color-mix(in srgb, var(--od-text) 26%, transparent);
	--od-field: color-mix(in srgb, var(--od-text) 6%, transparent);
	--od-neon: linear-gradient(135deg, var(--od-accent), var(--od-accent2));
	--od-heat: linear-gradient(90deg, var(--od-sun3), var(--od-sun2));
	--od-sun: linear-gradient(180deg, var(--od-sun1) 0%, var(--od-sun2) 30%, var(--od-sun3) 62%, var(--od-sun4) 100%);
	--od-chrome: linear-gradient(180deg,
		var(--od-hi) 0%,
		color-mix(in srgb, var(--od-accent2) 35%, var(--od-hi)) 18%,
		var(--od-accent2) 36%,
		var(--od-sun4) 50%,
		var(--od-sky1) 50%,
		var(--od-sky1) 53.5%,
		var(--od-accent) 53.5%,
		color-mix(in srgb, var(--od-accent) 45%, var(--od-hi)) 74%,
		var(--od-hi) 97%);
	--od-stripes: linear-gradient(to bottom, #000 0 34%, transparent 34% 35.2%, #000 35.2% 41%, transparent 41% 42.8%, #000 42.8% 48%, transparent 48% 50.4%, #000 50.4% 55%, transparent 55% 58%, #000 58% 62%, transparent 62% 65.6%, #000 65.6% 69%, transparent 69% 73.2%, #000 73.2% 76%, transparent 76% 100%);

	--od-font-display: "Jost", "Futura", "Century Gothic", "Trebuchet MS", sans-serif;
	--od-font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--od-font-mono: "Fira Code", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

	--od-wrap: 1200px;
	--od-narrow: 720px;
	--od-pad: clamp(20px, 4vw, 40px);
	--od-header-h: 76px;
	--od-radius: 18px;
	--od-grid-speed: 1.5s;
	--od-floor-h: clamp(210px, 31vh, 330px);
	--od-cell: clamp(52px, 6.2vw, 84px);
	--od-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   Foundation
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--od-header-h) + 24px);
}
html.od-menu-open { overflow: hidden; }

body {
	margin: 0;
	background: var(--od-bg);
	color: var(--od-text);
	font-family: var(--od-font-body);
	font-size: 17px;
	line-height: 1.7;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

::selection { background: var(--od-accent); color: #fff; }

img, svg, video, canvas, iframe, embed, object { max-width: 100%; }
img, video { height: auto; }
img { border-style: none; vertical-align: middle; }
figure { margin: 0; }

a { color: var(--od-accent2); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .2s; }
a:hover { color: var(--od-accent); }

:focus-visible {
	outline: 2px solid var(--od-accent2);
	outline-offset: 3px;
	border-radius: 4px;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	font-family: var(--od-font-display);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.005em;
	text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.4rem); }
h3 { font-size: clamp(1.3rem, 2.2vw, 1.55rem); }
h4 { font-size: 1.18rem; }
h5, h6 {
	font-family: var(--od-font-mono);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--od-accent2);
}

p { margin: 0 0 1.35em; }
ul, ol { margin: 0 0 1.35em; padding-left: 1.3em; }
li > ul, li > ol { margin-bottom: 0; }
dt { font-weight: 700; }
dd { margin: 0 0 1em; }
hr { border: 0; height: 1px; background: var(--od-line-2); margin: 2.5em 0; }
small { font-size: .85em; }
mark, ins { background: color-mix(in srgb, var(--od-sun1) 85%, transparent); color: #1a0420; padding: 0 .25em; border-radius: 3px; text-decoration: none; }
abbr[title] { text-decoration: underline dotted; cursor: help; }
kbd {
	font-family: var(--od-font-mono);
	font-size: .82em;
	padding: .15em .5em;
	border: 1px solid var(--od-line-2);
	border-bottom-width: 3px;
	border-radius: 6px;
	background: var(--od-glass);
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	left: 12px;
	top: 12px;
	z-index: 100000;
	padding: 14px 22px;
	border-radius: 999px;
	background: var(--od-sun1);
	color: #1a0420;
	font-family: var(--od-font-display);
	font-weight: 600;
	text-decoration: none;
}

.wrap {
	width: 100%;
	max-width: calc(var(--od-wrap) + var(--od-pad) * 2);
	margin-inline: auto;
	padding-inline: var(--od-pad);
}
.od-narrow { max-width: calc(var(--od-narrow) + var(--od-pad) * 2); }

.site { position: relative; overflow-x: clip; }
.site-main { display: block; }

/* The small mono label: kickers, dates, meta, badges — tape on-screen display. */
.od-osd {
	font-family: var(--od-font-mono);
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.od-kicker { margin: 0 0 1.1em; color: var(--od-accent2); }
.od-kicker::before { content: "// "; opacity: .6; }
.od-kicker a { color: inherit; text-decoration: none; }

/* Chrome: the display face, italic capitals, filled with a sky-over-horizon
   gradient. The gradient tile is exactly one line tall and repeats down the
   block, so every line of a wrapped headline gets its own horizon. */
.od-chrome,
.is-style-chrome {
	font-family: var(--od-font-display);
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -.01em;
	line-height: 1.06;
	padding-inline: .1em;
	margin-inline: -.1em;
	color: var(--od-text);
	background-image: var(--od-chrome);
	background-size: 100% 1.06em;
	background-repeat: repeat-y;
	background-origin: content-box;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	filter: drop-shadow(0 2px 0 color-mix(in srgb, var(--od-ink) 85%, transparent)) drop-shadow(0 0 24px var(--od-glow-1));
	overflow-wrap: break-word;
}
.has-text-align-center.is-style-chrome, .od-chrome.has-text-align-center { margin-inline: auto; }
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
	.od-chrome, .is-style-chrome { -webkit-text-fill-color: currentColor; background: none; }
}

/* ==========================================================================
   Buttons — neon pills. The border is a conic gradient that turns; the fill is
   painted over it with a second background clipped to the padding box.
   ========================================================================== */

.od-btn,
.wp-block-button__link,
.wp-element-button,
button.submit,
input[type="submit"],
.post-password-form input[type="submit"] {
	--od-btn-fill: var(--od-heat);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	min-height: 52px;
	padding: 6px 30px;
	border: 2px solid transparent;
	border-radius: 999px;
	background: var(--od-btn-fill) padding-box, conic-gradient(from var(--od-angle), var(--od-sun1), var(--od-accent), var(--od-accent2), var(--od-sun1)) border-box;
	color: var(--od-ink);
	font-family: var(--od-font-display);
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 0 30px -8px var(--od-glow-1);
	transition: transform .25s var(--od-ease), box-shadow .25s var(--od-ease);
	-webkit-appearance: none;
	appearance: none;
}
.od-btn:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
button.submit:hover,
input[type="submit"]:hover {
	color: var(--od-ink);
	transform: translateY(-2px);
	box-shadow: 0 0 44px -6px var(--od-glow-1), 0 0 0 1px var(--od-glow-2);
}
.od-btn:active, .wp-block-button__link:active { transform: translateY(0); }

.od-btn--ghost,
.is-style-outline > .wp-block-button__link,
.is-style-neon > .wp-block-button__link {
	--od-btn-fill: linear-gradient(color-mix(in srgb, var(--od-sky1) 86%, transparent), color-mix(in srgb, var(--od-sky1) 86%, transparent));
	color: var(--od-text);
	box-shadow: 0 0 26px -10px var(--od-glow-2);
}
.od-btn--ghost:hover,
.is-style-outline > .wp-block-button__link:hover,
.is-style-neon > .wp-block-button__link:hover {
	color: var(--od-text);
	box-shadow: 0 0 40px -6px var(--od-glow-2), 0 0 0 1px var(--od-glow-1);
}
.is-style-neon > .wp-block-button__link { box-shadow: 0 0 34px -4px var(--od-glow-1), inset 0 0 22px -10px var(--od-glow-2); }

.od-btn--sm { min-height: 44px; padding: 4px 22px; font-size: .8rem; }

.od-fx-borders .od-btn,
.od-fx-borders .wp-block-button__link,
.od-fx-borders button.submit,
.od-fx-borders input[type="submit"] { animation: od-spin 6s linear infinite; }

@keyframes od-spin { to { --od-angle: 360deg; } }

.od-more {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-family: var(--od-font-display);
	font-size: .86rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--od-accent2);
}
.od-more .od-icon { transition: transform .25s var(--od-ease); }
.od-more:hover .od-icon, .od-card:hover .od-more .od-icon { transform: translateX(4px); }

/* ==========================================================================
   Glass — a panel of white at 4% with a one-pixel gradient border. The border
   is a padded pseudo-element whose middle is masked out, so it follows the
   corner radius (border-image cannot).
   ========================================================================== */

.od-glass,
.is-style-glass {
	position: relative;
	border-radius: var(--od-radius);
	background: var(--od-glass);
	box-shadow: var(--od-shadow);
	transition: transform .35s var(--od-ease), box-shadow .35s var(--od-ease), background-color .35s;
}
.od-glass::before,
.is-style-glass::before {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: linear-gradient(140deg, var(--od-accent) 0%, var(--od-line) 28%, var(--od-line) 72%, var(--od-accent2) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
	pointer-events: none;
	transition: opacity .35s;
}
.od-glass::after,
.is-style-glass::after {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: var(--od-neon);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
	opacity: 0;
	pointer-events: none;
	transition: opacity .35s;
}
.od-glass:hover,
.is-style-glass:hover {
	background: var(--od-glass-2);
	box-shadow: var(--od-shadow), 0 0 50px -18px var(--od-glow-1), 0 0 70px -30px var(--od-glow-2);
}
.od-glass:hover::after, .is-style-glass:hover::after,
.od-glass--lit::after { opacity: 1; }

.is-style-glass { padding: clamp(22px, 3vw, 36px); }

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	transition: background-color .3s, box-shadow .3s;
}
.od-header-sticky .site-header { position: fixed; }
.admin-bar .site-header { top: 32px; }

.site-header.is-scrolled,
body:not(.od-header-transparent) .site-header,
.od-menu-open .site-header {
	background: color-mix(in srgb, var(--od-sky1) 94%, transparent);
	box-shadow: 0 1px 0 var(--od-line), 0 18px 40px -30px #000;
}
.od-menu-open .site-header { background: transparent; box-shadow: none; }

.site-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: var(--od-header-h);
}

.site-branding { display: flex; align-items: center; min-width: 0; position: relative; z-index: 3; }
.custom-logo-link { display: inline-flex; }
.custom-logo { max-height: 46px; width: auto; }

.site-title {
	margin: 0;
	font-family: var(--od-font-display);
	font-size: 1.5rem;
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .01em;
	text-transform: uppercase;
}
.site-title a {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	color: var(--od-text);
	text-decoration: none;
}
.site-title-text {
	padding-right: .12em;
	background-image: var(--od-chrome);
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* The mark: a striped sun, 26 pixels across. */
.od-mark {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: linear-gradient(to bottom, #000 0 46%, transparent 46% 52%, #000 52% 64%, transparent 64% 72%, #000 72% 82%, transparent 82% 91%, #000 91% 100%);
	mask-image: linear-gradient(to bottom, #000 0 46%, transparent 46% 52%, #000 52% 64%, transparent 64% 72%, #000 72% 82%, transparent 82% 91%, #000 91% 100%);
}

/* Menu */
.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.main-navigation a { text-decoration: none; }

.menu-toggle {
	display: none;
	position: relative;
	z-index: 3;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 4px 0 12px;
	border: 0;
	background: none;
	color: var(--od-text);
	cursor: pointer;
}
.menu-toggle-bars { position: relative; display: block; width: 26px; height: 18px; }
.menu-toggle-bars span {
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .3s var(--od-ease), opacity .2s, top .3s var(--od-ease);
}
.menu-toggle-bars span:nth-child(1) { top: 0; }
.menu-toggle-bars span:nth-child(2) { top: 8px; background: var(--od-accent); }
.menu-toggle-bars span:nth-child(3) { top: 16px; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars span:nth-child(1) { top: 8px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars span:nth-child(3) { top: 8px; transform: rotate(-45deg); }

.submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: 2px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: inherit;
	cursor: pointer;
}
.submenu-toggle::before {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .25s var(--od-ease);
}
.submenu-toggle[aria-expanded="true"]::before { transform: translateY(2px) rotate(225deg); }

.main-navigation .main-navigation-floor { display: none; }

@media (min-width: 960px) {
	.main-navigation-inner { display: flex; align-items: center; gap: 28px; }
	.main-navigation .od-social--menu { display: none; }

	#primary-menu, .main-navigation .menu { display: flex; align-items: center; gap: 4px; }
	.main-navigation li { position: relative; display: flex; align-items: center; }
	.main-navigation a {
		display: block;
		padding: 10px 14px;
		color: var(--od-text);
		font-family: var(--od-font-display);
		font-size: 1rem;
		font-weight: 500;
		letter-spacing: .02em;
		border-radius: 999px;
		transition: color .2s, background-color .2s;
	}
	.main-navigation .menu > li > a { position: relative; }
	.main-navigation .menu > li > a::after {
		content: "";
		position: absolute;
		left: 14px;
		right: 14px;
		bottom: 4px;
		height: 2px;
		border-radius: 2px;
		background: var(--od-neon);
		box-shadow: 0 0 12px var(--od-glow-1);
		transform: scaleX(0);
		transform-origin: 0 50%;
		transition: transform .3s var(--od-ease);
	}
	.main-navigation .menu > li > a:hover::after,
	.main-navigation .menu > .current-menu-item > a::after,
	.main-navigation .menu > .current_page_item > a::after,
	.main-navigation .menu > .current-menu-ancestor > a::after,
	.main-navigation .menu > .current_page_parent > a::after { transform: scaleX(1); }
	.main-navigation a:hover { color: var(--od-text); }

	.main-navigation .sub-menu, .main-navigation .children {
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		z-index: 5;
		min-width: 230px;
		padding: 8px;
		border: 1px solid var(--od-line-2);
		border-radius: 16px;
		background: color-mix(in srgb, var(--od-sky2) 96%, transparent);
		box-shadow: var(--od-shadow), 0 0 40px -20px var(--od-glow-1);
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		transition: opacity .2s, transform .25s var(--od-ease), visibility .2s;
	}
	.main-navigation .sub-menu::before, .main-navigation .children::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
	.main-navigation li:hover > .sub-menu,
	.main-navigation li:focus-within > .sub-menu,
	.main-navigation li.is-open > .sub-menu,
	.main-navigation li:hover > .children,
	.main-navigation li:focus-within > .children,
	.main-navigation li.is-open > .children { opacity: 1; visibility: visible; transform: none; }
	.main-navigation .sub-menu li, .main-navigation .children li { display: flex; justify-content: space-between; }
	.main-navigation .sub-menu a, .main-navigation .children a { flex: 1; padding: 10px 14px; border-radius: 10px; font-size: .95rem; }
	.main-navigation .sub-menu a:hover, .main-navigation .children a:hover { background: var(--od-glass-2); color: var(--od-accent2); }
	.main-navigation .sub-menu .sub-menu, .main-navigation .children .children { top: -8px; left: calc(100% + 8px); }
	.main-navigation .sub-menu .submenu-toggle::before { transform: rotate(-45deg); }
}

/* The phone menu: the whole screen, over the grid. */
@media (max-width: 959.98px) {
	:root { --od-header-h: 66px; }

	.menu-toggle { display: inline-flex; }

	.main-navigation {
		position: fixed;
		inset: 0;
		z-index: 2;
		display: flex;
		flex-direction: column;
		background: linear-gradient(180deg, var(--od-sky1) 0%, var(--od-sky2) 46%, var(--od-sky3) 100%);
		opacity: 0;
		visibility: hidden;
		transition: opacity .3s, visibility .3s;
		overflow: hidden;
	}
	.admin-bar .main-navigation { top: 46px; }
	.main-navigation.is-open { opacity: 1; visibility: visible; }

	.main-navigation-inner {
		position: relative;
		z-index: 2;
		flex: 1;
		display: flex;
		flex-direction: column;
		gap: 26px;
		padding: calc(var(--od-header-h) + 18px) var(--od-pad) 150px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.main-navigation li { display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--od-line); }
	.main-navigation a {
		flex: 1;
		display: block;
		padding: 15px 0;
		color: var(--od-text);
		font-family: var(--od-font-display);
		font-size: clamp(1.5rem, 7vw, 2.1rem);
		font-style: italic;
		font-weight: 800;
		line-height: 1.1;
		text-transform: uppercase;
	}
	.main-navigation .current-menu-item > a,
	.main-navigation .current_page_item > a,
	.main-navigation a:hover {
		background-image: var(--od-chrome);
		background-size: 100% 100%;
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
	}
	.main-navigation .submenu-toggle { width: 48px; height: 48px; border: 1px solid var(--od-line-2); color: var(--od-text); }
	.main-navigation .sub-menu, .main-navigation .children { display: none; flex-basis: 100%; padding: 0 0 12px 16px; border-left: 2px solid var(--od-accent); margin-bottom: 14px; }
	.main-navigation li.is-open > .sub-menu, .main-navigation li.is-open > .children { display: block; }
	.main-navigation .sub-menu li, .main-navigation .children li { border-bottom: 0; }
	.main-navigation .sub-menu a, .main-navigation .children a { padding: 9px 0; font-size: 1.15rem; font-weight: 600; font-style: normal; text-transform: none; }

	.main-navigation .header-cta { align-self: flex-start; min-height: 52px; padding-inline: 30px; font-size: .9rem; }

	.main-navigation .main-navigation-floor {
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 190px;
		z-index: 1;
		pointer-events: none;
	}
	.main-navigation.is-open .main-navigation-inner > * { animation: od-menu-in .5s var(--od-ease) both; }
	.main-navigation.is-open .main-navigation-inner > *:nth-child(2) { animation-delay: .08s; }
	.main-navigation.is-open .main-navigation-inner > *:nth-child(3) { animation-delay: .14s; }
}
@keyframes od-menu-in { from { opacity: 0; transform: translateY(18px); } }

@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header.is-scrolled { top: 0; } }

/* ==========================================================================
   The scene — sky, stars, sun, mountains, grid floor. Shared by the hero, the
   404 page, the phone menu and the footer.
   ========================================================================== */

.od-scene {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	background: linear-gradient(180deg,
		var(--od-sky1) 0%,
		var(--od-sky2) 36%,
		var(--od-sky3) calc(100% - var(--od-floor-h) - 90px),
		color-mix(in srgb, var(--od-sun3) 46%, var(--od-sky3)) calc(100% - var(--od-floor-h)));
}
.od-scene > span, .od-scene > svg { position: absolute; display: block; }

.od-stars {
	position: absolute;
	display: block;
	inset: 0 0 var(--od-floor-h) 0;
	opacity: var(--od-star-opacity, 1);
	background-image:
		radial-gradient(1px 1px at 83.2% 58.5%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.4px 1.4px at 41.9% 46.6%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 14.7% 82.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 83.6% 8.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 37.1% 2.3%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 53.9% 75.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 24.1% 42.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 4.5% 21.5%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 63.9% 10.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 16.7% 38.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 3.2% 95.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 2.9% 94.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 75.9% 61.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.4px 1.4px at 10.3% 30.0%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 57.6% 59.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 23.8% 87.6%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 24.7% 35.7%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 85.4% 39.1%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 48.2% 41.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 87.3% 36.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 18.2% 35.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 96.1% 58.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 24.7% 74.6%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 76.6% 11.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 59.3% 31.0%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 79.5% 95.3%, var(--od-star) 50%, transparent 52%);
}
.od-stars--2 {
	background-image:
		radial-gradient(1.8px 1.8px at 62.7% 70.1%, var(--od-star) 50%, transparent 52%),
		radial-gradient(2px 2px at 88.3% 21.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 50.0% 81.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.8px 1.8px at 7.4% 66.1%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 50.4% 74.5%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.8px 1.8px at 32.8% 23.5%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 43.0% 92.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(2px 2px at 59.6% 88.3%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 22.5% 34.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(2px 2px at 38.1% 39.3%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 33.9% 70.2%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 41.0% 4.8%, var(--od-star) 50%, transparent 52%),
		radial-gradient(2px 2px at 84.4% 74.0%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 66.0% 9.3%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.8px 1.8px at 98.6% 4.3%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 13.2% 90.9%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1.8px 1.8px at 36.9% 7.4%, var(--od-star) 50%, transparent 52%),
		radial-gradient(1px 1px at 47.8% 40.4%, var(--od-star) 50%, transparent 52%);
}
.od-fx-stars .od-stars { animation: od-twinkle 3.6s ease-in-out infinite alternate; }
.od-fx-stars .od-stars--2 { animation-duration: 5.2s; animation-delay: -2s; }
@keyframes od-twinkle {
	from { opacity: calc(var(--od-star-opacity, 1) * .35); }
	to { opacity: var(--od-star-opacity, 1); }
}

.od-comet {
	top: 12%;
	left: 68%;
	width: 140px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, var(--od-star));
	opacity: 0;
	transform: rotate(-24deg);
}
.od-fx-stars .od-comet { animation: od-comet 11s ease-in 3s infinite; }
@keyframes od-comet {
	0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(-24deg); }
	3% { opacity: calc(var(--od-star-opacity, 1) * .9); }
	9% { opacity: 0; transform: translate3d(-420px, 187px, 0) rotate(-24deg); }
	100% { opacity: 0; transform: translate3d(-420px, 187px, 0) rotate(-24deg); }
}

.od-sun {
	left: 50%;
	bottom: var(--od-floor-h);
	width: clamp(230px, calc(30vw + 110px), 500px);
	aspect-ratio: 1;
	transform: translate(-50%, 34%);
}
.od-sun::before {
	content: "";
	position: absolute;
	inset: -22%;
	border-radius: 50%;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--od-sun3) 75%, transparent), transparent);
	filter: blur(34px);
	opacity: .8;
}
.od-sun-disc {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
}
.od-fx-sunrise .od-sun { animation: od-sunrise 2.6s var(--od-ease) both; }
@keyframes od-sunrise { from { transform: translate(-50%, 78%); opacity: .4; } }
.od-sun--set { transform: translate(-50%, 58%); }
.od-fx-sunrise .od-sun--set { animation: none; }

.od-mountains {
	left: 0;
	bottom: calc(var(--od-floor-h) - 1px);
	width: 100%;
	height: clamp(120px, 16.25vw, 260px);
}
.od-mtn-back { fill: var(--od-mtn-back); }
.od-mtn-front { fill: var(--od-mtn-front); }
.od-mtn-back-line, .od-mtn-back-facets, .od-mtn-front-line, .od-mtn-front-facets { fill: none; vector-effect: non-scaling-stroke; }
.od-mtn-back-line { stroke: var(--od-accent2); stroke-width: 1.5; stroke-opacity: .75; }
.od-mtn-back-facets { stroke: var(--od-accent2); stroke-width: 1; stroke-opacity: .26; }
.od-mtn-front-line { stroke: var(--od-accent); stroke-width: 2; }
.od-mtn-front-facets { stroke: var(--od-accent); stroke-width: 1; stroke-opacity: .4; }
.od-fx-glow .od-mtn-front-line { filter: drop-shadow(0 0 6px var(--od-accent)); }

/* The floor. A plane hinged on the bottom edge and tipped back 75 degrees runs
   to a horizon at the top of its box; the grid on it is a mask over a pink to
   cyan gradient, and only its transform is animated — one compositor layer
   sliding by one cell, forever. */
.od-floor {
	position: absolute;
	display: block;
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--od-floor-h);
	overflow: hidden;
	background: linear-gradient(180deg, var(--od-floor-1) 0%, var(--od-floor-2) 62%);
	perspective: 300px;
	perspective-origin: 50% 0;
}
.od-plane {
	position: absolute;
	display: block;
	left: 50%;
	bottom: 0;
	width: 320vw;
	height: 1700px;
	margin-left: -160vw;
	transform-origin: 50% 100%;
	transform: rotateX(75deg);
	transform-style: preserve-3d;
}
.od-grid {
	position: absolute;
	display: block;
	left: 0;
	right: 0;
	bottom: 0;
	top: calc(var(--od-cell) * -1);
	background: linear-gradient(90deg, var(--od-accent2), var(--od-accent) 38%, var(--od-accent) 62%, var(--od-accent2));
	-webkit-mask-image: linear-gradient(to right, #000 2px, transparent 2px), linear-gradient(to top, #000 2px, transparent 2px);
	mask-image: linear-gradient(to right, #000 2px, transparent 2px), linear-gradient(to top, #000 2px, transparent 2px);
	-webkit-mask-size: var(--od-cell) var(--od-cell);
	mask-size: var(--od-cell) var(--od-cell);
	-webkit-mask-position: 50% 100%;
	mask-position: 50% 100%;
	will-change: transform;
}
.od-fx-grid .od-grid { animation: od-drive var(--od-grid-speed) linear infinite; }
@keyframes od-drive { to { transform: translate3d(0, var(--od-cell), 0); } }
.is-offscreen .od-grid, .is-offscreen .od-stars, .is-offscreen .od-comet { animation-play-state: paused; }

/* The horizon line, and the haze that swallows the far end of the grid. */
.od-floor::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 2;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--od-accent2) 18%, var(--od-hi) 50%, var(--od-accent2) 82%, transparent);
	box-shadow: 0 0 30px 7px var(--od-glow-1);
}
.od-floor::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, color-mix(in srgb, var(--od-floor-1) 94%, transparent) 0%, color-mix(in srgb, var(--od-floor-1) 40%, transparent) 12%, transparent 30%, transparent 58%, var(--od-bg) 100%);
}

.od-scanlines { display: none; }
.od-fx-scanlines .od-scanlines {
	display: block;
	inset: 0;
	z-index: 3;
	background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, .16) 0 1px, transparent 1px 3px);
	mix-blend-mode: multiply;
	opacity: .55;
	pointer-events: none;
}

/* ==========================================================================
   Hero
   ========================================================================== */

.od-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100svh;
	padding: calc(var(--od-header-h) + clamp(18px, 5vh, 54px)) 0 calc(var(--od-floor-h) - 30px);
	overflow: hidden;
}
.od-hero-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin-block: auto;
}

.od-hero-kicker {
	display: inline-block;
	margin: 0 0 clamp(18px, 3vh, 28px);
	padding: 7px 16px;
	border: 1px solid color-mix(in srgb, var(--od-accent2) 50%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--od-sky1) 55%, transparent);
	color: var(--od-accent2);
	font-size: clamp(.62rem, 2.5vw, .74rem);
}
.od-hero-kicker:empty, .od-hero-note:empty, .od-hero-sub:empty { display: none; }

.od-hero-title {
	max-width: 13.4em;
	margin: 0;
	font-size: clamp(2.3rem, 6.5vw, 5.7rem);
	line-height: 1.04;
	background-size: 100% 1.04em;
}

.od-hero-sub {
	max-width: 40em;
	margin: clamp(16px, 2.6vh, 26px) auto 0;
	font-size: clamp(1rem, 1vw + .74rem, 1.18rem);
	font-weight: 500;
	line-height: 1.6;
	color: var(--od-text);
	text-shadow: 0 0 16px var(--od-sky1), 0 0 4px var(--od-sky1), 0 1px 1px var(--od-sky1);
}

.od-hero-ctas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	margin-top: clamp(22px, 3.4vh, 34px);
}
.od-hero-ctas:empty { display: none; }
.od-hero .od-btn { box-shadow: 0 0 0 6px color-mix(in srgb, var(--od-sky1) 42%, transparent), 0 0 34px -4px var(--od-glow-1); }
.od-hero .od-btn--ghost { --od-btn-fill: linear-gradient(color-mix(in srgb, var(--od-sky1) 90%, transparent), color-mix(in srgb, var(--od-sky1) 90%, transparent)); }

.od-hero-note {
	margin: 20px 0 0;
	padding: 5px 14px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--od-sky1) 60%, transparent);
	color: var(--od-text);
	font-size: .68rem;
}

.od-hero--left .od-hero-inner { align-items: flex-start; text-align: left; }
.od-hero--left .od-hero-sub { margin-inline: 0; }
.od-hero--left .od-hero-ctas { justify-content: flex-start; }
@media (min-width: 960px) {
	.od-hero--left .od-hero-title { max-width: 10.5em; }
	.od-hero--left .od-sun { left: 74%; }
}

@media (max-width: 520px) {
	.od-hero-ctas { flex-direction: column; align-items: center; }
	.od-hero-ctas .od-btn { min-width: 250px; }
}

/* The floating product screenshot: it starts on the grid and hangs over the
   next section. */
.od-hero-shot {
	position: relative;
	z-index: 3;
	margin-top: calc(var(--od-floor-h) * -.46);
	perspective: 1600px;
}
.od-shot {
	position: relative;
	max-width: 1080px;
	margin-inline: auto;
	border-radius: calc(var(--od-radius) + 2px);
	background: var(--od-sky2);
	box-shadow:
		0 0 0 1px var(--od-line-2),
		0 0 0 2px color-mix(in srgb, var(--od-accent) 45%, transparent),
		0 40px 120px -30px var(--od-glow-1),
		0 0 90px -20px var(--od-glow-2),
		var(--od-shadow);
	overflow: hidden;
	transform: rotateX(5deg);
	transform-origin: 50% 100%;
}
.od-fx-float .od-shot { animation: od-float 8s ease-in-out infinite; }
@keyframes od-float {
	0%, 100% { transform: rotateX(5deg) translateY(0); }
	50% { transform: rotateX(3.4deg) translateY(-10px); }
}
.od-shot-bar {
	display: flex;
	align-items: center;
	gap: 7px;
	height: 34px;
	padding: 0 16px;
	background: color-mix(in srgb, var(--od-sky1) 80%, var(--od-sky3));
	border-bottom: 1px solid var(--od-line);
}
.od-shot-bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--od-accent); }
.od-shot-bar i:nth-child(2) { background: var(--od-sun1); }
.od-shot-bar i:nth-child(3) { background: var(--od-accent2); }
.od-shot-img { display: block; width: 100%; }

/* ==========================================================================
   Front-page sections
   ========================================================================== */

.od-section { position: relative; padding-block: clamp(64px, 9vw, 124px); }
.od-section--content { padding-block: clamp(48px, 7vw, 96px); }
.od-hero-shot + .od-section { padding-top: clamp(56px, 7vw, 96px); }

.od-section-head { max-width: 760px; margin: 0 auto clamp(36px, 5vw, 64px); text-align: center; }
.od-section-title {
	margin: 0;
	font-size: clamp(1.9rem, 4.4vw, 3.2rem);
	font-style: italic;
	font-weight: 800;
	line-height: 1.06;
	text-transform: uppercase;
	letter-spacing: -.005em;
}
.od-fx-glow .od-section-title { text-shadow: 0 0 34px var(--od-glow-1); }
.od-section-intro { max-width: 40em; margin: 18px auto 0; color: var(--od-muted); font-size: 1.08rem; }

.od-section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(30px, 4vw, 52px); }
.od-section-head-row .od-section-head { margin: 0; text-align: left; }
.od-section-head-row .od-more { flex: none; padding-bottom: 8px; }

/* Logos — every name gets its own lettering, so a row of plain text reads as a
   row of wordmarks. */
.od-section--logos { padding-block: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 48px); }
.od-logos-title { margin: 0 0 22px; text-align: center; color: var(--od-muted); }
.od-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px clamp(28px, 5vw, 64px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.od-logos li { color: color-mix(in srgb, var(--od-text) 62%, transparent); font-size: 1.35rem; line-height: 1; white-space: nowrap; transition: color .25s; }
.od-logos li:hover { color: var(--od-text); }
.od-logos a { color: inherit; text-decoration: none; }
.od-logos li:nth-child(6n + 1) { font-family: var(--od-font-display); font-style: italic; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; }
.od-logos li:nth-child(6n + 2) { font-family: var(--od-font-mono); font-weight: 500; font-size: 1.15rem; text-transform: lowercase; letter-spacing: -.02em; }
.od-logos li:nth-child(6n + 2)::before { content: "_"; color: var(--od-accent); }
.od-logos li:nth-child(6n + 3) { font-family: var(--od-font-display); font-weight: 300; text-transform: uppercase; letter-spacing: .34em; font-size: 1.1rem; }
.od-logos li:nth-child(6n + 4) { font-family: var(--od-font-body); font-weight: 800; letter-spacing: -.04em; font-size: 1.45rem; }
.od-logos li:nth-child(6n + 5) { font-family: var(--od-font-display); font-weight: 600; font-style: italic; letter-spacing: .01em; font-size: 1.45rem; }
.od-logos li:nth-child(6n + 6) { font-family: var(--od-font-mono); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; font-size: 1.02rem; }
.od-logos li:nth-child(6n + 6)::before { content: "["; color: var(--od-accent2); margin-right: .2em; }
.od-logos li:nth-child(6n + 6)::after { content: "]"; color: var(--od-accent2); margin-left: .2em; }

/* Features */
.od-features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 26px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.od-features.od-count-2, .od-features.od-count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.od-feature { padding: clamp(24px, 2.6vw, 34px); }
.od-feature:hover { transform: translateY(-4px); }
.od-feature-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	margin-bottom: 20px;
	border-radius: 15px;
	border: 1px solid color-mix(in srgb, var(--od-accent2) 45%, transparent);
	background: color-mix(in srgb, var(--od-accent2) 9%, transparent);
	color: var(--od-accent2);
}
.od-fx-glow .od-feature-icon { box-shadow: 0 0 26px -8px var(--od-glow-2), inset 0 0 18px -10px var(--od-glow-2); }
.od-fx-glow .od-feature-icon .od-icon { filter: drop-shadow(0 0 5px var(--od-glow-2)); }
.od-feature:nth-child(even) .od-feature-icon { border-color: color-mix(in srgb, var(--od-accent) 50%, transparent); background: color-mix(in srgb, var(--od-accent) 10%, transparent); color: var(--od-accent); }
.od-fx-glow .od-feature:nth-child(even) .od-feature-icon { box-shadow: 0 0 26px -8px var(--od-glow-1), inset 0 0 18px -10px var(--od-glow-1); }
.od-fx-glow .od-feature:nth-child(even) .od-icon { filter: drop-shadow(0 0 5px var(--od-glow-1)); }
.od-feature-title { margin: 0 0 8px; font-size: 1.28rem; font-weight: 600; }
.od-feature-text { margin: 0; color: var(--od-muted); font-size: .98rem; line-height: 1.65; }

/* Steps — huge outlined numerals on the centre line of a road. */
.od-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 56px);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
.od-steps.od-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.od-steps.od-count-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.od-steps::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: clamp(2.6rem, 5.4vw, 4.4rem);
	height: 3px;
	background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--od-sun1) 70%, transparent) 0 30px, transparent 30px 58px);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.od-step { position: relative; }
.od-step-num {
	display: inline-block;
	margin: 0 0 14px -.04em;
	padding-right: .16em;
	background: var(--od-bg);
	font-family: var(--od-font-display);
	font-size: clamp(5rem, 10.5vw, 8.6rem);
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.02em;
	color: transparent;
	-webkit-text-stroke: 2px var(--od-accent);
}
.od-step:nth-child(even) .od-step-num { -webkit-text-stroke-color: var(--od-accent2); }
.od-fx-glow .od-step-num { filter: drop-shadow(0 0 14px var(--od-glow-1)); }
.od-fx-glow .od-step:nth-child(even) .od-step-num { filter: drop-shadow(0 0 14px var(--od-glow-2)); }
.od-step-title { margin: 0 0 8px; font-size: 1.45rem; font-weight: 600; }
.od-step-text { margin: 0; color: var(--od-muted); max-width: 34em; }

/* Pricing */
.od-plans {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(16px, 2vw, 26px);
	max-width: 1100px;
	margin-inline: auto;
}
.od-plans.od-count-1 { grid-template-columns: minmax(0, 420px); justify-content: center; }
.od-plans.od-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 780px; }
.od-plans.od-count-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: none; }
.od-plan { display: flex; flex-direction: column; padding: clamp(26px, 3vw, 38px); }
.od-plan--featured {
	background: linear-gradient(180deg, color-mix(in srgb, var(--od-accent) 13%, transparent), var(--od-glass) 60%);
	box-shadow: var(--od-shadow), 0 0 80px -24px var(--od-glow-1);
}
.od-plan--featured::after { opacity: 1; padding: 2px; }
@media (min-width: 900px) { .od-plan--featured { margin-block: -16px; padding-block: calc(clamp(26px, 3vw, 38px) + 16px); } }
.od-plan-badge {
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 2;
	margin: 0;
	padding: 6px 16px;
	border-radius: 999px;
	background: var(--od-heat);
	color: var(--od-ink);
	font-size: .66rem;
	font-weight: 600;
	white-space: nowrap;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 24px -4px var(--od-glow-1);
}
.od-plan-name { margin: 0 0 14px; font-size: 1.2rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--od-muted); }
.od-plan--featured .od-plan-name { color: var(--od-text); }
.od-plan-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin: 0 0 24px; padding-bottom: 24px; border-bottom: 1px solid var(--od-line); }
.od-plan-amount {
	padding-right: .1em;
	font-family: var(--od-font-display);
	font-size: clamp(2.8rem, 4.6vw, 3.8rem);
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	background-image: var(--od-chrome);
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.od-plan-period { color: var(--od-muted); }
.od-plan-features { flex: 1; margin: 0 0 30px; padding: 0; list-style: none; }
.od-plan-features li { display: flex; gap: 12px; align-items: flex-start; padding: 7px 0; font-size: .98rem; line-height: 1.5; }
.od-plan-features .od-icon { flex: none; margin-top: 3px; color: var(--od-accent2); }
.od-plan-features .is-off { color: color-mix(in srgb, var(--od-muted) 78%, transparent); }
.od-plan-features .is-off > span { text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--od-muted) 60%, transparent); }
.od-plan-features .is-off .od-icon { color: inherit; }
.od-plan-btn { width: 100%; }
.od-plans-note { margin: clamp(30px, 4vw, 48px) 0 0; text-align: center; color: var(--od-muted); }

/* Testimonials */
.od-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(16px, 2vw, 26px); }
.od-quote { display: flex; flex-direction: column; padding: clamp(26px, 3vw, 36px); }
.od-quote:hover { transform: translateY(-4px); }
.od-quote-mark { display: block; margin-bottom: 14px; color: var(--od-accent); line-height: 0; }
.od-quote-mark .od-icon { fill: currentColor; stroke: none; }
.od-fx-glow .od-quote-mark .od-icon { filter: drop-shadow(0 0 8px var(--od-glow-1)); }
.od-quote blockquote { flex: 1; margin: 0 0 26px; padding: 0; border: 0; background: none; }
.od-quote blockquote p { margin: 0; font-family: var(--od-font-display); font-size: 1.24rem; font-weight: 400; line-height: 1.45; }
.od-quote figcaption { display: flex; align-items: center; gap: 14px; }
.od-quote-who { display: flex; flex-direction: column; line-height: 1.35; }
.od-quote-who strong { font-family: var(--od-font-display); font-size: 1.02rem; font-weight: 600; }
.od-quote-who span { color: var(--od-muted); font-size: .88rem; }

.od-avatar {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 2px solid transparent;
	background: linear-gradient(var(--od-sky2), var(--od-sky2)) padding-box, var(--od-neon) border-box;
	color: var(--od-text);
	font-family: var(--od-font-display);
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .04em;
}
.od-avatar--lg { width: 64px; height: 64px; font-size: 1.25rem; }

/* FAQ */
.od-faq-row { display: grid; gap: clamp(28px, 5vw, 72px); }
@media (min-width: 900px) {
	.od-faq-row { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: start; }
	.od-faq-row .od-section-head { position: sticky; top: calc(var(--od-header-h) + 32px); margin: 0; text-align: left; }
	.od-faq-row .od-section-intro { margin-inline: 0; }
}
.od-faq { display: grid; gap: 12px; }
.od-faq-item { overflow: hidden; }
.od-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 64px;
	padding: 16px clamp(18px, 2.4vw, 28px);
	font-family: var(--od-font-display);
	font-size: 1.14rem;
	font-weight: 500;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}
.od-faq-item summary::-webkit-details-marker { display: none; }
.od-faq-item summary:focus-visible { outline-offset: -4px; border-radius: var(--od-radius); }
.od-faq-plus { position: relative; flex: none; width: 30px; height: 30px; border: 1px solid var(--od-line-2); border-radius: 50%; transition: transform .35s var(--od-ease), border-color .3s, background-color .3s; }
.od-faq-plus::before, .od-faq-plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 2px; background: var(--od-accent2); }
.od-faq-plus::after { transform: rotate(90deg); }
.od-faq-item[open] .od-faq-plus { transform: rotate(45deg); border-color: var(--od-accent); }
.od-faq-item[open] .od-faq-plus::before, .od-faq-item[open] .od-faq-plus::after { background: var(--od-accent); }
.od-faq-item[open]::after { opacity: 1; }
.od-faq-a { padding: 0 clamp(18px, 2.4vw, 28px) 22px; color: var(--od-muted); max-width: 46em; }
.od-faq-a p { margin: 0; }

/* Newsletter */
.od-section--newsletter { padding-block: clamp(40px, 6vw, 80px); }
.od-news { display: grid; gap: 24px clamp(28px, 5vw, 64px); align-items: center; padding: clamp(28px, 4.4vw, 56px); overflow: hidden; }
.od-news > * { position: relative; z-index: 1; }
@media (min-width: 860px) { .od-news { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.od-news-title { margin: 0 0 8px; font-size: clamp(1.5rem, 2.8vw, 2.1rem); font-style: italic; font-weight: 800; text-transform: uppercase; line-height: 1.1; }
.od-news-text { margin: 0; color: var(--od-muted); }
.od-news-field { display: flex; gap: 8px; padding: 6px; border: 1px solid var(--od-line-2); border-radius: 999px; background: var(--od-field); transition: border-color .2s, box-shadow .2s; }
.od-news-field:focus-within { border-color: var(--od-accent2); box-shadow: 0 0 0 3px color-mix(in srgb, var(--od-accent2) 22%, transparent); }
.od-news-field input[type="email"] { flex: 1; min-width: 0; min-height: 48px; padding: 0 18px; border: 0; border-radius: 999px; background: none; box-shadow: none; }
.od-news-field input[type="email"]:focus { outline: none; box-shadow: none; }
.od-news-field .od-btn { flex: none; min-height: 48px; padding-inline: 24px; }
.od-news-privacy { margin: 14px 0 0 18px; color: var(--od-muted); font-size: .66rem; }
.od-admin-note { margin: 14px 0 0; padding: 12px 16px; border: 1px dashed var(--od-sun1); border-radius: 12px; color: var(--od-text); text-transform: none; letter-spacing: 0; font-size: .8rem; }
@media (max-width: 460px) {
	.od-news-field { flex-direction: column; border-radius: 22px; }
	.od-news-field .od-btn { width: 100%; }
}

/* The closing band — the sun comes up over the horizon behind the headline. */
.od-cta {
	isolation: isolate;
	padding: clamp(80px, 11vw, 150px) 0 0;
	overflow: hidden;
	text-align: center;
}
.od-cta-scene {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, var(--od-bg) 0%, var(--od-sky2) 38%, var(--od-sky3) 80%, color-mix(in srgb, var(--od-sun3) 50%, var(--od-sky3)) 100%);
}
.od-cta-scene .od-stars { inset: 0 0 30% 0; }
.od-cta-sun {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: clamp(300px, 52vw, 700px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
	transform: translate(-50%, 52%);
}
.od-cta-horizon {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--od-accent2) 18%, var(--od-hi) 50%, var(--od-accent2) 82%, transparent);
	box-shadow: 0 0 40px 10px var(--od-glow-1);
}
.od-cta-inner { position: relative; padding-bottom: clamp(200px, 29vw, 400px); }
.od-cta-title { max-width: 14em; margin: 0 auto; font-size: clamp(2.1rem, 5.6vw, 4.6rem); }
.od-cta-text { max-width: 36em; margin: 20px auto 0; font-size: 1.12rem; font-weight: 500; text-shadow: 0 0 14px var(--od-sky2); }
.od-cta-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 32px; }
.od-cta .od-btn { box-shadow: 0 0 0 6px color-mix(in srgb, var(--od-sky2) 42%, transparent), 0 0 34px -4px var(--od-glow-1); }

/* ==========================================================================
   Inner pages: the header band
   ========================================================================== */

.od-pagehead {
	position: relative;
	isolation: isolate;
	padding: calc(var(--od-header-h) + clamp(40px, 7vw, 88px)) 0 clamp(40px, 5.5vw, 72px);
	overflow: hidden;
}
.od-pagehead-scene {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, var(--od-sky1) 0%, var(--od-sky2) 55%, var(--od-sky3) 100%);
}
.od-pagehead-scene .od-stars { inset: 0; }
.od-pagehead-scene::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--od-accent2) 18%, var(--od-hi) 50%, var(--od-accent) 82%, transparent);
	box-shadow: 0 0 34px 6px var(--od-glow-1);
}
.od-pagehead-sun {
	position: absolute;
	right: clamp(-40px, 7vw, 120px);
	bottom: 0;
	width: clamp(150px, 22vw, 300px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
	transform: translateY(50%);
	opacity: .95;
}
.od-pagehead-inner { position: relative; }
.od-pagehead .page-title, .od-pagehead .entry-title {
	max-width: 17em;
	margin: 0;
	font-size: clamp(2.1rem, 5.4vw, 4.2rem);
}
.od-pagehead--post .entry-title { font-size: clamp(1.9rem, 4.4vw, 3.3rem); max-width: none; }
.od-pagehead-text, .od-lead { max-width: 40em; margin: 20px 0 0; color: var(--od-text); font-size: 1.14rem; font-weight: 500; line-height: 1.6; text-shadow: 0 0 12px var(--od-sky2); }
.od-pagehead-text p:last-child { margin-bottom: 0; }
.od-pagehead-extra .search-form { max-width: 520px; margin-top: 26px; }

.od-osd-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 20px; color: var(--od-muted); }
.od-osd-meta a { color: inherit; text-decoration: none; }
.od-osd-meta a:hover { color: var(--od-accent2); }
.od-osd-play { padding: 4px 10px; border-radius: 4px; background: var(--od-text); color: var(--od-sky1); font-weight: 600; letter-spacing: .1em; }
.od-osd-meta .cat-links a { color: var(--od-accent2); }

/* ==========================================================================
   Layout of blog, archive and single
   ========================================================================== */

.od-layout { display: grid; gap: clamp(40px, 5vw, 64px); padding-block: clamp(44px, 6vw, 84px); }
@media (min-width: 1000px) {
	body:not(.no-sidebar) .od-layout { grid-template-columns: minmax(0, 1fr) 310px; }
}
.od-layout-main { min-width: 0; }
.od-page-body { padding-block: clamp(44px, 6vw, 84px); }
.od-results { padding-block: clamp(36px, 5vw, 72px); }

/* Cards */
.od-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.2vw, 30px); }
body:not(.no-sidebar) .od-layout .od-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.od-card { display: flex; flex-direction: column; overflow: hidden; }
.od-card:hover { transform: translateY(-5px); }
.od-card-media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(180deg, var(--od-sky2), var(--od-sky3));
	border-radius: var(--od-radius) var(--od-radius) 0 0;
}
.od-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--od-ease); }
.od-card:hover .od-card-media img { transform: scale(1.05); }
.od-card-media.od-tint::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, var(--od-accent), var(--od-accent2));
	mix-blend-mode: soft-light;
	opacity: .85;
	transition: opacity .5s;
}
.od-card-media.od-tint::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--od-sky1) 70%, transparent) 100%);
}
.od-card:hover .od-card-media.od-tint::after { opacity: .25; }

/* A card without a picture: a small sunset, drawn. */
.od-card-media--empty { background: linear-gradient(180deg, var(--od-sky1) 0%, var(--od-sky2) 40%, var(--od-sky3) 68%, color-mix(in srgb, var(--od-sun3) 50%, var(--od-sky3)) 72%); }
.od-mini-sun {
	position: absolute;
	left: 50%;
	top: 72%;
	width: 42%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
	transform: translate(-50%, -66%);
}
.od-mini-floor {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 28%;
	border-top: 2px solid var(--od-accent2);
	background:
		repeating-linear-gradient(90deg, color-mix(in srgb, var(--od-accent) 80%, transparent) 0 1px, transparent 1px 28px),
		repeating-linear-gradient(180deg, color-mix(in srgb, var(--od-accent) 80%, transparent) 0 1px, transparent 1px 14px),
		linear-gradient(180deg, var(--od-floor-1), var(--od-floor-2));
	box-shadow: 0 0 22px 2px var(--od-glow-1);
}

.od-stamp {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 10px;
	border-radius: 6px;
	background: rgba(8, 2, 20, .68);
	color: #fff;
	font-family: var(--od-font-mono);
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: .12em;
	line-height: 1.4;
	pointer-events: none;
}
.od-stamp-rec { display: inline-flex; align-items: center; gap: 6px; }
.od-stamp-rec i { width: 8px; height: 8px; border-radius: 50%; background: #ff3b3b; box-shadow: 0 0 8px #ff3b3b; animation: od-blink 1.4s steps(2, jump-none) infinite; }
@keyframes od-blink { 50% { opacity: .15; } }

.od-card-body { display: flex; flex: 1; flex-direction: column; padding: clamp(20px, 2.2vw, 28px); }
.od-card-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 12px; color: var(--od-muted); }
.od-card-meta a { color: var(--od-accent2); text-decoration: none; }
.od-card-title { margin: 0 0 10px; font-size: 1.36rem; font-weight: 600; line-height: 1.22; }
.od-card-title a { color: var(--od-text); text-decoration: none; }
.od-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.od-card-title a:hover { color: var(--od-accent2); }
.od-card-summary { flex: 1; color: var(--od-muted); font-size: .97rem; line-height: 1.65; }
.od-card-summary p { margin: 0 0 18px; }
.od-card .od-more { margin-top: auto; }
.od-card-meta a { position: relative; z-index: 2; }

.od-badge {
	display: inline-block;
	padding: 3px 10px;
	border: 1px solid var(--od-accent);
	border-radius: 999px;
	color: var(--od-accent);
	font-size: .62rem;
}
.od-badge--sticky { align-self: flex-start; margin: 0 0 14px; border-color: var(--od-sun1); color: var(--od-sun1); }
.od-light .od-badge--sticky { border-color: var(--od-accent); color: var(--od-accent); }

@media (min-width: 800px) {
	.od-card--featured { grid-column: 1 / -1; flex-direction: row; }
	.od-card--featured::after { opacity: 1; }
	.od-card--featured .od-card-media { flex: 1.25; aspect-ratio: auto; min-height: 340px; border-radius: var(--od-radius) 0 0 var(--od-radius); }
	.od-card--featured .od-card-body { flex: 1; justify-content: center; padding: clamp(28px, 3.4vw, 48px); }
	.od-card--featured .od-card-title { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
	.od-card--featured .od-card-summary { flex: none; font-size: 1.03rem; }
	.od-card--featured .od-more { margin-top: 8px; }
}

/* Search results */
.od-result { padding: 26px 0; border-bottom: 1px solid var(--od-line); }
.od-result:first-child { padding-top: 0; }
.od-result-meta { display: flex; gap: 10px; margin: 0 0 8px; color: var(--od-accent2); }
.od-result-title { margin: 0 0 8px; font-size: 1.5rem; }
.od-result-title a { color: var(--od-text); text-decoration: none; }
.od-result-title a:hover { color: var(--od-accent2); }
.od-result .entry-summary { color: var(--od-muted); }
.od-result .entry-summary p { margin: 0; }

.no-results { max-width: 720px; margin-inline: auto; padding: clamp(28px, 4vw, 48px); text-align: center; }
.no-results .search-form { max-width: 460px; margin: 22px auto 0; }

/* Pagination */
.pagination, .comments-navigation, .posts-navigation { margin-top: clamp(40px, 5vw, 64px); }
.nav-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	min-height: 46px;
	padding: 0 16px;
	border: 1px solid var(--od-line-2);
	border-radius: 999px;
	color: var(--od-text);
	font-family: var(--od-font-mono);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: border-color .2s, color .2s, box-shadow .2s;
}
a.page-numbers:hover { border-color: var(--od-accent2); color: var(--od-accent2); box-shadow: 0 0 22px -8px var(--od-glow-2); }
.page-numbers.current { border-color: transparent; background: var(--od-heat); color: var(--od-ink); font-weight: 600; }
.page-numbers.dots { border-color: transparent; min-width: 0; padding: 0 4px; }

.page-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 2em; }
.page-links > span:first-child { margin-right: 8px; color: var(--od-muted); }
.page-links .post-page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid var(--od-line-2); border-radius: 999px; color: var(--od-text); text-decoration: none; }
.page-links .post-page-numbers.current { background: var(--od-heat); border-color: transparent; color: var(--od-ink); }

/* ==========================================================================
   Entry content: the reading column and the core blocks
   ========================================================================== */

.entry-hero { margin: 0 auto clamp(32px, 4.4vw, 56px); max-width: 920px; }
.od-layout--single .od-layout-main > .entry-hero { margin-top: calc(clamp(44px, 6vw, 84px) * -1 - 0px); transform: translateY(clamp(-44px, -3vw, -24px)); margin-bottom: clamp(8px, 1.4vw, 20px); }
.od-glowframe, .is-style-glow img, .wp-block-image.is-style-glow img {
	border-radius: var(--od-radius);
	box-shadow: 0 0 0 1px var(--od-line-2), 0 0 0 2px color-mix(in srgb, var(--od-accent) 40%, transparent), 0 30px 90px -30px var(--od-glow-1), 0 0 70px -24px var(--od-glow-2);
}
.od-glowframe { position: relative; overflow: hidden; background: var(--od-sky2); }
.od-glowframe img { display: block; width: 100%; }
.od-glowframe figcaption { padding: 10px 16px; }

.entry-content > * { max-width: min(100%, 68ch); margin-inline: auto; }
.entry-content > .alignwide { max-width: min(100%, 1000px); }
.entry-content > .alignfull { max-width: none; width: 100vw; margin-inline: calc(50% - 50vw); }
.od-page-body--wide .entry-content > *, .od-section--content .entry-content > * { max-width: min(100%, var(--od-wrap)); }
.od-page-body--wide .entry-content > p, .od-page-body--wide .entry-content > ul, .od-page-body--wide .entry-content > ol,
.od-section--content .entry-content > p, .od-section--content .entry-content > ul, .od-section--content .entry-content > ol { max-width: min(100%, 68ch); }
.od-page-body--wide .entry-content > .alignfull, .od-section--content .entry-content > .alignfull { max-width: none; }
body:not(.no-sidebar) .od-layout--single .entry-content > * { margin-inline: 0; }
body:not(.no-sidebar) .od-layout--single .entry-content > .alignfull { width: auto; margin-inline: 0; }

.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content p, .entry-content li { line-height: 1.78; }
.entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 1.9em; }
.entry-content h2 { font-style: italic; font-weight: 800; text-transform: uppercase; letter-spacing: -.005em; }
.entry-content > h2:first-child, .entry-content > h3:first-child { margin-top: 0; }
.entry-content strong { font-weight: 700; color: var(--od-text); }
.entry-content ul { list-style: none; padding-left: 1.5em; }
.entry-content ul > li { position: relative; margin-bottom: .45em; }
.entry-content ul > li::before { content: ""; position: absolute; left: -1.35em; top: .68em; width: 8px; height: 8px; border-radius: 2px; background: var(--od-neon); transform: rotate(45deg); }
.entry-content ol { padding-left: 1.5em; }
.entry-content ol > li { margin-bottom: .45em; padding-left: .3em; }
.entry-content ol > li::marker { color: var(--od-accent2); font-family: var(--od-font-mono); font-size: .88em; font-weight: 600; }
.entry-content .wp-block-gallery li::before, .entry-content .blocks-gallery-grid li::before, .entry-content .wp-block-social-links li::before, .entry-content .wp-block-latest-posts li::before, .entry-content .wp-block-navigation li::before, .entry-content .wp-block-page-list li::before { content: none; }

/* Quote: a gradient bar. Pullquote: between two horizon lines. */
blockquote, .wp-block-quote {
	position: relative;
	margin: 2.2em auto;
	padding: .3em 0 .3em 1.6em;
	border: 0;
	font-family: var(--od-font-display);
	font-size: 1.32rem;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
}
blockquote::before, .wp-block-quote::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	border-radius: 4px;
	background: linear-gradient(180deg, var(--od-sun1), var(--od-accent) 50%, var(--od-accent2));
	box-shadow: 0 0 18px var(--od-glow-1);
}
blockquote p { margin-bottom: .7em; }
blockquote p:last-of-type { margin-bottom: 0; }
blockquote cite, .wp-block-quote cite, .wp-block-pullquote cite {
	display: block;
	margin-top: 1em;
	font-family: var(--od-font-mono);
	font-size: .72rem;
	font-style: normal;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--od-muted);
}
blockquote cite::before { content: "— "; }
.wp-block-quote.has-text-align-right { padding: .3em 1.6em .3em 0; }
.wp-block-quote.has-text-align-right::before { left: auto; right: 0; }
.wp-block-quote.is-style-large, .wp-block-quote.is-large { padding-left: 1.6em; }

.wp-block-pullquote {
	position: relative;
	margin-block: 2.6em;
	padding: 2em 0;
	border: 0;
	text-align: center;
}
.wp-block-pullquote::before, .wp-block-pullquote::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--od-accent) 25%, var(--od-accent2) 75%, transparent);
	box-shadow: 0 0 18px var(--od-glow-1);
}
.wp-block-pullquote::before { top: 0; }
.wp-block-pullquote::after { bottom: 0; }
.wp-block-pullquote blockquote { margin: 0; padding: 0; }
.wp-block-pullquote blockquote::before { content: none; }
.wp-block-pullquote p { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 600; line-height: 1.3; }

/* Code: a terminal. */
code, pre, tt, samp { font-family: var(--od-font-mono); font-size: .88em; }
:not(pre) > code { padding: .16em .45em; border: 1px solid var(--od-line); border-radius: 6px; background: var(--od-field); color: var(--od-accent2); }
pre, .wp-block-code, .wp-block-preformatted {
	position: relative;
	margin-block: 2em;
	padding: 52px 22px 22px;
	border: 1px solid var(--od-line-2);
	border-radius: var(--od-radius);
	background: color-mix(in srgb, var(--od-ink) 72%, #000);
	color: #E9E2FF;
	font-size: .86rem;
	line-height: 1.7;
	overflow-x: auto;
	tab-size: 2;
	box-shadow: var(--od-shadow);
}
pre::before, .wp-block-code::before, .wp-block-preformatted::before {
	content: "";
	position: absolute;
	top: 16px;
	left: 20px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #FF2975;
	box-shadow: 17px 0 0 #FFD319, 34px 0 0 #00E5FF;
}
pre::after, .wp-block-code::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 40px;
	height: 1px;
	background: rgba(255, 255, 255, .1);
}
.wp-block-code code { padding: 0; border: 0; background: none; color: inherit; font-size: inherit; }
.wp-block-verse { padding: 0; border: 0; background: none; box-shadow: none; color: inherit; font-family: var(--od-font-display); font-size: 1.2rem; font-style: italic; }
.wp-block-verse::before, .wp-block-verse::after { content: none; }

/* Tables */
table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .96rem; }
.wp-block-table { margin-block: 2em; overflow-x: auto; }
.wp-block-table table, .entry-content > table, .comment-content table {
	border: 1px solid var(--od-line-2);
	border-radius: calc(var(--od-radius) - 4px);
	background: var(--od-glass);
	overflow: hidden;
}
th, td, .wp-block-table th, .wp-block-table td { padding: 13px 18px; border: 0; border-bottom: 1px solid var(--od-line); text-align: left; vertical-align: top; }
tr:last-child > td { border-bottom: 0; }
thead th, .wp-block-table thead th {
	border-bottom: 1px solid var(--od-line-2);
	background: color-mix(in srgb, var(--od-accent2) 9%, transparent);
	color: var(--od-accent2);
	font-family: var(--od-font-mono);
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
}
.wp-block-table thead { border-bottom: 0; }
tfoot td, .wp-block-table tfoot td { border-top: 1px solid var(--od-line-2); border-bottom: 0; color: var(--od-muted); font-size: .88rem; }
.wp-block-table tfoot { border-top: 0; }
tbody tr:hover > td { background: var(--od-glass); }
.wp-block-table.is-style-stripes { border-bottom: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--od-glass-2); }
.wp-block-table figcaption { text-align: left; }

/* Images, captions, galleries, media */
.wp-block-image img, .wp-block-gallery img, .entry-content img { border-radius: calc(var(--od-radius) - 4px); }
.wp-block-image, .wp-block-gallery, .wp-block-video, .wp-block-embed, .wp-block-cover, .wp-block-media-text, .wp-block-columns { margin-block: 2.2em; }
figcaption, .wp-element-caption, .wp-caption-text, .wp-block-image figcaption, .wp-block-gallery figcaption, .wp-block-video figcaption, .wp-block-embed figcaption {
	margin: 12px 0 0;
	color: var(--od-muted);
	font-family: var(--od-font-mono);
	font-size: .72rem;
	letter-spacing: .08em;
	line-height: 1.6;
	text-align: left;
}
.wp-block-image figcaption::before, .wp-caption-text::before { content: "▲ "; color: var(--od-accent); }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	margin: 0;
	padding: 28px 12px 10px;
	background: linear-gradient(0deg, rgba(8, 2, 20, .85), transparent);
	color: #fff;
	text-align: left;
	border-radius: 0 0 calc(var(--od-radius) - 4px) calc(var(--od-radius) - 4px);
}
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::before { content: none; }
.wp-caption { max-width: 100%; }
.alignleft { float: left; margin: .4em 1.8em 1.2em 0; max-width: 50%; }
.alignright { float: right; margin: .4em 0 1.2em 1.8em; max-width: 50%; }
.aligncenter { display: block; margin-inline: auto; }
.wp-block-embed iframe, .wp-block-video video { border-radius: calc(var(--od-radius) - 4px); }

.wp-block-cover, .wp-block-cover-image { border-radius: var(--od-radius); overflow: hidden; padding: clamp(28px, 5vw, 64px); }
.wp-block-cover.alignfull { border-radius: 0; }
.wp-block-media-text { border-radius: var(--od-radius); overflow: hidden; background: var(--od-glass); }
.wp-block-media-text .wp-block-media-text__content { padding: clamp(22px, 4vw, 48px); }
.wp-block-media-text img { border-radius: 0; }

.wp-block-columns { gap: clamp(20px, 3vw, 40px); }
.wp-block-group.has-background { padding: clamp(22px, 3vw, 40px); border-radius: var(--od-radius); }

/* Separator: a horizon. */
.wp-block-separator, .entry-content hr {
	max-width: none;
	height: 2px;
	margin-block: 3em;
	border: 0;
	background: linear-gradient(90deg, transparent, var(--od-accent) 22%, var(--od-hi) 50%, var(--od-accent2) 78%, transparent);
	box-shadow: 0 0 22px 2px var(--od-glow-1);
	opacity: 1;
}
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { max-width: 220px; }
.wp-block-separator.is-style-dots { height: auto; background: none; box-shadow: none; }
.wp-block-separator.is-style-dots::before { color: var(--od-accent); font-size: 1.4rem; letter-spacing: 1.4em; padding-left: 1.4em; }

.wp-block-buttons { gap: 12px; margin-block: 1.8em; }
.wp-block-button__link { width: auto; }
.wp-block-button.has-custom-width .wp-block-button__link { width: 100%; }
.wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 16px 20px; border: 1px solid var(--od-line-2); border-radius: var(--od-radius); background: var(--od-glass); }
.wp-block-file .wp-block-file__button { min-height: 42px; padding: 4px 20px; font-size: .78rem; }

.wp-block-details { margin-block: 12px; border: 1px solid var(--od-line-2); border-radius: var(--od-radius); background: var(--od-glass); transition: border-color .25s, box-shadow .25s; }
.wp-block-details[open] { border-color: color-mix(in srgb, var(--od-accent) 60%, transparent); box-shadow: 0 0 40px -20px var(--od-glow-1); }
.wp-block-details summary { position: relative; padding: 18px 56px 18px 22px; font-family: var(--od-font-display); font-size: 1.12rem; font-weight: 500; cursor: pointer; list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 20px; top: 50%; color: var(--od-accent2); font-family: var(--od-font-mono); font-size: 1.4rem; line-height: 1; transform: translateY(-50%); transition: transform .3s var(--od-ease), color .3s; }
.wp-block-details[open] summary::after { color: var(--od-accent); transform: translateY(-50%) rotate(45deg); }
.wp-block-details > :not(summary) { margin: 0 22px 18px; color: var(--od-muted); }

.wp-block-latest-posts, .wp-block-categories, .wp-block-archives, .wp-block-page-list { list-style: none; padding-left: 0; }
.wp-block-search__inside-wrapper { gap: 8px; }
.wp-block-search__button { margin-left: 0; }
.wp-block-social-links .wp-social-link { background: var(--od-glass-2); }

.has-small-font-size { font-size: .875rem; }
.has-drop-cap:not(:focus)::first-letter { font-family: var(--od-font-display); font-style: italic; font-weight: 800; font-size: 4.6em; line-height: .8; margin: .08em .12em 0 0; color: var(--od-accent); }

/* Block styles and pattern helpers */
.is-style-osd { font-family: var(--od-font-mono) !important; font-size: .74rem !important; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--od-accent2); }
.is-style-horizon.wp-block-separator { max-width: none !important; }
.is-style-checks { list-style: none; padding-left: 0 !important; }
.entry-content ul.is-style-checks > li { padding-left: 1.9em; }
.entry-content ul.is-style-checks > li::before { left: 0; top: .45em; width: 1.05em; height: .6em; border-radius: 0; background: none; border-left: 2px solid var(--od-accent2); border-bottom: 2px solid var(--od-accent2); transform: rotate(-45deg) scale(.8); }

.od-stat { text-align: center; }
.od-stat .od-stat-number, .od-stat-number { margin: 0; font-size: clamp(2.6rem, 5.4vw, 4.4rem); }
.od-stat p { margin: 6px 0 0; color: var(--od-muted); }
.od-stat-band { padding: clamp(28px, 4vw, 52px) clamp(20px, 3vw, 40px); }
.od-stat-band .wp-block-columns { margin-block: 0; }

.od-pattern-logos { text-align: center; }
.od-pattern-logos p { margin: 0; }
.od-logo-row { font-family: var(--od-font-display); font-size: 1.3rem; font-style: italic; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: color-mix(in srgb, var(--od-text) 62%, transparent); word-spacing: 1.6em; line-height: 2.2; }

.od-pattern-plan { display: flex; flex-direction: column; height: 100%; }
.od-pattern-plan .wp-block-buttons { margin-top: auto; margin-bottom: 0; }
.od-pattern-plan .wp-block-button, .od-pattern-plan .wp-block-button__link { width: 100%; }
.od-pattern-price { margin: 0 0 .2em !important; font-size: clamp(2.6rem, 4.4vw, 3.6rem) !important; }

.od-pattern-cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(48px, 8vw, 110px) var(--od-pad) clamp(150px, 20vw, 260px);
	border-radius: var(--od-radius);
	background: linear-gradient(180deg, var(--od-sky1) 0%, var(--od-sky2) 40%, var(--od-sky3) 82%, color-mix(in srgb, var(--od-sun3) 50%, var(--od-sky3)) 100%);
	text-align: center;
	box-shadow: 0 0 0 1px var(--od-line-2);
}
.od-pattern-cta.alignfull { border-radius: 0; }
.od-pattern-cta::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	z-index: -1;
	width: clamp(260px, 44vw, 560px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
	transform: translate(-50%, 54%);
}
.od-pattern-cta > * { position: relative; }

.od-split { align-items: center !important; }

/* ==========================================================================
   Single post: footer, author, navigation
   ========================================================================== */

.entry-footer { max-width: min(100%, 68ch); margin: clamp(36px, 5vw, 56px) auto 0; }
body:not(.no-sidebar) .od-layout--single .entry-footer { margin-inline: 0; }
.entry-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.entry-tags .od-osd { margin-right: 6px; color: var(--od-muted); }
.entry-tags a, .tagcloud a, .wp-block-tag-cloud a {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 2px 14px;
	border: 1px solid var(--od-line-2);
	border-radius: 999px;
	color: var(--od-text);
	font-family: var(--od-font-mono);
	font-size: .74rem !important;
	letter-spacing: .06em;
	text-decoration: none;
	transition: border-color .2s, color .2s, box-shadow .2s;
}
.entry-tags a::before, .tagcloud a::before, .wp-block-tag-cloud a::before { content: "#"; color: var(--od-accent); margin-right: 1px; }
.entry-tags a:hover, .tagcloud a:hover, .wp-block-tag-cloud a:hover { border-color: var(--od-accent); color: var(--od-accent); box-shadow: 0 0 20px -8px var(--od-glow-1); }
.tagcloud, .wp-block-tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; }

.od-author { display: flex; gap: 20px; align-items: flex-start; margin-top: 32px; padding: clamp(20px, 3vw, 30px); }
.od-author p { margin: 0; }
.od-author .od-osd { color: var(--od-muted); }
.od-author-name { font-family: var(--od-font-display); font-size: 1.2rem; font-weight: 600; }
.od-author-name a { color: var(--od-text); text-decoration: none; }
.od-author-bio { margin-top: 6px !important; color: var(--od-muted); font-size: .96rem; }

.post-navigation { max-width: 920px; margin: clamp(40px, 5vw, 64px) auto 0; }
body:not(.no-sidebar) .od-layout--single .post-navigation { margin-inline: 0; }
.post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.post-navigation a {
	display: flex;
	flex-direction: column;
	gap: 8px;
	height: 100%;
	padding: 20px 24px;
	border: 1px solid var(--od-line-2);
	border-radius: var(--od-radius);
	background: var(--od-glass);
	color: var(--od-text);
	text-decoration: none;
	transition: border-color .25s, box-shadow .25s, transform .25s var(--od-ease);
}
.post-navigation a:hover { border-color: var(--od-accent2); box-shadow: 0 0 40px -18px var(--od-glow-2); transform: translateY(-3px); }
.post-navigation .nav-next { grid-column: 2; text-align: right; }
.post-navigation .nav-label { color: var(--od-accent2); }
.post-navigation .nav-title { font-family: var(--od-font-display); font-size: 1.12rem; font-weight: 600; line-height: 1.3; }
@media (max-width: 640px) {
	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.post-navigation .nav-next { grid-column: 1; }
}

/* ==========================================================================
   Comments
   ========================================================================== */

.comments-area { max-width: 920px; margin: clamp(48px, 6vw, 80px) auto 0; padding-top: clamp(36px, 5vw, 56px); border-top: 1px solid var(--od-line); }
body:not(.no-sidebar) .od-layout--single .comments-area { margin-inline: 0; }
.comments-title, .comment-reply-title { margin: 0 0 28px; font-size: clamp(1.5rem, 3vw, 2rem); font-style: italic; font-weight: 800; text-transform: uppercase; }
.comment-list, .comment-list .children { margin: 0; padding: 0; list-style: none; }
.comment-list > li { margin-bottom: 18px; }
.comment-list .children { margin: 18px 0 0 clamp(16px, 4vw, 44px); padding-left: clamp(14px, 2.4vw, 26px); border-left: 2px solid transparent; border-image: linear-gradient(180deg, var(--od-accent), var(--od-accent2)) 1; }
.comment-list .children > li { margin-bottom: 18px; }
.comment-list .children > li:last-child { margin-bottom: 0; }
.comment-body { position: relative; padding: clamp(18px, 2.6vw, 28px); border: 1px solid var(--od-line); border-radius: var(--od-radius); background: var(--od-glass); }
.bypostauthor > .comment-body { border-color: color-mix(in srgb, var(--od-accent) 55%, transparent); box-shadow: 0 0 40px -22px var(--od-glow-1); }
.comment-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 14px; }
.comment-author { display: flex; align-items: center; gap: 12px; }
.comment-author .avatar { width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--od-accent2); }
.comment-author .fn { font-family: var(--od-font-display); font-size: 1.08rem; font-weight: 600; }
.comment-author .fn a { color: var(--od-text); text-decoration: none; }
.comment-metadata { color: var(--od-muted); font-size: .66rem; }
.comment-metadata a { color: inherit; text-decoration: none; }
.comment-metadata a:hover { color: var(--od-accent2); }
.comment-metadata .edit-link { margin-left: 10px; }
.comment-content { font-size: .98rem; }
.comment-content p:last-child { margin-bottom: 0; }
.comment-awaiting-moderation { margin: 0 0 12px; color: var(--od-sun1); }
.reply { margin-top: 14px; }
.comment-reply-link {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 2px 16px;
	border: 1px solid var(--od-line-2);
	border-radius: 999px;
	color: var(--od-accent2);
	font-family: var(--od-font-mono);
	font-size: .7rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
}
.comment-reply-link::before { content: "↳"; margin-right: 8px; }
.comment-reply-link:hover { border-color: var(--od-accent2); color: var(--od-accent2); box-shadow: 0 0 20px -8px var(--od-glow-2); }
.od-ping .comment-body { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding-block: 14px; }
.od-ping .od-osd { color: var(--od-accent); }
.no-comments { margin-top: 24px; color: var(--od-muted); }

.comment-respond { margin-top: clamp(32px, 4vw, 48px); padding: clamp(22px, 3.4vw, 40px); border: 1px solid var(--od-line-2); border-radius: var(--od-radius); background: var(--od-glass); }
.comment-list .comment-respond { margin-top: 18px; }
.comment-reply-title small a { color: var(--od-accent); text-decoration: none; }
.comment-notes, .logged-in-as { color: var(--od-muted); font-size: .9rem; }
.comment-form { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.comment-form > * { grid-column: 1 / -1; margin: 0; }
.comment-form .comment-form-author, .comment-form .comment-form-email { grid-column: auto; }
@media (max-width: 600px) { .comment-form .comment-form-author, .comment-form .comment-form-email { grid-column: 1 / -1; } }
.comment-form-cookies-consent { display: flex; gap: 12px; align-items: flex-start; color: var(--od-muted); font-size: .9rem; }
.comment-form-cookies-consent label { margin: 0; font-family: var(--od-font-body); font-size: .9rem; letter-spacing: 0; text-transform: none; color: var(--od-muted); }
.required { color: var(--od-accent); }

/* ==========================================================================
   Forms
   ========================================================================== */

label {
	display: block;
	margin-bottom: 8px;
	color: var(--od-muted);
	font-family: var(--od-font-mono);
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
}

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="number"], input[type="tel"], input[type="date"], input[type="time"], select, textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 16px;
	border: 1px solid var(--od-line-2);
	border-radius: 14px;
	background: var(--od-field);
	color: var(--od-text);
	font-family: var(--od-font-body);
	font-size: 1rem;
	line-height: 1.5;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
	-webkit-appearance: none;
	appearance: none;
}
textarea { min-height: 150px; resize: vertical; }
select {
	padding-right: 44px;
	background-image: linear-gradient(45deg, transparent 50%, var(--od-accent2) 50%), linear-gradient(135deg, var(--od-accent2) 50%, transparent 50%);
	background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}
select option { background: var(--od-sky2); color: var(--od-text); }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--od-muted) 75%, transparent); opacity: 1; }
input:focus, select:focus, textarea:focus {
	outline: none;
	border-color: var(--od-accent2);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--od-accent2) 24%, transparent), 0 0 28px -8px var(--od-glow-2);
}
input[type="checkbox"], input[type="radio"] {
	flex: none;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	border: 1px solid var(--od-line-2);
	border-radius: 6px;
	background: var(--od-field);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
input[type="radio"] { border-radius: 50%; }
input[type="checkbox"]:checked, input[type="radio"]:checked { border-color: transparent; background: var(--od-neon); box-shadow: inset 0 0 0 4px var(--od-bg); }
input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible { outline: 2px solid var(--od-accent2); outline-offset: 3px; }
fieldset { margin: 0 0 1.5em; padding: 18px 20px; border: 1px solid var(--od-line-2); border-radius: var(--od-radius); }
legend { padding: 0 8px; font-family: var(--od-font-mono); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--od-accent2); }

.search-form { position: relative; display: flex; }
.search-form .search-field { min-height: 54px; padding: 0 60px 0 22px; border-radius: 999px; }
.search-form .search-submit {
	position: absolute;
	top: 5px;
	right: 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--od-heat);
	color: var(--od-ink);
	cursor: pointer;
	transition: transform .2s var(--od-ease), box-shadow .2s;
}
.search-form .search-submit:hover { transform: scale(1.06); box-shadow: 0 0 24px -4px var(--od-glow-1); }

.post-password-form { max-width: 520px; margin-inline: auto; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--od-line-2); border-radius: var(--od-radius); background: var(--od-glass); }
.post-password-form p:first-child::before { content: "🔒"; content: "// ACCESS CODE REQUIRED"; display: block; margin-bottom: 10px; color: var(--od-accent); font-family: var(--od-font-mono); font-size: .72rem; letter-spacing: .16em; }
.post-password-form p:last-child { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 0; }
.post-password-form label { flex: 1; min-width: 220px; margin: 0; }
.post-password-form input[type="password"] { margin-top: 8px; }

.od-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.od-field { min-width: 0; }
.od-field--full, .od-form > .od-field--full { grid-column: 1 / -1; }
.od-consent { display: flex; gap: 12px; align-items: flex-start; }
.od-consent label { margin: 0; font-family: var(--od-font-body); font-size: .9rem; letter-spacing: 0; line-height: 1.55; text-transform: none; }
.od-form-actions { margin: 4px 0 0; }
.od-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .od-form { grid-template-columns: 1fr; } }

.od-notice { margin: 0 0 22px; padding: 16px 20px; border: 1px solid var(--od-accent2); border-radius: 14px; background: color-mix(in srgb, var(--od-accent2) 10%, transparent); }
.od-notice p { margin: 0; }
.od-notice--error { border-color: var(--od-accent); background: color-mix(in srgb, var(--od-accent) 10%, transparent); }

/* Contact page */
.od-contact-row { display: grid; gap: clamp(32px, 5vw, 72px); padding-block: clamp(44px, 6vw, 84px); }
@media (min-width: 940px) { .od-contact-row { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; } }
.od-contact-intro .entry-content > * { max-width: none; margin-inline: 0; }
.od-contact-panel { padding: clamp(22px, 3.4vw, 40px); }
.od-contact-details { display: grid; gap: 0; margin: 32px 0 0; border-top: 1px solid var(--od-line); }
.od-contact-details > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--od-line); }
.od-contact-details dt { padding-top: 4px; color: var(--od-accent2); font-weight: 500; }
.od-contact-details dd { margin: 0; }
.od-contact-details a { color: var(--od-text); }
.od-social--contact { margin-top: 28px; }

/* ==========================================================================
   Widgets
   ========================================================================== */

.widget-area { min-width: 0; }
.widget { margin-bottom: 28px; padding: 24px; border: 1px solid var(--od-line); border-radius: var(--od-radius); background: var(--od-glass); font-size: .96rem; }
.widget-title, .widget .wp-block-heading, .widget_block > h2, .widget .wp-block-search__label {
	margin: 0 0 16px;
	color: var(--od-accent2);
	font-family: var(--od-font-mono);
	font-size: .74rem;
	font-style: normal;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.widget ul, .widget ol { margin: 0; padding: 0; list-style: none; }
.widget li { padding: 9px 0; border-bottom: 1px solid var(--od-line); line-height: 1.45; }
.widget li:last-child { border-bottom: 0; padding-bottom: 0; }
.widget li:first-child { padding-top: 0; }
.widget li ul { margin-top: 8px; padding-left: 16px; }
.widget a { color: var(--od-text); text-decoration: none; }
.widget a:hover { color: var(--od-accent2); }
.widget .post-date, .widget .wp-block-latest-posts__post-date { display: block; margin-top: 2px; color: var(--od-muted); font-family: var(--od-font-mono); font-size: .7rem; letter-spacing: .1em; }
.widget p:last-child { margin-bottom: 0; }
.widget .wp-block-group { margin: 0; }
.widget select { width: 100%; }
.wp-block-calendar table, .widget_calendar table { font-size: .84rem; }
.wp-block-calendar th, .wp-block-calendar td, .widget_calendar th, .widget_calendar td { padding: 7px 4px; text-align: center; }
.wp-block-calendar table caption, .widget_calendar caption { margin-bottom: 10px; color: var(--od-muted); font-family: var(--od-font-mono); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }

/* ==========================================================================
   Footer — always the night side of the day, whatever the preset.
   ========================================================================== */

.site-footer {
	position: relative;
	background: linear-gradient(180deg, var(--od-foot-bg) 0%, #000 100%);
	color: var(--od-foot-muted);
	font-size: .96rem;
	overflow: hidden;
}
.site-footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: linear-gradient(90deg, transparent, var(--od-foot-accent) 30%, var(--od-foot-accent2) 70%, transparent); opacity: .7; }
.site-footer a { color: var(--od-foot-text); text-decoration: none; }
.site-footer a:hover { color: var(--od-foot-accent2); }

.site-footer-columns {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 56px);
	padding-block: clamp(52px, 7vw, 92px) clamp(28px, 4vw, 48px);
}
.footer-brand .site-title { font-size: 1.7rem; }
.footer-brand .site-title a { color: var(--od-foot-text); }
.footer-brand .site-title-text { background-image: linear-gradient(180deg, #fff 0%, var(--od-foot-accent2) 40%, var(--od-sun4) 50%, #12021f 50%, #12021f 54%, var(--od-foot-accent) 54%, #fff 100%); }
.footer-about { max-width: 30em; margin: 18px 0 0; color: var(--od-foot-muted); }
.footer-about:empty { display: none; }

.site-footer .widget { margin: 0 0 24px; padding: 0; border: 0; background: none; }
.site-footer .widget-title, .site-footer .widget .wp-block-heading, .site-footer .footer-column > h2 { color: var(--od-foot-accent2); }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li, .site-footer .widget li { padding: 6px 0; border: 0; line-height: 1.45; }
.site-footer .search-field { border-color: rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); color: #fff; }
.site-footer .search-field::placeholder { color: rgba(255, 255, 255, .55); }

.od-social { display: flex; flex-wrap: wrap; gap: 10px; }
.od-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--od-line-2);
	border-radius: 50%;
	color: var(--od-text);
	transition: border-color .2s, color .2s, box-shadow .2s, transform .2s var(--od-ease);
}
.od-social a:hover { border-color: var(--od-accent2); color: var(--od-accent2); box-shadow: 0 0 22px -6px var(--od-glow-2); transform: translateY(-2px); }
.od-social--footer { margin-top: 24px; }
.site-footer .od-social a { border-color: rgba(255, 255, 255, .22); color: var(--od-foot-text); }
.site-footer .od-social a:hover { border-color: var(--od-foot-accent2); color: var(--od-foot-accent2); }

/* The setting sun line, then the grid running out to black. */
.footer-scene { position: relative; height: clamp(190px, 22vw, 270px); margin-top: clamp(8px, 2vw, 24px); --od-floor-h: 74%; }
.footer-scene > span { position: absolute; display: block; }
.footer-sun {
	left: 50%;
	bottom: 74%;
	width: clamp(150px, 18vw, 230px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--od-sun);
	-webkit-mask-image: var(--od-stripes);
	mask-image: var(--od-stripes);
	transform: translate(-50%, 84%);
}
.footer-scene::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 74%;
	width: min(90%, 900px);
	height: 120px;
	background: radial-gradient(50% 100% at 50% 100%, color-mix(in srgb, var(--od-sun3) 50%, transparent), transparent 70%);
	transform: translateX(-50%);
}
.footer-floor {
	left: 0;
	right: 0;
	bottom: 0;
	height: 74%;
	overflow: hidden;
	background: linear-gradient(180deg, color-mix(in srgb, var(--od-foot-bg) 80%, #000) 0%, #000 70%);
	perspective: 300px;
	perspective-origin: 50% 0;
}
.footer-floor::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 2;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--od-sun3) 22%, var(--od-sun1) 50%, var(--od-sun3) 78%, transparent);
	box-shadow: 0 0 34px 8px color-mix(in srgb, var(--od-sun3) 55%, transparent);
}
.footer-floor::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(0, 0, 0, .5) 0%, transparent 22%, transparent 40%, #000 92%);
}
.footer-floor .od-grid { background: linear-gradient(90deg, var(--od-foot-accent2), var(--od-foot-accent) 38%, var(--od-foot-accent) 62%, var(--od-foot-accent2)); opacity: .85; }

.site-footer-bar { position: relative; z-index: 3; margin-top: -58px; padding-bottom: 26px; }
.site-footer--landing .site-footer-bar, .site-footer-columns + .site-footer-bar { margin-top: 0; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .1); }
.site-footer-bar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 28px; }
.site-copyright, .theme-credit { margin: 0; color: var(--od-foot-muted); font-family: var(--od-font-mono); font-size: .72rem; letter-spacing: .08em; }
.theme-credit a { color: var(--od-foot-text); text-decoration: underline; text-decoration-color: var(--od-foot-accent); text-underline-offset: .3em; }
.footer-navigation ul { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; padding: 0; list-style: none; }
.footer-navigation a { display: inline-block; padding: 6px 0; font-family: var(--od-font-mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }

/* ==========================================================================
   404 — GAME OVER
   ========================================================================== */

.od-404 {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: 100vh;
	min-height: 100svh;
	padding: calc(var(--od-header-h) + 40px) 0 calc(var(--od-floor-h) + 10px);
	overflow: hidden;
	text-align: center;
}
.od-404-inner { display: flex; flex-direction: column; align-items: center; }
.od-404-title { margin: 0; font-size: clamp(3.4rem, 13.5vw, 10.5rem); line-height: .98; background-size: 100% .98em; }
.od-404-continue {
	display: flex;
	align-items: center;
	gap: .5em;
	margin: clamp(14px, 2.4vh, 26px) 0 0;
	font-family: var(--od-font-display);
	font-size: clamp(1.5rem, 4.6vw, 2.8rem);
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--od-sun1);
	text-shadow: 0 0 22px color-mix(in srgb, var(--od-sun2) 70%, transparent);
}
.od-light .od-404-continue { color: var(--od-accent); text-shadow: none; }
.od-countdown { display: inline-block; min-width: 1.1em; padding: .06em .22em .1em; border: 3px solid currentColor; border-radius: .22em; font-style: normal; font-family: var(--od-font-mono); font-weight: 700; font-size: .92em; }
.od-404-text { max-width: 34em; margin: 22px auto 0; font-weight: 500; text-shadow: 0 0 14px var(--od-sky1), 0 0 3px var(--od-sky1); }
.od-404-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 28px 0 0; }
.od-404 .od-btn { box-shadow: 0 0 0 6px color-mix(in srgb, var(--od-sky1) 42%, transparent), 0 0 34px -4px var(--od-glow-1); }
.od-btn--coin span::before { content: "◉ "; }
.od-fx-borders .od-btn--coin span { animation: od-coin 1.1s steps(2, jump-none) infinite; }
@keyframes od-coin { 50% { opacity: .45; } }
.od-404-search { width: min(100%, 440px); margin-top: 26px; }
.od-404-search .search-field { background: color-mix(in srgb, var(--od-sky1) 78%, transparent); }

/* ==========================================================================
   Reveal on scroll. Only ever a small slide — the content is never hidden, so
   a page that is printed, saved or captured without scrolling is complete.
   ========================================================================== */

.od-js .od-fx-reveal .od-reveal { translate: 0 28px; transition: translate .8s var(--od-ease), transform .35s var(--od-ease), box-shadow .35s var(--od-ease), background-color .35s; }
.od-js .od-fx-reveal .od-reveal.is-in { translate: 0 0; }
.od-js .od-fx-reveal .od-reveal:nth-child(3n + 2) { transition-delay: .08s, 0s, 0s, 0s; }
.od-js .od-fx-reveal .od-reveal:nth-child(3n + 3) { transition-delay: .16s, 0s, 0s, 0s; }

/* ==========================================================================
   Without the glow
   ========================================================================== */

body:not(.od-fx-glow) .od-chrome, body:not(.od-fx-glow) .is-style-chrome { filter: drop-shadow(0 2px 0 color-mix(in srgb, var(--od-ink) 85%, transparent)); }

/* ==========================================================================
   Smaller screens
   ========================================================================== */

@media (max-width: 1100px) {
	.od-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.od-plans.od-count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 899.98px) {
	.od-features, .od-features.od-count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.od-plans, .od-plans.od-count-2 { grid-template-columns: minmax(0, 480px); justify-content: center; gap: 30px; }
	.od-steps, .od-steps.od-count-2, .od-steps.od-count-4 { grid-template-columns: 1fr; gap: 8px; }
	.od-steps::before { left: clamp(2rem, 9vw, 3rem); right: auto; top: 0; bottom: 0; width: 3px; height: auto; background: repeating-linear-gradient(180deg, color-mix(in srgb, var(--od-sun1) 70%, transparent) 0 22px, transparent 22px 44px); -webkit-mask-image: linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent); }
	.od-step { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 20px; align-items: start; padding-block: 14px; }
	.od-step-num { grid-row: 1 / span 2; margin: 0; padding: .06em .12em .1em 0; font-size: clamp(4rem, 17vw, 5.6rem); }
	.od-step-title { align-self: end; margin-top: .5em; }
	.od-section-head-row { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 640px) {
	body { font-size: 16.5px; }
	.od-features, .od-features.od-count-2, .od-features.od-count-4, .od-cards, body:not(.no-sidebar) .od-layout .od-cards { grid-template-columns: 1fr; }
	.site-footer-columns { grid-template-columns: 1fr; }
	.od-logos { gap: 12px 30px; }
	.od-logos li { font-size: 1.1rem !important; }
	.alignleft, .alignright { float: none; max-width: 100%; margin: 1.5em 0; }
	.od-author { flex-direction: column; }
	.od-contact-details > div { grid-template-columns: 1fr; gap: 2px; }
	.site-footer-bar-inner { flex-direction: column; align-items: flex-start; }
	.od-pagehead-sun { opacity: .55; }
	.od-shot { transform: none; }
	.od-fx-float .od-shot { animation: none; }
	.od-shot-bar { height: 24px; gap: 5px; padding: 0 10px; }
	.od-shot-bar i { width: 7px; height: 7px; }
}

/* ==========================================================================
   Reduced motion: a still scene. The sun is up, the grid is parked, nothing
   blinks, floats, spins or slides.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation: none !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.od-comet { display: none !important; }
	.od-js .od-fx-reveal .od-reveal { translate: none !important; }
	.od-shot { transform: none; }
	.od-btn:hover, .od-glass:hover, .od-card:hover, .od-feature:hover, .od-quote:hover { transform: none; }
	.od-card:hover .od-card-media img { transform: none; }
}

/* ==========================================================================
   Print
   ========================================================================== */

@media print {
	.site-header, .site-footer, .od-scene, .od-hero-ctas, .comment-respond, .post-navigation, .widget-area, .od-cta, .od-section--newsletter { display: none !important; }
	body { background: #fff; color: #000; }
	.od-chrome, .is-style-chrome, .od-plan-amount, .site-title-text { -webkit-text-fill-color: #000; background: none; filter: none; }
	.od-hero, .od-pagehead { min-height: 0; padding: 20px 0; }
	a { color: #000; }
}

/* ---- Hero legibility over the sun ----------------------------------------
   The sun is composed BEHIND the copy on purpose, and white body text over its
   brightest band fell to roughly 2:1 — unreadable, on the theme's own
   defaults. A full scrim fixed the contrast but turned the sun into a brown
   blob, which loses the whole picture. So: no scrim over the artwork, and the
   protection travels with the TEXT instead — a tight shadow that is invisible
   against the night sky and only does work where the type sits on light. */
.od-hero-inner { position: relative; isolation: isolate; }
.od-hero-sub {
	text-shadow:
		0 0 2px rgba(6, 3, 18, .95),
		0 1px 4px rgba(6, 3, 18, .9),
		0 2px 14px rgba(6, 3, 18, .8);
}
.od-hero-kicker, .od-hero-note { text-shadow: 0 1px 6px rgba(6, 3, 18, .85); }
