:root{--pink: #ff4d94;--purple: #b05cff;--blue: #3d9bff;--green: #4ecb71;--yellow: #ffcf33;--ink: #3b2e4a;--card: #fffdfa}*{box-sizing:border-box}body{margin:0;font-family:Nunito,system-ui,sans-serif;color:var(--ink);min-height:100vh}body[data-theme=party]{background:radial-gradient(1100px 650px at 12% -8%,#ffe3f1 0%,transparent 60%),radial-gradient(900px 600px at 92% 4%,#e6f0ff 0%,transparent 58%),radial-gradient(800px 700px at 50% 108%,#fff4d6 0%,transparent 62%),linear-gradient(165deg,#fff0f7,#f2e8ff 42%,#e4f4ff);background-attachment:fixed}body[data-theme=calm]{background:linear-gradient(180deg,#f7f8fb,#eef1f7);color:#2c3140}.balloons{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.balloon{position:absolute;bottom:-22vh;width:42px;height:54px;border-radius:50% 50% 48% 48%;background:currentColor;opacity:.5;animation-name:rise;animation-timing-function:linear;animation-iteration-count:infinite}.balloon:after{content:"";position:absolute;top:100%;left:50%;width:1px;height:46px;background:#00000024}@keyframes rise{to{transform:translateY(-130vh) translate(26px) scale(1)}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.confetti span{position:absolute;top:-5vh;opacity:.9;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fall{to{transform:translateY(108vh) rotate(620deg)}}.page{position:relative;z-index:1;max-width:620px;margin:0 auto;padding:28px 18px 40px}.hero{text-align:center;margin-bottom:22px}.cake-wrap{position:relative;display:inline-block}.cake{font-size:72px;display:inline-block;animation:bob 2.6s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(255,77,148,.4))}@keyframes bob{50%{transform:translateY(-12px) rotate(-6deg) scale(1.05)}}.spark{position:absolute;font-size:20px;animation:twinkle 2s ease-in-out infinite}.spark.s1{top:-4px;left:-26px;animation-delay:0s}.spark.s2{top:6px;right:-28px;font-size:16px;animation-delay:.6s}.spark.s3{bottom:6px;left:-16px;font-size:15px;animation-delay:1.2s}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(18deg)}}.hero h1{font-family:"Baloo 2",cursive;line-height:1.02;margin:8px 0 0;font-weight:800}.hero .small{display:block;font-size:clamp(19px,5vw,26px);color:#7a6b8c;letter-spacing:.5px}.hero .name{display:block;font-size:clamp(42px,13vw,68px);background:linear-gradient(90deg,var(--pink),var(--yellow),var(--green),var(--blue),var(--purple),var(--pink));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:rainbow 7s linear infinite}@keyframes rainbow{to{background-position:300% 0}}.age{font-weight:800;color:#7a6b8c;margin:10px 0 0;letter-spacing:.5px}.age span{background:var(--yellow);color:var(--ink);border-radius:999px;padding:3px 14px;margin-right:7px;font-size:19px;box-shadow:0 4px #dfa92c;display:inline-block;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{transform:translateY(-3px) rotate(-3deg)}}.hero-calm{margin-bottom:20px;padding-left:4px}.hero-calm h1{font-family:"Baloo 2",cursive;font-size:30px;margin:0;font-weight:700;letter-spacing:-.2px}.hero-calm .teddy{font-size:25px}.hero-calm p{margin:2px 0 0;color:#7b8294;font-size:14px;font-weight:600}.card{background:var(--card);border-radius:26px;padding:16px;box-shadow:0 18px 40px #7850a029,0 2px #fff inset;border:3px solid #fff}.calm .card{background:#fff;border:1px solid #e6e9f0;border-radius:18px;box-shadow:0 6px 20px #20284012}.party .card{position:relative;overflow:hidden}.party .card:before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:repeating-linear-gradient(115deg,var(--pink) 0 18px,var(--yellow) 18px 36px,var(--green) 36px 54px,var(--blue) 54px 72px,var(--purple) 72px 90px)}.card-top{display:flex;align-items:center;gap:12px;padding:2px 6px 14px;border-bottom:2px dashed #f0e6f7}.calm .card-top{border-bottom:1px solid #eef0f5}.bot-avatar{font-size:34px;background:linear-gradient(135deg,#e8f0ff,#ffe8f3);border-radius:50%;width:54px;height:54px;display:grid;place-items:center;flex:none;animation:wiggle 3.2s ease-in-out infinite}.calm .bot-avatar{background:#f2f4f8;animation:none}@keyframes wiggle{40%{transform:rotate(-9deg) scale(1.08)}60%{transform:rotate(9deg) scale(1.08)}}.card-top h2{font-family:"Baloo 2",cursive;margin:0;font-size:22px}.status{margin:0;font-size:13px;color:#8b7d9b;display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;background:#6bcb77;box-shadow:0 0 0 3px #6bcb7740}.time-pill{margin-left:auto;flex:none;align-self:center;font-size:12px;font-weight:800;letter-spacing:.3px;color:#5c8f63;background:#eaf7ec;border:2px solid #d3eed8;border-radius:999px;padding:4px 11px;white-space:nowrap}.time-pill.low{color:#a8632b;background:#fff4e6;border-color:#ffe0bd}.log{height:min(46vh,380px);overflow-y:auto;padding:16px 4px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}.row{display:flex}.row.user{justify-content:flex-end}.bubble{max-width:82%;padding:12px 16px;border-radius:20px;font-size:16px;line-height:1.5;white-space:pre-wrap;animation:pop .25s ease-out}@keyframes pop{0%{transform:scale(.94) translateY(6px);opacity:0}}.row.assistant .bubble{background:#f4efff;border-bottom-left-radius:6px}.row.user .bubble{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border-bottom-right-radius:6px;font-weight:600}.calm .row.assistant .bubble{background:#f2f4f8}.calm .row.user .bubble{background:#3b4356;color:#fff;font-weight:600}.typing{display:flex;gap:5px;align-items:center}.typing i{width:8px;height:8px;border-radius:50%;background:#b9a6cf;animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.error{background:#fff3f3;color:#b23b3b;border:2px solid #ffd9d9;border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600}.starters{display:flex;flex-wrap:wrap;gap:8px;padding:4px 2px 12px}.starters button{display:flex;align-items:center;gap:7px;font-family:inherit;font-weight:700;font-size:14px;color:var(--ink);background:#fff;border:2px solid #f0e4fb;border-radius:999px;padding:8px 14px;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}.starters button:hover{transform:translateY(-3px) rotate(-1.5deg);border-color:var(--purple);box-shadow:0 6px 14px #b05cff38}.party .starters button:nth-child(5n+1){background:#fff0f6;border-color:#ffd0e4}.party .starters button:nth-child(5n+2){background:#fff8e3;border-color:#ffe9ab}.party .starters button:nth-child(5n+3){background:#eaf9ee;border-color:#c3eccd}.party .starters button:nth-child(5n+4){background:#eaf3ff;border-color:#c4ddff}.party .starters button:nth-child(5n+5){background:#f4ecff;border-color:#ddc9ff}.calm .starters button{border-color:#e4e8f0;font-weight:600}.calm .starters button:hover{transform:translateY(-2px);border-color:#b9c2d4;box-shadow:none}.composer{display:flex;gap:8px;padding-top:12px;border-top:2px dashed #f0e6f7}.calm .composer{border-top:1px solid #eef0f5}.composer input{flex:1;font-family:inherit;font-size:16px;padding:13px 18px;border-radius:999px;border:2px solid #ece0f7;background:#faf7ff;outline:none;min-width:0}.composer input:focus{border-color:var(--purple);background:#fff}.composer input:disabled{background:#f4f4f6;color:#9aa0ab;cursor:not-allowed}.calm .composer input{border-color:#e4e8f0;background:#f8f9fc;border-radius:12px}.calm .composer input:focus{border-color:#8fa0bd}.composer button{font-family:"Baloo 2",cursive;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--pink),var(--purple));border:none;border-radius:999px;padding:0 26px;cursor:pointer;box-shadow:0 5px #b45c9a;transition:transform .1s,box-shadow .1s}.composer button:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #b45c9a}.composer button:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 5px #c9b7c9}.calm .composer button{background:#2c3140;border-radius:12px;box-shadow:none;font-size:15px}.calm .composer button:active:not(:disabled){transform:none;background:#1d2130}.calm .composer button:disabled{background:#c3c8d4;box-shadow:none}.foot{text-align:center;margin-top:20px;font-size:14px;font-weight:700;color:#9a8bab}@media(prefers-reduced-motion:reduce){.confetti span,.balloon,.cake,.spark,.age span,.bubble,.bot-avatar,.hero .name,.typing i{animation:none}}
