:root{--concrete-0:#f5f2ec;--concrete-50:#ece8df;--concrete-100:#ded8cc;--concrete-200:#c6bfb0;--concrete-300:#a69e8c;--concrete-400:#837b69;--concrete-500:#605949;--concrete-600:#474135;--concrete-700:#37322a;--concrete-800:#26221c;--concrete-900:#16130f;--white:#fff;--sun-100:#fff3c7;--sun-300:#ffde59;--sun-500:#ffc01e;--sun-600:#f2a900;--sun-700:#8a5a00;--on-accent:var(--concrete-900);--paint-yellow:#ffce00;--confirm-100:#d9e6ff;--confirm-500:#1e62e6;--confirm-700:#1447ac;--verify-100:#d3f0de;--verify-500:#148a4c;--verify-700:#0d6337;--thumb-active:var(--sun-500);--status-info-100:#fbe9c6;--status-info-500:#c9820a;--status-warn-100:#fbd9ce;--status-warn-500:#d8481b;--status-gone-100:#f5cfcf;--status-gone-500:#c11f1f;--type-park:#1e62e6;--type-street:#16130f;--type-indoor:#148a4c;--type-diy:#e8590c;--surface-app:var(--concrete-0);--surface-card:var(--white);--surface-sunken:var(--concrete-50);--surface-inverse:var(--concrete-900);--surface-overlay:#16130f8c;--text-strong:var(--concrete-900);--text-body:var(--concrete-700);--text-muted:var(--concrete-400);--text-inverse:var(--concrete-0);--text-accent:var(--sun-700);--text-mono:var(--concrete-600);--border-hair:var(--concrete-100);--border-soft:var(--concrete-200);--border-strong:var(--concrete-900);--border-accent:var(--sun-500);--action-primary:var(--sun-500);--action-primary-hover:var(--sun-600);--action-primary-active:var(--sun-700);--focus-ring:var(--sun-500)}
:root{--font-display:"Anton", "Archivo", system-ui, sans-serif;--font-ui:"Archivo", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--w-regular:400;--w-medium:500;--w-semibold:600;--w-bold:700;--w-black:900;--fs-poster:72px;--fs-display:48px;--fs-h1:34px;--fs-h2:26px;--fs-h3:20px;--fs-lg:18px;--fs-body:16px;--fs-sm:14px;--fs-xs:12.5px;--fs-mono-sm:13px;--fs-mono-xs:11.5px;--lh-tight:1.02;--lh-snug:1.15;--lh-normal:1.45;--lh-relaxed:1.6;--tracking-poster:.005em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-label:.08em;--tracking-wide:.14em}
:root{--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--container-max:1200px;--gutter:24px;--sidebar-w:320px;--header-h:64px}
:root{--radius-0:0;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--border-w-hair:1px;--border-w-bold:2px;--shadow-sm:0 1px 2px #16130f14;--shadow-md:0 4px 14px #16130f1a;--shadow-lg:0 12px 34px #16130f29;--shadow-hard:3px 3px 0 var(--concrete-900);--shadow-hard-accent:3px 3px 0 var(--sun-500);--focus-ring-w:3px;--focus-ring:0 0 0 var(--focus-ring-w) #ffc01e73;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.5, 0, .2, 1);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.28s;--grid-line:#16130f0f}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-normal);font-weight:var(--w-regular);color:var(--text-body);background:var(--surface-app);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-family:var(--font-ui);color:var(--text-strong);font-weight:var(--w-black);line-height:var(--lh-snug);letter-spacing:var(--tracking-tight);margin:0}.ba-poster{font-family:var(--font-display);font-weight:400;line-height:var(--lh-tight);letter-spacing:var(--tracking-poster);text-transform:uppercase}.ba-mono{font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tracking-normal);color:var(--text-mono)}.ba-label{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}a{color:var(--text-accent);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--sun-500);color:var(--on-accent)}.ba-gridfield{background-color:var(--concrete-0);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:32px 32px}
:root{--font-display:var(--font-anton), "Archivo", system-ui, sans-serif;--font-ui:var(--font-archivo), system-ui, sans-serif;--font-mono:var(--font-space-mono), ui-monospace, monospace}body{flex-direction:column;min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;display:flex}@media (max-width:720px){body{padding-bottom:calc(46px + env(safe-area-inset-bottom))}}
