Spaces:
Running
Running
| @import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=Lora:ital,wght@0,400;0,600;1,400&family=JetBrains+Mono:wght@400;500;700&display=swap'); | |
| @import "tailwindcss"; | |
| /* ββ Design Tokens β Investigative Newsroom Terminal ββββββββββββ */ | |
| :root { | |
| /* Backgrounds β dark newsprint feel */ | |
| --bg-base: #0d0d0d; | |
| --bg-surface: #141414; | |
| --bg-elevated: #1c1c1c; | |
| --bg-hover: #222222; | |
| /* Borders */ | |
| --border: rgba(245, 240, 232, 0.07); | |
| --border-light: rgba(245, 240, 232, 0.14); | |
| /* Accent DNA β PH flag red + gold + cyan data */ | |
| --accent-red: #dc2626; | |
| --accent-gold: #d97706; | |
| --accent-cyan: #06b6d4; | |
| --accent-green: #16a34a; | |
| /* Verdict palette */ | |
| --credible: #16a34a; | |
| --unverified: #d97706; | |
| --fake: #dc2626; | |
| /* Typography β warm newsprint white */ | |
| --text-primary: #f5f0e8; | |
| --text-secondary: #a89f94; | |
| --text-muted: #5c554e; | |
| /* Font families */ | |
| --font-display: 'Syne', system-ui, sans-serif; | |
| --font-body: 'Lora', Georgia, serif; | |
| --font-mono: 'JetBrains Mono', 'Courier New', monospace; | |
| } | |
| /* ββ Dark mode meta (web-design-guidelines: color-scheme) βββββββ */ | |
| html { | |
| color-scheme: dark; | |
| scroll-behavior: smooth; | |
| } | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| background: var(--bg-base); | |
| color: var(--text-primary); | |
| font-family: var(--font-body); | |
| -webkit-font-smoothing: antialiased; | |
| min-height: 100vh; | |
| /* Halftone dot texture β atmospheric depth (frontend-design) */ | |
| background-image: radial-gradient(circle, rgba(245, 240, 232, 0.025) 1px, transparent 1px); | |
| background-size: 24px 24px; | |
| } | |
| h1, | |
| h2, | |
| h3, | |
| h4 { | |
| font-family: var(--font-display); | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| /* web-design-guidelines: text-wrap balance prevents widows */ | |
| text-wrap: balance; | |
| } | |
| /* ββ Scrollbar βββββββββββββββββββββββββββββββββββββββββ */ | |
| ::-webkit-scrollbar { | |
| width: 5px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--bg-elevated); | |
| border-radius: 3px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--accent-red); | |
| } | |
| /* ββ Focus (web-design-guidelines: never outline-none without replacement) */ | |
| :focus-visible { | |
| outline: 2px solid var(--accent-cyan); | |
| outline-offset: 3px; | |
| border-radius: 4px; | |
| } | |
| /* Textarea: use box-shadow ring for :focus-visible so keyboard users see focus; | |
| border-color animation still handled by onFocus/onBlur JS handlers */ | |
| .claim-textarea:focus-visible { | |
| outline: none; | |
| box-shadow: 0 0 0 2px var(--accent-red); | |
| } | |
| /* ββ Touch (web-design-guidelines) βββββββββββββββββββββ */ | |
| button, | |
| a, | |
| [role="button"] { | |
| touch-action: manipulation; | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| /* ββ Typography helpers ββββββββββββββββββββββββββββββββ */ | |
| .font-display { | |
| font-family: var(--font-display); | |
| } | |
| .font-mono { | |
| font-family: var(--font-mono); | |
| } | |
| /* web-design-guidelines: tabular-nums for data columns */ | |
| .tabular { | |
| font-variant-numeric: tabular-nums; | |
| font-family: var(--font-mono); | |
| } | |
| /* ββ Verdict Badges β broadcast news aesthetic βββββββ */ | |
| .badge-credible { | |
| background: rgba(22, 163, 74, 0.12); | |
| color: #4ade80; | |
| border: 1px solid rgba(22, 163, 74, 0.3); | |
| } | |
| .badge-unverified { | |
| background: rgba(217, 119, 6, 0.12); | |
| color: #fbbf24; | |
| border: 1px solid rgba(217, 119, 6, 0.3); | |
| } | |
| .badge-fake { | |
| background: rgba(220, 38, 38, 0.12); | |
| color: #f87171; | |
| border: 1px solid rgba(220, 38, 38, 0.35); | |
| } | |
| /* ββ Cards βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .card { | |
| background: var(--bg-surface); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| /* Sharp corners β editorial, not bubbly */ | |
| transition: border-color 0.2s; | |
| } | |
| .card:hover { | |
| border-color: var(--border-light); | |
| } | |
| .card-elevated { | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| } | |
| /* ββ Left-rule accent divider ββββββββββββββββββββββββββ */ | |
| .ruled { | |
| border-left: 3px solid var(--accent-red); | |
| padding-left: 16px; | |
| } | |
| /* ββ Nav link hover ββββββββββββββββββββββββββββββββββββββββ */ | |
| a.nav-link-item { | |
| text-decoration: none; | |
| display: block; | |
| } | |
| a.nav-link-item:hover > div { | |
| color: var(--text-primary) ; | |
| } | |
| /* ββ Animations (frontend-design: one orchestrated reveal) βββ */ | |
| /* web-design-guidelines: honor prefers-reduced-motion */ | |
| @media (prefers-reduced-motion: no-preference) { | |
| @keyframes fadeUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(14px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes barGrow { | |
| from { | |
| width: 0; | |
| } | |
| } | |
| @keyframes scanline { | |
| from { | |
| top: -8px; | |
| } | |
| to { | |
| top: 100%; | |
| } | |
| } | |
| .fade-up { | |
| animation: fadeUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| } | |
| .fade-up-1 { | |
| animation: fadeUp 0.5s 0.05s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .fade-up-2 { | |
| animation: fadeUp 0.5s 0.1s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .fade-up-3 { | |
| animation: fadeUp 0.5s 0.15s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .fade-up-4 { | |
| animation: fadeUp 0.5s 0.2s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .fade-up-5 { | |
| animation: fadeUp 0.5s 0.25s cubic-bezier(0.16, 1, 0.3, 1) both; | |
| } | |
| .bar-fill { | |
| animation: barGrow 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| } | |
| @keyframes shimmer { | |
| 0% { | |
| transform: translateX(-100%); | |
| } | |
| 100% { | |
| transform: translateX(100%); | |
| } | |
| } | |
| } | |
| /* Fallback: no animation for reduced-motion users */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .fade-up, | |
| .fade-up-1, | |
| .fade-up-2, | |
| .fade-up-3, | |
| .fade-up-4, | |
| .fade-up-5 { | |
| animation: none; | |
| opacity: 1; | |
| transform: none; | |
| } | |
| .bar-fill { | |
| animation: none; | |
| } | |
| } | |
| /* ββ Gauge βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (prefers-reduced-motion: no-preference) { | |
| @keyframes gaugeFill { | |
| from { | |
| stroke-dashoffset: 400; | |
| } | |
| } | |
| .gauge-arc { | |
| animation: gaugeFill 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; | |
| } | |
| } | |
| /* ββ Verdict breaking-news banner ββββββββββββββββββββββββ */ | |
| .verdict-banner { | |
| font-family: var(--font-display); | |
| font-weight: 800; | |
| font-size: 11px; | |
| letter-spacing: 0.25em; | |
| text-transform: uppercase; | |
| padding: 3px 10px; | |
| border-radius: 2px; | |
| } | |
| .verdict-banner-credible { | |
| background: var(--credible); | |
| color: #fff; | |
| } | |
| .verdict-banner-unverified { | |
| background: var(--unverified); | |
| color: #fff; | |
| } | |
| .verdict-banner-fake { | |
| background: var(--fake); | |
| color: #fff; | |
| } |