/* Small brand interaction; only the loading state loops. */
.proof-brand-ball{width:34px;height:34px}
.profile-ball{transform-box:fill-box;transform-origin:50% 100%}
@media(prefers-reduced-motion:no-preference){.proof-brand-ball{transition:transform .3s ease}.proof-item:hover .proof-brand-ball{transform:rotate(-14deg)}.step:hover .profile-ball{animation:profile-first-bounce .92s linear both}}
/* Start at the resting position: one high hop, a light impact, then a lower hop. */
@keyframes profile-first-bounce{
  0%{transform:translateY(0) scale(1)}
  7%{transform:translateY(-9px) scale(1)}
  14%{transform:translateY(-15px) scale(1)}
  21%{transform:translateY(-19px) scale(1)}
  28%{transform:translateY(-20px) scale(1)}
  35%{transform:translateY(-19px) scale(1)}
  42%{transform:translateY(-15px) scale(1)}
  49%{transform:translateY(-9px) scale(1)}
  56%{transform:translateY(0) scale(1.025,.975)}
  61.5%{transform:translateY(-5px) scale(1)}
  67%{transform:translateY(-9px) scale(1)}
  72.5%{transform:translateY(-11px) scale(1)}
  78%{transform:translateY(-12px) scale(1)}
  83.5%{transform:translateY(-11px) scale(1)}
  89%{transform:translateY(-9px) scale(1)}
  94.5%{transform:translateY(-5px) scale(1)}
  100%{transform:translateY(0) scale(1)}
}
.bounce-stage{position:relative;display:block;width:128px;height:180px;flex:none;--bounce-duration:.9s;--bounce-count:2}
.ball-shadow{position:absolute;left:32px;top:161px;width:64px;height:10px;border-radius:50%;background:currentColor;opacity:.2;transform-origin:center}
.ball-lift{position:absolute;inset:0}
.ball-squash{position:absolute;left:28px;top:88px;width:72px;height:72px;transform-origin:50% 100%}
.ball-squash img{width:100%;height:100%;max-width:none}
.is-bouncing .ball-lift{animation:ball-flight var(--bounce-duration) linear var(--bounce-count)}
.is-bouncing .ball-squash{animation:ball-impact var(--bounce-duration) linear var(--bounce-count)}
.is-bouncing .ball-shadow{animation:ball-shadow var(--bounce-duration) linear var(--bounce-count)}
@keyframes ball-flight{0%{transform:translateY(0);animation-timing-function:cubic-bezier(.1,.55,.35,1)}46%{transform:translateY(-64px);animation-timing-function:cubic-bezier(.65,0,.9,.45)}88%,100%{transform:translateY(0)}}
@keyframes ball-impact{0%{transform:scale(1.1,.9)}12%,46%{transform:scale(1,1)}75%{transform:scale(.96,1.04)}88%{transform:scale(1.16,.86)}100%{transform:scale(1,1)}}
@keyframes ball-shadow{0%,88%{transform:scaleX(1.1);opacity:.22}46%{transform:scaleX(.55);opacity:.08}100%{transform:scaleX(1);opacity:.2}}
.site-loader{position:fixed;inset:0;z-index:200;display:grid;place-content:center;justify-items:center;background:#EBE4D0;color:#38363D;pointer-events:none;animation:loader-failsafe .2s 4.5s forwards}
.site-loader .bounce-stage{--bounce-count:infinite}
.site-loader p{font:700 12px var(--font,Arial,sans-serif);letter-spacing:.08em;margin:14px 0 0}
.site-loader.is-leaving{opacity:0;transition:opacity .18s ease}
@keyframes loader-failsafe{to{opacity:0;visibility:hidden}}
.closing-head{position:relative}
.court-play{display:inline-flex;align-items:flex-end;gap:6px;background:transparent;border:0;padding:0 10px 0 0;margin-top:12px;color:var(--paper);border-radius:8px;text-align:left}
.court-play .bounce-stage{height:160px;margin-top:-10px;--bounce-duration:1.18s;--bounce-count:1}
.court-play .ball-squash{top:68px}
.court-play .ball-shadow{top:141px;background:#130510;opacity:.38}
.court-play .is-bouncing .ball-lift{animation-name:court-ball-flight}
.court-play .is-bouncing .ball-squash{animation-name:court-ball-impact}
.court-play .is-bouncing .ball-shadow{animation-name:court-ball-shadow}
/* Two free-flight arcs: the rebound reaches about 59% of the first height. */
@keyframes court-ball-flight{
  0%{transform:translateY(0)}
  7%{transform:translateY(-28px)}
  14%{transform:translateY(-48px)}
  21%{transform:translateY(-60px)}
  28%{transform:translateY(-64px)}
  35%{transform:translateY(-60px)}
  42%{transform:translateY(-48px)}
  49%{transform:translateY(-28px)}
  56%{transform:translateY(0)}
  61.5%{transform:translateY(-17px)}
  67%{transform:translateY(-29px)}
  72.5%{transform:translateY(-36px)}
  78%{transform:translateY(-38px)}
  83.5%{transform:translateY(-36px)}
  89%{transform:translateY(-29px)}
  94.5%{transform:translateY(-17px)}
  100%{transform:translateY(0)}
}
@keyframes court-ball-impact{
  0%{transform:scale(1.025,.975)}
  4%,53%{transform:scale(1)}
  56%{transform:scale(1.035,.965)}
  60%,96%{transform:scale(1)}
  100%{transform:scale(1.015,.985)}
}
@keyframes court-ball-shadow{
  0%,56%,100%{transform:scaleX(1);opacity:.34}
  28%{transform:scaleX(.58);opacity:.10}
  78%{transform:scaleX(.74);opacity:.16}
}
.court-play-label{padding-bottom:17px;font:400 11px var(--font);color:#d9c8d3;text-underline-offset:5px;text-decoration:underline;text-decoration-color:#d9c8d355}
.court-play:hover .court-play-label,.court-play:focus-visible .court-play-label{color:var(--paper);text-decoration-color:var(--paper)}
@container(max-width:620px){.court-play{margin-top:0}.court-play .bounce-stage{margin-top:0}}
@media(prefers-reduced-motion:reduce){.is-bouncing .ball-lift,.is-bouncing .ball-squash,.is-bouncing .ball-shadow{animation:none!important}.site-loader.is-leaving{transition:none}}
@media print{.site-loader,.court-play{display:none!important}}

/* Lightweight, keyboard-safe micro-interactions inspired by 21st.dev hover patterns. */
@media(prefers-reduced-motion:no-preference){
  .proof-icon,.answer-icon,.step-visual{transition:transform .28s cubic-bezier(.2,.75,.2,1),background-color .28s,border-color .28s,box-shadow .28s}
  .proof-icon svg,.answer-icon svg,.step-visual svg,.button .icon{transition:transform .28s cubic-bezier(.2,.75,.2,1)}
  .proof-item:hover .proof-icon,.proof-item:focus-within .proof-icon{transform:translateY(-3px)}
  .proof-item:hover .proof-icon svg,.proof-item:focus-within .proof-icon svg{transform:scale(1.06)}
  .answer-row:hover .answer-icon,.answer-row:focus-within .answer-icon{background:var(--orange);border-color:var(--orange);transform:rotate(-4deg) scale(1.04)}
  .answer-row:hover .answer-icon svg,.answer-row:focus-within .answer-icon svg{transform:scale(1.07)}
  .step:hover .step-visual,.step:focus-within .step-visual{transform:translateY(-3px);border-color:#46103645;box-shadow:0 8px 18px #24102010}
  .step:hover .step-visual svg,.step:focus-within .step-visual svg{transform:translateY(-2px) scale(1.025)}
  .button:hover .icon,.button:focus-visible .icon{transform:translate(2px,-2px)}
  .success-card .success-card-photo img{transition:transform .4s cubic-bezier(.2,.75,.2,1)}
  .success-card:hover .success-card-photo img,.success-card:focus-within .success-card-photo img{transform:scale(1.035)}
}

/* Ambient motion for the player / parent story panel. */
@media(prefers-reduced-motion:no-preference){
  .audience-panel:not([hidden]) .audience-visual>img{transform:scale(1.025);transform-origin:center;animation:audience-image-drift 24s ease-in-out infinite alternate;will-change:transform}
  .audience-panel.is-entering .audience-visual-copy,.audience-panel.is-entering .audience-photo-caption,.audience-panel.is-entering .audience-answers{animation:audience-content-arrive .46s cubic-bezier(.2,.75,.2,1) both}
  .audience-panel.is-entering .audience-photo-caption{animation-delay:.07s}
  .audience-panel.is-entering .audience-answers{animation-delay:.12s}
  .audience-panel.is-entering .answer-row{animation:audience-row-arrive .4s cubic-bezier(.2,.75,.2,1) both}
  .audience-panel.is-entering .answer-row:nth-child(2){animation-delay:.06s}
  .audience-panel.is-entering .answer-row:nth-child(3){animation-delay:.12s}
}
@keyframes audience-image-drift{from{transform:scale(1.025) translate3d(-.25%,0,0)}to{transform:scale(1.075) translate3d(.7%,-.35%,0)}}
@keyframes audience-content-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes audience-row-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
