/* PSY 251 — Social Psychology Companion Site
   Palette: "Violet Mind" — deep iris + rose + gold. Distinct from psy315 (navy/coral)
   and from psy100 (warm plum/amber). Mascot: Bodhi the potted plant (shared).
   Fonts: Spectral (display) + Inter (body). Namespace: PSY251. Text key: psy251-textsize.
   NOTE: legacy CSS var names (--plum, --amber, --clay) are reused as the iris/gold/rose
   tokens to keep the shared component library intact — only the values changed. */

:root{
  --plum:#38215F;      /* deep iris — primary */
  --plum-2:#5B3A99;    /* mid violet */
  --plum-3:#9578C9;    /* light violet */
  --amber:#F2B441;     /* gold — highlight accent */
  --amber-deep:#CE8F1C;
  --clay:#E0567E;      /* rose — warm secondary */
  --sage:#6E9A5B;      /* growth / mascot (shared with psy100) */
  --sage-deep:#4E7A3E;
  --cream:#F6F2FC;     /* violet-tinted page bg */
  --paper:#FFFFFF;     /* card bg */
  --ink:#241533;       /* body text */
  --muted:#786A8C;     /* secondary text */
  --line:#E7DCF4;      /* hairlines */
  --shadow:0 6px 24px rgba(56,33,95,.12);
  --shadow-sm:0 2px 8px rgba(56,33,95,.09);
  --radius:16px;
  --maxw:820px;
}

*{box-sizing:border-box}
html{font-size:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:1.06rem;line-height:1.72;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--plum-2);text-decoration-color:var(--amber);text-underline-offset:3px}
a:hover{color:var(--clay)}

/* ---------- Nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;background:var(--plum);
  color:#fff;box-shadow:var(--shadow-sm);
}
.nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:.4rem;
  padding:.55rem 1rem;flex-wrap:wrap}
.nav .brand{display:flex;align-items:center;gap:.55rem;font-family:"Spectral",Georgia,serif;
  font-weight:600;font-size:1.15rem;color:#fff;text-decoration:none;margin-right:.6rem}
.nav .brand .sprout{width:26px;height:26px;flex:0 0 auto}
.nav a.navlink{color:#F3E7DE;text-decoration:none;padding:.32rem .6rem;border-radius:9px;
  font-size:.95rem;font-weight:500;white-space:nowrap}
.nav a.navlink:hover,.nav a.navlink.active{background:rgba(255,255,255,.15);color:#fff}
.nav .spacer{flex:1}
.textsize{display:flex;align-items:center;gap:.15rem}
.textsize button{background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:8px;
  width:30px;height:30px;cursor:pointer;font-family:"Spectral",serif;line-height:1}
.textsize button:hover{background:var(--amber);color:var(--plum)}
.textsize .ts-lg{font-size:1.05rem}.textsize .ts-md{font-size:.85rem}.textsize .ts-sm{font-size:.7rem}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.15rem}
.page{padding:2.2rem 0 4rem}
section.block{margin:2.2rem 0}

/* ---------- Hero ---------- */
.hero{background:
   radial-gradient(1200px 400px at 15% -10%, rgba(232,163,61,.28), transparent 60%),
   linear-gradient(160deg,var(--plum) 0%, #1E1140 100%);
  color:#fff;padding:3.2rem 1.15rem 3.4rem;position:relative;overflow:hidden}
.hero .wrap{position:relative}
.hero .eyebrow{font-family:"Inter";text-transform:uppercase;letter-spacing:.18em;
  font-size:.78rem;color:var(--amber);font-weight:600;margin:0 0 .5rem}
.hero h1{font-family:"Spectral",Georgia,serif;font-weight:600;font-size:clamp(2.1rem,5vw,3.2rem);
  line-height:1.08;margin:.1rem 0 .6rem}
.hero p.lede{font-size:1.15rem;color:#F0E5DD;max-width:60ch;margin:.4rem 0 0}
.hero .sprout-lg{position:absolute;right:-10px;bottom:-18px;width:150px;opacity:.95}
@media(max-width:640px){.hero .sprout-lg{width:96px;right:-6px;bottom:-8px;opacity:.5}}

/* ---------- Reading page header ---------- */
.rhead{border-bottom:2px solid var(--line);padding-bottom:1rem;margin-bottom:1.6rem}
.rhead .kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--clay);
  font-weight:600}
.rhead h1{font-family:"Spectral",serif;font-weight:600;font-size:clamp(1.9rem,4.5vw,2.7rem);
  line-height:1.12;margin:.35rem 0 .35rem;color:var(--plum)}
.rhead .sub{color:var(--muted);font-size:1.05rem;margin:0}
.readtime{display:inline-block;font-size:.82rem;color:var(--muted);margin-top:.5rem}

/* ---------- Typography in reading ---------- */
.content h2{font-family:"Spectral",serif;font-weight:600;font-size:1.65rem;color:var(--plum);
  margin:2.4rem 0 .7rem;line-height:1.2}
.content h3{font-family:"Spectral",serif;font-weight:600;font-size:1.22rem;color:var(--plum-2);
  margin:1.8rem 0 .5rem}
.content p{margin:.75rem 0}
.content ul,.content ol{margin:.6rem 0 .9rem;padding-left:1.3rem}
.content li{margin:.3rem 0}
.content strong{color:var(--plum)}
.lead{font-size:1.16rem;color:#4a3a45}
.term{background:linear-gradient(transparent 62%, rgba(232,163,61,.4) 0);font-weight:600;color:var(--plum)}
.divider{height:1px;background:var(--line);border:0;margin:2.2rem 0}

/* ---------- Cards / course map ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.1rem 1.15rem;box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:.35rem;transition:transform .13s ease, box-shadow .13s ease;
  position:relative}
a.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card .num{font-family:"Spectral",serif;font-size:.85rem;color:var(--amber-deep);font-weight:600}
.card h3{margin:.05rem 0;font-family:"Spectral",serif;font-size:1.15rem;color:var(--plum);line-height:1.15}
.card p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}
.card .tag{position:absolute;top:.8rem;right:.8rem;font-size:.66rem;text-transform:uppercase;
  letter-spacing:.08em;font-weight:700;padding:.18rem .45rem;border-radius:999px}
.tag.live{background:rgba(110,154,91,.16);color:var(--sage-deep)}
.tag.soon{background:rgba(196,98,62,.14);color:var(--clay)}
.tag.gap{background:rgba(110,58,99,.12);color:var(--plum-2)}
.card.disabled{opacity:.72;cursor:default}
.card.disabled:hover{transform:none;box-shadow:var(--shadow-sm)}

.unitgroup{margin:2rem 0 .4rem}
.unitgroup .glabel{font-family:"Spectral",serif;font-size:1.3rem;color:var(--plum);
  display:flex;align-items:center;gap:.5rem;margin:0 0 .2rem}
.unitgroup .gdesc{color:var(--muted);margin:.1rem 0 1rem;font-size:.98rem}

/* ---------- Bodhi tip boxes ---------- */
.bodhi{display:flex;gap:.85rem;background:rgba(110,154,91,.10);border:1px solid rgba(110,154,91,.35);
  border-left:5px solid var(--sage);border-radius:12px;padding:1rem 1.1rem;margin:1.4rem 0}
.bodhi .avatar{flex:0 0 auto;width:44px;height:44px}
.bodhi .sbody{flex:1}
.bodhi .sbody .who{font-family:"Spectral",serif;font-weight:600;color:var(--sage-deep);
  font-size:.95rem;margin:0 0 .15rem}
.bodhi .sbody p{margin:.2rem 0;font-size:.98rem}

/* ---------- Callouts ---------- */
.callout{border-radius:12px;padding:1rem 1.15rem;margin:1.4rem 0;border:1px solid var(--line);
  background:var(--paper);box-shadow:var(--shadow-sm)}
.callout .clabel{font-family:"Spectral",serif;font-weight:600;font-size:.95rem;
  display:flex;align-items:center;gap:.45rem;margin:0 0 .35rem}
.callout p:last-child{margin-bottom:0}
.callout.gap-note{border-left:5px solid var(--amber);background:rgba(232,163,61,.09)}
.callout.gap-note .clabel{color:var(--amber-deep)}
.callout.update{border-left:5px solid var(--plum-2);background:rgba(110,58,99,.07)}
.callout.update .clabel{color:var(--plum-2)}
.callout.key{border-left:5px solid var(--clay);background:rgba(196,98,62,.08)}
.callout.key .clabel{color:var(--clay)}

/* ---------- Myth vs reality ---------- */
.myth{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;margin:1.5rem 0;box-shadow:var(--shadow-sm)}
.myth>div{padding:1rem 1.1rem}
.myth .m-myth{background:rgba(196,98,62,.09)}
.myth .m-real{background:rgba(110,154,91,.10)}
.myth h4{margin:0 0 .35rem;font-family:"Spectral",serif;font-size:1rem}
.myth .m-myth h4{color:var(--clay)}
.myth .m-real h4{color:var(--sage-deep)}
.myth p{margin:.2rem 0;font-size:.95rem}
@media(max-width:560px){.myth{grid-template-columns:1fr}}

/* ---------- Timeline ---------- */
.timeline{list-style:none;padding:0;margin:1.4rem 0;position:relative}
.timeline:before{content:"";position:absolute;left:11px;top:4px;bottom:4px;width:2px;
  background:linear-gradient(var(--amber),var(--plum-3))}
.timeline li{position:relative;padding:.15rem 0 1rem 2.2rem;margin:0}
.timeline li:before{content:"";position:absolute;left:4px;top:.5rem;width:16px;height:16px;
  border-radius:50%;background:var(--paper);border:3px solid var(--amber)}
.timeline .yr{font-family:"Spectral",serif;font-weight:600;color:var(--plum);margin-right:.4rem}

/* ---------- Two-column compare ---------- */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.4rem 0}
.compare .col{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;
  box-shadow:var(--shadow-sm)}
.compare .col h4{margin:0 0 .4rem;font-family:"Spectral",serif;color:var(--plum);font-size:1.05rem}
.compare .col p{font-size:.94rem;margin:.3rem 0}
@media(max-width:560px){.compare{grid-template-columns:1fr}}

/* ---------- Figures ---------- */
figure{margin:1.6rem 0;text-align:center}
figure svg{max-width:100%;height:auto}
figcaption{font-size:.86rem;color:var(--muted);margin-top:.5rem;font-style:italic}

/* ---------- Self-check ---------- */
.selfcheck{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--plum-2);
  border-radius:12px;padding:1rem 1.15rem;margin:1.5rem 0;box-shadow:var(--shadow-sm)}
.selfcheck .qlabel{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--plum-2);font-weight:700;margin-bottom:.4rem}
.selfcheck .qt{font-weight:600;color:var(--plum);display:block;margin-bottom:.7rem}
.selfcheck .opts{display:flex;flex-direction:column;gap:.5rem}
.selfcheck .opt{display:block;text-align:left;background:var(--cream);border:1px solid var(--line);
  border-radius:9px;padding:.6rem .8rem;cursor:pointer;font:inherit;color:var(--ink);
  transition:background .12s,border-color .12s}
.selfcheck .opt:hover{border-color:var(--plum-3);background:#fff}
.selfcheck .opt.correct{background:rgba(110,154,91,.18);border-color:var(--sage)}
.selfcheck .opt.wrong{background:rgba(196,98,62,.15);border-color:var(--clay)}
.selfcheck .opt.disabled{cursor:default;opacity:.85}
.selfcheck .fb{margin-top:.7rem;font-size:.95rem;padding:.6rem .8rem;border-radius:9px;display:none}
.selfcheck .fb.show{display:block}
.selfcheck .fb.ok{background:rgba(110,154,91,.14);color:var(--sage-deep)}
.selfcheck .fb.no{background:rgba(196,98,62,.12);color:var(--clay)}

/* ---------- Stepper (reveal) ---------- */
.stepper{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.15rem;
  margin:1.5rem 0;box-shadow:var(--shadow-sm)}
.stepper .step{display:none;animation:fade .25s ease}
.stepper .step.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.stepper .stepctl{display:flex;align-items:center;gap:.7rem;margin-top:.9rem}
.stepper button.stepbtn{background:var(--plum);color:#fff;border:0;border-radius:9px;
  padding:.5rem 1rem;font:inherit;font-weight:600;cursor:pointer}
.stepper button.stepbtn:hover{background:var(--amber);color:var(--plum)}
.stepper button.stepbtn:disabled{opacity:.4;cursor:default}
.stepper .sdots{display:flex;gap:.35rem}
.stepper .sdots i{width:9px;height:9px;border-radius:50%;background:var(--line);display:inline-block}
.stepper .sdots i.on{background:var(--amber)}
.stepper .s-done{color:var(--sage-deep);font-weight:600;font-size:.92rem}

/* ---------- Quiz ---------- */
.quiz{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.3rem;
  margin:2rem 0;box-shadow:var(--shadow)}
.quiz h3{margin-top:0}
.quiz .qitem{margin:1.1rem 0;padding-bottom:1rem;border-bottom:1px dashed var(--line)}
.quiz .qitem:last-of-type{border-bottom:0}
.quiz .qtext{font-weight:600;color:var(--plum);margin-bottom:.5rem}
.quiz .qopts{display:flex;flex-direction:column;gap:.4rem}
.quiz .qopt{text-align:left;background:var(--cream);border:1px solid var(--line);border-radius:8px;
  padding:.5rem .75rem;cursor:pointer;font:inherit;color:var(--ink)}
.quiz .qopt:hover{border-color:var(--plum-3)}
.quiz .qopt.correct{background:rgba(110,154,91,.2);border-color:var(--sage)}
.quiz .qopt.wrong{background:rgba(196,98,62,.16);border-color:var(--clay)}
.quiz .quizbtn{background:var(--plum);color:#fff;border:0;border-radius:10px;padding:.6rem 1.2rem;
  font:inherit;font-weight:600;cursor:pointer;margin-top:.5rem}
.quiz .quizbtn:hover{background:var(--amber);color:var(--plum)}
.quiz .score{font-family:"Spectral",serif;font-weight:600;color:var(--plum);margin-top:.8rem;font-size:1.1rem}

/* ---------- Video / link list ---------- */
.watchlist{list-style:none;padding:0;margin:1.2rem 0}
.watchlist li{margin:.4rem 0;padding:.6rem .8rem;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;display:flex;gap:.6rem;align-items:baseline}
.watchlist li .dot{color:var(--clay);font-weight:700}
.watchlist a{font-weight:600}

/* ---------- Prev/next ---------- */
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}
.pager a{flex:1;min-width:200px;background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:.85rem 1rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm)}
.pager a:hover{border-color:var(--plum-3)}
.pager .dir{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.pager .ptitle{font-family:"Spectral",serif;color:var(--plum);font-weight:600}
.pager a.next{text-align:right}

/* ---------- Footer ---------- */
.foot{background:var(--plum);color:#EadfE7;margin-top:3rem;padding:2rem 1.15rem}
.foot .wrap{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center}
.foot a{color:var(--amber)}
.foot .fnote{font-size:.85rem;color:#C9B7C4;max-width:52ch}

/* ---------- Chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0 0}
.chip{font-size:.78rem;background:rgba(110,58,99,.10);color:var(--plum-2);border:1px solid var(--line);
  border-radius:999px;padding:.22rem .6rem;font-weight:600}

/* ---------- Print ---------- */
@media print{
  .nav,.textsize,.pager,.foot,.watchlist{display:none!important}
  body{background:#fff}
  .selfcheck .fb{display:block!important}
  .stepper .step{display:block!important}
  .stepper .stepctl{display:none}
  a{color:#000;text-decoration:none}
}

/* ---------- Interactive demos (demos.js) ---------- */
.demo{background:linear-gradient(180deg,#fff, #FBF8FF);border:1px solid var(--line);
  border-radius:16px;padding:1.3rem 1.35rem;margin:1.8rem 0;box-shadow:var(--shadow)}
.demo-head h3{font-family:"Spectral",serif;color:var(--plum);margin:.3rem 0 .3rem;font-size:1.3rem}
.demo-tag{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  color:#fff;background:var(--clay);padding:.16rem .5rem;border-radius:999px}
.demo-lede{color:#4a3a55;margin:.4rem 0 .9rem}
.demo-stage{min-height:96px;display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px dashed var(--line);border-radius:12px;padding:1rem;margin:.6rem 0;text-align:center}
.demo-pad{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin:.6rem 0}
.demo-pad.demo-stack{flex-direction:column;align-items:stretch}
.demo-out{margin-top:.4rem}
.demo-btn{border:0;border-radius:10px;padding:.6rem 1rem;font:inherit;font-weight:700;color:#fff;
  background:var(--plum-2);cursor:pointer;transition:transform .1s, filter .1s}
.demo-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.06)}
.demo-btn.wide{width:100%;text-align:left;background:var(--paper);color:var(--ink);
  border:1px solid var(--line);font-weight:600}
.demo-btn.wide:hover:not(:disabled){border-color:var(--plum-3);background:#fff}
.demo-btn.dim{opacity:.55}
.demo-cta{background:var(--plum);color:#fff;border:0;border-radius:10px;padding:.6rem 1.15rem;
  font:inherit;font-weight:700;cursor:pointer;margin:.3rem 0}
.demo-cta:hover:not(:disabled){background:var(--amber);color:var(--plum)}
.demo-cta.ghost{background:transparent;color:var(--plum);border:1.5px solid var(--plum-3)}
.demo-cta:disabled{opacity:.45;cursor:default}
.demo-input{font:inherit;padding:.5rem .7rem;border:1px solid var(--line);border-radius:9px;width:120px}
.demo-result{background:rgba(94,58,153,.06);border:1px solid var(--line);border-left:4px solid var(--plum-2);
  border-radius:10px;padding:.85rem 1rem;margin-top:.6rem;font-size:.97rem}
.demo-result.ok{border-left-color:var(--sage);background:rgba(110,154,91,.10)}
.demo-result.no{border-left-color:var(--clay);background:rgba(224,86,126,.09)}
.demo-result p{margin:.4rem 0}
.demo-table{width:100%;border-collapse:collapse;margin:.2rem 0 .6rem}
.demo-table td{padding:.35rem .2rem;border-bottom:1px solid var(--line)}
.demo-table td:last-child{text-align:right}
.demo-svg{display:block;margin:.6rem auto;max-width:300px}
.demo-cap{font-size:.85rem;color:var(--muted);font-style:italic;text-align:center}
.demo-err{color:var(--clay);font-style:italic}
/* Stroop */
.stroop-word{font-family:"Inter",sans-serif;font-weight:800;font-size:2.6rem;letter-spacing:.02em}
.stroop-idle,.stroop-done{color:var(--muted)}
.stroop-done strong{color:var(--plum)}
/* Asch */
.asch-wrap{display:flex;gap:1.4rem;align-items:flex-end;justify-content:center;flex-wrap:wrap;
  background:#fff;border:1px dashed var(--line);border-radius:12px;padding:1rem;margin:.6rem 0}
.asch-standard{padding-right:1.2rem;border-right:2px solid var(--line)}
.asch-comps{display:flex;gap:1.1rem}
.asch-col{display:flex;flex-direction:column;align-items:center;gap:.3rem}
.asch-svg{width:34px;height:150px}
.asch-lab{font-size:.8rem;color:var(--muted);font-weight:600}
.asch-group{text-align:center;color:var(--plum-2);background:rgba(224,86,126,.08);
  border-radius:9px;padding:.5rem .8rem;margin:.5rem 0}

/* ---------- References (APA 7) ---------- */
.refs{margin-top:2.4rem;border-top:2px solid var(--line);padding-top:1rem}
.refs h2{margin-top:.4rem}
.refs .ref{font-size:.9rem;color:#3f3350;line-height:1.55;margin:.55rem 0;
  padding-left:1.6em;text-indent:-1.6em}
.refs .ref em{color:inherit}
.refs .ref a{word-break:break-word}
@media print{.refs{break-inside:avoid}}


/* ============ BODHI — the floating guide (a potted plant) ============
   Shared look & behavior across all psy course sites; modeled on psy391. */
:root{--bodhi:#4a6b3a;--bodhi-ink:#2f4825;--bodhi-leaf:#6f8e5c;--bodhi-soft:#d8e2cc}
.bodhi-intro{display:flex;gap:1rem;align-items:flex-start;background:var(--card,#fff);border:1px solid var(--line,#e2ddd2);
  border-radius:14px;padding:1.1rem 1.2rem;margin:1.4rem 0;box-shadow:0 1px 3px rgba(0,0,0,.08);
  border-left:4px solid var(--bodhi-leaf)}
.bodhi-intro .avatar{flex:none;width:60px;height:60px}
.bodhi-intro .say .who{font-weight:800;color:var(--bodhi);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.bodhi-intro .say p{margin:.2rem 0 0}

#bodhi-fab{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
#bodhi-fab .bubble{max-width:270px;background:var(--card,#fff);border:1px solid var(--line,#e2ddd2);border-radius:16px 16px 4px 16px;
  padding:.8rem 1rem;box-shadow:0 10px 30px rgba(0,0,0,.16);font-size:.9rem;line-height:1.5;opacity:0;transform:translateY(8px) scale(.96);
  transition:all .22s ease;pointer-events:none}
#bodhi-fab.open .bubble{opacity:1;transform:none;pointer-events:auto}
#bodhi-fab .bubble .who{font-weight:800;color:var(--bodhi);font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;display:block;margin-bottom:.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
#bodhi-fab .bubble .more{margin-top:.6rem;display:flex;gap:.5rem}
#bodhi-fab .bubble .more button{border:1px solid var(--line,#e2ddd2);background:#fff;border-radius:999px;padding:.25rem .7rem;
  font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;color:var(--bodhi)}
#bodhi-fab .bubble .more button:hover{background:var(--bodhi-soft);border-color:var(--bodhi-leaf)}
#bodhi-btn{position:relative;width:64px;height:64px;border-radius:50%;border:2px solid var(--bodhi-soft);cursor:pointer;
  background:#f6f2e9;box-shadow:0 10px 30px rgba(0,0,0,.16);display:grid;place-items:center;transition:transform .18s,box-shadow .18s}
#bodhi-btn:hover{transform:translateY(-3px)}
#bodhi-btn svg{width:50px;height:50px}
.bodhi-plant .foliage{transform-origin:50% 66px;animation:bodhi-sway 5.5s ease-in-out infinite}
@keyframes bodhi-sway{0%,100%{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}
#bodhi-fab .pulse{position:absolute;right:4px;top:2px;width:14px;height:14px;border-radius:50%;background:var(--bodhi-leaf);
  border:2px solid #fff;box-shadow:0 0 0 0 color-mix(in srgb,var(--bodhi-leaf) 60%,transparent);animation:bodhi-pp 2.4s infinite}
@keyframes bodhi-pp{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--bodhi-leaf) 55%,transparent)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){.bodhi-plant .foliage{animation:none}}
@media(max-width:520px){#bodhi-fab .bubble{max-width:210px}}
