/* ================================================================ Deep-Dive Video Note Taker — style.css Design: Dark glassmorphism + vibrant purple/cyan gradient system ================================================================ */ /* ── Reset & Base ─────────────────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root { /* Color Palette */ --clr-bg: #07080f; --clr-bg-2: #0d0f1e; --clr-surface: rgba(255,255,255,0.04); --clr-surface-2: rgba(255,255,255,0.07); --clr-border: rgba(255,255,255,0.08); --clr-border-2: rgba(255,255,255,0.14); --clr-primary: #7c3aed; --clr-primary-l: #9b60ff; --clr-accent: #06b6d4; --clr-accent-l: #22d3ee; --clr-green: #10b981; --clr-red: #ef4444; --clr-yellow: #f59e0b; --clr-text: #e2e8f0; --clr-text-muted: #94a3b8; --clr-text-dim: #475569; /* Typography */ --font-sans: 'Inter', system-ui, sans-serif; --font-mono: 'JetBrains Mono', monospace; /* Spacing */ --radius-sm: 8px; --radius: 14px; --radius-lg: 20px; --radius-xl: 28px; /* Shadows */ --shadow-glow: 0 0 40px rgba(124,58,237,0.25); --shadow-card: 0 8px 32px rgba(0,0,0,0.4); --shadow-sm: 0 2px 8px rgba(0,0,0,0.3); } html { scroll-behavior: smooth; } body { font-family: var(--font-sans); background: var(--clr-bg); color: var(--clr-text); min-height: 100vh; overflow-x: hidden; line-height: 1.6; } a { color: var(--clr-accent); text-decoration: none; } a:hover { color: var(--clr-accent-l); } /* ── Container ────────────────────────────────────────────── */ .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; } /* ── Hidden utility ──────────────────────────────────────── */ .hidden { display: none !important; } /* ═══════════════════════════════════ HEADER ══ */ .header { position: sticky; top: 0; z-index: 100; backdrop-filter: blur(20px); background: rgba(7,8,15,0.85); border-bottom: 1px solid var(--clr-border); } .header-inner { max-width: 1200px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; gap: 24px; } /* Logo */ .logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--clr-text); flex-shrink: 0; } .logo-icon { font-size: 28px; } .logo-title { display: block; font-size: 16px; font-weight: 700; background: linear-gradient(135deg, var(--clr-primary-l), var(--clr-accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; line-height: 1.1; } .logo-sub { display: block; font-size: 11px; color: var(--clr-text-muted); font-weight: 400; line-height: 1.1; } /* Nav Pills */ .nav-pills { display: flex; gap: 4px; margin-left: auto; } .nav-pill { padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--clr-text-muted); transition: all 0.2s; border: 1px solid transparent; } .nav-pill:hover, .nav-pill.active { color: var(--clr-text); background: var(--clr-surface-2); border-color: var(--clr-border-2); } /* AI Ready badge */ .header-badge { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--clr-green); background: rgba(16,185,129,0.1); border: 1px solid rgba(16,185,129,0.25); padding: 5px 12px; border-radius: 999px; flex-shrink: 0; } .pulse-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--clr-green); animation: pulse 2s infinite; } @keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.75); } } /* ═══════════════════════════════════ HERO ══ */ .hero { position: relative; overflow: hidden; padding: 100px 24px 80px; text-align: center; min-height: 520px; display: flex; align-items: center; justify-content: center; } /* Animated blobs */ .hero-bg { position: absolute; inset: 0; z-index: 0; } .blob { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.35; animation: blobFloat 12s ease-in-out infinite; } .blob-1 { width: 500px; height: 500px; background: radial-gradient(circle, #7c3aed 0%, transparent 70%); top: -150px; left: -100px; animation-delay: 0s; } .blob-2 { width: 400px; height: 400px; background: radial-gradient(circle, #06b6d4 0%, transparent 70%); top: -100px; right: -80px; animation-delay: -4s; } .blob-3 { width: 350px; height: 350px; background: radial-gradient(circle, #6d28d9 0%, transparent 70%); bottom: -100px; left: 40%; animation-delay: -8s; } @keyframes blobFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(30px, -30px) scale(1.05); } 66% { transform: translate(-20px, 20px) scale(0.95); } } .hero-content { position: relative; z-index: 1; max-width: 760px; } .hero-badge { display: inline-block; padding: 6px 16px; border-radius: 999px; border: 1px solid rgba(124,58,237,0.4); background: rgba(124,58,237,0.1); font-size: 13px; font-weight: 500; color: var(--clr-primary-l); margin-bottom: 28px; letter-spacing: 0.02em; } .hero-title { font-size: clamp(36px, 6vw, 64px); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; margin-bottom: 20px; color: var(--clr-text); } .gradient-text { background: linear-gradient(135deg, #7c3aed 0%, #06b6d4 50%, #7c3aed 100%); background-size: 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: gradientShift 4s linear infinite; } @keyframes gradientShift { 0% { background-position: 0% center; } 100% { background-position: 200% center; } } .hero-desc { font-size: 18px; color: var(--clr-text-muted); max-width: 560px; margin: 0 auto 40px; line-height: 1.7; } .hero-stats { display: flex; align-items: center; justify-content: center; gap: 32px; } .stat { display: flex; flex-direction: column; align-items: center; gap: 2px; } .stat-num { font-size: 28px; font-weight: 800; background: linear-gradient(135deg, var(--clr-primary-l), var(--clr-accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .stat-label { font-size: 12px; color: var(--clr-text-muted); font-weight: 500; } .stat-divider { width: 1px; height: 40px; background: var(--clr-border-2); } /* ═══════════════════════════════════ PIPELINE ══ */ .pipeline-section { padding: 60px 0; background: var(--clr-bg-2); border-top: 1px solid var(--clr-border); border-bottom: 1px solid var(--clr-border); } .section-title { font-size: 28px; font-weight: 700; text-align: center; margin-bottom: 8px; letter-spacing: -0.02em; } .section-subtitle { text-align: center; color: var(--clr-text-muted); font-size: 15px; margin-bottom: 40px; } .pipeline-steps { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; margin-top: 40px; } .pipeline-step { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius); padding: 24px 20px; text-align: center; width: 160px; transition: all 0.3s; position: relative; overflow: hidden; } .pipeline-step::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(124,58,237,0.06), rgba(6,182,212,0.06)); opacity: 0; transition: opacity 0.3s; } .pipeline-step:hover { border-color: var(--clr-border-2); transform: translateY(-4px); box-shadow: var(--shadow-glow); } .pipeline-step:hover::before { opacity: 1; } .step-icon { font-size: 32px; margin-bottom: 8px; } .step-num { font-size: 11px; font-weight: 700; color: var(--clr-primary-l); letter-spacing: 0.1em; margin-bottom: 6px; } .step-title { font-size: 14px; font-weight: 600; margin-bottom: 6px; } .step-desc { font-size: 12px; color: var(--clr-text-muted); line-height: 1.5; } .pipeline-arrow { font-size: 20px; color: var(--clr-text-dim); flex-shrink: 0; } /* ═══════════════════════════════════ UPLOAD ══ */ .upload-section { padding: 80px 0; } .upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 40px; } /* Drop Zone */ .upload-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-lg); padding: 32px; } .drop-zone { border: 2px dashed var(--clr-border-2); border-radius: var(--radius); padding: 60px 32px; text-align: center; cursor: pointer; transition: all 0.3s; position: relative; } .drop-zone:hover, .drop-zone.drag-over { border-color: var(--clr-primary); background: rgba(124,58,237,0.06); } .drop-icon { font-size: 48px; margin-bottom: 12px; } .drop-title { font-size: 18px; font-weight: 600; margin-bottom: 4px; } .drop-sub { font-size: 13px; color: var(--clr-text-muted); } /* File Preview */ .file-preview { display: flex; align-items: center; gap: 16px; padding: 20px; background: rgba(124,58,237,0.08); border: 1px solid rgba(124,58,237,0.25); border-radius: var(--radius); margin-top: 20px; } .file-icon { font-size: 36px; flex-shrink: 0; } .file-info { flex: 1; min-width: 0; } .file-name { font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .file-size { font-size: 13px; color: var(--clr-text-muted); margin-top: 2px; } .btn-clear { background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.25); color: var(--clr-red); width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 13px; transition: all 0.2s; flex-shrink: 0; } .btn-clear:hover { background: rgba(239,68,68,0.2); } /* Config Card */ .config-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-lg); padding: 32px; } .config-title { font-size: 18px; font-weight: 700; margin-bottom: 24px; } .form-group { margin-bottom: 20px; } .form-label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 7px; color: var(--clr-text-muted); letter-spacing: 0.03em; text-transform: uppercase; } .optional { font-weight: 400; text-transform: none; font-size: 12px; } .form-input { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid var(--clr-border-2); border-radius: var(--radius-sm); padding: 10px 14px; color: var(--clr-text); font-size: 14px; font-family: var(--font-sans); transition: all 0.2s; outline: none; } .form-input:focus { border-color: var(--clr-primary); background: rgba(124,58,237,0.05); box-shadow: 0 0 0 3px rgba(124,58,237,0.1); } .form-hint { font-size: 12px; color: var(--clr-text-dim); margin-top: 5px; } .feature-toggles { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; } .toggle-item { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 14px; font-weight: 500; } .toggle-item input[type="checkbox"] { accent-color: var(--clr-primary); width: 16px; height: 16px; cursor: pointer; } .toggle-label { color: var(--clr-text-muted); } /* Buttons */ .btn-primary { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 24px; border-radius: var(--radius-sm); background: linear-gradient(135deg, var(--clr-primary), #6d28d9); color: #fff; font-size: 16px; font-weight: 600; border: none; cursor: pointer; transition: all 0.3s; box-shadow: 0 4px 20px rgba(124,58,237,0.4); font-family: var(--font-sans); } .btn-primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(124,58,237,0.5); background: linear-gradient(135deg, var(--clr-primary-l), var(--clr-primary)); } .btn-primary:disabled { opacity: 0.4; cursor: not-allowed; transform: none; } .btn-primary.loading .btn-text::after { content: '…'; } .btn-icon { font-size: 18px; } .btn-secondary { padding: 8px 16px; border-radius: var(--radius-sm); background: var(--clr-surface-2); border: 1px solid var(--clr-border-2); color: var(--clr-text); font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s; font-family: var(--font-sans); } .btn-secondary:hover { background: rgba(255,255,255,0.1); border-color: var(--clr-border-2); transform: translateY(-1px); } /* ── Progress ──────────────────────────────────────────────── */ .progress-section { margin-top: 40px; background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-lg); padding: 32px; } .progress-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; font-size: 15px; font-weight: 500; } #progress-pct { color: var(--clr-primary-l); font-weight: 700; font-size: 18px; } .progress-bar-bg { height: 10px; background: rgba(255,255,255,0.07); border-radius: 999px; overflow: hidden; margin-bottom: 24px; } .progress-bar-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--clr-primary), var(--clr-accent)); transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 0 12px rgba(124,58,237,0.6); } .progress-steps { display: flex; gap: 8px; flex-wrap: wrap; } .progress-step { padding: 6px 14px; border-radius: 999px; background: var(--clr-surface-2); border: 1px solid var(--clr-border); font-size: 12px; font-weight: 500; color: var(--clr-text-muted); transition: all 0.3s; } .progress-step.active { background: rgba(124,58,237,0.15); border-color: var(--clr-primary); color: var(--clr-primary-l); } .progress-step.done { background: rgba(16,185,129,0.1); border-color: var(--clr-green); color: var(--clr-green); } /* ═══════════════════════════════════ RESULTS ══ */ .results-section { padding: 80px 0; background: var(--clr-bg-2); } .results-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 32px; } .results-actions { display: flex; gap: 10px; flex-wrap: wrap; } /* Tabs */ .tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--clr-border); margin-bottom: 32px; } .tab { padding: 10px 20px; border: none; background: transparent; color: var(--clr-text-muted); font-size: 14px; font-weight: 500; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: all 0.2s; font-family: var(--font-sans); border-radius: var(--radius-sm) var(--radius-sm) 0 0; } .tab:hover { color: var(--clr-text); background: var(--clr-surface); } .tab.active { color: var(--clr-primary-l); border-bottom-color: var(--clr-primary); background: rgba(124,58,237,0.07); } .tab-content { display: none; } .tab-content.active { display: block; } /* Notes Output */ .notes-output { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-lg); padding: 40px; font-size: 15px; line-height: 1.8; max-height: 700px; overflow-y: auto; } .notes-output h1, .notes-output h2 { margin-top: 32px; margin-bottom: 12px; font-weight: 700; letter-spacing: -0.02em; } .notes-output h1 { font-size: 24px; color: var(--clr-text); } .notes-output h2 { font-size: 20px; color: var(--clr-text); border-bottom: 1px solid var(--clr-border); padding-bottom: 8px; } .notes-output h3 { font-size: 16px; color: var(--clr-primary-l); margin: 20px 0 8px; font-weight: 600; } .notes-output ul { padding-left: 24px; margin: 8px 0; } .notes-output li { margin-bottom: 6px; color: var(--clr-text-muted); } .notes-output p { margin-bottom: 12px; color: var(--clr-text-muted); } .notes-output code { background: rgba(124,58,237,0.12); padding: 2px 6px; border-radius: 4px; font-family: var(--font-mono); font-size: 13px; color: var(--clr-accent-l); } .notes-output pre { background: rgba(0,0,0,0.3); padding: 16px; border-radius: var(--radius-sm); overflow-x: auto; margin: 12px 0; border: 1px solid var(--clr-border); } .notes-output blockquote { border-left: 3px solid var(--clr-primary); padding-left: 16px; margin: 12px 0; color: var(--clr-text-muted); font-style: italic; } .notes-output strong { color: var(--clr-text); font-weight: 600; } .notes-output hr { border: none; border-top: 1px solid var(--clr-border); margin: 24px 0; } /* Highlights */ .highlights-list { display: flex; flex-direction: column; gap: 16px; } .highlight-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-left: 4px solid var(--clr-primary); border-radius: var(--radius); padding: 20px 24px; transition: all 0.2s; } .highlight-card:hover { border-color: var(--clr-border-2); border-left-color: var(--clr-accent); transform: translateX(4px); } .highlight-ts { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--clr-accent); background: rgba(6,182,212,0.1); padding: 3px 10px; border-radius: 999px; display: inline-block; margin-bottom: 8px; } .highlight-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; } .highlight-summary { font-size: 14px; color: var(--clr-text-muted); line-height: 1.6; } /* Actions */ .actions-list { display: flex; flex-direction: column; gap: 12px; } .action-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius); padding: 16px 20px; display: flex; align-items: flex-start; gap: 16px; transition: all 0.2s; } .action-card:hover { border-color: var(--clr-border-2); background: var(--clr-surface-2); } .action-icon { font-size: 22px; flex-shrink: 0; margin-top: 2px; } .action-body { flex: 1; } .action-desc { font-size: 15px; font-weight: 500; margin-bottom: 6px; } .action-meta { display: flex; gap: 10px; flex-wrap: wrap; } .action-badge { font-size: 11px; font-weight: 600; padding: 2px 10px; border-radius: 999px; border: 1px solid; } .action-badge.high { color: #f87171; border-color: rgba(248,113,113,0.3); background: rgba(248,113,113,0.1); } .action-badge.medium { color: #fbbf24; border-color: rgba(251,191,36,0.3); background: rgba(251,191,36,0.1); } .action-badge.low { color: #34d399; border-color: rgba(52,211,153,0.3); background: rgba(52,211,153,0.1); } .action-ts { font-family: var(--font-mono); font-size: 12px; color: var(--clr-text-dim); } /* Transcript */ .transcript-output { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius-lg); padding: 32px; max-height: 600px; overflow-y: auto; font-family: var(--font-mono); font-size: 13px; line-height: 1.8; color: var(--clr-text-muted); } .transcript-seg { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--clr-border); } .transcript-ts { font-size: 11px; font-weight: 700; color: var(--clr-accent); margin-bottom: 4px; } .transcript-text { font-size: 14px; line-height: 1.7; color: var(--clr-text-muted); font-family: var(--font-sans); } /* ═══════════════════════════════════ SEARCH ══ */ .search-section { padding: 80px 0; background: var(--clr-bg); border-top: 1px solid var(--clr-border); } .search-box { display: flex; gap: 12px; max-width: 700px; margin: 0 auto 32px; } .search-input { flex: 1; background: var(--clr-surface); border: 1px solid var(--clr-border-2); border-radius: var(--radius-sm); padding: 14px 20px; color: var(--clr-text); font-size: 15px; font-family: var(--font-sans); transition: all 0.2s; outline: none; } .search-input:focus { border-color: var(--clr-primary); box-shadow: 0 0 0 3px rgba(124,58,237,0.15); } .btn-search { padding: 14px 24px; background: linear-gradient(135deg, var(--clr-primary), var(--clr-accent)); color: #fff; border: none; border-radius: var(--radius-sm); font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s; font-family: var(--font-sans); white-space: nowrap; } .btn-search:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(124,58,237,0.4); } .search-results { max-width: 700px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; } .search-result-card { background: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: var(--radius); padding: 20px 24px; transition: all 0.2s; } .search-result-card:hover { border-color: var(--clr-border-2); } .search-result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .search-result-ts { font-family: var(--font-mono); font-size: 12px; color: var(--clr-accent); } .search-result-score { font-size: 12px; color: var(--clr-text-dim); } .search-result-text { font-size: 14px; color: var(--clr-text-muted); line-height: 1.7; } /* ═══════════════════════════════════ TOAST ══ */ .toast { position: fixed; bottom: 32px; right: 32px; z-index: 999; background: rgba(30,30,50,0.95); border: 1px solid var(--clr-border-2); backdrop-filter: blur(20px); border-radius: var(--radius); padding: 14px 20px; font-size: 14px; font-weight: 500; box-shadow: var(--shadow-card); animation: slideIn 0.3s ease-out; max-width: 340px; } @keyframes slideIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } /* ── Scrollbar ─────────────────────────────────────────────── */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--clr-border-2); border-radius: 999px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); } /* ── Responsive ────────────────────────────────────────────── */ @media (max-width: 768px) { .upload-grid { grid-template-columns: 1fr; } .pipeline-steps { flex-direction: column; } .pipeline-arrow { transform: rotate(90deg); } .hero-stats { gap: 20px; } .results-header { flex-direction: column; align-items: flex-start; } .tabs { flex-wrap: wrap; } .header-inner { flex-wrap: wrap; } .nav-pills { display: none; } }