body { font-family: 'Inter', sans-serif; }
.font-bricolage { font-family: 'Bricolage Grotesque', sans-serif !important; }
.font-mono { font-family: 'JetBrains Mono', monospace !important; }

@keyframes slideUpFade {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}
.animate-slide-up { animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

.animate-on-scroll { opacity: 0; transform: translateY(20px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.animate-on-scroll.in-view { opacity: 1; transform: translateY(0); }
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }

.bg-grain {
    position: fixed; inset: 0; z-index: 50; pointer-events: none; opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Terminal typing cursor */
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.cursor { animation: blink 1s step-end infinite; }

::selection { background: rgba(16, 185, 129, 0.2); color: white; }
.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Terminal animation */
#run-terminal { font-family: 'JetBrains Mono', monospace; font-size: 12px; line-height: 1.7; }
@media (min-width: 640px) { #run-terminal { font-size: 13px; } }

.tline { opacity: 0; }
.tline.visible { opacity: 1; }

.ttype::after { content: '▋'; animation: blink 0.9s step-end infinite; color: rgba(255,255,255,0.6); }
.ttype.done::after { display: none; }

@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
.tline.visible { animation: fadein 0.15s ease forwards; }

.ascii-logo { color: rgba(255,255,255,0.55); line-height: 1.2; }
.ascii-logo span { display: block; }

.prompt-green { color: #10b981; }
.prompt-dim { color: rgba(255,255,255,0.25); }
.prompt-white { color: rgba(255,255,255,0.85); }
.prompt-user { color: rgba(255,255,255,0.6); }
.prompt-label { color: rgba(255,255,255,0.35); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
.prompt-task { color: rgba(255,255,255,0.5); }
.prompt-accent { color: #34d399; }
.prompt-muted { color: rgba(255,255,255,0.2); }
.prompt-warn { color: #fbbf24; }
.prompt-red { color: #f87171; }
