





:where(.pv){
  --pv-k3-ring:6px;          
  --pv-k3-dot:14px;          
  --pv-k3-badge:56px;        
  --pv-k-tick:20px;          
}





:where(.pv) .k-fld{position:relative; display:block}
:where(.pv) .k-edge{position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--pv-accent);
  transform:scaleX(0); transform-origin:left center; pointer-events:none;
  transition:transform 260ms var(--pv-ease)}
:where(.pv) .field:focus-within .k-edge{transform:none}
:where(.pv) .field label{transition:transform 180ms var(--pv-ease), color 180ms var(--pv-ease)}
:where(.pv) .field:focus-within > label{transform:translateY(-2px); color:var(--pv-accent)}
:where(.pv) .field:focus-within > label .opt{color:var(--pv-muted)}
:where(.pv) .field:focus-within .hint{color:var(--pv-body); animation:pv-k1-hint 260ms var(--pv-ease) 160ms both}
@keyframes pv-k1-hint{from{opacity:.4; transform:translateY(-6px)}}

:where(.pv) .field [aria-invalid="true"] ~ .k-edge{background:var(--pv-error)}






:where(.pv) .field input,:where(.pv) .field textarea{transition:border-color 180ms var(--pv-ease), box-shadow 180ms var(--pv-ease)}
:where(.pv) .field [aria-invalid="true"]{border-width:1px; box-shadow:inset 0 0 0 1px var(--pv-error)}
:where(.pv) .k-fld input{padding-right:calc(var(--pv-k-tick) + 24px)}
:where(.pv) .k-tick{position:absolute; right:12px; top:50%; width:var(--pv-k-tick); height:var(--pv-k-tick); margin-top:calc(var(--pv-k-tick) / -2);
  pointer-events:none; opacity:0; transition:opacity 200ms var(--pv-ease)}
:where(.pv) .k-fld:has(textarea) .k-tick{top:14px; margin-top:0}
:where(.pv) .k-tick path{fill:none; stroke:var(--pv-accent); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:24; stroke-dashoffset:24}
:where(.pv) .k-fld.has-tick .k-tick{opacity:1}
:where(.pv) .k-fld.has-tick .k-tick path{stroke-dashoffset:0}





:where(.pv) .contact-grid{position:relative}
:where(.pv) .k3-stage{position:absolute; z-index:5; pointer-events:none}
:where(.pv) .k3-disc{position:absolute; left:0; top:0; border-radius:50%; background:var(--pv-cta-bg); transform-origin:center center}
:where(.pv) .k3-hole{position:absolute; inset:0; border-radius:50%; background:var(--pv-paper); transform:scale(0)}
:where(.pv) .k3-tick{position:absolute; inset:24%; width:52%; height:52%; overflow:visible}
:where(.pv) .k3-tick path{fill:none; stroke:var(--pv-on-cta); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:24; stroke-dashoffset:24}
:where(.pv) .k3-orbit{position:absolute; left:0; top:0}
:where(.pv) .k3-dot{position:absolute; left:50%; width:var(--pv-k3-dot); height:var(--pv-k3-dot); margin-left:calc(var(--pv-k3-dot) / -2);
  border-radius:50%; background:var(--pv-cta-bg); box-shadow:0 0 0 4px var(--pv-paper)}

:where(.pv) .k3-dot.is-pavex{background:var(--pv-paper); border:3px solid var(--pv-cta-bg)}
:where(.pv) .k3-label{position:absolute; display:flex; align-items:center; justify-content:center; white-space:nowrap;
  font-family:var(--pv-text); font-weight:500; font-size:var(--pv-fs-body); color:var(--pv-on-cta)}
:where(.pv) .k3-word{position:absolute; left:0; right:0; margin:0; text-align:center; font-family:var(--pv-disp);
  font-size:var(--pv-fs-h3); line-height:1.2; color:var(--pv-ink); opacity:0}

:where(.pv) .cform.k3-busy button[type="submit"]{visibility:hidden}



:where(.pv) .k3-badge{display:grid; place-items:center; width:var(--pv-k3-badge); height:var(--pv-k3-badge); margin:0 0 22px; border-radius:50%; background:var(--pv-cta-bg)}
:where(.pv) .k3-badge svg{display:block; width:52%; height:52%; overflow:visible}
:where(.pv) .k3-badge path{fill:none; stroke:var(--pv-on-cta); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round}
:where(.pv) .cdone.k3-flying .k3-badge{visibility:hidden}

:where(.pv) .cdone.k3-flying > :not(.k3-badge){opacity:0}

:where(.pv) .cdone{scroll-margin-top:16px}   
:where(.pv) .cdone .cnext{margin:26px 0 0; padding:14px 18px; background:var(--pv-band); border-top:2px solid var(--pv-accent);
  font-size:var(--pv-fs-body); color:var(--pv-body); width:fit-content; max-width:100%; text-wrap:pretty}
:where(.pv) .cdone .close-links{margin-top:26px}


:where(.pv) .cdone.is-arriving > *{animation:pv-k3-rise 420ms var(--pv-ease) both}
:where(.pv) .cdone.is-arriving > .k3-badge{animation:none}
:where(.pv) .cdone.is-arriving > *:nth-child(2){animation-delay:0ms}
:where(.pv) .cdone.is-arriving > *:nth-child(3){animation-delay:70ms}
:where(.pv) .cdone.is-arriving > *:nth-child(4){animation-delay:180ms; animation-name:pv-k3-beat}
:where(.pv) .cdone.is-arriving > *:nth-child(5){animation-delay:250ms}
@keyframes pv-k3-rise{from{opacity:0; transform:translateY(var(--pv-rise))}}
@keyframes pv-k3-beat{from{opacity:0; transform:translateY(var(--pv-rise-far))}}





:where(.pv) .k4{display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin:12px 0 0}
:where(.pv) .k4-btn{min-height:44px; padding:8px 16px; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); font-weight:500; letter-spacing:.02em;
  color:var(--pv-ink); background:var(--pv-paper); border:1px solid var(--pv-rule); border-radius:var(--pv-radius); cursor:pointer;
  touch-action:manipulation; transition:border-color var(--pv-dur-fast) var(--pv-ease), color var(--pv-dur-fast) var(--pv-ease), transform 50ms linear}
@media (hover:hover){ :where(.pv) .k4-btn:hover{border-color:var(--pv-accent); color:var(--pv-accent)} }
:where(.pv) .k4-btn:active,:where(.pv) .k4-btn.is-down{transform:scale(.96)}
:where(.pv) .k4-ok{display:inline-flex; align-items:center; gap:6px; min-height:24px; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-ink);
  opacity:0; transition:opacity 240ms var(--pv-ease)}
:where(.pv) .k4-ok svg{width:18px; height:18px}
:where(.pv) .k4-ok path{fill:none; stroke:var(--pv-accent); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:24; stroke-dashoffset:24}
:where(.pv) .k4.is-done .k4-ok{opacity:1}
:where(.pv) .k4.is-done .k4-ok path{stroke-dashoffset:0; transition:stroke-dashoffset 300ms var(--pv-ease)}
:where(.pv) .cd .cval a{display:inline-block; transform-origin:left center}
:where(.pv) .cd.k4-pulse .cval a{animation:pv-k4-pulse 300ms var(--pv-ease)}
@keyframes pv-k4-pulse{50%{transform:scale(.96)}}

:where(.pv) .k4.is-fail .k4-ok{opacity:1}
:where(.pv) .k4.is-fail .k4-ok svg{display:none}

@media (prefers-reduced-motion:reduce){
  :where(.pv) .k-edge,:where(.pv) .field label,:where(.pv) .k-tick,:where(.pv) .k4-ok{transition:none}
  :where(.pv) .field:focus-within .hint{animation:none}
  :where(.pv) .field:focus-within > label{transform:none}
  :where(.pv) .cdone.is-arriving > *,:where(.pv) .cd.k4-pulse .cval a{animation:none}
}
