/* PWA layer: animated install coach, update toast, app-feel hardening. Owned by js/pwa.js. */
html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html{touch-action:none;-webkit-touch-callout:none}
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
img,canvas,a{-webkit-user-drag:none;-webkit-touch-callout:none}

/* ------------------------------------------------ update toast */
@supports (padding:max(0px)){
  #pwaUpdate{--pl:max(12px,env(safe-area-inset-left));--pr:max(12px,env(safe-area-inset-right));--pb:max(12px,env(safe-area-inset-bottom))}
}
#pwaUpdate{position:fixed;z-index:90;left:50%;bottom:calc(var(--pb,12px) + 58px);transform:translate(-50%,24px);opacity:0;pointer-events:none;
  transition:transform .35s cubic-bezier(.2,.9,.3,1.2),opacity .25s;max-width:calc(100vw - var(--pl,12px) - var(--pr,12px));
  font-family:'Fredoka',system-ui,sans-serif;color:#7c173e;-webkit-user-select:none;user-select:none;
  display:flex;align-items:stretch;background:#fff3df;border:3px solid #7c173e;border-radius:999px;box-shadow:0 4px 0 #ff5fa2,0 6px 0 rgba(0,0,0,.25);overflow:hidden}
#pwaUpdate.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
#pwaUpdate button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#pwaUpdate .go{padding:9px 16px;font-weight:600;font-size:15px;line-height:1.15;text-align:left;min-height:44px}
#pwaUpdate .go b{color:#ff5fa2}
#pwaUpdate .x{flex:0 0 44px;width:44px;min-height:44px;font-size:22px;line-height:1;color:#7c173e;border-left:1px solid rgba(124,23,62,.16)}
#pwaUpdate button:focus-visible{outline:3px solid #7c173e;outline-offset:-5px}
@media (max-height:460px){
  #pwaUpdate{left:var(--pl,12px);transform:translate(0,24px);max-width:250px;bottom:calc(var(--pb,12px) + 52px)}
  #pwaUpdate.show{transform:none}
  #pwaUpdate .go{font-size:13px;padding-top:5px;padding-bottom:5px}
}
@media (prefers-reduced-motion:reduce){#pwaUpdate{transition:opacity .2s}}

/* ------------------------------------------------ install coach: the card */
#pwaCoach{position:fixed;inset:0;z-index:9200;display:none;font-family:'Fredoka',system-ui,sans-serif;color:#7c173e;
  -webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#pwaCoach.on{display:block}
#pwaCoach *{box-sizing:border-box}
#pwaCoach .pc-scrim{position:absolute;inset:0;background:rgba(42,27,61,.55);opacity:0;transition:opacity .3s}
#pwaCoach.show .pc-scrim{opacity:1}
#pwaCoach .pc-box{position:absolute;left:50%;bottom:0;width:min(460px,100%);max-height:calc(100% - max(10px,env(safe-area-inset-top)));
  overflow:auto;overscroll-behavior:contain;background:#fff5e4;border:3px solid #7c173e;border-bottom:0;border-radius:28px 28px 0 0;
  padding:14px max(18px,calc(env(safe-area-inset-right) + 10px)) calc(14px + env(safe-area-inset-bottom)) max(18px,calc(env(safe-area-inset-left) + 10px));
  box-shadow:0 -6px 30px rgba(42,27,61,.28);transform:translate(-50%,105%);transition:transform .5s cubic-bezier(.2,.95,.25,1.04)}
#pwaCoach.show .pc-box{transform:translate(-50%,0)}
#pwaCoach .pc-box::before{content:"";display:block;width:42px;height:5px;margin:-4px auto 6px;border-radius:3px;background:rgba(124,23,62,.22)}
#pwaCoach .pc-x{position:absolute;top:6px;right:max(6px,env(safe-area-inset-right));z-index:3;width:44px;height:44px;display:grid;place-items:center;
  border:0;border-radius:50%;background:transparent;color:#7c173e;cursor:pointer;padding:0}
#pwaCoach .pc-x svg{width:20px;height:20px}
#pwaCoach .pc-text{text-align:center}
#pwaCoach h2{margin:10px 8px 3px;font-size:22px;line-height:1.15;font-weight:700;color:#7c173e;text-wrap:balance}
#pwaCoach .pc-text>p{margin:0 8px;font-size:15px;line-height:1.3;font-weight:500;color:rgba(124,23,62,.78)}
#pwaCoach .pc-steps{list-style:none;margin:12px auto 0;padding:0;max-width:330px;text-align:left}
#pwaCoach .pc-steps li{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:15.5px;line-height:1.25;font-weight:500;color:#2a1b3d}
#pwaCoach .pc-steps li>i{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#ff5fa2;color:#fff;
  font-style:normal;font-weight:700;font-size:13px;box-shadow:0 2px 0 #7c173e}
#pwaCoach .pc-steps b,#pwaCoach .pc-hint b{font-weight:600;color:#d4136f}
#pwaCoach .pc-g{display:inline-block;width:1.35em;height:1.35em;padding:.14em;vertical-align:-.32em;color:#0a84ff;background:#fff;border-radius:.35em;
  box-shadow:0 0 0 1.5px rgba(10,132,255,.28)}
#pwaCoach.pc-android .pc-g,#pwaCoach.pc-inapp .pc-steps li:first-child .pc-g{color:#2a1b3d;box-shadow:0 0 0 1.5px rgba(42,27,61,.2)}
#pwaCoach .pc-hint{margin:0;font-size:13px;line-height:1.3;color:rgba(124,23,62,.75)}
#pwaCoach .pc-copy{display:block;margin:4px auto 0;min-height:44px;padding:0 18px;font:inherit;font-size:15px;font-weight:600;color:#d4136f;
  background:#fff;border:2px dashed rgba(212,19,111,.4);border-radius:12px;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
#pwaCoach .pc-acts{display:flex;gap:10px;margin-top:14px}
#pwaCoach .pc-acts button{font:inherit;min-height:50px;border-radius:15px;cursor:pointer;touch-action:manipulation;padding:4px 10px;line-height:1.1}
#pwaCoach .pc-later{flex:1;background:transparent;border:2px solid rgba(124,23,62,.28);color:#7c173e;font-size:15px;font-weight:600}
#pwaCoach .pc-go{flex:1.35;background:#ff5fa2;color:#fff;border:0;font-size:18px;font-weight:700;box-shadow:0 4px 0 #7c173e;transition:transform .08s,box-shadow .08s}
#pwaCoach .pc-go:active{transform:translateY(3px);box-shadow:0 1px 0 #7c173e}
#pwaCoach.pc-prompt .pc-go{font-size:19px}
#pwaCoach button:focus-visible{outline:3px solid #2a1b3d;outline-offset:3px}
#pwaCoach .pc-go:focus-visible{outline-color:#7c173e}

/* ------------------------------------------------ install coach: the mini phone */
#pwaCoach .pc-stage{--k:1;--pw:124px;--ph:228px;position:relative;display:flex;justify-content:center;padding:12px 0 10px;border-radius:22px;
  background:radial-gradient(closest-side,#ffd3e6 0,#ffe6f0 55%,rgba(255,245,228,0) 100%)}
#pwaCoach .pc-stage[data-anim=ipad]{--pw:156px;--ph:212px}
#pwaCoach .pc-phone{position:relative;flex:none;width:var(--pw);height:var(--ph);border-radius:22px;background:#2a1b3d;
  box-shadow:0 5px 0 rgba(124,23,62,.28);transform:scale(var(--k));transform-origin:50% 0;
  margin:0 calc(var(--pw) * (var(--k) - 1) / 2) calc(var(--ph) * (var(--k) - 1))}
#pwaCoach [data-anim=ipad] .pc-phone{border-radius:16px}
#pwaCoach .pc-screen{position:absolute;inset:5px;border-radius:17px;overflow:hidden;background:#fff;isolation:isolate;
  font-family:'Fredoka',system-ui,sans-serif;color:#2a1b3d}
#pwaCoach [data-anim=ipad] .pc-screen{border-radius:11px}
#pwaCoach .pc-screen::after{content:"";position:absolute;z-index:9;top:3px;left:50%;width:30px;height:7px;margin-left:-15px;border-radius:4px;background:#2a1b3d}
#pwaCoach [data-anim=ipad] .pc-screen::after{display:none}
#pwaCoach [data-anim=android] .pc-screen::after,#pwaCoach [data-anim=drop] .pc-screen::after{width:6px;height:6px;margin-left:-3px;border-radius:50%}
#pwaCoach .pc-web{position:absolute;inset:0;background:linear-gradient(180deg,#ffd3e6,#ffa9cf)}
#pwaCoach .pc-status{position:absolute;top:0;left:0;right:0;height:13px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;
  font-size:6px;font-weight:600;background:#fbf4f6}
#pwaCoach .pc-status i{width:10px;height:5px;border-radius:2px;border:1px solid #2a1b3d}
#pwaCoach .pc-page{position:absolute;left:0;right:0;top:33px;bottom:0;display:grid;place-items:center}
#pwaCoach [data-anim=ios] .pc-page{top:13px;bottom:44px}
#pwaCoach .pc-tcard{width:74%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px 9px;background:#fff5e4;
  border:2px solid #7c173e;border-radius:12px;box-shadow:0 3px 0 #ff5fa2}
#pwaCoach .pc-tcard img{width:30px;height:30px;border-radius:8px}
#pwaCoach .pc-tcard b{display:block;width:70%;height:5px;border-radius:3px;background:#7c173e}
#pwaCoach .pc-tcard s{display:block;width:50%;height:4px;border-radius:2px;background:rgba(124,23,62,.35)}
#pwaCoach .pc-tcard u{display:block;width:60%;height:12px;border-radius:6px;background:#ff5fa2}
#pwaCoach .pc-bar{position:absolute;left:0;right:0;background:#fbf4f6;color:#0a84ff}
#pwaCoach .pc-bar svg{width:11px;height:11px;flex:none}
#pwaCoach .pc-bar-t{top:13px;height:20px;display:flex;align-items:center;gap:4px;padding:0 5px;border-bottom:1px solid rgba(42,27,61,.08)}
#pwaCoach .pc-bar-b{bottom:0;padding:4px 7px 5px;border-top:1px solid rgba(42,27,61,.08)}
#pwaCoach .pc-url{flex:1;height:13px;border-radius:7px;background:#ece4e8;display:flex;align-items:center;padding:0 3px}
#pwaCoach .pc-url i{display:block;width:44%;height:3px;margin:0 auto;border-radius:2px;background:#c9bcc3}
#pwaCoach .pc-tools{display:flex;align-items:center;justify-content:space-around}
#pwaCoach .pc-bar-b .pc-tools{height:20px;margin-top:3px}
#pwaCoach [data-anim=android] .pc-bar,#pwaCoach [data-anim=drop] .pc-bar,#pwaCoach [data-anim=inapp] .pc-bar{color:#3c3c46;background:#fff}
#pwaCoach .pc-target{display:inline-grid;place-items:center;flex:none;width:18px;height:16px;border-radius:5px;animation:pcHit 5s infinite}
#pwaCoach .pc-target.pc-in{width:13px;height:11px;margin-left:auto;color:#3c3c46}
#pwaCoach .pc-target.pc-in svg{width:9px;height:9px}
#pwaCoach .pc-target.pc-pill{width:auto;height:auto;padding:3px 11px;border-radius:7px;background:#ff5fa2;color:#fff;font-size:7px;font-weight:700}
#pwaCoach .pc-dim{position:absolute;inset:0;background:#2a1b3d;opacity:0;animation:pcDim 5s infinite}
#pwaCoach .pc-sheet{position:absolute;background:#fff;color:#2a1b3d;font-size:7px;line-height:1.1;--rowbg:#f4f0f2}
#pwaCoach .pc-bottom{left:0;right:0;bottom:0;padding:8px 7px 12px;border-radius:12px 12px 0 0;transform:translateY(105%);animation:pcSheet 5s infinite}
#pwaCoach .pc-pop{top:31px;right:4px;width:76%;padding:4px;border-radius:9px;box-shadow:0 4px 14px rgba(42,27,61,.3);transform-origin:92% 0;
  opacity:0;animation:pcPop 5s infinite;--rowbg:rgba(255,255,255,0)}
#pwaCoach [data-anim=ipad] .pc-pop{width:62%;--rowbg:#f4f0f2}
#pwaCoach .pc-dlg{left:11%;right:11%;top:30%;padding:9px 8px 7px;border-radius:12px;text-align:center;opacity:0;animation:pcPop 5s infinite;
  box-shadow:0 6px 18px rgba(42,27,61,.35)}
#pwaCoach .pc-dlg img{display:block;width:26px;height:26px;margin:0 auto 4px;border-radius:7px}
#pwaCoach .pc-dlg b{display:block;font-size:8px;font-weight:700}
#pwaCoach .pc-dlg>i{display:block;width:60%;height:3px;margin:4px auto 0;border-radius:2px;background:#ddd}
#pwaCoach .pc-dbtns{display:flex;gap:4px;margin-top:7px}
#pwaCoach .pc-dbtns span{flex:1;padding:4px 0;border-radius:6px;font-weight:600;background:#f1ecee;color:#6b6070}
#pwaCoach .pc-dbtns .pc-hl{background:#ff5fa2;color:#fff;animation:pcHit2 5s infinite}
#pwaCoach .pc-shead{display:flex;align-items:center;gap:5px;padding:0 1px 6px;border-bottom:1px solid #eee}
#pwaCoach .pc-shead img{width:16px;height:16px;border-radius:4px}
#pwaCoach .pc-shead b{display:block;font-size:6.5px;font-weight:700;white-space:nowrap}
#pwaCoach .pc-shead span i{display:block;width:30px;height:3px;margin-top:2px;border-radius:2px;background:#ddd}
#pwaCoach .pc-apps{display:flex;justify-content:space-between;padding:6px 3px}
#pwaCoach .pc-apps i{width:15px;height:15px;border-radius:50%;background:#7cd992}
#pwaCoach .pc-apps i:nth-child(2){background:#5ac8fa}#pwaCoach .pc-apps i:nth-child(3){background:#ffd27a}
#pwaCoach .pc-apps i:nth-child(4){background:#c7b5ff}#pwaCoach .pc-apps i:nth-child(5){background:#e5e0e3}
#pwaCoach .pc-row{display:flex;align-items:center;justify-content:space-between;gap:4px;height:17px;margin-top:3px;padding:0 6px;border-radius:6px;
  font-weight:600;white-space:nowrap;background-color:var(--rowbg)}
#pwaCoach .pc-pop .pc-row:first-child{margin-top:0}
#pwaCoach .pc-row svg{width:9px;height:9px;flex:none}
#pwaCoach .pc-row.pc-hl{animation:pcRow 5s infinite}
#pwaCoach .pc-home{position:absolute;inset:0;z-index:2;padding-top:22px;opacity:0;animation:pcHome 5s infinite;
  background:linear-gradient(160deg,#c8b6ff 0%,#ffc2dc 55%,#ffe1b3 100%)}
#pwaCoach .pc-grid{display:grid;grid-template-columns:repeat(4,19px);gap:10px 8px;justify-content:center}
#pwaCoach [data-anim=ipad] .pc-grid{grid-template-columns:repeat(5,17px);gap:10px 9px}
#pwaCoach .pc-grid>i{display:block;aspect-ratio:1;border-radius:5.5px;opacity:.85}
#pwaCoach .pc-gz{position:relative;display:block;aspect-ratio:1;animation:pcIcon 5s infinite}
#pwaCoach [data-anim=drop] .pc-gz{transform-origin:50% 100%;animation-name:pcDrop}
#pwaCoach .pc-gz img{display:block;width:100%;height:100%;border-radius:5.5px;box-shadow:0 0 0 1.5px #fff,0 0 7px 2px rgba(255,95,162,.85)}
#pwaCoach .pc-gz em{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:1px;font-style:normal;font-size:5px;font-weight:600;color:#fff;
  text-shadow:0 0 2px rgba(42,27,61,.6)}
#pwaCoach .pc-gz s{position:absolute;left:50%;top:50%;width:6px;height:6px;background:#fff8c9;opacity:0;
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:pcSpark 5s infinite}
#pwaCoach .pc-dock{position:absolute;left:7px;right:7px;bottom:7px;height:28px;border-radius:10px;background:rgba(255,255,255,.42);
  display:flex;align-items:center;justify-content:space-around}
#pwaCoach .pc-dock i{width:18px;height:18px;border-radius:5px;background:#7cd992}
#pwaCoach .pc-dock i:nth-child(2){background:#5ac8fa}#pwaCoach .pc-dock i:nth-child(3){background:#ffb4a2}#pwaCoach .pc-dock i:nth-child(4){background:#ffd27a}
#pwaCoach .pc-over{position:absolute;inset:5px;z-index:4;pointer-events:none}
#pwaCoach .pc-paw{position:absolute;left:0;top:0;width:0;height:0;opacity:0;transform:translate(var(--x0,140px),var(--y0,250px));animation:pcPaw 5s infinite}
#pwaCoach .pc-pawsvg{position:absolute;z-index:1;left:-15px;top:-19px;width:30px;height:30px;transform:rotate(-14deg);
  filter:drop-shadow(0 2px 0 rgba(42,27,61,.28))}
#pwaCoach .pc-rip{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;border:2.5px solid #ff5fa2;opacity:0;animation:pcRip 5s infinite}

/* desktop: a small polite corner card, no phone */
#pwaCoach.pc-desk .pc-scrim{background:rgba(42,27,61,.16)}
#pwaCoach.pc-desk .pc-box{left:auto;right:24px;bottom:24px;width:400px;max-width:calc(100% - 32px);display:grid;grid-template-columns:64px 1fr;gap:0 14px;
  padding:16px 16px 14px;border:3px solid #7c173e;border-radius:22px;box-shadow:0 5px 0 #ff5fa2,0 8px 24px rgba(42,27,61,.25);
  transform:translateY(16px);opacity:0;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),opacity .25s}
#pwaCoach.pc-desk.show .pc-box{transform:none;opacity:1}
#pwaCoach.pc-desk .pc-box::before{display:none}
#pwaCoach .pc-desk-icon{padding:0;background:none;align-self:start}
#pwaCoach .pc-desk-icon img{width:64px;height:64px;border-radius:16px;box-shadow:0 3px 0 #7c173e;animation:pcBob .9s .2s both}
#pwaCoach.pc-desk .pc-text{text-align:left;min-width:0}
#pwaCoach.pc-desk h2{margin:0 34px 2px 0;font-size:19px}
#pwaCoach.pc-desk .pc-text>p{margin:0;font-size:14px}
#pwaCoach.pc-desk .pc-acts{margin-top:12px}
#pwaCoach.pc-desk .pc-acts button{min-height:44px;white-space:nowrap}
#pwaCoach.pc-desk .pc-later{font-size:14px}
#pwaCoach.pc-desk .pc-hint{margin-top:2px}
#pwaCoach.pc-desk .pc-go{font-size:16px}

/* sizes */
@media (max-height:760px){#pwaCoach .pc-stage{--k:.86}}
@media (max-height:700px){#pwaCoach .pc-stage{--k:.78;padding:8px 0 6px}#pwaCoach h2{margin-top:6px}}
@media (max-height:600px) and (orientation:portrait){#pwaCoach .pc-stage{--k:.6}#pwaCoach .pc-steps li{margin-bottom:5px}}
/* landscape phones: a centred card, phone on the left */
@media (orientation:landscape) and (max-height:560px){
  #pwaCoach .pc-box{left:50%;top:50%;bottom:auto;width:min(640px,calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    max-height:calc(100% - 16px);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 18px;padding:12px 18px 12px 12px;
    border:3px solid #7c173e;border-radius:26px;box-shadow:0 6px 0 #ff5fa2,0 10px 30px rgba(42,27,61,.3);
    transform:translate(-50%,-50%) scale(.92);opacity:0;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),opacity .25s}
  #pwaCoach.show .pc-box{transform:translate(-50%,-50%);opacity:1}
  #pwaCoach .pc-box::before{display:none}
  #pwaCoach .pc-x{top:4px;right:4px}
  #pwaCoach .pc-stage{--k:.86;padding:8px 12px;align-self:stretch;align-items:center}
  #pwaCoach .pc-text{text-align:left}
  #pwaCoach h2{margin:4px 40px 2px 0;font-size:20px}
  #pwaCoach .pc-text>p{margin:0;font-size:14px}
  #pwaCoach .pc-steps{margin:10px 0 0}
  #pwaCoach .pc-steps li{font-size:14.5px;margin-bottom:6px}
  #pwaCoach .pc-copy{margin-left:0}
  #pwaCoach .pc-acts{margin-top:10px}
}
@media (orientation:landscape) and (max-height:340px){#pwaCoach .pc-stage{--k:.6}#pwaCoach .pc-steps li{margin-bottom:3px}}

/* ------------------------------------------------ install coach: the 5 s loop */
@keyframes pcPaw{
  0%,5%{transform:translate(var(--x0),var(--y0)) scale(1);opacity:0}
  9%{opacity:1}
  15%{transform:translate(var(--x1),var(--y1)) scale(1)}
  17.5%{transform:translate(var(--x1),var(--y1)) scale(.8)}
  21%,25%{transform:translate(var(--x1),var(--y1)) scale(1)}
  37%{transform:translate(var(--x2),var(--y2)) scale(1)}
  40%{transform:translate(var(--x2),var(--y2)) scale(.8)}
  44%{transform:translate(var(--x2),var(--y2)) scale(1);opacity:1}
  52%,100%{transform:translate(var(--x0),var(--y0)) scale(1);opacity:0}
}
@keyframes pcRip{
  0%,16.5%{opacity:0;transform:scale(.3)}
  17.5%{opacity:1;transform:scale(.45)}
  25%{opacity:0;transform:scale(1.8)}
  39%{opacity:0;transform:scale(.3)}
  40%{opacity:1;transform:scale(.45)}
  48%,100%{opacity:0;transform:scale(1.8)}
}
@keyframes pcHit{
  0%,16%{box-shadow:0 0 0 0 rgba(255,95,162,0);transform:none}
  18%{box-shadow:0 0 0 3px rgba(255,95,162,.7);transform:scale(.88)}
  24%{box-shadow:0 0 0 3px rgba(255,95,162,.5);transform:none}
  32%,100%{box-shadow:0 0 0 0 rgba(255,95,162,0);transform:none}
}
@keyframes pcHit2{
  0%,39.5%{box-shadow:0 0 0 0 rgba(212,19,111,0);transform:none}
  41%{box-shadow:0 0 0 3px rgba(212,19,111,.55);transform:scale(.9)}
  47%{box-shadow:0 0 0 3px rgba(212,19,111,.4);transform:none}
  54%,100%{box-shadow:0 0 0 0 rgba(212,19,111,0);transform:none}
}
@keyframes pcRow{
  0%,39.5%{background-color:var(--rowbg);color:#2a1b3d}
  41.5%,92%{background-color:#ffd0e4;color:#b0105c}
  93%,100%{background-color:var(--rowbg);color:#2a1b3d}
}
@keyframes pcSheet{
  0%,21%{transform:translateY(105%);animation-timing-function:cubic-bezier(.2,.9,.3,1)}
  27.5%{transform:translateY(-2%)}
  30%,92%{transform:translateY(0)}
  92.5%,100%{transform:translateY(105%)}
}
@keyframes pcPop{
  0%,21%{opacity:0;transform:scale(.5)}
  26%{opacity:1;transform:scale(1.05)}
  29%,92%{opacity:1;transform:scale(1)}
  92.5%,100%{opacity:0;transform:scale(.5)}
}
@keyframes pcDim{0%,21%{opacity:0}28%,92%{opacity:.35}92.5%,100%{opacity:0}}
@keyframes pcHome{
  0%,49%{opacity:0;transform:scale(1.12)}
  56%,93%{opacity:1;transform:scale(1)}
  99%,100%{opacity:0;transform:scale(1)}
}
@keyframes pcIcon{
  0%,57%{transform:scale(0);opacity:0}
  61%{transform:scale(1.3);opacity:1}
  65%{transform:scale(.86)}
  69%{transform:scale(1.08)}
  72%,100%{transform:scale(1);opacity:1}
}
@keyframes pcDrop{
  0%,55%{transform:translateY(-150px);opacity:0;animation-timing-function:cubic-bezier(.5,0,1,.6)}
  56%{opacity:1}
  61%{transform:translateY(0) scale(1.18,.8)}
  64.5%{transform:translateY(-12px) scale(.94,1.06)}
  68%{transform:translateY(0) scale(1.05,.95)}
  71%,100%{transform:translateY(0) scale(1);opacity:1}
}
@keyframes pcSpark{
  0%,62%{opacity:0;transform:translate(-50%,-50%) scale(.2)}
  66%{opacity:1;transform:translate(calc(-50% + var(--dx) * .7),calc(-50% + var(--dy) * .7)) scale(1.2)}
  78%,100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.5) rotate(45deg)}
}
@keyframes pcBob{0%{transform:translateY(-30px) scale(.6);opacity:0}55%{transform:translateY(0) scale(1.1,.9);opacity:1}75%{transform:translateY(-5px)}100%{transform:none}}

/* reduced motion: no slide, no loop; the stage rests on its final frame (Gizmo on the home screen) */
@media (prefers-reduced-motion:reduce){
  #pwaCoach .pc-box,#pwaCoach.pc-desk .pc-box{transition:opacity .2s!important}
  #pwaCoach .pc-stage *{animation-delay:-4s!important;animation-play-state:paused!important}
  #pwaCoach .pc-desk-icon img{animation:none}
}
