:root{--color-bg:#faf9f7;--color-app-bg:#f7f6f4;--color-surface:#fff;--color-surface-muted:#1a171405;--color-ink:#1a1714;--color-muted:#6b645c;--color-accent:#c45d2c;--color-accent-hover:#a84d24;--color-accent-soft:#c45d2c1f;--color-ink-soft:#1a17140a;--color-line:#1a171414;--color-line-strong:#1a17142e;--color-dot:#1a17141f;--color-on-accent:#fff;--bg:var(--color-bg);--surface:var(--color-surface);--ink:var(--color-ink);--muted:var(--color-muted);--accent:var(--color-accent);--accent-hover:var(--color-accent-hover);--line:var(--color-line);--shadow:var(--shadow-md);--font-sans:"Manrope", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, serif;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:clamp(2rem, 5vw, 2.75rem);--text-4xl:clamp(2.75rem, 7vw, 4.5rem);--leading-tight:1.02;--leading-snug:1.35;--leading-normal:1.55;--leading-relaxed:1.65;--tracking-tight:-.03em;--tracking-wide:.06em;--tracking-wider:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-full:999px;--shadow-sm:0 8px 24px #1a17140d;--shadow-md:0 24px 64px #1a171414;--shadow-lg:0 32px 80px #1a17141a;--container-max:72rem;--container-padding:1.5rem;--section-gap:var(--space-20);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-modal:cubic-bezier(.32, .72, 0, 1);--duration-fast:.15s;--duration-normal:.2s;--duration-modal:.32s}@media (width>=768px){:root{--container-padding:2rem}}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-ink);-webkit-font-smoothing:antialiased}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:0 0;border:none}img,svg{max-width:100%;display:block}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-full);font-size:var(--text-base);transition:transform var(--duration-fast) var(--ease-standard), background var(--duration-normal) var(--ease-standard), border-color var(--duration-normal) var(--ease-standard), color var(--duration-fast) var(--ease-standard);padding:.875rem 1.375rem;font-weight:600;display:inline-flex}.btn--sm{font-size:var(--text-sm);gap:.4rem;padding:.45rem .75rem}.btn--primary{background:var(--color-accent);color:var(--color-on-accent)}.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.btn:disabled{cursor:wait;opacity:.65;transform:none}.btn--secondary{border:1px solid var(--color-line);color:var(--color-muted);background:0 0}.btn--secondary:hover{border-color:var(--color-line-strong);color:var(--color-ink)}.btn--secondary:active{transform:scale(.97)}.btn.is-loading{cursor:wait}.btn[hidden]{display:none!important}.app-header__install.btn.btn--secondary{border:1px solid var(--color-line);color:var(--color-muted);background:0 0}.app-header__install.btn.btn--secondary:hover{border-color:var(--color-line-strong);color:var(--color-ink)}.app-header__guest-badge.btn.btn--secondary{background:var(--color-accent-soft);color:var(--color-accent);border-color:#0000}.app-header__guest-badge.btn.btn--secondary:hover{background:var(--color-accent-soft);color:var(--color-accent);border-color:#0000;transform:none}.btn-action{padding:14px var(--space-5);white-space:nowrap;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;font-family:inherit;font-size:17px;font-weight:600;display:inline-flex}.btn-action--primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-action--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-action--primary:disabled{opacity:.6;cursor:not-allowed}.btn-action--secondary{color:var(--color-ink);background:#f5f3f0}.btn-action--ghost{color:var(--color-text);background:0 0}.btn-action--ghost:hover:not(:disabled){background:#1a17140f}.btn-action--with-icon{gap:var(--space-2)}.btn-action__icon{flex-shrink:0;width:20px;max-width:none;height:20px;max-height:none}.btn-action--icon{flex:none;width:50px;min-width:50px;min-height:50px;padding:0}
