/* Climate Watch Quiz Bot. Everything is prefixed .cwz- and does not touch the rest of the site. */
.cwz-root,.cwz-root *,.cwz-inline,.cwz-inline *{box-sizing:border-box}
.cwz-root{--cwz-g:#00BF63;--cwz-bg:#07160F;--cwz-ink:#E8F2EC;--cwz-mut:#9DB8A8;--cwz-red:#ff5d5d;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;line-height:1.45;color:var(--cwz-ink)}

/* ---------- floating launcher ---------- */
#cwz-float{position:fixed;bottom:18px;z-index:99990}
#cwz-float.cwz-side-right{right:18px}#cwz-float.cwz-side-left{left:18px}
.cwz-launch{position:relative;width:68px;height:68px;border:0;padding:0;border-radius:50%;cursor:pointer;background:radial-gradient(circle at 30% 25%,#10382a,#07160F);box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 2px rgba(0,191,99,.55);animation:cwzFloat 3.4s ease-in-out infinite}
.cwz-launch::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--cwz-g);opacity:0;animation:cwzRing 2.6s ease-out infinite}
.cwz-launch svg{width:54px;height:54px;margin:7px}
.cwz-teaser{position:absolute;bottom:78px;white-space:nowrap;background:#fff;color:#07160F;font-weight:600;padding:9px 14px;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.3);animation:cwzPop .5s cubic-bezier(.2,1.4,.4,1) both}
.cwz-side-right .cwz-teaser{right:0}.cwz-side-left .cwz-teaser{left:0}
.cwz-teaser::after{content:"";position:absolute;bottom:-6px;width:12px;height:12px;background:#fff;transform:rotate(45deg)}
.cwz-side-right .cwz-teaser::after{right:26px}.cwz-side-left .cwz-teaser::after{left:26px}
.cwz-badge{position:absolute;top:-2px;right:-2px;width:20px;height:20px;border-radius:50%;background:var(--cwz-red);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;animation:cwzPop .5s .4s both}

/* ---------- panel ---------- */
.cwz-panel{display:flex;flex-direction:column;position:relative;width:390px;max-width:calc(100vw - 24px);height:min(640px,calc(100vh - 110px));border-radius:22px;overflow:hidden;background:radial-gradient(120% 60% at 50% 0%,rgba(0,191,99,.16),transparent 60%),var(--cwz-bg);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 70px rgba(0,0,0,.55)}
#cwz-float .cwz-panel{position:absolute;bottom:0;transform-origin:bottom right;animation:cwzOpen .35s cubic-bezier(.2,1.2,.4,1) both}
.cwz-side-right .cwz-panel{right:0}.cwz-side-left .cwz-panel{left:0;transform-origin:bottom left}
.cwz-inline{margin:24px auto;max-width:620px}
.cwz-inline .cwz-panel{width:100%;max-width:100%;height:640px}
.cwz-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.1)}
.cwz-head .cwz-av{width:42px;height:42px;flex:none}
.cwz-head b{display:block;font-size:16px}.cwz-head small{color:var(--cwz-g);font-size:12px}
.cwz-head .sp{flex:1}
.cwz-ib{border:0;background:rgba(255,255,255,.08);color:var(--cwz-ink);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:16px}
.cwz-ib:hover{background:rgba(255,255,255,.16)}
.cwz-hud{display:none;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:rgba(0,0,0,.25);border-bottom:1px solid rgba(255,255,255,.08);font-weight:700}
.cwz-hud.on{display:flex}
.cwz-hearts span{display:inline-block;font-size:18px;transition:transform .2s}
.cwz-hearts span.lost{filter:grayscale(1);opacity:.35;animation:cwzBreak .6s}
.cwz-streak{color:#ffb347}.cwz-streak.hot{animation:cwzFlame .6s infinite alternate}
.cwz-score{color:var(--cwz-g);font-variant-numeric:tabular-nums}

.cwz-body{flex:1;overflow-y:auto;padding:14px 12px 6px;scroll-behavior:smooth}
.cwz-msg{display:flex;gap:8px;margin-bottom:10px;animation:cwzIn .35s cubic-bezier(.2,1.2,.4,1) both}
.cwz-msg.me{justify-content:flex-end}
.cwz-msg .cwz-av{width:30px;height:30px;flex:none;align-self:flex-end}
.cwz-bub{max-width:82%;padding:10px 13px;border-radius:16px;background:rgba(255,255,255,.09);border-bottom-left-radius:4px;word-wrap:break-word}
.cwz-msg.me .cwz-bub{background:var(--cwz-g);color:#04120a;font-weight:600;border-radius:16px;border-bottom-right-radius:4px}
.cwz-bub.fact{background:rgba(0,191,99,.14);border:1px solid rgba(0,191,99,.4)}
.cwz-bub.wide{max-width:100%;width:100%}
.cwz-typing{display:inline-flex;gap:4px;padding:4px 2px}
.cwz-typing i{width:7px;height:7px;border-radius:50%;background:var(--cwz-mut);animation:cwzDot 1s infinite}
.cwz-typing i:nth-child(2){animation-delay:.15s}.cwz-typing i:nth-child(3){animation-delay:.3s}

.cwz-q .meta{display:flex;justify-content:space-between;color:var(--cwz-mut);font-size:12px;margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}
.cwz-q h4{margin:0 0 10px;font-size:16.5px;line-height:1.4;color:#fff;font-weight:700}
.cwz-timer{height:6px;border-radius:6px;background:rgba(255,255,255,.12);overflow:hidden;margin-bottom:12px}
.cwz-timer i{display:block;height:100%;width:100%;background:var(--cwz-g);transform-origin:left;transition:background .3s}
.cwz-timer i.low{background:var(--cwz-red)}
.cwz-opts{display:grid;gap:8px}
.cwz-opt{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:11px 12px;border-radius:12px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:var(--cwz-ink);font:inherit;cursor:pointer;transition:transform .15s,border-color .15s,background .15s;animation:cwzIn .4s both}
.cwz-opt:nth-child(2){animation-delay:.06s}.cwz-opt:nth-child(3){animation-delay:.12s}.cwz-opt:nth-child(4){animation-delay:.18s}
.cwz-opt:hover:not([disabled]){transform:translateX(4px);border-color:var(--cwz-g)}
.cwz-opt .k{flex:none;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.cwz-opt[disabled]{cursor:default}
.cwz-opt.gone{opacity:0;transform:scale(.9);pointer-events:none;height:0;padding:0;margin:-4px 0;border-width:0;overflow:hidden;transition:all .35s}
.cwz-opt.right{background:rgba(0,191,99,.28);border-color:var(--cwz-g);animation:cwzRight .7s}
.cwz-opt.wrong{background:rgba(255,93,93,.22);border-color:var(--cwz-red);animation:cwzShake .5s}
.cwz-opt.dim{opacity:.45}

.cwz-acts{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px 4px;min-height:8px}
.cwz-chip{border:1.5px solid var(--cwz-g);background:transparent;color:var(--cwz-g);padding:8px 14px;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;transition:all .15s;animation:cwzIn .35s both}
.cwz-chip:hover:not([disabled]){background:var(--cwz-g);color:#04120a;transform:translateY(-2px)}
.cwz-chip.solid{background:var(--cwz-g);color:#04120a}
.cwz-chip[disabled]{opacity:.4;cursor:default}
.cwz-form{display:flex;gap:8px;padding:8px 12px 12px}
.cwz-form input{flex:1;min-width:0;padding:11px 14px;border-radius:999px;border:1.5px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#fff;font:inherit;font-size:16px}
.cwz-form input:focus{outline:0;border-color:var(--cwz-g)}
.cwz-form button{width:44px;border-radius:50%;border:0;background:var(--cwz-g);color:#04120a;font-size:18px;font-weight:800;cursor:pointer}

.cwz-res{text-align:center;padding:6px 0}
.cwz-res .big{font-size:42px;font-weight:900;color:var(--cwz-g);line-height:1.1;font-variant-numeric:tabular-nums}
.cwz-stars{font-size:34px;letter-spacing:4px;margin:4px 0 8px}
.cwz-stars span{display:inline-block;opacity:.22;filter:grayscale(1)}
.cwz-stars span.on{opacity:1;filter:none;animation:cwzStar .6s cubic-bezier(.2,1.6,.4,1) both}
.cwz-stars span.on:nth-child(2){animation-delay:.25s}.cwz-stars span.on:nth-child(3){animation-delay:.5s}
.cwz-res .title{font-weight:800;font-size:18px;color:#fff}
.cwz-res .sub{color:var(--cwz-mut);font-size:13px;margin-top:4px}
.cwz-conf{position:absolute;inset:0;pointer-events:none;z-index:5}

/* ---------- mascot ---------- */
.cwz-av{display:block}
.cwz-av .body{transform-origin:50% 55%;animation:cwzBob 3s ease-in-out infinite}
.cwz-av .eye{transform-box:fill-box;transform-origin:center;animation:cwzBlink 4.5s infinite}
.cwz-av .leaf{transform-box:fill-box;transform-origin:50% 100%;animation:cwzLeaf 2.4s ease-in-out infinite}
.cwz-av .m-smile{display:block}.cwz-av .m-sad,.cwz-av .m-wow{display:none}
.cwz-av.sad .m-smile{display:none}.cwz-av.sad .m-sad{display:block}
.cwz-av.wow .m-smile{display:none}.cwz-av.wow .m-wow{display:block}
.cwz-av.happy .body{animation:cwzJump .7s ease-out}
.cwz-av.sad .body{animation:cwzShake .5s}

/* ---------- keyframes ---------- */
@keyframes cwzFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes cwzRing{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.35);opacity:0}}
@keyframes cwzPop{0%{transform:scale(.3);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes cwzOpen{0%{transform:scale(.4) translateY(30px);opacity:0}100%{transform:none;opacity:1}}
@keyframes cwzIn{0%{transform:translateY(12px) scale(.96);opacity:0}100%{transform:none;opacity:1}}
@keyframes cwzDot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}
@keyframes cwzShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes cwzRight{0%{transform:scale(1)}40%{transform:scale(1.04);box-shadow:0 0 0 6px rgba(0,191,99,.35)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(0,191,99,0)}}
@keyframes cwzBreak{0%{transform:scale(1)}30%{transform:scale(1.6) rotate(-12deg)}100%{transform:scale(1)}}
@keyframes cwzFlame{from{transform:scale(1) rotate(-2deg)}to{transform:scale(1.12) rotate(2deg)}}
@keyframes cwzStar{0%{transform:scale(0) rotate(-90deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes cwzBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px) scale(1.02)}}
@keyframes cwzBlink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes cwzLeaf{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}
@keyframes cwzJump{0%{transform:translateY(0)}35%{transform:translateY(-9px) scale(1.06)}70%{transform:translateY(0) scale(.97)}100%{transform:none}}

@media (max-width:520px){
  .cwz-nomobile{display:none}
  #cwz-float .cwz-panel{position:fixed;left:8px;right:8px;bottom:8px;width:auto;max-width:none;height:calc(100vh - 16px);height:calc(100dvh - 16px)}
}
@media (prefers-reduced-motion:reduce){
  .cwz-root *,.cwz-launch,.cwz-launch::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}
}
