:root {
  --bg: #FAF7F2;
  --surface: #FFFFFF;
  --ink: #1C1917;
  --accent: #FF5A3D;
}
body {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}
.font-display { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-variation-settings: "opsz" 96; letter-spacing: -0.02em; }
.font-mono { font-family: 'Geist Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums; }
.tabular-nums { font-variant-numeric: tabular-nums; }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

@keyframes flash-success { 0% { background-color: rgba(34,197,94,0.25); } 100% { background-color: transparent; } }
.flash-success { animation: flash-success 0.6s ease-out; }
@keyframes slide-up { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.slide-up { animation: slide-up 0.25s ease-out; }
@keyframes pop-in { 0% { transform: scale(0.9); opacity: 0; } 50% { transform: scale(1.05); } 100% { transform: scale(1); opacity: 1; } }
.pop-in { animation: pop-in 0.3s ease-out; }

.scrollbar-thin::-webkit-scrollbar { width: 4px; height: 4px; }
.scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
.scrollbar-thin::-webkit-scrollbar-thumb { background: rgba(255,90,61,0.3); border-radius: 2px; }

#boot-loader { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--bg); color: var(--ink); z-index: 9999; transition: opacity 0.3s; }
#boot-loader.hidden { opacity: 0; pointer-events: none; }
#boot-loader .brand { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 2.5rem; letter-spacing: -0.03em; }
#boot-loader .label { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: #78716c; margin-top: 0.5rem; }