@keyframes campi-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}@keyframes campi-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.015)}}@keyframes campi-wobble{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes campi-look{0%,to{transform:translateX(0)}30%,60%{transform:translateX(-3px)}}@keyframes campi-blink-slow{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes campi-nudge{0%,to{transform:translateY(0)}35%{transform:translateY(-3px)}70%{transform:translateY(.5px)}}@keyframes campi-think{0%,to{opacity:.25}50%{opacity:1}}@keyframes campi-drawer-in{0%{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}@keyframes campi-fade{0%{opacity:0}to{opacity:1}}.campi-face[data-motion=idle] .campi-eyes{transform-origin:50px 52px;animation:campi-blink 4s infinite}.campi-face[data-motion=idle] .campi-body{transform-origin:50px 90px;animation:campi-breathe 3.6s ease-in-out infinite}.campi-face[data-motion=idle] .campi-top{transform-origin:50px 22px;animation:campi-wobble 2.4s ease-in-out infinite}.campi-face[data-motion=drawer] .campi-eyes{transform-origin:50px 52px;animation:campi-blink-slow 5s infinite}.campi-face[data-motion=drawer] .campi-gaze{animation:campi-look 1.2s 1}.campi-nudge{animation:campi-nudge .6s ease-out 1}.campi-dot{animation:campi-think 1.2s infinite}.campi-dot:nth-child(2){animation-delay:.2s}.campi-dot:nth-child(3){animation-delay:.4s}.campi-drawer-in{animation:campi-drawer-in .36s cubic-bezier(.2,.8,.2,1)}.campi-drawer-fade{animation:campi-fade .2s ease-out}@keyframes campi-bubble-in{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.campi-bubble-in{animation:campi-bubble-in .2s cubic-bezier(.2,.7,.2,1)}@media (prefers-reduced-motion:reduce){.campi-face .campi-body,.campi-face .campi-eyes,.campi-face .campi-gaze,.campi-face .campi-top,.campi-nudge{animation:none!important;transform:none!important}.campi-bubble-in,.campi-drawer-in{animation:campi-fade .2s ease-out}}.campi-spotlight{--campi-spot-scrim:color-mix(in srgb,var(--color-caption-ink) 52%,transparent);--campi-spot-ring:var(--color-card);position:fixed;inset:0;z-index:60;overflow:hidden;pointer-events:none}[data-theme=dark] .campi-spotlight{--campi-spot-scrim:rgb(0 0 0/0.62);--campi-spot-ring:var(--color-ink)}.campi-spotlight-hole{position:fixed;pointer-events:none;box-shadow:0 0 0 0 var(--campi-spot-ring),0 0 0 200vmax var(--campi-spot-scrim)}.campi-spotlight-hole[data-lit=true]{box-shadow:0 0 0 2px var(--campi-spot-ring),0 0 0 200vmax var(--campi-spot-scrim)}.campi-spotlight-hole[data-glide=true]{transition:top .3s var(--ease),left .3s var(--ease),width .3s var(--ease),height .3s var(--ease),border-radius .3s var(--ease),box-shadow .3s var(--ease)}.campi-spotlight-block{position:fixed;pointer-events:auto}.campi-flight{position:fixed;pointer-events:none;transform-origin:50% 60%;transition:opacity .2s ease,transform .5s ease}.campi-flight[data-flying=true]{transform:rotate(-8deg);transition:left .95s ease,top .95s cubic-bezier(.65,0,.35,1),width .95s cubic-bezier(.4,0,.2,1),height .95s cubic-bezier(.4,0,.2,1),transform .5s ease,opacity .2s ease}.campi-flight-inner,.campi-flight-inner>svg{display:block;width:100%;height:100%}.campi-flight-bob{animation:campi-flight-bob 3.2s ease-in-out infinite}.campi-flight-fade{animation:campi-fade .3s ease-out both}@keyframes campi-flight-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.campi-face[data-motion=rest] .campi-eyes{transform-origin:50px 52px;animation:campi-blink-slow 4s linear 1.5s infinite}.campi-seat-empty{display:inline-block;flex-shrink:0;box-sizing:border-box;border:2px dashed var(--color-border);border-radius:9px}.campi-home-ring{position:absolute;inset:-1.5px;border-radius:inherit;pointer-events:none;animation:campi-home-ring 1.6s ease-out 2}@keyframes campi-home-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-yellow) 80%,transparent)}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--color-yellow) 0%,transparent)}}.campi-tip{position:fixed;z-index:76;box-sizing:border-box;padding:12px 14px;border-radius:12px;background:var(--color-caption-ink);color:var(--color-caption-text);border:1px solid color-mix(in srgb,var(--color-ink) 18%,transparent);font-size:15px;line-height:1.4;box-shadow:0 12px 32px rgba(22,20,15,.28);animation:campi-tip-in .35s ease-out both}@keyframes campi-tip-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.campi-bubble-in{animation:campi-tip-in .35s cubic-bezier(.22,1,.36,1) both}@media (prefers-reduced-motion:reduce){.campi-flight,.campi-flight[data-flying=true]{transform:none!important;transition:opacity .3s ease!important}.campi-face[data-motion=rest] .campi-eyes,.campi-flight-bob,.campi-home-ring{animation:none!important}.campi-bubble-in,.campi-tip{animation:campi-fade .3s ease-out both}}