Spaces:
Sleeping
Sleeping
| @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Grotesk:wght@400;500;700&display=swap"); | |
| :root { | |
| --bg: #071015; | |
| --bg-alt: #0b1720; | |
| --panel: rgba(10, 18, 26, 0.88); | |
| --panel-strong: rgba(16, 28, 39, 0.94); | |
| --ink: #f4f8fb; | |
| --muted: #a8bccb; | |
| --accent: #6be7c8; | |
| --accent-2: #85a7ff; | |
| --warning: #ffd36b; | |
| --border: rgba(149, 188, 215, 0.18); | |
| --border-strong: rgba(149, 188, 215, 0.3); | |
| --shadow: 0 24px 60px rgba(0, 0, 0, 0.34); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| color: var(--ink); | |
| font-family: "Space Grotesk", "Segoe UI", sans-serif; | |
| background: | |
| radial-gradient(circle at 16% 14%, rgba(107, 231, 200, 0.16), transparent 28%), | |
| radial-gradient(circle at 84% 16%, rgba(133, 167, 255, 0.14), transparent 26%), | |
| radial-gradient(circle at 72% 78%, rgba(255, 211, 107, 0.08), transparent 24%), | |
| linear-gradient(160deg, var(--bg) 0%, #08141b 46%, var(--bg-alt) 100%); | |
| } | |
| #root { | |
| min-height: 100vh; | |
| } | |
| .app-shell { | |
| width: min(1360px, calc(100vw - 2rem)); | |
| margin: 0 auto; | |
| padding: 1.1rem 0 3rem; | |
| } | |
| .topbar { | |
| display: flex; | |
| align-items: end; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| padding: 0.8rem 0 1rem; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .brand-eyebrow, | |
| .section-label { | |
| margin: 0; | |
| text-transform: uppercase; | |
| letter-spacing: 0.18em; | |
| color: var(--muted); | |
| font-size: 0.72rem; | |
| } | |
| .brand-block h1 { | |
| margin: 0.28rem 0 0; | |
| font-size: clamp(1.3rem, 3vw, 2.15rem); | |
| letter-spacing: -0.03em; | |
| } | |
| .nav-links { | |
| display: flex; | |
| gap: 0.7rem; | |
| } | |
| .nav-links a { | |
| text-decoration: none; | |
| color: var(--ink); | |
| border: 1px solid var(--border); | |
| padding: 0.52rem 0.95rem; | |
| border-radius: 999px; | |
| transition: transform 160ms ease, background 160ms ease, border-color 160ms ease, color 160ms ease; | |
| backdrop-filter: blur(12px); | |
| } | |
| .nav-links a:hover, | |
| .nav-links a.active { | |
| border-color: var(--accent); | |
| background: rgba(107, 231, 200, 0.12); | |
| color: var(--ink); | |
| transform: translateY(-1px); | |
| } | |
| .page { | |
| margin-top: 1.4rem; | |
| } | |
| .hero-card, | |
| .panel, | |
| .about-card { | |
| border: 1px solid var(--border); | |
| border-radius: 1.2rem; | |
| background: linear-gradient(180deg, rgba(12, 22, 31, 0.94), rgba(8, 16, 24, 0.84)); | |
| box-shadow: var(--shadow); | |
| } | |
| .hero-console { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr); | |
| gap: 1rem; | |
| padding: 1.4rem; | |
| } | |
| .hero-copy h2, | |
| .panel h3, | |
| .about-card h2 { | |
| margin: 0.3rem 0 0.7rem; | |
| letter-spacing: -0.03em; | |
| } | |
| .hero-copy h2 { | |
| font-size: clamp(1.5rem, 3vw, 2.65rem); | |
| line-height: 1.04; | |
| } | |
| .hero-copy p, | |
| .panel-note, | |
| .about-card p, | |
| .task-card p, | |
| .detail-card p, | |
| .empty-state, | |
| .status-block small, | |
| .stat-card small, | |
| .task-card small, | |
| .trace-item p { | |
| color: var(--muted); | |
| line-height: 1.55; | |
| } | |
| .hero-copy p { | |
| margin: 0; | |
| max-width: 66ch; | |
| } | |
| .hero-stats { | |
| display: grid; | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| gap: 0.75rem; | |
| align-content: start; | |
| } | |
| .stat-card { | |
| border: 1px solid var(--border); | |
| border-radius: 1rem; | |
| padding: 0.9rem 0.95rem; | |
| background: rgba(255, 255, 255, 0.03); | |
| backdrop-filter: blur(12px); | |
| } | |
| .stat-card span, | |
| .metric-card span, | |
| .status-block span, | |
| .json-card-head small, | |
| .panel-head .score-pill, | |
| .trace-item small, | |
| .detail-card small { | |
| color: var(--muted); | |
| font-size: 0.75rem; | |
| letter-spacing: 0.06em; | |
| text-transform: uppercase; | |
| } | |
| .stat-card strong { | |
| display: block; | |
| margin: 0.35rem 0; | |
| font-size: 1.15rem; | |
| } | |
| .console-layout { | |
| display: grid; | |
| grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); | |
| gap: 1rem; | |
| margin-top: 1rem; | |
| } | |
| .console-sidebar, | |
| .console-main { | |
| display: grid; | |
| gap: 1rem; | |
| } | |
| .panel { | |
| padding: 1.1rem; | |
| } | |
| .panel-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: start; | |
| gap: 1rem; | |
| } | |
| .panel-head h3 { | |
| margin-top: 0.12rem; | |
| margin-bottom: 0; | |
| } | |
| .panel-note { | |
| margin: 0.25rem 0 1rem; | |
| } | |
| .hero-card p, | |
| .panel p, | |
| .panel h3, | |
| .about-card p, | |
| .about-card h2 { | |
| word-break: normal; | |
| } | |
| .hero-stats, | |
| .metric-grid, | |
| .json-grid, | |
| .detail-grid { | |
| margin-top: 1rem; | |
| } | |
| .task-list { | |
| display: grid; | |
| gap: 0.7rem; | |
| margin-top: 1rem; | |
| } | |
| .task-card { | |
| width: 100%; | |
| border: 1px solid var(--border); | |
| border-radius: 1rem; | |
| background: rgba(255, 255, 255, 0.03); | |
| color: var(--ink); | |
| text-align: left; | |
| padding: 0.92rem; | |
| cursor: pointer; | |
| transition: transform 160ms ease, border-color 160ms ease, background 160ms ease; | |
| } | |
| .task-card:hover, | |
| .task-card.active { | |
| transform: translateY(-2px); | |
| border-color: rgba(107, 231, 200, 0.52); | |
| background: rgba(107, 231, 200, 0.08); | |
| } | |
| .task-card-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .task-card-head span { | |
| font-size: 0.7rem; | |
| color: var(--accent); | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| } | |
| .task-card p { | |
| margin: 0.55rem 0 0.55rem; | |
| } | |
| .control-stack { | |
| display: grid; | |
| gap: 0.65rem; | |
| margin-top: 1rem; | |
| } | |
| .primary-button, | |
| .secondary-button { | |
| width: 100%; | |
| border-radius: 0.95rem; | |
| padding: 0.84rem 1rem; | |
| border: 1px solid var(--border-strong); | |
| font: inherit; | |
| font-weight: 700; | |
| cursor: pointer; | |
| transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, color 160ms ease; | |
| } | |
| .primary-button { | |
| background: linear-gradient(180deg, rgba(107, 231, 200, 0.98), rgba(67, 196, 170, 0.94)); | |
| color: #03120f; | |
| } | |
| .primary-button.ghost, | |
| .secondary-button { | |
| background: rgba(255, 255, 255, 0.04); | |
| color: var(--ink); | |
| } | |
| .primary-button.accent, | |
| .secondary-button.accent { | |
| background: linear-gradient(180deg, rgba(133, 167, 255, 0.96), rgba(101, 124, 230, 0.92)); | |
| color: #06101f; | |
| } | |
| .primary-button:hover, | |
| .secondary-button:hover, | |
| .pop-button:hover { | |
| transform: translateY(-2px); | |
| } | |
| .primary-button:disabled, | |
| .secondary-button:disabled, | |
| .task-card:disabled, | |
| .pop-button:disabled { | |
| cursor: not-allowed; | |
| opacity: 0.6; | |
| transform: none; | |
| } | |
| .status-block, | |
| .metric-card, | |
| .grade-card, | |
| .json-card, | |
| .detail-card, | |
| .trace-item { | |
| border: 1px solid var(--border); | |
| border-radius: 1rem; | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| .status-block { | |
| margin-top: 1rem; | |
| padding: 0.95rem; | |
| } | |
| .status-block strong { | |
| display: block; | |
| margin: 0.4rem 0 0.25rem; | |
| } | |
| .score-pill-row { | |
| display: flex; | |
| gap: 0.45rem; | |
| flex-wrap: wrap; | |
| justify-content: flex-end; | |
| } | |
| .score-pill { | |
| border: 1px solid var(--border); | |
| border-radius: 999px; | |
| padding: 0.35rem 0.65rem; | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| .metric-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 0.75rem; | |
| } | |
| .metric-card { | |
| padding: 0.9rem; | |
| } | |
| .metric-card strong { | |
| display: block; | |
| margin-top: 0.35rem; | |
| font-size: 1.4rem; | |
| } | |
| .json-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 0.9rem; | |
| } | |
| .json-card { | |
| overflow: hidden; | |
| } | |
| .json-card-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: baseline; | |
| gap: 0.75rem; | |
| padding: 0.85rem 0.9rem 0.35rem; | |
| } | |
| .json-card-head h4, | |
| .detail-column h4 { | |
| margin: 0; | |
| } | |
| .json-card pre, | |
| .grade-card pre { | |
| margin: 0; | |
| padding: 0.9rem; | |
| max-height: 340px; | |
| overflow: auto; | |
| background: rgba(1, 9, 15, 0.6); | |
| border-top: 1px solid var(--border); | |
| color: #d8eef8; | |
| font-family: "IBM Plex Mono", "Cascadia Mono", monospace; | |
| font-size: 0.84rem; | |
| line-height: 1.5; | |
| white-space: pre-wrap; | |
| } | |
| .draft-editor { | |
| width: 100%; | |
| min-height: 240px; | |
| margin-top: 0.9rem; | |
| padding: 0.95rem 1rem; | |
| border-radius: 1rem; | |
| border: 1px solid var(--border-strong); | |
| background: rgba(1, 9, 15, 0.75); | |
| color: #dbf1ff; | |
| font-family: "IBM Plex Mono", "Cascadia Mono", monospace; | |
| font-size: 0.84rem; | |
| line-height: 1.5; | |
| resize: vertical; | |
| } | |
| .draft-editor:focus { | |
| outline: 2px solid rgba(107, 231, 200, 0.45); | |
| outline-offset: 2px; | |
| } | |
| .panel-actions { | |
| display: flex; | |
| gap: 0.65rem; | |
| flex-wrap: wrap; | |
| margin-top: 0.8rem; | |
| } | |
| .panel-actions .secondary-button { | |
| width: auto; | |
| flex: 1 1 220px; | |
| } | |
| .grade-card { | |
| margin-top: 1rem; | |
| padding: 0; | |
| overflow: hidden; | |
| } | |
| .grade-card strong { | |
| display: block; | |
| padding: 0.85rem 0.9rem 0.4rem; | |
| } | |
| .trace-list { | |
| display: grid; | |
| gap: 0.7rem; | |
| margin-top: 0.95rem; | |
| } | |
| .trace-item { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| padding: 0.85rem 0.95rem; | |
| } | |
| .trace-item strong, | |
| .detail-card strong { | |
| display: block; | |
| margin-bottom: 0.2rem; | |
| } | |
| .trace-item p, | |
| .detail-card p { | |
| margin: 0; | |
| } | |
| .trace-meta { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-end; | |
| gap: 0.3rem; | |
| text-align: right; | |
| } | |
| .trace-meta span { | |
| font-size: 0.76rem; | |
| color: var(--accent); | |
| font-family: "IBM Plex Mono", "Cascadia Mono", monospace; | |
| } | |
| .detail-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 0.75rem; | |
| } | |
| .detail-column { | |
| border: 1px solid var(--border); | |
| border-radius: 1rem; | |
| padding: 0.9rem; | |
| background: rgba(255, 255, 255, 0.03); | |
| } | |
| .detail-column h4 { | |
| margin-bottom: 0.75rem; | |
| } | |
| .detail-card { | |
| padding: 0.75rem 0.85rem; | |
| margin-top: 0.65rem; | |
| } | |
| .empty-state { | |
| margin: 0.5rem 0 0; | |
| font-size: 0.94rem; | |
| } | |
| .about-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 1rem; | |
| margin-top: 1rem; | |
| } | |
| .about-card { | |
| padding: 1.1rem; | |
| } | |
| .results-toolbar, | |
| .chip-row, | |
| .history-filters, | |
| .ranking-grid { | |
| display: none; | |
| } | |
| .reveal { | |
| animation: rise 420ms ease both; | |
| } | |
| @keyframes rise { | |
| from { | |
| opacity: 0; | |
| transform: translateY(14px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @media (max-width: 1120px) { | |
| .hero-console, | |
| .console-layout, | |
| .about-grid, | |
| .detail-grid, | |
| .json-grid, | |
| .metric-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .hero-stats { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| } | |
| @media (max-width: 780px) { | |
| .app-shell { | |
| width: min(100vw - 1rem, 1360px); | |
| } | |
| .topbar { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| .hero-stats { | |
| grid-template-columns: 1fr; | |
| } | |
| .panel-head, | |
| .trace-item { | |
| flex-direction: column; | |
| } | |
| .score-pill-row, | |
| .trace-meta { | |
| justify-content: flex-start; | |
| align-items: flex-start; | |
| text-align: left; | |
| } | |
| .panel-actions .secondary-button { | |
| flex: 1 1 100%; | |
| } | |
| } |