/* ΞSUS Website Styles - Inspired by LibrePGP's clean technical aesthetic */ :root { --primary-color: #2c3e50; --secondary-color: #34495e; --accent-color: #3498db; --highlight-color: #e74c3c; --success-color: #27ae60; --text-color: #2c3e50; --text-light: #7f8c8d; --background: #ffffff; --background-light: #f8f9fa; --border-color: #dee2e6; --code-background: #f1f3f4; --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif; --font-family-mono: 'SF Mono', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace; --max-width: 1200px; --content-width: 800px; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-family); line-height: 1.6; color: var(--text-color); background: var(--background); } .container { max-width: var(--max-width); margin: 0 auto; padding: 0 2rem; } /* Header */ .site-header { background: var(--background); border-bottom: 2px solid var(--border-color); padding: 1rem 0; position: sticky; top: 0; z-index: 100; } .header-content { display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 1rem; } .xi-symbol { width: 32px; height: 32px; } .logo h1 { font-size: 1.8rem; font-weight: 700; color: var(--primary-color); } .main-nav { display: flex; gap: 2rem; } .main-nav a { color: var(--text-color); text-decoration: none; font-weight: 600; transition: color 0.2s ease; } .main-nav a:hover { color: var(--accent-color); } /* Hero Section */ .hero { text-align: center; padding: 4rem 0; background: linear-gradient(135deg, var(--background-light) 0%, var(--background) 100%); border-bottom: 1px solid var(--border-color); } .hero-title { font-size: 4rem; font-weight: 700; color: var(--primary-color); margin-bottom: 1rem; } .hero-subtitle { font-size: 1.5rem; color: var(--text-light); margin-bottom: 2rem; font-weight: 400; } .hero-tagline { font-size: 1.2rem; color: var(--text-color); max-width: 600px; margin: 0 auto; } /* Main Content */ .main-content { max-width: var(--content-width); margin: 0 auto; padding: 3rem 2rem; } h1, h2, h3, h4, h5, h6 { color: var(--primary-color); font-weight: 600; margin: 2rem 0 1rem 0; line-height: 1.3; } h2 { font-size: 1.8rem; border-bottom: 2px solid var(--border-color); padding-bottom: 0.5rem; } h3 { font-size: 1.4rem; } p { margin-bottom: 1.5rem; } /* Formula Block */ .formula-block { background: var(--code-background); border: 2px solid var(--border-color); border-radius: 8px; padding: 2rem; margin: 2rem 0; text-align: center; font-family: var(--font-family-mono); font-size: 1.5rem; font-weight: 600; color: var(--primary-color); } /* Resource Grid */ .resource-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; margin: 2rem 0; } .resource-card { background: var(--background); border: 2px solid var(--border-color); border-radius: 8px; padding: 2rem; transition: all 0.3s ease; } .resource-card:hover { border-color: var(--accent-color); box-shadow: 0 4px 12px rgba(52, 152, 219, 0.1); transform: translateY(-2px); } .resource-card h3 { margin-top: 0; margin-bottom: 1rem; color: var(--primary-color); } .resource-card p { margin-bottom: 1rem; color: var(--text-light); } .resource-card a { color: var(--accent-color); text-decoration: none; font-weight: 600; } .resource-card a:hover { text-decoration: underline; } /* Quote Block */ .quote-block { margin: 3rem 0; padding: 2rem; background: var(--background-light); border-left: 4px solid var(--accent-color); border-radius: 0 8px 8px 0; } .quote-block blockquote { font-style: italic; color: var(--text-light); text-align: center; font-size: 1.1rem; } /* Lists */ ul, ol { margin-left: 2rem; margin-bottom: 1.5rem; } li { margin-bottom: 0.5rem; } /* Links */ a { color: var(--accent-color); text-decoration: none; } a:hover { text-decoration: underline; } /* Code */ code { background: var(--code-background); padding: 0.2rem 0.4rem; border-radius: 4px; font-family: var(--font-family-mono); font-size: 0.9em; } /* Footer */ .site-footer { background: var(--primary-color); color: white; padding: 3rem 0; margin-top: 4rem; text-align: center; } .site-footer p { margin-bottom: 1rem; } .footnote { font-size: 0.9rem; opacity: 0.8; font-style: italic; } /* Responsive Design */ @media (max-width: 768px) { .container { padding: 0 1rem; } .header-content { flex-direction: column; gap: 1rem; } .main-nav { gap: 1rem; } .hero-title { font-size: 3rem; } .hero-subtitle { font-size: 1.3rem; } .main-content { padding: 2rem 1rem; } .resource-grid { grid-template-columns: 1fr; } .formula-block { padding: 1.5rem; font-size: 1.2rem; } } @media (max-width: 480px) { .hero-title { font-size: 2.5rem; } .formula-block { font-size: 1rem; } } /* Accessibility */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } /* Focus styles for keyboard navigation */ a:focus, button:focus { outline: 2px solid var(--accent-color); outline-offset: 2px; } /* Print styles */ @media print { .site-header, .site-footer { display: none; } .main-content { max-width: none; margin: 0; padding: 0; } a { color: var(--text-color); text-decoration: underline; } .resource-card { border: 1px solid var(--border-color); break-inside: avoid; } } /* Speaker Voice Styles */ .human-voice { background: linear-gradient(135deg, #fefefe 0%, #f8f9fa 100%); border: 2px solid var(--border-color); border-left: 6px solid var(--primary-color); border-radius: 8px; padding: 2rem; margin: 2rem 0; position: relative; } .human-voice::before { content: "👤 Human Perspective"; position: absolute; top: -12px; left: 20px; background: var(--background); padding: 0 10px; font-size: 0.8rem; font-weight: 600; color: var(--primary-color); } .ai-claude-voice { background: linear-gradient(135deg, #faf8f5 0%, #f4f1eb 100%); border: 2px solid #d4a574; border-left: 6px solid #8b4513; border-radius: 8px; padding: 2rem; margin: 2rem 0; position: relative; } .ai-claude-voice::before { content: "🤖 Claude Opus 4"; position: absolute; top: -12px; left: 20px; background: var(--background); padding: 0 10px; font-size: 0.8rem; font-weight: 600; color: #8b4513; } .ai-chatgpt-voice { background: linear-gradient(135deg, #f0f8f0 0%, #e8f5e8 100%); border: 2px solid #90c695; border-left: 6px solid #228b22; border-radius: 8px; padding: 2rem; margin: 2rem 0; position: relative; } .ai-chatgpt-voice::before { content: "🧠 ChatGPT-4.5"; position: absolute; top: -12px; left: 20px; background: var(--background); padding: 0 10px; font-size: 0.8rem; font-weight: 600; color: #228b22; } .human-voice h3, .ai-claude-voice h3, .ai-chatgpt-voice h3 { margin-top: 0; } .human-voice h4, .ai-claude-voice h4, .ai-chatgpt-voice h4 { margin-top: 1rem; margin-bottom: 0.75rem; } /* Responsive adjustments for speaker voices */ @media (max-width: 768px) { .human-voice, .ai-claude-voice, .ai-chatgpt-voice { padding: 1.5rem; margin: 1rem 0; } .human-voice::before, .ai-claude-voice::before, .ai-chatgpt-voice::before { font-size: 0.7rem; left: 15px; } } /* Print styles */ @media print { .site-header, .site-footer { display: none; } .main-content { max-width: none; margin: 0; padding: 0; } a { color: var(--text-color); text-decoration: underline; } .resource-card { border: 1px solid var(--border-color); break-inside: avoid; } .human-voice, .ai-claude-voice, .ai-chatgpt-voice { background: none !important; border: 1px solid var(--border-color) !important; break-inside: avoid; } .human-voice::before, .ai-claude-voice::before, .ai-chatgpt-voice::before { color: black !important; } } /* TOC layout container */ .page-layout { display: flex; gap: 2rem; align-items: flex-start; position: relative; } /* Sidebar TOC */ #toc-wrapper { flex: 0 0 240px; background: var(--background-light); border-right: 2px solid var(--border-color); padding: 1rem; max-height: calc(100vh - 80px); overflow-y: auto; position: sticky; top: 80px; transition: transform 0.3s ease, width 0.3s ease; z-index: 10; } /* Inner ToC content (for collapsing) */ .toc-inner { display: block; } /* TOC toggle button */ #toc-toggle { background: none; border: none; font-size: 1.2rem; cursor: pointer; margin-bottom: 1rem; display: block; } /* Collapsed mode */ #toc-wrapper.collapsed .toc-inner { display: none; } #toc-wrapper.collapsed { width: auto; padding: 0.5rem; } #toc-wrapper.collapsed #toc-toggle { display: block; } #toc-wrapper h2 { font-size: 1.1rem; margin-bottom: 0.5rem; } #toc-wrapper ul { list-style: none; padding-left: 0; font-size: 0.9rem; } #toc-wrapper li { margin: 0.5rem 0; } #toc-wrapper a { color: var(--text-color); text-decoration: none; } #toc-wrapper a:hover { text-decoration: underline; } /* Content */ .content-area { flex: 1; min-width: 0; } /* Hide on mobile */ @media (max-width: 768px) { .page-layout { flex-direction: column; } #toc-wrapper { position: relative; top: unset; border-right: none; border-bottom: 2px solid var(--border-color); width: 100%; max-height: none; } #toc-toggle { display: block; } #toc-wrapper.collapsed { padding: 0.5rem; } }