/* TemplateMo 595 3d coverflow https://templatemo.com/tm-595-3d-coverflow */ @charset "utf-8"; /* CSS Document */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; overflow-x: hidden; position: relative; background: #000; } /* Sections */ .section { min-height: 100vh; position: relative; display: flex; align-items: center; justify-content: center; } #home { background: radial-gradient(ellipse at center, #1a1a2e 0%, #0f0f0f 100%); } #about { background: linear-gradient(135deg, #0f0f0f 0%, #1a1a2e 100%); } #contact { background: radial-gradient(ellipse at center, #1a1a2e 0%, #0f0f0f 100%); } /* Header Styles */ .header { position: fixed; top: 0; left: 0; right: 0; height: 80px; background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); z-index: 1000; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; transition: all 0.3s ease; } .header.scrolled { background: rgba(0, 0, 0, 0.95); height: 70px; } .logo-container { display: flex; align-items: center; gap: 12px; text-decoration: none; cursor: pointer; transition: transform 0.3s ease; } .logo-container:hover { transform: translateY(-2px); } .logo { width: 50px; height: 50px; display: flex; align-items: center; justify-content: center; } .logo svg { width: 100%; height: 100%; } .logo-text { color: white; font-size: 24px; font-weight: 600; letter-spacing: -0.5px; } .main-menu { display: flex; align-items: center; gap: 40px; } .menu-item { color: rgba(255, 255, 255, 0.8); text-decoration: none; font-size: 16px; font-weight: 500; transition: all 0.3s ease; position: relative; padding: 8px 0; } .menu-item:hover { color: white; transform: translateY(-2px); } .menu-item::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, #667eea, #764ba2); transition: width 0.3s ease; } .menu-item:hover::after { width: 100%; } .menu-item.active { color: white; } .menu-item.active::after { width: 100%; } .menu-item.external::before { content: '↗'; margin-right: 5px; font-size: 12px; opacity: 0.7; } /* Mobile menu toggle */ .menu-toggle { display: none; flex-direction: column; cursor: pointer; padding: 4px; } .menu-toggle span { width: 25px; height: 3px; background: white; margin: 3px 0; transition: 0.3s; border-radius: 2px; } /* Home Section with Coverflow */ .coverflow-wrapper { width: 100%; height: 100vh; display: flex; align-items: center; justify-content: center; padding-top: 80px; } .coverflow-container { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; perspective: 1200px; position: relative; } .coverflow { display: flex; align-items: center; justify-content: center; transform-style: preserve-3d; position: relative; width: 100%; height: 400px; } .coverflow-item { position: absolute; width: 300px; height: 300px; transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); cursor: pointer; user-select: none; } .coverflow-item .cover { width: 100%; height: 100%; border-radius: 10px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.8); position: relative; overflow: hidden; transform-style: preserve-3d; background: #333; } .coverflow-item .cover img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; } /* Reflection */ .coverflow-item .reflection { position: absolute; top: 100%; left: 0; width: 100%; height: 100%; border-radius: 10px; transform: scaleY(-1); opacity: 0.2; filter: blur(2px); background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 50%, rgba(0, 0, 0, 1) 100%); overflow: hidden; } /* Active item (center) */ .coverflow-item.active { z-index: 100; transform: translateX(0) translateZ(0) rotateY(0deg); } .coverflow-item.active .cover { box-shadow: 0 30px 60px rgba(0, 0, 0, 0.9); } /* Navigation */ .nav-button { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, 0.1); border: 2px solid rgba(255, 255, 255, 0.2); color: white; width: 60px; height: 60px; border-radius: 50%; cursor: pointer; font-size: 24px; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; backdrop-filter: blur(10px); z-index: 200; } .nav-button:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-50%) scale(1.1); } .nav-button.prev { left: 50px; } .nav-button.next { right: 50px; } /* Dots indicator */ .dots-container { position: absolute; bottom: 60px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 200; } .dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.3); cursor: pointer; transition: all 0.3s ease; } .dot.active { background: rgba(255, 255, 255, 0.8); transform: scale(1.3); } /* Info display */ .info { position: absolute; top: 120px; left: 50%; transform: translateX(-50%); color: white; text-align: center; z-index: 200; } .info h2 { font-size: 32px; margin-bottom: 10px; opacity: 0; animation: fadeIn 0.6s forwards; } .info p { font-size: 16px; opacity: 0.7; } @keyframes fadeIn { to { opacity: 1; } } /* Play/Pause Button */ .play-pause-button { position: absolute; bottom: 120px; left: 50%; transform: translateX(-50%); background: rgba(255, 255, 255, 0.1); border: 2px solid rgba(255, 255, 255, 0.2); color: white; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; font-size: 20px; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; backdrop-filter: blur(10px); z-index: 200; } .play-pause-button:hover { background: rgba(255, 255, 255, 0.2); transform: translateX(-50%) scale(1.1); } .play-pause-button .pause-icon { font-size: 16px; letter-spacing: 2px; } /* About Section */ .about-content { max-width: 1400px; margin: 0 auto; padding: 40px; color: white; } .about-header { text-align: center; margin-bottom: 80px; } .about-header h2 { font-size: 48px; margin-top: 60px; margin-bottom: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .about-header p { font-size: 20px; color: rgba(255, 255, 255, 0.8); max-width: 600px; margin: 0 auto; line-height: 1.8; } .about-main { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; margin-bottom: 80px; } .about-visual { position: relative; height: 600px; display: flex; align-items: center; justify-content: center; } .showcase-display { position: relative; width: 100%; max-width: 500px; height: 500px; display: flex; align-items: center; justify-content: center; } .showcase-main { position: relative; width: 350px; height: 400px; background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%); border-radius: 30px; border: 2px solid rgba(255, 255, 255, 0.1); padding: 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; backdrop-filter: blur(10px); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); } .showcase-logo { width: 120px; height: 120px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 30px; display: flex; align-items: center; justify-content: center; margin-bottom: 30px; box-shadow: 0 15px 35px rgba(102, 126, 234, 0.4); } .showcase-logo svg { width: 70%; height: 70%; } .showcase-title { font-size: 32px; font-weight: 700; color: white; margin-bottom: 15px; text-align: center; } .showcase-subtitle { font-size: 16px; color: rgba(255, 255, 255, 0.7); text-align: center; margin-bottom: 40px; line-height: 1.6; } .showcase-badges { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; } .badge { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 20px; padding: 8px 16px; font-size: 14px; color: rgba(255, 255, 255, 0.8); backdrop-filter: blur(10px); transition: all 0.3s ease; cursor: pointer; text-decoration: none; display: inline-block; } .badge:hover { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-color: transparent; color: white; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3); } .badge:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3); } /* Decorative corner elements */ .corner-decoration { position: absolute; width: 80px; height: 80px; border: 2px solid rgba(102, 126, 234, 0.3); } .corner-decoration.top-left { top: -20px; left: -20px; border-right: none; border-bottom: none; border-radius: 20px 0 0 0; } .corner-decoration.bottom-right { bottom: -20px; right: -20px; border-left: none; border-top: none; border-radius: 0 0 20px 0; } .about-info { padding-left: 40px; } .about-info h3 { font-size: 36px; margin-bottom: 30px; line-height: 1.3; } .about-info p { font-size: 18px; color: rgba(255, 255, 255, 0.8); line-height: 1.8; margin-bottom: 30px; } .feature-list { list-style: none; margin-bottom: 40px; } .feature-list li { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; font-size: 16px; color: rgba(255, 255, 255, 0.9); } .feature-list li::before { content: '✓'; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 50%; flex-shrink: 0; } .cta-button { display: inline-flex; align-items: center; gap: 10px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; text-decoration: none; padding: 15px 30px; border-radius: 30px; font-weight: 600; transition: all 0.3s ease; } .cta-button:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.5); } .cta-button svg { width: 20px; height: 20px; transition: transform 0.3s ease; } .cta-button:hover svg { transform: translateX(5px); } .stats-section { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; padding: 60px; background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(10px); border-radius: 30px; border: 1px solid rgba(255, 255, 255, 0.1); } .stat-item { text-align: center; } .stat-number { font-size: 48px; font-weight: 700; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 10px; } .stat-label { font-size: 16px; color: rgba(255, 255, 255, 0.7); } /* Contact Section */ .contact-content { max-width: 1200px; margin: 0 auto; padding: 40px; color: white; } .contact-header { text-align: center; margin-top: 60px; margin-bottom: 60px; } .contact-header h2 { font-size: 48px; margin-bottom: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .contact-header p { font-size: 20px; color: rgba(255, 255, 255, 0.8); max-width: 600px; margin: 0 auto; } .contact-container { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; } .contact-info-section { padding-right: 40px; } .contact-info-section h3 { font-size: 28px; margin-bottom: 20px; color: white; } .contact-info-section p { font-size: 16px; color: rgba(255, 255, 255, 0.7); line-height: 1.8; margin-bottom: 40px; } .contact-details { display: flex; flex-direction: column; gap: 25px; } .contact-item { display: flex; align-items: center; gap: 20px; padding: 20px; background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 15px; transition: all 0.3s ease; } .contact-item:hover { background: rgba(255, 255, 255, 0.08); transform: translateX(5px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.2); } .contact-icon { width: 50px; height: 50px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .contact-icon svg { width: 24px; height: 24px; fill: white; } .contact-text { flex: 1; } .contact-text h4 { font-size: 16px; color: white; margin-bottom: 5px; } .contact-text p { font-size: 14px; color: rgba(255, 255, 255, 0.7); margin: 0; } .social-links { margin-top: 40px; } .social-links h4 { font-size: 18px; margin-bottom: 20px; color: white; } .social-buttons { display: flex; gap: 15px; } .social-btn { width: 45px; height: 45px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; cursor: pointer; } .social-btn:hover { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-color: transparent; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4); } .social-btn svg { width: 20px; height: 20px; fill: white; } .contact-form-section { padding-left: 40px; } .contact-form { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 20px; padding: 40px; } .form-group { margin-bottom: 25px; } .form-group label { display: block; margin-bottom: 10px; color: rgba(255, 255, 255, 0.8); font-weight: 500; } .form-group input, .form-group textarea { width: 100%; padding: 15px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 10px; color: white; font-size: 16px; font-family: inherit; transition: all 0.3s ease; } .form-group input:focus, .form-group textarea:focus { outline: none; border-color: #667eea; background: rgba(255, 255, 255, 0.08); } .form-group textarea { resize: vertical; min-height: 150px; line-height: 1.5; } .submit-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; padding: 15px 40px; font-size: 18px; font-weight: 600; border-radius: 30px; cursor: pointer; transition: all 0.3s ease; width: 100%; } .submit-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.5); } /* Smooth image loading */ .image-loading { background: linear-gradient(45deg, #333, #555); position: relative; } .image-loading::after { content: '📷'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 48px; opacity: 0.5; } /* Footer Styles */ .footer { background: rgba(0, 0, 0, 0.95); border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 40px 20px; margin-top: 80px; } .footer-content { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 30px; } .footer-copyright { color: rgba(255, 255, 255, 0.6); font-size: 14px; } .footer-copyright a { color: #667eea; text-decoration: none; transition: color 0.3s ease; } .footer-copyright a:hover { color: #764ba2; } .footer-links { display: flex; gap: 30px; align-items: center; } .footer-links a { color: rgba(255, 255, 255, 0.7); text-decoration: none; font-size: 14px; transition: color 0.3s ease; } .footer-links a:hover { color: white; } /* Scroll to top button */ .scroll-to-top { position: fixed; bottom: 30px; right: 30px; width: 50px; height: 50px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 20px; cursor: pointer; opacity: 0; transform: translateY(100px); transition: all 0.3s ease; z-index: 999; } .scroll-to-top.visible { opacity: 1; transform: translateY(0); } .scroll-to-top:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.5); } /* Mobile Responsive */ @media (max-width: 1024px) { .about-main { grid-template-columns: 1fr; gap: 60px; } .about-visual { height: 400px; } .about-info { padding-left: 0; text-align: center; } .feature-list { text-align: left; max-width: 500px; margin: 0 auto 40px; } .stats-section { grid-template-columns: repeat(2, 1fr); gap: 30px; padding: 40px; } /* Contact section responsive */ .contact-container { grid-template-columns: 1fr; gap: 50px; } .contact-info-section { padding-right: 0; } .contact-form-section { padding-left: 0; } } @media (max-width: 768px) { .header { padding: 0 20px; } .main-menu { display: none; position: absolute; top: 100%; left: 0; right: 0; background: rgba(0, 0, 0, 0.95); backdrop-filter: blur(10px); flex-direction: column; padding: 20px; gap: 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .main-menu.active { display: flex; } .menu-toggle { display: flex; } .menu-toggle.active span:nth-child(1) { transform: rotate(-45deg) translate(-5px, 6px); } .menu-toggle.active span:nth-child(2) { opacity: 0; } .menu-toggle.active span:nth-child(3) { transform: rotate(45deg) translate(-5px, -6px); } .coverflow-item { width: 200px; height: 200px; } .nav-button { width: 40px; height: 40px; font-size: 18px; } .nav-button.prev { left: 20px; } .nav-button.next { right: 20px; } .info h2 { font-size: 24px; } .info p { font-size: 14px; } .logo-text { font-size: 20px; } .about-header h2 { font-size: 36px; } .about-info h3 { font-size: 28px; } .about-visual { height: 400px; } .showcase-display { max-width: 350px; height: 400px; } .showcase-main { width: 100%; height: 350px; padding: 30px; } .showcase-logo { width: 100px; height: 100px; margin-bottom: 20px; } .showcase-title { font-size: 28px; } .showcase-subtitle { font-size: 14px; margin-bottom: 30px; } .corner-decoration { display: none; } .stat-number { font-size: 36px; } .contact-content h2 { font-size: 36px; } .footer-content { flex-direction: column; text-align: center; gap: 20px; } .footer-links { gap: 20px; } } @media (max-width: 480px) { .header { height: 70px; padding: 0 15px; } .header.scrolled { height: 60px; } .logo { width: 40px; height: 40px; } .logo-text { font-size: 18px; } .coverflow-item { width: 180px; height: 180px; } .about-content, .contact-content { padding: 20px; } /* Additional contact section mobile optimization for small screens */ .contact-container { gap: 30px; } .contact-header { margin-bottom: 40px; } .contact-header h2 { font-size: 32px; margin-bottom: 15px; } .contact-header p { font-size: 16px; padding: 0 10px; } .contact-info-section { margin-bottom: 20px; } .contact-info-section h3 { font-size: 22px; margin-bottom: 15px; } .contact-info-section > p { font-size: 14px; padding: 0 10px; margin-bottom: 30px; } .contact-details { gap: 15px; } .contact-item { padding: 15px; gap: 12px; } .contact-icon { width: 40px; height: 40px; } .contact-icon svg { width: 20px; height: 20px; } .contact-text h4 { font-size: 14px; } .contact-text p { font-size: 12px; word-break: break-word; } .social-links { margin-top: 30px; } .social-links h4 { font-size: 16px; margin-bottom: 15px; } .social-buttons { gap: 10px; } .social-btn { width: 40px; height: 40px; } .social-btn svg { width: 18px; height: 18px; } .contact-form { padding: 20px 15px; border-radius: 15px; } .form-group { margin-bottom: 20px; } .form-group label { font-size: 14px; margin-bottom: 8px; } .form-group input, .form-group textarea { padding: 12px; font-size: 14px; border-radius: 8px; } .form-group textarea { min-height: 120px; } .submit-btn { padding: 12px 30px; font-size: 16px; border-radius: 25px; } } 3D Coverflow - One Page Portfolio

Magical Tools

Everything You Long For in a Metaphysical Store and More!

Magical
Book
Crystals
Divination tools
Herbs and Oils
Starry Night
Candles

Discover 3D Coverflow

A revolutionary way to showcase your visual content with stunning 3D effects and seamless interactions

3D Coverflow

Transform your image galleries into immersive 3D experiences

Elevate Your Gallery Experience

3D Coverflow is brought to you by TemplateMo. Transform the way you present images with our cutting-edge 3D coverflow technology. Create immersive, interactive galleries that captivate your audience and leave a lasting impression.

Whether you're showcasing portfolio pieces, product images, or creating an interactive story, our 3D coverflow brings your content to life with fluid animations and intuitive controls.

  • Smooth 3D transitions with hardware acceleration
  • Touch-enabled navigation for mobile devices
  • Customizable autoplay and timing controls
  • Keyboard navigation support
  • Reflection effects for added depth
Start Your Project
60fps
Smooth Performance
100%
Responsive Design
3D
Visual Effects
Customization

Get In Touch

Have a project in mind? Let's create something amazing together.

Let's Connect

We're here to help bring your vision to life. Whether you need a stunning gallery, a complete website redesign, or custom development work, we'd love to hear from you.

Email

hello@3dcoverflow.com

Phone

+1 (555) 123-4567

Address

123 Design Street, San Francisco, CA 94102

Business Hours

Monday - Friday: 9:00 AM - 6:00 PM PST