/* ============================================================================
   vp-chrome.css — shared site chrome styles (topbar, logo, nav, egg, theme &
   motion toggles, tooltips, contact modal). Extracted once from the canonical
   page. SINGLE SOURCE OF TRUTH — pair with vp-chrome.js.
   ============================================================================ */

.vp-topbar {
  position: sticky;
  top: 14px;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  max-width: 680px;
  margin: 14px auto 0;
  padding: 10px 12px 10px 24px;
  border-radius: 999px;
  border: 1px solid var(--vp-line-2);
  background: color-mix(in srgb, var(--vp-frame) 52%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  backdrop-filter: blur(18px) saturate(1.25);
  box-shadow:
    0 12px 40px -14px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(237, 233, 225, 0.07),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22);
  transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1),
              background-color 400ms ease,
              border-color 400ms ease,
              box-shadow 400ms ease;
  will-change: transform;
}
.vp-topbar::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(140px 70px at var(--vp-isl-x, 50%) -12%,
    rgba(255, 214, 150, 0.13), transparent 72%);
  opacity: 0;
  transition: opacity 700ms ease;
}
.vp-topbar.is-glow::after { opacity: 1; }
.vp-topbar.is-lit {
  border-color: color-mix(in srgb,
    var(--vp-highlight) calc(50% * var(--ripple-intensity, 1)), var(--vp-line-2));
  box-shadow:
    0 12px 40px -14px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(237, 233, 225, 0.07),
    0 0 26px rgba(229, 176, 104, calc(0.28 * var(--ripple-intensity, 1)));
}
.vp-topbar.is-solid {
  background: color-mix(in srgb, var(--vp-frame) 76%, transparent);
}
.vp-case[data-theme="light"] .vp-topbar {
  box-shadow:
    0 10px 34px -16px rgba(26, 24, 20, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.vp-topbar.is-hidden { transform: translateY(calc(-100% - 20px)); }
.vp-logo {
  font-family: 'Lora', Georgia, serif;
  font-style: italic;
  font-size: 18px;
  color: var(--vp-ink);
  text-decoration: none;
  letter-spacing: -0.005em;
}
.vp-nav {
  display: flex;
  gap: 28px;
  align-items: center;
}
.vp-nav a {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--vp-ash);
  text-decoration: none;
  transition: color 200ms ease;
}
.vp-nav a:hover { color: var(--vp-ink); }
.vp-theme-toggle,
.vp-motion-toggle {
  position: relative;
  background: transparent;
  border: 1px solid var(--vp-line-2);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color 200ms ease,
              background-color 200ms ease,
              color 200ms ease,
              transform 200ms cubic-bezier(0.22, 1, 0.36, 1);
  color: var(--vp-ink-dim);
  padding: 0;
  margin: 0;
}
.vp-theme-toggle:hover,
.vp-theme-toggle:focus-visible,
.vp-motion-toggle:hover,
.vp-motion-toggle:focus-visible {
  border-color: var(--vp-highlight);
  background: rgba(229, 176, 104, 0.08);
  color: var(--vp-highlight);
  transform: translateY(-1px);
  outline: none;
}
.vp-theme-toggle svg,
.vp-motion-toggle svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.vp-theme-toggle .vp-icon-sun { display: none; }
.vp-theme-toggle .vp-icon-moon { display: block; }
.vp-case[data-theme="light"] .vp-theme-toggle .vp-icon-sun { display: block; }
.vp-case[data-theme="light"] .vp-theme-toggle .vp-icon-moon { display: none; }
.vp-case[data-motion="on"] .vp-motion-toggle {
  color: var(--vp-highlight);
  border-color: rgba(229, 176, 104, 0.32);
}
.vp-case[data-motion="off"] .vp-motion-toggle {
  color: var(--vp-dust);
  border-color: var(--vp-line-2);
}
.vp-case[data-motion="off"] .vp-motion-toggle .vp-icon-motion-on { display: none; }
.vp-case[data-motion="on"] .vp-motion-toggle .vp-icon-motion-off { display: none; }
.vp-tt { position: relative; }
.vp-tt::after {
  content: attr(data-tt);
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  background: var(--vp-frame);
  color: var(--vp-ink);
  font-family: 'Poppins', sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.04em;
  padding: 6px 10px;
  border-radius: 4px;
  border: 1px solid var(--vp-line-2);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 220ms ease, transform 220ms ease;
  z-index: 100;
}
@media (hover: hover) and (pointer: fine) {
  .vp-tt:hover::after { opacity: 1; transform: translateY(0); }
}
.vp-tt:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}
.vp-theme-toggle.is-spinning svg { animation: vp-toggle-spin 500ms cubic-bezier(0.22, 1, 0.36, 1); }
.vp-case[data-motion="off"] .vp-theme-toggle.is-spinning svg { animation: none; }
@media (prefers-reduced-motion: reduce) {
  .vp-case-entry, .vp-topbar { transition: none !important; }
  .vp-theme-toggle.is-spinning svg { animation: none !important; }
}
@media (max-width: 600px) {
  .vp-topbar {
    top: 10px;
    margin-top: 10px;
    gap: 14px;
    padding: 7px 8px 7px 18px;
  }
  .vp-nav { gap: 14px; }
}
@media (max-width: 480px) {
  .vp-topbar { gap: 10px; padding: 6px 6px 6px 14px; }
  .vp-logo { font-size: 14px; }
  .vp-nav { gap: 10px; }
  .vp-nav a { font-size: 10px; letter-spacing: 0.06em; }
  .vp-nav a:nth-of-type(1) { display: none; }
  .vp-theme-toggle, .vp-motion-toggle { width: 30px; height: 30px; }
  .vp-theme-toggle svg, .vp-motion-toggle svg { width: 14px; height: 14px; }
}
.vp-cmodal-overlay {
  position: fixed; inset: 0; z-index: 90;
  background: rgba(6, 5, 4, 0.72);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  opacity: 0; transition: opacity 280ms ease;
}
.vp-cmodal-overlay.is-on { opacity: 1; }
.vp-cmodal-overlay[hidden] { display: none !important; }
.vp-cmodal {
  width: min(640px, 94vw);
  background: var(--vp-surface, #1A1814);
  border: 1px solid var(--vp-line-2, rgba(237,233,225,0.18));
  border-radius:var(--r-panel,16px);
  padding: 30px 52px 42px;
  box-shadow: 0 30px 90px -20px rgba(0,0,0,0.7), inset 0 1px 0 rgba(237,233,225,0.06);
  transform: translateY(14px) scale(0.985);
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
  position: relative;
}
.vp-cmodal-overlay.is-on .vp-cmodal { transform: translateY(0) scale(1); }
.vp-cmodal-eyebrow {
  font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--vp-dust, #B0A088); margin: 0;
}
.vp-cmodal-title {
  font-family: 'Lora', Georgia, serif; font-weight: 500; letter-spacing: -0.015em;
  font-size: clamp(28px, 4.2vw, 40px); line-height: 1.15; color: var(--vp-ink, #EDE9E1); margin: 0 0 16px;
}
.vp-cmodal-title em { font-style: italic; color: var(--vp-highlight, #E5B068); }
.vp-cmodal-body { font-family: 'Poppins', sans-serif; font-size: 14.5px; font-weight: 300; line-height: 1.6; color: var(--vp-ink-dim, #C8C2B5); margin: 0; }
.vp-cmodal-row { margin: 34px 0 26px; display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.vp-cmodal-email {
  font-family: 'Lora', Georgia, serif; font-style: italic; font-weight: 500;
  font-size: clamp(21px, 3.4vw, 30px); color: var(--vp-ink); text-decoration: none;
  border-bottom: 1px solid var(--vp-line-2, rgba(237,233,225,0.18)); padding-bottom: 3px;
}
.vp-cmodal-email:hover { color: var(--vp-highlight, #E5B068); border-color: var(--vp-highlight, #E5B068); }
.vp-cmodal-copy {
  padding: 5px 14px; font-family: 'Poppins', sans-serif; font-size: 10.5px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--vp-dust, #B0A088);
  background: transparent; border: 1px solid var(--vp-line-2, rgba(237,233,225,0.18)); border-radius: 999px; cursor: pointer;
  transition: color 200ms ease, border-color 200ms ease, box-shadow 300ms ease;
}
.vp-cmodal-copy:hover, .vp-cmodal-copy:focus-visible { color: var(--vp-highlight, #E5B068); border-color: var(--vp-highlight, #E5B068); outline: none; }
.vp-cmodal-copy.is-copied { color: var(--vp-highlight, #E5B068); border-color: var(--vp-highlight, #E5B068); box-shadow: 0 0 18px rgba(229,176,104,0.35); }
.vp-cmodal-meta { font-family: 'Poppins', sans-serif; font-size: 12.5px; font-weight: 300; color: var(--vp-ash, #A29A8C); line-height: 1.75; margin: 0; }
.vp-cmodal-meta .mi { white-space: nowrap; }
.vp-cmodal-time { margin-top: 7px; color: var(--vp-ash-2, #6E6961); }
.vp-cmodal-time span { color: var(--vp-ash, #A29A8C); }
.vp-cmodal-meta .sep { margin: 0 8px; color: var(--vp-ash-2, #6E6961); }
.vp-cmodal-head {
  display: flex; align-items: center; justify-content: space-between;
  margin: 0 0 30px;
}
.vp-cmodal-close {
  width: 38px; height: 38px; flex: 0 0 auto;
  border-radius: 50%; border: 1px solid var(--vp-line-2, rgba(237,233,225,0.18)); background: transparent;
  color: var(--vp-ash, #A29A8C); font-size: 15px; line-height: 1; cursor: pointer;
  transition: color 200ms ease, border-color 200ms ease;
}
.vp-cmodal-close:hover, .vp-cmodal-close:focus-visible { color: var(--vp-highlight, #E5B068); border-color: var(--vp-highlight, #E5B068); outline: none; }
@media (max-width: 600px) {
  .vp-cmodal { padding: 26px 22px 30px; }
  .vp-cmodal-row { gap: 12px; }
  .vp-cmodal-meta:not(.vp-cmodal-time) { display: flex; flex-direction: column; gap: 4px; }
  .vp-cmodal-meta:not(.vp-cmodal-time) .sep { display: none; }
}
.vp-theme-toggle {display:none !important;}
@keyframes vp-toggle-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ============================================================================
   Reusable case components (injected by vp-chrome.js): footer · progress · rail.
   Single source of truth — no page inlines these anymore.
   ============================================================================ */
.vp-footer{padding:40px 0;border-top:1px solid var(--vp-line);display:flex;justify-content:space-between;align-items:center;font-family:'Poppins',sans-serif;font-size:12px;color:var(--vp-ash);letter-spacing:.02em;flex-wrap:wrap;}
.vp-footer-links{display:flex;gap:24px;align-items:center;}
.vp-footer a{color:var(--vp-ash);text-decoration:none;transition:color 200ms ease;}
.vp-footer a:hover{color:var(--vp-ink);}
.vp-footer a.vp-back-top{color:var(--vp-ink-dim);font-weight:500;font-size:12px;letter-spacing:.06em;padding:6px 14px 6px 12px;border:1px solid var(--vp-line-2);border-radius:999px;display:inline-flex;align-items:center;gap:6px;transition:color .2s,border-color .2s,background-color .2s;}
.vp-footer a.vp-back-top:hover{color:var(--vp-highlight);border-color:var(--vp-highlight);background-color:var(--vp-shade);}
.vp-builtline{font-family:'Poppins',sans-serif;font-size:12.5px;font-weight:400;color:var(--vp-ink-dim);position:relative;padding-bottom:7px;}
.vp-builtline::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,transparent 32%,var(--vp-highlight) 50%,transparent 68%);background-size:220% 100%;animation:vpSeamRun 2.6s linear infinite;opacity:.85;}
@keyframes vpSeamRun{from{background-position:200% 0;}to{background-position:-100% 0;}}
.vp-case[data-motion="off"] .vp-builtline::after{animation:none;background:linear-gradient(90deg,transparent,var(--vp-highlight),transparent);}
.vp-footer.is-open .vp-builtline::after{box-shadow:0 0 14px rgba(229,176,104,.5);}
.vp-footer-reveal{flex-basis:100%;width:100%;height:0;overflow:hidden;position:relative;text-align:center;pointer-events:none;}
.vp-footer.is-open .vp-footer-reveal{pointer-events:auto;}
.vp-reveal-q{opacity:0;transform:translateY(6px) scaleY(.55);transform-origin:50% 0;transition:transform 560ms cubic-bezier(.22,1,.36,1),opacity 420ms ease;display:block;font-family:'Lora',Georgia,serif;font-style:italic;font-size:16px;color:var(--vp-ink);margin:38px 0 8px;transition-delay:140ms;}
.vp-reveal-cta{opacity:0;transform:translateY(6px) scaleY(.55);transform-origin:50% 0;transition:transform 560ms cubic-bezier(.22,1,.36,1),opacity 420ms ease;display:inline-block;font-family:'Poppins',sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vp-highlight);text-decoration:none;transition-delay:230ms;}
.vp-reveal-cta::after{content:' \2192';}
.vp-footer.is-open .vp-reveal-q,.vp-footer.is-open .vp-reveal-cta{opacity:1;transform:translateY(0) scaleY(1);}
@media (max-width:640px){.vp-footer{flex-direction:column;gap:16px;align-items:flex-start;padding:32px 0;}.vp-footer-links{flex-wrap:wrap;gap:16px 20px;}}
.vp-progress-track{position:fixed;top:0;left:0;right:0;height:2px;background:var(--vp-line);z-index:99;pointer-events:none;}
.vp-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--vp-highlight);z-index:100;pointer-events:none;transition:width 120ms linear;will-change:width;}
.vp-progress::after{content:'';position:absolute;right:-4px;top:-3px;width:10px;height:8px;border-radius:50%;background:radial-gradient(circle at center,color-mix(in srgb,var(--vp-highlight) 55%,transparent),transparent 65%);pointer-events:none;}
.vp-case[data-motion="off"] .vp-progress{transition:none;}
.vp-rail{position:fixed;top:50%;left:max(24px,calc((100vw - 1000px)/2 - 80px));transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:12px;padding:16px 0;pointer-events:none;}
.vp-rail a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--vp-ash-2);font-family:'Poppins',sans-serif;font-size:11px;font-weight:400;letter-spacing:.06em;pointer-events:auto;transition:color 200ms ease;white-space:nowrap;}
.vp-rail-dot{width:16px;height:1px;background:currentColor;transition:width 320ms cubic-bezier(.22,1,.36,1),background-color 240ms ease;}
.vp-rail-label{opacity:0;transform:translateX(-4px);transition:opacity 200ms ease,transform 200ms ease;}
.vp-rail a:hover{color:var(--vp-ink);}
.vp-rail a:hover .vp-rail-label{opacity:1;transform:translateX(0);}
.vp-rail a.is-active,.vp-rail a.is-completed{color:var(--vp-highlight);}
.vp-rail a.is-active .vp-rail-dot,.vp-rail a.is-completed .vp-rail-dot{width:32px;}
.vp-rail a.is-completed .vp-rail-dot{background:var(--vp-highlight);}
.vp-rail a.is-active .vp-rail-dot{background:linear-gradient(to right,var(--vp-highlight) 0%,var(--vp-highlight) calc(var(--vp-section-progress,0)*100%),var(--vp-ash-2) calc(var(--vp-section-progress,0)*100%),var(--vp-ash-2) 100%);}
@media (max-width:1120px){.vp-rail{display:none;}}
