/* ═══════════════════════════════════════════════════════════════
   FOGER VAPE — V4 NeonLab Components (2026-05-10)
   提取自现网 fogervape.com inline CSS（35KB Block #17 + 4.7KB Block #19）
   修改:
     - :root 变量已搬到 tokens.css
     - 砍 3 个虚构 reviewer .fv-avatar-chloe/jax/leo
     - 9 个 stamp/tc/role 人名 selector 改风味维度: chloe→dessert, jax→ice, leo→punch
     - 加 1 个 .fv-avatar-lab Mascot (E1 方案)
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');
/* ========================================
   FOGER V4 NEON LAB — HOMEPAGE
   ======================================== */
/* Hide Elementor H1 container visually, keep for SEO */
.elementor-element-95e9af9 { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; }

/* Override Astra global colors on homepage */
body.page-id-56 {
  --ast-global-color-0: #2dd4bf !important;
  --ast-global-color-1: #0d9488 !important;
  --ast-global-color-2: #f1f5f9 !important;
  --ast-global-color-3: #94a3b8 !important;
  --ast-global-color-4: #050311 !important;
  --ast-global-color-5: #0c0a1a !important;
  --ast-global-color-6: #13111f !important;
  --ast-global-color-7: #f1f5f9 !important;
  --ast-global-color-8: #94a3b8 !important;
  background: var(--fv-dark) !important;
}
body.page-id-56 .site-content { background: var(--fv-dark) !important; }
body.page-id-56 #content { background: var(--fv-dark) !important; }

/* Mobile header dark */
body.page-id-56 .ast-mobile-popup-drawer.active .ast-mobile-popup-inner { background-color: var(--fv-dark) !important; }
body.page-id-56 .ast-mobile-header-wrap .ast-mobile-header-content { background-color: var(--fv-dark) !important; }
body.page-id-56 .ast-mobile-popup-inner .menu-link,
body.page-id-56 .ast-mobile-popup-inner .menu-text { color: var(--fv-ink-gray) !important; }
body.page-id-56 .ast-mobile-popup-inner .menu-link:hover .menu-text { color: var(--fv-teal) !important; }
body.page-id-56 .ast-mobile-popup-inner .sub-menu { background: var(--fv-dark-card) !important; border-color: var(--fv-dark-border) !important; }

/* ======== ASTRA HEADER → V4 DARK ======== */
body.page-id-56 .ast-above-header-bar { background: var(--fv-dark) !important; border-bottom: 1px solid var(--fv-dark-border) !important; }
body.page-id-56 .ast-above-header-bar,
body.page-id-56 .ast-above-header-bar * { color: var(--fv-ink-dim) !important; }
body.page-id-56 .ast-above-header-bar .fv-hl-teal,
body.page-id-56 .ast-above-header-bar span[style*="font-size"] { color: var(--fv-ink-gray) !important; }

body.page-id-56 .ast-primary-header-bar { background: rgba(12,10,26,0.92) !important; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid var(--fv-dark-border) !important; }
body.page-id-56 .ast-primary-header-bar .menu-link,
body.page-id-56 .ast-primary-header-bar .menu-text { color: var(--fv-ink-gray) !important; }
body.page-id-56 .ast-primary-header-bar .menu-link:hover,
body.page-id-56 .ast-primary-header-bar .menu-link:hover .menu-text { color: var(--fv-teal) !important; }
body.page-id-56 .ast-primary-header-bar .current-menu-item > .menu-link .menu-text { color: var(--fv-teal-bright) !important; }
body.page-id-56 .ast-primary-header-bar .sub-menu { background: var(--fv-dark-card) !important; border: 1px solid var(--fv-dark-border) !important; }
body.page-id-56 .ast-primary-header-bar .sub-menu .menu-link { color: var(--fv-ink-gray) !important; border-bottom-color: var(--fv-dark-border) !important; }
body.page-id-56 .ast-primary-header-bar .sub-menu .menu-link:hover { color: var(--fv-teal) !important; background: rgba(45,212,191,0.06) !important; }
body.page-id-56 .ast-primary-header-bar .ast-icon svg path { fill: var(--fv-ink-gray) !important; }
/* Cart / account icons */
body.page-id-56 .ast-header-woo-cart .ast-icon,
body.page-id-56 .ast-header-account-wrap { color: var(--fv-ink-gray) !important; }
body.page-id-56 .ast-header-woo-cart:hover .ast-icon { color: var(--fv-teal) !important; }
body.page-id-56 .ast-cart-menu-wrap .count { background: var(--fv-teal) !important; color: var(--fv-dark) !important; }
/* Override any inline green on header buttons */
body.page-id-56 .ast-primary-header-bar a[style*="27ae60"],
body.page-id-56 .ast-primary-header-bar a[style*="54B435"] { background: var(--fv-grad-hero) !important; background-size: 200% 200% !important; }

/* ======== ASTRA FOOTER → V4 DARK ======== */
body.page-id-56 footer.site-footer { background: #050311 !important; }
body.page-id-56 .site-primary-footer-wrap[data-section="section-primary-footer-builder"] { background-color: #050311 !important; background-image: none !important; border-top-color: rgba(255,255,255,0.06) !important; }
body.page-id-56 .site-below-footer-wrap[data-section="section-below-footer-builder"] { background-color: #030210 !important; background-image: none !important; }
body.page-id-56 footer.site-footer .widget_block,
body.page-id-56 footer.site-footer .widget-title,
body.page-id-56 footer.site-footer section.widget > *:first-child { color: var(--fv-ink-gray) !important; }
body.page-id-56 footer.site-footer p,
body.page-id-56 footer.site-footer li,
body.page-id-56 footer.site-footer span:not(.wpforms-submit) { color: var(--fv-ink-dim) !important; }
body.page-id-56 footer.site-footer a.menu-link,
body.page-id-56 footer.site-footer a:not(.wpforms-submit) { color: var(--fv-ink-dim) !important; }
body.page-id-56 footer.site-footer a.menu-link:hover,
body.page-id-56 footer.site-footer a:hover { color: var(--fv-teal) !important; }
body.page-id-56 footer.site-footer .widget_media_image img { filter: invert(1) brightness(1.8) !important; }
body.page-id-56 .site-below-footer-wrap p,
body.page-id-56 .site-below-footer-wrap a,
body.page-id-56 .site-below-footer-wrap span { color: var(--fv-ink-dim) !important; }
body.page-id-56 .site-below-footer-wrap a:hover { color: var(--fv-teal) !important; }
body.page-id-56 footer.site-footer input.search-field,
body.page-id-56 footer.site-footer input[type="email"] { background: var(--fv-dark-card) !important; border-color: var(--fv-dark-border) !important; color: var(--fv-ink-white) !important; }
body.page-id-56 footer.site-footer .wpforms-submit { background: var(--fv-teal) !important; color: var(--fv-dark) !important; border: none !important; }

.fv-hp4 *, .fv-hp4 *::before, .fv-hp4 *::after { box-sizing: border-box; }
.fv-hp4 { font-family: var(--fv-font-body); color: var(--fv-ink-white); line-height: 1.6; -webkit-font-smoothing: antialiased; }
.fv-hp4 a { color: var(--fv-teal); text-decoration: none; }
.fv-container { max-width: var(--fv-max-w); margin: 0 auto; padding: 0 24px; }

/* Keyframes */
@keyframes fv-float { 0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)} }
@keyframes fv-float2 { 0%,100%{transform:translateY(0) rotate(1deg)}50%{transform:translateY(-18px) rotate(-1deg)} }
@keyframes fv-shimmer { 0%{background-position:-200% 0}100%{background-position:200% 0} }
@keyframes fv-gradient-move { 0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%} }
@keyframes fv-pulse-dot { 0%,100%{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.5)} }
@keyframes fv-rotate { from{transform:rotate(0deg)}to{transform:rotate(360deg)} }
@keyframes fv-scale-in { from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)} }
@keyframes fv-grid-pulse { 0%,100%{opacity:0.03}50%{opacity:0.06} }

.fv-reveal { opacity:0; transform:translateY(30px); transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1); }
.fv-reveal.fv-visible { opacity:1; transform:translateY(0); }
.fv-reveal-d1 { transition-delay:.1s; }
.fv-reveal-d2 { transition-delay:.2s; }
.fv-reveal-d3 { transition-delay:.3s; }

/* Lab Grid Background */
.fv-lab-grid { position: relative; }
.fv-lab-grid::before {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(45,212,191,0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(45,212,191,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  animation: fv-grid-pulse 6s ease-in-out infinite;
  pointer-events: none;
}

/* ======== HERO ======== */
.fv-hero { background: var(--fv-dark); padding: 100px 0 80px; position: relative; overflow: hidden; }
.fv-hero-orb { position: absolute; border-radius: 50%; pointer-events: none; filter: blur(80px); }
.fv-orb-teal { width: 500px; height: 500px; background: rgba(45,212,191,0.08); top: -100px; right: -100px; }
.fv-orb-violet { width: 400px; height: 400px; background: rgba(168,85,247,0.06); bottom: -80px; left: -60px; }
.fv-hero-inner { max-width: var(--fv-max-w); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; position: relative; z-index: 1; }
.fv-hero-tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; background: rgba(45,212,191,0.1); border: 1px solid rgba(45,212,191,0.2); border-radius: var(--fv-r-full); font-family: var(--fv-font-mono); font-size: 12px; font-weight: 600; color: var(--fv-teal); margin-bottom: 28px; }
.fv-hero-tag::before { content: ''; width: 6px; height: 6px; background: var(--fv-teal); border-radius: 50%; animation: fv-pulse-dot 2s ease-in-out infinite; }
.fv-hero h2.fv-hero-title { font-family: var(--fv-font-display); font-size: 56px; font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; color: white; margin: 0 0 24px; }
.fv-hero h2.fv-hero-title .fv-grad-text { background: var(--fv-grad-hero); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.fv-puff-counter { font-family: var(--fv-font-mono); font-size: 56px; font-weight: 700; background: var(--fv-grad-hero); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; display: inline-block; letter-spacing: -0.02em; }
.fv-hero-desc { font-size: 17px; color: var(--fv-ink-gray); line-height: 1.7; margin-bottom: 36px; max-width: 460px; }
.fv-hero-desc strong { color: var(--fv-teal-bright); font-weight: 600; }
.fv-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Buttons */
.fv-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 30px; border-radius: var(--fv-r-full); font-size: 15px; font-weight: 700; font-family: var(--fv-font-display); transition: all .3s cubic-bezier(.22,1,.36,1); cursor: pointer; border: none; position: relative; overflow: hidden; }
.fv-btn-grad { background: var(--fv-grad-hero); background-size: 200% 200%; animation: fv-gradient-move 4s ease infinite; color: var(--fv-dark); }
.fv-btn-grad::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent); background-size: 200% 100%; animation: fv-shimmer 2.5s ease-in-out infinite; opacity: 0; transition: opacity .3s; }
.fv-btn-grad:hover { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(45,212,191,0.3), 0 8px 30px rgba(168,85,247,0.2); text-decoration: none; color: var(--fv-dark); }
.fv-btn-grad:hover::after { opacity: 1; }
.fv-btn-glass { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); color: white; backdrop-filter: blur(8px); }
.fv-btn-glass:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.2); transform: translateY(-3px); text-decoration: none; color: white; }
.fv-btn-outline { background: transparent; border: 2px solid var(--fv-teal); color: var(--fv-teal); }
.fv-btn-outline:hover { background: var(--fv-teal); color: var(--fv-dark); transform: translateY(-2px); box-shadow: 0 6px 20px var(--fv-teal-glow); text-decoration: none; }

/* Hero Visual — banner image right side */
.fv-hero-visual { display: flex; justify-content: center; align-items: center; position: relative; min-height: 420px; }
.fv-hero-img { position: relative; z-index: 2; animation: fv-float 5s ease-in-out infinite; transition: transform .4s cubic-bezier(.22,1,.36,1); }
.fv-hero-img:hover { transform: translateY(-8px) scale(1.02); }
.fv-hero-img img { max-width: 520px; width: 100%; height: auto; border-radius: var(--fv-r-xl); filter: drop-shadow(0 20px 60px rgba(0,0,0,0.4)); }
.fv-orbit-ring { position: absolute; width: 320px; height: 320px; border: 1px solid rgba(45,212,191,0.08); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); animation: fv-rotate 25s linear infinite; }
.fv-orbit-ring::before { content: ''; position: absolute; width: 10px; height: 10px; background: var(--fv-teal); border-radius: 50%; top: -5px; left: 50%; box-shadow: 0 0 12px var(--fv-teal); }
.fv-orbit-ring-2 { position: absolute; width: 380px; height: 380px; border: 1px solid rgba(168,85,247,0.06); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); animation: fv-rotate 40s linear infinite reverse; }
.fv-orbit-ring-2::before { content: ''; position: absolute; width: 8px; height: 8px; background: var(--fv-violet); border-radius: 50%; bottom: -4px; left: 50%; box-shadow: 0 0 10px var(--fv-violet); }

/* ======== TRUST BAR ======== */
.fv-trust { background: var(--fv-dark-card); border-top: 1px solid var(--fv-dark-border); border-bottom: 1px solid var(--fv-dark-border); padding: 22px 0; }
.fv-trust-inner { max-width: var(--fv-max-w); margin: 0 auto; padding: 0 24px; display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; }
.fv-trust-item { display: flex; align-items: center; gap: 10px; font-family: var(--fv-font-mono); font-size: 13px; font-weight: 500; color: var(--fv-ink-gray); transition: color .2s; }
.fv-trust-item:hover { color: var(--fv-teal); }
.fv-trust-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fv-teal); opacity: .6; }

/* ======== PRODUCTS ======== */
.fv-products { background: var(--fv-dark); padding: 96px 0; }
.fv-section-eyebrow { font-family: var(--fv-font-mono); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 8px; }
.fv-eyebrow-teal { color: var(--fv-teal); }
.fv-eyebrow-violet { color: var(--fv-violet-bright); }
.fv-section-title { font-family: var(--fv-font-display); font-size: 36px; font-weight: 700; color: white; letter-spacing: -0.02em; margin-bottom: 8px; }
.fv-section-subtitle { font-size: 16px; color: var(--fv-ink-gray); margin-bottom: 56px; }
.fv-products-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.fv-product-card { background: var(--fv-dark-card); border: 1px solid var(--fv-dark-border); border-radius: var(--fv-r-xl); padding: 28px 20px; transition: all .4s cubic-bezier(.22,1,.36,1); position: relative; overflow: hidden; display: flex; flex-direction: column; }
.fv-product-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; opacity: 0; transition: opacity .3s; }
.fv-pc-teal::before { background: var(--fv-grad-teal); }
.fv-pc-violet::before { background: var(--fv-grad-violet); }
.fv-product-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(0,0,0,0.4); border-color: var(--fv-dark-border-hover); }
.fv-product-card:hover::before { opacity: 1; }
.fv-product-badge { position: absolute; top: 20px; right: 20px; padding: 5px 12px; border-radius: var(--fv-r-full); font-family: var(--fv-font-mono); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.fv-badge-teal { background: rgba(45,212,191,0.12); color: var(--fv-teal); border: 1px solid rgba(45,212,191,0.2); }
.fv-badge-violet { background: rgba(168,85,247,0.12); color: var(--fv-violet-bright); border: 1px solid rgba(168,85,247,0.2); }
.fv-product-illus { width: 100%; height: 180px; border-radius: var(--fv-r-lg); margin-bottom: 20px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.fv-pi-teal { background: linear-gradient(135deg, rgba(45,212,191,0.06), rgba(6,182,212,0.04)); border: 1px solid rgba(45,212,191,0.08); }
.fv-pi-violet { background: linear-gradient(135deg, rgba(168,85,247,0.06), rgba(236,72,153,0.04)); border: 1px solid rgba(168,85,247,0.08); }
.fv-product-illus img { max-height: 160px; width: auto; object-fit: contain; filter: drop-shadow(0 8px 24px rgba(0,0,0,0.3)); }
.fv-product-card h3 { font-family: var(--fv-font-display); font-size: 20px; font-weight: 700; color: white; margin: 0 0 4px; }
.fv-product-tagline { font-size: 14px; color: var(--fv-ink-gray); margin: 0 0 24px; }
.fv-spec-table { width: 100%; margin-bottom: 28px; flex: 1; }
.fv-spec-row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--fv-dark-border); font-size: 14px; }
.fv-spec-row:last-child { border-bottom: none; }
.fv-spec-label { color: var(--fv-ink-dim); font-weight: 500; font-family: var(--fv-font-mono); font-size: 13px; }
.fv-spec-value { color: white; font-weight: 600; }
.fv-price-teal { font-size: 22px; font-weight: 700; font-family: var(--fv-font-mono); background: var(--fv-grad-teal); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.fv-price-violet { font-size: 22px; font-weight: 700; font-family: var(--fv-font-mono); background: var(--fv-grad-violet); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.fv-product-card .fv-btn { width: 100%; justify-content: center; }

/* ======== FLAVOR EXPLORER ======== */
.fv-flavors { background: var(--fv-dark-card); padding: 96px 0; position: relative; }
.fv-tab-input { position: absolute; opacity: 0; pointer-events: none; }
.fv-tab-labels { display: flex; justify-content: center; gap: 8px; margin-bottom: 40px; flex-wrap: wrap; }
.fv-tab-label { padding: 10px 22px; border-radius: var(--fv-r-full); font-family: var(--fv-font-mono); font-size: 13px; font-weight: 600; color: var(--fv-ink-gray); background: rgba(255,255,255,0.04); border: 1px solid var(--fv-dark-border); cursor: pointer; transition: all .3s; }
.fv-tab-label:hover { border-color: var(--fv-violet); color: var(--fv-violet-bright); transform: translateY(-2px); }
#fv-tab-all:checked ~ .fv-tab-labels label[for="fv-tab-all"],
#fv-tab-fruit:checked ~ .fv-tab-labels label[for="fv-tab-fruit"],
#fv-tab-ice:checked ~ .fv-tab-labels label[for="fv-tab-ice"],
#fv-tab-dessert:checked ~ .fv-tab-labels label[for="fv-tab-dessert"] { background: var(--fv-grad-violet); color: white; border-color: transparent; box-shadow: 0 4px 20px var(--fv-violet-glow); }
.fv-tab-panel { display: none; }
#fv-tab-all:checked ~ .fv-tab-panels .fv-panel-all,
#fv-tab-fruit:checked ~ .fv-tab-panels .fv-panel-fruit,
#fv-tab-ice:checked ~ .fv-tab-panels .fv-panel-ice,
#fv-tab-dessert:checked ~ .fv-tab-panels .fv-panel-dessert { display: grid; animation: fv-scale-in .4s cubic-bezier(.22,1,.36,1); }
.fv-flavor-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fv-flavor-card { border-radius: var(--fv-r-lg); padding: 20px 14px 16px; text-align: center; cursor: pointer; min-height: 140px; display: flex; flex-direction: column; justify-content: flex-end; transition: all .3s cubic-bezier(.22,1,.36,1); position: relative; overflow: hidden; }
.fv-flavor-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 50%); opacity: 0; transition: opacity .3s; }
.fv-flavor-card:hover { transform: translateY(-8px) scale(1.04); box-shadow: 0 16px 40px rgba(0,0,0,0.3); }
.fv-flavor-card:hover::before { opacity: 1; }
.fv-flavor-name { font-family: var(--fv-font-display); font-size: 14px; font-weight: 700; color: white; text-shadow: 0 2px 8px rgba(0,0,0,0.3); position: relative; }
.fv-lab-stamp { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; color: white; font-family: var(--fv-font-mono); border: 2px solid rgba(255,255,255,0.4); opacity: 0.7; transition: opacity .2s, transform .2s; }
.fv-flavor-card:hover .fv-lab-stamp { opacity: 1; transform: scale(1.15) rotate(-8deg); }
.fv-stamp-punch { background: rgba(245,158,11,0.7); }
.fv-stamp-dessert { background: rgba(236,72,153,0.7); }
.fv-stamp-ice { background: rgba(6,182,212,0.7); }
.fv-flavor-tag { font-family: var(--fv-font-mono); font-size: 10px; font-weight: 600; color: rgba(255,255,255,0.6); margin-top: 4px; position: relative; text-transform: uppercase; letter-spacing: 0.08em; }
.fv-fl-strawberry { background: linear-gradient(135deg, #f87171, #dc2626); }
.fv-fl-watermelon { background: linear-gradient(135deg, #fb923c, #ef4444); }
.fv-fl-mango { background: linear-gradient(135deg, #fbbf24, #f59e0b); }
.fv-fl-grape { background: linear-gradient(135deg, #a78bfa, #7c3aed); }
.fv-fl-blueberry { background: linear-gradient(135deg, #60a5fa, #3b82f6); }
.fv-fl-hawaiian { background: linear-gradient(135deg, #fb7185, #f97316); }
.fv-fl-mint { background: linear-gradient(135deg, #34d399, #059669); }
.fv-fl-coolmint { background: linear-gradient(135deg, #22d3ee, #0891b2); }
.fv-fl-bluerazz { background: linear-gradient(135deg, #818cf8, #4f46e5); }
.fv-fl-frozen { background: linear-gradient(135deg, #67e8f9, #06b6d4); }
.fv-fl-cupcake { background: linear-gradient(135deg, #f9a8d4, #ec4899); }
.fv-fl-vanilla { background: linear-gradient(135deg, #fde68a, #d97706); }
.fv-flavors-cta { text-align: center; margin-top: 40px; }
.fv-flavors-cta a { font-family: var(--fv-font-display); font-weight: 700; font-size: 15px; color: var(--fv-violet-bright); display: inline-flex; align-items: center; gap: 8px; padding: 12px 28px; border: 2px solid var(--fv-violet); border-radius: var(--fv-r-full); transition: all .3s; }
.fv-flavors-cta a:hover { background: var(--fv-violet); color: white; transform: translateY(-2px); box-shadow: 0 6px 24px var(--fv-violet-glow); text-decoration: none; }

/* ======== FLAVOR LAB TEAM ======== */
.fv-team { background: var(--fv-dark); padding: 96px 0; }
.fv-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fv-team-card { background: var(--fv-dark-card); border: 1px solid var(--fv-dark-border); border-radius: var(--fv-r-xl); padding: 40px 24px; text-align: center; transition: all .4s cubic-bezier(.22,1,.36,1); position: relative; overflow: hidden; }
.fv-team-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; opacity: 0; transition: opacity .3s; }
.fv-team-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(0,0,0,0.4); border-color: var(--fv-dark-border-hover); }
.fv-team-card:hover::after { opacity: 1; }
.fv-tc-punch::after { background: linear-gradient(90deg, #f59e0b, #d97706); }
.fv-tc-dessert::after { background: linear-gradient(90deg, #ec4899, #db2777); }
.fv-tc-ice::after { background: linear-gradient(90deg, #06b6d4, #0891b2); }
.fv-team-avatar { width: 80px; height: 80px; border-radius: 50%; margin: 0 auto 20px; display: flex; align-items: center; justify-content: center; font-size: 28px; font-weight: 700; font-family: var(--fv-font-mono); color: white; transition: transform .3s; }
.fv-team-card:hover .fv-team-avatar { transform: scale(1.1) rotate(-5deg); }
.fv-team-name { font-family: var(--fv-font-display); font-size: 20px; font-weight: 700; color: white; margin-bottom: 4px; }
.fv-team-role { font-family: var(--fv-font-mono); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 16px; }
.fv-role-punch { color: #fbbf24; }
.fv-role-dessert { color: #f472b6; }
.fv-role-ice { color: #22d3ee; }
.fv-team-radar { width: 120px; height: 120px; margin: 0 auto 16px; }
.fv-team-desc { font-size: 14px; color: var(--fv-ink-gray); line-height: 1.6; margin-bottom: 20px; }
.fv-team-link { font-family: var(--fv-font-display); font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; transition: gap .3s; }
.fv-team-link:hover { gap: 10px; text-decoration: none; }
.fv-tl-punch { color: #fbbf24; }
.fv-tl-dessert { color: #f472b6; }
.fv-tl-ice { color: #22d3ee; }

/* ======== HOW IT WORKS ======== */
.fv-how { background: var(--fv-dark-card); padding: 96px 0; position: relative; }
.fv-steps { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 16px; align-items: start; }
.fv-step { background: rgba(255,255,255,0.03); border: 1px solid var(--fv-dark-border); border-radius: var(--fv-r-xl); padding: 36px 24px; text-align: center; transition: all .3s; }
.fv-step:hover { background: rgba(255,255,255,0.06); border-color: var(--fv-dark-border-hover); transform: translateY(-4px); }
.fv-step-num { width: 48px; height: 48px; border-radius: 50%; background: var(--fv-grad-hero); background-size: 200% 200%; animation: fv-gradient-move 4s ease infinite; display: flex; align-items: center; justify-content: center; margin: 0 auto 18px; font-family: var(--fv-font-mono); font-size: 18px; font-weight: 700; color: var(--fv-dark); box-shadow: 0 4px 20px rgba(45,212,191,0.2); }
.fv-step h3 { font-family: var(--fv-font-display); font-size: 18px; font-weight: 700; color: white; margin: 0 0 8px; }
.fv-step p { font-size: 14px; color: var(--fv-ink-gray); line-height: 1.6; margin: 0; }
.fv-step-arrow { display: flex; align-items: center; justify-content: center; color: var(--fv-ink-dim); font-size: 20px; padding-top: 40px; }

/* ======== REVIEWS ======== */
.fv-reviews { background: var(--fv-dark); padding: 96px 0; }
.fv-reviews-hero { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 48px; }
.fv-rating-big { font-family: var(--fv-font-mono); font-size: 64px; font-weight: 700; background: var(--fv-grad-hero); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; line-height: 1; }
.fv-star-row { display: flex; gap: 3px; color: #fbbf24; font-size: 22px; }
.fv-rating-count { font-family: var(--fv-font-mono); font-size: 13px; color: var(--fv-ink-dim); }
.fv-reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fv-review-card { background: var(--fv-dark-card); border: 1px solid var(--fv-dark-border); border-radius: var(--fv-r-xl); padding: 28px 24px; transition: all .3s; }
.fv-review-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,0.3); border-color: var(--fv-dark-border-hover); }
.fv-review-stars { display: flex; gap: 2px; margin-bottom: 14px; color: #fbbf24; font-size: 14px; }
.fv-review-text { font-size: 14px; color: var(--fv-ink-gray); line-height: 1.7; margin-bottom: 18px; font-style: italic; }
.fv-review-author { display: flex; align-items: center; justify-content: space-between; }
.fv-review-name { font-family: var(--fv-font-display); font-size: 14px; font-weight: 700; color: white; }
.fv-review-product { font-family: var(--fv-font-mono); font-size: 11px; color: var(--fv-ink-dim); margin-top: 2px; }
.fv-review-verified { font-family: var(--fv-font-mono); font-size: 10px; font-weight: 700; color: var(--fv-teal); background: rgba(45,212,191,0.1); padding: 4px 10px; border-radius: var(--fv-r-full); border: 1px solid rgba(45,212,191,0.2); }

/* ======== BOTTOM CTA ======== */
.fv-bottom-cta { background: var(--fv-dark-card); padding: 80px 0; text-align: center; position: relative; overflow: hidden; }
.fv-bottom-cta::before { content: ''; position: absolute; width: 600px; height: 600px; background: radial-gradient(circle, rgba(45,212,191,0.08) 0%, transparent 60%); top: -200px; left: 50%; transform: translateX(-50%); border-radius: 50%; }
.fv-bottom-cta::after { content: ''; position: absolute; width: 400px; height: 400px; background: radial-gradient(circle, rgba(168,85,247,0.06) 0%, transparent 60%); bottom: -150px; right: -50px; border-radius: 50%; }
.fv-bottom-cta h2 { font-family: var(--fv-font-display); font-size: 36px; font-weight: 700; color: white; margin: 0 0 12px; position: relative; }
.fv-bottom-cta p { font-size: 18px; color: var(--fv-ink-gray); margin: 0 0 32px; position: relative; }
.fv-bottom-cta .fv-btn { position: relative; font-size: 17px; padding: 16px 36px; }

/* ======== RESPONSIVE ======== */
@media (max-width: 768px) {
  .fv-hero h2.fv-hero-title { font-size: 36px; }
  .fv-puff-counter { font-size: 36px; }
  .fv-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .fv-hero { padding-top: 140px !important; }
  .fv-hero-visual { order: -1; min-height: auto; }
  .fv-hero-img img { max-width: 90%; margin: 0 auto; display: block; }
  .fv-products-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .fv-product-card { padding: 20px 16px; }
  .fv-product-card h3 { font-size: 16px; min-height: 40px; display: flex; align-items: center; }
  .fv-product-illus { height: 140px; }
  .fv-product-illus img { max-height: 120px; }
  .fv-spec-row { padding: 8px 0; font-size: 13px; }
  .fv-spec-label { font-size: 11px; }
  .fv-price-teal, .fv-price-violet { font-size: 18px; }
  .fv-product-badge { font-size: 9px; padding: 3px 8px; top: 12px; right: 12px; }
  .fv-product-card .fv-btn { font-size: 13px; padding: 10px 16px; }
  .fv-flavor-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .fv-team-grid { grid-template-columns: 1fr; }
  .fv-steps { grid-template-columns: 1fr !important; gap: 12px; }
  .fv-step-arrow { display: none !important; }
  .fv-reviews-grid { grid-template-columns: 1fr; }
  .fv-section-title { font-size: 28px; }
  /* Footer mobile: single column stack */
  body.page-id-56 .site-primary-footer-inner-wrap.ast-builder-grid-row { grid-template-columns: 1fr !important; }
  body.page-id-56 .site-primary-footer-inner-wrap .site-footer-section { padding: 20px 0 !important; border-bottom: 1px solid rgba(255,255,255,0.04); }
  body.page-id-56 footer.site-footer .cf-turnstile,
  body.page-id-56 footer.site-footer iframe[src*="turnstile"] { transform: scale(0.85); transform-origin: left top; }
  .fv-trust-inner { gap: 20px; }
  .fv-reviews-hero { flex-direction: column; gap: 12px; }
  .fv-orbit-ring, .fv-orbit-ring-2 { display: none; }
}
@media (max-width: 480px) {
  .fv-hero h2.fv-hero-title { font-size: 28px; }
  .fv-hero-actions { flex-direction: column; }
  .fv-hero-actions .fv-btn { width: 100%; justify-content: center; }
}

/* ─── Block #19 补丁 ─── */
#fv-chat-launcher{position:fixed;bottom:20px;right:20px;width:60px;height:60px;background:#27ae60;border-radius:50%;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;z-index:99999;transition:transform .2s}
    #fv-chat-launcher:hover{transform:scale(1.1)}
    #fv-chat-launcher svg{width:28px;height:28px;fill:#fff}
    #fv-chat-bubble{position:fixed;bottom:88px;right:20px;background:#fff;color:#333;padding:12px 18px;border-radius:12px 12px 4px 12px;box-shadow:0 4px 15px rgba(0,0,0,.15);z-index:99998;font-family:'Helvetica Neue',Arial,sans-serif;font-size:14px;line-height:1.4;max-width:220px;animation:fv-pop .4s ease-out}
    #fv-chat-bubble::after{content:'';position:absolute;bottom:-8px;right:24px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #fff}
    #fv-chat-bubble .fv-bubble-close{position:absolute;top:4px;right:8px;background:none;border:none;color:#999;font-size:16px;cursor:pointer;padding:0;line-height:1}
    #fv-chat-bubble strong{color:#27ae60}
    @keyframes fv-pop{0%{opacity:0;transform:translateY(10px) scale(.9)}100%{opacity:1;transform:translateY(0) scale(1)}}
    #fv-chat-pulse{position:absolute;top:-2px;right:-2px;width:14px;height:14px;background:#d91212;border-radius:50%;border:2px solid #27ae60}
    #fv-chat-pulse::after{content:'';position:absolute;top:-3px;left:-3px;width:14px;height:14px;background:#d91212;border-radius:50%;animation:fv-ping 1.5s infinite}
    @keyframes fv-ping{0%{transform:scale(1);opacity:.8}100%{transform:scale(2);opacity:0}}
    #fv-chat-box{position:fixed;bottom:90px;right:20px;width:370px;max-height:520px;background:#fff;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.18);z-index:99999;display:none;flex-direction:column;overflow:hidden;font-family:'Helvetica Neue',Arial,sans-serif}
    #fv-chat-header{background:linear-gradient(135deg,#2D5016,#27ae60);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:12px}
    #fv-chat-header .fv-avatar{width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#27ae60;font-weight:700}
    #fv-chat-header .fv-agent-info h4{margin:0;font-size:15px;font-weight:600}
    #fv-chat-header .fv-agent-info span{font-size:12px;opacity:.85}
    #fv-chat-close{margin-left:auto;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;padding:0 4px}
    #fv-chat-contact{padding:24px 18px;display:flex;flex-direction:column;gap:12px}
    #fv-chat-contact h3{margin:0;font-size:15px;color:#333}
    #fv-chat-contact p{margin:0;font-size:13px;color:#666;line-height:1.4}
    #fv-chat-contact input{padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border .2s}
    #fv-chat-contact input:focus{border-color:#27ae60}
    #fv-chat-contact button{padding:10px;background:#27ae60;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}
    #fv-chat-contact button:hover{background:#219a52}
    #fv-chat-contact .fv-err{color:#d91212;font-size:12px;display:none}
    #fv-chat-messages{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:10px;min-height:280px;max-height:340px}
    .fv-msg{max-width:82%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.45;word-wrap:break-word}
    .fv-msg.agent{background:#f0fdf4;color:#1a3a0a;align-self:flex-start;border-bottom-left-radius:4px}
    .fv-msg.customer{background:#27ae60;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
    .fv-typing{align-self:flex-start;padding:10px 16px;background:#f0fdf4;border-radius:14px;display:none}
    .fv-typing span{display:inline-block;width:7px;height:7px;background:#27ae60;border-radius:50%;margin:0 2px;animation:fv-bounce 1.2s infinite}
    .fv-typing span:nth-child(2){animation-delay:.2s}
    .fv-typing span:nth-child(3){animation-delay:.4s}
    @keyframes fv-bounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}
    #fv-chat-input{display:flex;padding:10px 14px;border-top:1px solid #eee;gap:8px}
    #fv-chat-input input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:20px;font-size:13.5px;outline:none}
    #fv-chat-input input:focus{border-color:#27ae60}
    #fv-chat-input button{width:38px;height:38px;background:#27ae60;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
    #fv-chat-input button svg{width:18px;height:18px;fill:#fff}
    @media(max-width:480px){#fv-chat-box{width:calc(100vw - 20px);right:10px;bottom:80px;max-height:70vh}}

/* ─── Foger Flavor Lab Mascot (E1 方案 · 替代 chloe/jax/leo) ─── */
.fv-avatar-lab {
  background: linear-gradient(135deg, var(--fv-teal), var(--fv-violet));
  position: relative;
  overflow: hidden;
}
.fv-avatar-lab::before {
  content: 'F';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fv-font-display);
  font-weight: 800;
  font-size: 48px;
  color: var(--fv-dark);
  letter-spacing: -0.03em;
}
.fv-avatar-lab.fv-avatar-flask::before {
  content: '⚗';
  font-size: 56px;
  color: var(--fv-dark);
}

/* ─── Lab Curator role label (代码风格) ─── */
.fv-lab-role {
  font-family: var(--fv-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fv-teal);
}
.fv-lab-role::before { content: '// '; opacity: 0.6; }


/* ═══════════════════════════════════════════════════════════════
   V4 NeonLab — Site Header (顶导)
   2026-05-10 重建 · 现网用 Astra 外壳，本站独立 fv-site-header
   ═══════════════════════════════════════════════════════════════ */

.fv-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(12, 10, 26, 0.85);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--fv-dark-border);
}
.fv-header-inner {
  max-width: var(--fv-max-w);
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.fv-brand {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-family: var(--fv-font-display);
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--fv-ink-white);
  flex: 0 0 auto;
}
.fv-brand-mark { background: var(--fv-grad-hero); -webkit-background-clip: text; background-clip: text; color: transparent; }
.fv-brand-sub  { font-family: var(--fv-font-mono); font-size: 11px; font-weight: 500; color: var(--fv-ink-gray); text-transform: uppercase; letter-spacing: 0.18em; }

.fv-main-nav { flex: 1 1 auto; min-width: 0; }
.fv-main-nav ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: nowrap; gap: 4px; overflow-x: auto;
  scrollbar-width: none;
}
.fv-main-nav ul::-webkit-scrollbar { display: none; }
.fv-main-nav a {
  display: inline-block;
  padding: 8px 12px;
  font-family: var(--fv-font-mono);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fv-ink-gray);
  white-space: nowrap;
  border-radius: var(--fv-r-md);
  transition: color .15s ease, background .15s ease;
}
.fv-main-nav a:hover {
  color: var(--fv-teal);
  background: var(--fv-teal-glow);
}

.fv-header-actions { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.fv-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--fv-r-md);
  color: var(--fv-ink-gray);
  transition: color .15s, background .15s;
}
.fv-icon-btn:hover { color: var(--fv-teal); background: var(--fv-dark-card); }

@media (max-width: 880px) {
  .fv-header-inner { padding: 12px 16px; gap: 12px; }
  .fv-main-nav { display: none; }
  .fv-brand-sub { display: none; }
}

.fv-main { min-height: 60vh; }


/* ═══════════════════════════════════════════════════════════════
   V4 NeonLab — Site Footer (4 列 + Authority + Warning)
   ═══════════════════════════════════════════════════════════════ */

.fv-site-footer {
  background: linear-gradient(180deg, var(--fv-dark) 0%, #050410 100%);
  border-top: 1px solid var(--fv-dark-border);
  padding: 64px 0 32px;
  margin-top: 80px;
}
.fv-footer-inner {
  max-width: var(--fv-max-w);
  margin: 0 auto;
  padding: 0 24px;
}
.fv-footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 48px;
}
@media (max-width: 880px) { .fv-footer-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; } }
@media (max-width: 480px) { .fv-footer-grid { grid-template-columns: 1fr; } }

.fv-footer-col ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.fv-footer-col a {
  font-family: var(--fv-font-body);
  font-size: 14px;
  color: var(--fv-ink-gray);
  transition: color .15s;
}
.fv-footer-col a:hover { color: var(--fv-teal); }

.fv-footer-eyebrow {
  font-family: var(--fv-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fv-teal);
  margin-bottom: 16px;
}

.fv-footer-authority {
  padding: 24px;
  margin-bottom: 32px;
  background: var(--fv-dark-card);
  border: 1px solid var(--fv-dark-border);
  border-radius: var(--fv-r-lg);
}
.fv-footer-gov {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 24px;
}
.fv-footer-gov a {
  font-family: var(--fv-font-mono);
  font-size: 12px;
  color: var(--fv-violet-bright);
  letter-spacing: 0.04em;
}
.fv-footer-gov a:hover { color: var(--fv-teal-bright); }

.fv-footer-warning {
  padding: 14px 20px;
  background: rgba(244, 63, 94, 0.08);
  border: 1px solid rgba(244, 63, 94, 0.25);
  border-radius: var(--fv-r-md);
  color: var(--fv-ink-white);
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 24px;
}
.fv-footer-warning strong { color: var(--fv-red); font-family: var(--fv-font-mono); letter-spacing: 0.04em; }

.fv-footer-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding-top: 24px;
  border-top: 1px solid var(--fv-dark-border);
  font-family: var(--fv-font-mono);
  font-size: 11px;
  color: var(--fv-ink-dim);
  letter-spacing: 0.04em;
}


/* ═══════════════════════════════════════════════════════════════
   V4 reveal animation entry (IntersectionObserver 触发)
   ═══════════════════════════════════════════════════════════════ */
.fv-reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.fv-reveal.fv-revealed { opacity: 1; transform: translateY(0); }
.fv-reveal-d1 { transition-delay: .08s; }
.fv-reveal-d2 { transition-delay: .16s; }
.fv-reveal-d3 { transition-delay: .24s; }


/* ═══════════════════════════════════════════════════════════════
   V4 NeonLab — Foger Flavor Lab Mascot Section (E1 方案 · 替代 fv-team 3 人组)
   ═══════════════════════════════════════════════════════════════ */

.fv-team {
  padding: 80px 0;
  position: relative;
}

.fv-section-eyebrow {
  font-family: var(--fv-font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.fv-eyebrow-violet { color: var(--fv-violet-bright); }
.fv-eyebrow-teal   { color: var(--fv-teal-bright); }

.fv-section-title {
  font-family: var(--fv-font-display);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 14px;
  color: var(--fv-ink-white);
}
.fv-section-subtitle {
  font-size: 16px;
  color: var(--fv-ink-gray);
  max-width: 580px;
  margin: 0 auto 48px;
  line-height: 1.6;
}

.fv-lab-mascot-grid {
  display: grid;
  grid-template-columns: minmax(280px, 360px) 1fr;
  gap: 32px;
  margin-top: 48px;
  align-items: start;
}
@media (max-width: 880px) {
  .fv-lab-mascot-grid { grid-template-columns: 1fr; }
}

.fv-lab-mascot-card {
  background: var(--fv-dark-card);
  border: 1px solid var(--fv-dark-border);
  border-radius: var(--fv-r-xl);
  padding: 32px 28px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.fv-lab-mascot-card::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(at top, var(--fv-violet-glow), transparent 60%);
  pointer-events: none;
}
.fv-lab-mascot-avatar {
  width: 96px; height: 96px;
  border-radius: var(--fv-r-full);
  margin: 0 auto 20px;
  position: relative;
  z-index: 1;
}
.fv-lab-mascot-card .fv-lab-role { margin-bottom: 8px; position: relative; z-index: 1; }
.fv-lab-mascot-card .fv-team-name {
  font-family: var(--fv-font-display);
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--fv-ink-white);
  position: relative; z-index: 1;
}
.fv-lab-mascot-card .fv-team-desc {
  font-size: 14px;
  color: var(--fv-ink-gray);
  line-height: 1.7;
  margin: 0 0 24px;
  position: relative; z-index: 1;
}
.fv-lab-mascot-card .fv-team-link {
  font-family: var(--fv-font-mono);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--fv-teal-bright);
  position: relative; z-index: 1;
}
.fv-lab-mascot-card .fv-team-link:hover { color: var(--fv-teal); }

.fv-lab-axis-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (max-width: 580px) { .fv-lab-axis-grid { grid-template-columns: 1fr; } }

.fv-lab-axis {
  background: var(--fv-dark-card);
  border: 1px solid var(--fv-dark-border);
  border-radius: var(--fv-r-lg);
  padding: 24px 20px;
  position: relative;
  transition: border-color .2s, transform .2s;
}
.fv-lab-axis:hover { border-color: var(--fv-dark-border-hover); transform: translateY(-2px); }
.fv-lab-axis::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px;
  border-radius: 0 0 var(--fv-r-lg) var(--fv-r-lg);
}
/* 4 维度 accent 色（复用风味维度配色 + 加 violet）*/
.fv-tc-punch::after   { background: linear-gradient(90deg, #f59e0b, #d97706); }
.fv-tc-dessert::after { background: linear-gradient(90deg, #ec4899, #db2777); }
.fv-tc-ice::after     { background: linear-gradient(90deg, #06b6d4, #0891b2); }
.fv-tc-violet::after  { background: linear-gradient(90deg, #a855f7, #7c3aed); }

.fv-lab-axis-num {
  font-family: var(--fv-font-mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--fv-ink-dim);
  margin-bottom: 8px;
}
.fv-lab-axis h4 {
  font-family: var(--fv-font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--fv-ink-white);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.fv-lab-axis p {
  font-size: 13px;
  color: var(--fv-ink-gray);
  line-height: 1.6;
  margin: 0;
}

/* mascot avatar refinement (initial F vs flask glyph) */
.fv-avatar-lab.fv-avatar-flask::before {
  content: '⚗';
  font-size: 56px;
  line-height: 1;
  color: var(--fv-dark);
}
