/* =====================================================================
   ICE UPDATE — Website Assistant (penguin) styles
   Launcher sits bottom-right, just left of the social icon, so it never
   covers the social dock, the nav, charts or modals.
   ===================================================================== */
.pa{--pa-navy:#080d27;--pa-navy2:#0e1740;--pa-ice:#bfeeff;--pa-cyan:#4de1ff;--pa-ink:#e9f3ff;--pa-mute:#9fb3d6;font-family:Inter,system-ui,sans-serif}
.pa *{box-sizing:border-box}
html.iu-intro-on .pa,html.iu-intro-hold .pa,html.iu-pdfopen .pa{visibility:hidden}

/* ---------- launcher (penguin) ---------- */
.pa-launch{position:fixed;z-index:9991;right:calc(max(12px,env(safe-area-inset-right)) + 56px);bottom:calc(10px + env(safe-area-inset-bottom));width:60px;height:70px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:0;transform:translateY(12px);transition:opacity .4s,transform .4s}
.pa.ready .pa-launch{opacity:1;transform:none}
.pa-launch::before{content:"";position:absolute;left:50%;bottom:2px;width:46px;height:9px;margin-left:-23px;border-radius:50%;background:radial-gradient(closest-side,rgba(77,225,255,.45),rgba(77,225,255,0));filter:blur(1px)}
.pa-launch:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:18px}
.pa.open .pa-launch{opacity:0;pointer-events:none;transform:scale(.6)}

/* the penguin itself — 3 layers (body + 2 wings) so the flippers can move */
.pa-mv{position:absolute;inset:0;transform-origin:50% 100%}
.pa-peng{position:absolute;inset:0;display:block;transform-origin:50% 100%;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}
.pa-peng img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.pa-wl{transform-origin:22.8% 41.8%}.pa-wr{transform-origin:77.7% 41.8%}
.pa-mini .pa-peng,.pa-mini .pa-peng img{position:static;display:block;width:100%;height:100%;filter:none}
.pa-lid{position:absolute;top:26.3%;width:11.5%;height:13%;margin-left:-5.75%;border-radius:50%;background:#fff;border-bottom:2px solid #1c1030;transform:scaleY(0);transform-origin:50% 0;pointer-events:none;animation:paBlink 5.5s infinite}
.pa-lid.l{left:39.4%}.pa-lid.r{left:61%;animation-delay:.02s}
.pa-cube{position:absolute;left:-20px;bottom:4px;width:17px;height:17px;border-radius:4px;background:linear-gradient(135deg,#f2fdff 0%,#9fe3ff 45%,#4cb8f0 100%);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.75),0 2px 4px rgba(0,0,0,.35);opacity:0;pointer-events:none}
.pa-cube::after{content:"";position:absolute;left:3px;top:3px;width:5px;height:5px;border-radius:2px;background:rgba(255,255,255,.9)}
.pa-launch .pa-peng{animation:paBob 3.2s ease-in-out infinite}
@keyframes paBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes paBlink{0%,92%,100%{transform:scaleY(0)}95%{transform:scaleY(1)}}

/* ---- moves (copied from the reference clips) ---- */
/* 1) wave hello — flipper up, head tilt */
.act-wave .pa-peng{animation:pkTilt 1.8s ease-in-out both}
.act-wave .pa-wr{animation:pkWaveR 1.8s ease-in-out both}
@keyframes pkTilt{0%,100%{transform:none}20%,80%{transform:rotate(-6deg)}}
@keyframes pkWaveR{0%,100%{transform:none}15%,45%,75%{transform:rotate(-30deg)}30%,60%{transform:rotate(-8deg)}}
/* 2) happy dance — hop, sway, squash, flappy wings */
.act-dance .pa-peng{animation:pkDance 2.6s ease-in-out both}
.act-dance .pa-wl{animation:pkFlapL .325s ease-in-out 8 alternate both}
.act-dance .pa-wr{animation:pkFlapR .325s ease-in-out 8 alternate both}
@keyframes pkDance{0%,100%{transform:none}10%{transform:translateY(-7px) rotate(-7deg)}20%{transform:scale(1.06,.94)}30%{transform:translateY(-7px) rotate(7deg)}40%{transform:scale(1.06,.94)}50%{transform:translateY(-9px) rotate(-8deg)}60%{transform:scale(1.06,.94)}70%{transform:translateY(-9px) rotate(8deg)}80%{transform:scale(1.06,.94)}90%{transform:translateY(-3px)}}
@keyframes pkFlapL{from{transform:none}to{transform:rotate(24deg)}}
@keyframes pkFlapR{from{transform:none}to{transform:rotate(-24deg)}}
/* 3) waddle walk — rock side to side, walk off, turn round, walk back */
.act-walk .pa-mv{animation:pkWalk 4.4s ease-in-out both}
.act-walk .pa-peng{animation:pkRock .37s ease-in-out 12 alternate both}
.act-walk .pa-wl{animation:pkFlapL .37s ease-in-out 12 alternate-reverse both}
.act-walk .pa-wr{animation:pkFlapR .37s ease-in-out 12 alternate both}
@keyframes pkWalk{0%{transform:none}45%{transform:translateX(-58px)}50%{transform:translateX(-58px) scaleX(-1)}95%{transform:scaleX(-1)}100%{transform:none}}
@keyframes pkRock{from{transform:rotate(-8deg)}to{transform:rotate(8deg) translateY(-2px)}}
/* 4) slippy — pushes an ice cube, slips, belly-flops, gets back up */
.act-slip .pa-mv{animation:pkPushMv 3.8s ease-in-out both}
.act-slip .pa-peng{animation:pkSlip 3.8s ease-in-out both}
.act-slip .pa-wl{animation:pkSlipWing 3.8s ease-in-out both}
.act-slip .pa-wr{animation:pkSlipWingR 3.8s ease-in-out both}
.act-slip .pa-cube{animation:pkCube 3.8s ease-in-out both}
@keyframes pkPushMv{0%,10%{transform:none}35%,88%{transform:translateX(-14px)}100%{transform:none}}
@keyframes pkSlip{0%{transform:none}12%{transform:rotate(-14deg)}20%{transform:rotate(-9deg)}28%{transform:rotate(-15deg)}36%{transform:rotate(-11deg)}40%{transform:rotate(12deg) translateY(-5px)}48%{transform:translateY(-24px) rotate(-86deg)}53%{transform:translateY(-27px) rotate(-80deg)}58%,74%{transform:translateY(-24px) rotate(-86deg)}82%{transform:rotate(-20deg) translateY(-7px)}90%{transform:rotate(5deg)}95%{transform:rotate(-2deg)}100%{transform:none}}
@keyframes pkSlipWing{0%,38%,100%{transform:none}44%,52%{transform:rotate(40deg)}60%,74%{transform:rotate(10deg)}}
@keyframes pkSlipWingR{0%,38%,100%{transform:none}44%,52%{transform:rotate(-40deg)}60%,74%{transform:rotate(-10deg)}}
@keyframes pkCube{0%{opacity:0;transform:translateX(6px)}8%{opacity:1;transform:translateX(6px)}35%{opacity:1;transform:translateX(-14px)}50%{transform:translateX(-36px) rotate(-20deg)}88%{opacity:1;transform:translateX(-36px) rotate(-20deg)}100%{opacity:0;transform:translateX(-36px) rotate(-20deg)}}
/* 5) belly slide — tips over, slides across the ice, pops up, waddles back */
.act-slide .pa-mv{animation:pkSlideMv 3.6s cubic-bezier(.3,.7,.4,1) both}
.act-slide .pa-peng{animation:pkSlide 3.6s ease-in-out both}
.act-slide .pa-wl{animation:pkSlideWingL 3.6s ease-in-out both}
.act-slide .pa-wr{animation:pkSlideWingR 3.6s ease-in-out both}
@keyframes pkSlideMv{0%,14%{transform:none}55%,64%{transform:translateX(-72px)}100%{transform:none}}
@keyframes pkSlide{0%{transform:none}10%{transform:translateY(-6px) rotate(10deg)}16%,55%{transform:translateY(-24px) rotate(-82deg)}35%{transform:translateY(-25px) rotate(-80deg)}64%{transform:translateY(-24px) rotate(-82deg)}72%{transform:translateY(-10px) rotate(4deg)}78%{transform:none}84%{transform:rotate(-7deg)}90%{transform:rotate(7deg)}96%{transform:rotate(-4deg)}100%{transform:none}}
@keyframes pkSlideWingL{0%,10%,78%,100%{transform:none}16%,64%{transform:rotate(-35deg)}}
@keyframes pkSlideWingR{0%,10%,78%,100%{transform:none}16%,64%{transform:rotate(35deg)}}
/* thinking = keep dancing; reply arrives = wave */
.pa.thinking .pa-head .pa-peng{animation:pkDance 2.6s ease-in-out infinite}
.pa.thinking .pa-head .pa-wl{animation:pkFlapL .325s ease-in-out infinite alternate}
.pa.thinking .pa-head .pa-wr{animation:pkFlapR .325s ease-in-out infinite alternate}

/* one-time invitation bubble */
.pa-tip{position:fixed;z-index:9991;right:calc(max(12px,env(safe-area-inset-right)) + 126px);bottom:calc(36px + env(safe-area-inset-bottom));max-width:200px;padding:9px 30px 9px 14px;border-radius:16px 16px 4px 16px;background:#fff;color:#0b1433;font:700 .86rem/1.3 Inter,system-ui,sans-serif;box-shadow:0 10px 26px rgba(0,0,0,.4);opacity:0;transform:translateY(8px) scale(.96);transition:opacity .3s,transform .3s;pointer-events:none}
.pa-tip.show{opacity:1;transform:none;pointer-events:auto;cursor:pointer}
.pa-tip button{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:50%;background:none;color:#5a6890;font-size:14px;line-height:1;cursor:pointer}
.pa-tip button:focus-visible{outline:2px solid #0b1433}

/* ---------- panel ---------- */
.pa-panel{position:fixed;z-index:9995;right:max(12px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));width:min(380px,calc(100vw - 24px));height:min(580px,calc(100vh - 110px));display:flex;flex-direction:column;border-radius:22px;overflow:hidden;color:var(--pa-ink);background:linear-gradient(180deg,#0e1740,#080d27);border:1px solid rgba(191,238,255,.22);box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.2),0 0 40px rgba(77,225,255,.12);opacity:0;visibility:hidden;transform:translateY(16px) scale(.97);transform-origin:100% 100%;transition:opacity .25s,transform .25s,visibility 0s .25s}
.pa.open .pa-panel{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s,visibility 0s}
.pa-head{display:flex;align-items:center;gap:10px;padding:12px 10px 12px 14px;border-bottom:1px solid rgba(191,238,255,.12);background:linear-gradient(90deg,rgba(77,225,255,.10),rgba(139,123,255,.06))}
.pa-head .pa-av{position:relative;flex:none;width:40px;height:47px}
.pa-head .pa-t{flex:1;min-width:0}
.pa-head b{display:block;font:800 .98rem Sora,Inter,sans-serif;color:#fff}
.pa-head small{display:flex;align-items:center;gap:6px;color:var(--pa-mute);font-size:.76rem}
.pa-head small i{width:7px;height:7px;border-radius:50%;background:#2fe39a;box-shadow:0 0 8px #2fe39a}
.pa-x,.pa-clear{flex:none;width:36px;height:36px;border:0;border-radius:12px;background:rgba(255,255,255,.06);color:#dbe8ff;font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center}
.pa-x:hover,.pa-clear:hover{background:rgba(255,255,255,.14)}
.pa-x:focus-visible,.pa-clear:focus-visible{outline:2px solid var(--pa-cyan);outline-offset:1px}
.pa-clear{font-size:14px}

.pa-log{flex:1;overflow-y:auto;padding:14px 12px 6px;scroll-behavior:smooth;overscroll-behavior:contain}
.pa-msg{display:flex;gap:8px;margin:0 0 12px;animation:paIn .22s ease-out}
.pa-msg.me{justify-content:flex-end}
.pa-b{max-width:86%;padding:10px 13px;border-radius:16px 16px 16px 5px;background:rgba(255,255,255,.07);border:1px solid rgba(191,238,255,.12);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}
.pa-msg.me .pa-b{border-radius:16px 16px 5px 16px;background:linear-gradient(135deg,#1aa9d6,#4f6bff);border-color:transparent;color:#fff}
.pa-b p{margin:0 0 7px}.pa-b p:last-child{margin:0}
.pa-b ul,.pa-b ol{margin:4px 0 7px;padding-left:20px}.pa-b li{margin:2px 0}
.pa-b strong{color:#fff}
.pa-b h4{margin:6px 0 4px;font:800 .9rem Sora,Inter,sans-serif;color:var(--pa-ice)}
.pa-b a{color:var(--pa-cyan);font-weight:700}
.pa-b code{padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.3);font-size:.85em}
.pa-mini{flex:none;width:26px;height:30px;align-self:flex-end}
.pa-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pa-act{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:0;font:800 .8rem Inter,sans-serif;color:#fff;text-decoration:none;cursor:pointer;background:rgba(255,255,255,.12)}
.pa-act.wa{background:#1fa855}.pa-act.tg{background:#229ed9}
.pa-act:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pa-act svg{width:15px;height:15px;fill:currentColor}
.pa-note{display:block;margin-top:8px;font-size:.74rem;color:var(--pa-mute)}
.pa-retry{margin-top:8px;padding:7px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:none;color:#fff;font:700 .8rem Inter,sans-serif;cursor:pointer}

/* thinking */
.pa-think .pa-b{display:flex;gap:5px;align-items:center;padding:13px 15px}
.pa-think i{width:7px;height:7px;border-radius:50%;background:var(--pa-ice);opacity:.4;animation:paDot 1s infinite}
.pa-think i:nth-child(2){animation-delay:.15s}.pa-think i:nth-child(3){animation-delay:.3s}
@keyframes paDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
@keyframes paIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* quick prompts */
.pa-quick{display:flex;gap:7px;padding:4px 12px 10px;overflow-x:auto;scrollbar-width:none}
.pa-quick::-webkit-scrollbar{display:none}
.pa-quick[hidden]{display:none}
.pa-quick button{flex:none;padding:8px 12px;border-radius:999px;border:1px solid rgba(191,238,255,.28);background:rgba(77,225,255,.08);color:#dff6ff;font:700 .8rem Inter,sans-serif;cursor:pointer;white-space:nowrap}
.pa-quick button:hover{background:rgba(77,225,255,.18)}
.pa-quick button:focus-visible{outline:2px solid var(--pa-cyan);outline-offset:1px}

/* input */
.pa-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid rgba(191,238,255,.12)}
.pa-form textarea{flex:1;min-height:42px;max-height:110px;resize:none;padding:10px 13px;border-radius:14px;border:1px solid rgba(191,238,255,.22);background:rgba(0,0,0,.25);color:#fff;font:500 .92rem/1.35 Inter,sans-serif}
.pa-form textarea::placeholder{color:#8396bd}
.pa-form textarea:focus{outline:none;border-color:var(--pa-cyan);box-shadow:0 0 0 3px rgba(77,225,255,.18)}
.pa-send{flex:none;width:42px;height:42px;border:0;border-radius:14px;background:linear-gradient(135deg,#4de1ff,#4f6bff);color:#04102c;cursor:pointer;display:grid;place-items:center}
.pa-send:disabled{opacity:.45;cursor:default}
.pa-send:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pa-send svg{width:19px;height:19px;fill:currentColor}
.pa-foot{padding:0 14px 8px;margin-top:-6px;font-size:.7rem;color:#7d8fb5;text-align:center}
.pa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* mobile: near full screen */
@media (max-width:560px){
  .pa-panel{right:0;left:0;bottom:0;width:100%;height:calc(100% - 64px);max-height:none;border-radius:22px 22px 0 0;transform-origin:50% 100%}
  .pa-launch{width:55px;height:64px}
  .pa-tip{right:calc(max(12px,env(safe-area-inset-right)) + 116px)}
}
html.pa-lock,html.pa-lock body{overflow:hidden}
@media (max-width:560px){html.pa-open .iu-dock,html.pa-open .sd,html.pa-open .scroll-hint{visibility:hidden}}

/* performance + motion */
html.iu-lite .pa-panel{box-shadow:0 18px 40px rgba(0,0,0,.5)}
html.iu-lite .pa-launch:not([class*="act-"]) .pa-peng{animation:none}
@media (prefers-reduced-motion:reduce){
  .pa *,.pa *::before{animation:none!important;transition:none!important}
  .pa-panel,.pa-launch,.pa-tip{transition:none!important}
}

/* polar bear canvas */
.pa-bear{position:absolute;inset:0;width:100%;height:100%;display:block}
.pa-mv{will-change:transform;transition:none}
.pa-launch .pa-mv{filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
.pa-mini{position:relative}
.pa-launch::before{display:none}
.pa-launch .pa-bear{left:50%;bottom:0;top:auto;width:170px;height:112px;margin-left:-85px;pointer-events:none}
.pa-launch .pa-mv{transform-origin:50% 100%;overflow:visible}
.pa-launch .pa-mv{filter:none}
/* the bear pushes the social button: it shows Facebook and shakes */
