/* Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: #111827; color: #f9fafb; line-height: 1.6; } /* Scrollytelling Layout */ .scene { opacity: 0.3; transform: translateY(20px); transition: all 0.6s ease; scroll-snap-align: start; min-height: 80vh; display: flex; flex-direction: column; justify-content: center; } .scene.active { opacity: 1; transform: translateY(0); } /* System Architecture Visualization */ .system-diagram { width: 100%; height: auto; } .good-cell { fill: #10b981; transition: fill 0.3s ease; } .cheater-cell { fill: #ef4444; transition: fill 0.3s ease; } .sensor-active { fill: #f59e0b; } .gate-active { fill: #8b5cf6; } .latch-flipped { fill: #dc2626; } .certificate-issued { fill: #059669; } .antidote-active { fill: #3b82f6; } /* Progress Bar */ .progress-container { transition: all 0.3s ease; } .progress-bar { transition: width 0.3s ease; } /* Navigation */ custom-navbar { display: block; } /* Footer */ custom-footer { display: block; } /* Reduced Motion Support */ @media (prefers-reduced-motion: reduce) { .scene { transition: opacity 0.3s ease; transform: none !important; } } /* Mobile Responsive */ @media (max-width: 768px) { .grid { grid-template-columns: 1fr; } .sticky { position: relative; top: auto; } } /* Focus Styles for Accessibility */ a:focus, button:focus, summary:focus { outline: 2px solid #60a5fa; outline-offset: 2px; } /* Print Styles */ @media print { .progress-container, custom-navbar { display: none; } .scene { opacity: 1; transform: none; page-break-inside: avoid; } }