<!DOCTYPE html>
<html lang="en" class="scroll-smooth">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rae Helms - Printmaker</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Inter', sans-serif;
background-color: #FDFDFD;
color: #333333;
}
.font-serif {
font-family: 'Playfair Display', serif;
}
.gallery-item {
transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}
.gallery-item:hover {
transform: scale(1.03);
box-shadow: 0 10px 20px rgba(0,0,0,0.1), 0 6px 6px rgba(0,0,0,0.1);
}
.fade-in {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.fade-in.visible {
opacity: 1;
transform: translateY(0);
}
.modal {
transition: opacity 0.25s ease;
}
.modal-content {
transition: transform 0.25s ease;
}
</style>
</head>
<body class="antialiased">
<!-- Navigation -->
<nav class="bg-white/80 backdrop-blur-md sticky top-0 z-40 border-b border-gray-200">
<div class="container mx-auto px-6 py-4 flex justify-between items-center">
<a href="#" class="font-serif text-2xl font-bold tracking-wider">Rae Helms</a>
<div class="space-x-8">
<a href="#portfolio" class="text-gray-600 hover:text-black transition duration-300">Portfolio</a>
<a href="#about" class="text-gray-600 hover:text-black transition duration-300">About</a>
<a href="#contact" class="text-gray-600 hover:text-black transition duration-300">Contact</a>
</div>
</div>
</nav>
<!-- Hero Section -->
<header class="py-24 sm:py-32 lg:py-40 text-center fade-in">
<div class="container mx-auto px-6">
<h1 class="font-serif text-5xl md:text-7xl font-bold leading-tight">Art in Relief</h1>
<p class="mt-6 text-lg md:text-xl text-gray-600 max-w-2xl mx-auto">Exploring form, texture, and narrative through the timeless craft of printmaking.</p>
</div>
</header>
<!-- Portfolio Section -->
<main id="portfolio" class="container mx-auto px-6 py-16">
<div class="text-center mb-16 fade-in">
<h2 class="font-serif text-4xl font-bold">Portfolio</h2>
<div class="w-20 h-1 bg-gray-800 mx-auto mt-4"></div>
</div>
<!-- Masonry Grid -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Portfolio Items - Replace with your actual images and data -->
<div class="fade-in">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168694851-G1O5E4Z961WJ3GOU12P3/PXL_20200417_174006524.jpg?format=750w', 'Title of Work 1', 'Linocut, 2023')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168694851-G1O5E4Z961WJ3GOU12P3/PXL_20200417_174006524.jpg?format=750w" alt="Artwork 1" class="w-full h-auto object-cover">
</div>
</div>
<div class="fade-in" style="transition-delay: 100ms;">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168678077-1J22BSV2W21X9W8D2Q1E/PXL_20200417_174151121.jpg?format=750w', 'Title of Work 2', 'Woodblock, 2023')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168678077-1J22BSV2W21X9W8D2Q1E/PXL_20200417_174151121.jpg?format=750w" alt="Artwork 2" class="w-full h-auto object-cover">
</div>
</div>
<div class="fade-in" style="transition-delay: 200ms;">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168662955-O8N8YJ4JKW4H09LTA759/PXL_20200417_174223842.jpg?format=750w', 'Title of Work 3', 'Etching, 2022')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168662955-O8N8YJ4JKW4H09LTA759/PXL_20200417_174223842.jpg?format=750w" alt="Artwork 3" class="w-full h-auto object-cover">
</div>
</div>
<div class="fade-in" style="transition-delay: 300ms;">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168645648-92J03LEW2K2B3ORADG3A/PXL_20200417_174312419.jpg?format=750w', 'Title of Work 4', 'Linocut, 2022')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168645648-92J03LEW2K2B3ORADG3A/PXL_20200417_174312419.jpg?format=750w" alt="Artwork 4" class="w-full h-auto object-cover">
</div>
</div>
<div class="fade-in" style="transition-delay: 400ms;">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168629272-9I403WPT01E8L2Y05C6I/PXL_20200417_174332303.jpg?format=750w', 'Title of Work 5', 'Monoprint, 2021')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168629272-9I403WPT01E8L2Y05C6I/PXL_20200417_174332303.jpg?format=750w" alt="Artwork 5" class="w-full h-auto object-cover">
</div>
</div>
<div class="fade-in" style="transition-delay: 500ms;">
<div class="bg-white rounded-lg overflow-hidden shadow-lg gallery-item cursor-pointer" onclick="openModal('https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168611833-2591GSHK44917CM3L5YJ/PXL_20200417_174352102.jpg?format=750w', 'Title of Work 6', 'Woodblock, 2021')">
<img src="https://images.squarespace-cdn.com/content/v1/5e9a4135e59c8e411499543e/1587168611833-2591GSHK44917CM3L5YJ/PXL_20200417_174352102.jpg?format=750w" alt="Artwork 6" class="w-full h-auto object-cover">
</div>
</div>
</div>
</main>
<!-- About Section -->
<section id="about" class="bg-white py-24 sm:py-32">
<div class="container mx-auto px-6 grid md:grid-cols-5 gap-12 items-center">
<div class="md:col-span-2 fade-in">
<div class="w-full rounded-lg shadow-2xl overflow-hidden">
<img src="https://placehold.co/600x800/333333/FFFFFF?text=Rae+Helms" alt="Portrait of Rae Helms" class="w-full h-full object-cover">
</div>
</div>
<div class="md:col-span-3 fade-in" style="transition-delay: 200ms;">
<h2 class="font-serif text-4xl font-bold">About the Artist</h2>
<p class="mt-6 text-lg text-gray-600">My name is Rae Helms and I am a printmaker living and working in Philadelphia, PA. I received my BFA from the Maryland Institute College of Art in 2017.</p>
<p class="mt-4 text-lg text-gray-600">My work explores the intersections of nature, mythology, and personal history. I am drawn to the meditative, deliberate process of printmaking—the carving of the block, the layering of ink, the reveal of the final print. Each piece is a story told through lines and texture.</p>
<a href="#contact" class="mt-8 inline-block bg-gray-800 text-white font-bold py-3 px-8 rounded-lg hover:bg-black transition duration-300">Get In Touch</a>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="py-24 sm:py-32 text-center">
<div class="container mx-auto px-6 fade-in">
<h2 class="font-serif text-4xl font-bold">Contact</h2>
<p class="mt-6 text-lg md:text-xl text-gray-600 max-w-2xl mx-auto">For inquiries, commissions, or just to say hello, please feel free to reach out.</p>
<a href="mailto:raehelms.art@gmail.com" class="mt-8 inline-block text-2xl font-bold text-gray-800 hover:text-black transition duration-300 group">
raehelms.art@gmail.com
<span class="block max-w-0 group-hover:max-w-full transition-all duration-500 h-0.5 bg-black mx-auto"></span>
</a>
<div class="mt-12 flex justify-center space-x-6">
<a href="https://www.instagram.com/raehelms.art/" target="_blank" rel="noopener noreferrer" class="text-gray-500 hover:text-black transition duration-300">
<svg class="w-8 h-8" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.398 1.363.444 2.427.048 1.024.06 1.378.06 3.808s-.012 2.784-.06 3.808c-.046 1.064-.207 1.791-.444 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.398-2.427.444-1.024.048-1.378.06-3.808.06s-2.784-.012-3.808-.06c-1.064-.046-1.791-.207-2.427-.444a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.398-1.363-.444-2.427-.048-1.024-.06-1.378-.06-3.808s.012-2.784.06-3.808c.046-1.064.207-1.791.444-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 016.08 2.525c.636-.247 1.363-.398 2.427-.444C9.531 2.013 9.885 2 12.315 2zm0 1.623c-2.387 0-2.71.01-3.66.058a3.262 3.262 0 00-1.15.292 3.262 3.262 0 00-.915.627 3.262 3.262 0 00-.627.915 3.262 3.262 0 00-.292 1.15c-.048.95-.058 1.273-.058 3.66s.01 2.71.058 3.66c.036.86.183 1.39.292 1.15a3.262 3.262 0 00.627.915 3.262 3.262 0 00.915.627c.26.108.79.256 1.15.292.95.048 1.273.058 3.66.058s2.71-.01 3.66-.058c.86-.036 1.39-.183 1.15-.292a3.262 3.262 0 00.915-.627 3.262 3.262 0 00.627-.915c.108-.26.256-.79.292-1.15.048-.95.058-1.273.058-3.66s-.01-2.71-.058-3.66c-.036-.86-.183-1.39-.292-1.15a3.262 3.262 0 00-.627-.915 3.262 3.262 0 00-.915-.627c-.26-.108-.79-.256-1.15-.292C15.025 3.633 14.7 3.623 12.315 3.623zM12 8.118a3.882 3.882 0 100 7.764 3.882 3.882 0 000-7.764zm0 6.138a2.256 2.256 0 110-4.512 2.256 2.256 0 010 4.512zm4.965-7.163a.93.93 0 100 1.86.93.93 0 000-1.86z" clip-rule="evenodd" /></svg>
</a>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-white border-t border-gray-200">
<div class="container mx-auto px-6 py-6 text-center text-gray-500">
<p>© <span id="year"></span> Rae Helms. All Rights Reserved.</p>
</div>
</footer>
<!-- Modal -->
<div id="imageModal" class="modal fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-80 opacity-0 pointer-events-none" onclick="closeModal()">
<div class="modal-content bg-white rounded-lg shadow-2xl w-11/12 md:max-w-3xl lg:max-w-4xl max-h-[90vh] flex flex-col transform scale-95" onclick="event.stopPropagation()">
<img id="modalImage" src="" alt="Artwork Detail" class="w-full h-auto object-contain rounded-t-lg flex-shrink" style="max-height: 75vh;">
<div class="p-6 flex-grow">
<h3 id="modalTitle" class="text-2xl font-bold font-serif"></h3>
<p id="modalDescription" class="mt-2 text-gray-600"></p>
</div>
<button onclick="closeModal()" class="absolute -top-4 -right-4 bg-white text-black rounded-full w-10 h-10 flex items-center justify-center shadow-lg">×</button>
</div>
</div>
<script>
// Set current year in footer
document.getElementById('year').textContent = new Date().getFullYear();
// Fade-in animation on scroll
const faders = document.querySelectorAll('.fade-in');
const appearOptions = {
threshold: 0.2,
rootMargin: "0px 0px -50px 0px"
};
const appearOnScroll = new IntersectionObserver(function(entries, appearOnScroll) {
entries.forEach(entry => {
if (!entry.isIntersecting) {
return;
} else {
entry.target.classList.add('visible');
appearOnScroll.unobserve(entry.target);
}
});
}, appearOptions);
faders.forEach(fader => {
appearOnScroll.observe(fader);
});
// Modal logic
const modal = document.getElementById('imageModal');
const modalImage = document.getElementById('modalImage');
const modalTitle = document.getElementById('modalTitle');
const modalDescription = document.getElementById('modalDescription');
function openModal(imgSrc, title, description) {
modalImage.src = imgSrc;
modalTitle.textContent = title;
modalDescription.textContent = description;
modal.classList.remove('opacity-0', 'pointer-events-none');
document.body.style.overflow = 'hidden'; // Prevent background scrolling
setTimeout(() => {
modal.querySelector('.modal-content').classList.remove('scale-95');
}, 10);
}
function closeModal() {
modal.querySelector('.modal-content').classList.add('scale-95');
modal.classList.add('opacity-0');
setTimeout(() => {
modal.classList.add('pointer-events-none');
document.body.style.overflow = 'auto';
}, 250);
}
// Close modal on escape key
document.addEventListener('keydown', (event) => {
if (event.key === 'Escape') {
closeModal();
}
});
</script>
</body>
</html>