/*
 * Blog & generic WordPress views — index, single, page, archive, search, 404,
 * comments, search form and the 'blog' widget area.
 *
 * Built from the design's own vocabulary (About / Services / Portfolio /
 * Case Study): black heroes with the lime glow, Geist Mono eyebrows, condensed
 * Archivo 800–900 headlines, Instrument Sans body (#c9ccd0 / #a3a7ad),
 * #16171a cards with the rising lime fill, pill buttons with the black arrow
 * circle, the Portfolio filter chips and the Services sticky index.
 * Class prefix: vmb-. Motion: data-reveal / data-stagger / data-parallax /
 * data-magnetic / data-cursor (vm-fx.js) + the hero keyframes below.
 *
 * Note: base.css sets a:hover{color:#edf0ea}; every link class here sets its
 * own :hover colour so lime buttons stay ink-on-lime (the design used inline
 * colours, which always beat that rule).
 */

/* ---------------------------------------------------------------------------
 * Keyframes (same names/values as the design helmets).
 * ------------------------------------------------------------------------- */
@keyframes vmHeroIn { from { opacity: 0; transform: translateY(70px); filter: blur(12px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes vmStretch { from { font-stretch: 62%; opacity: 0; } to { font-stretch: 100%; opacity: 1; } }
@keyframes csIn { from { opacity: 0; transform: translateY(60px); filter: blur(12px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes vmOrbit { to { transform: rotate(360deg); } }
@keyframes vmGlow { 50% { box-shadow: 0 0 120px 40px rgba(225, 232, 255, .14); } }
@keyframes vmIris { from { clip-path: circle(0% at 50% 50%); } to { clip-path: circle(50% at 50% 50%); } }
@keyframes vmbFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -14px; } }

/* ---------------------------------------------------------------------------
 * Page shell.
 * ------------------------------------------------------------------------- */
.vmb {
	--vmb-lime: #c1ed00;
	--vmb-ink: #0e0f11;
	--vmb-paper: #edf0ea;
	--vmb-card: #16171a;
	--vmb-text: #c9ccd0;
	--vmb-mist: #a3a7ad;
	--vmb-dim: #6f7378;
	--vmb-gut: clamp(20px, 4vw, 56px);
	--vmb-ease: cubic-bezier(.16, 1, .3, 1);
	--vmb-col: 760px;
	--vmb-wide: 1180px;
	position: relative;
	font-family: 'Instrument Sans', sans-serif;
	color: #edf0ea;
	background: #0e0f11;
	overflow-x: clip;
}
.vmb *, .vmb *::before, .vmb *::after { box-sizing: border-box; }
.vmb img { max-width: 100%; height: auto; }
.vmb-wrap { max-width: 1480px; margin: 0 auto; width: 100%; }
.vmb-lime { color: #c1ed00; }

/* Eyebrow / label / section headings. */
.vmb-eyebrow { font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #c1ed00; }
.vmb-label { font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #6f7378; }
.vmb-h2 { margin: 0; overflow-wrap: anywhere; font: 800 clamp(40px, 5.6vw, 96px)/.9 'Archivo', sans-serif; font-stretch: 80%; letter-spacing: -.03em; text-transform: uppercase; color: #edf0ea; text-wrap: balance; }

/* Hero entrance (the design's hero keyframes and delays). */
.vmb-in { animation: vmHeroIn 1.2s .6s cubic-bezier(.16, 1, .3, 1) both; }
.vmb-in--1 { animation-duration: 1.1s; animation-delay: .3s; }
.vmb-in--2 { animation-delay: .45s; }
.vmb-in--3 { animation-delay: .6s; }
.vmb-in--4 { animation-delay: .75s; }
/* Article hero = the Case Study hero: csIn with its delays (crumb 1s .3s, lead .55s, facts .7s). */
.vmb-hero--post .vmb-in { animation: csIn 1.2s .55s cubic-bezier(.16, 1, .3, 1) both; }
.vmb-hero--post .vmb-in--1 { animation-duration: 1s; animation-delay: .3s; }
.vmb-hero--post .vmb-in--4 { animation-delay: .7s; }

/* ---------------------------------------------------------------------------
 * Buttons (primary lime pill + black arrow circle, ghost outline).
 * ------------------------------------------------------------------------- */
.vmb-btn,
.vmb .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 14px;
	padding: 8px 8px 8px 26px; border-radius: 999px; border: 0;
	background: #c1ed00; color: #0e0f11; text-decoration: none;
	font: 700 16px/1 'Archivo', sans-serif; cursor: pointer;
	transition: box-shadow .4s, background .3s;
}
.vmb-btn:hover, .vmb-btn:focus, .vmb .wp-block-button__link:hover { color: #0e0f11; box-shadow: 0 10px 50px rgba(193, 237, 0, .3); }
.vmb-btn__circle { width: 44px; height: 44px; flex: none; border-radius: 50%; background: #0e0f11; display: flex; align-items: center; justify-content: center; }
.vmb-btn__circle svg { display: block; }
.vmb-ghost {
	display: inline-flex; align-items: center; height: 60px; padding: 0 26px; border-radius: 999px;
	border: 1px solid rgba(237, 240, 234, .25); color: #edf0ea; text-decoration: none;
	font: 600 16px/1 'Instrument Sans', sans-serif; transition: border-color .3s;
}
/* style-hover="border-color:#edf0ea" */
.vmb-ghost:hover { border-color: #edf0ea !important; color: #edf0ea; }
/* About CTA e-mail pill: padding 0 24px. */
.vmb-ghost--mail { padding: 0 24px; }
.vmb-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.vmb-underline { align-self: flex-start; color: #edf0ea; text-decoration: none; font: 600 16px/1 'Instrument Sans', sans-serif; padding-bottom: 6px; border-bottom: 1px solid #c1ed00; transition: color .3s; }
/* style-hover="color:#c1ed00" (Portfolio "Read the case study →"). */
.vmb-underline:hover { color: #c1ed00 !important; }

/* ---------------------------------------------------------------------------
 * Hero.
 * ------------------------------------------------------------------------- */
.vmb-hero {
	position: relative; display: block;
	padding: clamp(130px, 15vh, 180px) var(--vmb-gut) clamp(60px, 8vw, 110px);
	background: #000; overflow: hidden;
}
.vmb-hero__glow { position: absolute; right: -10vw; top: -10vw; width: 60vw; height: 60vw; background: radial-gradient(closest-side, rgba(193, 237, 0, .09), rgba(193, 237, 0, 0)); pointer-events: none; }
.vmb-hero__inner { position: relative; max-width: 1480px; margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 26px; }
.vmb-hero__row { width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px; }
.vmb-hero__search { flex: 1 1 380px; max-width: 520px; }
.vmb-hero__badges { display: flex; flex-wrap: wrap; gap: 8px; }
.vmb-hero__avatar { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 2px solid #c1ed00; box-shadow: 0 0 0 10px rgba(193, 237, 0, .12); }
.vmb-hero__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1); }

/* Headline scales: xl = Portfolio hero, lg = Services hero, md / post = Case Study hero. */
.vmb-title {
	margin: 0; max-width: 100%;
	font: 900 clamp(64px, 12vw, 220px)/.8 'Archivo', sans-serif;
	letter-spacing: -.05em; text-transform: uppercase; color: #edf0ea;
	min-width: 0; overflow-wrap: anywhere; hyphens: manual;
	animation: vmStretch 1.6s .35s cubic-bezier(.16, 1, .3, 1) both;
}
.vmb-title--lg { font-size: clamp(44px, 8.4vw, 150px); line-height: .84; letter-spacing: -.045em; text-wrap: balance; }
/*
 * Narrow phones: the 64px / 44px floors are wider than the longest word these
 * scales allow (vmweb_blog_title_size(): 7 / 10 letters + the lime full stop,
 * up to ~5.7em / ~7.6em), so under ~408px / ~374px the floor follows the hero's
 * content width (viewport minus both gutters) instead of splitting the word.
 * Wider viewports keep the clamp() above unchanged.
 */
.vmb-title--xl { font-size: clamp(min(64px, (100vw - 2 * var(--vmb-gut)) / 5.75), 12vw, 220px); }
.vmb-title--lg { font-size: clamp(min(44px, (100vw - 2 * var(--vmb-gut)) / 7.6), 8.4vw, 150px); }
.vmb-title--md,
.vmb-title--post {
	font: 900 clamp(42px, 6.4vw, 112px)/.88 'Archivo', sans-serif; font-stretch: 72%;
	letter-spacing: -.04em; text-wrap: balance; max-width: 1240px;
	animation: csIn 1.2s .4s cubic-bezier(.16, 1, .3, 1) both;
}
.vmb-lead { margin: 0; max-width: 540px; font-size: clamp(17px, 1.35vw, 20px); line-height: 1.55; color: #c9ccd0; }
.vmb-lead--post { max-width: 720px; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.5; }
.vmb-lead--rich p { margin: 0 0 .8em; }
.vmb-lead--rich p:last-child { margin-bottom: 0; }
.vmb-lead--rich a { color: #edf0ea; text-decoration-color: #c1ed00; text-underline-offset: .2em; }

/* Breadcrumb (Case Study). */
.vmb-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font: 500 12px/1.4 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #6f7378; }
.vmb-crumbs a { color: #a3a7ad; text-decoration: none; transition: color .3s; }
/* style-hover="color:#c1ed00" */
.vmb-crumbs a:hover { color: #c1ed00 !important; }
.vmb-crumbs__here { color: #c1ed00; }

/* Facts row (Case Study: Industry / Services / Timeline / Launched). */
.vmb-facts { width: 100%; max-width: 980px; display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 18px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .1); }
.vmb-fact { display: flex; flex-direction: column; gap: 8px; }
.vmb-fact__v { font: 700 16px/1.3 'Archivo', sans-serif; color: #edf0ea; text-decoration: none; }
a.vmb-fact__v { transition: color .3s; }
a.vmb-fact__v:hover { color: #c1ed00; }
.vmb-fact__author { display: inline-flex; align-items: center; gap: 10px; }
.vmb-fact__avatar { width: 28px !important; height: 28px !important; border-radius: 50%; filter: grayscale(1); flex: none; }

/* Featured image (Services article image: clip reveal + inner parallax). */
.vmb-cover-wrap { position: relative; max-width: 1480px; margin: clamp(48px, 6vw, 90px) auto 0; }
.vmb-cover { position: relative; margin: 0; border-radius: 30px; overflow: hidden; aspect-ratio: 16/8; background: #16171a; box-shadow: 0 50px 120px rgba(0, 0, 0, .5); }
.vmb-cover__img { position: absolute; left: 0; top: -12%; width: 100% !important; height: 124% !important; max-width: none !important; object-fit: cover; display: block; }
.vmb-cover__cap { position: absolute; left: 18px; bottom: 16px; padding: 8px 12px; border-radius: 99px; background: rgba(0, 0, 0, .7); font: 600 11px/1.3 'Geist Mono', monospace; letter-spacing: .08em; color: #edf0ea; max-width: calc(100% - 36px); }
@media (max-width: 600px) { .vmb-cover { aspect-ratio: 4/3; border-radius: 24px; } }

/* ---------------------------------------------------------------------------
 * Topic chips (Portfolio sticky filter bar).
 * ------------------------------------------------------------------------- */
.vmb-chips { position: sticky; top: 84px; z-index: 20; display: flex; justify-content: center; padding: 14px clamp(14px, 3vw, 40px); pointer-events: none; margin-top: -1px; }
.vmb-chips__bar { pointer-events: auto; display: flex; gap: 4px; padding: 6px; border-radius: 999px; background: rgba(22, 23, 26, .75); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border: 1px solid rgba(255, 255, 255, .08); overflow-x: auto; max-width: 100%; scrollbar-width: none; }
.vmb-chips__bar::-webkit-scrollbar { display: none; }
.vmb-chip { flex: none; padding: 11px 18px; border-radius: 999px; background: transparent; color: #c9ccd0; text-decoration: none; font: 600 14px/1 'Instrument Sans', sans-serif; transition: background .4s, color .4s; }
.vmb-chip:hover { color: #edf0ea; }
.vmb-chip.is-on, .vmb-chip.is-on:hover { background: #c1ed00; color: #0e0f11; }

/* ---------------------------------------------------------------------------
 * Listing section + card grid.
 * ------------------------------------------------------------------------- */
.vmb-list { position: relative; padding: clamp(40px, 5vw, 80px) var(--vmb-gut) clamp(80px, 10vw, 150px); background: #0e0f11; display: flex; flex-direction: column; gap: clamp(26px, 3vw, 40px); }
.vmb-shead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-top: clamp(10px, 2vw, 30px); }
.vmb-shead__note { font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #6f7378; }
.vmb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 18px; align-items: stretch; }

/* Card: image with hover zoom + body with the principle cards' rising lime fill. */
.vmb-card { position: relative; min-width: 0; display: flex; flex-direction: column; border-radius: 26px; overflow: hidden; background: #16171a; color: #edf0ea; isolation: isolate; }
.vmb-card__media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: radial-gradient(circle at 30% 25%, #2f3237, #16171a 70%); }
.vmb-card__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: scale 1.2s cubic-bezier(.16, 1, .3, 1), filter .6s; }
.vmb-card__num { position: absolute; left: clamp(18px, 2vw, 26px); bottom: clamp(10px, 1.6vw, 20px); font: 900 clamp(90px, 9vw, 150px)/.75 'Archivo', sans-serif; font-stretch: 66%; letter-spacing: -.05em; color: #c1ed00; transition: translate 1.2s cubic-bezier(.16, 1, .3, 1); }
.vmb-card__badges { position: absolute; left: 14px; top: 14px; right: 14px; display: flex; flex-wrap: wrap; gap: 6px; z-index: 2; pointer-events: none; }
.vmb-badge { display: inline-flex; align-items: center; padding: 7px 11px; border-radius: 999px; background: rgba(0, 0, 0, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font: 500 10.5px/1 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #edf0ea; vertical-align: middle; }
.vmb-badge--lime { background: #c1ed00; color: #0e0f11; font-weight: 600; }
.vmb-badge--lock { background: rgba(14, 15, 17, .8); border: 1px solid rgba(193, 237, 0, .45); color: #c1ed00; }
.vmb-card__body {
	flex: 1; display: flex; flex-direction: column; gap: 14px;
	padding: clamp(22px, 2.4vw, 32px);
	background: linear-gradient(#c1ed00, #c1ed00) 50% 100%/100% 0% no-repeat, #16171a;
	transition: background-size .7s cubic-bezier(.16, 1, .3, 1), color .4s;
}
.vmb-card__meta { display: flex; flex-wrap: wrap; gap: 8px; font: 500 11px/1.3 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; opacity: .6; }
.vmb-card__title { margin: 0; overflow-wrap: anywhere; font: 800 clamp(24px, 2vw, 32px)/1 'Archivo', sans-serif; font-stretch: 84%; letter-spacing: -.02em; text-transform: uppercase; text-wrap: balance; }
.vmb-card__link { color: inherit; text-decoration: none; }
.vmb-card__link:hover { color: inherit; }
/* The title link covers the whole card (one tab stop, whole card clickable). */
.vmb-card__link::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: 26px; }
.vmb-card__link:focus-visible { outline: none; }
.vmb-card:has(.vmb-card__link:focus-visible) { outline: 2px solid #c1ed00; outline-offset: 3px; }
.vmb-card__excerpt { margin: 0; font-size: 16px; line-height: 1.55; opacity: .75; }
.vmb-card__foot { margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 600 14px/1 'Instrument Sans', sans-serif; transition: border-color .4s; }
.vmb-card__go { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(237, 240, 234, .25); display: flex; align-items: center; justify-content: center; color: #edf0ea; transition: background .4s, border-color .4s, color .4s, rotate .6s cubic-bezier(.16, 1, .3, 1); }
/* Hover: image zoom (team portraits' scale:1.06) + lime fill rising (principle cards). */
.vmb-card:hover .vmb-card__img { scale: 1.06; }
.vmb-card:hover .vmb-card__num { translate: 0 -8px; }
.vmb-card:hover .vmb-card__body { background-size: 100% 100%; color: #0e0f11; }
.vmb-card:hover .vmb-card__foot { border-color: rgba(14, 15, 17, .2); }
.vmb-card:hover .vmb-card__go { background: #0e0f11; border-color: #0e0f11; color: #c1ed00; rotate: -45deg; }
.vmb-card.sticky { box-shadow: inset 0 0 0 1px rgba(193, 237, 0, .35); }

/* Feature card (Case Study "Next case" card). */
.vmb-feature { position: relative; display: block; height: clamp(380px, 40vw, 620px); border-radius: 32px; overflow: hidden; background: radial-gradient(circle at 70% 20%, #2f3237, #16171a 70%); color: #edf0ea; isolation: isolate; }
.vmb-feature__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; filter: grayscale(.6) brightness(.45); transition: scale 1.4s cubic-bezier(.16, 1, .3, 1), filter .6s; }
/* style-hover="scale:1.05;filter:grayscale(0) brightness(.55)" */
.vmb-feature:hover .vmb-feature__img { scale: 1.05; filter: grayscale(0) brightness(.55); }
.vmb-feature__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .55)); pointer-events: none; }
.vmb-feature__body { position: absolute; left: clamp(22px, 3vw, 44px); right: clamp(22px, 3vw, 44px); bottom: clamp(22px, 3vw, 40px); display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.vmb-feature__text { display: flex; flex-direction: column; gap: 14px; max-width: 1040px; }
.vmb-feature__eyebrow { font: 600 12px/1 'Geist Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #c1ed00; }
.vmb-feature__title { margin: 0; overflow-wrap: anywhere; font: 900 clamp(40px, 6vw, 104px)/.84 'Archivo', sans-serif; font-stretch: 68%; letter-spacing: -.04em; text-transform: uppercase; text-wrap: balance; }
.vmb-feature__link { color: #edf0ea; text-decoration: none; }
.vmb-feature__link:hover { color: #edf0ea; }
.vmb-feature__link::after { content: ''; position: absolute; inset: -100vh -100vw; z-index: 1; }
.vmb-feature__excerpt { margin: 0; max-width: 620px; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.5; color: #c9ccd0; }
.vmb-feature__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 500 11px/1.3 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #a3a7ad; }
.vmb-feature__go { width: 64px; height: 64px; border-radius: 50%; background: #c1ed00; display: flex; align-items: center; justify-content: center; flex: none; transition: scale .5s cubic-bezier(.16, 1, .3, 1); }
.vmb-feature:hover .vmb-feature__go { scale: 1.08; }
.vmb-feature:has(.vmb-feature__link:focus-visible) { outline: 2px solid #c1ed00; outline-offset: 3px; }
@media (max-width: 640px) {
	.vmb-feature { height: auto; min-height: 520px; }
	.vmb-feature__go { width: 52px; height: 52px; }
	.vmb-feature__excerpt { display: none; }
}

/* ---------------------------------------------------------------------------
 * Pagination (the_posts_pagination / comment navigation / wp_link_pages).
 * ------------------------------------------------------------------------- */
.vmb-pagination, .vmb-comment-nav { margin-top: clamp(20px, 3vw, 40px); }
.vmb-pagination .nav-links,
.vmb-comment-nav .nav-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.vmb-pagination .page-numbers {
	min-width: 56px; height: 56px; padding: 0 18px; border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .14); display: inline-flex; align-items: center; justify-content: center;
	font: 600 13px/1 'Geist Mono', monospace; letter-spacing: .06em; color: #c9ccd0; text-decoration: none;
	transition: border-color .3s, color .3s, background .3s;
}
.vmb-pagination a.page-numbers:hover { border-color: #edf0ea; color: #edf0ea; }
.vmb-pagination .page-numbers.current { background: #c1ed00; border-color: #c1ed00; color: #0e0f11; }
.vmb-pagination .page-numbers.dots { border-color: transparent; min-width: 30px; padding: 0; }
.vmb-pagination .prev.page-numbers,
.vmb-pagination .next.page-numbers,
.vmb-comment-nav .nav-previous a,
.vmb-comment-nav .nav-next a {
	gap: 14px; height: 60px; border: 0; background: #c1ed00; color: #0e0f11;
	font: 700 15px/1 'Archivo', sans-serif; letter-spacing: 0; text-decoration: none;
	display: inline-flex; align-items: center; border-radius: 999px; transition: box-shadow .4s;
}
.vmb-pagination .next.page-numbers, .vmb-comment-nav .nav-next a { padding: 8px 8px 8px 24px; }
.vmb-pagination .prev.page-numbers, .vmb-comment-nav .nav-previous a { padding: 8px 24px 8px 8px; }
.vmb-pagination .prev.page-numbers:hover,
.vmb-pagination .next.page-numbers:hover,
.vmb-comment-nav a:hover { color: #0e0f11; box-shadow: 0 10px 50px rgba(193, 237, 0, .3); }
.vmb-pagination .prev .vmb-btn__circle, .vmb-pagination .next .vmb-btn__circle,
.vmb-comment-nav .vmb-btn__circle { width: 44px; height: 44px; }
.vmb-comment-nav .nav-links { justify-content: space-between; }

.vmb-pages { max-width: var(--vmb-col); margin: clamp(36px, 4vw, 56px) auto 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.vmb-pages__label { font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #6f7378; margin-right: 8px; }
.vmb-pages a, .vmb-pages > .post-page-numbers { text-decoration: none; }
.vmb-pages__n { min-width: 48px; height: 48px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14); display: inline-flex; align-items: center; justify-content: center; font: 600 13px/1 'Geist Mono', monospace; color: #c9ccd0; transition: border-color .3s, color .3s; }
.vmb-pages a:hover .vmb-pages__n { border-color: #edf0ea; color: #edf0ea; }
.vmb-pages .post-page-numbers.current .vmb-pages__n { background: #c1ed00; border-color: #c1ed00; color: #0e0f11; }

/* ---------------------------------------------------------------------------
 * Search form (pill field + lime button).
 * ------------------------------------------------------------------------- */
.vmb-search { position: relative; display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 6px 6px 20px; border-radius: 999px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .12); transition: border-color .3s, background .3s; }
.vmb-search:focus-within { border-color: #c1ed00; background: rgba(255, 255, 255, .06); }
.vmb-search__icon { color: #6f7378; display: flex; flex: none; transition: color .3s; }
.vmb-search:focus-within .vmb-search__icon { color: #c1ed00; }
.vmb-search__input { flex: 1; min-width: 0; height: 48px; border: 0; outline: none; background: transparent; color: #edf0ea; caret-color: #c1ed00; font: 500 17px/1.2 'Instrument Sans', sans-serif; -webkit-appearance: none; appearance: none; }
.vmb-search__input::placeholder { color: #6f7378; }
.vmb-search__input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.vmb-search__btn { flex: none; display: inline-flex; align-items: center; gap: 12px; padding: 6px 6px 6px 20px; border-radius: 999px; border: 0; background: #c1ed00; color: #0e0f11; font: 700 15px/1 'Archivo', sans-serif; cursor: pointer; transition: box-shadow .4s; }
.vmb-search__btn:hover { box-shadow: 0 10px 40px rgba(193, 237, 0, .25); }
.vmb-search__btn .vmb-btn__circle { width: 40px; height: 40px; }
.vmb-search__input:focus-visible { outline: none; }
@media (max-width: 420px) { .vmb-search__txt { display: none; } .vmb-search__btn { padding: 6px; } }

/* ---------------------------------------------------------------------------
 * Article layout: centered reading column + sticky index in the left gutter.
 * ------------------------------------------------------------------------- */
.vmb-entry { display: block; }
.vmb-article { position: relative; padding: clamp(70px, 8vw, 120px) var(--vmb-gut) clamp(40px, 5vw, 70px); background: #0e0f11; }
.vmb-hero--post.has-cover, .vmb-hero--page.has-cover { padding-bottom: 0; background: linear-gradient(#000 0, #000 calc(100% - clamp(120px, 14vw, 240px)), #0e0f11 calc(100% - clamp(120px, 14vw, 240px))); }

/* Reading progress (fixed lime line, Services/About timeline fill). */
.vmb-progress { position: fixed; left: 0; right: 0; top: 0; height: 2px; z-index: 1001; pointer-events: none; }
.vmb-progress span { display: block; height: 100%; width: var(--p, 0%); background: #c1ed00; box-shadow: 0 0 14px #c1ed00; }

/* "On this page" — the Services sticky index. */
.vmb-toc { display: none; }
@media (min-width: 1280px) {
	.vmb-toc { display: block; position: absolute; top: clamp(70px, 8vw, 120px); bottom: 0; left: var(--vmb-gut); width: min(260px, calc((100% - var(--vmb-col)) / 2 - var(--vmb-gut) - 40px)); transition: opacity .4s, visibility .4s; }
	/* Hidden while a wide/full block passes underneath (also out of the tab order). */
	.vmb-toc.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
}
.vmb-toc__inner { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 4px; }
.vmb-toc__label { font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #6f7378; margin-bottom: 16px; }
/* Services index type (17px at 1440+), a touch smaller where the gutter is narrow. */
.vmb-toc__link { display: flex; align-items: center; gap: 14px; padding: 12px 0; text-decoration: none; color: #6f7378; font: 700 clamp(15px, 1.18vw, 17px)/1.1 'Archivo', sans-serif; transition: color .4s; }
.vmb-toc__line { height: 1px; width: 12px; flex: none; background: currentColor; transition: width .6s cubic-bezier(.16, 1, .3, 1), background .4s; }
.vmb-toc__n { font: 500 12px/1 'Geist Mono', monospace; flex: none; }
.vmb-toc__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.vmb-toc__link:hover { color: #edf0ea; }
.vmb-toc__link.is-active, .vmb-toc__link.is-active:hover { color: #c1ed00; }
.vmb-toc__link.is-active .vmb-toc__line { width: 36px; }

.vmb-entry__foot { max-width: var(--vmb-col); margin: clamp(48px, 6vw, 80px) auto 0; display: flex; flex-direction: column; gap: 28px; }
.vmb-edit { margin: 0; }
.vmb-edit a { font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #6f7378; text-decoration: none; }
.vmb-edit a:hover { color: #c1ed00; }

/* Tags (Services tag pills). */
.vmb-tags { display: flex; flex-direction: column; gap: 14px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .1); }
.vmb-tags__list { display: flex; flex-wrap: wrap; gap: 8px; }
.vmb-tag { padding: 10px 15px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14); font: 600 12px/1 'Instrument Sans', sans-serif; letter-spacing: .04em; text-transform: uppercase; color: #d5d8dc; text-decoration: none; transition: border-color .3s, color .3s; }
.vmb-tag:hover { border-color: #c1ed00; color: #c1ed00; }

/* Author card. */
.vmb-author { display: flex; gap: clamp(18px, 2.4vw, 28px); align-items: flex-start; padding: clamp(22px, 3vw, 32px); border-radius: 26px; background: #16171a; border: 1px solid rgba(193, 237, 0, .25); }
.vmb-author__avatar { width: 72px; height: 72px; flex: none; border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 30% 25%, #2f3237, #16171a 70%); }
.vmb-author__img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; filter: grayscale(1); transition: filter .6s; }
.vmb-author:hover .vmb-author__img { filter: grayscale(0); }
.vmb-author__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.vmb-author__name { font: 700 22px/1.1 'Archivo', sans-serif; color: #edf0ea; }
.vmb-author__bio { font-size: 16px; line-height: 1.6; color: #a3a7ad; }
.vmb-author .vmb-underline { margin-top: 6px; font-size: 15px; }

/* Previous / next cards (Case Study "Next case"). */
.vmb-postnav { padding: clamp(60px, 7vw, 110px) var(--vmb-gut) 0; background: #0e0f11; }
.vmb-postnav__grid { max-width: 1480px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 16px; }
.vmb-next { position: relative; display: block; height: clamp(240px, 24vw, 340px); border-radius: 32px; overflow: hidden; background: radial-gradient(circle at 70% 20%, #2f3237, #16171a 70%); color: #edf0ea; text-decoration: none; }
.vmb-next:hover { color: #edf0ea; }
.vmb-next__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; filter: grayscale(.6) brightness(.45); transition: scale 1.4s cubic-bezier(.16, 1, .3, 1), filter .6s; }
.vmb-next:hover .vmb-next__img { scale: 1.05; filter: grayscale(0) brightness(.55); }
.vmb-next__body { position: absolute; left: clamp(22px, 3vw, 40px); right: clamp(22px, 3vw, 40px); bottom: clamp(22px, 3vw, 36px); display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; pointer-events: none; }
.vmb-next--prev .vmb-next__body { flex-direction: row-reverse; }
.vmb-next--prev .vmb-next__text { text-align: right; align-items: flex-end; }
.vmb-next__text { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.vmb-next__label { font: 600 12px/1.3 'Geist Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #c1ed00; }
.vmb-next__title { overflow-wrap: anywhere; font: 900 clamp(30px, 3.4vw, 56px)/.88 'Archivo', sans-serif; font-stretch: 68%; letter-spacing: -.035em; text-transform: uppercase; text-wrap: balance; }
.vmb-next__go { width: 64px; height: 64px; border-radius: 50%; background: #c1ed00; display: flex; align-items: center; justify-content: center; flex: none; transition: scale .5s cubic-bezier(.16, 1, .3, 1); }
.vmb-next:hover .vmb-next__go { scale: 1.08; }
@media (max-width: 560px) { .vmb-next__go { width: 52px; height: 52px; } .vmb-next--prev .vmb-next__body { flex-direction: row; } .vmb-next--prev .vmb-next__text { text-align: left; align-items: flex-start; } }

/* Closing CTA (About / Portfolio). */
.vmb-cta { position: relative; padding: clamp(80px, 10vw, 150px) var(--vmb-gut); background: #0e0f11; border-top: 1px solid rgba(255, 255, 255, .06); }
.vmb-cta__inner { max-width: 1480px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 36px; }
.vmb-cta__title { margin: 0; font: 900 clamp(56px, 9vw, 170px)/.8 'Archivo', sans-serif; font-stretch: 68%; letter-spacing: -.045em; text-transform: uppercase; color: #edf0ea; }
.vmb-cta__side { display: flex; flex-direction: column; gap: 20px; max-width: 440px; }
.vmb-cta__side p { margin: 0; font-size: 18px; line-height: 1.55; color: #a3a7ad; }

/* ---------------------------------------------------------------------------
 * Prose — every core block in the design's typography.
 * ------------------------------------------------------------------------- */
.vmb-prose { font: 400 19px/1.7 'Instrument Sans', sans-serif; color: #c9ccd0; overflow-wrap: break-word; }
.vmb-prose::after { content: ''; display: table; clear: both; }
.vmb-prose > * { max-width: var(--vmb-col); margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; }
.vmb-prose > * + * { margin-top: 1.4em; }
.vmb-prose > .alignwide { max-width: var(--vmb-wide); }
.vmb-prose > .alignfull { max-width: none; width: auto; margin-left: calc(-1 * var(--vmb-gut)); margin-right: calc(-1 * var(--vmb-gut)); }
.vmb-prose > :first-child { margin-top: 0; }
.vmb-prose > p:first-child, .vmb-prose > p.is-lead { font-size: clamp(21px, 1.7vw, 26px); line-height: 1.5; color: #edf0ea; }

.vmb-prose p { text-wrap: pretty; }
.vmb-prose a { color: #edf0ea; text-decoration: underline; text-decoration-color: #c1ed00; text-decoration-thickness: 1px; text-underline-offset: .22em; transition: color .3s; }
.vmb-prose a:hover { color: #c1ed00; }
.vmb-prose strong, .vmb-prose b { color: #edf0ea; font-weight: 650; }
.vmb-prose em, .vmb-prose i { font-style: italic; }
.vmb-prose mark { background: #c1ed00; color: #0e0f11; padding: .05em .25em; border-radius: 4px; }
.vmb-prose mark.has-inline-color:not([class*="-color"]) { background: #c1ed00; color: #0e0f11; }
.vmb-prose kbd { font: 600 .78em/1 'Geist Mono', monospace; padding: .3em .5em; border-radius: 6px; border: 1px solid rgba(255, 255, 255, .18); border-bottom-width: 2px; color: #edf0ea; background: #16171a; }
.vmb-prose abbr[title] { text-decoration: underline dotted rgba(193, 237, 0, .6); text-underline-offset: .2em; cursor: help; }
.vmb-prose sup, .vmb-prose sub { font-size: .7em; line-height: 0; }
.vmb-prose s, .vmb-prose del { color: #8e9399; }
.vmb-prose ins { text-decoration: none; background: rgba(193, 237, 0, .14); color: #edf0ea; }
.vmb-prose small { font-size: .82em; }

/* Headings. */
.vmb-prose h1, .vmb-prose h2, .vmb-prose h3, .vmb-prose h4, .vmb-prose h5, .vmb-prose h6 { color: #edf0ea; scroll-margin-top: 110px; text-wrap: balance; }
.vmb-prose > h1, .vmb-prose > h2, .vmb-prose > h3, .vmb-prose > h4 { margin-top: 2.1em; }
.vmb-prose > h1 + *, .vmb-prose > h2 + *, .vmb-prose > h3 + *, .vmb-prose > h4 + *, .vmb-prose > h5 + *, .vmb-prose > h6 + * { margin-top: .8em; }
.vmb-prose h1 { font: 900 clamp(44px, 5vw, 80px)/.88 'Archivo', sans-serif; font-stretch: 72%; letter-spacing: -.04em; text-transform: uppercase; }
.vmb-prose h2 { font: 800 clamp(32px, 3.4vw, 54px)/.95 'Archivo', sans-serif; font-stretch: 84%; letter-spacing: -.03em; text-transform: uppercase; }
.vmb-prose h3 { font: 700 clamp(24px, 2.2vw, 32px)/1.12 'Archivo', sans-serif; font-stretch: 92%; letter-spacing: -.02em; }
.vmb-prose h4 { font: 700 22px/1.25 'Archivo', sans-serif; letter-spacing: -.01em; }
.vmb-prose h5 { font: 600 13px/1.4 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #c1ed00; }
.vmb-prose h6 { font: 500 12px/1.4 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #a3a7ad; }
.vmb-prose > h5, .vmb-prose > h6 { margin-top: 2.4em; }
.vmb-prose .has-text-align-center { text-align: center; }
.vmb-prose .has-text-align-right { text-align: right; }

/* Lists. */
.vmb-prose ul, .vmb-prose ol { padding-left: 1.3em; }
.vmb-prose li { padding-left: .3em; }
.vmb-prose li + li { margin-top: .5em; }
.vmb-prose li > ul, .vmb-prose li > ol { margin-top: .5em; }
.vmb-prose ul > li::marker { color: #c1ed00; content: '●  '; font-size: .7em; }
.vmb-prose ol > li::marker { color: #c1ed00; font: 600 .82em 'Geist Mono', monospace; }
.vmb-prose dl dt { font: 700 18px/1.3 'Archivo', sans-serif; color: #edf0ea; margin-top: 1em; }
.vmb-prose dl dd { margin: .3em 0 0; }

/* Quote. */
.vmb-prose blockquote, .vmb-prose .wp-block-quote { margin-top: 1.8em; margin-bottom: 0; padding: 4px 0 4px clamp(20px, 3vw, 34px); border-left: 2px solid #c1ed00; font: 700 clamp(24px, 2.3vw, 34px)/1.22 'Archivo', sans-serif; font-stretch: 92%; letter-spacing: -.02em; color: #edf0ea; }
.vmb-prose blockquote + *, .vmb-prose .wp-block-quote + * { margin-top: 1.8em; }
.vmb-prose blockquote p { margin: 0; }
.vmb-prose blockquote p + p { margin-top: .6em; }
.vmb-prose blockquote cite, .vmb-prose .wp-block-quote cite, .vmb-prose figcaption.wp-block-quote__citation { display: block; margin-top: 18px; font: 500 12px/1.4 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; font-style: normal; color: #8e9399; }
.vmb-prose .wp-block-quote.is-style-large, .vmb-prose .wp-block-quote.is-large { font-size: clamp(28px, 3vw, 44px); }
.vmb-prose .wp-block-quote.has-text-align-center { border-left: 0; padding-left: 0; }
.vmb-prose .wp-block-quote.has-text-align-right { border-left: 0; border-right: 2px solid #c1ed00; padding: 4px clamp(20px, 3vw, 34px) 4px 0; }

/* Pullquote (Case Study client quote). */
.vmb-prose .wp-block-pullquote { margin-top: 2.2em; padding: clamp(36px, 4vw, 56px) 0; border-top: 2px solid #c1ed00; border-bottom: 1px solid rgba(255, 255, 255, .1); text-align: left; color: #edf0ea; }
.vmb-prose .wp-block-pullquote + * { margin-top: 2.2em; }
.vmb-prose .wp-block-pullquote blockquote { margin: 0; padding: 0; border: 0; font: 700 clamp(30px, 3.6vw, 56px)/1.12 'Archivo', sans-serif; font-stretch: 90%; letter-spacing: -.025em; text-wrap: pretty; }
.vmb-prose .wp-block-pullquote blockquote::before { content: '“'; display: block; height: .5em; margin-bottom: .1em; font: 900 2.2em/1 'Archivo', sans-serif; color: #c1ed00; }
.vmb-prose .wp-block-pullquote p { font-size: inherit; line-height: inherit; margin: 0; }
.vmb-prose .wp-block-pullquote cite { margin-top: 22px; display: block; font: 700 18px/1.2 'Archivo', sans-serif; text-transform: none; letter-spacing: 0; color: #8e9399; font-style: normal; }
.vmb-prose .wp-block-pullquote.has-text-align-center { text-align: center; }
.vmb-prose .wp-block-pullquote.alignleft, .vmb-prose .wp-block-pullquote.alignright { max-width: 360px; }
.vmb-prose .wp-block-pullquote.alignleft blockquote, .vmb-prose .wp-block-pullquote.alignright blockquote { font-size: 28px; }

/* Code. */
.vmb-prose code, .vmb-prose tt, .vmb-prose samp { font: 500 .86em/1.4 'Geist Mono', monospace; padding: .15em .4em; border-radius: 6px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .08); color: #edf0ea; }
.vmb-prose pre { position: relative; overflow-x: auto; padding: 22px 26px; border-radius: 18px; background: #121316; border: 1px solid rgba(255, 255, 255, .06); font: 500 14.5px/1.7 'Geist Mono', monospace; color: #d5d8dc; white-space: pre; tab-size: 2; scrollbar-width: thin; scrollbar-color: #33363b transparent; }
.vmb-prose pre code { display: block; padding: 0; border: 0; background: none; font: inherit; color: inherit; white-space: pre; overflow-wrap: normal; }
.vmb-prose .wp-block-code { padding-top: 50px; background: #08090a; border-color: rgba(193, 237, 0, .12); }
/* Browser-chrome dots (Portfolio / Case Study frame). */
.vmb-prose .wp-block-code::before { content: ''; position: absolute; left: 18px; top: 19px; width: 9px; height: 9px; border-radius: 50%; background: #33363b; box-shadow: 16px 0 0 #33363b, 32px 0 0 #33363b; }
.vmb-code { position: relative; }
.vmb-code > pre { margin: 0; }
.vmb-prose > pre.alignfull, .vmb-prose > .vmb-code.alignfull > pre { border-radius: 0; border-left: 0; border-right: 0; padding-left: var(--vmb-gut); padding-right: var(--vmb-gut); }
.vmb-prose > pre.wp-block-code.alignfull::before, .vmb-prose > .vmb-code.alignfull > pre.wp-block-code::before { left: var(--vmb-gut); }
.vmb-prose > .vmb-code.alignfull > .vmb-copy { right: var(--vmb-gut); }
.vmb-copy { position: absolute; top: 10px; right: 10px; padding: 8px 12px; border-radius: 99px; border: 1px solid rgba(255, 255, 255, .14); background: #16171a; color: #a3a7ad; font: 600 10.5px/1 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: border-color .3s, color .3s, background .3s; }
.vmb-copy:hover { border-color: #edf0ea; color: #edf0ea; }
.vmb-copy.is-done { background: #c1ed00; border-color: #c1ed00; color: #0e0f11; }
.vmb-prose .wp-block-preformatted { white-space: pre-wrap; }
.vmb-prose .wp-block-verse { padding: 0; border: 0; background: none; font: italic 400 21px/1.7 'Instrument Sans', sans-serif; color: #edf0ea; white-space: pre-wrap; overflow: visible; }

/* Table. */
.vmb-prose .wp-block-table, .vmb-prose > table { overflow-x: auto; }
.vmb-prose table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.45; }
.vmb-prose .wp-block-table table { border: 0; }
.vmb-prose th, .vmb-prose td { padding: 16px 14px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.vmb-prose thead th, .vmb-prose thead td { font: 500 11px/1.3 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #6f7378; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.vmb-prose tbody th { color: #edf0ea; font-weight: 600; }
.vmb-prose tfoot td, .vmb-prose tfoot th { font: 700 16px/1.3 'Archivo', sans-serif; color: #edf0ea; border-bottom: 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.vmb-prose .wp-block-table thead, .vmb-prose .wp-block-table tfoot { border: 0; }
.vmb-prose .wp-block-table.is-style-stripes { border-bottom: 0; }
.vmb-prose .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: rgba(255, 255, 255, .03); }
.vmb-prose .wp-block-table.is-style-stripes td, .vmb-prose .wp-block-table.is-style-stripes th { border-color: rgba(255, 255, 255, .06); }

/* Captions. */
.vmb-prose figcaption, .vmb-prose .wp-element-caption, .vmb-prose .wp-caption-text, .vmb-prose .gallery-caption { margin-top: 14px; font: 500 12px/1.5 'Geist Mono', monospace; letter-spacing: .06em; color: #8e9399; text-align: left; }

/* Images, galleries, media & text. */
.vmb-prose figure { margin-left: auto; margin-right: auto; }
.vmb-prose .wp-block-image { margin-top: 2em; }
.vmb-prose .wp-block-image + * { margin-top: 2em; }
.vmb-prose .wp-block-image img, .vmb-prose > p img, .vmb-prose .wp-caption img { border-radius: 24px; display: block; height: auto; }
.vmb-prose .wp-block-image.alignwide img { border-radius: 28px; }
.vmb-prose .wp-block-image.alignfull img { border-radius: 0; width: 100%; }
.vmb-prose .wp-block-image.alignfull figcaption { padding: 0 var(--vmb-gut); }
.vmb-prose .wp-block-image.is-style-rounded img { border-radius: 999px; }
.vmb-prose .wp-block-image :where(a) { display: block; overflow: hidden; border-radius: 24px; }
.vmb-prose .wp-block-image a img { transition: scale 1.2s cubic-bezier(.16, 1, .3, 1); }
.vmb-prose .wp-block-image a:hover img { scale: 1.04; }
.vmb-prose .alignleft { float: left; margin: .3em 1.6em 1em 0; max-width: 50%; }
.vmb-prose .alignright { float: right; margin: .3em 0 1em 1.6em; max-width: 50%; }
.vmb-prose > .alignleft { margin-left: max(0px, calc((100% - var(--vmb-col)) / 2)); }
.vmb-prose > .alignright { margin-right: max(0px, calc((100% - var(--vmb-col)) / 2)); }
.vmb-prose .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.vmb-prose .aligncenter img { margin-left: auto; margin-right: auto; }
.vmb-prose .wp-caption { max-width: 100%; }
.vmb-prose .wp-block-gallery.has-nested-images { --wp--style--unstable-gallery-gap: 12px; gap: 12px; }
.vmb-prose .wp-block-gallery.has-nested-images figure.wp-block-image { overflow: hidden; border-radius: 20px; margin: 0; }
.vmb-prose .wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 20px; transition: scale 1.2s cubic-bezier(.16, 1, .3, 1); }
.vmb-prose .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { scale: 1.05; }
.vmb-prose .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { border-radius: 0 0 20px 20px; font: 500 11px/1.4 'Geist Mono', monospace; color: #edf0ea; }
.vmb-prose .wp-block-gallery > .blocks-gallery-caption { flex-basis: 100%; }
.vmb-prose .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.vmb-prose .gallery-item { margin: 0; }
.vmb-prose .gallery-item img { border-radius: 18px; }
.vmb-prose .wp-block-media-text { gap: 0; }
.vmb-prose .wp-block-media-text__media img, .vmb-prose .wp-block-media-text__media video { border-radius: 24px; }
.vmb-prose .wp-block-media-text .wp-block-media-text__content { padding: 0 clamp(20px, 4%, 48px); }
.vmb-prose .wp-block-media-text.has-background { border-radius: 26px; overflow: hidden; }

/* Cover. */
.vmb-prose .wp-block-cover, .vmb-prose .wp-block-cover-image { margin-top: 2.2em; border-radius: 30px; overflow: hidden; min-height: 440px; padding: clamp(28px, 4vw, 60px); }
.vmb-prose .wp-block-cover + *, .vmb-prose .wp-block-cover-image + * { margin-top: 2.2em; }
.vmb-prose .wp-block-cover.alignfull { border-radius: 0; min-height: 70vh; }
.vmb-prose .wp-block-cover__inner-container { color: #edf0ea; }
.vmb-prose .wp-block-cover h1, .vmb-prose .wp-block-cover h2 { font: 900 clamp(52px, 8vw, 140px)/.82 'Archivo', sans-serif; font-stretch: 68%; letter-spacing: -.045em; text-transform: uppercase; color: #edf0ea; margin: 0; }
.vmb-prose .wp-block-cover p { font-size: clamp(17px, 1.35vw, 20px); color: #c9ccd0; }
.vmb-prose .wp-block-cover .wp-block-cover__inner-container > * + * { margin-top: 18px; }

/* Buttons (lime pill + arrow circle, ghost outline). */
.vmb-prose .wp-block-buttons { gap: 12px; }
.vmb-prose .wp-block-button { margin: 0; }
.vmb-prose .wp-block-button__link { text-decoration: none; padding: 8px 8px 8px 26px; }
.vmb-prose .wp-block-button__link::after { content: ''; width: 44px; height: 44px; flex: none; border-radius: 50%; background: #0e0f11 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23c1ed00' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") 50% 50% no-repeat; }
.vmb-prose .wp-block-button__link:hover { color: #0e0f11; }
.vmb-prose .wp-block-button.is-style-outline > .wp-block-button__link,
.vmb-prose .wp-block-button__link.is-style-outline { height: 60px; padding: 0 26px; background: transparent; border: 1px solid rgba(237, 240, 234, .25); color: #edf0ea; font: 600 16px/1 'Instrument Sans', sans-serif; }
.vmb-prose .wp-block-button.is-style-outline > .wp-block-button__link::after { content: none; }
.vmb-prose .wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: #edf0ea; color: #edf0ea; box-shadow: none; }
.vmb-prose .wp-block-button__link.has-background:not(.has-lime-background-color) { box-shadow: none; }

/* Separator. */
.vmb-prose hr, .vmb-prose .wp-block-separator { margin-top: 2.6em; margin-bottom: 0; border: 0; border-top: 1px solid rgba(255, 255, 255, .12); height: 0; opacity: 1; background: none; }
.vmb-prose hr + *, .vmb-prose .wp-block-separator + * { margin-top: 2.6em; }
.vmb-prose .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { max-width: 120px; margin-left: auto; margin-right: auto; border-top: 2px solid #c1ed00; }
.vmb-prose .wp-block-separator.is-style-wide { max-width: var(--vmb-col); }
.vmb-prose .wp-block-separator.is-style-dots { border: 0; text-align: center; line-height: 1; height: auto; }
.vmb-prose .wp-block-separator.is-style-dots::before { content: '···'; color: #c1ed00; font: 900 30px/1 'Archivo', sans-serif; letter-spacing: 1em; padding-left: 1em; }

/* Embeds & video. */
.vmb-prose .wp-block-embed { margin-top: 2em; }
.vmb-prose .wp-block-embed + * { margin-top: 2em; }
.vmb-prose .wp-block-embed__wrapper { border-radius: 24px; overflow: hidden; background: #16171a; }
.vmb-prose .wp-block-embed.is-type-rich .wp-block-embed__wrapper { background: none; border-radius: 0; overflow: visible; }
.vmb-prose iframe, .vmb-prose video, .vmb-prose embed, .vmb-prose object { max-width: 100%; border: 0; }
.vmb-prose .wp-block-video video { border-radius: 24px; width: 100%; }
.vmb-prose .wp-block-audio audio { width: 100%; }

/* Details, columns, group, file, footnotes, latest posts, search … */
.vmb-prose .wp-block-details { padding: 0; border-radius: 22px; background: #16171a; border: 1px solid rgba(255, 255, 255, .06); overflow: hidden; }
.vmb-prose .wp-block-details summary { position: relative; padding: 22px 64px 22px 24px; cursor: pointer; list-style: none; font: 700 19px/1.3 'Archivo', sans-serif; color: #edf0ea; }
.vmb-prose .wp-block-details summary::-webkit-details-marker { display: none; }
.vmb-prose .wp-block-details summary::after { content: '+'; position: absolute; right: 18px; top: 50%; width: 32px; height: 32px; margin-top: -16px; border-radius: 50%; border: 1px solid rgba(193, 237, 0, .5); color: #c1ed00; font: 500 20px/30px 'Geist Mono', monospace; text-align: center; transition: rotate .5s cubic-bezier(.16, 1, .3, 1), background .3s, color .3s; }
.vmb-prose .wp-block-details[open] summary::after { rotate: 45deg; background: #c1ed00; color: #0e0f11; }
.vmb-prose .wp-block-details > :not(summary) { margin: 0 24px 22px; color: #a3a7ad; font-size: 17px; }
.vmb-prose .wp-block-columns { gap: clamp(20px, 3vw, 40px); margin-bottom: 0; }
.vmb-prose .wp-block-column > * + * { margin-top: 1em; }
.vmb-prose .wp-block-column > :first-child { margin-top: 0; }
.vmb-prose .wp-block-group.has-background { padding: clamp(24px, 3vw, 40px); border-radius: 26px; }
.vmb-prose .wp-block-group > * + * { margin-top: 1.2em; }
.vmb-prose .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 16px 16px 24px; border-radius: 22px; background: #16171a; border: 1px solid rgba(255, 255, 255, .06); }
.vmb-prose .wp-block-file a:not(.wp-block-file__button) { font: 700 17px/1.3 'Archivo', sans-serif; text-decoration: none; }
.vmb-prose .wp-block-file__button { padding: 14px 20px; border-radius: 999px; background: #c1ed00; color: #0e0f11 !important; text-decoration: none !important; font: 700 14px/1 'Archivo', sans-serif; margin-left: 0 !important; }
.vmb-prose .wp-block-footnotes { font-size: 15px; color: #a3a7ad; border-top: 1px solid rgba(255, 255, 255, .1); padding-top: 24px; }
.vmb-prose .fn, .vmb-prose sup.fn a { font-family: 'Geist Mono', monospace; text-decoration: none; color: #c1ed00; }
.vmb-prose .has-drop-cap:not(:focus)::first-letter { float: left; margin: .06em .12em 0 0; font: 900 5.2em/.72 'Archivo', sans-serif; font-stretch: 66%; text-transform: uppercase; color: #c1ed00; }
.vmb-prose .wp-block-latest-posts, .vmb-prose .wp-block-categories, .vmb-prose .wp-block-archives, .vmb-prose .wp-block-page-list { padding-left: 0; list-style: none; }
.vmb-prose .wp-block-latest-posts li::marker, .vmb-prose .wp-block-categories li::marker, .vmb-prose .wp-block-archives li::marker { content: none; }
.vmb-prose .wp-block-social-links { padding-left: 0; gap: 10px; }
.vmb-prose .wp-block-social-links li::marker { content: none; }
.vmb-prose .wp-block-social-links li + li { margin-top: 0; }

/* Palette helpers (editor colours from inc/setup.php). */
.vmb .has-lime-color { color: #c1ed00 !important; }
.vmb .has-ink-color { color: #0e0f11 !important; }
.vmb .has-paper-color { color: #edf0ea !important; }
.vmb .has-mist-color { color: #a3a7ad !important; }
.vmb .has-lime-background-color { background-color: #c1ed00 !important; color: #0e0f11; }
.vmb .has-ink-background-color { background-color: #0e0f11 !important; }
.vmb .has-void-background-color { background-color: #000 !important; }
.vmb .has-paper-background-color { background-color: #edf0ea !important; color: #0e0f11; }
.vmb p.has-background { padding: 1.2em 1.4em; border-radius: 22px; }

/* ---------------------------------------------------------------------------
 * Password form.
 * ------------------------------------------------------------------------- */
.vmb-lock { max-width: var(--vmb-col); margin: 0 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: clamp(26px, 3vw, 40px); border-radius: 30px; background: #16171a; border: 1px solid rgba(193, 237, 0, .25); }
.vmb-lock > p { margin: 0 !important; }
.vmb-lock__head { display: flex; align-items: center; gap: 22px; margin-bottom: 8px !important; }
.vmb-lock__icon { width: 56px; height: 56px; flex: none; border-radius: 50%; background: #c1ed00; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 10px rgba(193, 237, 0, .14); }
.vmb-lock__title { margin: 0 !important; font: 800 clamp(30px, 3vw, 44px)/.95 'Archivo', sans-serif; font-stretch: 84%; letter-spacing: -.03em; text-transform: uppercase; color: #edf0ea; }
.vmb-lock__text { margin: 0 !important; font-size: 17px; line-height: 1.55; color: #a3a7ad; }
/* Design error text (SiteFooter / QuoteBlueprint): 13px, oklch(0.75 0.15 30). */
.vmb-lock__error { margin: 0 !important; font-size: 13px; line-height: 1.4; color: oklch(0.75 0.15 30); }
.vmb-lock.password-form-error .vmb-input { border-color: oklch(0.75 0.15 30); }
.vmb-lock__row { width: 100%; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px !important; }
.vmb-lock__row .vmb-input { flex: 1 1 240px; }

/* ---------------------------------------------------------------------------
 * Inputs (footer contact card).
 * ------------------------------------------------------------------------- */
.vmb-input,
.vmb-comments input[type="text"], .vmb-comments input[type="email"], .vmb-comments input[type="url"], .vmb-comments textarea {
	width: 100%; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); border-radius: 14px; padding: 16px;
	font: 500 16px/1.2 'Instrument Sans', sans-serif; color: #edf0ea; outline: none; caret-color: #c1ed00; transition: border-color .3s;
	-webkit-appearance: none; appearance: none;
}
.vmb-input::placeholder, .vmb-comments textarea::placeholder { color: #6f7378; }
/* style-focus="border-color:#c1ed00" */
.vmb-input:focus, .vmb-comments input:focus, .vmb-comments textarea:focus { border-color: #c1ed00 !important; }
.vmb-comments textarea { resize: vertical; min-height: 140px; line-height: 1.5; }

/* ---------------------------------------------------------------------------
 * Comments.
 * ------------------------------------------------------------------------- */
.vmb-comments { position: relative; padding: clamp(80px, 9vw, 140px) var(--vmb-gut) clamp(40px, 5vw, 80px); background: #0e0f11; }
.vmb-comments__inner { max-width: var(--vmb-col); margin: 0 auto; display: flex; flex-direction: column; gap: clamp(28px, 3vw, 40px); }
.vmb-comments__head { display: flex; flex-direction: column; gap: 18px; }
.vmb-comments .vmb-h2 { font-size: clamp(40px, 4.6vw, 72px); }
.vmb-comment-list, .vmb-comment-list .children { list-style: none; margin: 0; padding: 0; }
.vmb-comment-list { display: flex; flex-direction: column; gap: 14px; }
.vmb-comment-list .children { margin-top: 14px; padding-left: clamp(16px, 3vw, 40px); border-left: 1px solid rgba(255, 255, 255, .1); display: flex; flex-direction: column; gap: 14px; }
.vmb-comment__card { padding: clamp(20px, 2.4vw, 28px); border-radius: 24px; background: #16171a; border: 1px solid rgba(255, 255, 255, .05); transition: border-color .4s; }
.vmb-comment__card:target, .vmb-comment:target > .vmb-comment__card { border-color: rgba(193, 237, 0, .5); }
.bypostauthor > .vmb-comment__card { border-color: rgba(193, 237, 0, .25); }
.vmb-comment__head { display: flex; align-items: center; gap: 14px; }
.vmb-comment__avatar { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex: none; background: radial-gradient(circle at 30% 25%, #2f3237, #16171a 70%); }
.vmb-comment__img { width: 100% !important; height: 100% !important; display: block; object-fit: cover; filter: grayscale(1); }
.vmb-comment__who { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.vmb-comment__name { font: 700 18px/1.2 'Archivo', sans-serif; color: #edf0ea; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.vmb-comment__name a { color: #edf0ea; text-decoration: none; }
.vmb-comment__name a:hover { color: #c1ed00; }
.vmb-comment__date { font: 500 11px/1.2 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #6f7378; text-decoration: none; }
.vmb-comment__date:hover { color: #c1ed00; }
.vmb-comment__pending { margin: 14px 0 0; font: 600 11px/1.3 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #c1ed00; }
.vmb-comment__text { margin-top: 14px; font-size: 17px; line-height: 1.65; color: #c9ccd0; overflow-wrap: break-word; }
.vmb-comment__text p { margin: 0; }
.vmb-comment__text p + p { margin-top: .8em; }
.vmb-comment__text a { color: #edf0ea; text-decoration-color: #c1ed00; text-underline-offset: .2em; }
.vmb-comment__foot { display: flex; align-items: center; gap: 16px; margin-top: 16px; }
.vmb-comment__foot:empty { display: none; }
.vmb-comment__reply a, .comment-reply-login { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 999px; border: 1px solid rgba(237, 240, 234, .2); color: #edf0ea; text-decoration: none; font: 600 13px/1 'Instrument Sans', sans-serif; transition: border-color .3s, color .3s; }
.vmb-comment__reply a:hover, .comment-reply-login:hover { border-color: #c1ed00; color: #c1ed00; }
.vmb-comment__edit a { font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #6f7378; text-decoration: none; }
.vmb-comment__edit a:hover { color: #c1ed00; }
.vmb-ping { padding: 16px 20px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, .08); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 15px; }
.vmb-ping__link a { color: #edf0ea; text-decoration-color: #c1ed00; text-underline-offset: .2em; }
.vmb-note { margin: 0; padding: 16px 20px; border-radius: 18px; border: 1px dashed rgba(255, 255, 255, .14); font: 500 12px/1.4 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #8e9399; }

/* Comment form (SiteFooter "We are listening." card). */
.vmb-respond { position: relative; border-radius: 32px; background: #0e0f11; border: 1px solid rgba(255, 255, 255, .08); padding: clamp(22px, 3vw, 40px); box-shadow: 0 40px 120px rgba(0, 0, 0, .5); }
.vmb-comment-list .vmb-respond { margin-top: 14px; }
.vmb-respond__title { margin: 0 0 18px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 14px; font: 700 28px/1 'Archivo', sans-serif; letter-spacing: -.02em; color: #edf0ea; }
.vmb-respond__title a { color: #c1ed00; text-decoration: none; }
.vmb-respond .must-log-in { margin: 0; font-size: 16px; line-height: 1.55; color: #a3a7ad; }
.vmb-respond .must-log-in a { color: #edf0ea; text-decoration-color: #c1ed00; text-underline-offset: .2em; }
.vmb-respond .must-log-in a:hover { color: #c1ed00; }
.vmb-respond__cancel a { font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #a3a7ad; text-decoration: none; }
.vmb-respond__cancel a:hover { color: #c1ed00; }
.vmb-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 560px) { .vmb-form { grid-template-columns: minmax(0, 1fr); } }
.vmb-form > * { margin: 0; }
.vmb-form .vmb-field--full, .vmb-form .comment-notes, .vmb-form .logged-in-as, .vmb-form > p:not(.vmb-field) { grid-column: 1 / -1; }
.vmb-field { display: flex; flex-direction: column; gap: 8px; }
.vmb-field label { font: 500 11px/1 'Geist Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: #6f7378; }
.vmb-field .required, .vmb-form__note .required { color: #c1ed00; }
.vmb-form__note, .vmb-form .logged-in-as { font-size: 14px; line-height: 1.5; color: #8e9399; }
.vmb-form .logged-in-as a { color: #c9ccd0; text-decoration-color: #c1ed00; text-underline-offset: .2em; }
.vmb-form .logged-in-as a:hover { color: #c1ed00; }
.vmb-check { flex-direction: row; align-items: flex-start; gap: 12px; }
.vmb-check input { width: 18px; height: 18px; margin: 1px 0 0; flex: none; -webkit-appearance: none; appearance: none; border-radius: 5px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .04) 50% 50%/12px no-repeat; cursor: pointer; transition: background-color .3s, border-color .3s; }
.vmb-check input:hover { border-color: #edf0ea; }
.vmb-check input:checked { background-color: #c1ed00; border-color: #c1ed00; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e0f11' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.vmb-check label { font: 400 14px/1.45 'Instrument Sans', sans-serif; letter-spacing: 0; text-transform: none; color: #a3a7ad; }
.vmb-form__submit { display: flex; flex-direction: row; justify-content: flex-end; margin-top: 4px; }
.vmb-form__submit .vmb-btn { height: 56px; padding: 8px 8px 8px 26px; font-size: 15px; box-shadow: 0 10px 40px rgba(193, 237, 0, .22); }
.vmb-form__submit .vmb-btn__circle { width: 40px; height: 40px; }

/* ---------------------------------------------------------------------------
 * Widget band (sidebar.php) — widgets as cards.
 * ------------------------------------------------------------------------- */
.vmb-aside { position: relative; padding: clamp(80px, 10vw, 150px) var(--vmb-gut); background: #000; }
.vmb-aside__head { display: flex; flex-direction: column; gap: 18px; margin-bottom: clamp(36px, 4vw, 60px); }
.vmb-widgets { columns: 4 300px; column-gap: 16px; }
.vm-widget { break-inside: avoid; display: block; width: 100%; margin: 0 0 16px; min-width: 0; padding: clamp(24px, 2.6vw, 34px); border-radius: 26px; background: #16171a; border: 1px solid rgba(255, 255, 255, .05); color: #c9ccd0; font-size: 16px; line-height: 1.55; }
.vm-widget > *:first-child { margin-top: 0; }
.vm-widget > *:last-child { margin-bottom: 0; }
.vm-widget__title, .vm-widget .wp-block-group > h2:first-child, .vm-widget .wp-block-heading:first-child, .vm-widget h2.widgettitle, .vm-widget .wp-block-search__label {
	display: block; margin: 0 0 18px; font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: #c1ed00;
}
.vm-widget .wp-block-group > * + * { margin-top: 0; }
.vm-widget ul, .vm-widget ol { list-style: none; margin: 0; padding: 0; }
.vm-widget li { padding: 13px 0; border-top: 1px solid rgba(255, 255, 255, .08); }
.vm-widget li:first-child { border-top: 0; padding-top: 0; }
.vm-widget li:last-child { padding-bottom: 0; }
.vm-widget li ul { margin-top: 10px; padding-left: 14px; }
.vm-widget li li { border-top: 0; padding: 6px 0; }
.vm-widget a { color: #edf0ea; text-decoration: none; font: 600 16px/1.35 'Archivo', sans-serif; transition: color .3s; }
.vm-widget a:hover { color: #c1ed00; }
.vm-widget li .post-date, .vm-widget .wp-block-latest-posts__post-date, .vm-widget .wp-block-latest-comments__comment-date { display: block; margin-top: 6px; font: 500 11px/1.3 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #6f7378; }
.vm-widget .cat-item, .vm-widget .wp-block-categories li, .vm-widget .wp-block-archives li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; color: #6f7378; font: 500 12px/1 'Geist Mono', monospace; flex-wrap: wrap; }
.vm-widget .cat-item > ul { flex-basis: 100%; }
.vm-widget p { margin: 0 0 1em; }
.vm-widget select { width: 100%; padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); color: #edf0ea; font: 500 15px/1.2 'Instrument Sans', sans-serif; }
.vm-widget select option { background: #16171a; }
/* Latest comments. */
.vm-widget .wp-block-latest-comments { padding: 0; margin: 0; }
.vm-widget .wp-block-latest-comments__comment { margin: 0; line-height: 1.45; font-size: 15px; color: #a3a7ad; }
.vm-widget .wp-block-latest-comments__comment-meta { font-size: 15px; color: #a3a7ad; }
.vm-widget .wp-block-latest-comments__comment-author { font: 700 15px/1.35 'Archivo', sans-serif; color: #edf0ea; }
.vm-widget .wp-block-latest-comments__comment-link { font-size: 15px; }
.vm-widget .recentcomments { font-size: 15px; color: #a3a7ad; }
/* Tag cloud. */
.vm-widget .tagcloud, .vm-widget .wp-block-tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.vm-widget .tag-cloud-link { padding: 10px 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .14); font: 600 12px/1 'Instrument Sans', sans-serif !important; letter-spacing: .04em; text-transform: uppercase; color: #d5d8dc; transition: border-color .3s, color .3s; }
.vm-widget .tag-cloud-link:hover { border-color: #c1ed00; color: #c1ed00; }
.vm-widget .tag-link-count { color: #6f7378; }
/* Calendar. */
.vm-widget .wp-calendar-table, .vm-widget #wp-calendar { width: 100%; border-collapse: collapse; text-align: center; font: 500 13px/1 'Geist Mono', monospace; color: #a3a7ad; }
.vm-widget .wp-calendar-table caption, .vm-widget #wp-calendar caption { caption-side: top; padding-bottom: 14px; text-align: left; font: 700 18px/1 'Archivo', sans-serif; color: #edf0ea; }
.vm-widget .wp-calendar-table th { padding: 8px 0; color: #6f7378; font-size: 11px; letter-spacing: .1em; }
.vm-widget .wp-calendar-table td { padding: 4px 0; height: 36px; }
.vm-widget .wp-calendar-table td a { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: #c1ed00; color: #0e0f11; font: 600 13px/1 'Geist Mono', monospace; }
.vm-widget .wp-calendar-table td a:hover { color: #0e0f11; box-shadow: 0 0 0 4px rgba(193, 237, 0, .2); }
.vm-widget .wp-calendar-table #today { color: #c1ed00; }
.vm-widget .wp-calendar-nav { display: flex; justify-content: space-between; margin-top: 14px; font: 500 12px/1 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; }
.vm-widget .wp-calendar-nav a { font: inherit; color: #a3a7ad; }
/* Search widget (block + classic). */
.vm-widget .wp-block-search__inside-wrapper { display: flex; gap: 8px; padding: 5px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); transition: border-color .3s; }
.vm-widget .wp-block-search__inside-wrapper:focus-within { border-color: #c1ed00; }
.vm-widget .wp-block-search__input { flex: 1; min-width: 0; height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: #edf0ea; caret-color: #c1ed00; font: 500 16px/1 'Instrument Sans', sans-serif; outline: none; }
.vm-widget .wp-block-search__input::placeholder { color: #6f7378; }
.vm-widget .wp-block-search__button { margin: 0; padding: 0 18px; height: 44px; border: 0; border-radius: 999px; background: #c1ed00; color: #0e0f11; font: 700 14px/1 'Archivo', sans-serif; cursor: pointer; }
.vm-widget .vmb-search { padding-left: 16px; }
.vm-widget .vmb-search__txt { display: none; }
.vm-widget .vmb-search__btn { padding: 4px; }
/* Text / custom HTML / RSS / nav menu. */
.vm-widget .textwidget a, .vm-widget .wp-block-paragraph a, .vm-widget p a { font: inherit; text-decoration: underline; text-decoration-color: #c1ed00; text-underline-offset: .2em; }
.vm-widget .rss-date, .vm-widget cite { display: block; font: 500 11px/1.3 'Geist Mono', monospace; letter-spacing: .1em; text-transform: uppercase; color: #6f7378; font-style: normal; margin-top: 6px; }
.vm-widget .rssSummary { font-size: 14px; color: #a3a7ad; margin-top: 6px; }
.vm-widget img { border-radius: 16px; }

/* ---------------------------------------------------------------------------
 * Empty state + route rows (404).
 * ------------------------------------------------------------------------- */
.vmb-empty { display: flex; flex-direction: column; gap: clamp(36px, 4vw, 60px); }
.vmb-empty__head { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; max-width: 900px; }
.vmb-empty__icon { width: 72px; height: 72px; border-radius: 50%; background: #c1ed00; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 14px rgba(193, 237, 0, .14); margin-bottom: 8px; }
.vmb-empty__text { margin: 0; max-width: 620px; font-size: 18px; line-height: 1.6; color: #a3a7ad; }
.vmb-empty__recent { display: flex; flex-direction: column; gap: 24px; padding-top: clamp(20px, 3vw, 40px); }

.vmb-routes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.vmb-route {
	position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) auto 64px; align-items: center; gap: 20px;
	padding: clamp(18px, 2vw, 26px) clamp(14px, 1.6vw, 24px); border-top: 1px solid rgba(255, 255, 255, .1);
	color: #edf0ea; text-decoration: none;
	background: linear-gradient(#c1ed00, #c1ed00) 50% 100%/100% 0% no-repeat;
	transition: background-size .7s cubic-bezier(.16, 1, .3, 1), color .4s, border-radius .5s, border-color .4s;
}
.vmb-routes li:last-child .vmb-route { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.vmb-route__n { font: 600 13px/1 'Geist Mono', monospace; letter-spacing: .1em; color: #c1ed00; transition: color .4s; }
.vmb-route__label { min-width: 0; overflow-wrap: anywhere; font: 800 clamp(36px, 5vw, 84px)/.9 'Archivo', sans-serif; font-stretch: 78%; letter-spacing: -.035em; text-transform: uppercase; }
.vmb-route__hint { font: 500 12px/1.3 'Geist Mono', monospace; letter-spacing: .12em; text-transform: uppercase; color: #6f7378; transition: color .4s; text-align: right; }
.vmb-route__go { width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(237, 240, 234, .25); display: flex; align-items: center; justify-content: center; justify-self: end; transition: background .4s, border-color .4s, color .4s, rotate .6s cubic-bezier(.16, 1, .3, 1); }
/* Hover: the principle cards' lime fill + ink text. */
.vmb-route:hover, .vmb-route:focus-visible { background-size: 100% 100%; color: #0e0f11; border-radius: 24px; border-color: transparent; }
.vmb-route:hover .vmb-route__n, .vmb-route:hover .vmb-route__hint { color: #0e0f11; }
.vmb-route:hover .vmb-route__go { background: #0e0f11; border-color: #0e0f11; color: #c1ed00; rotate: -45deg; }
.vmb-routes li:has(.vmb-route:hover) + li .vmb-route { border-top-color: transparent; }
@media (max-width: 700px) {
	.vmb-route { grid-template-columns: 34px minmax(0, 1fr) 48px; gap: 12px; }
	.vmb-route__hint { display: none; }
	.vmb-route__go { width: 48px; height: 48px; }
}

/* 404: "4 ◯ 4" with the Services hero moon + the About orbit ring. */
.vmb-404 { position: relative; min-height: 100vh; padding: clamp(130px, 15vh, 180px) var(--vmb-gut) clamp(60px, 8vw, 110px); background: #000; overflow: hidden; display: flex; align-items: center; }
.vmb-404__inner { position: relative; max-width: 1480px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: clamp(26px, 3vw, 40px); }
/* "4◯4" is ~2.05em wide once vmStretch ends (font-stretch 100%): under ~390px the 170px floor follows the content width so the second 4 is never clipped. */
.vmb-404__digits { display: flex; align-items: center; gap: .02em; font: 900 clamp(min(170px, (100vw - 2 * var(--vmb-gut)) / 2.06), 34vw, 560px)/.78 'Archivo', sans-serif; font-stretch: 66%; letter-spacing: -.06em; color: #edf0ea; user-select: none; margin: 0 0 -.02em -.03em; }
.vmb-404__d { display: block; animation: vmStretch 1.6s .35s cubic-bezier(.16, 1, .3, 1) both; }
.vmb-404__d--2 { animation-delay: .55s; }
.vmb-404__moon { position: relative; display: block; flex: none; width: .66em; height: .66em; margin: 0 .07em; }
.vmb-404__disc { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 35% 30%, #2f3237, #121316 70%); animation: vmIris 1.6s .5s cubic-bezier(.76, 0, .24, 1) both, vmGlow 6s 2s ease-in-out infinite; box-shadow: 0 0 90px 20px rgba(225, 232, 255, .08); }
.vmb-404__img { position: absolute; width: 134% !important; height: 134% !important; max-width: none !important; left: -14%; top: -14.6%; animation: vmOrbit 120s linear infinite; }
.vmb-404__orbit { position: absolute; inset: -12%; border-radius: 50%; border: 1px dashed rgba(193, 237, 0, .3); animation: vmOrbit 36s linear infinite; }
.vmb-404__sat { position: absolute; left: 50%; top: -6px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: #c1ed00; box-shadow: 0 0 24px 6px rgba(193, 237, 0, .5); }
.vmb-404__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(28px, 4vw, 80px); align-items: end; }
.vmb-404__title { margin: 0; font: 800 clamp(40px, 5vw, 84px)/.9 'Archivo', sans-serif; font-stretch: 78%; letter-spacing: -.035em; text-transform: uppercase; color: #edf0ea; text-wrap: balance; }
.vmb-404__side { display: flex; flex-direction: column; gap: 22px; }
.vmb-list--routes { padding-top: clamp(80px, 10vw, 150px); }
@media (max-width: 600px) {
	.vmb-404 { min-height: 0; }
	.vmb-404__orbit { inset: -9%; }
}

/* ---------------------------------------------------------------------------
 * Small screens.
 * ------------------------------------------------------------------------- */
@media (max-width: 700px) {
	.vmb-prose { font-size: 18px; }
	/* Own line; min-width: 0 so the pill (input + button) shrinks to the gutter instead of overflowing on narrow phones. */
	.vmb-hero__search { flex-basis: 100%; max-width: none; min-width: 0; }
	.vmb-author { flex-direction: column; }
	.vmb-prose .alignleft, .vmb-prose .alignright { float: none; max-width: 100%; margin: 1.4em 0 0; }
	.vmb-form__submit { justify-content: stretch; }
	.vmb-form__submit .vmb-btn { width: 100%; justify-content: space-between; }
	.vmb-pagination .page-numbers:not(.prev):not(.next):not(.current) { display: none; }
}

/* Reduced motion: no zooms. */
@media (prefers-reduced-motion: reduce) {
	.vmb-card:hover .vmb-card__img, .vmb-feature:hover .vmb-feature__img, .vmb-next:hover .vmb-next__img { scale: 1; }
}
