Spaces:
Running
Running
| <template> | |
| <v-app class="sentimental-app"> | |
| <router-view /> | |
| </v-app> | |
| </template> | |
| <style> | |
| @import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Space+Grotesk:wght@300;400;500;700&display=swap"); | |
| /* βββ Reset βββββββββββββββββββββββββββββββββββββββ */ | |
| *, *::before, *::after { box-sizing: border-box; } | |
| html, body, #root { height: 100%; margin: 0; padding: 0; } | |
| body { overflow-x: hidden; } | |
| .sentimental-app { | |
| font-family: "Space Grotesk", "Segoe UI", sans-serif; | |
| min-height: 100vh; | |
| } | |
| /* βββ Light theme (default) βββββββββββββββββββββββ | |
| All CSS vars live here. Dark overrides below. */ | |
| :root, | |
| .v-theme--vsLight { | |
| --vs-bg-gradient: #fafafa; | |
| --vs-panel: rgba(255, 255, 255, 0.82); | |
| --vs-panel-hover: rgba(255, 255, 255, 0.96); | |
| --vs-border: rgba(102, 126, 234, 0.18); | |
| --vs-text: #1e2240; | |
| --vs-muted: #5a6890; | |
| --vs-gold: #b8860b; | |
| --vs-gold-glow: rgba(184, 134, 11, 0.25); | |
| /* component-level */ | |
| --vs-result-bg: rgba(255, 255, 255, 0.92); | |
| --vs-result-border: rgba(102, 126, 234, 0.14); | |
| --vs-bot-bg: rgba(102, 126, 234, 0.07); | |
| --vs-bot-border: rgba(102, 126, 234, 0.15); | |
| --vs-movie-bg: rgba(102, 126, 234, 0.04); | |
| --vs-movie-hover: rgba(102, 126, 234, 0.09); | |
| --vs-bar-bg: rgba(0, 0, 0, 0.06); | |
| --vs-scrollbar: rgba(0, 0, 0, 0.13); | |
| --vs-scrollbar-hover: rgba(0, 0, 0, 0.23); | |
| --vs-empty-icon-bg: rgba(102, 126, 234, 0.08); | |
| --vs-empty-icon-border:rgba(102, 126, 234, 0.2); | |
| --vs-hero-bg: linear-gradient(135deg, rgba(240,244,255,0.92) 0%, rgba(255,255,255,0.88) 100%); | |
| --vs-hero-shadow: 0 4px 20px rgba(102,126,234,0.1), 0 0 0 1px rgba(102,126,234,0.1); | |
| --vs-transition-bg: rgba(34, 211, 238, 0.06); | |
| --vs-transition-border:rgba(34, 211, 238, 0.18); | |
| --vs-followup-bg: rgba(34, 197, 94, 0.06); | |
| --vs-followup-border: rgba(34, 197, 94, 0.18); | |
| --vs-dialog-bg: rgba(245, 247, 255, 0.99); | |
| --vs-dialog-border: rgba(102, 126, 234, 0.2); | |
| --vs-section-alt: transparent; | |
| --vs-section-bg: transparent; | |
| --vs-card-shadow: 0 2px 16px rgba(102,126,234,0.1); | |
| --vs-glass-blur: 20px; | |
| --vs-accent: #667eea; | |
| } | |
| /* βββ Dark theme ββββββββββββββββββββββββββββββββ */ | |
| .v-theme--vsDark { | |
| --vs-bg-gradient: #121212; | |
| --vs-panel: rgba(30, 41, 82, 0.38); | |
| --vs-panel-hover: rgba(30, 41, 82, 0.55); | |
| --vs-border: rgba(212, 175, 55, 0.2); | |
| --vs-text: #f0f6ff; | |
| --vs-muted: #a8b8d0; | |
| --vs-gold: #d4af37; | |
| --vs-gold-glow: rgba(212, 175, 55, 0.35); | |
| --vs-result-bg: rgba(12, 18, 42, 0.65); | |
| --vs-result-border: rgba(255, 255, 255, 0.07); | |
| --vs-bot-bg: rgba(102, 126, 234, 0.11); | |
| --vs-bot-border: rgba(102, 126, 234, 0.2); | |
| --vs-movie-bg: rgba(255, 255, 255, 0.04); | |
| --vs-movie-hover: rgba(255, 255, 255, 0.08); | |
| --vs-bar-bg: rgba(255, 255, 255, 0.07); | |
| --vs-scrollbar: rgba(255, 255, 255, 0.12); | |
| --vs-scrollbar-hover: rgba(255, 255, 255, 0.22); | |
| --vs-empty-icon-bg: rgba(212, 175, 55, 0.1); | |
| --vs-empty-icon-border:rgba(212, 175, 55, 0.2); | |
| --vs-hero-bg: linear-gradient(135deg, rgba(22,28,58,0.55) 0%, rgba(30,41,82,0.4) 100%); | |
| --vs-hero-shadow: 0 4px 24px rgba(0,0,0,0.3), 0 0 0 1px rgba(212,175,55,0.08); | |
| --vs-transition-bg: rgba(34, 211, 238, 0.06); | |
| --vs-transition-border:rgba(34, 211, 238, 0.12); | |
| --vs-followup-bg: rgba(34, 197, 94, 0.06); | |
| --vs-followup-border: rgba(34, 197, 94, 0.12); | |
| --vs-dialog-bg: rgba(8, 12, 35, 0.98); | |
| --vs-dialog-border: rgba(212, 175, 55, 0.22); | |
| --vs-section-alt: transparent; | |
| --vs-section-bg: transparent; | |
| --vs-card-shadow: 0 4px 24px rgba(0,0,0,0.25); | |
| --vs-accent: #d4af37; | |
| --vs-glass-blur: 24px; | |
| } | |
| /* βββ App backgrounds ββββββββββββββββββββββββββ */ | |
| .v-theme--vsLight.sentimental-app { | |
| background-color: var(--vs-bg-gradient) ; | |
| color: var(--vs-text); | |
| } | |
| .v-theme--vsDark.sentimental-app { | |
| background-color: var(--vs-bg-gradient) ; | |
| color: var(--vs-text); | |
| } | |
| /* βββ Shared dialog styles (dialogs teleport to body) ββ */ | |
| .dialog-card { | |
| background: var(--vs-dialog-bg) ; | |
| border: 1.5px solid var(--vs-dialog-border) ; | |
| backdrop-filter: blur(30px) ; | |
| } | |
| .dialog-title { | |
| font-family: "Space Grotesk", sans-serif ; | |
| font-size: 1.05rem ; | |
| font-weight: 700 ; | |
| color: var(--vs-text) ; | |
| display: flex ; | |
| align-items: center ; | |
| } | |
| .dialog-movie-name { | |
| font-weight: 600; | |
| color: var(--vs-text); | |
| font-size: 1rem; | |
| } | |
| .dialog-subtitle { | |
| color: var(--vs-muted); | |
| margin: 0; | |
| line-height: 1.55; | |
| } | |
| .rating-stars-row { | |
| display: flex; | |
| align-items: center; | |
| gap: 2px; | |
| } | |
| .rating-label { | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| color: var(--vs-muted); | |
| margin-left: 6px; | |
| } | |
| /* βββ Animations ββββββββββββββββββββββββββββββββ */ | |
| @keyframes liquidFloat { | |
| 0%, 100% { transform: translateY(0) rotate(0deg); } | |
| 50% { transform: translateY(-5px) rotate(0.5deg); } | |
| } | |
| @keyframes fadeInUp { | |
| from { opacity: 0; transform: translateY(18px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| @keyframes scaleIn { | |
| from { opacity: 0; transform: scale(0.95); } | |
| to { opacity: 1; transform: scale(1); } | |
| } | |
| </style> | |