/* =========================================================================
   VERIFIED VISIBILITY

   Taken from the deck and the logo, not invented:
   Aubergine #260429 and cream #FFF8E7 are the deck's two surfaces.
   Lilac #BBB9FB is the logo's eye. It means one thing on this site:
   verified. Nothing is lilac for decoration.

   One typeface, Schibsted Grotesk, the face of the wordmark. Headlines are
   set heavy and tight like the logo; reading text is set at 400.

   Structure borrows the deck's framed panels: 1px aubergine rules, a quiet
   right-hand statement column, numbered squares only where there is a real
   sequence. Cards keep the ATN anatomy so both networks feel related.
   ========================================================================= */

@font-face {
	font-family: "Schibsted Grotesk";
	src: url("../fonts/SchibstedGrotesk.woff2") format("woff2");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}

:root {
	--plum: #260429;
	--plum-2: #3B1741;
	--plum-3: #52305A;
	--cream: #FFF8E7;
	--cream-2: #F8EDD3;
	--surface: #FFFDF7;
	--lilac: #BBB9FB;
	--lilac-2: #D9D8FD;
	--lilac-t: #EEEDFE;
	--violet: #5446E0;

	--ink: var(--plum);
	--ink-72: rgba(38, 4, 41, .72);
	--ink-55: rgba(38, 4, 41, .55);
	--ink-40: rgba(38, 4, 41, .40);
	--line: rgba(38, 4, 41, .16);
	--line-soft: rgba(38, 4, 41, .08);
	--on-plum: #FFF8E7;
	--on-plum-70: rgba(255, 248, 231, .72);
	--on-plum-line: rgba(255, 248, 231, .16);

	--ok: #1F7A4A;
	--warn: #9A4A12;
	--err: #B42336;

	--font: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;

	--r-box: 10px;
	--r-card: 18px;
	--r-pill: 999px;
	--wrap: 1320px;
	--gutter: clamp(1.25rem, 4vw, 3rem);
	--header-h: 4.5rem;
	--ease: cubic-bezier(.2, .7, .2, 1);
	--ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* Category washes. Soft enough that a mixed grid reads as coded, not loud. */
[data-tint="lilac"]   { --tint: #ECEBFE; --tint-ink: #4337B8; --tint-deep: #D6D3FC; }
[data-tint="apricot"] { --tint: #FCE8D5; --tint-ink: #8F4410; --tint-deep: #F7D3B0; }
[data-tint="sage"]    { --tint: #E3EEDB; --tint-ink: #36652C; --tint-deep: #C9DFBC; }
[data-tint="sky"]     { --tint: #DFEBF6; --tint-ink: #22557F; --tint-deep: #C3D9EE; }

/* ------------------------------------------------------------------ base */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 1rem); }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

body.vv {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--font);
	font-size: 1.0625rem;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
/* Resets sit inside :where() so they carry zero specificity and never beat a component class. */
:where(body.vv) a { color: inherit; text-decoration: none; }
:where(body.vv) img { max-width: 100%; height: auto; display: block; }
:where(body.vv) :is(button, input, select, textarea) { font: inherit; color: inherit; }
:where(body.vv) button { cursor: pointer; }
:where(body.vv) :focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; border-radius: 4px; }
:where(body.vv) ::selection { background: var(--lilac); color: var(--plum); }
:where(body.vv) :is(h1, h2, h3, h4, p, dl, dd, figure) { margin: 0; }
:where(body.vv) :is(ul, ol) { margin: 0; padding: 0; list-style: none; }

[hidden] { display: none !important; }

.vv-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.vv-skip {
	position: absolute; left: 1rem; top: -4rem; z-index: 100;
	padding: .75rem 1.1rem; border-radius: var(--r-pill); background: var(--plum); color: var(--cream);
}
.vv-skip:focus { top: 1rem; }

.vv-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.vv-main { min-height: 60vh; }

.vv-i { width: 1.25em; height: 1.25em; flex: none; display: inline-block; vertical-align: -.28em; }
.vv-i--sm { width: 1em; height: 1em; vertical-align: -.15em; }
.vv-i--lg { width: 1.5em; height: 1.5em; }

/* ------------------------------------------------------------------ type */

.vv-d1, .vv-d2, .vv-d3, .vv-d4 { font-family: var(--font); text-wrap: balance; }
.vv-d1 { font-size: clamp(3.25rem, 8.2vw, 7.25rem); font-weight: 900; line-height: .9; letter-spacing: -.045em; }
.vv-d2 { font-size: clamp(2.25rem, 4.6vw, 3.9rem); font-weight: 850; line-height: .96; letter-spacing: -.035em; }
.vv-d3 { font-size: clamp(1.5rem, 2.3vw, 2rem); font-weight: 800; line-height: 1.06; letter-spacing: -.025em; }
.vv-d4 { font-size: 1.25rem; font-weight: 750; line-height: 1.15; letter-spacing: -.015em; }
.vv-lede { font-size: clamp(1.125rem, 1.45vw, 1.3125rem); line-height: 1.45; color: var(--ink-72); max-width: 34em; text-wrap: pretty; }
.vv-small { font-size: .875rem; color: var(--ink-55); }
.vv-num { font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------- buttons */

.vv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 3.25rem; padding: 0 1.5rem;
	border: 1.5px solid var(--plum); border-radius: var(--r-pill);
	background: transparent; color: var(--plum);
	font-weight: 650; font-size: 1rem; line-height: 1; letter-spacing: -.005em; white-space: nowrap;
	transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.vv-btn:hover { background: var(--plum); color: var(--cream); }
.vv-btn:active { transform: translateY(1px); }
.vv-btn .vv-i { transition: transform .25s var(--ease); }
.vv-btn:hover .vv-i--move { transform: translateX(3px); }
.vv-btn--ink { background: var(--plum); color: var(--cream); }
.vv-btn--ink:hover { background: #000; border-color: #000; }
.vv-btn--cream { background: var(--cream); color: var(--plum); border-color: var(--cream); }
.vv-btn--cream:hover { background: var(--lilac); border-color: var(--lilac); color: var(--plum); }
.vv-btn--ghost-light { color: var(--cream); border-color: var(--on-plum-line); }
.vv-btn--ghost-light:hover { background: var(--cream); color: var(--plum); border-color: var(--cream); }
.vv-btn--sm { min-height: 2.5rem; padding: 0 1.1rem; font-size: .9375rem; }
.vv-btn--block { width: 100%; }
.vv-btn[disabled], .vv-btn.is-busy { opacity: .6; pointer-events: none; }
.vv-btn.is-busy::after {
	content: ""; width: 1rem; height: 1rem; border-radius: 50%;
	border: 2px solid currentColor; border-right-color: transparent;
	animation: vv-spin .7s linear infinite;
}
@keyframes vv-spin { to { transform: rotate(360deg); } }

.vv-link {
	display: inline-flex; align-items: center; gap: .4rem; font-weight: 650;
	border-bottom: 1.5px solid currentColor; padding-bottom: .1rem;
}
.vv-link .vv-i { transition: transform .25s var(--ease); }
.vv-link:hover .vv-i { transform: translateX(3px); }

/* --------------------------------------------------------------- wordmark */

.vv-wordmark { display: inline-flex; align-items: flex-start; gap: .1em; color: var(--plum); line-height: .86; }
.vv-wordmark__text { font-weight: 900; letter-spacing: -.035em; font-size: 1.1875rem; }
.vv-wordmark__mark { width: 1.55em; height: 1.36em; color: var(--lilac); margin-top: .02em; margin-left: -.12em; flex: none; }
.vv-wordmark__mark { stroke: currentColor; }

/* The badge. Lilac on light surfaces, always paired with the mark. */
.vv-badge {
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .38rem .8rem .38rem .45rem;
	background: var(--lilac-t); color: var(--plum);
	border: 1px solid var(--lilac-2); border-radius: var(--r-pill);
	font-size: .875rem; font-weight: 600; line-height: 1.2;
}
.vv-badge__mark {
	width: 1.75rem; height: 1.5rem; padding: .18rem .2rem .12rem;
	background: var(--plum); color: var(--lilac); border-radius: var(--r-pill); flex: none;
}
.vv-badge--lg { font-size: .9375rem; padding: .45rem 1rem .45rem .5rem; }
.vv-badge--lg .vv-badge__mark { width: 2rem; height: 1.7rem; }

/* ----------------------------------------------------------------- header */

.vv-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255, 248, 231, .86);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .25s var(--ease);
}
.vv-header.is-scrolled { border-bottom-color: var(--line); }
.vv-header__inner { display: flex; align-items: center; gap: 2rem; min-height: var(--header-h); }
.vv-nav { display: flex; gap: .25rem; margin: 0 auto; }
.vv-nav a {
	padding: .5rem .85rem; border-radius: var(--r-pill);
	font-size: .9375rem; font-weight: 550; color: var(--ink-72);
	transition: color .2s var(--ease), background .2s var(--ease);
}
.vv-nav a:hover { color: var(--plum); background: rgba(38, 4, 41, .05); }
.vv-nav a[aria-current="page"] { color: var(--plum); background: rgba(38, 4, 41, .07); }
.vv-nav__find { display: none; }
.vv-header__actions { display: flex; align-items: center; gap: 1.1rem; margin-left: auto; }
.vv-nav + .vv-header__actions { margin-left: 0; }
.vv-header__find { font-size: .9375rem; font-weight: 600; }
.vv-header__find:hover { text-decoration: underline; text-underline-offset: .25em; }
.vv-burger { display: none; width: 2.75rem; height: 2.75rem; border: 1px solid var(--line); border-radius: 50%; background: transparent; place-items: center; }

.vv-host-chip {
	display: inline-flex; align-items: center; gap: .45rem;
	padding: .35rem .8rem .35rem .4rem; border: 1px solid var(--line); border-radius: var(--r-pill);
	font-size: .8125rem; font-weight: 600; color: var(--ink-72);
}
.vv-host-chip__mark { width: 1.6rem; height: 1.4rem; padding: .15rem; background: var(--plum); color: var(--lilac); border-radius: var(--r-pill); }

@media (max-width: 960px) {
	.vv-burger { display: inline-grid; }
	.vv-header__actions, .vv-nav + .vv-header__actions { margin-left: auto; }
	.vv-header__find { display: none; }
	.vv-nav {
		position: fixed; left: .75rem; right: .75rem; top: calc(var(--header-h) + .25rem);
		flex-direction: column; gap: 0; padding: .5rem;
		background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card);
		box-shadow: 0 30px 60px -30px rgba(38, 4, 41, .45);
		opacity: 0; visibility: hidden; transform: translateY(-6px);
		transition: opacity .2s var(--ease), transform .2s var(--ease), visibility 0s .2s;
	}
	.vv-nav.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	.vv-nav a { padding: .9rem 1rem; font-size: 1.0625rem; border-radius: 10px; }
	.vv-nav__find { display: block; }
}
@media (max-width: 520px) {
	.vv-header__actions .vv-btn { display: none; }
}

/* ---------------------------------------------------------------- sections */

.vv-section { padding: clamp(4rem, 8vw, 7.5rem) 0; }
.vv-section--tight { padding: clamp(3rem, 6vw, 5rem) 0; }
.vv-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.vv-section-head .vv-lede { margin-top: 1rem; }

/* The deck's framed panel: a ruled box with a statement column on the right. */
.vv-frame {
	display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
	border: 1px solid var(--plum); border-radius: 4px;
	background: var(--cream);
}
.vv-frame__main { padding: clamp(1.75rem, 4vw, 3.5rem); }
.vv-frame__side {
	display: flex; align-items: center;
	padding: clamp(1.75rem, 4vw, 3.5rem); border-left: 1px solid var(--plum);
}
.vv-frame__statement { font-size: clamp(1.375rem, 2.2vw, 1.875rem); font-weight: 800; line-height: 1.22; letter-spacing: -.02em; text-wrap: balance; }
@media (max-width: 900px) {
	.vv-frame { grid-template-columns: 1fr; }
	.vv-frame__side { border-left: 0; border-top: 1px solid var(--plum); }
}

/* ------------------------------------------------------------------- hero */

.vv-hero { padding: clamp(2.5rem, 6vw, 5.5rem) 0 clamp(3.5rem, 7vw, 6rem); overflow: hidden; }
.vv-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.vv-hero__host { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.vv-hero__title { margin-bottom: 1.75rem; }
.vv-hero .vv-lede { margin-bottom: 2.25rem; }

.vv-starter {
	display: flex; align-items: center; gap: .5rem;
	max-width: 36rem; padding: .45rem .45rem .45rem 1.25rem;
	background: var(--surface); border: 1.5px solid var(--plum); border-radius: var(--r-pill);
	box-shadow: 0 18px 40px -30px rgba(38, 4, 41, .55);
	transition: box-shadow .25s var(--ease);
}
.vv-starter:focus-within { box-shadow: 0 0 0 4px var(--lilac-2), 0 18px 40px -30px rgba(38, 4, 41, .55); }
.vv-starter .vv-i { color: var(--ink-55); }
.vv-starter input {
	flex: 1; min-width: 0; height: 3rem; border: 0; background: transparent; outline: none;
	font-size: 1.0625rem;
}
.vv-starter input::placeholder { color: var(--ink-40); }
.vv-starter input:focus-visible { outline: none; }
.vv-starter__note { display: flex; gap: 1.25rem; flex-wrap: wrap; margin-top: 1rem; font-size: .875rem; color: var(--ink-55); }
.vv-starter__note span { display: inline-flex; align-items: center; gap: .4rem; }
@media (max-width: 560px) {
	.vv-starter { flex-wrap: wrap; border-radius: 22px; padding: .5rem; }
	.vv-starter > .vv-i { display: none; }
	.vv-starter input { padding: 0 .75rem; }
	.vv-starter .vv-btn { width: 100%; }
}

/* The answer panel: what an AI answer looks like when the chamber vouches for you. */
.vv-answer {
	position: relative;
	background: var(--plum); color: var(--on-plum);
	border-radius: 26px; padding: clamp(1.25rem, 2.5vw, 2rem);
	box-shadow: 0 50px 90px -50px rgba(38, 4, 41, .8);
}
.vv-answer::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	background: radial-gradient(120% 60% at 100% 0%, rgba(187, 185, 251, .16), transparent 60%);
}
.vv-answer__bar { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.25rem; color: var(--on-plum-70); font-size: .8125rem; font-weight: 600; }
.vv-answer__dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--lilac); }
.vv-answer__q {
	margin-left: auto; max-width: 85%; width: fit-content;
	padding: .75rem 1rem; border-radius: 16px 16px 4px 16px;
	background: var(--plum-2); font-weight: 550; font-size: .9875rem;
}
.vv-answer__q-text::after { content: ""; display: inline-block; width: 2px; height: 1em; margin-left: 2px; vertical-align: -.15em; background: var(--lilac); opacity: 0; }
.vv-answer.is-typing .vv-answer__q-text::after { opacity: 1; animation: vv-caret .8s steps(1) infinite; }
@keyframes vv-caret { 50% { opacity: 0; } }
.vv-answer__lead { margin: 1.25rem 0 1rem; color: var(--on-plum-70); font-size: .9375rem; }
.vv-answer__list { display: grid; gap: .5rem; counter-reset: vvanswer; }
.vv-answer__item {
	display: grid; grid-template-columns: auto 1fr; gap: .15rem .85rem; align-items: start;
	padding: .9rem 1rem; border-radius: 14px; border: 1px solid var(--on-plum-line);
	counter-increment: vvanswer;
}
.vv-answer__item::before {
	content: counter(vvanswer); grid-row: span 3;
	display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 6px;
	background: var(--plum-2); font-size: .8125rem; font-weight: 700;
}
.vv-answer__item b { font-weight: 700; font-size: 1rem; }
.vv-answer__item p { font-size: .875rem; color: var(--on-plum-70); line-height: 1.45; }
.vv-cite {
	display: inline-flex; align-items: center; gap: .4rem; width: fit-content; margin-top: .5rem;
	padding: .28rem .65rem .28rem .35rem; border-radius: var(--r-pill);
	background: rgba(255, 248, 231, .08); color: var(--on-plum-70);
	font-size: .75rem; font-weight: 600;
}
.vv-cite .vv-i { margin-left: .2rem; }
.vv-cite--verified { background: var(--lilac); color: var(--plum); }
.vv-cite__mark { width: 1.4rem; height: 1.2rem; padding: .1rem; border-radius: var(--r-pill); background: var(--plum); color: var(--lilac); }
.vv-answer__item--verified { border-color: rgba(187, 185, 251, .55); background: rgba(187, 185, 251, .07); }
.vv-answer__foot { margin-top: 1rem; display: flex; align-items: center; gap: .5rem; font-size: .75rem; color: var(--on-plum-70); }

/* Orchestrated once on load: question types, answers land, the verified cite stamps. */
.vv-answer [data-step] { opacity: 1; }
.vv-answer.is-armed [data-step] { opacity: 0; transform: translateY(8px); }
.vv-answer.is-armed [data-step].is-in { opacity: 1; transform: none; transition: opacity .5s var(--ease-out), transform .6s var(--ease-out); }
.vv-answer .vv-cite--verified.is-stamped { animation: vv-stamp .7s var(--ease-out); }
@keyframes vv-stamp {
	0% { box-shadow: 0 0 0 0 rgba(187, 185, 251, .9); transform: scale(.92); }
	55% { transform: scale(1.04); }
	100% { box-shadow: 0 0 0 14px rgba(187, 185, 251, 0); transform: scale(1); }
}
@media (max-width: 960px) {
	.vv-hero__grid { grid-template-columns: 1fr; }
	.vv-answer { max-width: 36rem; }
}

/* ---------------------------------------------------------------- steps */

.vv-steps { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--plum); border-radius: 4px; }
.vv-step { position: relative; padding: clamp(1.5rem, 3vw, 2.5rem); padding-top: clamp(4rem, 6vw, 5.5rem); min-height: 18rem; }
.vv-step + .vv-step { border-left: 1px solid var(--plum); }
.vv-step__num {
	position: absolute; top: -1px; right: -1px;
	display: grid; place-items: center; width: 3.25rem; height: 3.25rem;
	background: var(--plum); color: var(--cream); font-weight: 800; font-size: 1.125rem;
}
.vv-step:first-child .vv-step__num { right: -1px; }
.vv-step h3 { margin-bottom: .75rem; }
.vv-step p { color: var(--ink-72); max-width: 26em; }
.vv-step__art { margin-top: 1.75rem; }
@media (max-width: 900px) {
	.vv-steps { grid-template-columns: 1fr; }
	.vv-step { min-height: 0; }
	.vv-step + .vv-step { border-left: 0; border-top: 1px solid var(--plum); }
}

/* Tiny illustrations inside the steps, built from interface pieces. */
.vv-mini-url {
	display: flex; align-items: center; gap: .5rem; max-width: 17rem;
	padding: .6rem .6rem .6rem .9rem; border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--surface);
	font-size: .875rem; color: var(--ink-72);
}
.vv-mini-url b { margin-left: auto; width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 50%; background: var(--plum); color: var(--cream); }
.vv-mini-lines { display: grid; gap: .45rem; max-width: 17rem; }
.vv-mini-lines span { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; color: var(--ink-72); }
.vv-mini-lines .vv-i { color: var(--ok); }
.vv-mini-publish { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.vv-mini-publish em { font-style: normal; font-size: .8125rem; color: var(--ink-55); }

/* ------------------------------------------------------------ comparison */

.vv-compare { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: stretch; }
.vv-compare__label { display: block; margin-bottom: .9rem; font-size: .875rem; font-weight: 650; color: var(--ink-55); }
.vv-basic {
	padding: 1.5rem; border: 1px dashed var(--line); border-radius: var(--r-card);
	color: var(--ink-55); background: transparent;
}
.vv-basic b { display: block; color: var(--ink-72); font-size: 1.125rem; margin-bottom: .5rem; }
.vv-basic p { font-size: .9375rem; }
.vv-basic__rows { margin-top: 1.25rem; display: grid; gap: .5rem; font-size: .875rem; }
.vv-basic__rows span { display: flex; gap: .5rem; align-items: center; }
.vv-rich {
	padding: clamp(1.25rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: var(--r-card);
	background: var(--surface); box-shadow: 0 40px 80px -60px rgba(38, 4, 41, .5);
}
.vv-rich__head { display: flex; gap: 1rem; align-items: center; margin-bottom: 1.25rem; }
.vv-rich__head .vv-logo { --s: 3.5rem; }
.vv-rich__head b { display: block; font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.vv-rich__head span { font-size: .875rem; color: var(--ink-55); }
.vv-rich__qa { border-top: 1px solid var(--line-soft); padding: 1rem 0; }
.vv-rich__qa h4 { font-size: 1rem; font-weight: 750; margin-bottom: .3rem; }
.vv-rich__qa p { font-size: .9375rem; color: var(--ink-72); }
.vv-rich__chips { display: flex; flex-wrap: wrap; gap: .4rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.vv-rich__code {
	display: flex; align-items: center; gap: .5rem; margin-top: 1rem; padding: .7rem .9rem;
	background: var(--plum); color: var(--on-plum-70); border-radius: 12px; font-size: .8125rem;
}
.vv-rich__code b { color: var(--lilac); font-weight: 600; }
@media (max-width: 860px) { .vv-compare { grid-template-columns: 1fr; } }

.vv-chip {
	display: inline-flex; align-items: center; gap: .35rem;
	padding: .35rem .7rem; border-radius: var(--r-pill);
	background: var(--cream-2); color: var(--ink-72);
	font-size: .8125rem; font-weight: 550; line-height: 1.2;
}

/* ------------------------------------------------------------ plum band */

.vv-band { background: var(--plum); color: var(--on-plum); }
.vv-band .vv-lede { color: var(--on-plum-70); }
.vv-band__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.vv-signals { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--on-plum-line); }
.vv-signal { padding: 1.5rem 1.5rem 1.5rem 0; border-bottom: 1px solid var(--on-plum-line); }
.vv-signal:nth-child(odd) { padding-right: 1.75rem; border-right: 1px solid var(--on-plum-line); }
.vv-signal:nth-child(even) { padding-left: 1.75rem; }
.vv-signal .vv-i { width: 1.5rem; height: 1.5rem; color: var(--lilac); margin-bottom: .9rem; }
.vv-signal h3 { font-size: 1.125rem; font-weight: 750; margin-bottom: .35rem; letter-spacing: -.01em; }
.vv-signal p { font-size: .9375rem; color: var(--on-plum-70); }
@media (max-width: 900px) { .vv-band__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
	.vv-signals { grid-template-columns: 1fr; }
	.vv-signal:nth-child(n) { padding: 1.25rem 0; border-right: 0; }
}

/* ------------------------------------------------------------- pricing */

.vv-price {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	border: 1px solid var(--plum); border-radius: 4px; overflow: hidden;
}
.vv-price__lead { padding: clamp(2rem, 4vw, 3.5rem); background: var(--plum); color: var(--on-plum); display: flex; flex-direction: column; }
.vv-price__name { font-size: 1rem; font-weight: 650; color: var(--on-plum-70); }
.vv-price__amount { display: flex; align-items: flex-start; gap: .25rem; margin: 1rem 0 .5rem; font-weight: 900; letter-spacing: -.05em; line-height: .85; }
.vv-price__amount sup { font-size: 2rem; margin-top: .35rem; letter-spacing: 0; }
.vv-price__amount span { font-size: clamp(5rem, 11vw, 8.5rem); }
.vv-price__note { color: var(--on-plum-70); max-width: 22em; margin-bottom: 2rem; }
.vv-price__lead .vv-btn { margin-top: auto; align-self: flex-start; }
.vv-price__list { padding: clamp(2rem, 4vw, 3.5rem); display: grid; gap: 1rem; align-content: center; }
.vv-price__list li { display: flex; gap: .85rem; align-items: flex-start; }
.vv-price__list .vv-i { color: var(--plum); margin-top: .12rem; }
.vv-price__share { margin-top: .75rem; padding-top: 1.25rem; border-top: 1px solid var(--line); font-size: .9375rem; color: var(--ink-72); }
@media (max-width: 860px) { .vv-price { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ faq */

@media (max-width: 860px) { [data-vv-stack] { grid-template-columns: 1fr !important; } }

.vv-faq { border-top: 1px solid var(--plum); }
.vv-faq details { border-bottom: 1px solid var(--line); }
.vv-faq summary {
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
	padding: 1.5rem 0; cursor: pointer; list-style: none;
	font-size: clamp(1.125rem, 1.6vw, 1.375rem); font-weight: 750; letter-spacing: -.015em;
}
.vv-faq summary::-webkit-details-marker { display: none; }
.vv-faq summary .vv-i { transition: transform .3s var(--ease); flex: none; }
.vv-faq details[open] summary .vv-i { transform: rotate(45deg); }
.vv-faq__a { padding: 0 0 1.75rem; max-width: 44em; color: var(--ink-72); }
.vv-faq__a p + p { margin-top: .75rem; }

/* -------------------------------------------------------------- CTA end */

.vv-end { text-align: left; }
.vv-end__box {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap;
	padding: clamp(2rem, 5vw, 4rem); border-radius: 28px; background: var(--lilac); color: var(--plum);
}
.vv-end__box .vv-d2 { max-width: 12em; }

/* ---------------------------------------------------------------- footer */

.vv-footer { background: var(--plum); color: var(--on-plum); padding: clamp(3.5rem, 7vw, 6rem) 0 2rem; overflow: hidden; }
.vv-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 3rem; }
.vv-footer__statement { font-size: 1.125rem; color: var(--on-plum-70); max-width: 26em; }
.vv-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.vv-footer__cols h2 { font-size: .875rem; font-weight: 650; color: var(--on-plum-70); margin-bottom: 1rem; }
.vv-footer__cols a, .vv-footer__cols span { display: block; padding: .3rem 0; font-weight: 550; }
.vv-footer__cols a:hover { color: var(--lilac); }
.vv-footer__sign {
	display: flex; align-items: flex-start;
	margin: clamp(3rem, 7vw, 6rem) 0 1.5rem;
	font-size: clamp(2.4rem, 9.3vw, 9.4rem); font-weight: 900; letter-spacing: -.05em; line-height: .8; white-space: nowrap; padding-bottom: .16em;
}
.vv-footer__mark { width: .9em; height: .79em; color: var(--lilac); margin-left: .04em; margin-top: -.12em; flex: none; }
.vv-footer__base { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 1.5rem; border-top: 1px solid var(--on-plum-line); font-size: .875rem; color: var(--on-plum-70); }
.vv-footer__powered { display: inline-flex; align-items: center; gap: .45rem; }
.vv-footer__powered .vv-i { color: var(--lilac); }
@media (max-width: 860px) {
	.vv-footer__top { grid-template-columns: 1fr; }
	.vv-footer__cols { grid-template-columns: repeat(2, 1fr); }
}

/* ------------------------------------------------------------------ logo */

.vv-logo {
	--s: 2.75rem;
	display: inline-grid; place-items: center; flex: none;
	width: var(--s); height: var(--s); border-radius: 24%;
	overflow: hidden; background: #fff;
	box-shadow: inset 0 0 0 1px rgba(38, 4, 41, .08);
}
.vv-logo img { width: 100%; height: 100%; object-fit: contain; padding: 12%; background: #fff; }
.vv-logo__initials {
	width: 100%; height: 100%; display: grid; place-items: center;
	background: var(--tint-deep, var(--lilac-2)); color: var(--tint-ink, var(--plum));
	font-weight: 850; font-size: calc(var(--s) * .38); letter-spacing: -.03em;
}

/* ------------------------------------------------------------------ card */

.vv-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
	gap: clamp(1rem, 1.8vw, 1.5rem); align-items: start;
}
.vv-card {
	position: relative; display: flex; flex-direction: column;
	background: var(--tint); border: 1px solid rgba(38, 4, 41, .06); border-radius: var(--r-card);
	padding: .5rem;
	transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.vv-card:not(.is-open):hover { transform: translateY(-5px); box-shadow: 0 22px 44px -28px rgba(38, 4, 41, .5); }
.vv-card.is-open { box-shadow: 0 16px 36px -26px rgba(38, 4, 41, .45); }
.vv-card[hidden] { display: none; }
.vv-card__frame { position: relative; aspect-ratio: 16 / 11; overflow: hidden; border-radius: 13px; background: var(--tint-deep); }
.vv-card__shot { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.vv-card:hover .vv-card__shot { transform: scale(1.05); }
.vv-card__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(38, 4, 41, .25) 0%, transparent 28%, transparent 45%, rgba(38, 4, 41, .78) 100%); }
.vv-card__frame--plain::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, transparent 50%, rgba(38, 4, 41, .1) 100%);
}
.vv-card__monogram {
	position: absolute; right: -.05em; top: 50%; transform: translateY(-58%);
	font-size: 9rem; font-weight: 900; letter-spacing: -.07em; line-height: 1;
	color: var(--tint-ink); opacity: .14;
}
.vv-card__flag {
	position: absolute; top: .625rem; left: .625rem;
	display: inline-flex; align-items: center; gap: .3rem;
	padding: .22rem .6rem .22rem .25rem; border-radius: var(--r-pill);
	background: var(--lilac); color: var(--plum);
	font-size: .6875rem; font-weight: 700;
}
.vv-card__flagmark { width: 1.3rem; height: 1.12rem; padding: .1rem; border-radius: var(--r-pill); background: var(--plum); color: var(--lilac); }
.vv-card__view {
	position: absolute; top: .625rem; right: .625rem; z-index: 2;
	display: inline-flex; align-items: center; gap: .25rem;
	padding: .4rem .75rem; border-radius: var(--r-pill);
	background: rgba(255, 253, 247, .95); color: var(--plum);
	font-size: .75rem; font-weight: 700;
	box-shadow: 0 2px 10px -3px rgba(38, 4, 41, .35);
	transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.vv-card__view:hover, .vv-card__view:focus-visible { background: var(--plum); color: var(--cream); transform: translateX(2px); }
/* The whole frame is clickable (vv-site.js); the View pill is the visible affordance. */
.vv-card__frame { cursor: pointer; }
.vv-card__plate { position: absolute; left: .75rem; right: .75rem; bottom: .75rem; display: flex; align-items: center; gap: .65rem; min-width: 0; }
.vv-card__logo { --s: 2.6rem; box-shadow: 0 3px 12px -3px rgba(38, 4, 41, .35); }
.vv-card__names { display: grid; min-width: 0; gap: .1rem; }
.vv-card__name { font-size: 1.0625rem; font-weight: 750; line-height: 1.15; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vv-card__cat { font-size: .75rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vv-card__frame--plain .vv-card__name { color: var(--plum); }
.vv-card__frame--plain .vv-card__cat { color: var(--tint-ink); }
.vv-card__frame:not(.vv-card__frame--plain) .vv-card__name { color: #fff; }
.vv-card__frame:not(.vv-card__frame--plain) .vv-card__cat { color: rgba(255, 255, 255, .82); }

.vv-card__meta { display: flex; align-items: center; gap: .5rem; padding: .65rem .4rem .3rem; min-height: 2.9rem; }
.vv-card__city { display: inline-flex; align-items: center; gap: .3rem; font-size: .8125rem; font-weight: 600; color: var(--tint-ink); }
.vv-card__toggle {
	margin-left: auto; display: inline-flex; align-items: center; gap: .3rem;
	height: 2rem; padding: 0 .75rem;
	border: 1px solid rgba(38, 4, 41, .12); border-radius: var(--r-pill); background: var(--surface);
	font-size: .75rem; font-weight: 700; line-height: 1;
}
.vv-card__toggle:hover { border-color: var(--plum); }
.vv-card.is-open .vv-card__toggle { background: var(--plum); color: var(--cream); border-color: var(--plum); }
.vv-card__chev { transition: transform .3s var(--ease); }
.vv-card.is-open .vv-card__chev { transform: rotate(180deg); }
.vv-card__panel { height: 0; overflow: hidden; transition: height .3s var(--ease); }
.vv-card__panelinner { padding: .5rem .4rem .45rem; }
.vv-card__body { font-size: .9rem; line-height: 1.5; color: var(--ink-72); }
.vv-card__tags { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .7rem; }
.vv-card__tag { padding: .25rem .55rem; border-radius: 7px; background: rgba(255, 253, 247, .75); font-size: .75rem; color: var(--ink-72); }
.vv-card__go { display: inline-flex; align-items: center; gap: .3rem; margin-top: .8rem; font-size: .8125rem; font-weight: 700; color: var(--tint-ink); }
.vv-card__go:hover { text-decoration: underline; text-underline-offset: .2em; }

/* ------------------------------------------------------------ directory */

.vv-dir-head { padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(1.5rem, 3vw, 2rem); }
.vv-dir-head__top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; }
.vv-dir-head__count { text-align: right; }
.vv-dir-head__count b { display: block; font-size: clamp(3rem, 6vw, 4.75rem); font-weight: 900; letter-spacing: -.05em; line-height: .85; }
.vv-dir-head__count span { font-size: .875rem; color: var(--ink-55); }
.vv-dir-head .vv-lede { margin-top: 1rem; }
@media (max-width: 700px) { .vv-dir-head__top { grid-template-columns: 1fr; } .vv-dir-head__count { text-align: left; } }

.vv-toolbar {
	position: sticky; top: var(--header-h); z-index: 20;
	padding: .9rem 0; margin-bottom: 1.5rem;
	background: rgba(255, 248, 231, .92);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--line-soft);
}
.vv-toolbar__row { display: flex; gap: .75rem; align-items: center; }
.vv-search {
	flex: 1; display: flex; align-items: center; gap: .6rem;
	height: 3.25rem; padding: 0 1.1rem;
	background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--r-pill);
	transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.vv-search:focus-within { border-color: var(--plum); box-shadow: 0 0 0 4px var(--lilac-2); }
.vv-search input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; font-size: 1rem; }
.vv-search input:focus-visible { outline: none; }
.vv-search kbd { font: inherit; font-size: .75rem; padding: .1rem .45rem; border: 1px solid var(--line); border-radius: 6px; color: var(--ink-55); }
.vv-select {
	height: 3.25rem; padding: 0 2.5rem 0 1.1rem; border: 1.5px solid var(--line); border-radius: var(--r-pill);
	background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23260429' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m5.5 8 4.5 4.5L14.5 8'/%3E%3C/svg%3E") no-repeat right 1rem center / 1rem;
	-webkit-appearance: none; appearance: none; font-weight: 600; font-size: .9375rem;
}
.vv-chips { display: flex; gap: .45rem; margin-top: .8rem; overflow-x: auto; scrollbar-width: none; padding-bottom: .1rem; }
.vv-chips::-webkit-scrollbar { display: none; }
.vv-filter {
	display: inline-flex; align-items: center; gap: .45rem; flex: none;
	height: 2.35rem; padding: 0 .95rem;
	border: 1px solid var(--line); border-radius: var(--r-pill); background: transparent;
	font-size: .875rem; font-weight: 600; white-space: nowrap;
	transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.vv-filter small { font-size: .75rem; color: var(--ink-55); font-weight: 600; }
.vv-filter:hover { border-color: var(--plum); }
.vv-filter[aria-pressed="true"] { background: var(--plum); border-color: var(--plum); color: var(--cream); }
.vv-filter[aria-pressed="true"] small { color: var(--on-plum-70); }
@media (max-width: 600px) { .vv-toolbar__row { flex-wrap: wrap; } .vv-select { flex: 1; } }

.vv-dir-status { margin-bottom: 1rem; font-size: .875rem; color: var(--ink-55); }
.vv-empty {
	padding: clamp(2.5rem, 6vw, 4.5rem); border: 1px dashed var(--line); border-radius: var(--r-card);
	text-align: center; display: grid; justify-items: center; gap: .9rem;
}
.vv-empty .vv-mark { width: 4rem; height: 3.5rem; color: var(--lilac); }
.vv-empty p { color: var(--ink-72); max-width: 30em; }
.vv-join-tile {
	display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem;
	min-height: 100%; padding: 1.5rem; border-radius: var(--r-card);
	border: 1.5px dashed rgba(38, 4, 41, .28); color: var(--plum);
	transition: background .2s var(--ease), border-color .2s var(--ease);
}
.vv-join-tile:hover { background: var(--surface); border-color: var(--plum); }
.vv-join-tile b { font-size: 1.375rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.vv-join-tile p { color: var(--ink-72); font-size: .9375rem; margin-top: .5rem; }

/* -------------------------------------------------------------- profile */

.vv-crumbs { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; padding-top: 1.75rem; font-size: .875rem; color: var(--ink-55); }
.vv-crumbs a:hover { color: var(--plum); text-decoration: underline; text-underline-offset: .2em; }

.vv-prof-head { padding: clamp(1.75rem, 4vw, 3rem) 0 clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line); }
.vv-prof-head__grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.25rem); align-items: start; }
.vv-prof-head .vv-logo { --s: clamp(5rem, 9vw, 7rem); border-radius: 22%; }
.vv-prof-head h1 { margin-bottom: .9rem; }
.vv-prof-head .vv-lede { margin-bottom: 1.5rem; }
.vv-prof-head__badges { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 1.75rem; }
.vv-verified-date { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; color: var(--ink-55); }
.vv-prof-head__cta { display: flex; flex-wrap: wrap; gap: .6rem; }
@media (max-width: 640px) { .vv-prof-head__grid { grid-template-columns: 1fr; } }

.vv-prof { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: clamp(2rem, 5vw, 5rem); padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(4rem, 7vw, 6rem); }
.vv-qa { padding: 0 0 clamp(2rem, 4vw, 2.75rem); }
.vv-qa + .vv-qa { padding-top: clamp(2rem, 4vw, 2.75rem); border-top: 1px solid var(--line); }
.vv-qa h2 { margin-bottom: 1rem; }
.vv-qa__answer { max-width: 40em; color: var(--ink-72); font-size: 1.125rem; line-height: 1.6; }
.vv-qa__answer p + p { margin-top: 1em; }
.vv-qa__answer p:first-child { color: var(--plum); }
.vv-qa__chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.25rem; }
.vv-qa__chips .vv-chip { font-size: .875rem; padding: .45rem .85rem; }

.vv-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.vv-product { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; background: var(--surface); }
.vv-product__img { aspect-ratio: 4 / 3; background: var(--cream-2); overflow: hidden; }
.vv-product__img img { width: 100%; height: 100%; object-fit: cover; }
.vv-product__img--empty { display: grid; place-items: center; color: var(--ink-40); }
.vv-product__body { padding: 1.1rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.vv-product__top { display: grid; gap: .2rem; }
.vv-product__top b { font-size: 1.0625rem; font-weight: 750; line-height: 1.2; }
.vv-product__price { font-size: .875rem; font-weight: 700; white-space: nowrap; }
.vv-product p { font-size: .9375rem; color: var(--ink-72); }
.vv-product .vv-btn { margin-top: auto; align-self: flex-start; }

.vv-aside { position: sticky; top: calc(var(--header-h) + 1.5rem); align-self: start; display: grid; gap: 1rem; }
.vv-panel { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); padding: 1.35rem; }
.vv-panel h2 { font-size: 1rem; font-weight: 750; margin-bottom: 1rem; }
.vv-facts { display: grid; gap: 1.1rem; }
.vv-fact dt { font-size: .8125rem; font-weight: 650; color: var(--ink-55); margin-bottom: .4rem; }
.vv-fact dd { margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.vv-fact dd a { font-weight: 600; }
.vv-contact-row { display: flex; align-items: center; gap: .7rem; padding: .7rem 0; border-top: 1px solid var(--line-soft); font-weight: 600; font-size: .9375rem; overflow-wrap: anywhere; }
.vv-contact-row:first-of-type { border-top: 0; padding-top: 0; }
.vv-contact-row .vv-i { color: var(--ink-55); }
a.vv-contact-row:hover { color: var(--violet); }
.vv-proof { background: var(--lilac-t); border-color: var(--lilac-2); }
.vv-proof p { font-size: .875rem; color: var(--ink-72); }
.vv-proof p + p { margin-top: .6rem; }
.vv-proof__head { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; font-weight: 750; }
.vv-proof__head .vv-mark { width: 2rem; height: 1.75rem; padding: .2rem; border-radius: var(--r-pill); background: var(--plum); color: var(--lilac); }
.vv-proof__sources { margin-top: .6rem; display: grid; gap: .2rem; font-size: .8125rem; }
.vv-proof__sources a { color: var(--ink-72); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
@media (max-width: 1020px) {
	.vv-prof { grid-template-columns: 1fr; }
	.vv-aside { position: static; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
}

.vv-related { padding: clamp(3rem, 6vw, 5rem) 0; border-top: 1px solid var(--line); }

/* ------------------------------------------------------ app / forms */

body.vv-appview { background: var(--cream); }
.vv-field { display: grid; gap: .45rem; }
.vv-field + .vv-field { margin-top: 1.1rem; }
.vv-field label, .vv-label { font-size: .9375rem; font-weight: 650; }
.vv-field label small, .vv-label small { font-weight: 450; color: var(--ink-55); margin-left: .35rem; }
.vv-help { font-size: .8125rem; color: var(--ink-55); }
.vv-input, .vv-textarea {
	width: 100%; padding: .85rem 1rem;
	background: var(--surface); border: 1.5px solid var(--line); border-radius: 12px;
	font-size: 1rem; line-height: 1.45;
	transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.vv-input:hover, .vv-textarea:hover { border-color: rgba(38, 4, 41, .3); }
.vv-input:focus, .vv-textarea:focus { outline: none; border-color: var(--plum); box-shadow: 0 0 0 4px var(--lilac-2); }
.vv-textarea { resize: vertical; min-height: 7rem; }
.vv-field.has-error .vv-input { border-color: var(--err); }
.vv-error { font-size: .8125rem; font-weight: 600; color: var(--err); }
.vv-input-wrap { position: relative; }
.vv-input-wrap .vv-i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ink-40); pointer-events: none; }
.vv-input-wrap .vv-input { padding-left: 2.75rem; }
.vv-count { justify-self: end; font-size: .75rem; color: var(--ink-40); font-variant-numeric: tabular-nums; }
.vv-count.is-over { color: var(--err); }
.vv-check { display: flex; gap: .75rem; align-items: flex-start; font-size: .9375rem; color: var(--ink-72); cursor: pointer; }
.vv-check input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--plum); flex: none; }
.vv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Join */
.vv-join { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: calc(100vh - var(--header-h)); }
.vv-join__side { background: var(--plum); color: var(--on-plum); padding: clamp(2.5rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem); display: flex; flex-direction: column; gap: 2.5rem; }
.vv-join__side .vv-lede { color: var(--on-plum-70); }
.vv-join__steps { display: grid; gap: 0; counter-reset: vvjoin; border-top: 1px solid var(--on-plum-line); }
.vv-join__steps li { display: grid; grid-template-columns: 2.25rem 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--on-plum-line); counter-increment: vvjoin; }
.vv-join__steps li::before { content: counter(vvjoin); display: grid; place-items: center; width: 2.25rem; height: 2.25rem; background: var(--cream); color: var(--plum); font-weight: 800; }
.vv-join__steps b { display: block; font-weight: 700; margin-bottom: .2rem; }
.vv-join__steps p { font-size: .9375rem; color: var(--on-plum-70); }
.vv-join__host { margin-top: auto; display: flex; align-items: center; gap: .75rem; font-size: .9375rem; color: var(--on-plum-70); }
.vv-join__host .vv-mark { width: 2.75rem; height: 2.4rem; color: var(--lilac); }
.vv-join__main { padding: clamp(2.5rem, 6vw, 5rem) clamp(1.5rem, 5vw, 4.5rem); display: flex; align-items: flex-start; justify-content: center; }
.vv-form { width: 100%; max-width: 32rem; }
.vv-form__head { margin-bottom: 2rem; }
.vv-form__head p { margin-top: .75rem; color: var(--ink-72); }
.vv-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vv-form__row .vv-field + .vv-field { margin-top: 0; }
.vv-form__row + .vv-field { margin-top: 1.1rem; }
.vv-form__foot { margin-top: 1.75rem; display: grid; gap: 1rem; }
.vv-form__alt { font-size: .9375rem; color: var(--ink-55); }
.vv-form__alt a { color: var(--plum); font-weight: 650; text-decoration: underline; text-underline-offset: .2em; }
.vv-form__msg { padding: .9rem 1rem; border-radius: 12px; background: #FBE4E7; color: var(--err); font-weight: 600; font-size: .9375rem; }
.vv-form__msg[hidden] { display: none; }
@media (max-width: 900px) {
	.vv-join { grid-template-columns: 1fr; }
	.vv-join__side { order: 2; }
	.vv-form__row { grid-template-columns: 1fr; }
	.vv-form__row .vv-field + .vv-field { margin-top: 1.1rem; }
}

.vv-center { min-height: calc(100vh - var(--header-h)); display: grid; place-items: center; padding: 2rem var(--gutter); }
.vv-card-box { width: 100%; max-width: 30rem; padding: clamp(1.75rem, 4vw, 2.5rem); background: var(--surface); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 40px 80px -60px rgba(38, 4, 41, .5); }
.vv-card-box h1 { margin-bottom: .75rem; }
.vv-card-box > p { color: var(--ink-72); margin-bottom: 1.75rem; }
.vv-success { display: flex; gap: .75rem; padding: 1rem; border-radius: 12px; background: #E3F1E8; color: var(--ok); font-weight: 600; }

/* Drafting screen: the logo's signal arcs do the waiting. */
.vv-drafting { text-align: left; width: 100%; max-width: 34rem; }
.vv-drafting__mark { width: 7rem; height: 6.1rem; color: var(--plum); margin-bottom: 2rem; overflow: visible; }
.vv-drafting__mark .vv-arc { stroke: var(--lilac); opacity: .25; animation: vv-signal 1.8s var(--ease) infinite; }
.vv-drafting__mark .vv-arc--2 { animation-delay: .3s; }
.vv-drafting__mark .vv-check { stroke-dasharray: 20; stroke-dashoffset: 20; animation: vv-draw 1.8s var(--ease) infinite; }
@keyframes vv-signal { 0%, 100% { opacity: .2; } 45% { opacity: 1; } }
@keyframes vv-draw { 0% { stroke-dashoffset: 20; } 40%, 80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: 20; } }
.vv-drafting h1 { margin-bottom: .9rem; }
.vv-drafting > p { color: var(--ink-72); margin-bottom: 2rem; }
.vv-progress { display: grid; border-top: 1px solid var(--line); }
.vv-progress li { display: flex; align-items: center; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid var(--line); color: var(--ink-40); font-weight: 600; transition: color .3s var(--ease); }
.vv-progress__dot { width: 1.6rem; height: 1.6rem; flex: none; border-radius: 50%; border: 1.5px solid currentColor; display: grid; place-items: center; }
.vv-progress__dot .vv-i { width: .9rem; height: .9rem; opacity: 0; }
.vv-progress li.is-done { color: var(--plum); }
.vv-progress li.is-done .vv-progress__dot { background: var(--plum); border-color: var(--plum); color: var(--cream); }
.vv-progress li.is-done .vv-i { opacity: 1; }
.vv-progress li.is-now { color: var(--plum); }
.vv-progress li.is-now .vv-progress__dot { border-color: var(--plum); border-right-color: transparent; animation: vv-spin .9s linear infinite; }
.vv-drafting__note { margin-top: 1.5rem; display: flex; gap: .6rem; font-size: .9375rem; color: var(--ink-55); }

/* Editor */
.vv-editor { display: grid; grid-template-columns: 13.5rem minmax(0, 1fr) 21rem; gap: clamp(1.5rem, 3vw, 2.75rem); padding-top: 1.5rem; padding-bottom: 7rem; }
.vv-ed-nav { position: sticky; top: calc(var(--header-h) + 1.5rem); align-self: start; }
.vv-ed-nav__title { font-size: .8125rem; font-weight: 650; color: var(--ink-55); margin-bottom: .75rem; }
.vv-ed-nav a {
	display: flex; align-items: center; gap: .65rem; padding: .6rem .75rem; border-radius: 10px;
	font-size: .9375rem; font-weight: 600; color: var(--ink-72);
}
.vv-ed-nav a:hover { background: rgba(38, 4, 41, .05); color: var(--plum); }
.vv-ed-nav a.is-active { background: var(--plum); color: var(--cream); }
.vv-ed-nav__dot { width: .55rem; height: .55rem; border-radius: 50%; border: 1.5px solid currentColor; flex: none; opacity: .6; }
.vv-ed-nav a.is-complete .vv-ed-nav__dot { background: var(--ok); border-color: var(--ok); opacity: 1; }
.vv-ed-nav a.is-active.is-complete .vv-ed-nav__dot { background: var(--lilac); border-color: var(--lilac); }

.vv-ed-intro { margin-bottom: 2rem; }
.vv-ed-intro h1 { margin-bottom: .6rem; }
.vv-ed-intro p { color: var(--ink-72); max-width: 38em; }
.vv-notice { display: flex; gap: .75rem; padding: 1rem 1.1rem; margin-top: 1.25rem; border-radius: 14px; background: var(--lilac-t); border: 1px solid var(--lilac-2); font-size: .9375rem; }
.vv-notice .vv-i { color: var(--violet); margin-top: .1rem; }

.vv-ed-sec { padding: 1.75rem; margin-bottom: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.vv-ed-sec__head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; }
.vv-ed-sec__head h2 { font-size: 1.375rem; font-weight: 800; letter-spacing: -.02em; }
.vv-ed-sec__head p { margin-top: .3rem; font-size: .9375rem; color: var(--ink-55); max-width: 34em; }
.vv-ed-sec__state { flex: none; font-size: .75rem; font-weight: 700; padding: .3rem .6rem; border-radius: var(--r-pill); background: var(--cream-2); color: var(--ink-55); }
.vv-ed-sec__state.is-ok { background: #E3F1E8; color: var(--ok); }

.vv-drop {
	position: relative; display: grid; place-items: center; gap: .4rem; text-align: center;
	border: 1.5px dashed rgba(38, 4, 41, .28); border-radius: 16px; background: var(--cream);
	color: var(--ink-55); font-size: .875rem; font-weight: 600; cursor: pointer; overflow: hidden;
	transition: border-color .2s var(--ease), background .2s var(--ease);
}
.vv-drop:hover, .vv-drop.is-over { border-color: var(--plum); background: var(--lilac-t); color: var(--plum); }
.vv-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.vv-drop img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vv-drop--logo { width: 8rem; height: 8rem; }
.vv-drop--logo img { object-fit: contain; padding: 12%; background: #fff; }
.vv-drop.has-image { border-style: solid; border-color: var(--line); }
.vv-drop.is-busy::after { content: ""; position: absolute; inset: 0; background: rgba(255, 253, 247, .7) ; }
.vv-drop__remove {
	position: absolute; top: .4rem; right: .4rem; z-index: 2; width: 1.9rem; height: 1.9rem; border-radius: 50%;
	display: grid; place-items: center; border: 0; background: rgba(38, 4, 41, .8); color: #fff;
}
.vv-logo-row { display: flex; gap: 1.25rem; align-items: center; }

.vv-chipbox {
	display: flex; flex-wrap: wrap; gap: .4rem; align-items: center;
	min-height: 3.25rem; padding: .5rem; background: var(--surface);
	border: 1.5px solid var(--line); border-radius: 12px; cursor: text;
	transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.vv-chipbox:focus-within { border-color: var(--plum); box-shadow: 0 0 0 4px var(--lilac-2); }
.vv-chipbox input { flex: 1; min-width: 9rem; border: 0; outline: none; background: transparent; padding: .35rem .4rem; font-size: 1rem; }
.vv-chipbox input:focus-visible { outline: none; }
.vv-chipbox .vv-chip { background: var(--plum); color: var(--cream); padding: .35rem .4rem .35rem .75rem; }
.vv-chip__x { display: grid; place-items: center; width: 1.3rem; height: 1.3rem; border: 0; border-radius: 50%; background: rgba(255, 248, 231, .15); color: inherit; padding: 0; }
.vv-chip__x:hover { background: rgba(255, 248, 231, .35); }
.vv-chip__x .vv-i { width: .8rem; height: .8rem; }

.vv-cats__picked { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; min-height: 2.5rem; align-items: center; }
.vv-cats__slot { display: inline-flex; align-items: center; height: 2.4rem; padding: 0 1rem; border: 1.5px dashed var(--line); border-radius: var(--r-pill); font-size: .875rem; color: var(--ink-40); }
.vv-cats__picked .vv-chip { background: var(--plum); color: var(--cream); padding: .45rem .45rem .45rem .9rem; font-size: .9375rem; }
.vv-cats__options { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; max-height: 14rem; overflow: auto; }
.vv-cats__opt { height: 2.2rem; padding: 0 .85rem; border: 1px solid var(--line); border-radius: var(--r-pill); background: transparent; font-size: .875rem; font-weight: 550; }
.vv-cats__opt:hover { border-color: var(--plum); }
.vv-cats__opt[disabled] { opacity: .35; cursor: not-allowed; }
.vv-cats__opt--new { border-style: dashed; color: var(--violet); border-color: var(--violet); font-weight: 650; }

.vv-qa-edit { border: 1px solid var(--line); border-radius: 14px; padding: 1rem; background: var(--cream); }
.vv-qa-edit + .vv-qa-edit { margin-top: .75rem; }
.vv-qa-edit__q { width: 100%; border: 0; background: transparent; font-weight: 750; font-size: 1.0625rem; padding: .25rem 0; outline: none; letter-spacing: -.01em; }
.vv-qa-edit__a { width: 100%; border: 0; background: transparent; font-size: 1rem; line-height: 1.55; color: var(--ink-72); resize: vertical; min-height: 4.5rem; outline: none; padding: .25rem 0; }
.vv-qa-edit:focus-within { border-color: var(--plum); box-shadow: 0 0 0 4px var(--lilac-2); background: var(--surface); }
.vv-qa-edit :focus-visible { outline: none; }
.vv-qa-edit__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .25rem; }
.vv-qa-edit__empty { font-size: .8125rem; font-weight: 650; color: var(--warn); display: inline-flex; gap: .35rem; align-items: center; }
.vv-icon-btn { display: inline-flex; align-items: center; gap: .35rem; height: 2rem; padding: 0 .7rem; border: 0; border-radius: var(--r-pill); background: transparent; color: var(--ink-55); font-size: .8125rem; font-weight: 650; }
.vv-icon-btn:hover { background: rgba(38, 4, 41, .06); color: var(--plum); }
.vv-add { margin-top: 1rem; display: inline-flex; align-items: center; gap: .5rem; height: 2.75rem; padding: 0 1.1rem; border: 1.5px dashed rgba(38, 4, 41, .3); border-radius: var(--r-pill); background: transparent; font-weight: 650; font-size: .9375rem; }
.vv-add:hover { border-color: var(--plum); background: var(--surface); }
.vv-suggest { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .75rem; }
.vv-suggest button { height: 2rem; padding: 0 .8rem; border: 1px dashed var(--line); border-radius: var(--r-pill); background: transparent; font-size: .8125rem; font-weight: 550; color: var(--ink-72); }
.vv-suggest button:hover { border-color: var(--plum); color: var(--plum); }

.vv-prod-edit { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1.1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--cream); }
.vv-prod-edit + .vv-prod-edit { margin-top: .75rem; }
.vv-prod-edit .vv-drop { aspect-ratio: 1; }
.vv-prod-edit__fields { display: grid; gap: .6rem; }
.vv-prod-edit__row { display: grid; grid-template-columns: 1fr 8rem; gap: .6rem; }
.vv-prod-edit .vv-input, .vv-prod-edit .vv-textarea { padding: .65rem .8rem; font-size: .9375rem; }
.vv-prod-edit .vv-textarea { min-height: 4.5rem; }
@media (max-width: 560px) { .vv-prod-edit { grid-template-columns: 1fr; } .vv-prod-edit .vv-drop { aspect-ratio: 16 / 9; } }

.vv-ed-preview { position: sticky; top: calc(var(--header-h) + 1.5rem); align-self: start; display: grid; gap: 1rem; }
.vv-ed-preview__label { font-size: .8125rem; font-weight: 650; color: var(--ink-55); display: flex; justify-content: space-between; }
.vv-meter { padding: 1.25rem; border-radius: 18px; background: var(--plum); color: var(--on-plum); }
.vv-meter__top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .75rem; }
.vv-meter__top b { font-size: 2.25rem; font-weight: 900; letter-spacing: -.04em; line-height: 1; }
.vv-meter__top span { font-size: .875rem; color: var(--on-plum-70); }
.vv-meter__bar { height: .45rem; border-radius: var(--r-pill); background: var(--on-plum-line); overflow: hidden; }
.vv-meter__bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--lilac); transition: width .6s var(--ease-out); }
.vv-meter__todo { margin-top: 1rem; display: grid; gap: .35rem; font-size: .875rem; }
.vv-meter__todo button { display: flex; align-items: center; gap: .5rem; padding: 0; border: 0; background: transparent; color: var(--on-plum-70); text-align: left; }
.vv-meter__todo button:hover { color: var(--cream); }
.vv-meter__todo .vv-i { color: var(--lilac); }

.vv-ed-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
	background: rgba(255, 253, 247, .94); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-top: 1px solid var(--line);
	padding-bottom: env(safe-area-inset-bottom);
}
.vv-ed-bar__inner { display: flex; align-items: center; gap: 1rem; min-height: 4.5rem; }
.vv-save-state { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--ink-55); font-weight: 600; }
.vv-save-state i { width: .5rem; height: .5rem; border-radius: 50%; background: var(--ok); }
.vv-save-state.is-saving i { background: var(--warn); animation: vv-caret .8s steps(1) infinite; }
.vv-save-state.is-error i { background: var(--err); }
.vv-ed-bar__actions { margin-left: auto; display: flex; gap: .6rem; align-items: center; }
.vv-live-pill { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; font-weight: 700; color: var(--ok); }
.vv-live-pill i { width: .5rem; height: .5rem; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 3px rgba(31, 122, 74, .2); }

@media (max-width: 1180px) {
	.vv-editor { grid-template-columns: minmax(0, 1fr) 20rem; }
	.vv-ed-nav { display: none; }
}
@media (max-width: 880px) {
	.vv-editor { grid-template-columns: 1fr; }
	.vv-ed-preview { position: static; order: -1; }
	.vv-ed-preview .vv-card, .vv-ed-preview__label { display: none; }
	.vv-save-state { font-size: .8125rem; }
	.vv-ed-sec { padding: 1.25rem; }
	.vv-ed-bar .vv-btn--hide-sm { display: none; }
}

/* Published moment */
.vv-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 1.5rem; background: rgba(38, 4, 41, .55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: vv-fade .25s var(--ease); }
.vv-modal[hidden] { display: none; }
@keyframes vv-fade { from { opacity: 0; } }
.vv-modal__box { width: 100%; max-width: 30rem; padding: 2.25rem; border-radius: 26px; background: var(--plum); color: var(--on-plum); animation: vv-rise .5s var(--ease-out); }
@keyframes vv-rise { from { transform: translateY(16px) scale(.98); opacity: 0; } }
.vv-modal__box .vv-mark { width: 4.5rem; height: 3.9rem; color: var(--lilac); margin-bottom: 1.5rem; }
.vv-modal__box h2 { margin-bottom: .75rem; }
.vv-modal__box p { color: var(--on-plum-70); margin-bottom: 1.5rem; }
.vv-modal__url { display: flex; gap: .5rem; align-items: center; padding: .4rem .4rem .4rem 1rem; border-radius: var(--r-pill); background: var(--plum-2); margin-bottom: 1.25rem; font-size: .875rem; }
.vv-modal__url span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vv-modal__actions { display: flex; gap: .6rem; flex-wrap: wrap; }

/* Toast */
.vv-toast {
	position: fixed; left: 50%; bottom: 5.75rem; z-index: 95; transform: translate(-50%, 1rem);
	padding: .8rem 1.2rem; border-radius: var(--r-pill); background: var(--plum); color: var(--cream);
	font-size: .9375rem; font-weight: 600; opacity: 0; pointer-events: none;
	transition: opacity .25s var(--ease), transform .25s var(--ease);
	box-shadow: 0 20px 40px -20px rgba(38, 4, 41, .6);
}
.vv-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.vv-toast.is-error { background: var(--err); }

/* Generic content pages (privacy, terms, 404) */
.vv-prose { max-width: 42rem; padding: clamp(3rem, 6vw, 5rem) 0; }
.vv-prose h1 { margin-bottom: 1.5rem; }
.vv-prose p, .vv-prose ul, .vv-prose ol { margin: 0 0 1em; color: var(--ink-72); }
.vv-prose ul { list-style: disc; padding-left: 1.25rem; }
.vv-prose a { text-decoration: underline; text-underline-offset: .2em; }
