Homepage / styles.css
CompactAI's picture
Upload 7 files
91a0086 verified
raw
history blame
39.2 kB
/* ========================================
FMN-GPT Website Styles
Warm, earthy color palette
======================================== */
:root {
/* Primary Colors - Warm Earth Tones */
--color-bg: #faf8f5;
--color-bg-alt: #f5f0e8;
--color-bg-dark: #1a1815;
--color-bg-dark-alt: #252220;
/* Accent Colors - Warm Orange/Coral */
--color-accent: #e85d3b;
--color-accent-light: #ff8a6b;
--color-accent-dark: #c44a2d;
/* Secondary Accent - Warm Gold */
--color-secondary: #d4a853;
--color-secondary-light: #e8c87a;
/* Text Colors */
--color-text: #2d2a26;
--color-text-light: #6b6560;
--color-text-muted: #9a948d;
/* Neutrals */
--color-border: #e5e0d8;
--color-border-dark: #3d3a36;
/* Gradients */
--gradient-warm: linear-gradient(135deg, #e85d3b 0%, #d4a853 100%);
--gradient-dark: linear-gradient(135deg, #1a1815 0%, #2d2a26 100%);
/* Shadows */
--shadow-sm: 0 2px 8px rgba(45, 42, 38, 0.08);
--shadow-md: 0 4px 20px rgba(45, 42, 38, 0.12);
--shadow-lg: 0 8px 40px rgba(45, 42, 38, 0.16);
/* Typography */
--font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
/* Spacing */
--container-max: 1200px;
--section-padding: 100px;
}
/* ========================================
Reset & Base
======================================== */
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
font-size: 16px;
}
html, body {
height: 100%;
}
body {
font-family: var(--font-sans);
background-color: var(--color-bg);
color: var(--color-text);
line-height: 1.7;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex: 1;
}
.container {
max-width: var(--container-max);
margin: 0 auto;
padding: 0 24px;
}
/* ========================================
Typography
======================================== */
h1, h2, h3, h4, h5, h6 {
font-weight: 600;
line-height: 1.2;
color: var(--color-text);
}
h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
h4 { font-size: 1.25rem; }
p {
margin-bottom: 1.5rem;
color: var(--color-text-light);
}
a {
color: var(--color-accent);
text-decoration: none;
transition: color 0.2s ease;
}
a:hover {
color: var(--color-accent-dark);
}
code {
font-family: var(--font-mono);
background: var(--color-bg-alt);
padding: 0.2em 0.5em;
border-radius: 4px;
font-size: 0.9em;
color: var(--color-accent-dark);
}
pre {
font-family: var(--font-mono);
background: var(--color-bg-dark);
color: #f5f0e8;
padding: 1.5rem;
border-radius: 12px;
overflow-x: auto;
font-size: 0.875rem;
line-height: 1.6;
}
pre code {
background: none;
padding: 0;
color: inherit;
}
blockquote {
border-left: 4px solid var(--color-accent);
padding-left: 1.5rem;
margin: 2rem 0;
font-style: italic;
font-size: 1.25rem;
color: var(--color-text);
}
/* ========================================
Section Titles
======================================== */
.section-title {
text-align: center;
margin-bottom: 1rem;
position: relative;
}
.section-title::after {
content: '';
display: block;
width: 60px;
height: 4px;
background: var(--gradient-warm);
margin: 1rem auto 0;
border-radius: 2px;
}
.section-subtitle {
text-align: center;
color: var(--color-text-muted);
font-size: 1.125rem;
margin-bottom: 3rem;
}
/* ========================================
Hero Section
======================================== */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
position: relative;
background: var(--color-bg-dark);
overflow: hidden;
}
.hero-content {
text-align: center;
z-index: 2;
padding: 2rem;
}
.apology-badge {
display: inline-block;
background: rgba(232, 93, 59, 0.15);
color: var(--color-accent-light);
padding: 0.5rem 1.25rem;
border-radius: 50px;
font-size: 0.875rem;
font-weight: 500;
margin-bottom: 2rem;
border: 1px solid rgba(232, 93, 59, 0.3);
}
.hero-title {
color: #fff;
margin-bottom: 1.5rem;
letter-spacing: -0.02em;
}
.hero-title .highlight {
background: var(--gradient-warm);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-subtitle {
color: var(--color-text-muted);
font-size: 1.25rem;
max-width: 500px;
margin: 0 auto 3rem;
}
.scroll-indicator {
position: absolute;
bottom: 3rem;
left: 50%;
transform: translateX(-50%);
text-align: center;
color: var(--color-text-muted);
font-size: 0.875rem;
}
.scroll-arrow {
width: 24px;
height: 24px;
margin: 0.5rem auto 0;
border-right: 2px solid var(--color-accent);
border-bottom: 2px solid var(--color-accent);
transform: rotate(45deg);
animation: scrollBounce 2s infinite;
}
@keyframes scrollBounce {
0%, 100% { transform: rotate(45deg) translateY(0); }
50% { transform: rotate(45deg) translateY(8px); }
}
.hero-visual {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0.4;
}
#neuron-canvas {
width: 100%;
height: 100%;
}
.preface {
padding: calc(var(--section-padding) + 4rem) 0 var(--section-padding);
background: var(--color-bg);
}
.preface-content {
max-width: 800px;
margin: 0 auto;
font-size: 1.125rem;
}
.preface-content .drop-cap::first-letter {
float: left;
font-size: 4rem;
line-height: 0.8;
padding-right: 0.75rem;
color: var(--color-accent);
font-weight: 700;
}
/* ========================================
Confession Section
======================================== */
.confession {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.confession-content {
max-width: 800px;
margin: 0 auto;
}
.confession-text {
font-size: 1.125rem;
}
.confession-text .drop-cap::first-letter {
float: left;
font-size: 4rem;
line-height: 0.8;
padding-right: 0.75rem;
color: var(--color-accent);
font-weight: 700;
}
.big-question {
display: flex;
align-items: flex-start;
gap: 1rem;
background: var(--color-bg-alt);
padding: 2rem;
border-radius: 16px;
margin-top: 2rem;
border-left: 4px solid var(--color-accent);
}
.big-question .question-mark {
font-size: 3rem;
font-weight: 700;
color: var(--color-accent);
line-height: 1;
}
.big-question p {
font-size: 1.25rem;
font-weight: 500;
color: var(--color-text);
margin: 0;
align-self: center;
}
/* ========================================
What Building Section
======================================== */
.what-building {
padding: var(--section-padding) 0;
background: var(--color-bg-alt);
}
.feature-grid {
display: grid;
gap: 2rem;
margin-bottom: 4rem;
}
.feature-card {
background: var(--color-bg);
border-radius: 20px;
padding: 2.5rem;
box-shadow: var(--shadow-md);
}
.main-feature {
text-align: center;
}
.feature-icon {
width: 100px;
height: 100px;
margin: 0 auto 1.5rem;
}
.neuron-icon {
width: 100%;
height: 100%;
}
.neuron-node {
fill: var(--color-accent);
opacity: 0.9;
}
.neuron-connection {
stroke: var(--color-secondary);
stroke-width: 2;
fill: none;
}
.feature-card h3 {
font-size: 2rem;
margin-bottom: 0.5rem;
color: var(--color-accent);
}
.feature-subtitle {
color: var(--color-text-muted);
font-size: 1rem;
margin-bottom: 1rem;
}
.feature-stats {
display: flex;
justify-content: center;
gap: 3rem;
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid var(--color-border);
}
.stat {
text-align: center;
}
.stat-value {
display: block;
font-size: 2rem;
font-weight: 700;
color: var(--color-text);
}
.stat-label {
font-size: 0.875rem;
color: var(--color-text-muted);
}
/* Architecture Diagram */
.architecture-section {
margin-top: 4rem;
}
.architecture-section h3 {
text-align: center;
margin-bottom: 2rem;
}
.architecture-diagram {
max-width: 600px;
margin: 0 auto;
padding: 2rem;
background: var(--color-bg);
border-radius: 20px;
box-shadow: var(--shadow-md);
}
.arch-layer {
display: flex;
justify-content: center;
}
.layer-box {
padding: 1.5rem 2rem;
border-radius: 12px;
text-align: center;
font-weight: 500;
}
.input-layer {
background: linear-gradient(135deg, #4a9eff 0%, #6bb3ff 100%);
color: white;
}
.recursive-layer {
background: var(--color-accent);
color: white;
padding: 2rem;
}
.output-layer {
background: linear-gradient(135deg, #50c878 0%, #7dd8a0 100%);
color: white;
}
.layer-details {
margin-top: 1rem;
font-size: 0.875rem;
font-weight: 400;
opacity: 0.9;
}
.detail-item {
display: flex;
justify-content: space-between;
padding: 0.5rem 0;
border-top: 1px solid rgba(255,255,255,0.2);
}
.arch-arrow {
text-align: center;
font-size: 1.5rem;
color: var(--color-text-muted);
padding: 0.5rem 0;
}
.loop-arrow {
color: var(--color-accent);
font-size: 0.875rem;
}
/* ========================================
How It Works Section
======================================== */
.how-it-works {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.mechanism-tabs {
display: flex;
justify-content: center;
gap: 0.5rem;
flex-wrap: wrap;
margin-bottom: 3rem;
}
.tab-btn {
padding: 0.75rem 1.5rem;
border: 2px solid var(--color-border);
background: transparent;
border-radius: 50px;
font-family: var(--font-sans);
font-size: 0.9375rem;
font-weight: 500;
color: var(--color-text-light);
cursor: pointer;
transition: all 0.2s ease;
}
.tab-btn:hover {
border-color: var(--color-accent);
color: var(--color-accent);
}
.tab-btn.active {
background: var(--color-accent);
border-color: var(--color-accent);
color: white;
}
.tab-content {
max-width: 1000px;
margin: 0 auto;
}
.tab-pane {
display: none;
animation: fadeIn 0.3s ease;
}
.tab-pane.active {
display: block;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.pane-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: start;
}
@media (max-width: 768px) {
.pane-content {
grid-template-columns: 1fr;
}
}
.pane-text h3 {
margin-bottom: 1rem;
color: var(--color-accent);
}
.equation {
background: var(--color-bg-alt);
padding: 1rem 1.5rem;
border-radius: 8px;
margin: 1rem 0;
border-left: 3px solid var(--color-secondary);
}
.equation code {
background: none;
padding: 0;
font-size: 1rem;
color: var(--color-text);
}
.equation.small code {
font-size: 0.875rem;
}
.feature-list {
list-style: none;
padding: 0;
}
.feature-list li {
padding: 0.5rem 0;
padding-left: 1.5rem;
position: relative;
color: var(--color-text-light);
}
.feature-list li::before {
content: '→';
position: absolute;
left: 0;
color: var(--color-accent);
}
.feature-list li.classified::before {
content: '█';
color: var(--color-text-muted);
}
.classified {
color: var(--color-text-muted);
font-family: 'JetBrains Mono', monospace;
background: repeating-linear-gradient(
90deg,
var(--color-border) 0px,
var(--color-border) 8px,
transparent 8px,
transparent 12px
);
background-size: 100% 4px;
background-position: 0 50%;
background-repeat: repeat-x;
}
.equation.redacted {
border-left-color: var(--color-text-muted);
background: linear-gradient(
135deg,
var(--color-bg-alt) 0%,
rgba(154, 148, 141, 0.1) 100%
);
}
.equation.redacted code {
color: var(--color-text-muted);
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 0.875rem;
}
.pane-visual {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 1.5rem;
display: flex;
align-items: center;
justify-content: center;
min-height: 300px;
}
.pane-visual canvas {
max-width: 100%;
height: auto;
}
/* Loop Demo */
.loop-demo {
margin-top: 1.5rem;
padding: 1.5rem;
background: var(--color-bg-alt);
border-radius: 12px;
}
.loop-demo label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
}
.loop-demo input[type="range"] {
width: 100%;
margin-bottom: 1rem;
accent-color: var(--color-accent);
}
.loop-indicator {
display: flex;
gap: 4px;
flex-wrap: wrap;
}
.loop-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--color-border);
transition: background 0.2s ease;
}
.loop-dot.active {
background: var(--color-accent);
}
.loop-dot.exhausted {
background: var(--color-text-muted);
}
/* ========================================
Demo Section
======================================== */
.demo-section {
padding: var(--section-padding) 0;
background: var(--color-bg-dark);
color: white;
}
.demo-section .section-title {
color: white;
}
.demo-section .section-title::after {
background: var(--gradient-warm);
}
.demo-section .section-subtitle {
color: var(--color-text-muted);
}
.demo-container {
max-width: 1000px;
margin: 0 auto;
}
.demo-controls {
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
margin-bottom: 2rem;
}
.demo-btn {
padding: 0.75rem 1.5rem;
border: none;
border-radius: 8px;
font-family: var(--font-sans);
font-size: 1rem;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
}
.demo-btn:first-child {
background: var(--color-accent);
color: white;
}
.demo-btn:first-child:hover {
background: var(--color-accent-dark);
}
.demo-btn:nth-child(2) {
background: var(--color-bg-dark-alt);
color: white;
border: 1px solid var(--color-border-dark);
}
.demo-btn:nth-child(2):hover {
background: var(--color-border-dark);
}
.speed-control {
display: flex;
align-items: center;
gap: 0.75rem;
color: var(--color-text-muted);
}
.speed-control input[type="range"] {
width: 100px;
accent-color: var(--color-accent);
}
.demo-visual {
background: var(--color-bg-dark-alt);
border-radius: 16px;
padding: 2rem;
margin-bottom: 2rem;
min-height: 400px;
display: flex;
align-items: center;
justify-content: center;
}
#demo-canvas {
width: 100%;
max-width: 800px;
height: 350px;
}
.demo-info {
display: flex;
justify-content: center;
}
.info-panel {
background: var(--color-bg-dark-alt);
border: 1px solid var(--color-border-dark);
border-radius: 12px;
padding: 1.5rem 2rem;
min-width: 250px;
}
.info-panel h4 {
color: var(--color-accent);
margin-bottom: 1rem;
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.info-row {
display: flex;
justify-content: space-between;
padding: 0.5rem 0;
border-bottom: 1px solid var(--color-border-dark);
}
.info-row:last-child {
border-bottom: none;
}
.info-row span:first-child {
color: var(--color-text-muted);
}
.info-row span:last-child {
color: white;
font-weight: 500;
font-family: var(--font-mono);
}
/* ========================================
Why Stopped Section
======================================== */
.why-stopped {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.reasons-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-bottom: 4rem;
}
.reason-card {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 2rem;
position: relative;
}
.reason-number {
font-size: 3rem;
font-weight: 700;
color: var(--color-border);
position: absolute;
top: 1rem;
right: 1.5rem;
line-height: 1;
z-index: 1;
}
.reason-card h3 {
margin-bottom: 1rem;
color: var(--color-accent);
position: relative;
z-index: 2;
}
.reason-card p {
margin: 0;
font-size: 0.9375rem;
position: relative;
z-index: 2;
}
/* Comparison */
.comparison-section {
margin-top: 4rem;
}
.comparison-section h3 {
text-align: center;
margin-bottom: 2rem;
}
.comparison-grid {
display: flex;
justify-content: center;
align-items: center;
gap: 2rem;
flex-wrap: wrap;
}
.comparison-item {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 2rem;
max-width: 350px;
flex: 1;
}
.comparison-item h4 {
margin-bottom: 1rem;
font-size: 1.25rem;
}
.comparison-item.old h4 {
color: var(--color-text-muted);
}
.comparison-item.new {
border: 2px solid var(--color-accent);
}
.comparison-item.new h4 {
color: var(--color-accent);
}
.comparison-item ul {
list-style: none;
padding: 0;
}
.comparison-item li {
padding: 0.5rem 0;
border-bottom: 1px solid var(--color-border);
color: var(--color-text-light);
}
.comparison-item li:last-child {
border-bottom: none;
}
.comparison-arrow {
font-size: 2rem;
color: var(--color-accent);
}
/* ========================================
Technical Section
======================================== */
.technical {
padding: var(--section-padding) 0;
background: var(--color-bg-alt);
}
.tech-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
}
.tech-card {
background: var(--color-bg);
border-radius: 16px;
padding: 1.5rem;
box-shadow: var(--shadow-sm);
}
.tech-card h4 {
color: var(--color-accent);
margin-bottom: 1rem;
padding-bottom: 0.75rem;
border-bottom: 2px solid var(--color-border);
}
.tech-list {
list-style: none;
padding: 0;
}
.tech-list li {
padding: 0.75rem 0;
border-bottom: 1px solid var(--color-border);
font-size: 0.9375rem;
color: var(--color-text-light);
}
.tech-list li:last-child {
border-bottom: none;
}
.tech-list strong {
color: var(--color-text);
}
/* ========================================
Closing Section
======================================== */
.closing {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.closing-content {
max-width: 800px;
margin: 0 auto;
text-align: center;
}
.closing-content h2 {
margin-bottom: 1.5rem;
}
.closing-content > p {
font-size: 1.125rem;
max-width: 600px;
margin: 0 auto 2rem;
}
.closing-quote {
margin: 3rem 0;
}
.closing-quote blockquote {
border: none;
padding: 0;
font-size: 1.5rem;
max-width: 500px;
margin: 0 auto;
position: relative;
}
.closing-quote blockquote::before {
content: '"';
position: absolute;
top: -1rem;
left: -1rem;
font-size: 4rem;
color: var(--color-accent);
opacity: 0.3;
font-family: Georgia, serif;
}
.cta-section p {
color: var(--color-text-muted);
}
.poem-section {
margin: 4rem 0;
padding: 2rem;
background: var(--color-bg-alt);
border-radius: 16px;
}
.poem-intro {
font-size: 0.875rem;
color: var(--color-text-muted);
margin-bottom: 1rem;
letter-spacing: 0.15em;
text-transform: uppercase;
}
.poem {
font-family: Georgia, serif;
font-style: italic;
color: var(--color-text);
line-height: 2;
}
.poem p {
margin: 0;
font-size: 1.125rem;
}
.poem p:last-child {
color: var(--color-accent);
}
/* ========================================
Footer
======================================== */
.footer {
padding: 3rem 0;
background: var(--color-bg-dark);
text-align: center;
}
.footer-text {
color: white;
font-size: 1.125rem;
margin-bottom: 0.5rem;
}
.footer-subtext {
color: var(--color-text-muted);
font-size: 0.875rem;
margin: 0;
}
/* ========================================
Responsive
======================================== */
@media (max-width: 768px) {
:root {
--section-padding: 60px;
}
.feature-stats {
flex-direction: column;
gap: 1.5rem;
}
.comparison-arrow {
transform: rotate(90deg);
}
.mechanism-tabs {
gap: 0.25rem;
}
.tab-btn {
padding: 0.5rem 1rem;
font-size: 0.875rem;
}
}
@media (max-width: 480px) {
.hero-title {
font-size: 2rem;
}
.big-question {
flex-direction: column;
text-align: center;
}
.reason-number {
position: static;
margin-bottom: 1rem;
}
}
/* ========================================
Animations
======================================== */
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
.animate-pulse {
animation: pulse 2s infinite;
}
.animate-float {
animation: float 3s ease-in-out infinite;
}
/* Scroll animations */
.fade-in-up {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-up.visible {
opacity: 1;
transform: translateY(0);
}
/* ========================================
Navigation
======================================== */
.main-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(26, 24, 21, 0.95);
backdrop-filter: blur(10px);
z-index: 1000;
padding: 1rem 0;
}
.main-nav .container {
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-brand {
color: white;
font-size: 1.25rem;
font-weight: 600;
text-decoration: none;
}
.nav-links {
display: flex;
gap: 2rem;
}
.nav-links a {
color: var(--color-text-muted);
text-decoration: none;
font-size: 0.9375rem;
transition: color 0.2s ease;
}
.nav-links a:hover {
color: var(--color-accent);
}
/* ========================================
ELI5 Section
======================================== */
.elief-section {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.elief-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
max-width: 1000px;
margin: 0 auto;
}
.elief-card {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 2rem;
}
.elief-card h3 {
color: var(--color-accent);
margin-bottom: 1rem;
font-size: 1.25rem;
}
.elief-card p {
color: var(--color-text-light);
margin: 0;
line-height: 1.7;
}
/* ========================================
Demo Section Updates
======================================== */
.demo-chat {
background: var(--color-bg-dark-alt);
border-radius: 16px;
padding: 2rem;
margin-bottom: 2rem;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
.chat-message {
margin-bottom: 1.5rem;
}
.chat-message:last-child {
margin-bottom: 0;
}
.chat-role {
display: block;
font-weight: 600;
margin-bottom: 0.5rem;
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.user-message .chat-role {
color: var(--color-info);
}
.assistant-message .chat-role {
color: var(--color-accent);
}
.chat-text {
color: white;
font-size: 1.125rem;
}
.chat-thinking {
background: rgba(232, 93, 59, 0.1);
border-left: 3px solid var(--color-accent);
padding: 1rem 1.5rem;
margin-bottom: 1rem;
border-radius: 0 8px 8px 0;
}
.thinking-line {
color: var(--color-text-muted);
font-size: 0.9375rem;
padding: 0.25rem 0;
opacity: 0;
transition: opacity 0.3s ease;
}
.thinking-line.visible {
opacity: 1;
}
.thinking-line.active {
color: var(--color-accent-light);
}
.demo-visual {
background: var(--color-bg-dark-alt);
border-radius: 16px;
padding: 2rem;
margin-bottom: 2rem;
min-height: 500px;
display: flex;
align-items: center;
justify-content: center;
}
#demo-canvas {
width: 100%;
max-width: 900px;
height: 450px;
}
.demo-info {
display: flex;
justify-content: center;
gap: 2rem;
flex-wrap: wrap;
}
.tokenization-panel {
background: var(--color-bg-dark-alt);
border: 1px solid var(--color-border-dark);
border-radius: 12px;
padding: 1.5rem 2rem;
min-width: 250px;
}
.tokenization-panel h4 {
color: var(--color-accent);
margin-bottom: 1rem;
font-size: 0.875rem;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.token-display {
display: flex;
flex-wrap: wrap;
gap: 4px;
margin-bottom: 0.75rem;
}
.token {
background: var(--color-bg-dark);
color: var(--color-accent-light);
padding: 0.25rem 0.5rem;
border-radius: 4px;
font-family: var(--font-mono);
font-size: 0.875rem;
border: 1px solid var(--color-border-dark);
}
.token.space {
width: 0.5rem;
}
.token.active {
background: var(--color-accent);
color: white;
border-color: var(--color-accent);
}
.tokenization-note {
font-size: 0.75rem;
color: var(--color-text-muted);
margin: 0;
}
/* CoT Display */
.cot-display {
background: rgba(232, 93, 59, 0.1);
border-left: 3px solid var(--color-accent);
padding: 0.75rem 1rem;
margin-bottom: 0.75rem;
border-radius: 0 6px 6px 0;
}
.cot-line {
color: var(--color-accent-light);
font-size: 0.875rem;
font-family: var(--font-mono);
padding: 0.15rem 0;
opacity: 0;
transition: opacity 0.3s ease;
}
/* Blog Empty */
.blog-empty {
text-align: center;
padding: 4rem 2rem;
color: var(--color-text-muted);
}
.blog-empty p {
margin: 0;
font-size: 1.125rem;
}
/* ========================================
Roadmap Section
======================================== */
.roadmap-section {
padding: var(--section-padding) 0;
background: var(--color-bg-alt);
}
.roadmap-timeline {
max-width: 700px;
margin: 0 auto;
position: relative;
}
.roadmap-timeline::before {
content: '';
position: absolute;
left: 20px;
top: 0;
bottom: 0;
width: 2px;
background: var(--color-border);
}
.roadmap-item {
display: flex;
gap: 2rem;
padding: 1.5rem 0;
position: relative;
}
.roadmap-marker {
width: 42px;
height: 42px;
border-radius: 50%;
background: var(--color-bg);
border: 3px solid var(--color-border);
flex-shrink: 0;
position: relative;
z-index: 1;
}
.roadmap-item.completed .roadmap-marker {
background: var(--color-accent);
border-color: var(--color-accent);
}
.roadmap-item.completed .roadmap-marker::after {
content: '';
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 12px;
height: 12px;
background: white;
border-radius: 50%;
}
.roadmap-item.in-progress .roadmap-marker {
border-color: var(--color-accent);
animation: pulse 2s infinite;
}
.roadmap-content {
flex: 1;
}
.roadmap-content h4 {
margin-bottom: 0.5rem;
color: var(--color-text);
}
.roadmap-content p {
color: var(--color-text-light);
margin-bottom: 0.5rem;
}
.roadmap-status {
display: inline-block;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 0.25rem 0.75rem;
border-radius: 50px;
background: var(--color-bg);
color: var(--color-text-muted);
}
.roadmap-item.completed .roadmap-status {
background: rgba(80, 200, 120, 0.15);
color: var(--color-success);
}
.roadmap-item.in-progress .roadmap-status {
background: rgba(232, 93, 59, 0.15);
color: var(--color-accent);
}
/* ========================================
Credits Section
======================================== */
.credits-section {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.credits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
max-width: 1000px;
margin: 0 auto;
}
.credit-card {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 1.5rem;
}
.credit-card h4 {
color: var(--color-text-muted);
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 0.5rem;
}
.credit-name {
font-family: var(--font-mono);
font-size: 0.9375rem;
color: var(--color-accent);
margin-bottom: 0.75rem;
}
.credit-card p:not(.credit-name) {
color: var(--color-text-light);
font-size: 0.9375rem;
margin-bottom: 1rem;
}
.credit-card a {
font-size: 0.875rem;
font-weight: 500;
}
/* ========================================
Page Header
======================================== */
.page-header {
padding: 8rem 0 4rem;
background: var(--color-bg-dark);
text-align: center;
}
.page-header h1 {
color: white;
margin-bottom: 0.5rem;
}
.page-header p {
color: var(--color-text-muted);
font-size: 1.125rem;
margin: 0;
}
/* ========================================
Blog Section
======================================== */
.blog-section {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.blog-list {
max-width: 800px;
margin: 0 auto;
}
.blog-card {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 2rem;
margin-bottom: 1.5rem;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
display: block;
text-decoration: none;
}
.blog-card:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-md);
}
.blog-meta {
display: flex;
gap: 1rem;
margin-bottom: 1rem;
}
.blog-date {
color: var(--color-text-muted);
font-size: 0.875rem;
}
.blog-tag {
background: rgba(232, 93, 59, 0.1);
color: var(--color-accent);
font-size: 0.75rem;
font-weight: 600;
padding: 0.25rem 0.75rem;
border-radius: 50px;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.blog-card h2 {
font-size: 1.5rem;
margin-bottom: 0.75rem;
}
.blog-card h2 a {
color: var(--color-text);
text-decoration: none;
}
.blog-card h2 a:hover {
color: var(--color-accent);
}
.blog-card p {
color: var(--color-text-light);
margin-bottom: 1rem;
}
.blog-read-more {
color: var(--color-accent);
font-weight: 500;
font-size: 0.9375rem;
}
.blog-empty {
text-align: center;
padding: 4rem 2rem;
color: var(--color-text-muted);
}
.blog-empty p {
margin: 0;
font-size: 1.125rem;
}
/* ========================================
Status Section
======================================== */
.status-section {
padding: var(--section-padding) 0;
background: var(--color-bg);
}
.status-overview {
max-width: 600px;
margin: 0 auto 4rem;
}
.status-card {
background: var(--color-bg-alt);
border-radius: 20px;
padding: 2rem;
text-align: center;
}
.status-card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
}
.status-badge {
display: inline-block;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 0.5rem 1rem;
border-radius: 50px;
margin-bottom: 1.5rem;
}
.status-badge.in-progress {
background: rgba(232, 93, 59, 0.15);
color: var(--color-accent);
}
.status-badge.complete {
background: rgba(80, 200, 120, 0.15);
color: var(--color-success);
}
.status-details {
text-align: left;
}
.status-row {
display: flex;
justify-content: space-between;
padding: 0.75rem 0;
border-bottom: 1px solid var(--color-border);
}
.status-row:last-child {
border-bottom: none;
}
.status-row span:first-child {
color: var(--color-text-muted);
}
.status-row span:last-child {
font-weight: 500;
}
.training-log {
max-width: 700px;
margin: 0 auto 4rem;
}
.training-log h3 {
margin-bottom: 1.5rem;
text-align: center;
}
.log-entries {
background: var(--color-bg-alt);
border-radius: 16px;
padding: 1.5rem;
}
.log-entry {
padding: 1rem 0;
border-bottom: 1px solid var(--color-border);
}
.log-entry:last-child {
border-bottom: none;
}
.log-date {
color: var(--color-text-muted);
font-size: 0.875rem;
margin-right: 0.75rem;
}
.log-status {
font-size: 0.75rem;
font-weight: 600;
padding: 0.125rem 0.5rem;
border-radius: 50px;
background: rgba(80, 200, 120, 0.15);
color: var(--color-success);
}
.log-status.active {
background: rgba(232, 93, 59, 0.15);
color: var(--color-accent);
}
.log-entry p {
margin: 0.5rem 0 0;
color: var(--color-text-light);
font-size: 0.9375rem;
}
.metrics-section {
max-width: 900px;
margin: 0 auto 4rem;
}
.metrics-section h3 {
text-align: center;
margin-bottom: 2rem;
}
.metrics-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 1.5rem;
}
.metric-card {
background: var(--color-bg-alt);
border-radius: 12px;
padding: 1.5rem;
text-align: center;
}
.metric-value {
font-size: 2rem;
font-weight: 700;
color: var(--color-accent);
margin-bottom: 0.25rem;
}
.metric-label {
font-size: 0.75rem;
color: var(--color-text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.availability-section {
max-width: 600px;
margin: 0 auto;
text-align: center;
}
.availability-section h3 {
margin-bottom: 1rem;
}
.availability-section p {
color: var(--color-text-light);
margin-bottom: 1.5rem;
}
.availability-link {
display: inline-block;
background: var(--color-accent);
color: white;
padding: 0.75rem 1.5rem;
border-radius: 8px;
font-weight: 500;
text-decoration: none;
}
.availability-link:hover {
background: var(--color-accent-dark);
color: white;
}
.disclaimer-text {
text-align: center;
color: var(--color-text-muted);
font-size: 0.875rem;
font-style: italic;
margin-top: 1rem;
margin-bottom: 0;
}
/* ========================================
Features Grid Section
======================================== */
.features-section {
max-width: 700px;
margin: 0 auto 4rem;
}
.features-section h3 {
text-align: center;
margin-bottom: 1.5rem;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
}
.feature-toggle {
background: var(--color-bg-alt);
border-radius: 12px;
padding: 1rem 1.25rem;
display: flex;
justify-content: space-between;
align-items: center;
border: 2px solid transparent;
}
.feature-toggle.enabled {
border-color: rgba(80, 200, 120, 0.3);
}
.feature-toggle.disabled {
opacity: 0.6;
}
.feature-name {
font-weight: 500;
color: var(--color-text);
}
.feature-status {
font-size: 0.75rem;
padding: 0.25rem 0.5rem;
border-radius: 50px;
background: rgba(80, 200, 120, 0.15);
color: var(--color-success);
}
.feature-toggle.disabled .feature-status {
background: rgba(154, 148, 141, 0.15);
color: var(--color-text-muted);
}
/* ========================================
Blog Post Page
======================================== */
.blog-post-section {
padding: var(--section-padding) 0;
background: var(--color-bg);
flex: 1;
}
.blog-post-content {
max-width: 700px;
margin: 0 auto;
}
.blog-loading {
text-align: center;
color: var(--color-text-muted);
padding: 4rem 0;
}
.blog-back {
display: inline-block;
color: var(--color-accent);
font-weight: 500;
margin-bottom: 2rem;
text-decoration: none;
}
.blog-back:hover {
color: var(--color-accent-dark);
}
.blog-post-header {
margin-bottom: 3rem;
}
.blog-post-header h1 {
margin-top: 1rem;
}
.blog-post-body p {
font-size: 1.125rem;
line-height: 1.8;
margin-bottom: 1.75rem;
color: var(--color-text);
}
.blog-post-body p:first-of-type {
font-size: 1.25rem;
}
.blog-read-more {
display: inline-block;
margin-top: 0.5rem;
}
.blog-post-body h1 {
font-size: 2rem;
margin: 2.5rem 0 1rem;
padding-bottom: 0.5rem;
border-bottom: 2px solid var(--color-border);
}
.blog-post-body h2 {
font-size: 1.6rem;
margin: 2rem 0 0.8rem;
color: var(--color-accent);
}
.blog-post-body h3 {
font-size: 1.3rem;
margin: 1.5rem 0 0.6rem;
color: var(--color-text);
}
.blog-post-body blockquote {
border-left: 4px solid var(--color-accent);
padding: 1rem 1.5rem;
margin: 2rem 0;
background: var(--color-bg-alt);
border-radius: 0 8px 8px 0;
font-style: italic;
font-size: 1.1rem;
color: var(--color-text);
}
.blog-post-body blockquote p {
margin: 0;
}
.blog-post-body ul, .blog-post-body ol {
margin: 1.5rem 0;
padding-left: 1.5rem;
}
.blog-post-body li {
margin-bottom: 0.75rem;
color: var(--color-text);
line-height: 1.7;
}
.blog-post-body ul li {
list-style-type: disc;
}
.blog-post-body ol li {
list-style-type: decimal;
}
.blog-post-body hr {
border: none;
height: 2px;
background: linear-gradient(to right, transparent, var(--color-border), transparent);
margin: 3rem 0;
}
.blog-post-body pre {
background: var(--color-bg-dark);
color: #f5f0e8;
padding: 1.5rem;
border-radius: 12px;
overflow-x: auto;
margin: 1.5rem 0;
font-family: var(--font-mono);
font-size: 0.9rem;
line-height: 1.6;
}
.blog-post-body pre code {
background: none;
padding: 0;
color: inherit;
font-size: inherit;
}
.blog-post-body code {
font-family: var(--font-mono);
background: var(--color-bg-alt);
padding: 0.2em 0.5em;
border-radius: 4px;
font-size: 0.85em;
color: var(--color-accent-dark);
}
.blog-post-body a {
color: var(--color-accent);
text-decoration: underline;
text-underline-offset: 2px;
}
.blog-post-body a:hover {
color: var(--color-accent-dark);
}
.blog-post-body strong {
color: var(--color-text);
font-weight: 600;
}
.blog-post-body em {
color: var(--color-text);
}
.blog-post-body img {
max-width: 100%;
height: auto;
border-radius: 12px;
margin: 2rem 0;
}