:root { --bg: #f4efe5; --bg-accent: #e5f0e8; --panel: rgba(255, 252, 245, 0.92); --panel-strong: rgba(255, 248, 234, 0.98); --text: #17211d; --muted: #51615b; --line: rgba(23, 33, 29, 0.12); --brand: #0d8f71; --brand-soft: rgba(13, 143, 113, 0.14); --accent: #ef8354; --shadow: 0 18px 60px rgba(20, 30, 28, 0.08); } * { box-sizing: border-box; } body { margin: 0; height: 100vh; overflow: hidden; font-family: "IBM Plex Sans", sans-serif; color: var(--text); background: radial-gradient(circle at top left, rgba(239, 131, 84, 0.2), transparent 28%), radial-gradient(circle at top right, rgba(13, 143, 113, 0.18), transparent 24%), linear-gradient(135deg, var(--bg) 0%, var(--bg-accent) 100%); } .page-shell { display: grid; grid-template-columns: minmax(300px, 360px) 1fr; gap: 20px; padding: 24px; height: 100vh; min-height: 0; } .control-rail, .content-pane { display: flex; flex-direction: column; gap: 20px; min-height: 0; } .control-rail { overflow-y: auto; overflow-x: hidden; padding-right: 4px; } .content-pane { overflow: hidden; } .hero-card, .panel-card, .canvas-card { border: 1px solid var(--line); background: var(--panel); backdrop-filter: blur(14px); border-radius: 24px; box-shadow: var(--shadow); } .hero-card { padding: 14px 18px; background: linear-gradient(160deg, rgba(255, 252, 245, 0.98), rgba(245, 255, 250, 0.94)); } .panel-card { padding: 20px; } .canvas-card { padding: 22px; min-height: 0; } .eyebrow { margin: 0 0 4px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand); } h1, h2 { margin: 0; font-family: "Space Grotesk", sans-serif; } h1 { font-size: clamp(1.35rem, 2vw, 1.8rem); line-height: 1.05; } h2 { font-size: 1.3rem; } .muted { color: var(--muted); } .hero-card .muted { margin: 4px 0 0; font-size: 0.88rem; line-height: 1.25; } .hero-title-row { display: flex; align-items: center; gap: 10px; } .hero-info-wrap { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; } .hero-info-button { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid rgba(23, 33, 29, 0.12); border-radius: 999px; background: rgba(255, 255, 255, 0.72); color: var(--brand); font-family: "Space Grotesk", sans-serif; font-size: 0.95rem; font-weight: 700; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; flex: 0 0 auto; animation: infoPulse 2.4s ease-in-out infinite; } .hero-info-button:hover { background: rgba(13, 143, 113, 0.12); transform: translateY(-1px); box-shadow: 0 10px 22px rgba(20, 30, 28, 0.1); } .hero-info-button:focus-visible { outline: 2px solid rgba(13, 143, 113, 0.35); outline-offset: 2px; } .analysis-hint { position: absolute; top: calc(100% + 10px); right: -6px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 10px 8px 12px; border-radius: 14px; border: 1px solid rgba(23, 33, 29, 0.1); background: rgba(255, 252, 245, 0.98); color: var(--text); box-shadow: 0 18px 36px rgba(20, 30, 28, 0.12); white-space: nowrap; z-index: 4; animation: hintFloat 2.8s ease-in-out infinite; } .analysis-hint::before { content: ""; position: absolute; top: -6px; right: 14px; width: 12px; height: 12px; background: rgba(255, 252, 245, 0.98); border-top: 1px solid rgba(23, 33, 29, 0.1); border-left: 1px solid rgba(23, 33, 29, 0.1); transform: rotate(45deg); } .analysis-hint-text { position: relative; z-index: 1; font-size: 0.8rem; font-weight: 600; color: var(--muted); } .analysis-hint-close { position: relative; z-index: 1; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 999px; background: rgba(23, 33, 29, 0.08); color: var(--text); font-size: 0.95rem; line-height: 1; cursor: pointer; } @keyframes infoPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(13, 143, 113, 0.0); transform: translateY(0); } 45% { box-shadow: 0 0 0 8px rgba(13, 143, 113, 0.0), 0 0 0 0 rgba(13, 143, 113, 0.16); transform: translateY(-1px); } 60% { box-shadow: 0 0 0 10px rgba(13, 143, 113, 0.0), 0 0 0 0 rgba(13, 143, 113, 0.0); } } @keyframes hintFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } } .hero-reference { margin-top: 8px; border-top: 1px solid rgba(23, 33, 29, 0.08); padding-top: 8px; } .hero-reference summary { cursor: pointer; font-size: 0.85rem; font-weight: 700; color: var(--muted); list-style: none; } .hero-reference summary::-webkit-details-marker { display: none; } .hero-reference summary::after { content: "Show"; margin-left: 8px; font-size: 0.78rem; color: var(--brand); } .hero-reference[open] summary::after { content: "Hide"; } .hero-reference-stack { margin-top: 10px; } .panel-header, .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; } .status-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); font-size: 0.84rem; font-weight: 700; } .loading-panel { display: grid; gap: 8px; margin: 12px 0 16px; } .loading-panel[hidden] { display: none !important; } .loading-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 0.92rem; } .loading-meta strong { font-size: 0.94rem; } .loading-track { overflow: hidden; width: 100%; height: 10px; border-radius: 999px; background: rgba(23, 33, 29, 0.08); } .loading-bar { width: 0%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand) 0%, var(--accent) 100%); transition: width 180ms ease; } .slider-label, .meta-label { display: block; margin-bottom: 6px; font-size: 0.8rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; } input[type="range"] { width: 100%; margin: 8px 0 12px; accent-color: var(--brand); } .run-select { width: 100%; margin: 8px 0 12px; padding: 12px 14px; border: 1px solid rgba(23, 33, 29, 0.12); border-radius: 14px; background: rgba(255, 255, 255, 0.9); color: var(--text); font: inherit; } .hidden-control { display: none !important; } [hidden] { display: none !important; } .results-table-wrap { overflow-x: auto; overflow-y: auto; margin: 8px 0 12px; border: 1px solid rgba(23, 33, 29, 0.08); border-radius: 16px; background: rgba(255, 255, 255, 0.7); max-height: 26vh; } .results-table { width: 100%; min-width: 100%; border-collapse: collapse; font-size: 0.8rem; } .results-table th, .results-table td { padding: 10px 10px; text-align: left; border-bottom: 1px solid rgba(23, 33, 29, 0.08); white-space: nowrap; } .results-table th { position: sticky; top: 0; z-index: 1; background: rgba(255, 248, 234, 0.98); font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); } .results-table tbody tr { cursor: pointer; transition: background 160ms ease, color 160ms ease; } .results-table tbody tr:hover { background: rgba(13, 143, 113, 0.08); } .results-table tbody tr.is-selected { background: rgba(13, 143, 113, 0.14); } .results-table td.metric-cell { font-variant-numeric: tabular-nums; } .results-table td.metric-cell-strong { font-weight: 700; color: var(--brand); } .results-table td.run-cell { max-width: 88px; overflow: hidden; text-overflow: ellipsis; } .step-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; } .step-meta strong { font-size: 1rem; } .timeline-controls { display: grid; gap: 4px; margin-top: 2px; flex: 0 0 auto; } .timeline-meta-row { display: flex; flex-wrap: wrap; gap: 8px; } .timeline-meta-item { display: inline-flex; align-items: flex-start; gap: 8px; padding: 7px 9px; border-radius: 14px; background: rgba(255, 255, 255, 0.6); border: 1px solid rgba(23, 33, 29, 0.08); } .timeline-meta-item strong { font-size: 0.95rem; } .timeline-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; min-width: 0; } .timeline-slider-inline { display: flex; align-items: center; flex: 0 0 200px; min-width: 160px; max-width: 200px; } .timeline-slider-inline input[type="range"] { width: 100%; margin: 0; } .timeline-title-pill { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: rgba(13, 143, 113, 0.1); color: var(--brand); font-size: 0.85rem; font-weight: 700; } .timeline-title-metrics { font-size: 0.88rem; line-height: 1.25; color: var(--muted); } .timeline-metrics-row { display: inline-flex; align-items: center; gap: 8px; flex: 0 1 auto; min-width: 0; flex-wrap: nowrap; } .timeline-title-metrics-status { flex: 0 1 auto; white-space: nowrap; } .timeline-metric-pill { background: rgba(23, 33, 29, 0.06); color: var(--text); font-weight: 600; white-space: nowrap; } .timeline-metric-pill-test { background: rgba(239, 131, 84, 0.12); color: #9a4d28; } @media (max-width: 1200px) { .timeline-title-row { flex-wrap: wrap; } .timeline-slider-inline { flex: 1 1 220px; min-width: 180px; max-width: 320px; } } .section-heading-compact { margin-top: 2px; } .meta-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; } .experiment-card { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; } .experiment-scroll { overflow: auto; min-height: 0; padding-right: 4px; } .meta-list div { display: grid; gap: 4px; padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.55); border: 1px solid rgba(23, 33, 29, 0.08); } .meta-list dt { font-size: 0.8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; } .meta-list dd { margin: 0; font-size: 0.98rem; line-height: 1.4; } .reference-stack { display: grid; gap: 14px; } .reference-figure { margin: 0; display: grid; gap: 8px; } .reference-figure img { width: 100%; display: block; border-radius: 18px; border: 1px solid rgba(23, 33, 29, 0.08); background: white; cursor: zoom-in; transition: transform 160ms ease, box-shadow 160ms ease; } .reference-figure img:hover { transform: translateY(-1px); box-shadow: 0 12px 28px rgba(20, 30, 28, 0.14); } .reference-figure figcaption { font-size: 0.9rem; color: var(--muted); } .image-lightbox { position: fixed; inset: 0; display: grid; place-items: center; padding: 24px; z-index: 9999; } .image-lightbox[hidden] { display: none !important; } .image-lightbox-backdrop { position: absolute; inset: 0; background: rgba(23, 33, 29, 0.56); backdrop-filter: blur(4px); } .image-lightbox-dialog { position: relative; z-index: 1; display: grid; gap: 10px; width: min(92vw, 1120px); max-height: calc(100vh - 48px); padding: 18px 18px 14px; border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 252, 245, 0.98); box-shadow: 0 32px 80px rgba(20, 30, 28, 0.35); } .image-lightbox-close { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border: 0; border-radius: 999px; background: rgba(23, 33, 29, 0.08); color: var(--text); font-size: 1.5rem; line-height: 1; cursor: pointer; } .image-lightbox-image { width: 100%; height: auto; max-height: calc(100vh - 132px); object-fit: contain; border-radius: 18px; background: white; } .image-lightbox-caption { margin: 0; text-align: center; color: var(--muted); font-size: 0.92rem; } .analysis-modal { position: fixed; inset: 0; display: grid; place-items: center; padding: 24px; z-index: 10000; } .analysis-modal[hidden] { display: none !important; } .analysis-modal-backdrop { position: absolute; inset: 0; background: rgba(23, 33, 29, 0.56); backdrop-filter: blur(6px); } .analysis-modal-dialog { position: relative; z-index: 1; width: min(900px, calc(100vw - 48px)); max-height: calc(100vh - 48px); border-radius: 28px; border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(255, 252, 245, 0.98); box-shadow: 0 32px 84px rgba(20, 30, 28, 0.34); overflow: hidden; } .analysis-modal-close { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border: 0; border-radius: 999px; background: rgba(23, 33, 29, 0.08); color: var(--text); font-size: 1.55rem; line-height: 1; cursor: pointer; } .analysis-modal-content { overflow: auto; max-height: calc(100vh - 48px); padding: 28px 30px 28px; } .analysis-markdown { color: var(--text); line-height: 1.75; } .analysis-markdown h1, .analysis-markdown h2, .analysis-markdown h3 { font-family: "Space Grotesk", sans-serif; line-height: 1.15; } .analysis-markdown h1 { margin: 0 0 12px; font-size: 1.62rem; } .analysis-markdown h2 { margin: 28px 0 10px; font-size: 1.1rem; padding-top: 18px; border-top: 1px solid rgba(23, 33, 29, 0.08); } .analysis-markdown h2:first-child, .analysis-markdown h1 + h2 { border-top: 0; padding-top: 0; } .analysis-markdown p { margin: 0 0 14px; } .analysis-markdown ul, .analysis-markdown ol { margin: 0 0 14px 1.2rem; padding: 0; } .analysis-markdown li + li { margin-top: 6px; } .analysis-markdown code { padding: 0.12rem 0.36rem; border-radius: 8px; background: rgba(23, 33, 29, 0.06); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.92em; } .heatmap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; flex: 1 1 auto; min-height: 0; align-items: stretch; } .heatmap-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; border: 1px solid rgba(23, 33, 29, 0.08); background: var(--panel-strong); min-height: 0; } .heatmap-header { padding: 14px 16px; font-weight: 700; border-bottom: 1px solid rgba(23, 33, 29, 0.08); } .plot-surface { width: 100%; min-height: 360px; } .plot-surface-hero { min-height: clamp(230px, 33vh, 380px); flex: 1 1 auto; } .plot-surface-tall { min-height: clamp(104px, 13vh, 154px); } .plot-surface-wide { min-height: clamp(168px, 22vh, 250px); height: 100%; } .chart-wrap { position: relative; min-height: 0; padding: 2px 0 0; flex: 1 1 auto; display: flex; } #loss-chart { width: 100%; height: 100%; min-height: 0; border-radius: 18px; border: 1px solid rgba(23, 33, 29, 0.08); background: linear-gradient(180deg, rgba(13, 143, 113, 0.05), rgba(13, 143, 113, 0)), white; } .chart-empty { position: absolute; inset: 20px; display: flex; align-items: center; justify-content: center; padding: 24px; text-align: center; border: 1px dashed rgba(23, 33, 29, 0.18); border-radius: 18px; background: rgba(255, 252, 245, 0.85); color: var(--muted); font-weight: 500; z-index: 2; } .chart-empty[hidden] { display: none !important; } .error-column-card { display: flex; flex-direction: column; } .error-column { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 14px; flex: 1 1 auto; min-height: 0; } .error-panel { display: grid; grid-template-columns: 104px minmax(0, 1fr); overflow: hidden; border-radius: 16px; border: 1px solid rgba(23, 33, 29, 0.08); background: rgba(255, 255, 255, 0.55); } .error-panel-title { display: flex; align-items: center; justify-content: center; padding: 12px 10px; font-size: 0.82rem; font-weight: 700; text-align: center; color: var(--muted); border-right: 1px solid rgba(23, 33, 29, 0.08); background: rgba(255, 252, 245, 0.72); } .content-pane > .canvas-card:first-child { flex: 1 1 56%; display: flex; flex-direction: column; } .content-pane > .canvas-card:last-child { flex: 1 1 44%; display: flex; flex-direction: column; min-height: 0; } @media (max-width: 1500px) { .heatmap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .error-column-card { grid-column: 1 / -1; } } @media (max-width: 1100px) { body { height: auto; overflow: auto; } .page-shell { grid-template-columns: 1fr; height: auto; } .heatmap-grid { grid-template-columns: 1fr; } .control-rail, .content-pane { overflow: visible; } .analysis-modal { padding: 14px; } .analysis-modal-dialog { width: min(100%, calc(100vw - 28px)); max-height: calc(100vh - 28px); } .analysis-modal-content { padding: 22px 18px 22px; max-height: calc(100vh - 28px); } .analysis-hint { right: auto; left: -12px; } .analysis-hint::before { right: auto; left: 18px; } }