Add six new product pages with SEO optimization and a shop section

Introduces six new HTML product pages (e.g., rubiks-cube-mug-auf-victim.html) with individual SEO meta tags, Open Graph, Twitter cards, and structured data. Updates index.html to include a new 'Shop' section, adds robots.txt and sitemap.xml, and enhances homepage SEO with a canonical URL, organization schema, and an ItemList schema for products.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: f5797e65-2210-4d2e-bf70-278d8a0098c1
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: cb7f5886-1e99-485f-ba60-5e1aed72d023
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/2a2c58da-54a0-4c86-8ad0-3b93439f70de/f5797e65-2210-4d2e-bf70-278d8a0098c1/z77BLws
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
Replit Agent
2026-07-05 20:18:51 +00:00
parent 0bdc092a05
commit 0f60be4174
12 changed files with 1099 additions and 11 deletions

4
.gitignore vendored
View File

@@ -9,5 +9,9 @@
!/*.js
!/*.css
# Whitelist: SEO files
!/sitemap.xml
!/robots.txt
# Whitelist: images used by the site
!/images/

View File

@@ -4,9 +4,47 @@
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>JustGoodCubing</title>
<title>JustGoodCubing | Rubik's Cube Mugs, T-Shirts, Socks &amp; Cubing Gear</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="JustGoodCubing makes premium Rubik's Cube-inspired merch — mugs, t-shirts, socks, and magnets for speedcubers and puzzle lovers. Shop cubing gear designed by a cuber."/>
<link rel="canonical" href="https://justgoodcuber.com/"/>
<meta property="og:type" content="website"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="JustGoodCubing | Rubik's Cube Mugs, T-Shirts, Socks & Cubing Gear"/>
<meta property="og:description" content="Premium Rubik's Cube-inspired merch — mugs, t-shirts, socks, and magnets for speedcubers and puzzle lovers."/>
<meta property="og:url" content="https://justgoodcuber.com/"/>
<meta property="og:image" content="https://justgoodcuber.com/images/logo.png"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="JustGoodCubing | Rubik's Cube Mugs, T-Shirts, Socks & Cubing Gear"/>
<meta name="twitter:description" content="Premium Rubik's Cube-inspired merch — mugs, t-shirts, socks, and magnets for speedcubers and puzzle lovers."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/logo.png"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "JustGoodCubing",
"url": "https://justgoodcuber.com/",
"logo": "https://justgoodcuber.com/images/logo.png",
"sameAs": ["https://www.youtube.com/@JustGoodCuber"]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "JustGoodCubing Products",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "url": "https://justgoodcuber.com/rubiks-cube-mug-auf-victim.html", "name": "AUF VICTIM +2 Rubik's Cube Mug" },
{ "@type": "ListItem", "position": 2, "url": "https://justgoodcuber.com/rubiks-cube-mug-3-hours-later.html", "name": "3 Hours Later Rubik's Cube Mug" },
{ "@type": "ListItem", "position": 3, "url": "https://justgoodcuber.com/rubiks-cube-tshirt-dnf.html", "name": "DNF Rubik's Cube T-Shirt" },
{ "@type": "ListItem", "position": 4, "url": "https://justgoodcuber.com/rubiks-cube-tshirt-speedcuber.html", "name": "Speedcuber Rubik's Cube T-Shirt" },
{ "@type": "ListItem", "position": 5, "url": "https://justgoodcuber.com/rubiks-cube-socks.html", "name": "Rubik's Cube Socks" },
{ "@type": "ListItem", "position": 6, "url": "https://justgoodcuber.com/rubiks-cube-magnet.html", "name": "I Fell For U Rubik's Cube Magnet" }
]
}
</script>
</head>
<body>
@@ -15,6 +53,7 @@
<a href="#home" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="#home" data-section="home">Home</a></li>
<li><a href="#shop" data-section="shop">Shop</a></li>
<li><a href="#about" data-section="about">About</a></li>
<li><a href="#faq" data-section="faq">FAQ</a></li>
<li><a href="#contact" data-section="contact">Contact</a></li>
@@ -33,6 +72,7 @@
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="#home" class="mobile-nav-link">Home</a>
<a href="#shop" class="mobile-nav-link">Shop</a>
<a href="#about" class="mobile-nav-link">About</a>
<a href="#faq" class="mobile-nav-link">FAQ</a>
<a href="#contact" class="mobile-nav-link">Contact</a>
@@ -92,6 +132,65 @@
<div class="h-rule"></div>
<!-- ═══ SHOP ═══ -->
<section id="shop">
<div class="section-label reveal">The Collection</div>
<h2 class="section-title reveal">Rubik's Cube<br/>Merch.</h2>
<div class="shop-grid reveal">
<a href="rubiks-cube-mug-auf-victim.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-11oz-15oz.jpg" alt="AUF VICTIM +2 Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">AUF VICTIM +2 Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-mug-3-hours-later.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-2-11oz-15oz.jpg" alt="3 Hours Later Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">3 Hours Later Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-dnf.html" class="product-card">
<div class="product-card-img"><img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">DNF T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-speedcuber.html" class="product-card">
<div class="product-card-img"><img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">Speedcuber T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ ABOUT ═══ -->
<section id="about">
<div class="section-label reveal">The Story</div>

View File

@@ -14,7 +14,7 @@ document.querySelectorAll('.reveal').forEach(function (el) { observer.observe(el
const secObs = new IntersectionObserver(function (entries) {
entries.forEach(function (e) { if (e.isIntersecting) { const id = e.target.id; document.querySelectorAll('.nav-links a[data-section]').forEach(function (a) { a.classList.toggle('active', a.dataset.section === id); }); } });
}, { rootMargin: '-40% 0px -55% 0px' });
['home', 'about', 'faq', 'contact'].forEach(function (id) { const el = document.getElementById(id); if (el) secObs.observe(el); });
['home', 'shop', 'about', 'faq', 'contact'].forEach(function (id) { const el = document.getElementById(id); if (el) secObs.observe(el); });
// FAQ card accordion
document.querySelectorAll('.faq-card-q').forEach(function (btn) {
@@ -27,14 +27,20 @@ document.querySelectorAll('.faq-card-q').forEach(function (btn) {
});
// Contact form
document.getElementById('contactForm').addEventListener('submit', function (e) {
e.preventDefault();
const btn = this.querySelector('.form-submit');
btn.textContent = 'Message Sent ✓'; btn.style.background = 'var(--green)'; btn.style.borderColor = 'var(--green)'; btn.style.color = '#000';
setTimeout(function () { btn.textContent = 'Send It ↗'; btn.style.background = btn.style.borderColor = btn.style.color = ''; }, 3000);
});
const contactForm = document.getElementById('contactForm');
if (contactForm) {
contactForm.addEventListener('submit', function (e) {
e.preventDefault();
const btn = this.querySelector('.form-submit');
btn.textContent = 'Message Sent ✓'; btn.style.background = 'var(--green)'; btn.style.borderColor = 'var(--green)'; btn.style.color = '#000';
setTimeout(function () { btn.textContent = 'Send It ↗'; btn.style.background = btn.style.borderColor = btn.style.color = ''; }, 3000);
});
}
// 3D cube float
const cube = document.getElementById('cube3d'); let t = 0;
function floatCube() { t += 0.012; cube.style.marginTop = (Math.sin(t) * 12) + 'px'; requestAnimationFrame(floatCube); }
floatCube();
const cube = document.getElementById('cube3d');
if (cube) {
let t = 0;
function floatCube() { t += 0.012; cube.style.marginTop = (Math.sin(t) * 12) + 'px'; requestAnimationFrame(floatCube); }
floatCube();
}

4
robots.txt Normal file
View File

@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://justgoodcuber.com/sitemap.xml

148
rubiks-cube-magnet.html Normal file
View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>I Fell For U Rubik's Cube Magnet | Cute Cubing Gift JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="The 'I Fell For U' Rubik's Cube magnet — a cute, colorful cubing-themed gift for puzzle lovers and speedcubers alike. Made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-magnet.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="I Fell For U Rubik's Cube Magnet | Cute Cubing Gift"/>
<meta property="og:description" content="A cute, colorful Rubik's Cube-themed magnet gift for puzzle lovers and speedcubers alike."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-magnet.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/magnets.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="I Fell For U Rubik's Cube Magnet"/>
<meta name="twitter:description" content="A cute, colorful Rubik's Cube-themed magnet gift for puzzle lovers and speedcubers alike."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/magnets.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "I Fell For U Rubik's Cube Magnet", "item": "https://justgoodcuber.com/rubiks-cube-magnet.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "I Fell For U Rubik's Cube Magnet",
"image": "https://justgoodcuber.com/images/magnets.jpg",
"description": "A cute, colorful Rubik's Cube-themed magnet gift for puzzle lovers and speedcubers alike.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube Magnet"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / I Fell For U Magnet</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet with colorful cube sticker design" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube Magnet</div>
<h1 class="product-title">I Fell For U Rubik's Cube Magnet</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-mug-3-hours-later.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-2-11oz-15oz.jpg" alt="3 Hours Later Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">3 Hours Later Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-dnf.html" class="product-card">
<div class="product-card-img"><img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">DNF T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-speedcuber.html" class="product-card">
<div class="product-card-img"><img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">Speedcuber T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>3 Hours Later Rubik's Cube Mug | Funny Cubing Meme Coffee Mug JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="The '3 Hours Later' Rubik's Cube mug — a hilarious cubing meme mug for anyone who's ever lost hours (and cubes) to a solve. Ceramic, 11oz/15oz, made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-mug-3-hours-later.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="3 Hours Later Rubik's Cube Mug | Funny Cubing Meme Coffee Mug"/>
<meta property="og:description" content="A hilarious cubing meme mug for anyone who's ever lost hours (and cubes) to a solve."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-mug-3-hours-later.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/ceramic-mug-2-11oz-15oz.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="3 Hours Later Rubik's Cube Mug"/>
<meta name="twitter:description" content="A hilarious cubing meme mug for anyone who's ever lost hours (and cubes) to a solve."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/ceramic-mug-2-11oz-15oz.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "3 Hours Later Rubik's Cube Mug", "item": "https://justgoodcuber.com/rubiks-cube-mug-3-hours-later.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "3 Hours Later Rubik's Cube Mug",
"image": "https://justgoodcuber.com/images/ceramic-mug-2-11oz-15oz.jpg",
"description": "A hilarious cubing meme ceramic mug for anyone who's ever lost hours (and cubes) to a solve.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube Mug"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / 3 Hours Later Mug</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/ceramic-mug-2-11oz-15oz.jpg" alt="3 Hours Later Rubik's Cube mug funny cubing meme coffee mug" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube Mug</div>
<h1 class="product-title">3 Hours Later Rubik's Cube Mug</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-mug-auf-victim.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-11oz-15oz.jpg" alt="AUF VICTIM +2 Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">AUF VICTIM +2 Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-speedcuber.html" class="product-card">
<div class="product-card-img"><img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">Speedcuber T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>AUF VICTIM +2 Rubik's Cube Mug | Funny Speedcuber Coffee Mug JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="Shop the AUF VICTIM +2 Rubik's Cube mug — a funny speedcubing-inspired coffee mug for cubers who know the pain of a +2 penalty. Ceramic, 11oz/15oz, made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-mug-auf-victim.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="AUF VICTIM +2 Rubik's Cube Mug | Funny Speedcuber Coffee Mug"/>
<meta property="og:description" content="A funny speedcubing-inspired coffee mug for cubers who know the pain of a +2 penalty. Ceramic, 11oz/15oz, made to order."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-mug-auf-victim.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/ceramic-mug-11oz-15oz.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="AUF VICTIM +2 Rubik's Cube Mug"/>
<meta name="twitter:description" content="A funny speedcubing-inspired coffee mug for cubers who know the pain of a +2 penalty."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/ceramic-mug-11oz-15oz.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "AUF VICTIM +2 Rubik's Cube Mug", "item": "https://justgoodcuber.com/rubiks-cube-mug-auf-victim.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "AUF VICTIM +2 Rubik's Cube Mug",
"image": "https://justgoodcuber.com/images/ceramic-mug-11oz-15oz.jpg",
"description": "A funny speedcubing-inspired ceramic coffee mug for cubers who know the pain of a +2 penalty.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube Mug"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / AUF VICTIM +2 Mug</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/ceramic-mug-11oz-15oz.jpg" alt="AUF VICTIM +2 Rubik's Cube mug funny speedcubing coffee mug" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube Mug</div>
<h1 class="product-title">AUF VICTIM +2 Rubik's Cube Mug</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-mug-3-hours-later.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-2-11oz-15oz.jpg" alt="3 Hours Later Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">3 Hours Later Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-dnf.html" class="product-card">
<div class="product-card-img"><img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">DNF T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

148
rubiks-cube-socks.html Normal file
View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Rubik's Cube Socks | Cubing-Inspired Crew Socks JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="Step up your cubing style with our Rubik's Cube socks — vibrant, all-over sublimation print crew socks made for cubers and puzzle fans. Made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-socks.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="Rubik's Cube Socks | Cubing-Inspired Crew Socks"/>
<meta property="og:description" content="Vibrant, all-over sublimation print Rubik's Cube socks made for cubers and puzzle fans."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-socks.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/sublimation-socks.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Rubik's Cube Socks"/>
<meta name="twitter:description" content="Vibrant, all-over sublimation print Rubik's Cube socks made for cubers and puzzle fans."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/sublimation-socks.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "Rubik's Cube Socks", "item": "https://justgoodcuber.com/rubiks-cube-socks.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Rubik's Cube Socks",
"image": "https://justgoodcuber.com/images/sublimation-socks.jpg",
"description": "Vibrant, all-over sublimation print Rubik's Cube-inspired crew socks made for cubers and puzzle fans.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube Socks"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / Rubik's Cube Socks</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks with colorful cube sublimation print" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube Socks</div>
<h1 class="product-title">Rubik's Cube Socks</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-mug-auf-victim.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-11oz-15oz.jpg" alt="AUF VICTIM +2 Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">AUF VICTIM +2 Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-dnf.html" class="product-card">
<div class="product-card-img"><img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">DNF T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-tshirt-speedcuber.html" class="product-card">
<div class="product-card-img"><img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">Speedcuber T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

148
rubiks-cube-tshirt-dnf.html Normal file
View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>DNF Rubik's Cube T-Shirt | Funny Speedcubing Shirt JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="The DNF (Did Not Finish) Rubik's Cube t-shirt — a relaxed, funny design for speedcubers who know the vibes matter more than the time. Soft cotton tee, made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-tshirt-dnf.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="DNF Rubik's Cube T-Shirt | Funny Speedcubing Shirt"/>
<meta property="og:description" content="A relaxed, funny Rubik's Cube design for speedcubers who know the vibes matter more than the time."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-tshirt-dnf.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="DNF Rubik's Cube T-Shirt"/>
<meta name="twitter:description" content="A relaxed, funny Rubik's Cube design for speedcubers who know the vibes matter more than the time."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "DNF Rubik's Cube T-Shirt", "item": "https://justgoodcuber.com/rubiks-cube-tshirt-dnf.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "DNF Rubik's Cube T-Shirt",
"image": "https://justgoodcuber.com/images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg",
"description": "A relaxed, funny Rubik's Cube-inspired t-shirt for speedcubers who know the vibes matter more than the time.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube T-Shirt"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / DNF T-Shirt</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Did Not Finish Rubik's Cube t-shirt with relaxing cube design" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube T-Shirt</div>
<h1 class="product-title">DNF Rubik's Cube T-Shirt</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-tshirt-speedcuber.html" class="product-card">
<div class="product-card-img"><img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">Speedcuber T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-mug-auf-victim.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-11oz-15oz.jpg" alt="AUF VICTIM +2 Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">AUF VICTIM +2 Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

View File

@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Speedcuber Rubik's Cube T-Shirt | Speedcubing Puzzle Shirt JustGoodCubing</title>
<link rel="icon" type="image/png" href="images/logo.png"/>
<meta name="description" content="Show off your speedcubing pride with the Speedcuber Rubik's Cube t-shirt — a bold puzzle cube graphic tee for cubers and puzzle enthusiasts. Made to order."/>
<link rel="canonical" href="https://justgoodcuber.com/rubiks-cube-tshirt-speedcuber.html"/>
<meta property="og:type" content="product"/>
<meta property="og:site_name" content="JustGoodCubing"/>
<meta property="og:title" content="Speedcuber Rubik's Cube T-Shirt | Speedcubing Puzzle Shirt"/>
<meta property="og:description" content="A bold Rubik's Cube graphic tee for cubers and puzzle enthusiasts."/>
<meta property="og:url" content="https://justgoodcuber.com/rubiks-cube-tshirt-speedcuber.html"/>
<meta property="og:image" content="https://justgoodcuber.com/images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Speedcuber Rubik's Cube T-Shirt"/>
<meta name="twitter:description" content="A bold Rubik's Cube graphic tee for cubers and puzzle enthusiasts."/>
<meta name="twitter:image" content="https://justgoodcuber.com/images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg"/>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700;900&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet"/>
<link rel="stylesheet" href="styles.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://justgoodcuber.com/" },
{ "@type": "ListItem", "position": 2, "name": "Shop", "item": "https://justgoodcuber.com/#shop" },
{ "@type": "ListItem", "position": 3, "name": "Speedcuber Rubik's Cube T-Shirt", "item": "https://justgoodcuber.com/rubiks-cube-tshirt-speedcuber.html" }
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Speedcuber Rubik's Cube T-Shirt",
"image": "https://justgoodcuber.com/images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg",
"description": "A bold Rubik's Cube-inspired graphic tee for cubers and puzzle enthusiasts.",
"brand": { "@type": "Brand", "name": "JustGoodCubing" },
"category": "Rubik's Cube T-Shirt"
}
</script>
</head>
<body>
<!-- NAV -->
<nav>
<a href="index.html" class="logo"><img src="images/logo.png" alt="JustGoodCubing"/></a>
<ul class="nav-links">
<li><a href="index.html#home">Home</a></li>
<li><a href="index.html#shop">Shop</a></li>
<li><a href="index.html#about">About</a></li>
<li><a href="index.html#faq">FAQ</a></li>
<li><a href="index.html#contact">Contact</a></li>
</ul>
<div class="nav-right">
<a href="https://www.youtube.com/@JustGoodCuber" target="_blank" rel="noopener" class="nav-yt-link" aria-label="YouTube">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="nav-store-btn">Store ↗</a>
<button class="hamburger" id="hamburger" aria-label="Open menu">
<span></span><span></span><span></span>
</button>
</div>
</nav>
<!-- MOBILE MENU -->
<div class="mobile-menu" id="mobileMenu">
<a href="index.html#home" class="mobile-nav-link">Home</a>
<a href="index.html#shop" class="mobile-nav-link">Shop</a>
<a href="index.html#about" class="mobile-nav-link">About</a>
<a href="index.html#faq" class="mobile-nav-link">FAQ</a>
<a href="index.html#contact" class="mobile-nav-link">Contact</a>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="store-link mobile-nav-link">Store ↗</a>
</div>
<!-- ═══ PRODUCT ═══ -->
<section id="product">
<div class="breadcrumb reveal"><a href="index.html">Home</a> / <a href="index.html#shop">Shop</a> / Speedcuber T-Shirt</div>
<div class="product-grid reveal">
<div class="product-image-wrap">
<img src="images/speedcuber-rubik-cube-t-shirt-speedcubing-puzzle-shirt.jpg" alt="Speedcuber Rubik's Cube t-shirt with colorful puzzle cube graphic" loading="lazy"/>
</div>
<div class="product-info">
<div class="section-label">Rubik's Cube T-Shirt</div>
<h1 class="product-title">Speedcuber Rubik's Cube T-Shirt</h1>
<div class="product-price" id="productPrice"></div>
<div class="product-description" id="productDescription"></div>
<a href="https://shop.justgoodcuber.com/products" target="_blank" rel="noopener" class="btn-primary">Buy on the Store ↗</a>
</div>
</div>
</section>
<div class="h-rule"></div>
<!-- ═══ RELATED ═══ -->
<section id="related">
<div class="section-label reveal">You Might Also Like</div>
<h2 class="section-title reveal">More Cubing<br/>Gear.</h2>
<div class="related-grid reveal">
<a href="rubiks-cube-tshirt-dnf.html" class="product-card">
<div class="product-card-img"><img src="images/dnf-rubik-relaxing-cube-shirt-t-shirt.jpg" alt="DNF Rubik's Cube t-shirt" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube T-Shirt</span>
<span class="product-card-name">DNF T-Shirt</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-mug-3-hours-later.html" class="product-card">
<div class="product-card-img"><img src="images/ceramic-mug-2-11oz-15oz.jpg" alt="3 Hours Later Rubik's Cube mug" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Mug</span>
<span class="product-card-name">3 Hours Later Mug</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-socks.html" class="product-card">
<div class="product-card-img"><img src="images/sublimation-socks.jpg" alt="Rubik's Cube socks" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Socks</span>
<span class="product-card-name">Rubik's Cube Socks</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
<a href="rubiks-cube-magnet.html" class="product-card">
<div class="product-card-img"><img src="images/magnets.jpg" alt="I Fell For U Rubik's Cube magnet" loading="lazy"/></div>
<div class="product-card-body">
<span class="product-card-cat">Rubik's Cube Magnet</span>
<span class="product-card-name">I Fell For U Magnet</span>
<span class="product-card-link">View Product →</span>
</div>
</a>
</div>
</section>
<div class="h-rule"></div>
<!-- FOOTER -->
<footer>
<div class="footer-logo"><img src="images/logo.png" alt="JustGoodCubing"/></div>
<div class="footer-copy">© 2026 JustGoodCubing. All rights reserved.</div>
</footer>
<script src="index.js" defer></script>
</body>
</html>

38
sitemap.xml Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://justgoodcuber.com/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-mug-auf-victim.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-mug-3-hours-later.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-tshirt-dnf.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-tshirt-speedcuber.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-socks.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://justgoodcuber.com/rubiks-cube-magnet.html</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

View File

@@ -176,6 +176,55 @@ section {
.cube-face.bottom { transform:rotateX(-90deg) translateZ(clamp(75px,10vw,120px)); }
.cubie { border:1px solid rgba(0,0,0,0.3); }
/* ── SHOP GRID (home + related products) ── */
#shop { background: var(--bg); }
.shop-grid, .related-grid {
display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:1.4rem;
}
.product-card {
display:flex; flex-direction:column; background:var(--surface);
border:1px solid var(--border); text-decoration:none; color:inherit;
transition:transform 0.2s, border-color 0.2s;
}
.product-card:hover { transform:translateY(-4px); border-color:var(--border-heavy); }
.product-card-img { width:100%; aspect-ratio:1/1; overflow:hidden; background:#fff; border-bottom:1px solid var(--border); }
.product-card-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.3s; }
.product-card:hover .product-card-img img { transform:scale(1.04); }
.product-card-body { padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:0.3rem; }
.product-card-cat { font-family:'Space Mono',monospace; font-size:0.65rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--orange); }
.product-card-name { font-size:1rem; font-weight:700; color:var(--white); line-height:1.3; }
.product-card-link { font-family:'Space Mono',monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); margin-top:0.4rem; }
/* ── PRODUCT PAGE ── */
.breadcrumb {
font-family:'Space Mono',monospace; font-size:0.72rem; letter-spacing:0.04em;
color:var(--muted); margin-bottom:2.4rem; text-transform:uppercase;
}
.breadcrumb a { color:var(--muted); text-decoration:none; }
.breadcrumb a:hover { color:var(--orange); }
.product-grid {
display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start;
}
@media(max-width:820px){ .product-grid { grid-template-columns:1fr; gap:2rem; } }
.product-image-wrap {
background:#fff; border:1px solid var(--border); overflow:hidden;
}
.product-image-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
.product-info { display:flex; flex-direction:column; }
.product-title {
font-size:clamp(1.8rem,3.6vw,2.6rem); font-weight:900; letter-spacing:-0.02em;
line-height:1.1; margin:0.6rem 0 1rem; color:var(--white);
}
.product-price {
font-family:'Space Mono',monospace; font-size:1.1rem; font-weight:700;
color:var(--white); min-height:1.6rem; margin-bottom:1.2rem;
}
.product-description {
font-size:1rem; line-height:1.75; color:rgba(26,24,21,0.68);
min-height:2rem; margin-bottom:2rem;
}
.product-info .btn-primary { align-self:flex-start; }
/* ── ABOUT ── */
.about-bio-grid {
display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;