/* Vibe Blueprint — landing + auth */

:root {
	--vbl-bg: #f3efe6;
	--vbl-bg-2: #e7efe6;
	--vbl-ink: #1c2a22;
	--vbl-muted: #5d6b61;
	--vbl-line: rgba(28, 42, 34, 0.12);
	--vbl-forest: #2f6b4f;
	--vbl-forest-deep: #1f4a36;
	--vbl-brass: #b08a2e;
	--vbl-panel: #fffdf8;
	--vbl-danger: #9b3b2f;
	--vbl-ok: #2f6b4f;
	--vbl-radius: 16px;
	--vbl-display: "Fraunces", Georgia, serif;
	--vbl-sans: "Sora", "Avenir Next", sans-serif;
	--vbl-space: 8px;
}

.vibe-blueprint-fullbleed .site-header,
.vibe-blueprint-fullbleed .site-footer,
.vibe-blueprint-fullbleed #masthead,
.vibe-blueprint-fullbleed #colophon,
.vibe-blueprint-fullbleed .entry-header,
.vibe-blueprint-fullbleed .entry-footer {
	display: none !important;
}

.vibe-blueprint-fullbleed .site-content,
.vibe-blueprint-fullbleed .content-area,
.vibe-blueprint-fullbleed .entry-content,
.vibe-blueprint-fullbleed article,
.vibe-blueprint-fullbleed .wp-block-post-content {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.vibe-blueprint-fullbleed .entry-content > *:not(.vbl-site):not(.vbl-auth):not(.vbl-account) {
	display: none;
}

.vbl-site,
.vbl-auth,
.vbl-account {
	font-family: var(--vbl-sans);
	color: var(--vbl-ink);
	background:
		radial-gradient(900px 420px at 12% -8%, rgba(47, 107, 79, 0.14), transparent 55%),
		radial-gradient(800px 380px at 88% 0%, rgba(176, 138, 46, 0.12), transparent 50%),
		linear-gradient(180deg, var(--vbl-bg), #f7f4ec 40%, var(--vbl-bg-2));
	min-height: 100vh;
	overflow-x: hidden;
}

.vbl-site * ,
.vbl-auth *,
.vbl-account * {
	box-sizing: border-box;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* Nav */
.vbl-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: calc(var(--vbl-space) * 2);
	padding: calc(var(--vbl-space) * 1.75) calc(var(--vbl-space) * 4);
	position: sticky;
	top: 0;
	z-index: 40;
	backdrop-filter: blur(14px);
	background: rgba(243, 239, 230, 0.78);
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.vbl-nav.is-scrolled {
	border-bottom-color: var(--vbl-line);
	background: rgba(255, 253, 248, 0.94);
	box-shadow: 0 10px 30px rgba(28, 42, 34, 0.06);
}

.vbl-nav-solid {
	background: var(--vbl-panel);
	border-bottom: 1px solid var(--vbl-line);
}

.vbl-logo,
.vbl-auth-brand {
	font-family: var(--vbl-display);
	font-weight: 650;
	font-size: 1.35rem;
	color: var(--vbl-ink);
	text-decoration: none;
	letter-spacing: 0.01em;
}

.vbl-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
}

.vbl-logo-mark {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	display: grid;
	place-items: center;
	background: linear-gradient(145deg, rgba(244, 185, 66, 0.28), rgba(47, 158, 143, 0.18));
	border: 1px solid rgba(176, 138, 46, 0.35);
	box-shadow: 0 8px 22px rgba(47, 107, 79, 0.12);
	animation: vbl-logo-glow 3s ease-in-out infinite;
}

.vbl-logo-text {
	display: grid;
	gap: 0.05rem;
	line-height: 1.1;
}

.vbl-logo-name {
	font-size: 1.2rem;
}

.vbl-logo-tag {
	font-family: var(--vbl-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vbl-muted);
}

.vbl-nav-links {
	display: flex;
	gap: 0.35rem;
	padding: 0.25rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.45);
	border: 1px solid rgba(28, 42, 34, 0.08);
}

.vbl-nav-links a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.85rem;
	border-radius: 999px;
	font-size: 0.88rem;
	font-weight: 500;
	transition: background 0.18s ease, color 0.18s ease;
}

.vbl-nav-links a:hover {
	background: rgba(47, 107, 79, 0.1);
	color: var(--vbl-forest-deep);
}

.vbl-nav-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	display: inline-block;
	animation: vbl-dot-pulse 2.2s ease-in-out infinite;
}

.vbl-dot-teal { background: #2f9e8f; }
.vbl-dot-coral { background: #e85d4c; }
.vbl-dot-blue { background: #4c8bf5; }
.vbl-dot-amber { background: #f4b942; }
.vbl-dot-mint { background: #3ecf8e; }

.vbl-nav-actions {
	display: flex;
	align-items: center;
	gap: calc(var(--vbl-space) * 1.5);
}

.vbl-link-chip {
	display: inline-flex !important;
	align-items: center;
	gap: 0.45rem;
	padding: 0.3rem 0.7rem 0.3rem 0.3rem;
	border-radius: 999px;
	border: 1px solid var(--vbl-line);
	background: rgba(255, 255, 255, 0.65);
}

.vbl-nav-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, #4c8bf5, #2f9e8f);
}

.vbl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
}

.vbl-btn-ico {
	display: inline-grid;
	place-items: center;
	width: 18px;
	height: 18px;
}

.vbl-btn-ico .vbl-ico,
.vbl-btn-ico .vbl-ico-xs {
	width: 18px;
	height: 18px;
}

.vbl-ico-xs {
	width: 18px;
	height: 18px;
}

@keyframes vbl-logo-glow {
	0%, 100% { box-shadow: 0 8px 18px rgba(47, 107, 79, 0.1); }
	50% { box-shadow: 0 10px 26px rgba(176, 138, 46, 0.2); }
}

@keyframes vbl-dot-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.25); opacity: 0.7; }
}

.vbl-nav-links a,
.vbl-link,
.vbl-footer-links a,
.vbl-auth-switch a,
.vbl-faq a {
	color: var(--vbl-muted);
	text-decoration: none;
	font-weight: 500;
}

.vbl-nav-links a:hover,
.vbl-link:hover,
.vbl-footer-links a:hover,
.vbl-auth-switch a:hover {
	color: var(--vbl-forest-deep);
}

.vbl-nav-actions {
	display: flex;
	align-items: center;
	gap: calc(var(--vbl-space) * 2);
}

.vbl-menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid var(--vbl-line);
	border-radius: 10px;
	background: transparent;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 6px;
}

.vbl-menu-toggle span:not(.screen-reader-text) {
	display: block;
	width: 18px;
	height: 2px;
	background: var(--vbl-ink);
}

.vbl-mobile-nav {
	display: none;
	gap: calc(var(--vbl-space) * 2);
	padding: calc(var(--vbl-space) * 2) calc(var(--vbl-space) * 4) calc(var(--vbl-space) * 3);
	background: var(--vbl-panel);
	border-bottom: 1px solid var(--vbl-line);
}

.vbl-mobile-nav.is-open {
	display: grid;
}

.vbl-mobile-nav[hidden] {
	display: none !important;
}

.vbl-faq details[open] summary,
.vbl-faq details summary {
	cursor: pointer;
}

.vbl-faq details:not([open]) > *:not(summary) {
	display: none;
}

.vbl-mobile-nav a {
	color: var(--vbl-ink);
	text-decoration: none;
	font-weight: 500;
	min-height: 44px;
	display: flex;
	align-items: center;
}

/* Buttons */
.vbl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.7rem 1.2rem;
	border-radius: 12px;
	border: 1px solid var(--vbl-line);
	background: transparent;
	color: var(--vbl-ink);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.vbl-btn:hover {
	transform: translateY(-1px);
	border-color: rgba(47, 107, 79, 0.35);
}

.vbl-btn:active {
	transform: translateY(0);
}

.vbl-btn:focus-visible {
	outline: 2px solid var(--vbl-forest);
	outline-offset: 2px;
}

.vbl-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

.vbl-btn-primary {
	background: var(--vbl-forest);
	border-color: var(--vbl-forest);
	color: #f7faf7;
}

.vbl-btn-primary:hover {
	background: var(--vbl-forest-deep);
	border-color: var(--vbl-forest-deep);
	color: #fff;
}

.vbl-btn-ghost {
	background: rgba(255, 253, 248, 0.7);
}

.vbl-btn-lg {
	min-height: 52px;
	padding: 0.85rem 1.4rem;
	font-size: 1.02rem;
}

.vbl-btn-block {
	width: 100%;
}

/* Hero — isometric 3D atelier (no stock photo, no orbit icons) */
.vbl-hero,
.vbl-hero-3d {
	--vbl-hero-ink: #12161c;
	--vbl-hero-bone: #e6e0d4;
	--vbl-hero-copper: #c4784a;
	--vbl-hero-sea: #4f9e96;
	--vbl-hero-slate: #1c242e;
	position: relative;
	min-height: min(94vh, 920px);
	display: grid;
	align-items: center;
	padding: calc(var(--vbl-space) * 7) calc(var(--vbl-space) * 4) calc(var(--vbl-space) * 6);
	color: var(--vbl-hero-bone);
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(ellipse 70% 55% at 78% 35%, rgba(196, 120, 74, 0.18), transparent 60%),
		radial-gradient(ellipse 55% 50% at 12% 70%, rgba(79, 158, 150, 0.12), transparent 55%),
		linear-gradient(155deg, #0e1218 0%, #171d26 48%, #10151c 100%);
}

.vbl-hero-media,
.vbl-hero-svg,
.vbl-hero::after,
.vbl-hero-bg,
.vbl-hero-stage,
.vbl-hero-ring,
.vbl-hero-orbit,
.vbl-hero-satellites,
.vbl-hero-center {
	display: none !important;
}

.vbl-hero-atmosphere {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.vbl-hero-grain {
	position: absolute;
	inset: 0;
	opacity: 0.09;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	mix-blend-mode: soft-light;
}

.vbl-hero-grid {
	position: absolute;
	inset: -10% -5% 0;
	background-image:
		linear-gradient(rgba(230, 224, 212, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(230, 224, 212, 0.045) 1px, transparent 1px);
	background-size: 48px 48px;
	transform: perspective(900px) rotateX(62deg) translateY(-8%);
	transform-origin: center top;
	mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.55), transparent 85%);
}

.vbl-hero-beam {
	position: absolute;
	width: 2px;
	height: 140%;
	top: -20%;
	background: linear-gradient(180deg, transparent, rgba(196, 120, 74, 0.35), transparent);
	filter: blur(0.5px);
	animation: vbl-beam 9s ease-in-out infinite;
}

.vbl-hero-beam-a { left: 62%; animation-delay: -2s; }
.vbl-hero-beam-b { left: 78%; opacity: 0.55; animation-delay: -5s; }

.vbl-hero-inner {
	position: relative;
	z-index: 1;
	width: min(1180px, 100%);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: calc(var(--vbl-space) * 5);
	align-items: center;
}

.vbl-hero-copy {
	max-width: 560px;
	animation: vbl-rise 0.7s ease both;
}

.vbl-hero-3d .vbl-brand-mark {
	font-family: var(--vbl-display);
	font-size: clamp(2.4rem, 5.5vw, 4rem);
	font-weight: 700;
	line-height: 0.98;
	margin: 0 0 calc(var(--vbl-space) * 2.25);
	letter-spacing: -0.03em;
	color: var(--vbl-hero-bone);
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

.vbl-hero-3d h1 {
	font-family: var(--vbl-sans);
	font-weight: 500;
	font-size: clamp(1.15rem, 2.1vw, 1.45rem);
	line-height: 1.45;
	margin: 0 0 calc(var(--vbl-space) * 2);
	max-width: 28ch;
	color: rgba(230, 224, 212, 0.92);
	letter-spacing: -0.01em;
}

.vbl-hero-3d .vbl-lede {
	font-size: 1.02rem;
	line-height: 1.65;
	max-width: 40ch;
	margin: 0 0 calc(var(--vbl-space) * 3);
	color: rgba(230, 224, 212, 0.62);
}

.vbl-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: calc(var(--vbl-space) * 1.5);
}

.vbl-hero-3d .vbl-btn-primary {
	background: linear-gradient(135deg, #d4895a, #c4784a 50%, #a86238);
	color: #1a120e;
	border-color: transparent;
	box-shadow: 0 12px 28px rgba(196, 120, 74, 0.28);
}

.vbl-hero-3d .vbl-btn-ghost {
	background: rgba(230, 224, 212, 0.06);
	border-color: rgba(230, 224, 212, 0.22);
	color: var(--vbl-hero-bone);
}

.vbl-hero-3d .vbl-btn-ghost:hover {
	background: rgba(230, 224, 212, 0.12);
	border-color: rgba(230, 224, 212, 0.4);
	color: #fff;
}

/* 3D isometric scene */
.vbl-scene {
	position: relative;
	min-height: 460px;
	perspective: 1100px;
	perspective-origin: 55% 40%;
}

.vbl-scene-floor {
	position: absolute;
	inset: 8% 4% 4%;
	transform-style: preserve-3d;
	transform: rotateX(58deg) rotateZ(-28deg) translate3d(0, 0, 0);
	transition: transform 0.35s ease-out;
}

.vbl-iso-deck {
	position: relative;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
}

.vbl-iso-slab {
	position: absolute;
	left: 12%;
	width: 68%;
	height: 46%;
	border-radius: 10px;
	transform-style: preserve-3d;
	box-shadow:
		0 18px 0 rgba(0, 0, 0, 0.35),
		0 28px 40px rgba(0, 0, 0, 0.28);
	padding: 1.1rem 1.2rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	animation: vbl-slab-lift 5.5s ease-in-out infinite;
}

.vbl-iso-slab-back {
	top: 2%;
	background: linear-gradient(145deg, #2a3442, #1c242e);
	border: 1px solid rgba(79, 158, 150, 0.35);
	animation-delay: 0s;
	z-index: 1;
}

.vbl-iso-slab-mid {
	top: 22%;
	left: 18%;
	width: 64%;
	background: linear-gradient(145deg, #314052, #22303c);
	border: 1px solid rgba(196, 120, 74, 0.4);
	animation-delay: -1.8s;
	z-index: 2;
}

.vbl-iso-slab-front {
	top: 42%;
	left: 24%;
	width: 60%;
	background: linear-gradient(145deg, #3a2a22, #241912);
	border: 1px solid rgba(230, 224, 212, 0.28);
	animation-delay: -3.4s;
	z-index: 3;
}

.vbl-iso-label {
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(230, 224, 212, 0.78);
	font-weight: 600;
}

.vbl-iso-bars {
	display: flex;
	align-items: flex-end;
	gap: 0.45rem;
	height: 42%;
}

.vbl-iso-bars i {
	display: block;
	width: 14%;
	background: linear-gradient(180deg, #4f9e96, #2f6b68);
	border-radius: 3px 3px 0 0;
	animation: vbl-bar 2.4s ease-in-out infinite;
}

.vbl-iso-bars i:nth-child(1) { height: 45%; }
.vbl-iso-bars i:nth-child(2) { height: 70%; animation-delay: 0.2s; }
.vbl-iso-bars i:nth-child(3) { height: 55%; animation-delay: 0.4s; }
.vbl-iso-bars i:nth-child(4) { height: 88%; animation-delay: 0.6s; }

.vbl-iso-dots {
	display: flex;
	gap: 0.55rem;
}

.vbl-iso-dots i {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #c4784a;
	box-shadow: 0 0 12px rgba(196, 120, 74, 0.45);
	animation: vbl-pulse 2s ease-in-out infinite;
}

.vbl-iso-dots i:nth-child(2) { animation-delay: 0.3s; background: #4f9e96; box-shadow: 0 0 12px rgba(79, 158, 150, 0.45); }
.vbl-iso-dots i:nth-child(3) { animation-delay: 0.6s; background: #e6e0d4; box-shadow: 0 0 12px rgba(230, 224, 212, 0.35); }

.vbl-iso-code {
	height: 8px;
	width: 72%;
	border-radius: 4px;
	background: repeating-linear-gradient(
		90deg,
		rgba(230, 224, 212, 0.55) 0 18px,
		transparent 18px 26px,
		rgba(196, 120, 74, 0.7) 26px 40px,
		transparent 40px 48px
	);
	animation: vbl-code-shimmer 2.8s linear infinite;
	background-size: 120% 100%;
}

.vbl-iso-prism {
	position: absolute;
	top: 8%;
	right: 6%;
	width: 88px;
	height: 88px;
	transform-style: preserve-3d;
	transform: translateZ(48px) rotateX(-12deg);
	animation: vbl-prism-spin 12s linear infinite;
	z-index: 5;
}

.vbl-prism-face {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(230, 224, 212, 0.35);
}

.vbl-prism-top {
	background: rgba(79, 158, 150, 0.35);
	transform: rotateX(90deg) translateZ(44px);
}

.vbl-prism-left {
	background: rgba(196, 120, 74, 0.32);
	transform: rotateY(-90deg) translateZ(44px);
}

.vbl-prism-right {
	background: rgba(230, 224, 212, 0.12);
	transform: translateZ(44px);
}

.vbl-iso-wire {
	position: absolute;
	bottom: 8%;
	right: 4%;
	width: 42%;
	color: rgba(79, 158, 150, 0.85);
	transform: translateZ(24px);
	z-index: 4;
	filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.35));
}

.vbl-wire-draw {
	stroke-dasharray: 220;
	stroke-dashoffset: 220;
	animation: vbl-wire-draw 4.5s ease-in-out infinite;
}

.vbl-wire-delay { animation-delay: 0.6s; }
.vbl-wire-delay-2 { animation-delay: 1.2s; }
.vbl-wire-node { animation: vbl-pulse 2.2s ease-in-out infinite; }

.vbl-iso-pillar {
	position: absolute;
	width: 18px;
	border-radius: 4px;
	background: linear-gradient(180deg, rgba(230, 224, 212, 0.35), rgba(230, 224, 212, 0.08));
	box-shadow: 0 10px 0 rgba(0, 0, 0, 0.25);
	transform: translateZ(8px);
}

.vbl-iso-pillar-1 { left: 6%; top: 30%; height: 28%; }
.vbl-iso-pillar-2 { left: 4%; top: 48%; height: 22%; background: linear-gradient(180deg, rgba(196, 120, 74, 0.5), rgba(196, 120, 74, 0.12)); }
.vbl-iso-pillar-3 { right: 10%; top: 55%; height: 18%; background: linear-gradient(180deg, rgba(79, 158, 150, 0.55), rgba(79, 158, 150, 0.12)); }

@keyframes vbl-beam {
	0%, 100% { opacity: 0.25; transform: translateY(0); }
	50% { opacity: 0.7; transform: translateY(18px); }
}

@keyframes vbl-slab-lift {
	0%, 100% { transform: translateY(0) translateZ(0); }
	50% { transform: translateY(-6px) translateZ(10px); }
}

@keyframes vbl-prism-spin {
	to { transform: translateZ(48px) rotateX(-12deg) rotateY(360deg); }
}

@keyframes vbl-wire-draw {
	0% { stroke-dashoffset: 220; }
	45%, 70% { stroke-dashoffset: 0; }
	100% { stroke-dashoffset: -220; }
}

@keyframes vbl-code-shimmer {
	0% { background-position: 0 0; }
	100% { background-position: 120% 0; }
}

@keyframes vbl-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.55; transform: scale(1.08); }
}

/* Sections */
.vbl-section {
	padding: calc(var(--vbl-space) * 9) calc(var(--vbl-space) * 4);
}

.vbl-section-tint {
	background: linear-gradient(180deg, rgba(231, 239, 230, 0.75), rgba(243, 239, 230, 0.4));
}

.vbl-section-head {
	max-width: 640px;
	margin: 0 auto calc(var(--vbl-space) * 5);
	text-align: center;
}

.vbl-section-head h2,
.vbl-closing h2,
.vbl-account-head h1,
.vbl-auth-head h1 {
	font-family: var(--vbl-display);
	font-weight: 650;
	letter-spacing: -0.02em;
	margin: 0 0 calc(var(--vbl-space) * 1.5);
	font-size: clamp(1.7rem, 3vw, 2.4rem);
	line-height: 1.15;
}

.vbl-section-head p,
.vbl-closing > p {
	margin: 0;
	color: var(--vbl-muted);
	line-height: 1.65;
	font-size: 1.05rem;
}

.vbl-kicker {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--vbl-brass);
	margin: 0 0 calc(var(--vbl-space) * 1);
}

.vbl-flow {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 960px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: calc(var(--vbl-space) * 3);
	counter-reset: none;
}

.vbl-flow li {
	display: grid;
	gap: calc(var(--vbl-space) * 1);
	padding: 0;
	opacity: 0;
	transform: translateY(12px);
}

.vbl-flow li.is-in {
	animation: vbl-rise 0.55s ease forwards;
}

.vbl-flow-num {
	font-family: var(--vbl-display);
	font-size: 1.4rem;
	color: var(--vbl-forest);
}

.vbl-flow strong {
	font-size: 1.15rem;
}

.vbl-flow span:last-child {
	color: var(--vbl-muted);
	line-height: 1.55;
}

.vbl-agents {
	max-width: 1040px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: calc(var(--vbl-space) * 3);
}

.vbl-agents article {
	padding: calc(var(--vbl-space) * 0.5) 0;
	border-top: 2px solid var(--vbl-forest);
	opacity: 0;
	transform: translateY(12px);
}

.vbl-agents article.is-in {
	animation: vbl-rise 0.55s ease forwards;
}

.vbl-agents h3 {
	font-family: var(--vbl-display);
	font-size: 1.45rem;
	margin: 0 0 calc(var(--vbl-space) * 1.5);
}

.vbl-agents p:last-child {
	margin: 0;
	color: var(--vbl-muted);
	line-height: 1.6;
}

.vbl-pricing {
	max-width: 1040px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: calc(var(--vbl-space) * 2);
}

.vbl-plan {
	padding: calc(var(--vbl-space) * 3);
	border: 1px solid var(--vbl-line);
	border-radius: var(--vbl-radius);
	background: var(--vbl-panel);
	display: grid;
	gap: calc(var(--vbl-space) * 1.5);
	align-content: start;
}

.vbl-plan.is-featured {
	border-color: rgba(47, 107, 79, 0.45);
	background: linear-gradient(180deg, #fffdf8, #eef6ef);
}

.vbl-plan h3 {
	margin: 0;
	font-family: var(--vbl-display);
	font-size: 1.35rem;
}

.vbl-price {
	margin: 0;
	font-family: var(--vbl-display);
}

.vbl-price span {
	font-size: 2.4rem;
	font-weight: 650;
}

.vbl-price small {
	color: var(--vbl-muted);
	font-family: var(--vbl-sans);
	font-size: 0.95rem;
	margin-left: 0.25rem;
}

.vbl-plan-meta {
	margin: 0;
	color: var(--vbl-muted);
}

.vbl-faq {
	max-width: 720px;
	margin: 0 auto;
	display: grid;
	gap: calc(var(--vbl-space) * 1.5);
}

.vbl-faq details {
	border-bottom: 1px solid var(--vbl-line);
	padding-bottom: calc(var(--vbl-space) * 1.5);
}

.vbl-faq summary {
	cursor: pointer;
	font-weight: 600;
	min-height: 44px;
	display: flex;
	align-items: center;
	list-style: none;
}

.vbl-faq summary::-webkit-details-marker {
	display: none;
}

.vbl-faq p {
	color: var(--vbl-muted);
	line-height: 1.6;
	margin: calc(var(--vbl-space) * 1) 0 0;
}

.vbl-closing {
	text-align: center;
	padding: calc(var(--vbl-space) * 10) calc(var(--vbl-space) * 4);
	background:
		radial-gradient(700px 320px at 50% 0%, rgba(196, 120, 74, 0.16), transparent 60%),
		linear-gradient(180deg, #161c24 0%, #10151c 100%);
	color: #e6e0d4;
	border-top: 1px solid rgba(230, 224, 212, 0.08);
}

.vbl-closing .vbl-brand-mark {
	font-family: var(--vbl-display);
	font-weight: 700;
	letter-spacing: -0.02em;
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	margin: 0 0 calc(var(--vbl-space) * 2);
	color: #e6e0d4;
}

.vbl-closing h2 {
	color: #e6e0d4;
	max-width: 18ch;
	margin-left: auto;
	margin-right: auto;
}

.vbl-closing > p {
	color: rgba(230, 224, 212, 0.7) !important;
	max-width: 42ch;
	margin: 0 auto calc(var(--vbl-space) * 3);
}

.vbl-closing .vbl-hero-cta {
	justify-content: center;
}

.vbl-closing .vbl-btn-primary {
	background: linear-gradient(135deg, #d4895a, #c4784a);
	color: #1a120e;
	border-color: transparent;
}

.vbl-footer {
	padding: 0;
	border-top: 0;
	background: #0e1218;
	color: rgba(230, 224, 212, 0.78);
}

.vbl-footer-inner {
	width: min(1180px, 100%);
	margin: 0 auto;
	padding: calc(var(--vbl-space) * 7) calc(var(--vbl-space) * 4) calc(var(--vbl-space) * 5);
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 0.7fr));
	gap: calc(var(--vbl-space) * 4);
}

.vbl-footer-brand p {
	margin: 1rem 0 0;
	max-width: 34ch;
	line-height: 1.6;
	color: rgba(230, 224, 212, 0.55);
	font-size: 0.95rem;
}

.vbl-footer-logo {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.75rem;
	text-decoration: none;
	color: #e6e0d4;
}

.vbl-footer-logo strong {
	display: block;
	font-family: var(--vbl-display);
	font-size: 1.2rem;
	font-weight: 650;
	letter-spacing: -0.01em;
}

.vbl-footer-logo small {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(230, 224, 212, 0.45);
}

.vbl-footer-mark {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	flex: 0 0 auto;
	background:
		linear-gradient(145deg, rgba(196, 120, 74, 0.85), rgba(79, 158, 150, 0.55));
	box-shadow: inset 0 0 0 1px rgba(230, 224, 212, 0.2);
	position: relative;
}

.vbl-footer-mark::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1.5px solid rgba(14, 18, 24, 0.55);
	transform: rotate(45deg);
}

.vbl-footer-col {
	display: grid;
	align-content: start;
	gap: 0.55rem;
}

.vbl-footer-col h3 {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(230, 224, 212, 0.42);
	font-weight: 600;
}

.vbl-footer-col a {
	color: rgba(230, 224, 212, 0.78);
	text-decoration: none;
	font-size: 0.95rem;
	font-weight: 500;
	transition: color 0.15s ease;
}

.vbl-footer-col a:hover {
	color: #c4784a;
}

.vbl-footer-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	width: min(1180px, 100%);
	margin: 0 auto;
	padding: calc(var(--vbl-space) * 2.5) calc(var(--vbl-space) * 4) calc(var(--vbl-space) * 4);
	border-top: 1px solid rgba(230, 224, 212, 0.08);
}

.vbl-footer-bar .vbl-copy {
	margin: 0;
	color: rgba(230, 224, 212, 0.4);
}

.vbl-footer-bar-links {
	display: flex;
	gap: 1.25rem;
}

.vbl-footer-bar-links a {
	color: rgba(230, 224, 212, 0.5);
	text-decoration: none;
	font-size: 0.9rem;
}

.vbl-footer-bar-links a:hover {
	color: #e6e0d4;
}

.vbl-footer p {
	margin: 0.35rem 0 0;
}

.vbl-footer-links {
	display: none;
}

.vbl-copy {
	font-size: 0.9rem;
	color: var(--vbl-muted);
}

/* Auth */
.vbl-auth {
	min-height: 100vh;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 42vw);
	position: relative;
}

.vbl-auth-brand {
	position: absolute;
	top: calc(var(--vbl-space) * 3);
	left: calc(var(--vbl-space) * 4);
	z-index: 2;
}

.vbl-auth-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: calc(var(--vbl-space) * 8) calc(var(--vbl-space) * 4);
	max-width: 480px;
	width: 100%;
	margin: 0 auto;
	animation: vbl-rise 0.45s ease both;
}

.vbl-auth-head p {
	color: var(--vbl-muted);
	margin: 0;
	line-height: 1.55;
}

.vbl-auth-form {
	display: grid;
	gap: calc(var(--vbl-space) * 2);
	margin-top: calc(var(--vbl-space) * 3);
}

.vbl-auth-form label {
	display: grid;
	gap: calc(var(--vbl-space) * 1);
	font-size: 0.92rem;
	font-weight: 500;
}

.vbl-auth-form input[type="text"],
.vbl-auth-form input[type="email"],
.vbl-auth-form input[type="password"] {
	width: 100%;
	min-height: 48px;
	border-radius: 12px;
	border: 1px solid var(--vbl-line);
	background: var(--vbl-panel);
	padding: 0.75rem 0.9rem;
	font: inherit;
	color: var(--vbl-ink);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.vbl-auth-form input:focus {
	outline: none;
	border-color: rgba(47, 107, 79, 0.55);
	box-shadow: 0 0 0 3px rgba(47, 107, 79, 0.15);
}

.vbl-auth-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	font-size: 0.92rem;
}

.vbl-check {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	grid-template-columns: none !important;
	font-weight: 400 !important;
}

.vbl-auth-switch {
	margin-top: calc(var(--vbl-space) * 3);
	color: var(--vbl-muted);
}

.vbl-auth-aside {
	background-image:
		linear-gradient(160deg, rgba(31, 74, 54, 0.72), rgba(28, 42, 34, 0.55)),
		url("https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1400&q=80");
	background-size: cover;
	background-position: center;
	animation: vbl-kenburns 20s ease-out forwards;
}

.vbl-auth-aside-alt {
	background-image:
		linear-gradient(160deg, rgba(31, 74, 54, 0.7), rgba(176, 138, 46, 0.28)),
		url("https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=1400&q=80");
}

/* Account */
.vbl-account-main {
	max-width: 960px;
	margin: 0 auto;
	padding: calc(var(--vbl-space) * 5) calc(var(--vbl-space) * 4) calc(var(--vbl-space) * 8);
}

.vbl-account-head {
	margin-bottom: calc(var(--vbl-space) * 4);
}

.vbl-account-head p {
	color: var(--vbl-muted);
	margin: 0.25rem 0 0;
}

.vbl-account-grid {
	display: grid;
	gap: calc(var(--vbl-space) * 2);
}

.vbl-account-block {
	border: 1px solid var(--vbl-line);
	border-radius: var(--vbl-radius);
	background: var(--vbl-panel);
	padding: calc(var(--vbl-space) * 3);
}

.vbl-account-block h2 {
	font-family: var(--vbl-display);
	margin: 0 0 calc(var(--vbl-space) * 1.5);
	font-size: 1.35rem;
}

.vbl-account-block ul {
	margin: 0 0 calc(var(--vbl-space) * 2);
	padding-left: 1.1rem;
	color: var(--vbl-muted);
	line-height: 1.6;
}

.vbl-muted {
	color: var(--vbl-muted);
}

/* Flash */
.vbl-flash {
	border-radius: 12px;
	padding: 0.85rem 1rem;
	margin: calc(var(--vbl-space) * 2) calc(var(--vbl-space) * 4) 0;
	font-weight: 500;
	animation: vbl-rise 0.35s ease both;
}

.vbl-auth-panel .vbl-flash,
.vbl-account-main .vbl-flash {
	margin: 0 0 calc(var(--vbl-space) * 2);
}

.vbl-flash-success,
.vbl-flash-info {
	background: rgba(47, 107, 79, 0.12);
	color: var(--vbl-ok);
	border: 1px solid rgba(47, 107, 79, 0.25);
}

.vbl-flash-error {
	background: rgba(155, 59, 47, 0.1);
	color: var(--vbl-danger);
	border: 1px solid rgba(155, 59, 47, 0.22);
}

@keyframes vbl-rise {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes vbl-kenburns {
	from { transform: scale(1.04); }
	to { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.vbl-hero-media,
	.vbl-auth-aside,
	.vbl-flow li,
	.vbl-agents article,
	.vbl-hero-copy,
	.vbl-auth-panel,
	.vbl-flash {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

@media (max-width: 960px) {
	.vbl-nav-links {
		display: none;
	}

	.vbl-menu-toggle {
		display: inline-flex;
	}

	.vbl-nav-actions .vbl-link {
		display: none;
	}

	.vbl-flow,
	.vbl-agents,
	.vbl-pricing {
		grid-template-columns: 1fr;
	}

	.vbl-auth {
		grid-template-columns: 1fr;
	}

	.vbl-auth-aside {
		min-height: 220px;
		order: -1;
	}

	.vbl-auth-brand {
		color: #f6f3ea;
		top: calc(var(--vbl-space) * 2);
		left: calc(var(--vbl-space) * 2);
	}
}

@media (max-width: 640px) {
	.vbl-hero {
		min-height: 86vh;
		padding-bottom: calc(var(--vbl-space) * 5);
	}

	.vbl-section {
		padding: calc(var(--vbl-space) * 6) calc(var(--vbl-space) * 2.5);
	}

	.vbl-nav {
		padding-inline: calc(var(--vbl-space) * 2.5);
	}
}

/* ===== Long landing + animated SVG icons ===== */
.vbl-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
}
.vbl-logo-ico { display: inline-flex; }
.vbl-ico {
	width: 56px;
	height: 56px;
	display: block;
	overflow: visible;
}
.vbl-ico-sm { width: 28px; height: 28px; }
.vbl-ico-md { width: 44px; height: 44px; }
.vbl-ico-lg { width: 72px; height: 72px; margin-bottom: 0.75rem; }

.vbl-section-ico {
	display: flex;
	justify-content: center;
	margin-bottom: 1rem;
}
.vbl-section-ico .vbl-ico { width: 64px; height: 64px; }

.vbl-hero-floaters {
	display: none;
}
.vbl-floater {
	display: none;
}

.vbl-marquee {
	overflow: hidden;
	padding: 1.25rem 0;
	background: linear-gradient(90deg, rgba(47,107,79,0.08), rgba(244,185,66,0.12), rgba(76,139,245,0.1));
	border-block: 1px solid var(--vbl-line);
}
.vbl-marquee-track {
	display: flex;
	gap: 1.5rem;
	width: max-content;
	animation: vbl-marquee 28s linear infinite;
}
.vbl-marquee-item {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 18px;
	background: var(--vbl-panel);
	border: 1px solid var(--vbl-line);
}

.vbl-flow-ico {
	display: block;
	margin-bottom: 0.5rem;
}
.vbl-flow-ico .vbl-ico { width: 52px; height: 52px; }

.vbl-cat-showcase {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
}
.vbl-cat-tile {
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--vbl-line) !important;
	border-radius: 18px !important;
	background: var(--vbl-panel) !important;
	opacity: 0;
	transform: translateY(16px);
	transition: transform 0.2s ease, border-color 0.2s ease;
	overflow: hidden;
	box-sizing: border-box !important;
	min-height: 220px;
}
.vbl-cat-tile-inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 0.65rem !important;
	padding: 28px 24px 26px !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	height: 100%;
	width: 100%;
}
.vbl-cat-tile-ico {
	display: grid !important;
	place-items: center !important;
	width: 64px !important;
	height: 64px !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	flex-shrink: 0 !important;
	border-radius: 14px;
	background: rgba(47, 107, 79, 0.06);
}
.vbl-cat-tile-ico .vbl-ico,
.vbl-cat-tile .vbl-ico {
	width: 44px !important;
	height: 44px !important;
	margin: 0 !important;
	display: block !important;
}
.vbl-cat-tile.is-in {
	animation: vbl-rise 0.5s ease forwards;
	animation-delay: calc(var(--d, 0) * 0.06s);
}
.vbl-cat-tile:hover {
	transform: translateY(-3px);
	border-color: rgba(47, 107, 79, 0.4) !important;
}
.vbl-cat-tile h3 {
	font-family: var(--vbl-display);
	font-size: 1.15rem;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.3;
	color: var(--vbl-ink);
}
.vbl-cat-tile p {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--vbl-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.vbl-agents-rich article {
	padding: 1.25rem 0;
}
.vbl-mini-list {
	margin: 0.85rem 0 0;
	padding-left: 1.1rem;
	color: var(--vbl-muted);
	line-height: 1.55;
	font-size: 0.92rem;
}

.vbl-section-dark {
	background:
		radial-gradient(700px 300px at 20% 0%, rgba(76,139,245,0.18), transparent 55%),
		radial-gradient(600px 280px at 90% 40%, rgba(232,93,76,0.16), transparent 50%),
		linear-gradient(180deg, #1c2a22, #15201a);
	color: #f6f3ea;
}
.vbl-section-head-light h2 { color: #f6f3ea; }
.vbl-section-head-light p { color: rgba(246,243,234,0.78); }

.vbl-pipeline {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.75rem 0.5rem;
}
.vbl-pipe-step {
	min-width: 120px;
	text-align: center;
	padding: 1rem 0.75rem;
	border-radius: 16px;
	background: rgba(255,253,248,0.08);
	border: 1px solid rgba(255,253,248,0.14);
	opacity: 0;
	transform: translateY(12px);
}
.vbl-pipe-step.is-in { animation: vbl-rise 0.45s ease forwards; }
.vbl-pipe-step strong {
	display: block;
	margin-top: 0.55rem;
	font-size: 0.92rem;
}
.vbl-pipe-arrow {
	width: 28px;
	height: 3px;
	border-radius: 99px;
	background: linear-gradient(90deg, #f4b942, #e85d4c, #4c8bf5);
	animation: vbl-shimmer 2.2s linear infinite;
	background-size: 200% 100%;
}

.vbl-audience {
	max-width: 1040px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}
.vbl-audience article {
	padding: 1.25rem;
	border-top: 3px solid var(--vbl-forest);
	opacity: 0;
	transform: translateY(14px);
}
.vbl-audience article.is-in { animation: vbl-rise 0.5s ease forwards; }
.vbl-audience h3 {
	font-family: var(--vbl-display);
	margin: 0.65rem 0 0.45rem;
}
.vbl-audience p { margin: 0; color: var(--vbl-muted); line-height: 1.6; }

.vbl-proof-grid {
	max-width: 1040px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.vbl-proof {
	text-align: center;
	padding: 1.25rem 0.75rem;
	border: 1px solid var(--vbl-line);
	border-radius: 16px;
	background: var(--vbl-panel);
	opacity: 0;
	transform: translateY(12px);
}
.vbl-proof.is-in { animation: vbl-rise 0.5s ease forwards; }
.vbl-proof strong {
	display: block;
	margin: 0.55rem 0 0.35rem;
	font-family: var(--vbl-display);
}
.vbl-proof span { color: var(--vbl-muted); font-size: 0.9rem; line-height: 1.45; }

.vbl-plan .vbl-ico {
	margin-bottom: 0.5rem;
}

.vbl-closing-icos {
	display: none;
}

.vbl-reveal { opacity: 0; transform: translateY(14px); }
.vbl-reveal.is-in { animation: vbl-rise 0.55s ease forwards; }

/* SVG motion primitives */
.vbl-spin-slow { transform-origin: center; animation: vbl-spin 6s linear infinite; }
.vbl-spin-rev { transform-origin: center; animation: vbl-spin 5s linear infinite reverse; }
.vbl-pulse { transform-origin: center; animation: vbl-pulse 1.8s ease-in-out infinite; }
.vbl-bounce { transform-origin: center; animation: vbl-bounce 1.4s ease-in-out infinite; }
.vbl-bounce-delay { transform-origin: center; animation: vbl-bounce 1.4s ease-in-out 0.2s infinite; }
.vbl-float { transform-origin: center; animation: vbl-float 3s ease-in-out infinite; }
.vbl-blink { animation: vbl-blink 1.6s ease-in-out infinite; }
.vbl-blink-delay { animation: vbl-blink 1.6s ease-in-out 0.4s infinite; }
.vbl-wiggle { transform-origin: center; animation: vbl-wiggle 2.4s ease-in-out infinite; }
.vbl-wave { animation: vbl-wave 2s ease-in-out infinite; }
.vbl-draw { stroke-dasharray: 120; stroke-dashoffset: 120; animation: vbl-draw 2.8s ease forwards infinite; }
.vbl-flap { transform-origin: 32px 18px; animation: vbl-flap 2.2s ease-in-out infinite; }
.vbl-orbit { transform-origin: 32px 32px; animation: vbl-orbit 3.5s ease-in-out infinite; }
.vbl-orbit-delay { transform-origin: 32px 32px; animation: vbl-orbit 3.5s ease-in-out 0.4s infinite; }
.vbl-glow-box { animation: vbl-glow 2.5s ease-in-out infinite; }
.vbl-scan { animation: vbl-scan 2s linear infinite; }
.vbl-rise-bar { transform-origin: bottom; animation: vbl-bar 1.8s ease-in-out infinite; }
.vbl-rise-bar-2 { transform-origin: bottom; animation: vbl-bar 1.8s ease-in-out 0.15s infinite; }
.vbl-rise-bar-3 { transform-origin: bottom; animation: vbl-bar 1.8s ease-in-out 0.3s infinite; }
.vbl-flicker { animation: vbl-flicker 0.9s ease-in-out infinite; }
.vbl-flicker-delay { animation: vbl-flicker 0.9s ease-in-out 0.2s infinite; }
.vbl-twinkle { transform-origin: center; animation: vbl-twinkle 2.4s ease-in-out infinite; }

@keyframes vbl-spin { to { transform: rotate(360deg); } }
@keyframes vbl-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.18); opacity: 0.85; }
}
@keyframes vbl-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-5px); }
}
@keyframes vbl-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
@keyframes vbl-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.25; }
}
@keyframes vbl-wiggle {
	0%, 100% { transform: rotate(0deg); }
	25% { transform: rotate(-4deg); }
	75% { transform: rotate(4deg); }
}
@keyframes vbl-wave {
	0%, 100% { stroke-dashoffset: 0; opacity: 0.7; }
	50% { opacity: 1; }
}
@keyframes vbl-draw {
	0% { stroke-dashoffset: 120; }
	40%, 100% { stroke-dashoffset: 0; }
}
@keyframes vbl-flap {
	0%, 100% { transform: rotateX(0deg); }
	50% { transform: rotateX(28deg); }
}
@keyframes vbl-orbit {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(3px); }
}
@keyframes vbl-glow {
	0%, 100% { filter: brightness(1); }
	50% { filter: brightness(1.25); }
}
@keyframes vbl-scan {
	0% { transform: translateY(0); opacity: 0.4; }
	50% { transform: translateY(14px); opacity: 1; }
	100% { transform: translateY(22px); opacity: 0.35; }
}
@keyframes vbl-bar {
	0%, 100% { transform: scaleY(0.7); }
	50% { transform: scaleY(1); }
}
@keyframes vbl-flicker {
	0%, 100% { opacity: 0.55; transform: translateY(0); }
	50% { opacity: 1; transform: translateY(3px); }
}
@keyframes vbl-twinkle {
	0%, 100% { transform: scale(1) rotate(0deg); }
	50% { transform: scale(1.08) rotate(8deg); }
}
@keyframes vbl-drift {
	0%, 100% { transform: translateY(0) rotate(-2deg); }
	50% { transform: translateY(-14px) rotate(3deg); }
}
@keyframes vbl-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@keyframes vbl-shimmer {
	0% { background-position: 0% 50%; }
	100% { background-position: 200% 50%; }
}

@media (max-width: 960px) {
	.vbl-cat-showcase { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vbl-proof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vbl-audience { grid-template-columns: 1fr; }
	.vbl-hero-inner { grid-template-columns: 1fr; gap: 2rem; }
	.vbl-scene { min-height: 360px; order: -1; }
	.vbl-pipe-arrow { display: none; }
	.vbl-footer-inner {
		grid-template-columns: 1fr 1fr;
		gap: calc(var(--vbl-space) * 3);
	}
	.vbl-footer-brand {
		grid-column: 1 / -1;
	}
}
@media (max-width: 640px) {
	.vbl-cat-showcase,
	.vbl-proof-grid { grid-template-columns: 1fr; }
	.vbl-cat-tile { min-height: 0; }
	.vbl-cat-tile-inner { padding: 24px 20px !important; }
	.vbl-scene { min-height: 300px; }
	.vbl-iso-prism { width: 64px; height: 64px; }
	.vbl-footer-inner {
		grid-template-columns: 1fr;
	}
	.vbl-footer-bar {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vbl-marquee-track,
	.vbl-floater,
	.vbl-blob,
	.vbl-hero-beam,
	.vbl-iso-slab,
	.vbl-iso-prism,
	.vbl-wire-draw,
	.vbl-iso-code,
	.vbl-iso-bars i,
	.vbl-iso-dots i,
	.vbl-hero-ring,
	.vbl-hero-orbit,
	.vbl-orbit-ico .vbl-ico,
	.vbl-hero-center,
	.vbl-sat,
	.vbl-spin-slow,
	.vbl-spin-rev,
	.vbl-pulse,
	.vbl-bounce,
	.vbl-bounce-delay,
	.vbl-float,
	.vbl-blink,
	.vbl-blink-delay,
	.vbl-wiggle,
	.vbl-wave,
	.vbl-draw,
	.vbl-flap,
	.vbl-orbit,
	.vbl-orbit-delay,
	.vbl-glow-box,
	.vbl-scan,
	.vbl-rise-bar,
	.vbl-rise-bar-2,
	.vbl-rise-bar-3,
	.vbl-flicker,
	.vbl-flicker-delay,
	.vbl-twinkle,
	.vbl-pipe-arrow {
		animation: none !important;
	}
	.vbl-reveal,
	.vbl-cat-tile,
	.vbl-pipe-step,
	.vbl-audience article,
	.vbl-proof {
		opacity: 1 !important;
		transform: none !important;
	}
	.vbl-scene-floor {
		transition: none !important;
	}
}
