:root{--color-bg:#fafaf9;--color-bg-elevated:#f1f0ee;--color-surface:#ffffff;--color-border:#e7e5e4;--color-text:#1c1917;--color-text-secondary:#57534e;--color-text-tertiary:#a8a29e;--color-accent:#0d9488;--color-accent-hover:#0f766e;--color-accent-fg:#ffffff;--color-accent-soft:rgba(13,148,136,0.12);--color-danger:#dc2626;--color-danger-soft:rgba(220,38,38,0.1);--color-success:#16a34a;--color-warning:#d97706;--color-overlay:rgba(28,25,23,0.5);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--shadow-sm:0 1px 2px rgba(28,25,23,0.04);--shadow-md:0 4px 16px rgba(28,25,23,0.08);--shadow-lg:0 20px 48px rgba(28,25,23,0.14);--shadow-accent:0 6px 24px color-mix(in srgb,var(--color-accent) 28%,transparent);--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--header-height:56px;--bottom-nav-height:64px;--content-max-width:640px;--container-max-width:1200px}[data-theme=dark]{--color-bg:#0c0a09;--color-bg-elevated:#1c1917;--color-surface:#1c1917;--color-border:#292524;--color-text:#fafaf9;--color-text-secondary:#a8a29e;--color-text-tertiary:#78716c;--color-accent:#2dd4bf;--color-accent-hover:#5eead4;--color-accent-fg:#042f2e;--color-accent-soft:rgba(45,212,191,0.16);--color-danger:#f87171;--color-danger-soft:rgba(248,113,113,0.16);--color-success:#4ade80;--color-warning:#fbbf24;--color-overlay:rgba(0,0,0,0.7);--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 4px 16px rgba(0,0,0,0.5);--shadow-lg:0 20px 48px rgba(0,0,0,0.6);--shadow-accent:0 6px 24px color-mix(in srgb,var(--color-accent) 32%,transparent)}.text-display{font-size:clamp(1.75rem,1.4rem + 1.5vw,2.5rem);line-height:1.15;font-weight:700;letter-spacing:-.02em}.text-h1{font-size:clamp(1.5rem,1.25rem + 1vw,2rem);line-height:1.2;font-weight:700}.text-h2{font-size:1.25rem;line-height:1.3;font-weight:600}.text-body{font-size:1rem;line-height:1.5}.text-meta{font-size:.875rem;line-height:1.4;color:var(--color-text-secondary)}.text-caption{font-size:.75rem;line-height:1.3;color:var(--color-text-tertiary)}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{margin:0;padding:0;height:100%;overflow-x:clip;max-width:100vw}body{font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(min-width:1024px){body{font-size:17px}}a{text-decoration:none}a,button{color:inherit}button{font:inherit;cursor:pointer;border:none;background:none;padding:0}img,svg,video{display:block;max-width:100%}@media(max-width:480px){body{word-wrap:break-word;overflow-wrap:anywhere}}input,select,textarea{font:inherit;color:inherit}::selection{background:var(--color-accent);color:var(--color-accent-fg)}[role=button],[tabindex],a,button,input,select,textarea{outline:none}[role=button]:focus,[role=button]:focus-visible,[tabindex]:focus,[tabindex]:focus-visible,a:focus,a:focus-visible,button:focus,button:focus-visible,input:focus,input:focus-visible,select:focus,select:focus-visible,textarea:focus,textarea:focus-visible{outline:none}#__next,main{min-height:100%}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0!important;height:0!important;display:none}#app-splash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--color-bg);opacity:1;transition:opacity .35s ease;pointer-events:auto}#app-splash svg{animation:splashPulse 1.4s ease-in-out infinite}#app-splash.hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}#app-splash-spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-accent);animation:splashSpin .8s linear infinite}@keyframes splashPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes splashSpin{to{transform:rotate(1turn)}}