/* ======================================== LLM Playground - Styles ======================================== */ /* CSS Variables */ :root { /* Colors - Light Theme */ --bg-primary: #ffffff; --bg-secondary: #f8fafc; --bg-tertiary: #f1f5f9; --text-primary: #1e293b; --text-secondary: #475569; --text-muted: #94a3b8; --accent-primary: #6366f1; --accent-secondary: #818cf8; --accent-tertiary: #a5b4fc; --border-color: #e2e8f0; --card-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06); --card-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* Gradients */ --gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6); --gradient-secondary: linear-gradient(135deg, #f8fafc, #e2e8f0); /* Spacing */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; --spacing-3xl: 4rem; /* Typography */ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace; /* Border Radius */ --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-full: 9999px; /* Transitions */ --transition-fast: 150ms ease; --transition-normal: 250ms ease; --transition-slow: 350ms ease; } /* Dark Theme */ [data-theme="dark"] { --bg-primary: #0f172a; --bg-secondary: #1e293b; --bg-tertiary: #334155; --text-primary: #f1f5f9; --text-secondary: #cbd5e1; --text-muted: #64748b; --border-color: #334155; --card-shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2); --card-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -2px rgba(0, 0, 0, 0.3); --gradient-secondary: linear-gradient(135deg, #1e293b, #334155); } /* ======================================== Reset & Base Styles ======================================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; font-size: 16px; } body { font-family: var(--font-sans); background-color: var(--bg-primary); color: var(--text-primary); line-height: 1.6; transition: background-color var(--transition-normal), color var(--transition-normal); } a { color: var(--accent-primary); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--accent-secondary); } img { max-width: 100%; height: auto; } /* ======================================== Navigation ======================================== */ .navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-md) var(--spacing-xl); background: var(--bg-primary); border-bottom: 1px solid var(--border-color); backdrop-filter: blur(10px); background-color: rgba(255, 255, 255, 0.9); } [data-theme="dark"] .navbar { background-color: rgba(15, 23, 42, 0.9); } .nav-brand { display: flex; align-items: center; gap: var(--spacing-sm); font-size: 1.25rem; font-weight: 700; color: var(--text-primary); } .nav-brand i { color: var(--accent-primary); font-size: 1.5rem; } .nav-links { display: flex; list-style: none; gap: var(--spacing-lg); } .nav-link { color: var(--text-secondary); font-weight: 500; padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--radius-md); transition: all var(--transition-fast); } .nav-link:hover, .nav-link.active { color: var(--accent-primary); background: var(--bg-secondary); } .theme-toggle { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: none; border-radius: var(--radius-full); background: var(--bg-secondary); color: var(--text-secondary); cursor: pointer; transition: all var(--transition-fast); } .theme-toggle:hover { background: var(--bg-tertiary); color: var(--accent-primary); } /* ======================================== Hero Section ======================================== */ .hero { display: flex; align-items: center; justify-content: space-between; min-height: 100vh; padding: calc(80px + var(--spacing-3xl)) var(--spacing-xl) var(--spacing-3xl); background: var(--gradient-secondary); } .hero-content { max-width: 600px; } .hero h1 { font-size: 3.5rem; font-weight: 800; background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: var(--spacing-md); } .hero p { font-size: 1.25rem; color: var(--text-secondary); margin-bottom: var(--spacing-xl); } .hero-buttons { display: flex; gap: var(--spacing-md); } .hero-visual { width: 400px; height: 400px; position: relative; } .neural-network-animation { width: 100%; height: 100%; background: var(--bg-primary); border-radius: var(--radius-xl); box-shadow: var(--card-shadow); overflow: hidden; } /* ======================================== Buttons ======================================== */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-lg); font-family: var(--font-sans); font-size: 1rem; font-weight: 500; border: none; border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition-fast); } .btn-primary { background: var(--gradient-primary); color: white; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4); } .btn-secondary { background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border-color); } .btn-secondary:hover { background: var(--bg-tertiary); } /* ======================================== Container & Sections ======================================== */ .container { max-width: 1400px; margin: 0 auto; padding: 0 var(--spacing-xl); } .section { padding: var(--spacing-3xl) 0; border-bottom: 1px solid var(--border-color); } .section-header { text-align: center; margin-bottom: var(--spacing-2xl); } .section-header h2 { font-size: 2.5rem; font-weight: 700; margin-bottom: var(--spacing-sm); display: flex; align-items: center; justify-content: center; gap: var(--spacing-md); } .section-header h2 i { color: var(--accent-primary); } .section-header p { font-size: 1.125rem; color: var(--text-secondary); } .subsection { margin-top: var(--spacing-2xl); } .subsection h3 { font-size: 1.5rem; font-weight: 600; margin-bottom: var(--spacing-lg); display: flex; align-items: center; gap: var(--spacing-sm); } .subsection h3 i { color: var(--accent-primary); } /* ======================================== Content Grid & Cards ======================================== */ .content-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--spacing-lg); } .card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-lg); box-shadow: var(--card-shadow); transition: all var(--transition-normal); } .card:hover { box-shadow: var(--card-shadow-hover); transform: translateY(-2px); } .card.full-width { grid-column: 1 / -1; } .card-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--gradient-primary); color: white; border-radius: var(--radius-md); font-size: 1.25rem; margin-bottom: var(--spacing-md); } .card h3, .card h4 { margin-bottom: var(--spacing-sm); color: var(--text-primary); } .card p { color: var(--text-secondary); margin-bottom: var(--spacing-md); } /* ======================================== Key Points & Feature Lists ======================================== */ .key-points h4 { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); margin-bottom: var(--spacing-sm); } .key-points ul, .feature-list { list-style: none; } .key-points li, .feature-list li { padding: var(--spacing-xs) 0; padding-left: var(--spacing-lg); position: relative; color: var(--text-secondary); } .key-points li::before { content: "•"; position: absolute; left: 0; color: var(--accent-primary); font-weight: bold; } .feature-list li { display: flex; align-items: center; gap: var(--spacing-sm); padding-left: 0; } .feature-list li i { color: var(--accent-primary); } /* ======================================== Timeline ======================================== */ .timeline { position: relative; padding-left: var(--spacing-lg); } .timeline::before { content: ""; position: absolute; left: 4px; top: 0; bottom: 0; width: 2px; background: var(--border-color); } .timeline-item { position: relative; padding-bottom: var(--spacing-md); padding-left: var(--spacing-lg); } .timeline-item::before { content: ""; position: absolute; left: -14px; top: 4px; width: 10px; height: 10px; background: var(--accent-primary); border-radius: var(--radius-full); } .timeline-item .year { font-weight: 700; color: var(--accent-primary); margin-right: var(--spacing-sm); } .timeline-item .event { color: var(--text-secondary); } /* ======================================== Pipeline Diagram ======================================== */ .pipeline-diagram { display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); flex-wrap: wrap; padding: var(--spacing-lg); } .pipeline-step { display: flex; flex-direction: column; align-items: center; text-align: center; background: var(--bg-secondary); border-radius: var(--radius-lg); padding: var(--spacing-md); min-width: 140px; border: 1px solid var(--border-color); } .step-number { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; background: var(--gradient-primary); color: white; border-radius: var(--radius-full); font-weight: 700; margin-bottom: var(--spacing-sm); } .step-content h4 { font-size: 0.875rem; margin-bottom: var(--spacing-xs); } .step-content p { font-size: 0.75rem; color: var(--text-muted); margin: 0; } .pipeline-arrow { color: var(--accent-primary); font-size: 1.25rem; } /* ======================================== Code Blocks ======================================== */ .code-block { background: var(--bg-tertiary); border-radius: var(--radius-md); padding: var(--spacing-md); overflow-x: auto; } .code-block pre { margin: 0; font-family: var(--font-mono); font-size: 0.875rem; line-height: 1.5; } .code-block code { color: var(--text-primary); } /* ======================================== Stats Grid ======================================== */ .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-md); margin-top: var(--spacing-md); } .stat { text-align: center; padding: var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-md); } .stat-value { display: block; font-size: 1.5rem; font-weight: 700; color: var(--accent-primary); } .stat-label { font-size: 0.875rem; color: var(--text-muted); } /* ======================================== Interactive Demos ======================================== */ .interactive-demo { margin-top: var(--spacing-xl); background: var(--bg-secondary); border-radius: var(--radius-lg); padding: var(--spacing-lg); border: 1px solid var(--border-color); } .interactive-demo h4 { display: flex; align-items: center; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); color: var(--accent-primary); } .demo-container { display: grid; gap: var(--spacing-md); } .demo-input label, .demo-output label { display: block; font-weight: 500; margin-bottom: var(--spacing-sm); color: var(--text-secondary); } .demo-input textarea, .demo-input input[type="text"], .demo-output textarea { width: 100%; padding: var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-mono); font-size: 0.875rem; resize: vertical; } .demo-input textarea, .demo-output textarea { min-height: 120px; } .demo-controls { display: flex; flex-wrap: wrap; gap: var(--spacing-md); align-items: center; } .demo-controls label { display: flex; align-items: center; gap: var(--spacing-xs); color: var(--text-secondary); cursor: pointer; } .demo-controls select { padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-sans); } /* ======================================== Token Display ======================================== */ .token-display { display: flex; flex-wrap: wrap; gap: var(--spacing-xs); padding: var(--spacing-md); background: var(--bg-primary); border-radius: var(--radius-md); min-height: 50px; border: 1px solid var(--border-color); } .token { display: inline-block; padding: var(--spacing-xs) var(--spacing-sm); background: var(--accent-tertiary); color: var(--text-primary); border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 0.875rem; border: 1px solid var(--accent-secondary); } .token-stats { display: flex; gap: var(--spacing-lg); margin-top: var(--spacing-md); color: var(--text-secondary); } /* ======================================== Tabs ======================================== */ .tabs { display: flex; gap: var(--spacing-xs); margin-bottom: var(--spacing-lg); background: var(--bg-secondary); padding: var(--spacing-xs); border-radius: var(--radius-md); width: fit-content; } .tab-btn { padding: var(--spacing-sm) var(--spacing-lg); border: none; background: transparent; color: var(--text-secondary); font-family: var(--font-sans); font-weight: 500; border-radius: var(--radius-sm); cursor: pointer; transition: all var(--transition-fast); } .tab-btn:hover { color: var(--text-primary); } .tab-btn.active { background: var(--bg-primary); color: var(--accent-primary); box-shadow: var(--card-shadow); } .tab-content { display: none; } .tab-content.active { display: block; } /* ======================================== Architecture Diagram ======================================== */ .architecture-visual { display: grid; gap: var(--spacing-xl); } .transformer-diagram { display: flex; justify-content: center; gap: var(--spacing-lg); flex-wrap: wrap; } .diagram-component { background: var(--bg-primary); border: 2px solid var(--accent-primary); border-radius: var(--radius-lg); padding: var(--spacing-lg); min-width: 200px; text-align: center; } .diagram-component h4 { color: var(--accent-primary); margin-bottom: var(--spacing-sm); } .component-detail p { font-size: 0.875rem; color: var(--text-secondary); margin: var(--spacing-xs) 0; } .attention-formula { text-align: center; padding: var(--spacing-lg); background: var(--bg-primary); border-radius: var(--radius-lg); border: 1px solid var(--border-color); } .formula { font-family: var(--font-mono); font-size: 1.125rem; color: var(--accent-primary); margin-top: var(--spacing-md); } /* ======================================== Comparison Tables ======================================== */ .comparison-table { width: 100%; border-collapse: collapse; margin-top: var(--spacing-md); } .comparison-table th, .comparison-table td { padding: var(--spacing-md); text-align: left; border-bottom: 1px solid var(--border-color); } .comparison-table th { background: var(--bg-secondary); font-weight: 600; color: var(--text-primary); } .comparison-table td { color: var(--text-secondary); } .comparison-table tr:hover td { background: var(--bg-secondary); } /* ======================================== Feature Cards ======================================== */ .feature-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--spacing-md); margin-top: var(--spacing-lg); } .feature-card { background: var(--bg-secondary); padding: var(--spacing-md); border-radius: var(--radius-md); text-align: center; } .feature-card h5 { color: var(--accent-primary); margin-bottom: var(--spacing-xs); } .feature-card p { font-size: 0.875rem; color: var(--text-secondary); margin: 0; } /* ======================================== Generation Methods ======================================== */ .generation-methods { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--spacing-lg); } .pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-md); margin-top: var(--spacing-md); } .pros h5, .cons h5 { display: flex; align-items: center; gap: var(--spacing-xs); font-size: 0.875rem; margin-bottom: var(--spacing-sm); } .pros h5 { color: #22c55e; } .cons h5 { color: #ef4444; } .pros ul, .cons ul { list-style: none; font-size: 0.875rem; color: var(--text-secondary); } .pros li, .cons li { padding: var(--spacing-xs) 0; } .param-slider { margin-top: var(--spacing-md); } .param-slider label { display: block; margin-bottom: var(--spacing-sm); color: var(--text-secondary); } .param-slider input[type="range"] { width: 100%; accent-color: var(--accent-primary); } /* ======================================== Generation Demo ======================================== */ .generation-demo { grid-template-columns: 1fr; } .generation-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--spacing-md); align-items: end; } .control-group { display: flex; flex-direction: column; gap: var(--spacing-xs); } .control-group label { font-size: 0.875rem; color: var(--text-secondary); } .generation-output { padding: var(--spacing-md); background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); min-height: 100px; font-family: var(--font-sans); line-height: 1.6; } .probability-viz { margin-top: var(--spacing-md); display: flex; flex-wrap: wrap; gap: var(--spacing-xs); } /* ======================================== RLHF Section ======================================== */ .rlhf-pipeline { display: flex; justify-content: center; gap: var(--spacing-xl); flex-wrap: wrap; margin-bottom: var(--spacing-xl); } .rlhf-step { text-align: center; max-width: 250px; } .step-icon { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; background: var(--gradient-primary); color: white; border-radius: var(--radius-full); font-size: 1.5rem; margin: 0 auto var(--spacing-md); } .rlhf-step h4 { margin-bottom: var(--spacing-sm); } .rlhf-step p { font-size: 0.875rem; color: var(--text-secondary); } /* Process Flow */ .process-flow { display: flex; align-items: center; justify-content: center; gap: var(--spacing-sm); margin-top: var(--spacing-lg); } .flow-step { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-xs); padding: var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-md); } .flow-step i { font-size: 1.25rem; color: var(--accent-primary); } .flow-step span { font-size: 0.75rem; color: var(--text-secondary); } .flow-arrow { color: var(--accent-primary); font-weight: bold; } /* Dataset Cards */ .dataset-showcase { margin-top: var(--spacing-xl); } .dataset-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-md); margin-top: var(--spacing-md); } .dataset-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: var(--spacing-md); } .dataset-card h5 { color: var(--accent-primary); margin-bottom: var(--spacing-xs); } .dataset-card p { font-size: 0.875rem; color: var(--text-secondary); margin: 0; } /* Data Example */ .data-example { background: var(--bg-secondary); border-radius: var(--radius-md); padding: var(--spacing-md); } .example-instruction, .example-response { margin-bottom: var(--spacing-md); } .example-instruction strong, .example-response strong { color: var(--accent-primary); display: block; margin-bottom: var(--spacing-xs); } .example-instruction p, .example-response p { margin: 0; color: var(--text-secondary); } /* Verifiable Examples */ .verifiable-examples { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--spacing-md); margin-top: var(--spacing-md); } .verifiable-item { display: flex; align-items: center; gap: var(--spacing-sm); color: var(--text-secondary); } .verifiable-item i { color: var(--accent-primary); } /* RLHF Demo */ .rlhf-demo .comparison-task { text-align: center; } .task-prompt { margin: var(--spacing-md) 0; color: var(--text-secondary); } .response-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); margin: var(--spacing-lg) 0; } .response-option { background: var(--bg-primary); border: 2px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-lg); transition: all var(--transition-fast); cursor: pointer; } .response-option:hover { border-color: var(--accent-primary); } .response-option.selected { border-color: var(--accent-primary); background: rgba(99, 102, 241, 0.1); } .response-option h6 { color: var(--accent-primary); margin-bottom: var(--spacing-md); } .response-option p { color: var(--text-secondary); margin-bottom: var(--spacing-md); } .prefer-btn { width: 100%; } .reward-scores { margin-top: var(--spacing-xl); padding: var(--spacing-lg); background: var(--bg-primary); border-radius: var(--radius-md); } .score-bars { display: flex; flex-direction: column; gap: var(--spacing-md); margin-top: var(--spacing-md); } .score-bar { display: flex; align-items: center; gap: var(--spacing-md); } .bar-container { flex: 1; height: 24px; background: var(--bg-secondary); border-radius: var(--radius-sm); overflow: hidden; } .bar { height: 100%; background: var(--gradient-primary); border-radius: var(--radius-sm); transition: width var(--transition-slow); } /* ======================================== Evaluation Section ======================================== */ .metric-example { margin-top: var(--spacing-md); padding: var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-sm); font-size: 0.875rem; color: var(--text-secondary); } .metric-scale { position: relative; margin-top: var(--spacing-lg); padding-top: var(--spacing-lg); } .scale-marker { position: absolute; top: 0; transform: translateX(-50%); font-size: 0.75rem; color: var(--text-muted); } .scale-bar { height: 8px; background: linear-gradient(to right, #ef4444, #f59e0b, #22c55e, #22c55e); border-radius: var(--radius-full); margin-bottom: var(--spacing-sm); } .scale-labels { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--text-muted); } .metric-variants { list-style: none; margin-top: var(--spacing-md); } .metric-variants li { padding: var(--spacing-xs) 0; color: var(--text-secondary); } /* Benchmark Grid */ .benchmark-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--spacing-md); } .benchmark-card { background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-lg); text-align: center; transition: all var(--transition-fast); } .benchmark-card:hover { border-color: var(--accent-primary); transform: translateY(-2px); } .benchmark-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--bg-secondary); border-radius: var(--radius-full); margin: 0 auto var(--spacing-md); font-size: 1.25rem; color: var(--accent-primary); } .benchmark-card h4 { margin-bottom: var(--spacing-xs); } .benchmark-card p { font-size: 0.875rem; color: var(--text-secondary); margin-bottom: var(--spacing-sm); } .benchmark-stat { font-size: 0.75rem; color: var(--text-muted); } /* Benchmark Chart */ .chart-container { margin-top: var(--spacing-lg); } .chart-controls { margin-bottom: var(--spacing-md); } .benchmark-chart { height: 300px; background: var(--bg-primary); border-radius: var(--radius-md); padding: var(--spacing-md); display: flex; align-items: flex-end; gap: var(--spacing-md); } .chart-bar { flex: 1; display: flex; flex-direction: column; align-items: center; gap: var(--spacing-sm); } .chart-bar-fill { width: 100%; background: var(--gradient-primary); border-radius: var(--radius-sm) var(--radius-sm) 0 0; transition: height var(--transition-slow); } .chart-bar-label { font-size: 0.75rem; color: var(--text-secondary); text-align: center; writing-mode: vertical-rl; transform: rotate(180deg); max-height: 80px; } .chart-bar-value { font-size: 0.75rem; font-weight: 600; color: var(--accent-primary); } /* Evaluation Methods */ .evaluation-methods { list-style: none; } .evaluation-methods li { display: flex; align-items: flex-start; gap: var(--spacing-md); padding: var(--spacing-md) 0; border-bottom: 1px solid var(--border-color); } .evaluation-methods li:last-child { border-bottom: none; } .evaluation-methods li i { color: var(--accent-primary); font-size: 1.25rem; margin-top: 2px; } .evaluation-methods li strong { display: block; margin-bottom: var(--spacing-xs); } .evaluation-methods li p { margin: 0; font-size: 0.875rem; color: var(--text-secondary); } /* Leaderboard */ .leaderboard { margin-top: var(--spacing-md); } .leaderboard-header, .leaderboard-item { display: grid; grid-template-columns: 50px 1fr 80px; padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--radius-sm); } .leaderboard-header { background: var(--bg-secondary); font-weight: 600; font-size: 0.875rem; } .leaderboard-item { border-bottom: 1px solid var(--border-color); } .leaderboard-item:hover { background: var(--bg-secondary); } .leaderboard-item .rank { font-weight: 600; color: var(--accent-primary); } .leaderboard-item .model { color: var(--text-primary); } .leaderboard-item .elo { font-family: var(--font-mono); color: var(--text-secondary); } .leaderboard-note { margin-top: var(--spacing-md); font-size: 0.875rem; color: var(--text-muted); display: flex; align-items: center; gap: var(--spacing-sm); } /* ======================================== Chatbot Section ======================================== */ .chatbot-architecture { display: flex; flex-direction: column; gap: var(--spacing-sm); } .arch-layer { background: var(--bg-secondary); border-radius: var(--radius-md); padding: var(--spacing-md); text-align: center; } .arch-layer h5 { color: var(--accent-primary); margin-bottom: var(--spacing-sm); } .arch-components { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--spacing-sm); } .arch-components span { padding: var(--spacing-xs) var(--spacing-md); background: var(--bg-primary); border-radius: var(--radius-sm); font-size: 0.875rem; color: var(--text-secondary); } .arch-arrow { text-align: center; font-size: 1.5rem; color: var(--accent-primary); } /* RAG Flow */ .rag-flow { display: flex; align-items: center; justify-content: center; gap: var(--spacing-xs); flex-wrap: wrap; margin-top: var(--spacing-md); } .rag-step { padding: var(--spacing-sm) var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-md); font-size: 0.875rem; color: var(--text-secondary); } .rag-arrow { color: var(--accent-primary); } /* Prompt Engineering */ .prompt-engineering { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-lg); } .prompt-section h5 { color: var(--accent-primary); margin-bottom: var(--spacing-sm); } .prompt-section p { color: var(--text-secondary); font-size: 0.875rem; margin-bottom: var(--spacing-sm); } .prompt-example { background: var(--bg-secondary); padding: var(--spacing-md); border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 0.75rem; color: var(--text-secondary); font-style: italic; } /* Chat Demo */ .chat-demo-container { display: flex; flex-direction: column; gap: var(--spacing-md); } .chat-config textarea { width: 100%; min-height: 60px; padding: var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-mono); font-size: 0.875rem; resize: vertical; } .chat-window { height: 300px; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: var(--spacing-md); overflow-y: auto; display: flex; flex-direction: column; gap: var(--spacing-md); } .chat-message { display: flex; gap: var(--spacing-md); max-width: 80%; } .chat-message.user { align-self: flex-end; flex-direction: row-reverse; } .message-avatar { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: var(--bg-secondary); border-radius: var(--radius-full); color: var(--accent-primary); flex-shrink: 0; } .chat-message.user .message-avatar { background: var(--accent-primary); color: white; } .message-content { padding: var(--spacing-md); background: var(--bg-secondary); border-radius: var(--radius-lg); color: var(--text-primary); } .chat-message.user .message-content { background: var(--accent-primary); color: white; } .chat-input { display: flex; gap: var(--spacing-sm); } .chat-input input { flex: 1; padding: var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--bg-primary); color: var(--text-primary); font-family: var(--font-sans); } .chat-input button { width: 48px; } /* ======================================== Playground Section ======================================== */ .playground-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-lg); } .playground-card { background: var(--bg-primary); border: 2px solid var(--border-color); border-radius: var(--radius-lg); padding: var(--spacing-xl); text-align: center; cursor: pointer; transition: all var(--transition-fast); } .playground-card:hover { border-color: var(--accent-primary); transform: translateY(-4px); box-shadow: var(--card-shadow-hover); } .playground-card i { font-size: 2.5rem; color: var(--accent-primary); margin-bottom: var(--spacing-md); } .playground-card h4 { margin-bottom: var(--spacing-sm); } .playground-card p { font-size: 0.875rem; color: var(--text-secondary); margin: 0; } /* ======================================== Attention Visualization ======================================== */ .attention-viz-container { display: flex; flex-direction: column; gap: var(--spacing-lg); } .attention-input { display: flex; gap: var(--spacing-md); align-items: center; flex-wrap: wrap; } .attention-input input { flex: 1; min-width: 200px; } .attention-matrix { display: grid; gap: 2px; background: var(--bg-primary); padding: var(--spacing-md); border-radius: var(--radius-md); overflow-x: auto; } .attention-row { display: flex; gap: 2px; } .attention-cell { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; border-radius: var(--radius-sm); transition: all var(--transition-fast); } .attention-cell.header { background: var(--bg-secondary); color: var(--text-primary); font-weight: 500; } .attention-cell.value { color: white; font-family: var(--font-mono); } /* ======================================== BPE Explanation ======================================== */ .bpe-explanation { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-md); margin-top: var(--spacing-md); } .bpe-step { background: var(--bg-secondary); padding: var(--spacing-md); border-radius: var(--radius-md); border-left: 3px solid var(--accent-primary); } .bpe-step h5 { color: var(--accent-primary); margin-bottom: var(--spacing-sm); } .bpe-step p { margin: 0; font-size: 0.875rem; color: var(--text-secondary); } .bpe-step code { background: var(--bg-primary); padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: 0.75rem; } /* ======================================== Footer ======================================== */ .footer { background: var(--bg-secondary); border-top: 1px solid var(--border-color); padding: var(--spacing-2xl) var(--spacing-xl) var(--spacing-lg); } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-xl); max-width: 1400px; margin: 0 auto; } .footer-section h4 { margin-bottom: var(--spacing-md); color: var(--text-primary); } .footer-section p { color: var(--text-secondary); font-size: 0.875rem; } .footer-section ul { list-style: none; } .footer-section li { padding: var(--spacing-xs) 0; } .footer-section a { color: var(--text-secondary); font-size: 0.875rem; } .footer-section a:hover { color: var(--accent-primary); } .footer-bottom { max-width: 1400px; margin: var(--spacing-xl) auto 0; padding-top: var(--spacing-lg); border-top: 1px solid var(--border-color); text-align: center; color: var(--text-muted); font-size: 0.875rem; } /* ======================================== Responsive Design ======================================== */ @media (max-width: 1024px) { .hero { flex-direction: column; text-align: center; } .hero-visual { width: 300px; height: 300px; } .nav-links { display: none; } } @media (max-width: 768px) { .hero h1 { font-size: 2.5rem; } .section-header h2 { font-size: 1.75rem; } .pipeline-diagram { flex-direction: column; } .pipeline-arrow { transform: rotate(90deg); } .response-comparison { grid-template-columns: 1fr; } .comparison-table { display: block; overflow-x: auto; } } @media (max-width: 480px) { .container { padding: 0 var(--spacing-md); } .hero h1 { font-size: 2rem; } .hero-buttons { flex-direction: column; } .tabs { flex-wrap: wrap; } } /* ======================================== Animations ======================================== */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .animate-fadeIn { animation: fadeIn 0.5s ease forwards; } .animate-pulse { animation: pulse 2s infinite; } /* Intersection Observer Animations */ .section { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; } .section.visible { opacity: 1; transform: translateY(0); } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--bg-secondary); } ::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: var(--radius-full); } ::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }