:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #08111f; color: #172033; --navy: #08111f; --ink: #172033; --muted: #657188; --panel: #ffffff; --panel-soft: #f6f8fc; --line: #d9e0ee; --blue: #1957d2; --blue-dark: #0c3f9d; --green: #0c7c59; --gold: #b7791f; --red: #ba1a1a; --shadow: 0 24px 70px rgba(2, 8, 23, 0.22); } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at top left, rgba(25, 87, 210, 0.45), transparent 32rem), radial-gradient(circle at top right, rgba(12, 124, 89, 0.38), transparent 28rem), var(--navy); } button, input, textarea, select { font: inherit; } button { border: 0; border-radius: 999px; background: var(--blue); color: #ffffff; font-weight: 800; padding: 0.72rem 1rem; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; } button:hover:not(:disabled) { background: var(--blue-dark); transform: translateY(-1px); box-shadow: 0 10px 18px rgba(25, 87, 210, 0.22); } button:disabled { cursor: not-allowed; opacity: 0.62; } input, textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 0.9rem; color: var(--ink); background: #ffffff; padding: 0.82rem 0.95rem; } textarea { min-height: 8rem; resize: vertical; } label { font-weight: 800; } progress { width: 100%; height: 0.8rem; border: 0; border-radius: 999px; overflow: hidden; background: #e8edf7; } progress::-webkit-progress-bar { background: #e8edf7; } progress::-webkit-progress-value { background: linear-gradient(90deg, var(--blue), var(--green)); } progress::-moz-progress-bar { background: linear-gradient(90deg, var(--blue), var(--green)); } .app-shell { width: min(1440px, 100%); margin: 0 auto; padding: 1rem; } .skip-link { position: absolute; top: -4rem; left: 1rem; z-index: 10; border-radius: 0.7rem; background: #ffffff; color: var(--blue-dark); font-weight: 800; padding: 0.75rem 1rem; } .skip-link:focus { top: 1rem; } .hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; margin: 0 auto 1rem; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 2rem; background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(238, 244, 255, 0.9)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%231957d2' stroke-opacity='.08'%3E%3Cpath d='M80 8a72 72 0 1 0 0 144A72 72 0 0 0 80 8Z'/%3E%3Cpath d='M80 8v144M8 80h144M29 29l102 102M131 29 29 131'/%3E%3C/g%3E%3C/svg%3E"); box-shadow: var(--shadow); padding: clamp(1.25rem, 2vw, 2rem); } .hero h1, .panel h2, .panel h3, .panel h4, .panel p { margin-top: 0; } .hero h1 { max-width: 16ch; margin-bottom: 0.75rem; color: var(--ink); font-size: clamp(2.2rem, 5vw, 5rem); line-height: 0.95; letter-spacing: -0.08em; } .hero-copy { max-width: 70ch; margin-bottom: 0; color: var(--muted); font-size: 1.08rem; } .eyebrow { margin-bottom: 0.35rem; color: var(--blue-dark); font-size: 0.77rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; } .hero-actions { display: grid; gap: 0.8rem; justify-items: end; } .score-card { min-width: 12rem; border: 1px solid var(--line); border-radius: 1.4rem; background: #ffffff; padding: 1rem; } .score-card span, .score-card small { display: block; color: var(--muted); font-weight: 800; } .score-card strong { display: block; color: var(--blue-dark); font-size: 2rem; line-height: 1.05; } .score-card.muted strong { color: var(--ink); } .secondary-button { border: 1px solid var(--line); background: #ffffff; color: var(--blue-dark); } .secondary-button:hover:not(:disabled) { background: #f2f6ff; } .main-grid { display: grid; gap: 1rem; } .panel, .alert, .notice { border: 1px solid var(--line); border-radius: 1.5rem; background: var(--panel); box-shadow: 0 18px 50px rgba(2, 8, 23, 0.12); padding: clamp(1rem, 2vw, 1.45rem); } .alert { display: grid; gap: 0.25rem; border-color: rgba(186, 26, 26, 0.35); background: #fff3f3; color: #6c1212; } .notice { border-color: rgba(12, 124, 89, 0.35); background: #effaf5; color: #064c36; font-weight: 800; } .loading-panel, .onboarding, .welcome-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.75fr); gap: 1rem; align-items: center; } .spinner { width: 3rem; height: 3rem; border: 0.45rem solid #dce6fa; border-top-color: var(--blue); border-radius: 50%; animation: spin 900ms linear infinite; } @keyframes spin { to { transform: rotate(1turn); } } .onboarding-form, .memory-form { display: grid; gap: 0.72rem; border-radius: 1.2rem; background: var(--panel-soft); padding: 1rem; } .stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.7rem; } .stat-card { border: 1px solid var(--line); border-radius: 1rem; background: var(--panel-soft); padding: 0.85rem; } .stat-card span, .stat-card small { display: block; color: var(--muted); font-size: 0.82rem; font-weight: 800; } .stat-card strong { display: block; color: var(--ink); font-size: 1.8rem; line-height: 1; } .section-heading { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; } .section-heading h2 { margin-bottom: 0.25rem; font-size: clamp(1.45rem, 2.4vw, 2.2rem); letter-spacing: -0.04em; } .pill, .rarity { display: inline-flex; width: fit-content; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: #eef4ff; color: var(--blue-dark); font-size: 0.74rem; font-weight: 900; letter-spacing: 0.04em; padding: 0.28rem 0.58rem; text-transform: uppercase; } .pill.success { border-color: rgba(12, 124, 89, 0.28); background: #e7f8f0; color: var(--green); } .challenge-grid, .prediction-grid, .badge-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; } .challenge-card, .collection-card, .trivia-card, .prediction-card, .badge-card, .memory-card { display: grid; gap: 0.8rem; align-content: space-between; border: 1px solid var(--line); border-radius: 1.1rem; background: var(--panel-soft); padding: 1rem; } .challenge-card-heading { display: flex; gap: 0.6rem; align-items: flex-start; justify-content: space-between; } .challenge-card h3, .collection-card h4, .trivia-card h3, .prediction-card h3, .badge-card h3, .memory-card h3 { margin-bottom: 0.35rem; color: var(--ink); line-height: 1.1; } .challenge-card p, .collection-card p, .trivia-card p, .prediction-card p, .badge-card p, .memory-card p, .empty-state p { color: var(--muted); } .collection-section { display: grid; gap: 0.8rem; margin-top: 1.3rem; } .collection-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.75rem; } .collection-card { min-height: 14rem; } .collection-card.rarity-epic, .collection-card.rarity-legendary, .badge-card.tier-gold, .badge-card.tier-platinum { background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(255, 249, 222, 0.9)), var(--panel-soft); } .trivia-list { display: grid; gap: 0.85rem; } .trivia-card { grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.8fr); align-items: center; } .answer-grid, .prediction-actions { display: grid; gap: 0.55rem; } .answer-grid button, .prediction-actions button { border: 1px solid var(--line); background: #ffffff; color: var(--blue-dark); text-align: left; } .answer-grid button:hover:not(:disabled), .prediction-actions button:hover:not(:disabled) { background: #eef4ff; } .correct-text { color: var(--green) !important; font-weight: 800; } .incorrect-text { color: var(--gold) !important; font-weight: 800; } .prediction-summary { border-left: 4px solid var(--green); padding-left: 0.7rem; } .memories-panel { display: grid; grid-template-columns: minmax(18rem, 0.8fr) minmax(0, 1fr); gap: 1rem; } .memories-panel .section-heading { grid-column: 1 / -1; } .memory-list { display: grid; gap: 0.75rem; } .badge-icon { font-size: 2.4rem; } .table-wrap { overflow-x: auto; } table { width: 100%; border-collapse: collapse; min-width: 44rem; } th, td { border-bottom: 1px solid var(--line); padding: 0.85rem; text-align: left; } th { color: var(--muted); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; } td small { display: block; color: var(--muted); } .current-user-row { background: #eefaf5; font-weight: 900; } .timeline { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; } .timeline li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: start; border-left: 4px solid var(--blue); border-radius: 0.8rem; background: var(--panel-soft); padding: 0.9rem; } .timeline h3 { margin: 0 0 0.25rem; } .timeline p { margin-bottom: 0.25rem; color: var(--muted); } .empty-state { border: 1px dashed #b7c3d8; border-radius: 1rem; background: #f8faff; padding: 1rem; } .sr-only { position: absolute; width: 1px; height: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; } @media (max-width: 1180px) { .challenge-grid, .badge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .prediction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 780px) { .app-shell { padding: 0.55rem; } .hero, .loading-panel, .onboarding, .welcome-panel, .trivia-card, .memories-panel { grid-template-columns: 1fr; } .hero-actions { justify-items: stretch; } .score-card { min-width: 0; } .section-heading { display: grid; } .challenge-grid, .collection-grid, .prediction-grid, .badge-grid { grid-template-columns: 1fr; } .hero h1 { font-size: clamp(2.2rem, 16vw, 4rem); } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; } }