:root{--bubble-radius:22px;--density-y:1}html[data-density=compact]{--density-y:.78;--bubble-radius:18px}html[data-density=airy]{--density-y:1.25;--bubble-radius:26px}html[data-bubble=squared]{--bubble-radius:8px}html[data-bubble=soft]{--bubble-radius:28px}.page-fade{animation:.24s ease-out both pageFade}@keyframes pageFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bubble-in{animation:.28s cubic-bezier(.2,.8,.2,1) both bubbleIn}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.typing-dot{background:var(--fg-mute);border-radius:50%;width:6px;height:6px;display:inline-block}.typing-dot:first-child{animation:1.3s ease-in-out infinite tdot}.typing-dot:nth-child(2){animation:1.3s ease-in-out .2s infinite tdot}.typing-dot:nth-child(3){animation:1.3s ease-in-out .4s infinite tdot}@keyframes tdot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.skeleton{background:var(--bg-elev2);border-radius:12px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--accent-soft) 14%, transparent), transparent);animation:1.6s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.wf-bars{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.wf-bars span{background:currentColor;border-radius:1px;width:2px;animation:1.2s ease-in-out infinite alternate wf}.wf-bars span:first-child{height:40%;animation-delay:0s}.wf-bars span:nth-child(2){height:80%;animation-delay:.1s}.wf-bars span:nth-child(3){height:55%;animation-delay:.2s}.wf-bars span:nth-child(4){height:95%;animation-delay:.3s}.wf-bars span:nth-child(5){height:65%;animation-delay:.4s}@keyframes wf{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}.scroll-soft::-webkit-scrollbar{width:6px;height:6px}.scroll-soft::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}.cat-sticky{z-index:5;background:color-mix(in oklch, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.modal-bg{background:color-mix(in oklch, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:90;justify-content:center;align-items:flex-end;animation:.2s ease-out pageFade;display:flex;position:fixed;inset:0}@media (min-width:640px){.modal-bg{align-items:center}}.modal-card{background:var(--bg-elev);border:1px solid var(--line-strong);padding:24px 20px calc(24px + var(--safe-bottom));border-radius:28px 28px 0 0;width:100%;max-width:480px;animation:.28s cubic-bezier(.2,.8,.2,1) sheetUp}@media (min-width:640px){.modal-card{border-radius:24px}}@keyframes sheetUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.usage-bar{background:var(--bg-elev2);border-radius:99px;height:8px;position:relative;overflow:hidden}.usage-bar>i{background:linear-gradient(90deg, var(--accent-deep), var(--accent), var(--accent-soft));border-radius:99px;height:100%;transition:width .4s;display:block}.chip{border:1px solid var(--line-strong);min-height:36px;color:var(--fg-dim);white-space:nowrap;cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:inline-flex}.chip[data-active=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.chip:active{transform:scale(.96)}.field{flex-direction:column;gap:6px;display:flex}.field>label{letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);font-size:12px}.field>input,.field>select,.field>textarea{border:1px solid var(--line-strong);background:var(--bg-elev);width:100%;min-height:48px;color:var(--fg);border-radius:14px;outline:none;padding:12px 14px}.field>input:focus,.field>select:focus,.field>textarea:focus{border-color:var(--accent-soft)}.bottom-nav{padding:8px 12px calc(8px + var(--safe-bottom));background:color-mix(in oklch, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--line);z-index:40;position:fixed;bottom:0;left:0;right:0}@media (min-width:1024px){.bottom-nav{border-top:0;border-right:1px solid var(--line);width:240px;padding:24px 16px;inset:0 auto 0 0}}