/* SpamChap's own styles. Extracted from the layout's inline <style> block so
   the Content-Security-Policy does not have to allow inline stylesheets from
   the document itself. */

body { font-family: 'Outfit', system-ui, sans-serif; }
.sc-mono { font-family: 'JetBrains Mono', monospace; }

.sc-grid-bg {
    background-image:
        linear-gradient(rgba(249, 115, 22, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(249, 115, 22, 0.06) 1px, transparent 1px);
    background-size: 48px 48px;
}
.sc-fade { opacity: 0; transform: translateY(24px); animation: sc-appear 0.7s ease forwards; }
.sc-fade-1 { animation-delay: 0.1s; }
.sc-fade-2 { animation-delay: 0.25s; }
.sc-fade-3 { animation-delay: 0.4s; }
.sc-fade-4 { animation-delay: 0.55s; }
@keyframes sc-appear { to { opacity: 1; transform: translateY(0); } }
.sc-connector { background: rgba(255, 255, 255, 0.1); }
.sc-lift { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease; }
.sc-lift:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -12px rgba(249, 115, 22, 0.15); }
.sc-cursor::after {
    content: ''; display: inline-block; width: 2px; height: 1.1em;
    background: #fb923c; margin-left: 2px; vertical-align: text-bottom;
    animation: sc-blink 1s step-end infinite;
}
@keyframes sc-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.sc-bar-fill { animation: sc-fill-bar 1.8s cubic-bezier(0.4, 0, 0.2, 1) forwards; transform-origin: left; }
@keyframes sc-fill-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
