:root{--bg:#EFF6FF;--card:#fff;--ink:#0F172A;--muted:#475569;--line:#DBE7FB;
  --blue:#2563EB;--pink:#DB2777;--yellow:#FBBF24;--green:#16A34A;--orange:#EA580C;--purple:#7C3AED;--red:#DC2626;--teal:#0891B2;
  --clay:0 6px 0 rgba(37,99,235,.16),0 14px 28px rgba(15,23,42,.10)}
*{box-sizing:border-box}
html,body{margin:0;color:var(--ink);font-family:"Baloo 2",system-ui,-apple-system,"Segoe UI",Roboto,"PingFang TC","Microsoft JhengHei",sans-serif;font-size:18px;line-height:1.4}
/* playful colour blobs in the corners */
body{background-color:var(--bg);background-attachment:fixed;background-image:
  radial-gradient(circle at 4% 8%,#FDE68A 0 70px,transparent 71px),
  radial-gradient(circle at 96% 14%,#FBCFE8 0 90px,transparent 91px),
  radial-gradient(circle at 6% 92%,#BBF7D0 0 80px,transparent 81px),
  radial-gradient(circle at 94% 94%,#DDD6FE 0 100px,transparent 101px)}
.pill{display:inline-block;background:var(--yellow);color:var(--ink);font-weight:700;border-radius:999px;padding:.25em 1em;font-size:.85rem;letter-spacing:.04em;box-shadow:0 3px 0 #D97706}
h1,.display{font-weight:800;color:var(--blue);margin:0;line-height:1.1}
.card{background:var(--card);border:4px solid var(--line);border-radius:28px;box-shadow:var(--clay)}
button{font-family:inherit;font-size:inherit;cursor:pointer;border:0;border-radius:18px;font-weight:700;transition:transform .15s ease-out,box-shadow .15s ease-out,background-color .2s,color .2s}
button:active:not(:disabled){transform:translateY(3px)}
button:disabled{opacity:.5;cursor:default}
button:focus-visible,input:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}
.icon{width:1.2em;height:1.2em;vertical-align:-.2em;flex:none}
.dots span{display:inline-block;animation:bob 1s infinite ease-in-out}
.dots span:nth-child(2){animation-delay:.15s} .dots span:nth-child(3){animation-delay:.3s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
