/* ── About Modal ── */ .about-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,0.7); backdrop-filter: blur(6px); display: none; align-items: center; justify-content: center; } .about-overlay.active { display: flex; } .about-modal { background: var(--bg-secondary); border: 1px solid var(--border-md); border-radius: 16px; width: 480px; max-width: 92vw; max-height: 90vh; overflow-y: auto; position: relative; box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.05); animation: about-in 0.35s ease; } @keyframes about-in { from { opacity: 0; transform: translateY(20px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } } .about-close { position: absolute; top: 12px; right: 14px; background: var(--bg-hover); border: none; color: var(--text-secondary); width: 30px; height: 30px; border-radius: 8px; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.15s, color 0.15s; z-index: 1; } .about-close:hover { background: var(--danger-bg); color: var(--danger); } .about-hero { text-align: center; padding: 36px 24px 28px; background: linear-gradient(160deg, var(--accent-bg) 0%, transparent 60%); border-bottom: 1px solid var(--border); } .about-logo { margin-bottom: 14px; display: inline-block; } .about-title { font-size: 1.6rem; font-weight: 700; color: var(--text-primary); letter-spacing: -0.5px; margin-bottom: 6px; } .about-tagline { font-size: 0.85rem; color: var(--text-secondary); line-height: 1.5; margin-bottom: 10px; } .about-version { display: inline-block; padding: 3px 12px; background: var(--accent); color: #fff; font-size: 0.7rem; font-weight: 600; font-family: var(--mono); border-radius: 20px; letter-spacing: 0.5px; } .about-body { padding: 20px 24px 24px; } .about-stats { display: flex; gap: 0; justify-content: center; margin-bottom: 20px; } .about-stat { flex: 1; text-align: center; padding: 12px 8px; border-right: 1px solid var(--border); } .about-stat:last-child { border-right: none; } .about-stat-value { display: block; font-size: 1.5rem; font-weight: 700; color: var(--accent); font-family: var(--mono); } .about-stat-label { font-size: 0.65rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.6px; margin-top: 2px; } .about-stack { margin-bottom: 18px; } .about-stack h3 { font-size: 0.7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 10px; } .about-stack-grid { display: flex; flex-wrap: wrap; gap: 6px; } .about-stack-badge { padding: 3px 10px; font-size: 0.68rem; background: var(--bg-hover); color: var(--text-secondary); border: 1px solid var(--border); border-radius: 6px; font-family: var(--mono); } .about-footer { border-top: 1px solid var(--border); padding-top: 14px; } .about-meta { display: flex; gap: 16px; font-size: 0.7rem; color: var(--text-muted); margin-bottom: 10px; flex-wrap: wrap; } .about-meta strong { color: var(--text-secondary); font-family: var(--mono); font-size: 0.68rem; } .about-joke { font-size: 0.7rem; color: var(--text-muted); font-style: italic; margin-bottom: 8px; opacity: 0.7; } .about-copy { font-size: 0.65rem; color: var(--text-muted); opacity: 0.5; } .about-copy code { font-family: var(--mono); font-size: 0.6rem; }