@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,300;1,6..72,400&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-ui);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:0;height:0}button,input,input:focus,textarea,textarea:focus{outline:none}button{cursor:pointer;font-family:var(--font-ui)}.safe-top{padding-top:env(safe-area-inset-top,12px)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,16px)}.qwip-app{width:100%;height:100svh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg-primary);position:relative;overflow:hidden}.grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.02;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.fade-up{animation:fadeUp .5s var(--ease) both}.fade-in{animation:fadeIn .2s var(--ease) both}.slide-up{animation:slideUp .3s var(--ease) both}:root{--bg-primary:#1a1512;--bg-surface:#faf7f206;--bg-elevated:#221e1a;--text-primary:#f5f0ea;--text-muted:#b5a99e;--text-dim:#faf7f285;--text-faint:#faf7f260;--accent:#d4814a;--accent-light:#d4814a15;--accent-mid:#d4814a40;--accent-dim:#d4814a80;--secondary:#5ba5a5;--secondary-light:#5ba5a515;--tertiary:#9b7ec8;--tertiary-light:#9b7ec815;--success:#6b9e6b;--success-light:#6b9e6b15;--danger:#c45b4a;--danger-light:#c45b4a15;--muted:#8a7d72;--border:#faf7f208;--border-subtle:#faf7f20a;--font-display:"Newsreader",Georgia,serif;--font-ui:"DM Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--duration-fast:150ms;--duration-base:200ms;--duration-slow:300ms;--ease:cubic-bezier(0.4,0,0.2,1);--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4)}@keyframes breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.12);opacity:.8}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes wave{0%{height:4px}to{height:14px}}@keyframes ringPulse{0%{transform:scale(1);opacity:.3}to{transform:scale(1.8);opacity:0}}@keyframes gentlePulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}