/* ==========================================================================
   I-Mortal — front-end styles
   Colors are tokens; the options panel overrides them on :root when changed.
   ========================================================================== */

:root {
	--im-ink: #0D1714;
	--im-ink-rgb: 13, 23, 20;
	--im-ink-2: #22322D;
	--im-deep: #0B1311;
	--im-card: #131D1A;
	--im-paper: #F2F0EA;
	--im-paper-rgb: 242, 240, 234;
	--im-surface: #FBFAF7;
	--im-muted: #4A5551;
	--im-link-hover: #2F4A3F;
	--im-accent: #C9F26B;
	--im-accent-rgb: 201, 242, 107;
	--im-accent-2: #D7F78A;
	--im-amber: #EBB65A;
	--im-amber-rgb: 235, 182, 90;
	--im-amber-ink: #6B4508;
	--im-error: #F08C6C;

	--im-sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--im-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	--im-serif: 'Instrument Serif', Georgia, 'Times New Roman', serif;

	--im-ease: cubic-bezier(.16, 1, .3, 1);
	--im-max: 1280px;
	--im-gutter: clamp(20px, 5vw, 56px);
	--im-section-y: clamp(72px, 12vw, 140px);
}

/* Base ------------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--im-paper);
	color: var(--im-ink);
	font-family: var(--im-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
a { color: var(--im-ink); text-decoration: none; }
a:hover { color: var(--im-link-hover); }
::selection { background: var(--im-accent); color: var(--im-ink); }
button, input, select, textarea { font: inherit; color: inherit; }
img, svg, video { max-width: 100%; }
img { height: auto; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.im-dark :focus-visible { outline-color: var(--im-accent); }
.im-main:focus { outline: none; }
.im-menu-open { overflow: hidden; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.im-skip {
	position: absolute; left: 12px; top: -100px; z-index: 100;
	padding: 12px 18px; border-radius: 999px;
	background: var(--im-ink); color: var(--im-paper); font-weight: 500;
}
.im-skip:focus { top: 12px; color: var(--im-paper); }

/* Shared pieces ---------------------------------------------------------- */

.im-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--im-accent); flex: none; }

.im-section {
	max-width: var(--im-max);
	margin: 0 auto;
	padding: var(--im-section-y) var(--im-gutter);
	display: flex;
	flex-direction: column;
	gap: clamp(36px, 5vw, 56px);
	scroll-margin-top: 72px;
}
.im-head { display: flex; flex-direction: column; gap: 18px; max-width: 780px; }
.im-head--wide { max-width: 860px; }

.im-eyebrow {
	margin: 0;
	font-family: var(--im-mono);
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--im-muted);
	display: flex;
	align-items: center;
	gap: 10px;
}
.im-eyebrow::before { content: ""; width: 8px; height: 8px; background: var(--im-ink); transform: rotate(45deg); flex: none; }
.im-eyebrow--accent { color: var(--im-accent); }
.im-eyebrow--accent::before { background: var(--im-accent); }

.im-h2 {
	margin: 0;
	font-size: clamp(40px, 8.6vw, 76px);
	line-height: 1;
	letter-spacing: -.045em;
	font-weight: 500;
	text-wrap: balance;
}
.im-h2 em { font-family: var(--im-serif); font-weight: 400; font-size: 1.08em; letter-spacing: -.02em; }
.im-h2--md { font-size: clamp(40px, 7.6vw, 68px); }
.im-h2--sm { font-size: clamp(40px, 7vw, 64px); }

.im-lead { margin: 0; font-size: 17px; line-height: 1.55; color: var(--im-muted); text-wrap: pretty; }

/* Buttons */
.im-btn {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	font-weight: 500;
	white-space: nowrap;
	transition: background-color .2s, color .2s, border-color .2s;
}
.im-btn--sm { height: 44px; padding: 0 18px; gap: 8px; font-size: 14px; border: 0; cursor: pointer; }
.im-btn--lg { height: 58px; padding: 0 9px 0 26px; gap: 14px; font-size: 16px; }
.im-btn--dark { background: var(--im-ink); color: var(--im-paper); }
.im-btn--dark:hover { background: var(--im-ink-2); color: var(--im-paper); }
.im-btn--outline { height: 58px; padding: 0 24px; gap: 10px; font-size: 16px; border: 1px solid rgba(var(--im-ink-rgb), .2); color: var(--im-ink); }
.im-btn--outline:hover { background: var(--im-surface); color: var(--im-ink); }
.im-btn--line { height: 46px; padding: 0 18px; font-size: 14px; border: 1px solid rgba(var(--im-ink-rgb), .18); color: var(--im-ink); }
.im-btn--line:hover { background: var(--im-paper); color: var(--im-ink); }
.im-btn__arrow {
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--im-accent); color: var(--im-ink);
	display: grid; place-items: center; font-size: 18px; flex: none;
}
.im-btn__play { width: 0; height: 0; border-left: 8px solid var(--im-ink); border-top: 5px solid transparent; border-bottom: 5px solid transparent; }

/* Rounded dark blocks (panel, join) */
.im-block {
	margin: 0 clamp(8px, 1.5vw, 16px);
	border-radius: clamp(28px, 4vw, 44px);
	background: var(--im-deep);
	color: var(--im-paper);
	position: relative;
	overflow: hidden;
	scroll-margin-top: 72px;
}
.im-block a:not([class]) { color: var(--im-accent); }

/* Announcement bar ------------------------------------------------------- */

.im-announce {
	background: var(--im-ink);
	color: var(--im-paper);
	font-size: 13px;
	line-height: 1.4;
	padding: 10px clamp(16px, 4vw, 40px);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px 10px;
	text-align: center;
	flex-wrap: wrap;
}
.im-announce__lead { display: inline-flex; align-items: center; gap: 8px; }
.im-announce__lead strong { font-weight: 600; }
.im-announce__text { color: rgba(var(--im-paper-rgb), .72); }
.im-announce__link, .im-announce__link:hover { color: var(--im-accent); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* Header ----------------------------------------------------------------- */

.im-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(var(--im-paper-rgb), .84);
	-webkit-backdrop-filter: saturate(1.4) blur(16px);
	backdrop-filter: saturate(1.4) blur(16px);
	border-bottom: 1px solid rgba(var(--im-ink-rgb), .08);
}
.admin-bar .im-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .im-header { top: 0; } }

.im-nav {
	max-width: var(--im-max);
	margin: 0 auto;
	height: 64px;
	padding: 0 clamp(16px, 4vw, 40px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.im-nav__links { display: none; }
.im-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 30px; font-size: 14px; font-weight: 500; }
.im-nav__list a { color: var(--im-muted); }
.im-nav__list a:hover { color: var(--im-ink); }
.im-nav__actions { display: flex; align-items: center; gap: 8px; }

.im-menu-toggle {
	width: 44px; height: 44px; padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(var(--im-ink-rgb), .16);
	background: transparent;
	display: grid; place-content: center; gap: 5px;
	cursor: pointer;
}
.im-menu-toggle span { display: block; width: 16px; height: 1.5px; background: var(--im-ink); }

@media (min-width: 920px) {
	.im-nav__links { display: block; }
	.im-menu-toggle { display: none; }
}

/* Logo */
.im-logo { display: flex; align-items: center; gap: 2px; font-weight: 600; font-size: 21px; letter-spacing: -.04em; color: var(--im-ink); }
.im-logo:hover { color: var(--im-ink); }
.im-logo--footer { font-size: 26px; }
.im-logo--menu { color: var(--im-paper); }
.im-logo__ecg { display: block; overflow: visible; margin: 0 2px; }
.im-logo__ecg polyline { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 39 39; }
.im-logo--menu .im-logo__ecg polyline { stroke: var(--im-accent); }
.im-logo__img { display: block; height: 28px; width: auto; }
.im-logo--footer .im-logo__img { height: 34px; }

/* Hero ------------------------------------------------------------------- */

.im-hero { position: relative; overflow: hidden; scroll-margin-top: 72px; }
.im-hero__dots {
	position: absolute; inset: 0; pointer-events: none;
	background-image: radial-gradient(rgba(var(--im-ink-rgb), .13) 1px, transparent 1.2px);
	background-size: 22px 22px;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 72% 45%, #000 10%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 60% at 72% 45%, #000 10%, transparent 75%);
}
.im-hero__inner {
	position: relative;
	max-width: var(--im-max);
	margin: 0 auto;
	padding: clamp(32px, 6vw, 80px) var(--im-gutter) clamp(56px, 8vw, 104px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(48px, 6vw, 72px);
}
.im-hero__copy { flex: 1.3 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 26px; }

.im-badge {
	margin: 0;
	align-self: flex-start;
	display: flex; align-items: center; gap: 10px;
	padding: 6px 14px 6px 6px;
	border-radius: 999px;
	background: var(--im-surface);
	border: 1px solid rgba(var(--im-ink-rgb), .1);
	font-size: 13px; font-weight: 500;
}
.im-badge__icon { position: relative; width: 22px; height: 22px; border-radius: 50%; background: var(--im-ink); display: grid; place-items: center; flex: none; }
.im-badge__icon::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--im-accent); }
.im-badge__ping { position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--im-ink); }

.im-hero__title {
	margin: 0;
	font-family: var(--im-serif);
	font-weight: 400;
	font-size: clamp(80px, 21vw, 156px);
	line-height: .86;
	letter-spacing: -.03em;
}
.im-hero__title > span { display: block; }
.im-nowrap { white-space: nowrap; }
.im-hl {
	font-style: italic;
	padding-right: .03em;
	background-image: linear-gradient(var(--im-accent), var(--im-accent));
	background-repeat: no-repeat;
	background-position: 0 84%;
	background-size: 100% .2em;
}
.im-hero__text { margin: 0; max-width: 520px; font-size: clamp(17px, 2.1vw, 20px); line-height: 1.5; color: var(--im-muted); text-wrap: pretty; }
.im-hero__text strong { color: var(--im-ink); font-weight: 600; }
.im-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }

.im-hero__visual { flex: 1 1 380px; min-width: 0; display: flex; justify-content: center; }

/* Dial */
.im-ring { position: relative; width: min(100%, 460px); aspect-ratio: 1; }
.im-ring > div { position: absolute; border-radius: 50%; }
.im-ring__disc {
	inset: 6%;
	background: radial-gradient(circle at 34% 28%, var(--im-ink-2), var(--im-deep) 68%);
	box-shadow: 0 50px 90px -40px rgba(var(--im-ink-rgb), .6), inset 0 0 0 1px rgba(255, 255, 255, .06);
}
.im-ring__ticks {
	inset: 9%;
	background: repeating-conic-gradient(rgba(var(--im-paper-rgb), .34) 0 .7deg, transparent .7deg 6deg);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px));
}
.im-ring__sweep {
	inset: 9%;
	background: conic-gradient(from 0deg, rgba(var(--im-accent-rgb), 0) 0deg, rgba(var(--im-accent-rgb), 0) 250deg, rgba(var(--im-accent-rgb), .22) 352deg, rgba(var(--im-accent-rgb), .85) 359.4deg, rgba(var(--im-accent-rgb), 0) 360deg);
}
.im-ring__progress {
	inset: 17%;
	background: conic-gradient(var(--im-accent) 0 var(--fill, 87%), rgba(var(--im-paper-rgb), .12) var(--fill, 87%) 100%);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
}
.im-ring__dash { inset: 22%; border: 1px dashed rgba(var(--im-paper-rgb), .22); }
.im-ring .im-ring__center {
	inset: 26%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
	text-align: center; color: var(--im-paper);
}
.im-ring__label { font-family: var(--im-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(var(--im-paper-rgb), .66); }
.im-ring__value { font-family: var(--im-serif); font-size: clamp(68px, 18vw, 108px); line-height: .85; letter-spacing: -.02em; }
.im-ring__badge { font-family: var(--im-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; background: var(--im-accent); color: var(--im-ink); padding: 5px 10px; border-radius: 999px; }

/* Floating cards around the dial */
.im-ring .im-chip-pos { border-radius: 0; z-index: 2; }
.im-chip-pos--1 { left: -3%; top: 9%; }
.im-chip-pos--2 { right: -4%; top: 30%; }
.im-chip-pos--3 { left: 0; bottom: 12%; }
.im-chip-pos--4 { right: 3%; bottom: 3%; }
.im-chip {
	display: flex; align-items: center; gap: 10px;
	padding: 9px 13px;
	background: var(--im-surface);
	border: 1px solid rgba(var(--im-ink-rgb), .1);
	border-radius: 14px;
	box-shadow: 0 14px 30px -14px rgba(var(--im-ink-rgb), .35);
	white-space: nowrap;
}
.im-chip__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--im-accent); border: 1px solid var(--im-ink); flex: none; }
.im-chip__dot.is-watch { background: var(--im-amber); }
.im-chip__body { display: flex; flex-direction: column; gap: 1px; }
.im-chip__label { font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }
.im-chip__value { font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.im-chip__unit { font-weight: 400; font-size: 12px; color: var(--im-muted); }
.im-chip--dark { background: var(--im-ink); color: var(--im-paper); border-color: var(--im-ink); box-shadow: 0 14px 30px -14px rgba(var(--im-ink-rgb), .5); }
.im-chip--dark .im-chip__label, .im-chip--dark .im-chip__unit { color: rgba(var(--im-paper-rgb), .66); }
.im-chip--dark .im-chip__value { letter-spacing: 0; }

/* Highlights ticker ------------------------------------------------------ */

.im-marquee { border-block: 1px solid rgba(var(--im-ink-rgb), .1); overflow: hidden; padding: 18px 0; background: var(--im-surface); }
.im-marquee__track { display: flex; width: max-content; }
.im-marquee__group {
	list-style: none; margin: 0; padding: 0 40px 0 0;
	display: flex; gap: 40px; align-items: center;
	white-space: nowrap; font-size: 15px; font-weight: 500;
}
.im-marquee__group li { display: flex; align-items: center; gap: 12px; }
.im-marquee__group li::before { content: ""; width: 8px; height: 8px; background: var(--im-accent); border: 1px solid var(--im-ink); transform: rotate(45deg); flex: none; }

/* What it does ----------------------------------------------------------- */

.im-what__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.im-card {
	display: flex; flex-direction: column; gap: 18px;
	padding: clamp(24px, 3vw, 32px);
	border-radius: 28px;
	min-height: 420px;
	transition: border-color .2s;
}
.im-card--dark, .im-card--dark:hover { background: var(--im-ink); color: var(--im-paper); }
.im-card--light { background: var(--im-surface); border: 1px solid rgba(var(--im-ink-rgb), .1); color: var(--im-ink); }
.im-card--light:hover { color: var(--im-ink); border-color: rgba(var(--im-ink-rgb), .3); }
.im-card--accent, .im-card--accent:hover { background: var(--im-accent); color: var(--im-ink); overflow: hidden; }
.im-card__label { font-family: var(--im-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--im-muted); }
.im-card--dark .im-card__label { color: var(--im-accent); }
.im-card--accent .im-card__label { color: var(--im-ink); }
.im-card__title { margin: 0; font-size: clamp(24px, 3vw, 30px); line-height: 1.1; letter-spacing: -.03em; font-weight: 500; text-wrap: balance; }
.im-card__text { margin: 0; font-size: 16px; line-height: 1.55; color: var(--im-muted); text-wrap: pretty; }
.im-card--dark .im-card__text { color: rgba(var(--im-paper-rgb), .7); }
.im-card--accent .im-card__text { color: var(--im-ink-2); }
.im-card__visual { margin-top: auto; }

.im-bars { display: flex; flex-direction: column; gap: 8px; }
.im-bars__cols { height: 96px; display: flex; align-items: flex-end; gap: 6px; }
.im-bars__cols span { flex: 1; height: 100%; background: var(--im-accent); border-radius: 4px; transform-origin: bottom; }
.im-bars__cols .is-watch { background: var(--im-amber); }
.im-bars__cols .is-neutral { background: rgba(var(--im-paper-rgb), .5); }
.im-bars__labels { display: flex; gap: 6px; font-family: var(--im-mono); font-size: 10px; color: rgba(var(--im-paper-rgb), .6); text-align: center; }
.im-bars__labels span { flex: 1; min-width: 0; overflow: hidden; }

.im-combine { display: flex; flex-direction: column; align-items: center; }
.im-combine__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.im-combine__chips span { padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(var(--im-ink-rgb), .16); font-size: 13px; font-weight: 500; }
.im-combine__flow { width: 2px; height: 44px; background-image: repeating-linear-gradient(var(--im-ink) 0 6px, transparent 6px 12px); background-size: 2px 24px; }
.im-combine__result { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 999px; background: var(--im-ink); color: var(--im-paper); font-size: 14px; font-weight: 500; }
.im-combine__result .im-dot { width: 8px; height: 8px; }

.im-mini-wrap { display: flex; justify-content: center; padding-top: 8px; }
.im-mini-tilt { transform: rotate(-4deg); width: min(100%, 260px); }
.im-mini { background: var(--im-surface); border-radius: 18px; padding: 16px; display: flex; flex-direction: column; gap: 10px; box-shadow: 0 20px 40px -18px rgba(var(--im-ink-rgb), .45); }
.im-mini__head { display: flex; justify-content: space-between; align-items: center; }
.im-mini__title { font-size: 12px; font-weight: 600; }
.im-mini__value { font-family: var(--im-mono); font-size: 10px; color: var(--im-muted); }
.im-mini__bar { display: block; height: 6px; border-radius: 6px; background: var(--im-ink); }
.im-mini__bar.is-watch { background: var(--im-amber); }
.im-mini__badge { align-self: flex-start; margin-top: 4px; display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 500; padding: 5px 9px; border-radius: 999px; background: var(--im-ink); color: var(--im-paper); }
.im-mini__badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--im-accent); }

/* The panel -------------------------------------------------------------- */

.im-block__glow { position: absolute; right: -30%; top: -20%; width: 80%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(var(--im-accent-rgb), .12), transparent); pointer-events: none; }
.im-panel__inner {
	position: relative;
	max-width: var(--im-max);
	margin: 0 auto;
	padding: clamp(64px, 10vw, 128px) var(--im-gutter);
	display: flex; flex-wrap: wrap; align-items: flex-start;
	gap: clamp(40px, 6vw, 88px);
}
.im-panel__copy { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.im-panel__copy .im-h2 em { color: var(--im-accent); }
.im-panel__text { margin: 0; font-size: clamp(17px, 2vw, 19px); line-height: 1.55; color: rgba(var(--im-paper-rgb), .72); max-width: 520px; text-wrap: pretty; }

.im-features { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; border-top: 1px solid rgba(var(--im-paper-rgb), .12); }
.im-features li { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid rgba(var(--im-paper-rgb), .12); }
.im-features__num { font-family: var(--im-mono); font-size: 12px; color: var(--im-accent); padding-top: 3px; }
.im-features__body { display: flex; flex-direction: column; gap: 4px; }
.im-features__title { font-size: 17px; font-weight: 500; }
.im-features__text { font-size: 15px; line-height: 1.5; color: rgba(var(--im-paper-rgb), .66); }

.im-demo {
	flex: 1 1 440px; min-width: 0; max-width: 580px; margin: 0 auto;
	background: var(--im-card);
	border: 1px solid rgba(var(--im-paper-rgb), .09);
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 40px 120px -40px rgba(var(--im-accent-rgb), .22);
}
.im-demo__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid rgba(var(--im-paper-rgb), .08); }
.im-demo__id { display: flex; align-items: center; gap: 12px; }
.im-demo__avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--im-accent); color: var(--im-ink); display: grid; place-items: center; font-weight: 700; font-size: 15px; flex: none; }
.im-demo__who { display: flex; flex-direction: column; gap: 1px; }
.im-demo__name { font-size: 15px; font-weight: 600; }
.im-demo__sub { font-family: var(--im-mono); font-size: 11px; color: rgba(var(--im-paper-rgb), .6); }
.im-demo__live { display: flex; align-items: center; gap: 7px; font-family: var(--im-mono); font-size: 11px; letter-spacing: .08em; color: var(--im-accent); }
.im-demo__live .im-dot { width: 7px; height: 7px; }
.im-demo__body { padding: clamp(16px, 2.5vw, 22px); display: flex; flex-direction: column; gap: 16px; }
.im-demo__msg { margin: 0; background: rgba(var(--im-paper-rgb), .06); border-radius: 4px 18px 18px 18px; padding: 12px 15px; font-size: 15px; line-height: 1.5; color: var(--im-paper); text-wrap: pretty; }
.im-demo__progress { display: flex; flex-direction: column; gap: 8px; }
.im-demo__status { display: flex; justify-content: space-between; gap: 12px; font-family: var(--im-mono); font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: rgba(var(--im-paper-rgb), .7); }
.im-demo__track { height: 4px; border-radius: 4px; background: rgba(var(--im-paper-rgb), .1); overflow: hidden; }
.im-demo__fill { height: 100%; background: var(--im-accent); border-radius: 4px; transition: width .4s ease; }

.im-markers { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border: 1px solid rgba(var(--im-paper-rgb), .08); border-radius: 16px; overflow: hidden; }
.im-marker {
	display: flex; align-items: center; gap: 10px;
	min-height: 44px;
	padding: 8px 12px 8px 14px;
	border-bottom: 1px solid rgba(var(--im-paper-rgb), .06);
	opacity: .5;
	transition: background-color .3s, opacity .3s;
}
.im-marker:last-child { border-bottom: 0; }
.im-marker.is-done, .im-marker.is-active { opacity: 1; }
.im-marker.is-active { background: rgba(var(--im-accent-rgb), .08); }
.im-marker__name { flex: 1; min-width: 0; font-size: 14px; color: var(--im-paper); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.im-marker.is-active .im-marker__name { color: var(--im-accent); }
.im-marker__val { font-family: var(--im-mono); font-size: 13px; color: var(--im-paper); text-align: right; white-space: nowrap; }
.im-marker__unit { color: rgba(var(--im-paper-rgb), .55); font-size: 11px; }

.im-pill {
	flex: none; width: 78px;
	text-align: center;
	font-family: var(--im-mono); font-size: 10px; letter-spacing: .05em; text-transform: uppercase;
	padding: 4px 0;
	border-radius: 999px;
	border: 1px solid transparent;
}
.im-pill--queued { color: rgba(var(--im-paper-rgb), .5); border-color: rgba(var(--im-paper-rgb), .12); }
.im-pill--scanning { color: var(--im-accent); border-color: rgba(var(--im-accent-rgb), .45); }
.im-pill--optimal { background: rgba(var(--im-accent-rgb), .14); color: var(--im-accent); }
.im-pill--inrange { background: rgba(var(--im-paper-rgb), .08); color: rgba(var(--im-paper-rgb), .8); }
.im-pill--watch { background: rgba(var(--im-amber-rgb), .16); color: var(--im-amber); }

.im-result { border-radius: 20px; background: var(--im-accent); color: var(--im-ink); padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.im-result.is-entering { animation: im-scale-in 1s var(--im-ease) both; }
.im-result__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.im-result__main { display: flex; flex-direction: column; gap: 4px; }
.im-result__label { font-family: var(--im-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.im-result__value { font-family: var(--im-serif); font-size: 68px; line-height: .85; letter-spacing: -.02em; }
.im-result__stats { display: flex; gap: 18px; }
.im-result__stat { display: flex; flex-direction: column; gap: 2px; }
.im-result__stat span { font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.im-result__stat strong { font-size: 20px; font-weight: 600; }
.im-result__drivers { border-top: 1px solid rgba(var(--im-ink-rgb), .18); padding-top: 12px; display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.im-result__drivers .im-result__label { font-size: 10px; }
.im-result__driver { display: flex; justify-content: space-between; gap: 12px; }
.im-result__driver span:last-child { font-family: var(--im-mono); font-weight: 500; white-space: nowrap; }

.im-demo__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.im-demo__run, .im-demo__cta {
	flex: 1 1 170px; height: 50px; border-radius: 999px;
	font-size: 15px; font-weight: 500;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	transition: background-color .2s;
}
.im-demo__run { border: 1px solid rgba(var(--im-paper-rgb), .22); background: transparent; color: var(--im-paper); cursor: pointer; }
.im-demo__run:hover { background: rgba(var(--im-paper-rgb), .07); }
.im-demo__run[aria-busy="true"] { cursor: progress; }
.im-demo__cta { background: var(--im-paper); color: var(--im-ink); }
.im-demo__cta:hover { background: #fff; color: var(--im-ink); }

/* The dashboard ---------------------------------------------------------- */

.im-dash__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; }
.im-dash__head .im-head { max-width: 760px; }
.im-dash__intro { margin: 0; max-width: 400px; font-size: 17px; line-height: 1.55; color: var(--im-muted); text-wrap: pretty; }

.im-board { background: var(--im-surface); border: 1px solid rgba(var(--im-ink-rgb), .1); border-radius: 28px; box-shadow: 0 40px 90px -50px rgba(var(--im-ink-rgb), .35); overflow: hidden; }
.im-board__top { padding: 20px clamp(18px, 3vw, 28px); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; border-bottom: 1px solid rgba(var(--im-ink-rgb), .08); }
.im-board__title { display: flex; flex-direction: column; gap: 3px; }
.im-board__name { font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.im-board__meta { font-family: var(--im-mono); font-size: 12px; color: var(--im-muted); }
.im-board__badge { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(var(--im-ink-rgb), .14); font-size: 13px; font-weight: 500; }
.im-board__badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--im-ink); }

.im-board__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(50%, 180px), 1fr)); gap: 1px; background: rgba(var(--im-ink-rgb), .08); border-bottom: 1px solid rgba(var(--im-ink-rgb), .08); }
.im-stat { background: var(--im-surface); padding: 18px clamp(16px, 2.5vw, 24px); display: flex; flex-direction: column; gap: 6px; }
.im-stat__label { font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }
.im-stat__row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.im-stat__value { font-family: var(--im-serif); font-size: 44px; line-height: .9; }
.im-stat__badge { font-family: var(--im-mono); font-size: 11px; background: var(--im-accent); padding: 3px 7px; border-radius: 999px; }
.im-stat__sub { font-size: 12px; color: var(--im-muted); }

.im-board__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1px; background: rgba(var(--im-ink-rgb), .08); }
.im-board__cell { background: var(--im-surface); padding: clamp(20px, 3vw, 28px); display: flex; flex-direction: column; gap: 14px; }
.im-board__cell--systems { gap: 18px; }
.im-board__cell-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.im-board__cell-head h3, .im-board__cell-title { margin: 0; font-size: 15px; font-weight: 600; }
.im-board__cell-head span { font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }

.im-sys { display: flex; flex-direction: column; gap: 8px; }
.im-sys__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; }
.im-sys__name { font-weight: 500; }
.im-sys__meta { display: flex; gap: 10px; align-items: baseline; }
.im-sys__tag { font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }
.im-sys__tag.is-monitor { color: var(--im-amber-ink); }
.im-sys__score { font-family: var(--im-mono); font-size: 14px; font-weight: 500; }
.im-sys__track { height: 6px; border-radius: 6px; background: rgba(var(--im-ink-rgb), .08); overflow: hidden; }
.im-sys__fill { height: 100%; width: var(--w); border-radius: 6px; background: var(--im-ink); transition: width 1.2s var(--im-ease) var(--d, 0s); }
.im-sys__fill.is-monitor { background: var(--im-amber); }

.im-trend { position: relative; height: 190px; display: flex; align-items: flex-end; gap: 14px; padding-top: 26px; }
.im-trend__ref { position: absolute; left: 0; right: 0; top: 26px; border-top: 1.5px dashed rgba(var(--im-ink-rgb), .4); }
.im-trend__ref-label { position: absolute; right: 0; top: 4px; font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }
.im-trend__col { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
.im-trend__bar {
	height: var(--h);
	background: rgba(var(--im-ink-rgb), .1);
	border: 1px solid transparent;
	border-radius: 12px 12px 4px 4px;
	display: flex; justify-content: center;
	padding-top: 10px;
	font-size: 14px; font-weight: 600;
	overflow: hidden;
	transition: height 1.2s var(--im-ease) var(--d, 0s);
}
.im-trend__bar.is-current { background: var(--im-accent); border-color: var(--im-ink); }
.im-trend__labels { display: flex; gap: 14px; }
.im-trend__labels span { flex: 1; text-align: center; font-family: var(--im-mono); font-size: 11px; color: var(--im-muted); }

.js .im-board:not(.is-on) .im-sys__fill { width: 0; }
.js .im-board:not(.is-on) .im-trend__bar { height: 0; }

.im-talk { display: flex; flex-direction: column; gap: 12px; padding: 14px; border-radius: 16px; background: var(--im-paper); }
.im-talk__text { font-size: 14px; line-height: 1.5; text-wrap: pretty; }
.im-tag { align-self: flex-start; font-family: var(--im-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; }
.im-tag--discuss { background: rgba(var(--im-amber-rgb), .28); color: var(--im-amber-ink); }
.im-tag--monitor { background: rgba(var(--im-ink-rgb), .08); color: var(--im-ink); }
.im-tag--consider { background: rgba(var(--im-accent-rgb), .6); color: var(--im-ink); }

.im-board__foot { padding: 16px clamp(18px, 3vw, 28px); display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; border-top: 1px solid rgba(var(--im-ink-rgb), .08); }
.im-board__note { font-size: 12px; color: var(--im-muted); max-width: 420px; }
.im-board__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.im-share {
	height: 46px; padding: 0 18px;
	border-radius: 999px; border: 0;
	background: var(--im-ink); color: var(--im-paper);
	font-size: 14px; font-weight: 500;
	cursor: pointer;
	display: flex; align-items: center; gap: 8px;
	transition: background-color .3s, color .3s;
}
.im-share::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--im-accent); transition: background-color .3s; }
.im-share.is-sent { background: var(--im-accent); color: var(--im-ink); }
.im-share.is-sent::before { background: var(--im-ink); }

/* How it works ----------------------------------------------------------- */

.im-how { background: var(--im-surface); border-block: 1px solid rgba(var(--im-ink-rgb), .08); scroll-margin-top: 72px; }
.im-how__inner { max-width: var(--im-max); margin: 0 auto; padding: var(--im-section-y) var(--im-gutter); display: flex; flex-wrap: wrap; gap: clamp(48px, 7vw, 104px); }
.im-how__copy { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.im-how__copy .im-lead { max-width: 420px; }

.im-steps { flex: 1 1 480px; min-width: 0; position: relative; padding-left: 60px; }
.im-steps__track { position: absolute; left: 16px; top: 6px; bottom: 6px; width: 2px; background: rgba(var(--im-ink-rgb), .1); border-radius: 2px; overflow: hidden; }
.im-steps__fill { width: 100%; height: 100%; background: var(--im-ink); border-radius: 2px; }
.js .im-steps__fill { height: 0; }
.im-steps__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(40px, 6vw, 64px); }
.im-step { position: relative; display: flex; flex-direction: column; gap: 8px; }
.im-step__num {
	position: absolute; left: -60px; top: -4px;
	width: 34px; height: 34px; border-radius: 50%;
	display: grid; place-items: center;
	font-family: var(--im-mono); font-size: 12px;
	border: 1px solid var(--im-ink);
	background: var(--im-ink); color: var(--im-accent);
	transition: background-color .35s, color .35s;
}
.js .im-step:not(.is-on) .im-step__num { background: var(--im-surface); color: var(--im-ink); }
.im-step__title { margin: 0; font-size: clamp(24px, 3vw, 30px); letter-spacing: -.03em; font-weight: 500; }
.im-step__text { margin: 0; font-size: 16px; line-height: 1.6; color: var(--im-muted); max-width: 480px; text-wrap: pretty; }

/* Safety ----------------------------------------------------------------- */

.im-trust__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; }
.im-tcard {
	display: flex; flex-direction: column; gap: 14px;
	padding: 28px 24px;
	border-radius: 24px;
	background: var(--im-surface);
	border: 1px solid rgba(var(--im-ink-rgb), .1);
	transition: transform .35s var(--im-ease), border-color .35s;
}
.im-tcard:hover { transform: translateY(-4px); border-color: rgba(var(--im-ink-rgb), .3); }
.im-tcard__title { margin: 0; font-size: 20px; letter-spacing: -.02em; font-weight: 600; }
.im-tcard__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--im-muted); text-wrap: pretty; }

.im-icon { display: block; flex: none; margin-bottom: 18px; }
.im-icon--ring { width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--im-ink); }
.im-icon--square { width: 28px; height: 28px; background: var(--im-ink); }
.im-icon--diamond { width: 22px; height: 22px; background: var(--im-accent); border: 2px solid var(--im-ink); transform: rotate(45deg); margin: 4px 0 22px 4px; }
.im-icon--target { width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--im-ink); display: grid; place-items: center; }
.im-icon--target::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--im-ink); }

/* FAQ -------------------------------------------------------------------- */

.im-faq {
	max-width: var(--im-max);
	margin: 0 auto;
	padding: 0 var(--im-gutter) var(--im-section-y);
	display: flex; flex-wrap: wrap;
	gap: clamp(32px, 6vw, 96px);
	scroll-margin-top: 72px;
}
.im-faq__head { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.im-faq__list { flex: 2 1 520px; min-width: 0; border-top: 1px solid rgba(var(--im-ink-rgb), .14); }
.im-faq__item { border-bottom: 1px solid rgba(var(--im-ink-rgb), .14); }
.im-faq__q {
	list-style: none;
	min-height: 72px;
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 18px 0;
	cursor: pointer;
	font-size: clamp(17px, 2.2vw, 20px);
	font-weight: 500;
	letter-spacing: -.01em;
	color: var(--im-ink);
}
.im-faq__q::-webkit-details-marker, .im-faq__q::marker { display: none; content: ""; }
.im-faq__icon {
	flex: none;
	width: 34px; height: 34px; border-radius: 50%;
	border: 1px solid rgba(var(--im-ink-rgb), .2);
	display: grid; place-items: center;
	font-size: 20px; font-weight: 300;
	transition: transform .35s var(--im-ease);
}
.im-faq__item[open] .im-faq__icon { transform: rotate(45deg); }
.im-faq__a { padding: 0 52px 24px 0; color: var(--im-muted); font-size: 16px; line-height: 1.65; text-wrap: pretty; }
.im-faq__a p { margin: 0 0 .8em; }
.im-faq__a p:last-child { margin-bottom: 0; }
.im-faq__item[open] .im-faq__a { animation: im-fade .6s var(--im-ease); }

/* Waitlist --------------------------------------------------------------- */

.im-join__rings { position: absolute; left: 50%; top: 50%; width: min(1100px, 190vw); aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; opacity: .55; }
.im-join__rings > div { position: absolute; border-radius: 50%; }
.im-join__ticks {
	inset: 0;
	background: repeating-conic-gradient(rgba(var(--im-paper-rgb), .3) 0 .35deg, transparent .35deg 3deg);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 18px), #000 calc(100% - 17px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 18px), #000 calc(100% - 17px));
}
.im-join__sweep { inset: 0; background: conic-gradient(from 0deg, rgba(var(--im-accent-rgb), 0) 0deg, rgba(var(--im-accent-rgb), 0) 280deg, rgba(var(--im-accent-rgb), .12) 355deg, rgba(var(--im-accent-rgb), .4) 359.6deg, rgba(var(--im-accent-rgb), 0) 360deg); }
.im-join__dash { inset: 14%; border: 1px dashed rgba(var(--im-paper-rgb), .16); }
.im-join__inner {
	position: relative;
	max-width: 920px;
	margin: 0 auto;
	padding: clamp(80px, 13vw, 160px) var(--im-gutter);
	display: flex; flex-direction: column; align-items: center; gap: 28px;
	text-align: center;
}
.im-join__title { margin: 0; font-family: var(--im-serif); font-weight: 400; font-size: clamp(76px, 19vw, 176px); line-height: .86; letter-spacing: -.03em; }
.im-join__title em { color: var(--im-accent); }
.im-join__text { margin: 0; max-width: 480px; font-size: clamp(17px, 2vw, 19px); line-height: 1.55; color: rgba(var(--im-paper-rgb), .74); text-wrap: pretty; }
.im-join__wrap { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 28px; }
.im-join__form { width: 100%; max-width: 520px; display: flex; flex-wrap: wrap; gap: 10px; }
.im-join__input {
	flex: 1 1 240px; min-width: 0;
	height: 58px; padding: 0 22px;
	border-radius: 999px;
	background: rgba(var(--im-paper-rgb), .07);
	border: 1px solid rgba(var(--im-paper-rgb), .2);
	color: var(--im-paper);
	font-size: 16px;
	outline: none;
	transition: border-color .2s;
}
.im-join__input::placeholder { color: rgba(var(--im-paper-rgb), .5); }
.im-join__input:focus { border-color: var(--im-accent); }
.im-join__form.is-error .im-join__input { border-color: var(--im-error); }
.im-join__submit {
	flex: 1 1 180px;
	height: 58px; padding: 0 24px;
	border-radius: 999px; border: 0;
	background: var(--im-accent); color: var(--im-ink);
	font-size: 16px; font-weight: 600;
	cursor: pointer;
	transition: background-color .2s, opacity .2s;
}
.im-join__submit:hover { background: var(--im-accent-2); }
.im-join__form.is-busy .im-join__submit { opacity: .7; cursor: progress; }
.im-join__success {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 22px 14px 14px;
	border-radius: 999px;
	background: rgba(var(--im-accent-rgb), .12);
	border: 1px solid rgba(var(--im-accent-rgb), .4);
	text-align: left;
	animation: im-scale-in 1s var(--im-ease) both;
}
.im-join__check { width: 36px; height: 36px; border-radius: 50%; background: var(--im-accent); color: var(--im-ink); display: grid; place-items: center; font-weight: 700; flex: none; }
.im-join__msg { font-size: 16px; line-height: 1.4; }
.im-join__msg strong { font-weight: 600; }
.im-join__note { margin: 0; font-size: 13px; color: rgba(var(--im-paper-rgb), .6); }
.im-join__note.is-error { color: var(--im-error); }
.im-join__shortcode { width: 100%; max-width: 520px; text-align: left; }
.im-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Footer ----------------------------------------------------------------- */

.im-footer { max-width: var(--im-max); margin: 0 auto; padding: 56px var(--im-gutter) 40px; display: flex; flex-direction: column; gap: 32px; }
.im-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; }
.im-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 14px; font-weight: 500; }
.im-footer__links a { color: var(--im-muted); }
.im-footer__links a:hover { color: var(--im-ink); }
.im-footer__note { margin: 0; max-width: 760px; font-size: 13px; line-height: 1.6; color: var(--im-muted); text-wrap: pretty; }
.im-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(var(--im-ink-rgb), .1); font-family: var(--im-mono); font-size: 12px; color: var(--im-muted); }

/* Floating call to action ------------------------------------------------ */

.im-sticky { position: fixed; left: 0; right: 0; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 45; display: flex; justify-content: center; pointer-events: none; padding: 0 16px; }
.im-sticky__btn {
	pointer-events: auto;
	display: flex; align-items: center; gap: 14px;
	height: 58px; padding: 0 9px 0 24px;
	border-radius: 999px;
	background: var(--im-ink); color: var(--im-paper);
	font-size: 15px; font-weight: 500;
	box-shadow: 0 18px 40px -12px rgba(var(--im-ink-rgb), .55);
	animation: im-rise .8s var(--im-ease) both;
}
.im-sticky__btn:hover { color: var(--im-paper); background: var(--im-ink-2); }

/* Mobile menu ------------------------------------------------------------ */

.im-mmenu {
	position: fixed; inset: 0; z-index: 60;
	background: var(--im-deep); color: var(--im-paper);
	display: flex; flex-direction: column;
	padding: 0 clamp(16px, 4vw, 40px) 28px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.admin-bar .im-mmenu { top: var(--wp-admin--admin-bar--height, 0px); }
.im-mmenu__top { height: 64px; flex: none; display: flex; align-items: center; justify-content: space-between; }
.im-mmenu__close {
	width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid rgba(var(--im-paper-rgb), .2);
	background: transparent; color: var(--im-paper);
	font-size: 22px; font-weight: 300;
	cursor: pointer;
	display: grid; place-items: center;
}
.im-mmenu__nav ul { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-direction: column; }
.im-mmenu__nav a {
	display: flex; justify-content: space-between; align-items: baseline;
	padding: 12px 0;
	border-bottom: 1px solid rgba(var(--im-paper-rgb), .1);
	font-family: var(--im-serif);
	font-size: clamp(42px, 11vw, 72px);
	line-height: 1.05;
	color: var(--im-paper);
}
.im-mmenu__nav a:hover { color: var(--im-accent); }
.im-mmenu__num { font-family: var(--im-mono); font-size: 12px; color: rgba(var(--im-paper-rgb), .5); }
.im-mmenu__cta { margin-top: auto; padding-top: 28px; display: flex; }
.im-mmenu__cta-inner {
	flex: 1;
	display: flex; align-items: center; justify-content: space-between;
	height: 60px; padding: 0 9px 0 26px;
	border-radius: 999px;
	background: var(--im-accent); color: var(--im-ink);
	font-size: 16px; font-weight: 600;
}
.im-mmenu__cta-arrow { width: 42px; height: 42px; border-radius: 50%; background: var(--im-ink); color: var(--im-accent); display: grid; place-items: center; font-size: 18px; }
.im-mmenu:not([hidden]) li, .im-mmenu:not([hidden]) .im-mmenu__cta { animation: im-rise 1s var(--im-ease) both; animation-delay: calc(var(--i, 0) * 60ms); }

/* Blog, pages and 404 ---------------------------------------------------- */

.im-page { max-width: 960px; margin: 0 auto; padding: clamp(48px, 8vw, 96px) var(--im-gutter) clamp(72px, 10vw, 120px); }
.im-page__head { display: flex; flex-direction: column; gap: 18px; margin-bottom: clamp(32px, 5vw, 56px); }
.im-page__title { margin: 0; font-size: clamp(40px, 7vw, 68px); line-height: 1.02; letter-spacing: -.045em; font-weight: 500; text-wrap: balance; }
.im-page__intro { color: var(--im-muted); font-size: 17px; line-height: 1.55; }
.im-page .im-eyebrow a { color: inherit; }

.im-posts { display: grid; gap: 16px; }
.im-post-card { display: grid; grid-template-columns: 1fr; gap: 0; border-radius: 24px; background: var(--im-surface); border: 1px solid rgba(var(--im-ink-rgb), .1); overflow: hidden; transition: border-color .2s; }
.im-post-card:hover { border-color: rgba(var(--im-ink-rgb), .3); }
@media (min-width: 720px) { .im-post-card.has-post-thumbnail { grid-template-columns: 280px 1fr; } }
.im-post-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.im-post-card__body { padding: clamp(20px, 3vw, 28px); display: flex; flex-direction: column; gap: 10px; }
.im-post-card__meta { margin: 0; font-family: var(--im-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--im-muted); }
.im-post-card__title { margin: 0; font-size: clamp(22px, 2.6vw, 28px); line-height: 1.15; letter-spacing: -.03em; font-weight: 500; }
.im-post-card__excerpt { color: var(--im-muted); font-size: 16px; line-height: 1.55; }
.im-post-card__excerpt p { margin: 0; }

.im-pagination { margin-top: 40px; }
.im-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.im-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(var(--im-ink-rgb), .16); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 500; }
.im-pagination .page-numbers.current { background: var(--im-ink); color: var(--im-paper); border-color: var(--im-ink); }
.im-pagination .page-numbers.dots { border: 0; }

.im-article__media { margin: 0 0 clamp(32px, 5vw, 48px); }
.im-article__media img { display: block; width: 100%; border-radius: 24px; }
.im-article__tags { margin: 40px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.im-article__tags a { padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(var(--im-ink-rgb), .16); font-size: 13px; font-weight: 500; }

.im-prose { max-width: 720px; font-size: 18px; line-height: 1.7; color: var(--im-ink); }
.im-prose > * + * { margin-top: 1.1em; }
.im-prose p, .im-prose ul, .im-prose ol { margin: 0; }
.im-prose * + p, .im-prose * + ul, .im-prose * + ol { margin-top: 1.1em; }
.im-prose h2, .im-prose h3, .im-prose h4 { margin: 1.8em 0 .5em; line-height: 1.15; letter-spacing: -.03em; font-weight: 500; }
.im-prose h2 { font-size: clamp(28px, 3.6vw, 36px); }
.im-prose h3 { font-size: clamp(22px, 2.6vw, 26px); }
.im-prose a { text-decoration: underline; text-decoration-color: rgba(var(--im-ink-rgb), .3); text-underline-offset: 3px; }
.im-prose a:hover { text-decoration-color: currentColor; }
.im-prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--im-accent); font-family: var(--im-serif); font-size: 1.4em; line-height: 1.35; }
.im-prose img, .im-prose figure img { border-radius: 16px; }
.im-prose figure { margin: 1.6em 0; }
.im-prose figcaption, .im-prose .wp-element-caption { margin-top: 8px; font-size: 14px; color: var(--im-muted); }
.im-prose code { font-family: var(--im-mono); font-size: .88em; background: rgba(var(--im-ink-rgb), .06); padding: .1em .35em; border-radius: 6px; }
.im-prose pre { font-family: var(--im-mono); font-size: 14px; background: var(--im-ink); color: var(--im-paper); padding: 20px; border-radius: 16px; overflow-x: auto; }
.im-prose pre code { background: none; padding: 0; }
.im-prose hr { border: 0; border-top: 1px solid rgba(var(--im-ink-rgb), .14); margin: 2.4em 0; }
.im-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.im-prose th, .im-prose td { padding: 10px 12px; border-bottom: 1px solid rgba(var(--im-ink-rgb), .12); text-align: left; }
.im-prose .alignwide { max-width: none; margin-left: calc(50% - min(50vw, 480px) + var(--im-gutter)); margin-right: calc(50% - min(50vw, 480px) + var(--im-gutter)); }
.im-prose .alignleft { float: left; margin: .4em 1.6em 1em 0; }
.im-prose .alignright { float: right; margin: .4em 0 1em 1.6em; }
.im-prose .aligncenter { margin-left: auto; margin-right: auto; }
.im-prose::after { content: ""; display: table; clear: both; }
.im-prose .wp-block-button__link, .im-prose .wp-element-button { border-radius: 999px; background: var(--im-ink); color: var(--im-paper); padding: 14px 24px; text-decoration: none; }
.has-ink-color { color: var(--im-ink) !important; }
.has-paper-color { color: var(--im-paper) !important; }
.has-surface-color { color: var(--im-surface) !important; }
.has-muted-color { color: var(--im-muted) !important; }
.has-accent-color { color: var(--im-accent) !important; }
.has-amber-color { color: var(--im-amber) !important; }
.has-ink-background-color { background-color: var(--im-ink) !important; }
.has-paper-background-color { background-color: var(--im-paper) !important; }
.has-surface-background-color { background-color: var(--im-surface) !important; }
.has-muted-background-color { background-color: var(--im-muted) !important; }
.has-accent-background-color { background-color: var(--im-accent) !important; }
.has-amber-background-color { background-color: var(--im-amber) !important; }

.im-page-links { margin-top: 32px; display: flex; gap: 8px; font-weight: 500; }
.im-post-nav { margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(var(--im-ink-rgb), .14); }
.im-post-nav .nav-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; }
.im-post-nav a { display: flex; flex-direction: column; gap: 6px; font-size: 18px; font-weight: 500; letter-spacing: -.02em; }
.im-post-nav .nav-next a { text-align: right; }
.im-post-nav a span { font-family: var(--im-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--im-muted); }

.im-empty { display: flex; flex-direction: column; gap: 16px; color: var(--im-muted); }

.search-form { display: flex; flex-wrap: wrap; gap: 10px; max-width: 520px; }
.search-form label { flex: 1 1 240px; }
.search-field, .comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%;
	padding: 14px 18px;
	border-radius: 16px;
	border: 1px solid rgba(var(--im-ink-rgb), .2);
	background: var(--im-surface);
	font-size: 16px;
}
.search-field { height: 50px; border-radius: 999px; }
.search-submit { height: 50px; padding: 0 22px; border-radius: 999px; border: 0; background: var(--im-ink); color: var(--im-paper); font-weight: 500; cursor: pointer; }

.im-404 { text-align: left; display: flex; flex-direction: column; gap: 22px; }
.im-404__title { margin: 0; font-family: var(--im-serif); font-weight: 400; font-size: clamp(80px, 18vw, 160px); line-height: .86; letter-spacing: -.03em; }
.im-404__title em { background-image: linear-gradient(var(--im-accent), var(--im-accent)); background-repeat: no-repeat; background-position: 0 84%; background-size: 100% .2em; }

.im-comments { margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(var(--im-ink-rgb), .14); max-width: 720px; }
.im-comments__title { margin: 0 0 24px; font-size: 24px; font-weight: 500; letter-spacing: -.02em; }
.im-comments__list, .im-comments__list .children { list-style: none; margin: 0; padding: 0; }
.im-comments__list .children { padding-left: clamp(16px, 4vw, 40px); }
.im-comments__list .comment-body { padding: 20px 0; border-bottom: 1px solid rgba(var(--im-ink-rgb), .1); }
.im-comments__list .comment-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; font-size: 14px; }
.im-comments__list .avatar { border-radius: 50%; vertical-align: middle; margin-right: 8px; }
.im-comments__list .comment-metadata { font-family: var(--im-mono); font-size: 11px; color: var(--im-muted); }
.im-comments__list .comment-metadata a { color: inherit; }
.comment-reply-title { font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.comment-form { display: flex; flex-direction: column; gap: 14px; }
.comment-form p { margin: 0; }
.comment-form label { display: block; font-size: 14px; font-weight: 500; margin-bottom: 6px; }
.comment-form .comment-form-cookies-consent { display: flex; gap: 8px; align-items: flex-start; }
.comment-form .comment-form-cookies-consent label { font-weight: 400; margin: 0; }

/* Scroll reveal ---------------------------------------------------------- */

.js:not(.im-noreveal) [data-reveal] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 1s var(--im-ease) var(--d, 0ms), transform 1s var(--im-ease) var(--d, 0ms);
}
.js:not(.im-noreveal) [data-reveal="scale"] { transform: scale(.95); }
.js:not(.im-noreveal) [data-reveal="fade"] { transform: none; transition-duration: .6s; }
.js:not(.im-noreveal) [data-reveal].is-revealed { opacity: 1; transform: none; }

/* Ambient loops ---------------------------------------------------------- */

.loop { animation-duration: var(--dur); animation-delay: var(--delay, 0s); animation-iteration-count: infinite; }
.loop-spin { --dur: 40s; animation-name: im-spin; animation-timing-function: linear; will-change: transform; }
.loop-spin-rev { --dur: 60s; animation-name: im-spin-rev; animation-timing-function: linear; }
.loop-float { --dur: 5.2s; animation-name: im-float; animation-timing-function: ease-in-out; }
.loop-ping { --dur: 1.9s; animation-name: im-ping; animation-timing-function: cubic-bezier(0, 0, .2, 1); }
.loop-marquee { --dur: 42s; animation-name: im-marquee; animation-timing-function: linear; will-change: transform; }
.loop-eq { --dur: 2.6s; animation-name: im-eq; animation-timing-function: ease-in-out; }
.loop-flow { --dur: .9s; animation-name: im-flow; animation-timing-function: linear; }
.loop-ecg { --dur: 2.4s; animation-name: im-ecg; animation-timing-function: ease-in-out; }
.loop-blink { --dur: 1.6s; animation-name: im-blink; animation-timing-function: ease-in-out; }

/* Loops pause while their section is off screen (set by main.js). */
.is-offscreen .loop { animation-play-state: paused; }

@keyframes im-spin { to { transform: rotate(360deg); } }
@keyframes im-spin-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }
@keyframes im-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes im-ping { from { transform: scale(1); opacity: .7; } to { transform: scale(2.3); opacity: 0; } }
@keyframes im-marquee { to { transform: translateX(-50%); } }
@keyframes im-eq { 0%, 100% { transform: scaleY(.35); } 25% { transform: scaleY(1); } 50% { transform: scaleY(.55); } 75% { transform: scaleY(.85); } }
@keyframes im-flow { to { background-position: 0 24px; } }
@keyframes im-ecg { from { stroke-dashoffset: 78; } to { stroke-dashoffset: 0; } }
@keyframes im-blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes im-rise { from { opacity: 0; transform: translateY(32px); } }
@keyframes im-scale-in { from { opacity: 0; transform: scale(.95); } }
@keyframes im-fade { from { opacity: 0; } }

/* Calm mode (option) and reduced-motion preference ----------------------- */

.im-calm .loop, .im-calm .im-mmenu li, .im-calm .im-mmenu__cta, .im-calm .im-sticky__btn, .im-calm .im-result, .im-calm .im-join__success, .im-calm .im-faq__a { animation: none !important; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
	.js [data-reveal] { opacity: 1 !important; transform: none !important; }
}

/* Print ------------------------------------------------------------------ */

@media print {
	.im-announce, .im-header, .im-sticky, .im-mmenu, .im-hero__dots, .im-join__rings { display: none !important; }
	.im-block { background: none; color: #000; }
	.js [data-reveal] { opacity: 1 !important; transform: none !important; }
}
