:root{--color-bg: #fafaf7;--color-surface: #ffffff;--color-text: #0f0f0f;--color-text-soft: #5a5a5a;--color-text-muted: #8a8a8a;--color-border: #e7e5e0;--color-accent: #0f0f0f;--color-accent-soft: #1a1a1a;--color-error: #b1300f;--color-success: #2c6e49;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--font-display: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 36px;--fs-4xl: 44px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--content-max: 480px;--safe-bottom: env(safe-area-inset-bottom, 0)}@media(prefers-color-scheme:dark){:root{--color-bg: #0d0d0d;--color-surface: #161616;--color-text: #f4f4f1;--color-text-soft: #b3b3b0;--color-text-muted: #7a7a78;--color-border: #262624;--color-accent: #f4f4f1;--color-accent-soft: #e0e0d8}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}.n-h1{font-size:var(--fs-3xl);font-weight:500;letter-spacing:-.02em;line-height:1.15}.n-h2{font-size:var(--fs-2xl);font-weight:500;letter-spacing:-.015em;line-height:1.2}.n-body{font-size:var(--fs-md);color:var(--color-text-soft);line-height:1.55}.n-muted{color:var(--color-text-muted);font-size:var(--fs-sm)}.n-stack>*+*{margin-top:var(--sp-4)}.n-stack-lg>*+*{margin-top:var(--sp-6)}.app{min-height:100dvh;background:var(--color-bg)}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}
