Creating a visually appealing magazine layout is crucial for capturing readers' attention and conveying your message effectively. Whether you're designing for print or digital, the right layout can make all the difference.
In this article, we'll explore 10 magazine layout examples that showcase innovative design techniques and creative use of space. These examples will inspire you to elevate your own magazine designs to new heights.
CODE1
Here's the code:
CODETEXT1
CODE2
Here's the code:
CODETEXT2
CODE3
Here's the code:
CODETEXT3
CODE4
Here's the code:
CODETEXT4
CODE5
Here's the code:
CODETEXT5
Designers and developers, elevate your magazine layouts with Subframe's drag-and-drop interface and intuitive, responsive canvas. Create pixel-perfect UI effortlessly, every time.
Loved by professionals, Subframe makes stunning design accessible to all. Start for free and transform your creative process today.
CODE6
Here's the code:
CODETEXT6
CODE7
Here's the code:
CODETEXT7
CODE8
Here's the code:
CODETEXT8
CODE9
Here's the code:
CODETEXT9
CODE10
Here's the code:
CODETEXT10
Ready to elevate your design game? With Subframe, you can create pixel-perfect UIs, including stunning magazine layouts, in minutes. Our drag-and-drop interface ensures efficiency and precision.
Don't wait—start creating right away. Sign up for free and transform your design process today!
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NEXUS Tech Magazine</title> <style> @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap'); :root { --primary: #0050FF; --secondary: #00E5FF; --tertiary: #6236FF; --dark: #0A1128; --light: #F0F5FF; --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; background-color: var(--dark); color: var(--light); max-width: 700px; margin: 0 auto; overflow-x: hidden; height: 700px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--primary) var(--dark); } body::-webkit-scrollbar { width: 8px; } body::-webkit-scrollbar-track { background: var(--dark); } body::-webkit-scrollbar-thumb { background-color: var(--primary); } header { padding: 20px; position: sticky; top: 0; z-index: 100; background: rgba(10, 17, 40, 0.8); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(0, 80, 255, 0.2); } .header-content { display: flex; justify-content: space-between; align-items: center; } .logo { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 1.8rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -1px; position: relative; } .logo::after { content: ""; position: absolute; width: 50%; height: 3px; background: linear-gradient(90deg, var(--primary), transparent); bottom: -5px; left: 0; } .header-icons { display: flex; gap: 15px; } .header-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, 0.1); transition: var(--transition); cursor: pointer; } .header-icon:hover { background: var(--primary); transform: translateY(-3px); } .header-icon i { font-size: 14px; } main { padding: 0 20px 30px; } /* Hero Section */ .hero { margin: 20px 0 40px; display: grid; grid-template-columns: 1fr; gap: 30px; position: relative; } .hero-image { position: relative; height: 280px; overflow: hidden; border-radius: 10px; background: url('https://images.unsplash.com/photo-1550745165-9bc0b252726f?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80') center/cover; transition: var(--transition); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .hero-image::before { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: linear-gradient(to top, rgba(10, 17, 40, 0.9), transparent); } .hero-content { position: absolute; bottom: 20px; left: 20px; max-width: 90%; } .hero-badge { display: inline-block; background: var(--tertiary); color: white; padding: 6px 12px; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; border-radius: 4px; margin-bottom: 10px; letter-spacing: 0.5px; } .hero-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.8rem; font-weight: 700; margin-bottom: 10px; line-height: 1.1; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); } .hero-excerpt { font-size: 0.95rem; line-height: 1.5; margin-bottom: 15px; opacity: 0.9; } .read-more { display: inline-flex; align-items: center; gap: 5px; color: var(--secondary); font-weight: 500; text-decoration: none; transition: var(--transition); font-size: 0.9rem; } .read-more:hover { transform: translateX(5px); } /* Grid Section */ .section-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.5rem; margin-bottom: 20px; position: relative; display: inline-block; } .section-title::after { content: ""; position: absolute; width: 30%; height: 3px; background: var(--primary); bottom: -5px; left: 0; } .article-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 40px; } .article-card { background: rgba(255, 255, 255, 0.05); border-radius: 8px; overflow: hidden; transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); cursor: pointer; position: relative; } .article-card:hover { transform: translateY(-8px); box-shadow: 0 12px 25px rgba(0, 0, 0, 0.15); border-color: rgba(0, 229, 255, 0.3); } .article-card:hover .article-image img { transform: scale(1.05); } .article-image { height: 120px; overflow: hidden; } .article-image img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .article-content { padding: 15px; } .article-tag { font-size: 0.65rem; font-weight: 600; color: var(--secondary); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 5px; } .article-title { font-family: 'Space Grotesk', sans-serif; font-size: 1rem; margin-bottom: 10px; line-height: 1.3; } .article-meta { display: flex; justify-content: space-between; font-size: 0.75rem; color: rgba(255, 255, 255, 0.6); } /* Featured News */ .featured-news { margin-bottom: 40px; position: relative; } .featured-news-wrapper { overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; padding: 10px 0; } .featured-news-wrapper::-webkit-scrollbar { display: none; } .featured-news-container { display: flex; gap: 20px; } .featured-card { min-width: 280px; background: rgba(0, 80, 255, 0.1); border-radius: 10px; padding: 20px; border: 1px solid rgba(0, 80, 255, 0.2); position: relative; overflow: hidden; transition: var(--transition); } .featured-card:hover { background: rgba(0, 80, 255, 0.15); transform: translateY(-5px); } .featured-card::before { content: ""; position: absolute; width: 100px; height: 100px; background: var(--primary); filter: blur(80px); top: -20px; right: -20px; z-index: -1; opacity: 0.5; } .featured-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.2rem; margin-bottom: 10px; line-height: 1.3; } .featured-excerpt { font-size: 0.9rem; line-height: 1.5; margin-bottom: 15px; opacity: 0.8; } .featured-meta { font-size: 0.8rem; color: var(--secondary); } /* Interactive Section */ .interactive-section { margin-bottom: 40px; } .interactive-container { background: rgba(0, 229, 255, 0.1); border-radius: 12px; padding: 25px; position: relative; overflow: hidden; border: 1px solid rgba(0, 229, 255, 0.2); } .interactive-container::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%230050ff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); opacity: 0.3; } .interactive-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.3rem; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; } .interactive-title i { color: var(--secondary); } .interactive-description { font-size: 0.9rem; margin-bottom: 20px; line-height: 1.5; } .interactive-demo { background: rgba(255, 255, 255, 0.05); border-radius: 8px; padding: 15px; margin-bottom: 20px; border: 1px solid rgba(255, 255, 255, 0.1); } .slider-container { margin-bottom: 15px; } .slider-label { display: flex; justify-content: space-between; font-size: 0.8rem; margin-bottom: 5px; } .slider { -webkit-appearance: none; width: 100%; height: 4px; background: rgba(255, 255, 255, 0.1); border-radius: 5px; outline: none; } .slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--secondary); cursor: pointer; transition: var(--transition); } .slider::-webkit-slider-thumb:hover { transform: scale(1.2); } .slider::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--secondary); cursor: pointer; transition: var(--transition); border: none; } .slider::-moz-range-thumb:hover { transform: scale(1.2); } .visualization { display: flex; gap: 3px; height: 60px; align-items: flex-end; } .bar { flex: 1; background: var(--primary); transition: var(--transition); border-radius: 2px 2px 0 0; } .interactive-cta { text-align: center; } .interactive-button { background: var(--tertiary); color: white; border: none; padding: 8px 16px; border-radius: 6px; font-weight: 500; cursor: pointer; transition: var(--transition); font-size: 0.9rem; } .interactive-button:hover { background: var(--primary); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 80, 255, 0.2); } /* Newsletter */ .newsletter { background: linear-gradient(135deg, rgba(0, 80, 255, 0.1), rgba(98, 54, 255, 0.1)); border-radius: 12px; padding: 25px; position: relative; overflow: hidden; border: 1px solid rgba(0, 80, 255, 0.2); } .newsletter::before { content: ""; position: absolute; width: 150px; height: 150px; background: var(--primary); filter: blur(100px); top: -50px; right: -50px; z-index: -1; opacity: 0.4; } .newsletter-title { font-family: 'Space Grotesk', sans-serif; font-size: 1.3rem; margin-bottom: 10px; } .newsletter-description { font-size: 0.9rem; margin-bottom: 20px; line-height: 1.5; opacity: 0.9; } .newsletter-form { display: flex; gap: 10px; } .newsletter-input { flex: 1; padding: 10px 15px; border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.05); color: white; font-family: 'Inter', sans-serif; transition: var(--transition); } .newsletter-input:focus { outline: none; border-color: var(--secondary); background: rgba(255, 255, 255, 0.1); } .newsletter-button { background: var(--primary); color: white; border: none; padding: 10px 20px; border-radius: 6px; font-weight: 500; cursor: pointer; transition: var(--transition); white-space: nowrap; } .newsletter-button:hover { background: var(--tertiary); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 80, 255, 0.2); } /* Footer */ footer { padding: 20px; text-align: center; font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); border-top: 1px solid rgba(255, 255, 255, 0.1); } .copyright { margin-bottom: 10px; } .footer-links { display: flex; justify-content: center; gap: 15px; } .footer-link { color: rgba(255, 255, 255, 0.7); text-decoration: none; transition: var(--transition); } .footer-link:hover { color: var(--secondary); } /* Media queries */ @media (max-width: 600px) { .article-grid { grid-template-columns: 1fr; } .featured-card { min-width: 240px; } .newsletter-form { flex-direction: column; } .header-icons { display: none; } .logo { font-size: 1.5rem; } } /* Animation */ @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .pulse { animation: pulse 3s infinite ease-in-out; } .fade-in-up { animation: fadeInUp 0.6s ease-out forwards; } .fade-in-up-1 { animation-delay: 0.1s; } .fade-in-up-2 { animation-delay: 0.2s; } .fade-in-up-3 { animation-delay: 0.3s; } .digital-grid { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: linear-gradient(rgba(0, 80, 255, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 80, 255, 0.05) 1px, transparent 1px); background-size: 20px 20px; pointer-events: none; z-index: -1; } </style> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="digital-grid"></div> <header> <div class="header-content"> <div class="logo">NEXUS</div> <div class="header-icons"> <div class="header-icon"><i class="fas fa-search"></i></div> <div class="header-icon"><i class="fas fa-user"></i></div> <div class="header-icon"><i class="fas fa-bell"></i></div> </div> </div> </header> <main> <section class="hero fade-in-up"> <div class="hero-image pulse"> <div class="hero-content"> <div class="hero-badge">Quantum Computing</div> <h1 class="hero-title">IBM Achieves 1,000-Qubit Breakthrough, Redefining Quantum Limits</h1> <p class="hero-excerpt">The new Condor processor represents a significant leap forward in quantum computing architecture, potentially unlocking real-world applications decades ahead of schedule.</p> <a href="#" class="read-more">Read full article <i class="fas fa-arrow-right"></i></a> </div> </div> </section> <section class="featured-news fade-in-up fade-in-up-1"> <h2 class="section-title">Breaking News</h2> <div class="featured-news-wrapper"> <div class="featured-news-container"> <div class="featured-card"> <div class="featured-title">Neural Interface Allows Direct Brain-to-Text Typing at 120 WPM</div> <p class="featured-excerpt">Neuralink's latest implant revolutionizes accessibility tech with near-instant thought-to-text conversion, surpassing traditional typing speeds.</p> <div class="featured-meta">6 hours ago</div> </div> <div class="featured-card"> <div class="featured-title">MIT Develops Self-Healing Metamaterials for Electronics</div> <p class="featured-excerpt">Revolutionary nano-engineered material can repair microscopic cracks autonomously, extending device lifespans by up to 300%.</p> <div class="featured-meta">12 hours ago</div> </div> <div class="featured-card"> <div class="featured-title">CRISPR-Powered Microrobots Target Cancer Cells With Precision</div> <p class="featured-excerpt">Microscopic machines combine gene-editing technology with propulsion systems to identify and neutralize tumors without harming healthy tissue.</p> <div class="featured-meta">1 day ago</div> </div> </div> </div> </section> <section class="trending fade-in-up fade-in-up-2"> <h2 class="section-title">Today's Highlights</h2> <div class="article-grid"> <article class="article-card"> <div class="article-image"> <img src="https://images.unsplash.com/photo-1518770660439-4636190af475?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="AI article"> </div> <div class="article-content"> <div class="article-tag">Artificial Intelligence</div> <h3 class="article-title">GPT-5 Shows Human-Level Reasoning in Engineering Tasks</h3> <div class="article-meta"> <span>5 min read</span> <span><i class="far fa-bookmark"></i></span> </div> </div> </article> <article class="article-card"> <div class="article-image"> <img src="https://images.unsplash.com/photo-1558346490-a72e53ae2d4f?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="AR article"> </div> <div class="article-content"> <div class="article-tag">Augmented Reality</div> <h3 class="article-title">Apple Vision Pro Transforms Remote Collaboration</h3> <div class="article-meta"> <span>4 min read</span> <span><i class="far fa-bookmark"></i></span> </div> </div> </article> <article class="article-card"> <div class="article-image"> <img src="https://images.unsplash.com/photo-1563089145-599997674d42?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Energy article"> </div> <div class="article-content"> <div class="article-tag">Clean Energy</div> <h3 class="article-title">Fusion Reactor Sustains Plasma for Record 8 Minutes</h3> <div class="article-meta"> <span>7 min read</span> <span><i class="far fa-bookmark"></i></span> </div> </div> </article> <article class="article-card"> <div class="article-image"> <img src="https://images.unsplash.com/photo-1526406915894-7bcd65f60845?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Robotics article"> </div> <div class="article-content"> <div class="article-tag">Robotics</div> <h3 class="article-title">Soft Robotics Breakthrough Enables Human-Like Dexterity</h3> <div class="article-meta"> <span>6 min read</span> <span><i class="far fa-bookmark"></i></span> </div> </div> </article> </div> </section> <section class="interactive-section fade-in-up fade-in-up-3"> <h2 class="section-title">Interactive Tech</h2> <div class="interactive-container"> <h3 class="interactive-title"><i class="fas fa-microchip"></i> Quantum Computing Simulator</h3> <p class="interactive-description">Explore how quantum bits scale compared to classical computing power. Adjust the number of qubits and see the exponential difference in computational capabilities.</p> <div class="interactive-demo"> <div class="slider-container"> <div class="slider-label"> <span>Qubits: <span id="qubit-value">10</span></span> <span>Computing Power: <span id="power-value">1,024</span></span> </div> <input type="range" min="1" max="20" value="10" class="slider" id="qubit-slider"> </div> <div class="visualization" id="quantum-viz"> <!-- Bars will be generated by JS --> </div> </div> <div class="interactive-cta"> <button class="interactive-button">Learn More About Quantum Computing</button> </div> </div> </section> <section class="newsletter"> <h3 class="newsletter-title">Stay at the Cutting Edge</h3> <p class="newsletter-description">Subscribe to our weekly tech briefing and never miss breakthrough innovations in quantum computing, AI, biotechnology, and more.</p> <div class="newsletter-form"> <input type="email" placeholder="Enter your email address" class="newsletter-input"> <button class="newsletter-button">Subscribe</button> </div> </section> </main> <footer> <div class="copyright">© 2023 NEXUS Technology Magazine. All rights reserved.</div> <div class="footer-links"> <a href="#" class="footer-link">Privacy</a> <a href="#" class="footer-link">Terms</a> <a href="#" class="footer-link">Contact</a> <a href="#" class="footer-link">Advertise</a> </div> </footer> <script> // Quantum Computing Simulator const qubitSlider = document.getElementById('qubit-slider'); const qubitValue = document.getElementById('qubit-value'); const powerValue = document.getElementById('power-value'); const quantumViz = document.getElementById('quantum-viz'); // Create initial visualization createBars(10); // Update on slider change qubitSlider.addEventListener('input', function() { const qubits = parseInt(this.value); qubitValue.textContent = qubits; // Calculate and format computing power (2^qubits) const power = Math.pow(2, qubits); powerValue.textContent = formatNumber(power); // Update visualization createBars(qubits); }); function createBars(qubits) { // Clear previous bars quantumViz.innerHTML = ''; // Create bars based on qubits (max 20 bars) const numBars = Math.min(20, qubits * 2); for (let i = 0; i < numBars; i++) { const bar = document.createElement('div'); bar.className = 'bar'; // Calculate height based on position and qubits let height; if (i < qubits) { // Linear growth for the first half height = (i + 1) * (60 / qubits); } else { // Exponential growth for second half const exponentialFactor = Math.pow(1.2, i - qubits + 1); height = Math.min(60, 30 * exponentialFactor); } bar.style.height = `${height}px`; // Color gradient from blue to cyan const hue = 200 + (i * 10); bar.style.backgroundColor = `hsl(${hue}, 100%, 50%)`; // Add animation delay for wave effect bar.style.transitionDelay = `${i * 20}ms`; quantumViz.appendChild(bar); } } function formatNumber(num) { if (num >= 1e12) return (num / 1e12).toFixed(2) + ' trillion'; if (num >= 1e9) return (num / 1e9).toFixed(2) + ' billion'; if (num >= 1e6) return (num / 1e6).toFixed(2) + ' million'; if (num >= 1e3) return (num / 1e3).toFixed(2) + ' thousand'; return num.toString(); } // Newsletter form handling const newsletterForm = document.querySelector('.newsletter-form'); const newsletterInput = document.querySelector('.newsletter-input'); const newsletterButton = document.querySelector('.newsletter-button'); newsletterButton.addEventListener('click', function(e) { e.preventDefault(); if (newsletterInput.value.trim() === '') { newsletterInput.style.borderColor = '#ff3860'; return; } // Show success state newsletterButton.textContent = 'Subscribed!'; newsletterButton.style.backgroundColor = '#00c853'; newsletterInput.value = ''; // Reset after delay setTimeout(() => { newsletterButton.textContent = 'Subscribe'; newsletterButton.style.backgroundColor = ''; }, 2000); }); // Reset validation styling on input newsletterInput.addEventListener('input', function() { this.style.borderColor = ''; }); // Interactive button effects const interactiveButtons = document.querySelectorAll('.interactive-button'); interactiveButtons.forEach(button => { button.addEventListener('click', function(e) { e.preventDefault(); // Add ripple effect const ripple = document.createElement('span'); ripple.style.position = 'absolute'; ripple.style.borderRadius = '50%'; ripple.style.backgroundColor = 'rgba(255, 255, 255, 0.3)'; ripple.style.transform = 'scale(0)'; ripple.style.animation = 'ripple 0.6s linear'; ripple.style.pointerEvents = 'none'; const rect = this.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); ripple.style.width = ripple.style.height = `${size}px`; ripple.style.left = `${e.clientX - rect.left - size/2}px`; ripple.style.top = `${e.clientY - rect.top - size/2}px`; this.appendChild(ripple); setTimeout(() => { ripple.remove(); }, 600); }); }); // Horizontal scrolling for featured news const featuredNewsContainer = document.querySelector('.featured-news-container'); let isDown = false; let startX; let scrollLeft; featuredNewsContainer.addEventListener('mousedown', (e) => { isDown = true; startX = e.pageX - featuredNewsContainer.offsetLeft; scrollLeft = featuredNewsContainer.scrollLeft; }); featuredNewsContainer.addEventListener('mouseleave', () => { isDown = false; }); featuredNewsContainer.addEventListener('mouseup', () => { isDown = false; }); featuredNewsContainer.addEventListener('mousemove', (e) => { if (!isDown) return; e.preventDefault(); const x = e.pageX - featuredNewsContainer.offsetLeft; const walk = (x - startX) * 2; featuredNewsContainer.scrollLeft = scrollLeft - walk; }); // Add animation on scroll const animatedElements = document.querySelectorAll('.fade-in-up'); function checkScroll() { animatedElements.forEach(element => { const elementTop = element.getBoundingClientRect().top; const windowHeight = window.innerHeight; if (elementTop < windowHeight * 0.9) { element.style.opacity = '1'; element.style.transform = 'translateY(0)'; } }); } // Initial check checkScroll(); // Check on scroll document.addEventListener('scroll', checkScroll); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>VOGUE | Fall/Winter 2024</title> <style> @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Montserrat:wght@300;400;600&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; background-color: #fff; color: #333; overflow-x: hidden; width: 100%; height: 100%; } .magazine-container { width: 700px; height: 700px; margin: 0 auto; position: relative; overflow: hidden; } .cover { position: absolute; width: 100%; height: 100%; display: flex; flex-direction: column; z-index: 10; background: linear-gradient(to bottom, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.6) 100%); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); transform: translateY(0); } .cover.opened { transform: translateY(-100%); } .cover-title { font-family: 'Playfair Display', serif; font-size: 6rem; font-weight: 900; letter-spacing: -2px; line-height: 0.9; margin: 40px 20px 0; color: #111; mix-blend-mode: difference; z-index: 2; } .cover-subtitle { font-size: 1.2rem; font-weight: 300; letter-spacing: 5px; text-transform: uppercase; margin: 20px 20px; color: #333; } .open-magazine { position: absolute; bottom: 40px; right: 40px; padding: 12px 24px; background: #111; color: #fff; border: none; font-family: 'Montserrat', sans-serif; font-size: 0.9rem; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; transition: all 0.3s ease; z-index: 2; } .open-magazine:hover { background: #333; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .magazine-content { width: 100%; height: 100%; position: relative; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; } .magazine-content::-webkit-scrollbar { display: none; } section { padding: 40px 20px; position: relative; } .title-block { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 30px; } h1 { font-family: 'Playfair Display', serif; font-size: 3rem; font-weight: 900; line-height: 1; margin-bottom: 10px; color: #111; } h2 { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; margin-bottom: 20px; color: #111; } .issue-info { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 2px; color: #999; writing-mode: vertical-rl; transform: rotate(180deg); margin-right: 10px; } .image-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: repeat(12, 30px); gap: 15px; margin: 40px 0; position: relative; } .image-item { background-size: cover; background-position: center; transition: all 0.5s ease; position: relative; overflow: hidden; } .image-item:hover { transform: scale(1.02); z-index: 2; box-shadow: 0 10px 30px rgba(0,0,0,0.2); } .image-item:nth-child(1) { grid-column: 1 / 9; grid-row: 1 / 7; background-image: url('https://images.unsplash.com/photo-1610624498812-47bf2b917dc4?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80'); } .image-item:nth-child(2) { grid-column: 9 / 13; grid-row: 2 / 9; background-image: url('https://images.unsplash.com/photo-1539109136881-3be0616acf4b?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80'); } .image-item:nth-child(3) { grid-column: 1 / 7; grid-row: 7 / 13; background-image: url('https://images.unsplash.com/photo-1581044777550-4cfa60707c03?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80'); } .image-item:nth-child(4) { grid-column: 7 / 13; grid-row: 9 / 13; background-image: url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80'); } .caption { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); color: white; padding: 5px 10px; font-size: 0.8rem; transform: translateY(100%); transition: transform 0.3s ease; } .image-item:hover .caption { transform: translateY(0); } .article { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 15px; margin: 60px 0; } .article-header { grid-column: 1 / 13; margin-bottom: 30px; } .article-intro { grid-column: 1 / 5; font-size: 1.2rem; line-height: 1.6; color: #555; font-weight: 300; padding-right: 20px; } .article-content { grid-column: 5 / 13; font-size: 1rem; line-height: 1.8; color: #333; } .article-content p { margin-bottom: 20px; } .pull-quote { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.8rem; line-height: 1.4; color: #111; margin: 30px 0; padding-left: 20px; border-left: 3px solid #111; } .designer-feature { margin: 40px 0; display: flex; align-items: center; } .designer-image { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin-right: 20px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .designer-info { flex: 1; } .designer-name { font-family: 'Playfair Display', serif; font-size: 1.5rem; margin-bottom: 5px; } .designer-role { font-size: 0.9rem; color: #666; margin-bottom: 10px; } .nav-dots { position: fixed; top: 50%; right: 20px; transform: translateY(-50%); display: flex; flex-direction: column; gap: 15px; z-index: 100; } .nav-dot { width: 10px; height: 10px; border-radius: 50%; background-color: rgba(0,0,0,0.2); cursor: pointer; transition: all 0.3s ease; } .nav-dot.active { background-color: #111; transform: scale(1.3); } .nav-dot:hover { background-color: #111; } .color-accent { display: inline-block; position: relative; } .color-accent::after { content: ''; position: absolute; bottom: 0; left: -5%; width: 110%; height: 8px; background-color: rgba(255, 99, 71, 0.3); z-index: -1; transition: height 0.3s ease; } .color-accent:hover::after { height: 100%; } @media (max-width: 700px) { .cover-title { font-size: 4rem; } .image-grid { grid-template-rows: repeat(20, 25px); } .article { grid-template-columns: 1fr; } .article-intro, .article-content { grid-column: 1 / -1; } .article-intro { margin-bottom: 20px; } .nav-dots { display: none; } } @keyframes fadeSlideIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-slide-in { opacity: 0; animation: fadeSlideIn 0.8s forwards; } .animation-delay-1 { animation-delay: 0.2s; } .animation-delay-2 { animation-delay: 0.4s; } .animation-delay-3 { animation-delay: 0.6s; } .animation-delay-4 { animation-delay: 0.8s; } .back-to-cover { position: fixed; bottom: 20px; left: 20px; padding: 8px 16px; background: #111; color: #fff; border: none; font-family: 'Montserrat', sans-serif; font-size: 0.8rem; letter-spacing: 1px; cursor: pointer; transition: all 0.3s ease; z-index: 5; opacity: 0; transform: translateY(20px); } .back-to-cover.visible { opacity: 1; transform: translateY(0); } .back-to-cover:hover { background: #333; } .cover-image { position: absolute; top: 0; left: 0; width: 300px; height: 450px; z-index: 1; opacity: 0.6; object-fit: cover; animation: floatImage 8s infinite ease-in-out; } @keyframes floatImage { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-15px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } } </style> </head> <body> <div class="magazine-container"> <div class="cover"> <img src="https://images.unsplash.com/photo-1554412933-514a83d2f3c8?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" class="cover-image"> <h1 class="cover-title">AVANT<br>GARDE</h1> <p class="cover-subtitle">The Boundary Breakers Issue</p> <button class="open-magazine">Read Now</button> </div> <div class="magazine-content"> <section id="section1"> <div class="title-block"> <div> <h1 class="fade-slide-in">The New Asymmetry</h1> <p class="fade-slide-in animation-delay-1">Redefining balance in high fashion</p> </div> <div class="issue-info fade-slide-in animation-delay-1">Fall/Winter 2024</div> </div> <div class="image-grid fade-slide-in animation-delay-2"> <div class="image-item"> <div class="caption">Rei Kawakubo's deconstructed silhouettes at Paris Fashion Week</div> </div> <div class="image-item"> <div class="caption">Alexander McQueen's geometric precision</div> </div> <div class="image-item"> <div class="caption">Conceptual layers from Maison Margiela</div> </div> <div class="image-item"> <div class="caption">Yohji Yamamoto's avant-garde draping techniques</div> </div> </div> <div class="article"> <div class="article-header fade-slide-in animation-delay-3"> <h2>Asymmetry as the New Symmetry</h2> </div> <div class="article-intro fade-slide-in animation-delay-3"> Paris, Milan, New York, and Tokyo have surrendered to the allure of the unbalanced. This season marks a defining shift away from conventional equilibrium toward a deliberate imbalance that speaks to our fragmented times. </div> <div class="article-content fade-slide-in animation-delay-4"> <p>The runways of 2024 have become battlegrounds where traditional notions of balance are being challenged and reconstructed. Leading the charge is <span class="color-accent">Rei Kawakubo</span>, whose Comme des Garçons Fall collection defies not only symmetry but the very concept of the human form.</p> <p>"I'm interested in creating something that hasn't been seen before," Kawakubo noted backstage after her Paris show. Her sculptural pieces force viewers to reconsider what clothing can be—flowing asymmetrically around the body rather than conforming to it.</p> <div class="pull-quote">"Asymmetry isn't merely aesthetic; it's a philosophy—an acknowledgment that perfection exists in imperfection."</div> <p>At Balenciaga, Demna Gvasalia continues his exploration of exaggerated proportions with deliberately offset tailoring. Shoulders tilt at precise angles, hems dip unexpectedly, and seams trace unpredictable paths across garments. What appears haphazard is, in fact, meticulously calculated.</p> <p>Even traditional houses like Dior, under Maria Grazia Chiuri, have embraced asymmetrical elements in their otherwise classical silhouettes. Her latest collection features evening gowns with deliberately mismatched sides—one structured, one flowing—creating visual tension that captivates the eye.</p> </div> </div> <div class="designer-feature fade-slide-in"> <img src="https://images.unsplash.com/photo-1601935111741-ae98b2b230b0?ixlib=rb-1.2.1&auto=format&fit=crop&w=300&q=80" alt="Designer Portrait" class="designer-image"> <div class="designer-info"> <h3 class="designer-name">Miuccia Prada</h3> <p class="designer-role">Creative Director, Prada</p> <p>"Asymmetry allows for movement and freedom. It creates space for the unexpected to happen. In fashion now, we need this unpredictability."</p> </div> </div> </section> </div> <div class="nav-dots"> <div class="nav-dot active" data-section="section1"></div> </div> <button class="back-to-cover">Back to Cover</button> </div> <script> document.addEventListener('DOMContentLoaded', function() { const cover = document.querySelector('.cover'); const openButton = document.querySelector('.open-magazine'); const backButton = document.querySelector('.back-to-cover'); const navDots = document.querySelectorAll('.nav-dot'); const sections = document.querySelectorAll('section'); openButton.addEventListener('click', function() { cover.classList.add('opened'); setTimeout(() => { backButton.classList.add('visible'); }, 500); }); backButton.addEventListener('click', function() { cover.classList.remove('opened'); backButton.classList.remove('visible'); }); navDots.forEach(dot => { dot.addEventListener('click', function() { const sectionId = this.getAttribute('data-section'); document.getElementById(sectionId).scrollIntoView({ behavior: 'smooth' }); }); }); // Intersection Observer for detecting which section is in view const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const sectionId = entry.target.getAttribute('id'); navDots.forEach(dot => { dot.classList.toggle('active', dot.getAttribute('data-section') === sectionId); }); } }); }, { threshold: 0.5 }); sections.forEach(section => { observer.observe(section); }); // Reveal animations as elements come into view const fadeElements = document.querySelectorAll('.fade-slide-in'); const fadeObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = 1; entry.target.style.transform = 'translateY(0)'; fadeObserver.unobserve(entry.target); } }); }, { threshold: 0.1 }); fadeElements.forEach(element => { fadeObserver.observe(element); }); // Image hover effect enhancement const imageItems = document.querySelectorAll('.image-item'); imageItems.forEach(item => { item.addEventListener('mouseenter', function() { imageItems.forEach(otherItem => { if (otherItem !== item) { otherItem.style.filter = 'grayscale(0.8)'; otherItem.style.opacity = '0.7'; } }); }); item.addEventListener('mouseleave', function() { imageItems.forEach(otherItem => { otherItem.style.filter = 'none'; otherItem.style.opacity = '1'; }); }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Rustic Kitchen | Seasonal Favorites</title> <style> @import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Caveat:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap'); :root { --color-primary: #8B4513; --color-secondary: #D2B48C; --color-accent: #A0522D; --color-background: #FAF3E0; --color-text: #332211; --color-light: #FFF9EE; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Lora', serif; background-color: var(--color-background); color: var(--color-text); line-height: 1.6; max-width: 700px; margin: 0 auto; overflow-x: hidden; height: 100vh; } .magazine-container { display: flex; flex-direction: column; height: 100%; overflow-y: auto; scroll-snap-type: y mandatory; scrollbar-width: none; } .magazine-container::-webkit-scrollbar { display: none; } header { padding: 20px; text-align: center; position: relative; background-color: var(--color-light); border-bottom: 2px solid var(--color-accent); box-shadow: 0 4px 12px rgba(139, 69, 19, 0.1); } .logo { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: var(--color-primary); letter-spacing: 1px; margin-bottom: 5px; } .tagline { font-family: 'Caveat', cursive; font-size: 1.2rem; color: var(--color-accent); margin-bottom: 10px; } .issue-info { font-size: 0.8rem; margin-top: 5px; color: var(--color-text); } section { scroll-snap-align: start; min-height: 100%; padding: 30px 25px; position: relative; } .cover { display: flex; flex-direction: column; justify-content: center; align-items: center; background-image: linear-gradient(rgba(250, 243, 224, 0.85), rgba(250, 243, 224, 0.85)), url('https://images.unsplash.com/photo-1606787366850-de6330128bfc?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80'); background-size: cover; background-position: center; position: relative; text-align: center; } .cover h1 { font-family: 'Playfair Display', serif; font-size: 2.5rem; color: var(--color-primary); margin-bottom: 20px; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1); } .cover-subtitle { font-family: 'Caveat', cursive; font-size: 1.5rem; color: var(--color-accent); margin-bottom: 30px; } .feature-tag { background-color: var(--color-primary); color: var(--color-light); padding: 8px 15px; border-radius: 20px; font-size: 0.9rem; margin-bottom: 15px; display: inline-block; transform: rotate(-2deg); box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); } .recipe { margin-bottom: 40px; } .recipe-header { margin-bottom: 20px; } .recipe-title { font-family: 'Playfair Display', serif; font-size: 1.8rem; color: var(--color-primary); margin-bottom: 10px; } .recipe-intro { font-style: italic; margin-bottom: 15px; border-left: 3px solid var(--color-secondary); padding-left: 15px; } .recipe-meta { display: flex; gap: 15px; margin-bottom: 20px; font-size: 0.9rem; } .recipe-meta div { display: flex; align-items: center; gap: 5px; } .recipe-meta svg { width: 18px; height: 18px; fill: var(--color-accent); } .recipe-image-container { position: relative; margin-bottom: 25px; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .recipe-image { width: 100%; height: 250px; object-fit: cover; transition: transform 0.5s ease; } .recipe-image-container:hover .recipe-image { transform: scale(1.05); } .image-caption { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(0, 0, 0, 0.7)); color: white; padding: 15px; font-family: 'Caveat', cursive; font-size: 1.1rem; transform: translateY(100%); transition: transform 0.3s ease; } .recipe-image-container:hover .image-caption { transform: translateY(0); } .ingredients-section { background-color: var(--color-light); padding: 20px; border-radius: 10px; margin-bottom: 25px; position: relative; } .ingredients-header { font-family: 'Caveat', cursive; font-size: 1.5rem; color: var(--color-primary); margin-bottom: 15px; display: flex; align-items: center; gap: 10px; } .ingredients-list { list-style-type: none; columns: 2; column-gap: 30px; } .ingredients-list li { margin-bottom: 10px; position: relative; padding-left: 22px; } .ingredients-list li::before { content: "•"; position: absolute; left: 0; color: var(--color-accent); font-size: 1.2rem; } .method-section { counter-reset: step; } .method-header { font-family: 'Caveat', cursive; font-size: 1.5rem; color: var(--color-primary); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } .method-step { margin-bottom: 25px; position: relative; padding-left: 40px; } .step-number { position: absolute; left: 0; top: 0; background-color: var(--color-accent); color: white; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; } .chef-note { background-color: var(--color-secondary); padding: 15px; border-radius: 10px; margin-top: 30px; position: relative; } .chef-note::before { content: "Chef's Note"; font-family: 'Caveat', cursive; font-size: 1.3rem; font-weight: bold; display: block; margin-bottom: 10px; color: var(--color-primary); } .scroll-indicator { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); text-align: center; color: var(--color-accent); animation: bounce 2s infinite; } .scroll-icon { font-size: 1.5rem; margin-bottom: 5px; } .scroll-text { font-family: 'Caveat', cursive; font-size: 1rem; } .season-badge { position: absolute; top: 20px; right: 20px; background-color: var(--color-primary); color: white; padding: 10px 15px; border-radius: 50%; font-family: 'Caveat', cursive; font-size: 1.2rem; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; transform: rotate(10deg); box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); animation: float 3s ease-in-out infinite; } .page-number { position: absolute; bottom: 10px; right: 20px; font-family: 'Caveat', cursive; font-size: 1rem; color: var(--color-accent); } .tip-box { border: 2px dashed var(--color-accent); padding: 15px; margin: 25px 0; border-radius: 10px; background-color: var(--color-light); position: relative; } .tip-box::before { content: "Cook's Tip"; font-family: 'Caveat', cursive; font-size: 1.2rem; background-color: var(--color-light); padding: 0 10px; position: absolute; top: -12px; left: 20px; color: var(--color-accent); } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } 40% { transform: translateY(-10px) translateX(-50%); } 60% { transform: translateY(-5px) translateX(-50%); } } @keyframes float { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-10px) rotate(10deg); } 100% { transform: translateY(0) rotate(10deg); } } @media (max-width: 480px) { .logo { font-size: 1.5rem; } .cover h1 { font-size: 2rem; } .recipe-title { font-size: 1.5rem; } .ingredients-list { columns: 1; } .recipe-meta { flex-direction: column; gap: 5px; } } </style> </head> <body> <div class="magazine-container"> <header> <div class="logo">Rustic Kitchen</div> <div class="tagline">Celebrating the Art of Home Cooking</div> <div class="issue-info">AUTUMN 2023 • HARVEST EDITION</div> </header> <section class="cover"> <span class="feature-tag">SEASONAL EDITION</span> <h1>Autumn Harvest Gatherings</h1> <p class="cover-subtitle">Warming recipes for the soul</p> <div class="season-badge">Fall</div> <div class="scroll-indicator"> <div class="scroll-icon">↓</div> <div class="scroll-text">Scroll for recipes</div> </div> </section> <section> <article class="recipe"> <div class="recipe-header"> <h2 class="recipe-title">Maple-Glazed Roasted Root Vegetables</h2> <p class="recipe-intro">This vibrant medley of autumn's bounty transforms humble root vegetables into a caramelized symphony of flavors. The maple glaze creates a perfect balance of sweet and savory, while fresh herbs add aromatic depth.</p> <div class="recipe-meta"> <div> <svg viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg> <span>45 minutes</span> </div> <div> <svg viewBox="0 0 24 24"><path d="M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"/></svg> <span>Medium difficulty</span> </div> <div> <svg viewBox="0 0 24 24"><path d="M12 6c1.11 0 2-.9 2-2s-.89-2-2-2c-1.11 0-2 .9-2 2s.89 2 2 2zm-1 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm9-10H4v1h16V8zm-2 3H7c-.55 0-1 .45-1 1v5h1.5v-1.5h2v1.5H11v-6h5c.55 0 1-.45 1-1s-.45-1-1-1zm-.5 3h-2v-1.5h2V14z"/></svg> <span>Serves 6</span> </div> </div> </div> <div class="recipe-image-container"> <img src="https://images.unsplash.com/photo-1600891964599-f61ba0e24092?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80" alt="Maple-Glazed Roasted Root Vegetables" class="recipe-image"> <div class="image-caption">The caramelized edges offer the most delicious bites</div> </div> <div class="ingredients-section"> <h3 class="ingredients-header">Ingredients</h3> <ul class="ingredients-list"> <li>2 large parsnips, peeled and cut into batons</li> <li>3 medium carrots, peeled and cut into batons</li> <li>1 large sweet potato, peeled and cubed</li> <li>2 medium beets, peeled and cubed</li> <li>1 red onion, cut into wedges</li> <li>3 tablespoons olive oil</li> <li>¼ cup pure maple syrup</li> <li>2 tablespoons balsamic vinegar</li> <li>3 sprigs fresh thyme</li> <li>2 sprigs fresh rosemary</li> <li>Sea salt and freshly ground pepper</li> <li>¼ cup toasted pecans, roughly chopped</li> </ul> </div> <div class="method-section"> <h3 class="method-header">Method</h3> <div class="method-step"> <div class="step-number">1</div> <p>Preheat your oven to 425°F (220°C). Line two baking sheets with parchment paper to prevent sticking and make cleanup easier.</p> </div> <div class="method-step"> <div class="step-number">2</div> <p>In a large bowl, toss the parsnips, carrots, sweet potato, beets, and red onion with the olive oil, 2 tablespoons of maple syrup, and balsamic vinegar. Season generously with sea salt and freshly ground black pepper.</p> </div> <div class="tip-box"> <p>For even roasting, make sure all vegetable pieces are cut to a similar size. If working with beets, keep them separate until the final toss to prevent them from coloring everything pink.</p> </div> <div class="method-step"> <div class="step-number">3</div> <p>Spread the vegetables in a single layer across the prepared baking sheets, being careful not to crowd them. Nestle the thyme and rosemary sprigs among the vegetables.</p> </div> <div class="method-step"> <div class="step-number">4</div> <p>Roast for 25 minutes, then remove from oven and drizzle with the remaining maple syrup. Gently toss to coat all vegetables and return to the oven for another 10-15 minutes, until caramelized and tender.</p> </div> <div class="method-step"> <div class="step-number">5</div> <p>Remove from oven and discard the herb sprigs. Transfer the roasted vegetables to a serving platter, scatter with toasted pecans, and serve warm.</p> </div> </div> <div class="chef-note"> <p>This recipe works beautifully as a side for roasted meats or as a hearty addition to a grain bowl. Leftovers can be transformed into a rustic galette by topping a round of puff pastry with the vegetables and a sprinkle of goat cheese before baking.</p> </div> </article> <div class="page-number">12</div> </section> </div> <script> document.addEventListener('DOMContentLoaded', function() { const recipeImageContainers = document.querySelectorAll('.recipe-image-container'); recipeImageContainers.forEach(container => { container.addEventListener('mouseover', function() { this.querySelector('.image-caption').style.transform = 'translateY(0)'; }); container.addEventListener('mouseout', function() { this.querySelector('.image-caption').style.transform = 'translateY(100%)'; }); }); // Smooth scrolling for section navigation document.querySelector('.scroll-indicator').addEventListener('click', function() { const nextSection = document.querySelector('section:nth-child(3)'); nextSection.scrollIntoView({ behavior: 'smooth' }); }); // Add subtle fade-in animation for recipe elements const recipeElements = document.querySelectorAll('.recipe-header, .recipe-image-container, .ingredients-section, .method-section, .chef-note'); const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = '1'; entry.target.style.transform = 'translateY(0)'; observer.unobserve(entry.target); } }); }, observerOptions); recipeElements.forEach((element, index) => { element.style.opacity = '0'; element.style.transform = 'translateY(20px)'; element.style.transition = `opacity 0.5s ease ${index * 0.1}s, transform 0.5s ease ${index * 0.1}s`; observer.observe(element); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>VERTEX Business Magazine</title> <style> :root { --primary: #2c3e50; --secondary: #7f8c8d; --light: #ecf0f1; --accent: #3498db; --text: #34495e; --bg: #f9f9f9; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Helvetica, Arial, sans-serif; } body { background-color: var(--bg); color: var(--text); line-height: 1.6; overflow-x: hidden; max-width: 700px; margin: 0 auto; height: 700px; display: flex; flex-direction: column; } .magazine-container { display: flex; flex-direction: column; width: 100%; height: 100%; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--secondary) var(--light); } .magazine-container::-webkit-scrollbar { width: 6px; } .magazine-container::-webkit-scrollbar-track { background: var(--light); } .magazine-container::-webkit-scrollbar-thumb { background-color: var(--secondary); border-radius: 3px; } header { padding: 20px; position: sticky; top: 0; z-index: 100; background-color: rgba(249, 249, 249, 0.95); backdrop-filter: blur(5px); border-bottom: 1px solid #e0e0e0; transition: all 0.3s ease; } .header-content { display: flex; justify-content: space-between; align-items: center; } .logo { font-size: 24px; font-weight: 800; color: var(--primary); letter-spacing: -1px; position: relative; } .logo::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background-color: var(--accent); transition: width 0.3s ease; } .logo:hover::after { width: 100%; } .issue-info { font-size: 12px; color: var(--secondary); text-transform: uppercase; letter-spacing: 1px; } .main-content { padding: 20px; flex-grow: 1; display: grid; grid-template-columns: 65% 35%; gap: 30px; } .feature-article { position: relative; } .article-header { margin-bottom: 30px; position: relative; } .article-tag { display: inline-block; font-size: 12px; text-transform: uppercase; color: var(--accent); letter-spacing: 1px; margin-bottom: 10px; font-weight: 600; opacity: 0; transform: translateY(20px); animation: fadeUp 0.6s forwards; } .article-title { font-size: 2.5rem; line-height: 1.2; margin-bottom: 15px; color: var(--primary); font-weight: 700; opacity: 0; transform: translateY(20px); animation: fadeUp 0.6s 0.2s forwards; } .article-subtitle { font-size: 1.3rem; color: var(--secondary); margin-bottom: 20px; font-weight: 400; opacity: 0; transform: translateY(20px); animation: fadeUp 0.6s 0.4s forwards; } .author-info { display: flex; align-items: center; margin-bottom: 20px; opacity: 0; transform: translateY(20px); animation: fadeUp 0.6s 0.6s forwards; } .author-avatar { width: 40px; height: 40px; border-radius: 50%; background-color: var(--accent); margin-right: 15px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; } .author-meta { display: flex; flex-direction: column; } .author-name { font-weight: 600; font-size: 14px; } .publish-date { font-size: 12px; color: var(--secondary); } .article-content p { margin-bottom: 20px; font-size: 16px; line-height: 1.8; color: var(--text); opacity: 0; transform: translateY(20px); animation: fadeUp 0.6s 0.8s forwards; } .sidebar { display: flex; flex-direction: column; gap: 30px; } .chart-container { background-color: white; padding: 20px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; opacity: 0; transform: translateX(20px); animation: fadeLeft 0.6s 1s forwards; } .chart-container:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); } .chart-title { font-size: 18px; font-weight: 600; margin-bottom: 15px; color: var(--primary); } .chart { width: 100%; height: 200px; position: relative; margin-bottom: 10px; } .bar-container { height: 100%; display: flex; align-items: flex-end; justify-content: space-around; } .bar { width: 18%; background-color: var(--accent); transition: height 1s cubic-bezier(0.19, 1, 0.22, 1); position: relative; opacity: 0.8; border-radius: 3px 3px 0 0; } .bar:hover { opacity: 1; } .bar-label { position: absolute; bottom: -25px; left: 50%; transform: translateX(-50%); font-size: 12px; color: var(--secondary); white-space: nowrap; } .value-label { position: absolute; top: -25px; left: 50%; transform: translateX(-50%); font-size: 12px; color: var(--text); opacity: 0; transition: opacity 0.3s ease; } .bar:hover .value-label { opacity: 1; } .chart-note { font-size: 12px; color: var(--secondary); margin-top: 30px; font-style: italic; } .sidebar-item { background-color: white; padding: 20px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; opacity: 0; transform: translateX(20px); animation: fadeLeft 0.6s 1.2s forwards; } .sidebar-item:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); } .sidebar-title { font-size: 18px; font-weight: 600; margin-bottom: 15px; color: var(--primary); position: relative; display: inline-block; } .sidebar-title::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background-color: var(--accent); transition: width 0.3s ease; } .sidebar-item:hover .sidebar-title::after { width: 100%; } .sidebar-content { font-size: 14px; line-height: 1.6; } .quick-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; } .stat-item { flex: 1 0 calc(50% - 10px); background-color: var(--light); padding: 15px; border-radius: 4px; transition: transform 0.3s ease, background-color 0.3s ease; } .stat-item:hover { transform: translateY(-3px); background-color: rgba(52, 152, 219, 0.1); } .stat-value { font-size: 24px; font-weight: 700; color: var(--primary); margin-bottom: 5px; } .stat-label { font-size: 12px; color: var(--secondary); text-transform: uppercase; letter-spacing: 0.5px; } .related-articles { margin-top: 15px; } .related-article { display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--light); transition: transform 0.3s ease; } .related-article:last-child { border-bottom: none; } .related-article:hover { transform: translateX(5px); } .article-number { font-size: 20px; font-weight: 700; color: var(--accent); margin-right: 15px; opacity: 0.5; } .related-article-title { font-size: 14px; color: var(--text); font-weight: 500; } .page-navigation { display: flex; justify-content: space-between; padding: 20px; border-top: 1px solid #e0e0e0; background-color: var(--bg); } .nav-button { display: flex; align-items: center; gap: 8px; color: var(--secondary); font-size: 14px; cursor: pointer; transition: color 0.3s ease; user-select: none; } .nav-button:hover { color: var(--accent); } .arrow { font-size: 18px; transition: transform 0.3s ease; } .prev:hover .arrow { transform: translateX(-3px); } .next:hover .arrow { transform: translateX(3px); } .page-dots { display: flex; gap: 8px; } .dot { width: 8px; height: 8px; border-radius: 50%; background-color: var(--secondary); opacity: 0.3; transition: opacity 0.3s ease, transform 0.3s ease; } .dot.active { opacity: 1; background-color: var(--accent); transform: scale(1.2); } @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeLeft { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } @media (max-width: 600px) { .main-content { grid-template-columns: 1fr; } .article-title { font-size: 1.8rem; } .article-subtitle { font-size: 1.1rem; } .chart { height: 160px; } } </style> </head> <body> <div class="magazine-container"> <header> <div class="header-content"> <div class="logo">VERTEX</div> <div class="issue-info">Q4 2023 • ISSUE 16</div> </div> </header> <div class="main-content"> <div class="feature-article"> <div class="article-header"> <div class="article-tag">Leadership</div> <h1 class="article-title">Sustainable Leadership in an Era of Digital Transformation</h1> <h2 class="article-subtitle">How forward-thinking executives are balancing growth, innovation, and ESG principles</h2> <div class="author-info"> <div class="author-avatar">AB</div> <div class="author-meta"> <div class="author-name">Amelia Brooks</div> <div class="publish-date">November 15, 2023</div> </div> </div> </div> <div class="article-content"> <p>The landscape of corporate leadership is undergoing a profound shift as industries accelerate digital initiatives while facing mounting pressure to address environmental and social imperatives. Our six-month study of 143 Fortune 500 executives reveals that 78% are now integrating sustainability metrics into their strategic planning processes—up from just 31% in 2019.</p> <p>Sarah Chen, Chief Strategy Officer at Nexium Technologies, exemplifies this new leadership paradigm. "We're moving beyond the outdated thinking that positions sustainability as separate from core business strategy," Chen explains. "The companies thriving today see digital transformation and sustainability as complementary forces rather than competing priorities."</p> <p>This integration manifests in tangible business outcomes. Companies with highly-rated sustainability programs demonstrated 32% better talent retention and 27% higher employee engagement scores compared to industry peers. Furthermore, these organizations reported 22% faster digital adoption rates, suggesting a correlation between sustainability commitments and organizational agility.</p> </div> </div> <div class="sidebar"> <div class="chart-container"> <h3 class="chart-title">CEO Priority Shifts (2020-2023)</h3> <div class="chart"> <div class="bar-container"> <div class="bar" style="height: 50%;"> <div class="value-label">50%</div> <div class="bar-label">Digital</div> </div> <div class="bar" style="height: 85%;"> <div class="value-label">85%</div> <div class="bar-label">Sustainability</div> </div> <div class="bar" style="height: 38%;"> <div class="value-label">38%</div> <div class="bar-label">Operations</div> </div> <div class="bar" style="height: 71%;"> <div class="value-label">71%</div> <div class="bar-label">Talent</div> </div> <div class="bar" style="height: 63%;"> <div class="value-label">63%</div> <div class="bar-label">Innovation</div> </div> </div> </div> <div class="chart-note">Based on quarterly surveys of 143 Fortune 500 executives between 2020-2023. Values represent percentage of executives rating each area as "critically important" to long-term strategy.</div> </div> <div class="sidebar-item"> <h3 class="sidebar-title">Executive Intelligence</h3> <div class="sidebar-content"> <p>Key findings from our research on sustainable leadership practices in the digital age.</p> <div class="quick-stats"> <div class="stat-item"> <div class="stat-value">73%</div> <div class="stat-label">Performance Increase</div> </div> <div class="stat-item"> <div class="stat-value">2.4x</div> <div class="stat-label">Innovation Rate</div> </div> <div class="stat-item"> <div class="stat-value">18%</div> <div class="stat-label">Lower Turnover</div> </div> <div class="stat-item"> <div class="stat-value">4.7y</div> <div class="stat-label">Strategic Window</div> </div> </div> </div> </div> <div class="sidebar-item"> <h3 class="sidebar-title">Related Articles</h3> <div class="related-articles"> <div class="related-article"> <div class="article-number">01</div> <div class="related-article-title">The Silent Revolution: ESG Governance in Tech Companies</div> </div> <div class="related-article"> <div class="article-number">02</div> <div class="related-article-title">Data-Driven Sustainability: Metrics That Matter</div> </div> <div class="related-article"> <div class="article-number">03</div> <div class="related-article-title">Bridging Innovation and Climate Action in Supply Chains</div> </div> </div> </div> </div> </div> <div class="page-navigation"> <div class="nav-button prev"> <span class="arrow">←</span> <span class="label">Previous Article</span> </div> <div class="page-dots"> <div class="dot"></div> <div class="dot active"></div> <div class="dot"></div> <div class="dot"></div> </div> <div class="nav-button next"> <span class="label">Next Article</span> <span class="arrow">→</span> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', () => { // Animate chart bars setTimeout(() => { const bars = document.querySelectorAll('.bar'); bars.forEach(bar => { const height = bar.style.height; bar.style.height = '0%'; setTimeout(() => { bar.style.height = height; }, 100); }); }, 1500); // Navigation functionality const prevButton = document.querySelector('.nav-button.prev'); const nextButton = document.querySelector('.nav-button.next'); const dots = document.querySelectorAll('.dot'); let currentPage = 1; prevButton.addEventListener('click', () => { if (currentPage > 0) { updateActiveDot(currentPage - 1); currentPage -= 1; animatePageTransition('prev'); } }); nextButton.addEventListener('click', () => { if (currentPage < dots.length - 1) { updateActiveDot(currentPage + 1); currentPage += 1; animatePageTransition('next'); } }); dots.forEach((dot, index) => { dot.addEventListener('click', () => { const direction = index > currentPage ? 'next' : 'prev'; updateActiveDot(index); currentPage = index; animatePageTransition(direction); }); }); function updateActiveDot(index) { dots.forEach((dot, i) => { dot.classList.toggle('active', i === index); }); } function animatePageTransition(direction) { const content = document.querySelector('.main-content'); const xDir = direction === 'next' ? -20 : 20; content.style.opacity = '0'; content.style.transform = `translateX(${xDir}px)`; setTimeout(() => { content.style.transition = 'opacity 0.5s ease, transform 0.5s ease'; content.style.opacity = '1'; content.style.transform = 'translateX(0)'; setTimeout(() => { content.style.transition = ''; }, 500); }, 300); } // Parallax effect on scroll const magazineContainer = document.querySelector('.magazine-container'); const header = document.querySelector('header'); magazineContainer.addEventListener('scroll', () => { const scroll = magazineContainer.scrollTop; if (scroll > 50) { header.style.boxShadow = '0 4px 10px rgba(0, 0, 0, 0.05)'; header.style.padding = '15px 20px'; } else { header.style.boxShadow = 'none'; header.style.padding = '20px'; } }); // Hover effects for sidebar items const sidebarItems = document.querySelectorAll('.sidebar-item, .chart-container'); sidebarItems.forEach(item => { item.addEventListener('mouseenter', () => { sidebarItems.forEach(otherItem => { if (otherItem !== item) { otherItem.style.opacity = '0.7'; } }); }); item.addEventListener('mouseleave', () => { sidebarItems.forEach(otherItem => { otherItem.style.opacity = '1'; }); }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Wanderlust Magazine</title> <style> @import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Montserrat:wght@300;400;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap'); :root { --primary: #ff7e4d; --secondary: #ffc14d; --accent: #4da6ff; --dark: #2c3e50; --light: #f9f7f4; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; background-color: var(--light); color: var(--dark); overflow-x: hidden; max-width: 700px; height: 700px; overflow-y: auto; scrollbar-width: thin; position: relative; } ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 3px; } .magazine-container { max-width: 700px; margin: 0 auto; position: relative; } /* Header */ .magazine-header { position: relative; height: 300px; overflow: hidden; margin-bottom: 1rem; } .header-image { width: 100%; height: 100%; object-fit: cover; transition: transform 8s ease; } .magazine-header:hover .header-image { transform: scale(1.1); } .header-gradient { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0,0,0,0.2), rgba(0,0,0,0.7)); } .magazine-title { position: absolute; bottom: 2rem; left: 2rem; color: white; z-index: 10; } .magazine-title h1 { font-family: 'DM Serif Display', serif; font-size: 3rem; margin-bottom: 0.5rem; letter-spacing: -0.5px; text-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: translateY(20px); opacity: 0; animation: fadeUp 0.8s forwards 0.2s; } .magazine-title p { font-size: 1rem; font-weight: 300; letter-spacing: 2px; text-transform: uppercase; transform: translateY(20px); opacity: 0; animation: fadeUp 0.8s forwards 0.4s; } /* Feature Section */ .feature-section { padding: 0 1.5rem; margin-bottom: 2rem; } .section-title { position: relative; font-family: 'Playfair Display', serif; font-size: 1.75rem; margin-bottom: 1.5rem; display: inline-block; } .section-title::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 100%; height: 3px; background: linear-gradient(to right, var(--primary), var(--secondary)); transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease; } .section-title:hover::after { transform: scaleX(1); } .destinations-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 2rem; } .destination-card { position: relative; height: 180px; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.1); transform: translateY(20px); opacity: 0; animation: fadeUp 0.8s forwards; cursor: pointer; } .destination-card:nth-child(1) { animation-delay: 0.6s; } .destination-card:nth-child(2) { animation-delay: 0.8s; } .destination-card:nth-child(3) { animation-delay: 1s; } .destination-card:nth-child(4) { animation-delay: 1.2s; } .destination-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .destination-card:hover img { transform: scale(1.1); } .destination-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); padding: 1rem; color: white; transition: all 0.3s ease; } .destination-card:hover .destination-overlay { background: linear-gradient(to top, rgba(255,126,77,0.9), transparent); } .destination-overlay h3 { font-size: 1.1rem; margin-bottom: 0.25rem; } .destination-overlay p { font-size: 0.75rem; opacity: 0.9; } /* Itinerary Section */ .itinerary-section { padding: 2rem 1.5rem; background-color: white; border-radius: 10px; box-shadow: 0 6px 20px rgba(0,0,0,0.05); position: relative; overflow: hidden; margin: 0 1.5rem 2rem; } .itinerary-section::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(to bottom, var(--primary), var(--secondary)); } .itinerary-days { margin-top: 1.5rem; } .day-item { position: relative; padding-left: 2.5rem; margin-bottom: 1.5rem; opacity: 0; transform: translateX(-20px); animation: fadeRight 0.8s forwards; } .day-item:nth-child(1) { animation-delay: 1.4s; } .day-item:nth-child(2) { animation-delay: 1.6s; } .day-item:nth-child(3) { animation-delay: 1.8s; } .day-item::before { content: ''; position: absolute; left: 0; top: 0; width: 30px; height: 30px; background-color: var(--secondary); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; z-index: 1; } .day-item:nth-child(1)::before { content: '1'; } .day-item:nth-child(2)::before { content: '2'; } .day-item:nth-child(3)::before { content: '3'; } .day-item::after { content: ''; position: absolute; left: 15px; top: 30px; width: 2px; height: calc(100% + 1rem); background-color: rgba(0,0,0,0.1); z-index: 0; } .day-item:last-child::after { display: none; } .day-item h4 { font-family: 'Playfair Display', serif; font-size: 1.2rem; margin-bottom: 0.5rem; color: var(--primary); } .day-item p { font-size: 0.9rem; line-height: 1.6; color: #555; } /* Culture Section */ .culture-section { position: relative; margin: 0 1.5rem 2rem; } .culture-card { display: flex; background: white; border-radius: 10px; overflow: hidden; box-shadow: 0 6px 20px rgba(0,0,0,0.05); transition: transform 0.3s ease; opacity: 0; animation: fadeIn 0.8s forwards 2s; } .culture-card:hover { transform: translateY(-5px); } .culture-img { width: 40%; object-fit: cover; } .culture-content { padding: 1.5rem; width: 60%; } .culture-content h3 { font-family: 'Playfair Display', serif; font-size: 1.3rem; margin-bottom: 0.75rem; color: var(--dark); } .culture-content p { font-size: 0.85rem; line-height: 1.6; margin-bottom: 1rem; } .read-more { display: inline-block; padding: 0.5rem 1rem; background: var(--accent); color: white; border-radius: 20px; font-size: 0.8rem; text-decoration: none; transition: all 0.3s ease; } .read-more:hover { background: var(--primary); transform: translateX(5px); } /* Footer */ .magazine-footer { margin-top: 2rem; padding: 1.5rem; background-color: var(--dark); color: white; text-align: center; } .magazine-footer h3 { font-family: 'DM Serif Display', serif; margin-bottom: 0.75rem; font-size: 1.5rem; } .social-icons { display: flex; justify-content: center; gap: 1rem; margin-bottom: 1rem; } .social-icon { width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .social-icon:hover { background-color: var(--primary); transform: translateY(-3px); } .social-icon i { font-size: 1.2rem; } .footer-links { margin-top: 1rem; font-size: 0.8rem; } .footer-links a { color: rgba(255,255,255,0.7); margin: 0 0.5rem; text-decoration: none; transition: color 0.3s ease; } .footer-links a:hover { color: var(--secondary); } /* Navigation */ .magazine-nav { position: fixed; top: 0; width: 100%; max-width: 700px; z-index: 1000; padding: 1rem; display: flex; justify-content: space-between; transition: all 0.3s ease; } .nav-scrolled { background-color: rgba(255,255,255,0.95); box-shadow: 0 2px 10px rgba(0,0,0,0.1); padding: 0.75rem 1rem; } .nav-logo { font-family: 'DM Serif Display', serif; font-size: 1.5rem; color: white; text-decoration: none; transition: color 0.3s ease; } .nav-scrolled .nav-logo { color: var(--primary); } .nav-menu-btn { width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; } .nav-scrolled .nav-menu-btn { background-color: var(--light); } .nav-menu-btn:hover { background-color: var(--primary); } .nav-menu-btn span { width: 20px; height: 2px; background-color: white; position: relative; transition: all 0.3s ease; } .nav-scrolled .nav-menu-btn span { background-color: var(--dark); } .nav-menu-btn.active span { background-color: transparent; } .nav-menu-btn span::before, .nav-menu-btn span::after { content: ''; position: absolute; width: 20px; height: 2px; background-color: white; transition: all 0.3s ease; } .nav-scrolled .nav-menu-btn span::before, .nav-scrolled .nav-menu-btn span::after { background-color: var(--dark); } .nav-menu-btn span::before { transform: translateY(-6px); } .nav-menu-btn span::after { transform: translateY(6px); } .nav-menu-btn.active span::before { transform: rotate(45deg); } .nav-menu-btn.active span::after { transform: rotate(-45deg); } .nav-menu { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--primary); display: flex; flex-direction: column; align-items: center; justify-content: center; transform: translateX(-100%); transition: transform 0.5s ease; z-index: 999; } .nav-menu.active { transform: translateX(0); } .nav-item { margin: 1rem 0; font-size: 1.5rem; color: white; text-decoration: none; position: relative; transition: all 0.3s ease; } .nav-item::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 2px; background-color: white; transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; } .nav-item:hover { color: var(--light); } .nav-item:hover::after { transform: scaleX(1); transform-origin: left; } /* Animations */ @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeRight { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Media Queries */ @media (max-width: 600px) { .magazine-title h1 { font-size: 2.5rem; } .destinations-grid { grid-template-columns: 1fr; } .culture-card { flex-direction: column; } .culture-img { width: 100%; height: 180px; } .culture-content { width: 100%; } } </style> </head> <body> <div class="magazine-nav"> <a href="#" class="nav-logo">Wanderlust</a> <div class="nav-menu-btn"> <span></span> </div> </div> <div class="nav-menu"> <a href="#" class="nav-item">Home</a> <a href="#" class="nav-item">Destinations</a> <a href="#" class="nav-item">Itineraries</a> <a href="#" class="nav-item">Culture</a> <a href="#" class="nav-item">Subscribe</a> </div> <div class="magazine-container"> <header class="magazine-header"> <img src="https://images.unsplash.com/photo-1528127269322-539801943592?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80" alt="Santorini, Greece" class="header-image"> <div class="header-gradient"></div> <div class="magazine-title"> <h1>Wanderlust</h1> <p>June 2023 • Discover Greek Islands</p> </div> </header> <section class="feature-section"> <h2 class="section-title">Featured Destinations</h2> <div class="destinations-grid"> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1530841377377-3ff06c0ca713?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" alt="Santorini"> <div class="destination-overlay"> <h3>Santorini</h3> <p>Iconic white villages with blue domes</p> </div> </div> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1504512485720-7d83a16ee930?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" alt="Mykonos"> <div class="destination-overlay"> <h3>Mykonos</h3> <p>Vibrant nightlife and pristine beaches</p> </div> </div> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1603565816030-6b389eeb23cb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" alt="Crete"> <div class="destination-overlay"> <h3>Crete</h3> <p>Rich history and diverse landscapes</p> </div> </div> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1508187954081-b878fed199fb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" alt="Rhodes"> <div class="destination-overlay"> <h3>Rhodes</h3> <p>Medieval architecture and sunny beaches</p> </div> </div> </div> </section> <section class="itinerary-section"> <h2 class="section-title">Island Hopping Itinerary</h2> <div class="itinerary-days"> <div class="day-item"> <h4>Athens to Santorini</h4> <p>Begin your journey in Athens with a morning visit to the Acropolis. In the afternoon, catch a high-speed ferry to Santorini. Check into your cliffside hotel in Oia and enjoy dinner with a sunset view.</p> </div> <div class="day-item"> <h4>Exploring Santorini</h4> <p>Take a catamaran cruise around the caldera in the morning, with stops for swimming at Red Beach and White Beach. In the afternoon, visit a traditional winery to sample Assyrtiko wines, followed by dinner in Fira.</p> </div> <div class="day-item"> <h4>Santorini to Mykonos</h4> <p>Catch the morning ferry to Mykonos. After checking in, explore the iconic windmills and Little Venice. End your day with dinner at a seaside taverna in Mykonos Town, followed by experiencing the island's famous nightlife.</p> </div> </div> </section> <section class="culture-section"> <h2 class="section-title">Cultural Immersion</h2> <div class="culture-card"> <img src="https://images.unsplash.com/photo-1516483638261-f4dbaf036963?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=300&q=80" alt="Greek Food" class="culture-img"> <div class="culture-content"> <h3>A Taste of Greek Islands</h3> <p>Beyond the breathtaking views, Greek islands offer culinary traditions that vary from one island to another. In Santorini, try the unique cherry tomatoes, white eggplant, and fava beans. On Crete, sample the rustic dakos and fresh mizithra cheese.</p> <a href="#" class="read-more">Read More</a> </div> </div> </section> <footer class="magazine-footer"> <h3>Wanderlust Magazine</h3> <p>Your guide to extraordinary destinations</p> <div class="social-icons"> <div class="social-icon"> <i>f</i> </div> <div class="social-icon"> <i>in</i> </div> <div class="social-icon"> <i>ig</i> </div> </div> <div class="footer-links"> <a href="#">Subscribe</a> <a href="#">Privacy Policy</a> <a href="#">Terms of Use</a> </div> </footer> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Navigation scroll effect const nav = document.querySelector('.magazine-nav'); const navLogo = document.querySelector('.nav-logo'); const menuBtn = document.querySelector('.nav-menu-btn'); const menu = document.querySelector('.nav-menu'); const navItems = document.querySelectorAll('.nav-item'); // Menu toggle menuBtn.addEventListener('click', function() { this.classList.toggle('active'); menu.classList.toggle('active'); }); // Close menu when nav item is clicked navItems.forEach(item => { item.addEventListener('click', function(e) { e.preventDefault(); menuBtn.classList.remove('active'); menu.classList.remove('active'); }); }); // Scroll effect for navigation window.addEventListener('scroll', function() { if (window.scrollY > 100) { nav.classList.add('nav-scrolled'); } else { nav.classList.remove('nav-scrolled'); } }); // Destination cards click effect const destinationCards = document.querySelectorAll('.destination-card'); destinationCards.forEach(card => { card.addEventListener('click', function() { // Could implement a modal or redirect in a real application card.style.transform = 'scale(0.95)'; setTimeout(() => { card.style.transform = ''; }, 200); }); }); // Read more button effect const readMoreBtn = document.querySelector('.read-more'); readMoreBtn.addEventListener('click', function(e) { e.preventDefault(); this.textContent = this.textContent === 'Read More' ? 'Read Less' : 'Read More'; }); // Intersection Observer for animations const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = 1; if (entry.target.classList.contains('day-item')) { entry.target.style.transform = 'translateX(0)'; } else if (entry.target.classList.contains('destination-card')) { entry.target.style.transform = 'translateY(0)'; } } }); }, { threshold: 0.2 }); document.querySelectorAll('.day-item, .destination-card, .culture-card').forEach(item => { observer.observe(item); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Serenity | Lifestyle Magazine</title> <style> @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,500;1,300&family=Lato:wght@300;400&display=swap'); :root { --color-bg: #f9f7f7; --color-accent-1: #ebd8d0; --color-accent-2: #c9d9e3; --color-accent-3: #e8e3d5; --color-text: #353535; --color-light-text: #707070; --font-serif: 'Playfair Display', serif; --font-serif-alt: 'Cormorant Garamond', serif; --font-sans: 'Lato', sans-serif; --spacing-sm: 1rem; --spacing-md: 2rem; --spacing-lg: 3rem; } * { margin: 0; padding: 0; box-sizing: border-box; } body { background-color: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); line-height: 1.6; overflow-x: hidden; max-width: 700px; height: 700px; margin: 0 auto; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--color-accent-1) var(--color-bg); } body::-webkit-scrollbar { width: 8px; } body::-webkit-scrollbar-track { background: var(--color-bg); } body::-webkit-scrollbar-thumb { background-color: var(--color-accent-1); border-radius: 4px; } .magazine { display: flex; flex-direction: column; padding: 2rem 1.5rem; } header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--spacing-md); position: relative; } .logo { font-family: var(--font-serif); font-size: 2rem; font-weight: 700; letter-spacing: 1px; color: var(--color-text); } .issue { font-family: var(--font-sans); font-size: 0.9rem; font-weight: 300; color: var(--color-light-text); letter-spacing: 1px; opacity: 0.8; } .header-bg { position: absolute; width: 100%; height: 100%; background-color: var(--color-accent-3); opacity: 0.15; top: 0; left: 0; transform: scaleX(0); transform-origin: left; transition: transform 0.8s ease-out; z-index: -1; } header:hover .header-bg { transform: scaleX(1); } nav { display: flex; gap: 1.5rem; font-family: var(--font-sans); font-size: 0.85rem; letter-spacing: 1px; margin-bottom: var(--spacing-md); border-bottom: 1px solid var(--color-accent-1); padding-bottom: 1rem; } nav a { text-decoration: none; color: var(--color-text); position: relative; transition: color 0.3s; } nav a::after { content: ""; position: absolute; bottom: -5px; left: 0; width: 100%; height: 2px; background-color: var(--color-accent-1); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } nav a:hover { color: #000; } nav a:hover::after { transform: scaleX(1); } .feature { margin-bottom: var(--spacing-lg); } .feature-title { font-family: var(--font-serif); font-size: 2.2rem; line-height: 1.2; margin-bottom: var(--spacing-sm); position: relative; display: inline-block; } .feature-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 40%; height: 4px; background-color: var(--color-accent-1); } .feature-intro { font-family: var(--font-serif-alt); font-size: 1.2rem; font-style: italic; color: var(--color-light-text); margin-bottom: var(--spacing-md); } .multi-column { column-count: 2; column-gap: 2rem; margin-bottom: var(--spacing-md); } @media (max-width: 480px) { .multi-column { column-count: 1; } } p { margin-bottom: 1rem; font-size: 1rem; } .blockquote-container { position: relative; margin: var(--spacing-md) 0; } blockquote { font-family: var(--font-serif-alt); font-size: 1.6rem; font-style: italic; line-height: 1.4; color: var(--color-text); padding: 1.5rem; position: relative; background-color: var(--color-accent-2); opacity: 0.9; margin: 0; z-index: 1; transform: translateX(0); transition: transform 0.5s ease; } blockquote:hover { transform: translateX(5px); } blockquote::before { content: """; font-family: var(--font-serif); font-size: 5rem; position: absolute; top: -20px; left: -15px; color: var(--color-accent-1); opacity: 0.4; z-index: -1; } .quote-author { font-family: var(--font-sans); font-size: 0.9rem; font-weight: 300; text-align: right; margin-top: 0.5rem; letter-spacing: 1px; } .collage { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 0.5rem; margin: var(--spacing-md) 0; } .collage-img { width: 100%; height: 120px; object-fit: cover; border-radius: 2px; transition: all 0.3s ease; cursor: pointer; filter: grayscale(20%); } .collage-img:hover { transform: scale(1.05); z-index: 2; filter: grayscale(0%); box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .collage-img:nth-child(1) { grid-column: span 2; height: 180px; } .collage-img:nth-child(4) { grid-column: span 2; height: 150px; } .section { margin-bottom: var(--spacing-lg); position: relative; } .section-title { font-family: var(--font-serif); font-size: 1.8rem; margin-bottom: var(--spacing-sm); display: inline-block; position: relative; } .section-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 30%; height: 3px; background-color: var(--color-accent-2); } .card-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1.5rem; margin-top: var(--spacing-md); } @media (max-width: 480px) { .card-grid { grid-template-columns: 1fr; } } .card { position: relative; border-radius: 4px; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); } .card-img { width: 100%; height: 180px; object-fit: cover; } .card-content { padding: 1rem; background-color: white; } .card-title { font-family: var(--font-serif-alt); font-size: 1.2rem; margin-bottom: 0.5rem; } .card-excerpt { font-size: 0.9rem; color: var(--color-light-text); } .read-more { display: inline-block; margin-top: 0.5rem; font-family: var(--font-sans); font-size: 0.85rem; color: var(--color-text); position: relative; letter-spacing: 1px; } .read-more::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 100%; height: 1px; background-color: var(--color-accent-1); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; } .read-more:hover::after { transform: scaleX(1); transform-origin: left; } .accent-box { background-color: var(--color-accent-3); padding: 1.5rem; margin: var(--spacing-md) 0; position: relative; overflow: hidden; } .accent-box::before { content: ""; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background-color: var(--color-accent-1); } .accent-title { font-family: var(--font-serif); font-size: 1.4rem; margin-bottom: 1rem; } .footer { margin-top: var(--spacing-lg); padding-top: var(--spacing-md); border-top: 1px solid var(--color-accent-1); font-size: 0.85rem; color: var(--color-light-text); display: flex; justify-content: space-between; } .footer a { color: var(--color-text); text-decoration: none; } .footer a:hover { text-decoration: underline; } .loader-line { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(to right, var(--color-accent-1), var(--color-accent-2)); z-index: 999; width: 0; transition: width 0.3s ease; } .section-fade { opacity: 0; transform: translateY(20px); transition: opacity 0.8s ease, transform 0.8s ease; } .section-fade.visible { opacity: 1; transform: translateY(0); } .color-dot { display: inline-block; width: 15px; height: 15px; border-radius: 50%; margin-right: 5px; cursor: pointer; transition: transform 0.3s ease; } .color-dot:hover { transform: scale(1.2); } .color-selector { display: flex; justify-content: flex-end; margin-bottom: var(--spacing-sm); } .dot-1 { background-color: var(--color-accent-1); } .dot-2 { background-color: var(--color-accent-2); } .dot-3 { background-color: var(--color-accent-3); } .dot-4 { background-color: #d0e8eb; } .bookmark { position: absolute; top: 0; right: 1rem; background-color: var(--color-accent-1); width: 20px; height: 30px; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); transition: height 0.3s ease; } .bookmark:hover { height: 35px; } .reading-tracker { position: fixed; top: 50%; right: 10px; transform: translateY(-50%); width: 3px; height: 100px; background-color: #eee; border-radius: 3px; z-index: 10; } .reading-progress { width: 100%; background-color: var(--color-accent-1); position: absolute; bottom: 0; border-radius: 3px; transition: height 0.2s; } </style> </head> <body> <div class="loader-line" id="loader-line"></div> <div class="reading-tracker"> <div class="reading-progress" id="reading-progress"></div> </div> <div class="magazine"> <header> <div class="logo">Serenity</div> <div class="issue">SUMMER ISSUE • 2023</div> <div class="header-bg"></div> <div class="bookmark"></div> </header> <nav> <a href="#">LIFESTYLE</a> <a href="#">WELLNESS</a> <a href="#">HOME</a> <a href="#">TRAVEL</a> <a href="#">FOOD</a> </nav> <div class="color-selector"> <span class="color-dot dot-1" data-color="#ebd8d0"></span> <span class="color-dot dot-2" data-color="#c9d9e3"></span> <span class="color-dot dot-3" data-color="#e8e3d5"></span> <span class="color-dot dot-4" data-color="#d0e8eb"></span> </div> <section class="feature section-fade"> <h1 class="feature-title">The Art of Slow Living</h1> <p class="feature-intro">Embracing intentionality in a fast-paced world—how thoughtful daily rituals can transform your wellbeing and reshape your relationship with time.</p> <div class="multi-column"> <p>In our increasingly digital age, the concept of slow living isn't about doing everything at half-speed—it's about finding the right pace for each moment. Slow living is less a trend and more a deliberate response to our culture of constant productivity and distraction.</p> <p>The philosophy centers around quality over quantity, whether that's in our possessions, our commitments, or our relationships. "It's about creating space for what truly matters," explains mindfulness expert Sara Jennings. "When we rush from task to task, we miss the subtle beauty that makes life rich."</p> <p>The movement draws inspiration from various cultural practices—from the Italian concept of <em>dolce far niente</em> (the sweetness of doing nothing) to the Japanese practice of <em>shinrin-yoku</em> (forest bathing). Both celebrate the profound importance of presence and deliberate attention.</p> </div> <div class="blockquote-container"> <blockquote> Slow living isn't about living in slow motion. It's about knowing when to be still and when to move forward with intention and grace. <div class="quote-author">— ELENA FOSTER, AUTHOR OF "THE RHYTHM OF DAYS"</div> </blockquote> </div> <div class="collage"> <img src="https://images.unsplash.com/photo-1494972308805-463bc619d34e?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="collage-img" alt="Morning coffee ritual"> <img src="https://images.unsplash.com/photo-1555212697-194d092e3b8f?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="collage-img" alt="Journal writing"> <img src="https://images.unsplash.com/photo-1542810634-71277d95dcbb?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="collage-img" alt="Morning reading"> <img src="https://images.unsplash.com/photo-1469474968028-56623f02e42e?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="collage-img" alt="Nature walk"> <img src="https://images.unsplash.com/photo-1507525428034-b723cf961d3e?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="collage-img" alt="Beach sunset"> </div> <p>Practitioners of slow living often develop intentional daily rituals—a deliberately made pour-over coffee savored in silence, a technology-free hour before bed, or a weekly phone call with a dear friend where neither party is multitasking. These seemingly small changes can create significant shifts in mental clarity and emotional wellbeing.</p> </section> <section class="section section-fade"> <h2 class="section-title">Seasonal Features</h2> <div class="card-grid"> <div class="card"> <img src="https://images.unsplash.com/photo-1528920304568-7aa06b3dda8b?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="card-img" alt="Home sanctuary"> <div class="card-content"> <h3 class="card-title">Creating Your Home Sanctuary</h3> <p class="card-excerpt">Designing thoughtful spaces that support rest and inspiration through intentional curation.</p> <span class="read-more">Read article</span> </div> </div> <div class="card"> <img src="https://images.unsplash.com/photo-1447078806655-40579c2520d6?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" class="card-img" alt="Seasonal food"> <div class="card-content"> <h3 class="card-title">The Season's Harvest</h3> <p class="card-excerpt">Celebrating summer's bounty with recipes that honor locally-grown ingredients.</p> <span class="read-more">Read article</span> </div> </div> </div> </section> <section class="section section-fade"> <div class="accent-box"> <h3 class="accent-title">Summer Reading Selection</h3> <p>This season's curated collection explores themes of presence, nature connection, and finding meaning in simplicity. Our editors have selected works that invite deeper contemplation and offer practical wisdom for everyday living.</p> <p>Featured titles include "The Art of Rest" by Claudia Hammond, "Braiding Sweetgrass" by Robin Wall Kimmerer, and "Four Thousand Weeks" by Oliver Burkeman—each offering unique perspectives on our relationship with time and attention.</p> </div> </section> <footer class="footer"> <div>© 2023 Serenity Magazine</div> <div> <a href="#">Subscribe</a> • <a href="#">Archive</a> • <a href="#">Contact</a> </div> </footer> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Scroll progress indicator const loaderLine = document.getElementById('loader-line'); const readingProgress = document.getElementById('reading-progress'); window.addEventListener('scroll', function() { const windowHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight; const scrolled = window.scrollY / windowHeight; loaderLine.style.width = (scrolled * 100) + '%'; readingProgress.style.height = (scrolled * 100) + '%'; }); // Fade in sections on scroll const sections = document.querySelectorAll('.section-fade'); function checkSections() { const triggerBottom = window.innerHeight * 0.8; sections.forEach(section => { const sectionTop = section.getBoundingClientRect().top; if (sectionTop < triggerBottom) { section.classList.add('visible'); } }); } checkSections(); // Check on initial load window.addEventListener('scroll', checkSections); // Color theme selector const colorDots = document.querySelectorAll('.color-dot'); colorDots.forEach(dot => { dot.addEventListener('click', function() { const color = this.getAttribute('data-color'); document.documentElement.style.setProperty('--color-accent-1', color); }); }); // Image collage interaction const collageImages = document.querySelectorAll('.collage-img'); collageImages.forEach(img => { img.addEventListener('mouseenter', function() { collageImages.forEach(other => { if (other !== img) { other.style.opacity = '0.6'; } }); }); img.addEventListener('mouseleave', function() { collageImages.forEach(other => { other.style.opacity = '1'; }); }); }); // Animate blockquote on scroll const blockquote = document.querySelector('blockquote'); function checkBlockquote() { if (!blockquote) return; const blockquotePosition = blockquote.getBoundingClientRect().top; const screenPosition = window.innerHeight * 0.8; if (blockquotePosition < screenPosition) { blockquote.style.opacity = '1'; } } window.addEventListener('scroll', checkBlockquote); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Harmony Health Magazine</title> <style> :root { --primary: #a0d2eb; --secondary: #e5eaf5; --accent: #d0bdf4; --text: #494d5f; --dark-text: #2e3047; --light-text: #8a8eaa; --white: #ffffff; --highlight: #ff9a8b; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } body { background-color: var(--white); color: var(--text); font-size: 16px; line-height: 1.6; overflow-x: hidden; height: 100%; width: 100%; max-width: 700px; margin: 0 auto; } .magazine-container { max-width: 700px; margin: 0 auto; padding: 20px; overflow-y: auto; max-height: 700px; scroll-behavior: smooth; } header { text-align: center; padding-bottom: 20px; border-bottom: 1px solid var(--secondary); position: relative; } .logo { font-size: 32px; color: var(--dark-text); font-weight: 700; letter-spacing: 1px; margin-bottom: 10px; display: inline-block; position: relative; } .logo::after { content: ''; position: absolute; width: 100%; height: 3px; background: linear-gradient(90deg, var(--primary), var(--accent)); bottom: -5px; left: 0; transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } header:hover .logo::after { transform: scaleX(1); } .tagline { font-size: 14px; color: var(--light-text); font-weight: 400; font-style: italic; } nav { display: flex; justify-content: center; margin: 20px 0; overflow-x: auto; padding-bottom: 10px; } nav a { color: var(--text); text-decoration: none; padding: 8px 15px; margin: 0 5px; border-radius: 20px; font-size: 14px; font-weight: 500; transition: all 0.3s ease; white-space: nowrap; } nav a:hover, nav a.active { background-color: var(--accent); color: var(--white); } main { display: grid; grid-template-columns: 1fr; gap: 30px; margin-top: 20px; } .feature-article { position: relative; border-radius: 15px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); transition: transform 0.3s ease; } .feature-article:hover { transform: translateY(-5px); } .feature-image { height: 200px; width: 100%; background: linear-gradient(45deg, var(--primary), var(--accent)); position: relative; overflow: hidden; } .feature-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.9; transition: opacity 0.3s ease, transform 0.5s ease; } .feature-article:hover .feature-image img { opacity: 1; transform: scale(1.05); } .feature-content { padding: 20px; background-color: var(--white); } .category { display: inline-block; background-color: var(--accent); color: var(--white); font-size: 12px; padding: 5px 10px; border-radius: 15px; margin-bottom: 10px; } h2, h3 { color: var(--dark-text); margin-bottom: 10px; line-height: 1.3; } h2 { font-size: 24px; } h3 { font-size: 20px; } p { margin-bottom: 15px; color: var(--text); } .read-more { display: inline-block; background-color: var(--primary); color: var(--dark-text); padding: 8px 15px; border-radius: 20px; font-weight: 600; font-size: 14px; text-decoration: none; transition: all 0.3s ease; } .read-more:hover { background-color: var(--accent); color: var(--white); transform: translateX(5px); } .expert-advice { background-color: var(--secondary); padding: 25px; border-radius: 15px; position: relative; overflow: hidden; } .expert-advice::before { content: ''; position: absolute; top: 0; right: 0; width: 100px; height: 100px; background: var(--accent); opacity: 0.1; border-radius: 50%; transform: translate(30%, -30%); } .expert-profile { display: flex; align-items: center; margin-bottom: 15px; } .expert-avatar { width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--accent)); margin-right: 15px; position: relative; overflow: hidden; } .expert-avatar img { width: 100%; height: 100%; object-fit: cover; } .expert-info h4 { font-size: 16px; color: var(--dark-text); margin-bottom: 3px; } .expert-info .title { font-size: 12px; color: var(--light-text); } .quote { font-style: italic; position: relative; padding-left: 20px; margin-bottom: 20px; } .quote::before { content: '"'; font-size: 60px; color: var(--accent); position: absolute; top: -20px; left: -5px; opacity: 0.3; } .wellness-tips { background-color: var(--white); border-radius: 15px; padding: 25px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); } .tips-container { margin-top: 15px; } .tip-item { padding: 15px; border-left: 3px solid var(--primary); margin-bottom: 15px; background-color: rgba(160, 210, 235, 0.05); border-radius: 0 10px 10px 0; transition: all 0.3s ease; cursor: pointer; } .tip-item:hover { background-color: rgba(160, 210, 235, 0.15); border-left-color: var(--accent); transform: translateX(5px); } .tip-item h4 { font-size: 16px; color: var(--dark-text); margin-bottom: 5px; display: flex; align-items: center; } .tip-item h4::before { content: '✓'; margin-right: 8px; color: var(--accent); font-weight: bold; } .tip-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .tip-item.active .tip-content { max-height: 200px; } .progress-container { position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: rgba(0, 0, 0, 0.05); z-index: 100; } .progress-bar { height: 100%; background: linear-gradient(90deg, var(--primary), var(--accent), var(--highlight)); width: 0%; transition: width 0.2s ease; } .newsletter { margin-top: 30px; padding: 25px; background: linear-gradient(135deg, var(--secondary), var(--white)); border-radius: 15px; text-align: center; } .newsletter h3 { margin-bottom: 15px; } .newsletter p { margin-bottom: 20px; } .form-group { display: flex; margin-bottom: 15px; } .form-group input { flex-grow: 1; padding: 10px 15px; border: 1px solid var(--secondary); border-radius: 20px 0 0 20px; outline: none; font-size: 14px; } .form-group button { background-color: var(--accent); color: var(--white); border: none; border-radius: 0 20px 20px 0; padding: 10px 20px; cursor: pointer; font-weight: 600; transition: all 0.3s ease; } .form-group button:hover { background-color: var(--primary); } .success-message { display: none; background-color: rgba(144, 238, 144, 0.2); color: #2e8b57; padding: 10px; border-radius: 20px; margin-top: 10px; } footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--secondary); text-align: center; font-size: 12px; color: var(--light-text); } .social-links { display: flex; justify-content: center; margin: 15px 0; } .social-links a { width: 30px; height: 30px; border-radius: 50%; background-color: var(--secondary); color: var(--text); display: flex; align-items: center; justify-content: center; margin: 0 5px; text-decoration: none; transition: all 0.3s ease; } .social-links a:hover { background-color: var(--accent); color: var(--white); transform: translateY(-3px); } .back-to-top { display: inline-block; background-color: var(--primary); color: var(--dark-text); padding: 8px 15px; border-radius: 20px; font-weight: 600; font-size: 12px; margin-top: 10px; cursor: pointer; transition: all 0.3s ease; } .back-to-top:hover { background-color: var(--accent); color: var(--white); } @media (max-width: 600px) { header { padding-bottom: 15px; } .logo { font-size: 28px; } main { gap: 20px; } h2 { font-size: 20px; } h3 { font-size: 18px; } .feature-image { height: 150px; } .expert-advice, .wellness-tips, .newsletter { padding: 20px; } } /* Animation Classes */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.8s ease forwards; opacity: 0; } .delay-1 { animation-delay: 0.2s; } .delay-2 { animation-delay: 0.4s; } .delay-3 { animation-delay: 0.6s; } .delay-4 { animation-delay: 0.8s; } /* Animated Background */ .animated-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 0.3; } .circle { position: absolute; border-radius: 50%; background: linear-gradient(45deg, var(--primary), var(--accent)); animation: float 8s infinite alternate ease-in-out; } .circle:nth-child(1) { width: 100px; height: 100px; top: 10%; left: 10%; animation-delay: 0s; } .circle:nth-child(2) { width: 150px; height: 150px; top: 60%; left: 80%; animation-delay: 2s; } .circle:nth-child(3) { width: 70px; height: 70px; top: 80%; left: 20%; animation-delay: 4s; } @keyframes float { 0% { transform: translate(0, 0) rotate(0deg); } 100% { transform: translate(20px, 20px) rotate(10deg); } } </style> </head> <body> <div class="animated-bg"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> <div class="progress-container"> <div class="progress-bar" id="progressBar"></div> </div> <div class="magazine-container"> <header class="fade-in"> <div class="logo">Harmony Health</div> <div class="tagline">Your guide to mindful wellbeing</div> </header> <nav class="fade-in delay-1"> <a href="#" class="active">Home</a> <a href="#">Nutrition</a> <a href="#">Fitness</a> <a href="#">Mindfulness</a> <a href="#">Sleep</a> <a href="#">Recipes</a> </nav> <main> <section class="feature-article fade-in delay-2"> <div class="feature-image"> <img src="https://images.unsplash.com/photo-1506126613408-eca07ce68773?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80" alt="Morning Routine for Mental Clarity"> </div> <div class="feature-content"> <span class="category">Featured</span> <h2>The 15-Minute Morning Ritual for All-Day Energy</h2> <p>Discover how dedicating just 15 minutes each morning to intentional practices can transform your energy levels and mental clarity throughout the day. This science-backed routine combines brief meditation, strategic movement, and nutritional timing for sustainable vitality.</p> <a href="#" class="read-more">Read Article</a> </div> </section> <section class="expert-advice fade-in delay-3"> <h3>Expert Insight</h3> <div class="expert-profile"> <div class="expert-avatar"> <img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&auto=format&fit=crop&w=150&q=80" alt="Dr. Maya Chen"> </div> <div class="expert-info"> <h4>Dr. Maya Chen</h4> <div class="title">Integrative Medicine Specialist</div> </div> </div> <div class="quote"> <p>The most important health intervention isn't a supplement or exercise—it's improving your sleep quality. When we prioritize restorative sleep, we create the foundation for proper hormone regulation, cellular repair, and cognitive function.</p> </div> <p>Dr. Chen's research shows that consistent sleep patterns can reduce inflammatory markers by up to 30%, directly impacting everything from weight management to emotional resilience. Her three-step protocol focuses on environment optimization, circadian rhythm alignment, and pre-sleep mental decompression.</p> <a href="#" class="read-more">Full Interview</a> </section> <section class="wellness-tips fade-in delay-4"> <h3>Interactive Wellness Tips</h3> <p>Click on each tip to reveal actionable advice you can implement today:</p> <div class="tips-container"> <div class="tip-item"> <h4>Movement Snacking</h4> <div class="tip-content"> <p>Instead of trying to fit in one long workout, distribute 2-3 minute "movement snacks" throughout your day. Research shows these micro-sessions can be more effective for metabolic health than a single longer workout. Try 10 bodyweight squats, 5 push-ups, or 30 seconds of stretching every 60-90 minutes.</p> </div> </div> <div class="tip-item"> <h4>Hydration Formula</h4> <div class="tip-content"> <p>Your ideal daily water intake is more precise than the generic "8 glasses" rule. Multiply your weight (in lbs) by 0.5 to get your target in ounces. For enhanced cellular absorption, add a pinch of mineral salt and a squeeze of lemon to your first morning glass.</p> </div> </div> <div class="tip-item"> <h4>Digital Sunset Protocol</h4> <div class="tip-content"> <p>Set a "digital sunset" 90 minutes before bedtime. The specific blue light wavelengths from screens suppress melatonin production by up to 50%. Use this pre-bed time for analog activities like reading, gentle stretching, or connection conversations that activate your parasympathetic nervous system.</p> </div> </div> <div class="tip-item"> <h4>30/30/30 Breakfast Rule</h4> <div class="tip-content"> <p>Structure your breakfast with 30g of protein, within 30 minutes of waking, and include at least 30% of your plate as vegetables. This combination stabilizes blood sugar for up to 5 hours, reducing cravings and improving focus during your most productive morning hours.</p> </div> </div> </div> </section> <section class="newsletter fade-in"> <h3>Weekly Wellness Digest</h3> <p>Get evidence-based health insights and seasonal recipes delivered to your inbox.</p> <div class="form-group"> <input type="email" placeholder="Your email address" id="email-input"> <button id="subscribe-btn">Subscribe</button> </div> <div class="success-message" id="success-message"> Thank you! Your wellness journey begins next Wednesday. </div> </section> </main> <footer> <div class="social-links"> <a href="#"><i>f</i></a> <a href="#"><i>t</i></a> <a href="#"><i>in</i></a> <a href="#"><i>p</i></a> </div> <p>© 2023 Harmony Health Magazine. All content reviewed by health professionals.</p> <div class="back-to-top" id="backToTop">Back to Top</div> </footer> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Tip items interaction const tipItems = document.querySelectorAll('.tip-item'); tipItems.forEach(item => { item.addEventListener('click', function() { this.classList.toggle('active'); }); }); // Progress bar window.addEventListener('scroll', function() { const scrollTop = document.querySelector('.magazine-container').scrollTop; const scrollHeight = document.querySelector('.magazine-container').scrollHeight; const clientHeight = document.querySelector('.magazine-container').clientHeight; const scrollPercentage = (scrollTop / (scrollHeight - clientHeight)) * 100; document.getElementById('progressBar').style.width = scrollPercentage + '%'; }); // Back to top document.getElementById('backToTop').addEventListener('click', function() { document.querySelector('.magazine-container').scrollTo({ top: 0, behavior: 'smooth' }); }); // Newsletter subscription document.getElementById('subscribe-btn').addEventListener('click', function(e) { e.preventDefault(); const emailInput = document.getElementById('email-input'); const successMessage = document.getElementById('success-message'); if (emailInput.value.trim() !== '') { emailInput.value = ''; successMessage.style.display = 'block'; setTimeout(() => { successMessage.style.display = 'none'; }, 3000); } }); // Nav links const navLinks = document.querySelectorAll('nav a'); navLinks.forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); navLinks.forEach(l => l.classList.remove('active')); this.classList.add('active'); }); }); // Add hover effect for feature article const featureArticle = document.querySelector('.feature-article'); featureArticle.addEventListener('mouseenter', function() { this.style.boxShadow = '0 10px 25px rgba(160, 210, 235, 0.3)'; }); featureArticle.addEventListener('mouseleave', function() { this.style.boxShadow = '0 5px 15px rgba(0, 0, 0, 0.05)'; }); // Animated elements on scroll const animateOnScroll = function() { const elements = document.querySelectorAll('.fade-in'); elements.forEach(element => { const elementPosition = element.getBoundingClientRect().top; const screenPosition = window.innerHeight / 1.2; if (elementPosition < screenPosition) { element.style.opacity = '1'; element.style.transform = 'translateY(0)'; } }); }; document.querySelector('.magazine-container').addEventListener('scroll', animateOnScroll); animateOnScroll(); // Call once on load }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>MOMENTUM Sports Magazine</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700;800;900&display=swap'); :root { --primary: #ff3a2f; --secondary: #2c3ae0; --dark: #121212; --light: #f7f7f7; --accent: #ffcc00; } body { background-color: var(--light); overflow-x: hidden; width: 100%; height: 100%; color: var(--dark); } .container { max-width: 700px; height: 700px; margin: 0 auto; overflow-y: auto; overflow-x: hidden; position: relative; scroll-behavior: smooth; } /* Custom Scrollbar */ .container::-webkit-scrollbar { width: 5px; } .container::-webkit-scrollbar-track { background: var(--light); } .container::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 10px; } header { position: relative; overflow: hidden; height: 300px; background-color: var(--dark); padding: 20px; } .header-content { position: relative; z-index: 2; } .diagonal-split { position: absolute; width: 150%; height: 100%; background-color: var(--primary); transform: rotate(-15deg); top: -50%; left: -30%; z-index: 1; } .logo { font-size: 32px; font-weight: 900; color: var(--light); text-transform: uppercase; letter-spacing: -1px; margin-bottom: 10px; position: relative; display: inline-block; } .logo::after { content: ''; position: absolute; bottom: -3px; left: 0; width: 40%; height: 4px; background-color: var(--accent); } .tagline { font-size: 14px; color: var(--light); font-weight: 400; margin-bottom: 40px; } .headline { font-size: 42px; font-weight: 800; line-height: 1.1; color: var(--light); width: 80%; text-transform: uppercase; margin-bottom: 15px; } .subhead { font-size: 16px; color: var(--light); width: 70%; font-weight: 300; } .hero-image { position: absolute; right: -50px; top: 50px; width: 350px; height: 350px; object-fit: cover; transform: rotate(5deg); border: 5px solid var(--light); box-shadow: 0 10px 20px rgba(0,0,0,0.3); z-index: 3; transition: transform 0.3s ease; } .hero-image:hover { transform: rotate(0deg) scale(1.05); } .content { padding: 30px 20px; position: relative; margin-top: 80px; } .section-title { font-size: 28px; font-weight: 700; margin-bottom: 20px; color: var(--dark); position: relative; display: inline-block; text-transform: uppercase; } .section-title::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 70%; height: 4px; background-color: var(--primary); } .feature-article { margin-bottom: 40px; position: relative; overflow: hidden; } .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 40px; } .stat-card { background-color: var(--dark); border-radius: 6px; padding: 15px; text-align: center; color: var(--light); position: relative; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; } .stat-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); } .stat-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background-color: var(--primary); } .stat-card:nth-child(2n)::before { background-color: var(--secondary); } .stat-card:nth-child(3n)::before { background-color: var(--accent); } .stat-number { font-size: 32px; font-weight: 800; margin-bottom: 5px; } .stat-title { font-size: 12px; text-transform: uppercase; font-weight: 600; } .interview { background-color: var(--light); border-left: 5px solid var(--secondary); padding: 20px; margin-bottom: 40px; position: relative; } .interview::after { content: '"'; position: absolute; top: -15px; right: 20px; font-size: 80px; color: rgba(44, 58, 224, 0.1); font-weight: 900; } .interview-quote { font-size: 18px; font-style: italic; margin-bottom: 15px; line-height: 1.4; } .interview-attribution { font-weight: 700; font-size: 14px; } .interview-position { font-weight: 400; font-size: 13px; color: var(--primary); } .live-scores { margin-bottom: 40px; } .score-card { display: flex; justify-content: space-between; align-items: center; padding: 10px 15px; background-color: var(--light); margin-bottom: 10px; border-radius: 6px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); transition: transform 0.2s ease; } .score-card:hover { transform: scale(1.02); } .score-card.live { border-left: 3px solid var(--primary); } .score-card.live .live-indicator { display: flex; align-items: center; color: var(--primary); font-weight: 600; font-size: 12px; } .live-dot { width: 8px; height: 8px; background-color: var(--primary); border-radius: 50%; margin-right: 5px; animation: pulse 1.5s infinite; } .team { font-weight: 600; } .score { font-weight: 700; } .separator { font-weight: 300; color: #888; margin: 0 5px; } .match-time { font-size: 12px; color: #888; } .trending-topics { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; } .topic { background-color: var(--light); padding: 8px 15px; border-radius: 20px; font-size: 14px; font-weight: 600; box-shadow: 0 3px 6px rgba(0,0,0,0.1); transition: all 0.3s ease; cursor: pointer; } .topic:hover { background-color: var(--primary); color: var(--light); transform: translateY(-3px); } .footer { background-color: var(--dark); color: var(--light); padding: 20px; text-align: center; margin-top: 30px; } .footer-logo { font-size: 24px; font-weight: 900; text-transform: uppercase; letter-spacing: -1px; margin-bottom: 10px; } .social-links { display: flex; justify-content: center; gap: 15px; margin: 15px 0; } .social-icon { width: 30px; height: 30px; background-color: var(--light); color: var(--dark); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .social-icon:hover { background-color: var(--primary); color: var(--light); transform: translateY(-3px); } .copyright { font-size: 12px; color: rgba(255,255,255,0.7); } /* Animations */ @keyframes pulse { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.5; transform: scale(1); } } .fade-in { opacity: 0; transform: translateY(20px); animation: fadeIn 0.8s forwards; } @keyframes fadeIn { to { opacity: 1; transform: translateY(0); } } .staggered-fade { opacity: 0; transform: translateY(20px); } /* Responsive Styles */ @media (max-width: 600px) { .hero-image { width: 250px; height: 250px; right: -30px; top: 80px; } .headline { font-size: 32px; width: 70%; } .subhead { width: 60%; font-size: 14px; } .content { margin-top: 50px; } .stats-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 400px) { .hero-image { width: 180px; height: 180px; right: -20px; top: 100px; } .headline { font-size: 28px; width: 65%; } .stats-grid { grid-template-columns: 1fr; } } </style> </head> <body> <div class="container"> <header> <div class="diagonal-split"></div> <div class="header-content"> <div class="logo">Momentum</div> <div class="tagline">WHERE SPORTS STORIES COME ALIVE</div> <h1 class="headline">THE UNSTOPPABLE RISE OF WOMEN'S FOOTBALL</h1> <p class="subhead">Record-breaking attendances, increasing investment, and global recognition transform the landscape</p> </div> <img src="https://images.unsplash.com/photo-1626248801379-51a0748e001a?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80" alt="Women's football match" class="hero-image"> </header> <div class="content"> <section class="feature-article fade-in"> <h2 class="section-title">Breaking Boundaries</h2> <p>The last 12 months have seen women's football shatter expectations and set new standards across the globe. From the record-breaking 92,000 fans who packed into Camp Nou for Barcelona's Champions League clash with Wolfsburg to the unprecedented $53 million broadcasting deal signed by England's Women's Super League, the momentum is undeniable. National federations have finally begun to match their rhetoric with financial backing, creating sustainable professional pathways for female athletes who were previously marginalized.</p> </section> <section class="stats-grid"> <div class="stat-card staggered-fade"> <div class="stat-number">91,648</div> <div class="stat-title">Record Attendance</div> </div> <div class="stat-card staggered-fade"> <div class="stat-number">$53M</div> <div class="stat-title">WSL TV Deal</div> </div> <div class="stat-card staggered-fade"> <div class="stat-number">32</div> <div class="stat-title">Teams in 2023 World Cup</div> </div> </section> <section class="interview fade-in"> <p class="interview-quote">"The investment we're seeing now isn't just about equality—it's recognition that women's football delivers a unique product with massive growth potential. The technical quality, accessibility of players, and authentic connection with fans creates a powerful combination that sponsors are finally realizing."</p> <p class="interview-attribution">Alex Morgan <span class="interview-position">- USWNT Forward & Orlando Pride Captain</span></p> </section> <section class="live-scores fade-in"> <h2 class="section-title">Live Scores</h2> <div class="score-card live"> <div class="live-indicator"><div class="live-dot"></div>LIVE</div> <div class="match-details"> <span class="team">Arsenal Women</span> <span class="score">2</span> <span class="separator">-</span> <span class="score">1</span> <span class="team">Chelsea Women</span> </div> <div class="match-time">72'</div> </div> <div class="score-card live"> <div class="live-indicator"><div class="live-dot"></div>LIVE</div> <div class="match-details"> <span class="team">Portland Thorns</span> <span class="score">0</span> <span class="separator">-</span> <span class="score">0</span> <span class="team">OL Reign</span> </div> <div class="match-time">34'</div> </div> <div class="score-card"> <div></div> <div class="match-details"> <span class="team">Lyon</span> <span class="score">3</span> <span class="separator">-</span> <span class="score">0</span> <span class="team">Juventus</span> </div> <div class="match-time">FT</div> </div> <div class="score-card"> <div></div> <div class="match-details"> <span class="team">Barcelona</span> <span class="separator">vs</span> <span class="team">Bayern Munich</span> </div> <div class="match-time">Tomorrow, 20:00</div> </div> </section> <section class="trending-topics fade-in"> <h2 class="section-title">Trending Topics</h2> <div class="topic">#WomensWorldCup</div> <div class="topic">#EqualPayNow</div> <div class="topic">#BalondOr</div> <div class="topic">#WSLweekend</div> <div class="topic">#ChampionsLeague</div> <div class="topic">#NextGenStars</div> </section> </div> <footer class="footer fade-in"> <div class="footer-logo">MOMENTUM</div> <div class="social-links"> <div class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z"/> </svg> </div> <div class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <path d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334 0-.14 0-.282-.006-.422A6.685 6.685 0 0 0 16 3.542a6.658 6.658 0 0 1-1.889.518 3.301 3.301 0 0 0 1.447-1.817 6.533 6.533 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.325 9.325 0 0 1-6.767-3.429 3.289 3.289 0 0 0 1.018 4.382A3.323 3.323 0 0 1 .64 6.575v.045a3.288 3.288 0 0 0 2.632 3.218 3.203 3.203 0 0 1-.865.115 3.23 3.23 0 0 1-.614-.057 3.283 3.283 0 0 0 3.067 2.277A6.588 6.588 0 0 1 .78 13.58a6.32 6.32 0 0 1-.78-.045A9.344 9.344 0 0 0 5.026 15z"/> </svg> </div> <div class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"> <path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.917 3.917 0 0 0-1.417.923A3.927 3.927 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.916 3.916 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.926 3.926 0 0 0-.923-1.417A3.911 3.911 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0h.003zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599.28.28.453.546.598.92.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.47 2.47 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.478 2.478 0 0 1-.92-.598 2.48 2.48 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233 0-2.136.008-2.388.046-3.231.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92.28-.28.546-.453.92-.598.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045v.002zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92zm-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217zm0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334z"/> </svg> </div> </div> <div class="copyright">© 2023 MOMENTUM Sports Magazine. All rights reserved.</div> </footer> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Staggered animation for stat cards const statCards = document.querySelectorAll('.staggered-fade'); statCards.forEach((card, index) => { setTimeout(() => { card.style.animation = 'fadeIn 0.8s forwards'; }, 200 * index); }); // Add hover effect to score cards const scoreCards = document.querySelectorAll('.score-card'); scoreCards.forEach(card => { card.addEventListener('mouseenter', function() { this.style.backgroundColor = '#f0f0f0'; }); card.addEventListener('mouseleave', function() { this.style.backgroundColor = 'var(--light)'; }); }); // Simulate live score updates setInterval(() => { const liveScores = document.querySelectorAll('.score-card.live'); liveScores.forEach(score => { const time = score.querySelector('.match-time'); if (time) { let currentMinute = parseInt(time.textContent); if (currentMinute < 90) { currentMinute++; time.textContent = currentMinute + "'"; } else { time.textContent = "FT"; score.classList.remove('live'); const liveIndicator = score.querySelector('.live-indicator'); if (liveIndicator) liveIndicator.remove(); } } // Randomly update scores (10% chance) if (Math.random() < 0.1) { const scores = score.querySelectorAll('.score'); const randomScore = Math.floor(Math.random() * scores.length); const currentScore = parseInt(scores[randomScore].textContent); scores[randomScore].textContent = (currentScore + 1).toString(); // Flash effect on score change scores[randomScore].style.color = 'var(--primary)'; scores[randomScore].style.fontWeight = '900'; setTimeout(() => { scores[randomScore].style.color = ''; scores[randomScore].style.fontWeight = '700'; }, 1000); } }); }, 5000); // Make diagonal split move on scroll const diagonalSplit = document.querySelector('.diagonal-split'); const container = document.querySelector('.container'); container.addEventListener('scroll', function() { const scrollTop = container.scrollTop; diagonalSplit.style.transform = `rotate(-15deg) translateY(${scrollTop * 0.2}px)`; }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>APEX Auto Magazine</title> <style> @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700;900&family=Playfair+Display:wght@700;900&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary: #ff3000; --black: #121212; --dark-gray: #333; --light-gray: #f2f2f2; --white: #ffffff; } body { font-family: 'Montserrat', sans-serif; background-color: var(--white); color: var(--black); line-height: 1.6; overflow-x: hidden; width: 100%; height: 100%; max-width: 700px; max-height: 700px; margin: 0 auto; } .magazine-wrapper { position: relative; width: 100%; height: 100vh; max-height: 700px; overflow-y: auto; overflow-x: hidden; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--primary) var(--light-gray); } .magazine-wrapper::-webkit-scrollbar { width: 6px; } .magazine-wrapper::-webkit-scrollbar-track { background: var(--light-gray); } .magazine-wrapper::-webkit-scrollbar-thumb { background-color: var(--primary); } header { position: sticky; top: 0; z-index: 10; background-color: var(--black); color: var(--white); padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 3px solid var(--primary); } .logo { font-family: 'Playfair Display', serif; font-weight: 900; font-size: 28px; color: var(--white); position: relative; letter-spacing: -1px; } .logo span { color: var(--primary); } .logo::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background-color: var(--primary); transition: width 0.3s ease; } .logo:hover::after { width: 100%; } nav ul { display: flex; list-style: none; gap: 20px; } nav a { color: var(--white); text-decoration: none; font-size: 14px; font-weight: 600; text-transform: uppercase; transition: color 0.3s ease; } nav a:hover { color: var(--primary); } .hero { position: relative; height: 400px; overflow: hidden; background: linear-gradient(rgba(18, 18, 18, 0.3), rgba(18, 18, 18, 0.5)); } .hero-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; transform: scale(1); transition: transform 1.5s ease; } .hero:hover .hero-image { transform: scale(1.05); } .hero-content { position: absolute; bottom: 40px; left: 0; width: 80%; padding: 20px; background: linear-gradient(90deg, rgba(18, 18, 18, 0.9) 60%, transparent); transform: translateX(-20px); opacity: 0; animation: slideIn 0.8s ease forwards 0.3s; } @keyframes slideIn { to { transform: translateX(0); opacity: 1; } } .hero-tag { display: inline-block; background-color: var(--primary); color: var(--white); font-size: 12px; font-weight: 700; padding: 4px 10px; margin-bottom: 8px; text-transform: uppercase; clip-path: polygon(0 0, 100% 0, 95% 100%, 0% 100%); } .hero-title { font-family: 'Playfair Display', serif; font-size: 36px; line-height: 1.1; margin-bottom: 10px; color: var(--white); max-width: 90%; } .hero-subtitle { font-size: 16px; color: var(--light-gray); margin-bottom: 15px; max-width: 80%; } .read-more { display: inline-flex; align-items: center; color: var(--white); font-weight: 600; font-size: 14px; text-decoration: none; text-transform: uppercase; position: relative; } .read-more::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background-color: var(--primary); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; } .read-more:hover::after { transform: scaleX(1); transform-origin: left; } .read-more svg { margin-left: 8px; transition: transform 0.3s ease; } .read-more:hover svg { transform: translateX(5px); } .section-title { font-family: 'Playfair Display', serif; font-size: 28px; margin: 30px 20px 20px; position: relative; display: inline-block; } .section-title::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 80px; height: 3px; background-color: var(--primary); } .car-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 0 20px; margin-bottom: 40px; } .car-card { position: relative; border-radius: 4px; overflow: hidden; box-shadow: 0 8px 20px rgba(0,0,0,0.1); background-color: var(--white); transition: transform 0.3s ease, box-shadow 0.3s ease; } .car-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.15); } .car-card-image { aspect-ratio: 16/9; width: 100%; object-fit: cover; transition: transform 0.6s ease; } .car-card:hover .car-card-image { transform: scale(1.08); } .car-card-overlay { position: absolute; bottom: 0; left: 0; width: 100%; padding: 15px; background: linear-gradient(transparent, rgba(18, 18, 18, 0.8)); color: var(--white); transition: height 0.3s ease; } .car-card:hover .car-card-overlay { height: 50%; } .car-card-title { font-family: 'Playfair Display', serif; font-size: 18px; font-weight: 700; margin-bottom: 5px; } .car-card-specs { display: flex; font-size: 12px; opacity: 0.8; gap: 10px; } .badge { position: absolute; top: 10px; right: 10px; background-color: var(--primary); color: var(--white); font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 2px; transform: rotate(3deg); } .review-section { padding: 40px 20px; background-color: var(--light-gray); margin-bottom: 30px; } .review-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .review-title { font-family: 'Playfair Display', serif; font-size: 24px; font-weight: 900; } .review-tabs { display: flex; gap: 15px; } .review-tab { padding: 8px 15px; background-color: var(--white); border: none; border-radius: 3px; font-weight: 600; font-size: 14px; cursor: pointer; transition: all 0.3s ease; } .review-tab.active { background-color: var(--primary); color: var(--white); } .review-content { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; } .review-image-container { position: relative; overflow: hidden; border-radius: 4px; } .review-image { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 0.6s ease; } .review-image-container:hover .review-image { transform: scale(1.05); } .review-details { display: flex; flex-direction: column; gap: 15px; } .review-score { font-size: 64px; font-weight: 900; color: var(--primary); line-height: 1; } .score-out-of { font-size: 16px; color: var(--dark-gray); } .review-text { font-size: 15px; margin-bottom: 15px; } .spec-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 15px; margin-top: 15px; font-size: 14px; } .spec-item { display: flex; align-items: center; gap: 5px; } .spec-label { font-weight: 300; color: var(--dark-gray); } .spec-value { font-weight: 600; } .curve-divider { position: relative; height: 50px; overflow: hidden; margin-top: -20px; } .curve-divider svg { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; } footer { background-color: var(--black); color: var(--white); padding: 30px 20px; text-align: center; } .footer-logo { font-family: 'Playfair Display', serif; font-weight: 900; font-size: 24px; margin-bottom: 15px; color: var(--white); } .footer-logo span { color: var(--primary); } .footer-text { font-size: 14px; max-width: 400px; margin: 0 auto; opacity: 0.7; } .progress-bar { position: fixed; top: 0; left: 0; height: 3px; background-color: var(--primary); width: 0%; z-index: 100; } .speedometer { position: fixed; bottom: 20px; right: 20px; width: 60px; height: 60px; background-color: var(--black); border-radius: 50%; display: flex; justify-content: center; align-items: center; box-shadow: 0 4px 20px rgba(0,0,0,0.2); z-index: 20; transition: transform 0.3s ease; cursor: pointer; } .speedometer:hover { transform: scale(1.1); } .speedometer-inner { width: 50px; height: 50px; border-radius: 50%; background: conic-gradient(var(--primary) 0%, var(--primary) 0%, var(--dark-gray) 0%); display: flex; justify-content: center; align-items: center; } .speedometer-center { width: 40px; height: 40px; border-radius: 50%; background-color: var(--black); display: flex; justify-content: center; align-items: center; color: var(--white); font-size: 12px; font-weight: 700; } @media (max-width: 600px) { .car-grid { grid-template-columns: 1fr; } .review-content { grid-template-columns: 1fr; } .hero-title { font-size: 28px; } nav ul { gap: 10px; } nav a { font-size: 12px; } .hero { height: 350px; } .logo { font-size: 24px; } } </style> </head> <body> <div class="progress-bar" id="progressBar"></div> <div class="magazine-wrapper" id="magazineWrapper"> <header> <div class="logo">APEX<span>.</span></div> <nav> <ul> <li><a href="#featured">Featured</a></li> <li><a href="#reviews">Reviews</a></li> <li><a href="#news">News</a></li> </ul> </nav> </header> <section class="hero" id="featured"> <img src="https://images.unsplash.com/photo-1595406769374-cdf2949539f1?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1920&q=80" alt="Aston Martin Valhalla" class="hero-image"> <div class="hero-content"> <div class="hero-tag">Exclusive First Drive</div> <h1 class="hero-title">Aston Martin Valhalla: A Hybrid Hypercar That Redefines Performance</h1> <p class="hero-subtitle">937HP, 0-60 in 2.5 seconds, and a powertrain that points to the electrified future of supercars</p> <a href="#" class="read-more"> Read the full review <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M13.5 4.5L21 12L13.5 19.5" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 12H21" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> </div> </section> <h2 class="section-title">New Arrivals</h2> <div class="car-grid"> <div class="car-card"> <div class="badge">Hot</div> <img src="https://images.unsplash.com/photo-1617814076668-4af362d3879e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Porsche Taycan" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">Porsche Taycan GTS</h3> <div class="car-card-specs"> <span>590HP</span> <span>3.5s 0-60</span> <span>Electric</span> </div> </div> </div> <div class="car-card"> <img src="https://images.unsplash.com/photo-1627487297929-5f0bcedcf947?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Lamborghini Huracán" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">Lamborghini Huracán STO</h3> <div class="car-card-specs"> <span>631HP</span> <span>3.0s 0-60</span> <span>V10</span> </div> </div> </div> <div class="car-card"> <img src="https://images.unsplash.com/photo-1629701061899-79a2b9848422?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="BMW M4" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">BMW M4 Competition</h3> <div class="car-card-specs"> <span>503HP</span> <span>3.8s 0-60</span> <span>Twin-Turbo</span> </div> </div> </div> <div class="car-card"> <div class="badge">New</div> <img src="https://images.unsplash.com/photo-1618843479313-40f8afb4b4d8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Audi RS e-tron GT" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">Audi RS e-tron GT</h3> <div class="car-card-specs"> <span>637HP</span> <span>3.1s 0-60</span> <span>Electric</span> </div> </div> </div> </div> <section class="review-section" id="reviews"> <div class="review-header"> <h2 class="review-title">In-Depth Review</h2> <div class="review-tabs"> <button class="review-tab active" data-tab="overview">Overview</button> <button class="review-tab" data-tab="performance">Performance</button> </div> </div> <div class="review-content"> <div class="review-image-container"> <img src="https://images.unsplash.com/photo-1657844531283-df0c2b2b64da?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Ferrari 296 GTB" class="review-image"> </div> <div class="review-details"> <div class="review-score">9.4 <span class="score-out-of">/10</span></div> <p class="review-text">The Ferrari 296 GTB represents a pivotal moment for Maranello, combining a new V6 architecture with hybrid technology that delivers blistering performance while showcasing Ferrari's electrified future. The powertrain is nothing short of revolutionary, with the most power-dense production V6 ever created.</p> <div class="spec-grid"> <div class="spec-item"> <span class="spec-label">Engine:</span> <span class="spec-value">3.0L Twin-Turbo V6 Hybrid</span> </div> <div class="spec-item"> <span class="spec-label">Power:</span> <span class="spec-value">819HP Combined</span> </div> <div class="spec-item"> <span class="spec-label">0-60 mph:</span> <span class="spec-value">2.9 seconds</span> </div> <div class="spec-item"> <span class="spec-label">Top Speed:</span> <span class="spec-value">205 mph</span> </div> </div> </div> </div> </section> <div class="curve-divider"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"> <path fill="#f2f2f2" fill-opacity="1" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,138.7C960,139,1056,117,1152,106.7C1248,96,1344,96,1392,96L1440,96L1440,0L1392,0C1344,0,1248,0,1152,0C1056,0,960,0,864,0C768,0,672,0,576,0C480,0,384,0,288,0C192,0,96,0,48,0L0,0Z"></path> </svg> </div> <h2 class="section-title" id="news">Industry News</h2> <div class="car-grid"> <div class="car-card"> <img src="https://images.unsplash.com/photo-1611016186353-9af58c69a533?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="EV charging" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">The Future of Fast Charging: 350kW Standard by 2025</h3> </div> </div> <div class="car-card"> <img src="https://images.unsplash.com/photo-1619551734325-81aaf323686c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Car manufacturing" class="car-card-image"> <div class="car-card-overlay"> <h3 class="car-card-title">Automakers Invest $250B in EV Manufacturing</h3> </div> </div> </div> <footer> <div class="footer-logo">APEX<span>.</span></div> <p class="footer-text">The ultimate destination for automotive enthusiasts. Premium reviews, in-depth analysis, and cutting-edge insights on the world's most exciting vehicles.</p> </footer> </div> <div class="speedometer" id="speedometer"> <div class="speedometer-inner" id="speedometerInner"> <div class="speedometer-center" id="speedometerCenter">0%</div> </div> </div> <script> document.addEventListener('DOMContentLoaded', () => { // Progress bar functionality const progressBar = document.getElementById('progressBar'); const magazineWrapper = document.getElementById('magazineWrapper'); const speedometer = document.getElementById('speedometer'); const speedometerInner = document.getElementById('speedometerInner'); const speedometerCenter = document.getElementById('speedometerCenter'); magazineWrapper.addEventListener('scroll', () => { const scrollTop = magazineWrapper.scrollTop; const scrollHeight = magazineWrapper.scrollHeight; const clientHeight = magazineWrapper.clientHeight; const scrollPercentage = (scrollTop / (scrollHeight - clientHeight)) * 100; progressBar.style.width = `${scrollPercentage}%`; // Update speedometer speedometerInner.style.background = `conic-gradient(var(--primary) 0%, var(--primary) ${scrollPercentage}%, var(--dark-gray) ${scrollPercentage}%)`; speedometerCenter.textContent = `${Math.round(scrollPercentage)}%`; }); // Jump to top when clicking speedometer speedometer.addEventListener('click', () => { magazineWrapper.scrollTo({ top: 0, behavior: 'smooth' }); }); // Review tabs functionality const reviewTabs = document.querySelectorAll('.review-tab'); const reviewText = document.querySelector('.review-text'); const reviewImage = document.querySelector('.review-image'); const tabContent = { overview: { text: "The Ferrari 296 GTB represents a pivotal moment for Maranello, combining a new V6 architecture with hybrid technology that delivers blistering performance while showcasing Ferrari's electrified future. The powertrain is nothing short of revolutionary, with the most power-dense production V6 ever created.", image: "https://images.unsplash.com/photo-1657844531283-df0c2b2b64da?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" }, performance: { text: "With 819HP on tap, the 296 GTB delivers face-melting acceleration that pins you to your seat. The electric motor fills in any turbo lag for perfectly linear power delivery throughout the rev range. Perhaps most impressive is the chassis control, which allows you to exploit all that power with confidence even at the limit.", image: "https://images.unsplash.com/photo-1614200179396-2bdb77ebf81b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" } }; reviewTabs.forEach(tab => { tab.addEventListener('click', () => { const tabName = tab.getAttribute('data-tab'); // Update active tab reviewTabs.forEach(t => t.classList.remove('active')); tab.classList.add('active'); // Update content with animation reviewText.style.opacity = 0; reviewImage.style.opacity = 0; setTimeout(() => { reviewText.textContent = tabContent[tabName].text; reviewImage.src = tabContent[tabName].image; reviewText.style.opacity = 1; reviewImage.style.opacity = 1; }, 300); }); }); // Navigation smooth scroll const navLinks = document.querySelectorAll('nav a'); navLinks.forEach(link => { link.addEventListener('click', (e) => { e.preventDefault(); const targetId = link.getAttribute('href'); const targetElement = document.querySelector(targetId); magazineWrapper.scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); }); }); // Card hover animation enhancement const cards = document.querySelectorAll('.car-card'); cards.forEach(card => { card.addEventListener('mouseenter', () => { const overlay = card.querySelector('.car-card-overlay'); overlay.style.height = '50%'; }); card.addEventListener('mouseleave', () => { const overlay = card.querySelector('.car-card-overlay'); overlay.style.height = ''; }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Quantum Frontiers Magazine</title> <style> /* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; } body { background-color: #f9f9fb; color: #202124; line-height: 1.6; overflow-x: hidden; width: 100%; height: 100%; max-width: 700px; max-height: 700px; } .magazine-container { max-width: 700px; max-height: 700px; height: 100vh; margin: 0 auto; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: #6e8cc3 #f9f9fb; position: relative; } .magazine-container::-webkit-scrollbar { width: 6px; } .magazine-container::-webkit-scrollbar-track { background: #f9f9fb; } .magazine-container::-webkit-scrollbar-thumb { background-color: #6e8cc3; border-radius: 20px; } /* Header Styles */ header { padding: 1.5rem 2rem; background-color: #fff; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); display: flex; justify-content: space-between; align-items: center; } .logo { font-size: 1.2rem; font-weight: 800; letter-spacing: -0.5px; color: #1a3d7c; position: relative; } .logo::after { content: ""; position: absolute; width: 7px; height: 7px; background-color: #ff6b6b; border-radius: 50%; bottom: 4px; right: -10px; } .nav-toggle { background: none; border: none; cursor: pointer; width: 30px; height: 22px; position: relative; } .nav-toggle span { display: block; position: absolute; width: 100%; height: 2px; background-color: #1a3d7c; transition: all 0.3s ease; } .nav-toggle span:nth-child(1) { top: 0; } .nav-toggle span:nth-child(2) { top: 10px; } .nav-toggle span:nth-child(3) { top: 20px; } .nav-toggle.active span:nth-child(1) { transform: rotate(45deg); top: 10px; } .nav-toggle.active span:nth-child(2) { opacity: 0; } .nav-toggle.active span:nth-child(3) { transform: rotate(-45deg); top: 10px; } /* Hero Section Styles */ .hero { background: linear-gradient(135deg, #1a3d7c, #6e8cc3); color: white; padding: 2rem; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; height: 300px; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><circle cx="50" cy="50" r="1.5" fill="white" opacity="0.2"/></svg>'); background-size: 30px 30px; opacity: 0.3; } .hero-content { position: relative; z-index: 5; } .edition { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 0.5rem; opacity: 0.8; } .hero h1 { font-size: 2.5rem; margin-bottom: 1rem; line-height: 1.2; font-weight: 800; } .hero p { font-size: 1rem; max-width: 500px; margin-bottom: 1.5rem; opacity: 0.9; } .hero-cta { background-color: white; color: #1a3d7c; padding: 0.6rem 1.2rem; border: none; border-radius: 4px; text-decoration: none; font-weight: 600; font-size: 0.9rem; display: inline-block; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; } .hero-cta:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); } /* Main Content Styles */ main { padding: 2rem; background-color: #fff; box-shadow: 0 0 20px rgba(0, 0, 0, 0.04); } .article-preview { margin-bottom: 3rem; } .article-title { font-size: 1.6rem; font-weight: 700; margin-bottom: 1rem; position: relative; padding-left: 1rem; line-height: 1.3; } .article-title::before { content: ""; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background-color: #1a3d7c; border-radius: 2px; } .article-meta { display: flex; align-items: center; margin-bottom: 1rem; font-size: 0.85rem; color: #666; } .author { font-weight: 600; margin-right: 1rem; } .publication-date::before { content: "•"; margin-right: 0.5rem; } .article-summary { margin-bottom: 1.5rem; font-size: 1rem; color: #333; } /* Interactive Infographic Styles */ .infographic { background-color: #f4f7fb; border-radius: 8px; padding: 1.5rem; margin-bottom: 2rem; position: relative; } .infographic-title { font-size: 1.1rem; font-weight: 700; margin-bottom: 1rem; color: #1a3d7c; } .quantum-visualization { height: 200px; position: relative; overflow: hidden; border-radius: 6px; background-color: #070b21; display: flex; justify-content: center; align-items: center; } .quantum-particles { position: absolute; width: 100%; height: 100%; } .particle { position: absolute; background-color: rgba(255, 255, 255, 0.7); border-radius: 50%; transform-origin: center; will-change: transform; } .infographic-caption { font-size: 0.85rem; margin-top: 1rem; color: #666; font-style: italic; } .controls { display: flex; justify-content: center; margin-top: 1rem; } .control-btn { background-color: #1a3d7c; color: white; border: none; padding: 0.5rem 1rem; margin: 0 0.5rem; border-radius: 4px; cursor: pointer; font-size: 0.85rem; transition: background-color 0.3s ease; } .control-btn:hover { background-color: #2c5aad; } /* Data Visualization */ .data-viz { margin: 2rem 0; } .chart-container { height: 220px; margin-top: 1rem; position: relative; display: flex; align-items: flex-end; justify-content: space-between; } .bar { width: 30px; background-color: #6e8cc3; border-radius: 4px 4px 0 0; position: relative; transition: height 0.8s cubic-bezier(0.19, 1, 0.22, 1); } .bar::after { content: attr(data-value); position: absolute; bottom: -25px; left: 50%; transform: translateX(-50%); font-size: 0.75rem; color: #555; } .x-axis, .y-axis { position: absolute; background-color: #ddd; } .x-axis { bottom: 0; left: 0; width: 100%; height: 1px; } .y-axis { top: 0; left: 0; width: 1px; height: 100%; } .y-labels { position: absolute; height: 100%; left: -25px; display: flex; flex-direction: column; justify-content: space-between; font-size: 0.7rem; color: #777; } .y-label { transform: translateY(50%); } /* Responsive Tables */ .data-table { width: 100%; border-collapse: collapse; margin: 2rem 0; font-size: 0.9rem; } .data-table thead { background-color: #1a3d7c; color: white; } .data-table th, .data-table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid #eee; } .data-table tbody tr:hover { background-color: #f4f7fb; } /* Navigation Menu */ .nav-menu { position: fixed; top: 0; right: -280px; width: 280px; height: 100%; background-color: #fff; z-index: 200; box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1); padding: 2rem; transition: right 0.4s cubic-bezier(0.19, 1, 0.22, 1); overflow-y: auto; } .nav-menu.active { right: 0; } .nav-menu-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .nav-close { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: #1a3d7c; } .nav-title { font-weight: 700; color: #1a3d7c; } .nav-links { list-style: none; } .nav-link { padding: 0.75rem 0; border-bottom: 1px solid #eee; display: block; color: #333; text-decoration: none; transition: color 0.3s ease; } .nav-link:hover { color: #1a3d7c; } .menu-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 150; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; } .menu-overlay.active { opacity: 1; visibility: visible; } /* Floating Reading Progress */ .reading-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background-color: #ff6b6b; z-index: 101; transition: width 0.1s ease; } /* Related Articles */ .related-articles { margin-top: 3rem; } .related-title { font-size: 1.2rem; margin-bottom: 1rem; font-weight: 700; color: #1a3d7c; } .related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; } .related-card { background-color: #f9f9fb; border-radius: 6px; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; } .related-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); } .related-img { height: 120px; background-color: #dde5f2; display: flex; align-items: center; justify-content: center; color: #1a3d7c; font-weight: 700; font-size: 2rem; } .related-content { padding: 1rem; } .related-card-title { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.5rem; line-height: 1.4; } .related-card-author { font-size: 0.75rem; color: #666; } /* Footer */ footer { background-color: #1a3d7c; color: white; padding: 2rem; font-size: 0.9rem; } .footer-content { display: flex; flex-direction: column; align-items: flex-start; } .footer-logo { font-size: 1.5rem; font-weight: 800; margin-bottom: 1.5rem; position: relative; } .footer-logo::after { content: ""; position: absolute; width: 8px; height: 8px; background-color: #ff6b6b; border-radius: 50%; bottom: 5px; right: -12px; } .footer-links { list-style: none; display: flex; margin-bottom: 1.5rem; } .footer-link { margin-right: 1.5rem; opacity: 0.8; transition: opacity 0.3s ease; } .footer-link:hover { opacity: 1; } .copyright { opacity: 0.6; margin-top: 1rem; } /* Responsive Styles */ @media screen and (max-width: 600px) { .hero { height: auto; padding: 2rem 1.5rem; } .hero h1 { font-size: 2rem; } main { padding: 1.5rem; } .related-grid { grid-template-columns: 1fr; } .footer-links { flex-direction: column; } .footer-link { margin-right: 0; margin-bottom: 0.5rem; } .article-title { font-size: 1.3rem; } .data-table { font-size: 0.8rem; } .data-table th, .data-table td { padding: 0.5rem; } .bar { width: 20px; } } /* Animation Keyframes */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } @keyframes pulse { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } </style> </head> <body> <div class="reading-progress"></div> <div class="magazine-container"> <header> <div class="logo">Quantum Frontiers</div> <button class="nav-toggle"> <span></span> <span></span> <span></span> </button> </header> <section class="hero"> <div class="hero-bg"></div> <div class="hero-content"> <div class="edition">June Issue • 2023</div> <h1>Quantum Computing: Breaking the Entanglement Barrier</h1> <p>New research reveals how quantum computing could tackle problems previously thought unsolvable, with implications across fields from medicine to climate science.</p> <button class="hero-cta">Explore This Issue</button> </div> </section> <main> <article class="article-preview"> <h2 class="article-title">Quantum Supremacy: Reality or Scientific Mirage?</h2> <div class="article-meta"> <span class="author">By Dr. Elena Kovalchuk</span> <span class="publication-date">Published June 12, 2023</span> </div> <p class="article-summary">Google's 2019 quantum supremacy claim sparked debate, but meaningful quantum advantage remains elusive. We examine recent breakthroughs and the challenges preventing practical quantum computing applications.</p> <div class="infographic"> <h3 class="infographic-title">Interactive: Quantum Entanglement Visualization</h3> <div class="quantum-visualization"> <div class="quantum-particles" id="particleContainer"></div> </div> <div class="controls"> <button class="control-btn" id="superposition">Superposition</button> <button class="control-btn" id="entanglement">Entanglement</button> <button class="control-btn" id="decoherence">Decoherence</button> </div> <p class="infographic-caption">Illustration of quantum particles demonstrating key quantum mechanical phenomena. Use the controls to toggle between states.</p> </div> <p>The quest for quantum computational advantage has accelerated dramatically in the past five years. While IBM, Google, and other tech giants compete for headlines, researchers are making steady progress on error correction, a critical challenge for practical quantum computing.</p> <div class="data-viz"> <h3 class="infographic-title">Qubit Coherence Time Improvements (2018-2023)</h3> <div class="chart-container"> <div class="y-axis"></div> <div class="x-axis"></div> <div class="y-labels"> <span class="y-label">200μs</span> <span class="y-label">150μs</span> <span class="y-label">100μs</span> <span class="y-label">50μs</span> <span class="y-label">0μs</span> </div> <div class="bar" data-value="2018" style="height: 40px;"></div> <div class="bar" data-value="2019" style="height: 60px;"></div> <div class="bar" data-value="2020" style="height: 85px;"></div> <div class="bar" data-value="2021" style="height: 120px;"></div> <div class="bar" data-value="2022" style="height: 160px;"></div> <div class="bar" data-value="2023" style="height: 190px;"></div> </div> </div> <p>Recent advances in superconducting qubits have enabled longer coherence times, allowing for more complex quantum operations before decoherence destroys the quantum information. However, scaling these systems while maintaining error rates below critical thresholds remains a significant challenge.</p> <table class="data-table"> <thead> <tr> <th>Quantum Platform</th> <th>Max Qubits</th> <th>Coherence Time</th> <th>Error Rate</th> </tr> </thead> <tbody> <tr> <td>Superconducting</td> <td>127</td> <td>~100μs</td> <td>0.5-1%</td> </tr> <tr> <td>Trapped Ion</td> <td>32</td> <td>~1s</td> <td>0.1-0.3%</td> </tr> <tr> <td>Photonic</td> <td>20</td> <td>N/A</td> <td>~5%</td> </tr> <tr> <td>Neutral Atom</td> <td>256</td> <td>~1ms</td> <td>1-2%</td> </tr> </tbody> </table> </article> <section class="related-articles"> <h3 class="related-title">Related Research</h3> <div class="related-grid"> <div class="related-card"> <div class="related-img">Q</div> <div class="related-content"> <h4 class="related-card-title">Quantum Error Correction Reaches New Milestone</h4> <p class="related-card-author">By Dr. James Chen</p> </div> </div> <div class="related-card"> <div class="related-img">A</div> <div class="related-content"> <h4 class="related-card-title">AI and Quantum Computing: A Powerful Convergence</h4> <p class="related-card-author">By Dr. Sophia Rodriguez</p> </div> </div> <div class="related-card"> <div class="related-img">P</div> <div class="related-content"> <h4 class="related-card-title">Post-Quantum Cryptography: Preparing for Tomorrow's Threats</h4> <p class="related-card-author">By Dr. Raj Patel</p> </div> </div> </div> </section> </main> <footer> <div class="footer-content"> <div class="footer-logo">Quantum Frontiers</div> <ul class="footer-links"> <li class="footer-link">About</li> <li class="footer-link">Archive</li> <li class="footer-link">Subscribe</li> <li class="footer-link">Contact</li> </ul> <p class="copyright">© 2023 Quantum Frontiers Science Magazine. All rights reserved.</p> </div> </footer> </div> <div class="nav-menu"> <div class="nav-menu-header"> <div class="nav-title">Menu</div> <button class="nav-close">×</button> </div> <ul class="nav-links"> <li><a href="#" class="nav-link">Home</a></li> <li><a href="#" class="nav-link">Current Issue</a></li> <li><a href="#" class="nav-link">Physics</a></li> <li><a href="#" class="nav-link">Biology</a></li> <li><a href="#" class="nav-link">Climate Science</a></li> <li><a href="#" class="nav-link">Technology</a></li> <li><a href="#" class="nav-link">Archive</a></li> <li><a href="#" class="nav-link">Subscribe</a></li> <li><a href="#" class="nav-link">About</a></li> </ul> </div> <div class="menu-overlay"></div> <script> // Navigation Menu Toggle const navToggle = document.querySelector('.nav-toggle'); const navMenu = document.querySelector('.nav-menu'); const navClose = document.querySelector('.nav-close'); const menuOverlay = document.querySelector('.menu-overlay'); navToggle.addEventListener('click', function() { navToggle.classList.toggle('active'); navMenu.classList.toggle('active'); menuOverlay.classList.toggle('active'); }); navClose.addEventListener('click', function() { navToggle.classList.remove('active'); navMenu.classList.remove('active'); menuOverlay.classList.remove('active'); }); menuOverlay.addEventListener('click', function() { navToggle.classList.remove('active'); navMenu.classList.remove('active'); menuOverlay.classList.remove('active'); }); // Reading Progress Indicator const progressBar = document.querySelector('.reading-progress'); const magazineContainer = document.querySelector('.magazine-container'); magazineContainer.addEventListener('scroll', function() { const windowHeight = magazineContainer.clientHeight; const fullHeight = magazineContainer.scrollHeight - windowHeight; const scrolled = magazineContainer.scrollTop / fullHeight * 100; progressBar.style.width = `${scrolled}%`; }); // Quantum Particle Animation const particleContainer = document.getElementById('particleContainer'); const superpositionBtn = document.getElementById('superposition'); const entanglementBtn = document.getElementById('entanglement'); const decoherenceBtn = document.getElementById('decoherence'); let particleState = 'default'; let particles = []; const particleCount = 10; function createParticles() { particleContainer.innerHTML = ''; particles = []; for (let i = 0; i < particleCount; i++) { const particle = document.createElement('div'); particle.classList.add('particle'); const size = Math.random() * 6 + 4; particle.style.width = `${size}px`; particle.style.height = `${size}px`; const x = Math.random() * 100; const y = Math.random() * 100; particle.style.left = `${x}%`; particle.style.top = `${y}%`; particleContainer.appendChild(particle); particles.push({ element: particle, x: x, y: y, size: size, speedX: (Math.random() - 0.5) * 0.2, speedY: (Math.random() - 0.5) * 0.2 }); } } function animateSuperposition() { particles.forEach(particle => { particle.element.style.animation = `pulse 2s infinite`; }); } function animateEntanglement() { const center = { x: 50, y: 50 }; const radius = 40; particles.forEach((particle, index) => { const angle = (index / particleCount) * Math.PI * 2; particle.x = center.x + Math.cos(angle) * radius; particle.y = center.y + Math.sin(angle) * radius; particle.element.style.left = `${particle.x}%`; particle.element.style.top = `${particle.y}%`; particle.element.style.animation = `rotate 4s linear infinite`; particle.element.style.backgroundColor = '#6e8cc3'; }); } function animateDecoherence() { particles.forEach(particle => { particle.element.style.animation = 'none'; particle.element.style.backgroundColor = 'rgba(255, 255, 255, 0.3)'; // Random scatter const newX = Math.random() * 150 - 25; // Some particles go off-screen const newY = Math.random() * 150 - 25; particle.element.style.transition = 'left 1s ease, top 1s ease, opacity 1s ease'; particle.element.style.left = `${newX}%`; particle.element.style.top = `${newY}%`; particle.element.style.opacity = '0.3'; }); } function resetParticles() { particles.forEach(particle => { particle.element.style.animation = 'none'; particle.element.style.transition = 'left 0.5s ease, top 0.5s ease, opacity 0.5s ease'; particle.element.style.backgroundColor = 'rgba(255, 255, 255, 0.7)'; particle.element.style.opacity = '1'; // Reset to original position particle.element.style.left = `${particle.x}%`; particle.element.style.top = `${particle.y}%`; }); } superpositionBtn.addEventListener('click', function() { resetParticles(); setTimeout(() => { animateSuperposition(); particleState = 'superposition'; }, 600); }); entanglementBtn.addEventListener('click', function() { resetParticles(); setTimeout(() => { animateEntanglement(); particleState = 'entanglement'; }, 600); }); decoherenceBtn.addEventListener('click', function() { resetParticles(); setTimeout(() => { animateDecoherence(); particleState = 'decoherence'; }, 600); }); // Initialize particles and animations createParticles(); // Simple animation loop for default state function animateDefault() { if (particleState === 'default') { particles.forEach(particle => { particle.x += particle.speedX; particle.y += particle.speedY; // Bounce off edges if (particle.x < 0 || particle.x > 100) { particle.speedX *= -1; } if (particle.y < 0 || particle.y > 100) { particle.speedY *= -1; } particle.element.style.left = `${particle.x}%`; particle.element.style.top = `${particle.y}%`; }); } requestAnimationFrame(animateDefault); } animateDefault(); // Initialize chart bars animation const bars = document.querySelectorAll('.bar'); setTimeout(() => { bars.forEach(bar => { bar.style.height = "0px"; setTimeout(() => { bar.style.height = bar.getAttribute('style').split(':')[1].trim(); }, 300); }); }, 1000); // Related article hover effect const relatedCards = document.querySelectorAll('.related-card'); relatedCards.forEach(card => { card.addEventListener('mouseenter', function() { this.style.transform = 'translateY(-5px)'; this.style.boxShadow = '0 10px 20px rgba(0, 0, 0, 0.1)'; }); card.addEventListener('mouseleave', function() { this.style.transform = 'translateY(0)'; this.style.boxShadow = 'none'; }); }); </script> </body> </html>