|
|
| :root { |
| --rabbithole-bg: #0f172a; |
| --rabbithole-fg: #f1f5f9; |
| --rabbithole-muted: #94a3b8; |
| --rabbithole-accent: #8b5cf6; |
| --rabbithole-accent2: #ec4899; |
| --rabbithole-glow: #8b5cf640; |
| --rabbithole-pulse: #8b5cf620; |
| --rabbithole-easing: cubic-bezier(0.4, 0, 0.2, 1); |
| --rabbithole-duration: 0.3s; |
| } |
| * { |
| box-sizing: border-box; |
| -webkit-tap-highlight-color: transparent; |
| } |
|
|
| html, body { |
| margin: 0; |
| padding: 0; |
| height: 100%; |
| overflow: hidden; |
| background: var(--quantum-bg); |
| color: var(--quantum-fg); |
| font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; |
| font-weight: 400; |
| line-height: 1.6; |
| } |
| body { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| position: relative; |
| background: var(--rabbithole-bg); |
| min-height: 100vh; |
| padding: 1rem; |
| } |
|
|
| .rabbithole-gradient { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: radial-gradient(circle at 50% 50%, #1e293b 0%, var(--rabbithole-bg) 70%); |
| z-index: -2; |
| } |
| .particles-container { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| z-index: -1; |
| pointer-events: none; |
| } |
| .particle { |
| position: absolute; |
| background: linear-gradient(135deg, var(--rabbithole-accent), var(--rabbithole-accent2)); |
| border-radius: 50%; |
| opacity: 0.3; |
| animation: float 15s infinite ease-in-out; |
| filter: blur(1px); |
| } |
| .rabbit-animation { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| z-index: 9999; |
| pointer-events: none; |
| background: rgba(14, 15, 17, 0.95); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| .rabbit-video { |
| width: 100%; |
| height: 100%; |
| object-fit: cover; |
| filter: brightness(1.2) contrast(1.1); |
| } |
| @keyframes float { |
| 0% { transform: translateY(0) translateX(0); } |
| 25% { transform: translateY(-20px) translateX(10px); } |
| 50% { transform: translateY(-40px) translateX(0); } |
| 75% { transform: translateY(-20px) translateX(-10px); } |
| 100% { transform: translateY(0) translateX(0); } |
| } |
| .rabbithole-card { |
| width: 90vw; |
| max-width: 500px; |
| min-height: 70vh; |
| padding: 2rem 1.5rem; |
| display: flex; |
| flex-direction: column; |
| justify-content: space-between; |
| gap: 1.5rem; |
| touch-action: pan-y; |
| position: relative; |
| z-index: 1; |
| margin: 2rem auto; |
| background: rgba(30, 41, 59, 0.95); |
| backdrop-filter: blur(20px); |
| border-radius: 2rem; |
| box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(139, 92, 246, 0.2); |
| border: 1px solid rgba(139, 92, 246, 0.3); |
| } |
| .rabbithole-header { |
| text-align: center; |
| } |
|
|
| .rabbithole-progress { |
| width: 100%; |
| height: 2px; |
| background: rgba(0,0,0,0.1); |
| border-radius: 1px; |
| margin: 1rem 0; |
| overflow: hidden; |
| } |
| .progress-bar { |
| height: 100%; |
| background: var(--rabbithole-accent); |
| width: 0%; |
| transition: width 0.3s var(--rabbithole-easing); |
| border-radius: 1px; |
| } |
|
|
| .rabbithole-content { |
| text-align: center; |
| } |
|
|
| .rabbithole-guide { |
| display: flex; |
| flex-direction: column; |
| gap: 0.75rem; |
| margin: 1.5rem 0; |
| } |
|
|
| .guide-item { |
| display: flex; |
| align-items: center; |
| gap: 0.75rem; |
| padding: 0.75rem; |
| background: rgba(59, 130, 246, 0.05); |
| border-radius: 0.5rem; |
| font-size: 0.9rem; |
| color: var(--rabbithole-fg); |
| } |
|
|
| .guide-icon { |
| font-size: 1.2rem; |
| } |
| h1 { |
| font-size: 1.8rem; |
| margin: 0; |
| letter-spacing: -0.01em; |
| font-weight: 900; |
| font-family: Verdana, Geneva, sans-serif; |
| color: #000000; |
| line-height: 1.3; |
| text-align: center; |
| } |
| p { |
| margin: 0; |
| line-height: 1.6; |
| color: var(--rabbithole-fg); |
| font-size: 1rem; |
| font-weight: 400; |
| text-align: center; |
| } |
| .rabbithole-meta { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.5rem; |
| justify-content: center; |
| margin: 1rem 0; |
| } |
|
|
| .meta-tag { |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(236, 72, 153, 0.15)); |
| padding: 0.4rem 1rem; |
| border-radius: 2rem; |
| font-size: 0.8rem; |
| color: var(--rabbithole-fg); |
| border: 1px solid rgba(139, 92, 246, 0.3); |
| backdrop-filter: blur(10px); |
| } |
| .rabbithole-error { |
| color: #ef4444; |
| font-size: 0.9rem; |
| margin-top: 1rem; |
| font-weight: 400; |
| } |
| .rabbithole-actions { |
| display: flex; |
| flex-direction: column; |
| gap: 1rem; |
| margin-top: 2rem; |
| align-items: center; |
| } |
|
|
| .rabbithole-btn { |
| position: relative; |
| background: transparent; |
| color: var(--rabbithole-fg); |
| border: 2px solid var(--rabbithole-accent); |
| padding: 1rem 2.5rem; |
| border-radius: 2rem; |
| font-size: 1rem; |
| text-decoration: none; |
| font-weight: 600; |
| transition: all 0.3s var(--rabbithole-easing); |
| overflow: hidden; |
| width: 100%; |
| max-width: 300px; |
| text-align: center; |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(236, 72, 153, 0.1)); |
| } |
|
|
| .rabbithole-btn-primary { |
| background: linear-gradient(135deg, var(--rabbithole-accent), var(--rabbithole-accent2)); |
| color: white; |
| box-shadow: 0 0 30px var(--rabbithole-glow); |
| } |
|
|
| .rabbithole-btn-primary:hover { |
| transform: translateY(-3px) scale(1.05); |
| box-shadow: 0 0 50px var(--rabbithole-glow); |
| } |
|
|
| .rabbithole-btn-secondary { |
| opacity: 0.9; |
| border-color: var(--rabbithole-muted); |
| } |
|
|
| .rabbithole-btn-secondary:hover { |
| opacity: 1; |
| transform: translateY(-2px); |
| border-color: var(--rabbithole-accent); |
| } |
| .rabbithole-sparkle { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| pointer-events: none; |
| opacity: 0; |
| transition: opacity 0.3s; |
| } |
|
|
| .rabbithole-btn:hover .rabbithole-sparkle { |
| opacity: 1; |
| } |
| .rabbithole-nav-arrows { |
| position: fixed; |
| top: 50%; |
| left: 0; |
| right: 0; |
| display: flex; |
| justify-content: space-between; |
| padding: 0 2rem; |
| pointer-events: none; |
| transform: translateY(-50%); |
| z-index: 2; |
| } |
|
|
| .rabbithole-arrow { |
| pointer-events: auto; |
| width: 60px; |
| height: 60px; |
| border-radius: 50%; |
| border: 2px solid var(--rabbithole-accent); |
| color: var(--rabbithole-fg); |
| background: rgba(30, 41, 59, 0.9); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 1.5rem; |
| user-select: none; |
| transition: all 0.3s var(--rabbithole-easing); |
| backdrop-filter: blur(10px); |
| cursor: pointer; |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3); |
| } |
|
|
| .rabbithole-arrow:hover { |
| transform: scale(1.15) translateY(-2px); |
| box-shadow: 0 0 30px var(--rabbithole-glow); |
| background: linear-gradient(135deg, var(--rabbithole-accent), var(--rabbithole-accent2)); |
| color: white; |
| } |
| .rabbithole-footer { |
| position: fixed; |
| bottom: 1rem; |
| left: 0; |
| right: 0; |
| text-align: center; |
| font-size: 0.8rem; |
| color: var(--rabbithole-muted); |
| opacity: 0.8; |
| padding-bottom: env(safe-area-inset-bottom); |
| z-index: 2; |
| } |
| |
| @media (max-width: 768px) { |
| .rabbithole-card { |
| width: 95vw; |
| padding: 1.5rem 1rem; |
| min-height: 65vh; |
| } |
| |
| h1 { |
| font-size: 1.5rem; |
| } |
| |
| p { |
| font-size: 0.95rem; |
| } |
| |
| .rabbithole-meta { |
| flex-direction: column; |
| align-items: center; |
| } |
| |
| .rabbithole-arrow { |
| width: 50px; |
| height: 50px; |
| } |
| |
| .rabbithole-btn { |
| padding: 0.875rem 2rem; |
| max-width: 250px; |
| } |
| } |
|
|
| @media (max-width: 480px) { |
| .rabbithole-card { |
| padding: 1.25rem 0.875rem; |
| gap: 1rem; |
| } |
| |
| h1 { |
| font-size: 1.3rem; |
| } |
| |
| .rabbithole-actions { |
| gap: 0.75rem; |
| } |
| |
| .rabbithole-arrow { |
| width: 45px; |
| height: 45px; |
| padding: 0 1rem; |
| } |
| |
| .rabbithole-nav-arrows { |
| padding: 0 1rem; |
| } |
| } |
| |
| .fade-in { |
| animation: fadeIn 0.5s var(--rabbithole-easing); |
| } |
|
|
| @keyframes fadeIn { |
| from { opacity: 0; transform: translateY(20px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
|
|
| |
| .slide-in-right { |
| animation: slideInRightFullscreen 0.6s var(--rabbithole-easing) forwards; |
| } |
|
|
| @keyframes slideInRightFullscreen { |
| 0% { |
| opacity: 0; |
| transform: translateX(100vw) scale(0.95); |
| filter: blur(20px); |
| } |
| 50% { |
| opacity: 0.7; |
| transform: translateX(0) scale(1.02); |
| filter: blur(5px); |
| } |
| 100% { |
| opacity: 1; |
| transform: translateX(0) scale(1); |
| filter: blur(0); |
| } |
| } |
|
|
| .slide-in-left { |
| animation: slideInLeftFullscreen 0.6s var(--rabbithole-easing) forwards; |
| } |
|
|
| @keyframes slideInLeftFullscreen { |
| 0% { |
| opacity: 0; |
| transform: translateX(-100vw) scale(0.95); |
| filter: blur(20px); |
| } |
| 50% { |
| opacity: 0.7; |
| transform: translateX(0) scale(1.02); |
| filter: blur(5px); |
| } |
| 100% { |
| opacity: 1; |
| transform: translateX(0) scale(1); |
| filter: blur(0); |
| } |
| } |
|
|
| |
| .transition-overlay { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: rgba(14, 15, 17, 0.8); |
| z-index: 999; |
| opacity: 0; |
| pointer-events: none; |
| transition: opacity 0.3s ease; |
| } |
|
|
| .transition-overlay.active { |
| opacity: 1; |
| } |
|
|
| |
| .rabbithole-card.transitioning { |
| position: fixed; |
| top: 50%; |
| left: 50%; |
| transform: translate(-50%, -50%); |
| width: 90vw; |
| max-width: 500px; |
| z-index: 1000; |
| animation: none; |
| } |
| |
| .bg-science { |
| background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important; |
| } |
|
|
| .bg-history { |
| background: linear-gradient(135deg, #f59e0b, #b45309) !important; |
| } |
|
|
| .bg-art { |
| background: linear-gradient(135deg, #ec4899, #be185d) !important; |
| } |
|
|
| .bg-technology { |
| background: linear-gradient(135deg, #8b5cf6, #7c3aed) !important; |
| } |
|
|
| .bg-nature { |
| background: linear-gradient(135deg, #10b981, #059669) !important; |
| } |
|
|
| .bg-default { |
| background: linear-gradient(135deg, var(--rabbithole-accent), var(--rabbithole-accent2)) !important; |
| } |
| |
| user-profile { |
| display: block; |
| } |
|
|
| history-modal { |
| display: none; |
| } |
| |
| .ad-overlay { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: rgba(14, 15, 17, 0.95); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| z-index: 2000; |
| animation: fadeIn 0.3s ease; |
| } |
|
|
| .ad-content { |
| background: #1a1c20; |
| border: 2px solid var(--rabbithole-accent); |
| border-radius: 1rem; |
| padding: 1.5rem; |
| width: 90%; |
| max-width: 400px; |
| box-shadow: 0 0 40px var(--rabbithole-glow); |
| } |
|
|
| .ad-header { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| margin-bottom: 1rem; |
| } |
|
|
| .ad-badge { |
| background: var(--rabbithole-accent); |
| color: white; |
| padding: 0.25rem 0.75rem; |
| border-radius: 1rem; |
| font-size: 0.8rem; |
| font-weight: 600; |
| } |
|
|
| .ad-close { |
| background: none; |
| border: none; |
| color: var(--rabbithole-muted); |
| font-size: 1.5rem; |
| cursor: pointer; |
| padding: 0; |
| width: 30px; |
| height: 30px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| .ad-close:hover { |
| color: var(--rabbithole-fg); |
| } |
|
|
| .ad-body { |
| text-align: center; |
| } |
|
|
| .ad-image { |
| width: 100%; |
| height: 180px; |
| object-fit: cover; |
| border-radius: 0.5rem; |
| margin-bottom: 1rem; |
| } |
| .ad-title { |
| color: #000000; |
| margin: 0 0 0.5rem 0; |
| font-size: 1.2rem; |
| font-weight: 900; |
| font-family: Verdana, Geneva, sans-serif; |
| } |
| .ad-description { |
| color: var(--rabbithole-muted); |
| margin: 0 0 1.5rem 0; |
| font-size: 0.9rem; |
| line-height: 1.4; |
| } |
|
|
| .ad-cta { |
| background: linear-gradient(135deg, var(--rabbithole-accent), var(--rabbithole-accent2)); |
| color: white; |
| border: none; |
| padding: 0.75rem 2rem; |
| border-radius: 2rem; |
| font-weight: 600; |
| cursor: pointer; |
| transition: all 0.3s var(--rabbithole-easing); |
| width: 100%; |
| } |
|
|
| .ad-cta:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 0 20px var(--rabbithole-glow); |
| } |
|
|
| .fade-out { |
| animation: fadeOut 0.3s ease forwards; |
| } |
|
|
| @keyframes fadeOut { |
| from { opacity: 1; } |
| to { opacity: 0; } |
| } |
| |
| .loading { |
| opacity: 0.8; |
| pointer-events: none; |
| } |
|
|
| .loading::after { |
| content: ''; |
| position: absolute; |
| top: 50%; |
| left: 50%; |
| width: 24px; |
| height: 24px; |
| margin: -12px 0 0 -12px; |
| border: 3px solid var(--rabbithole-accent); |
| border-radius: 50%; |
| border-top-color: transparent; |
| animation: spin 1s linear infinite; |
| } |
|
|
| @keyframes spin { |
| to { transform: rotate(360deg); } |
| } |
|
|