website/index.html

749 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Fat Dragon — Ashbourne, Co. Meath</title>
<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=Cinzel+Decorative:wght@400;700&family=Orbitron:wght@400;600;900&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #09090f;
--bg-2: #10121e;
--bg-card: #16192b;
--border: #22253d;
--gold: #d4a017;
--gold-lt: #f0c030;
--gold-dk: #9a7510;
--crimson: #b03020;
--purple: #6d28d9;
--text: #ede9e4;
--muted: #7a7f99;
--font-logo: 'Cinzel Decorative', serif;
--font-hud: 'Orbitron', monospace;
--font-body: 'Inter', system-ui, sans-serif;
}
html { scroll-behavior: smooth; }
body {
background: var(--bg);
color: var(--text);
font-family: var(--font-body);
line-height: 1.65;
overflow-x: hidden;
}
/* ── NAV ─────────────────────────────────────────── */
nav {
position: sticky; top: 0; z-index: 200;
display: flex; align-items: center; justify-content: space-between;
padding: 0.9rem 2.5rem;
background: rgba(9, 9, 15, 0.82);
backdrop-filter: blur(14px);
border-bottom: 1px solid var(--border);
}
.nav-logo {
text-decoration: none;
font-family: var(--font-logo);
font-size: 1rem;
color: var(--gold);
letter-spacing: 0.04em;
display: flex; align-items: center; gap: 0.55rem;
white-space: nowrap;
}
.nav-links {
display: flex; align-items: center; gap: 2.25rem;
list-style: none;
}
.nav-links a {
text-decoration: none;
color: var(--text);
font-size: 0.8rem; font-weight: 500;
letter-spacing: 0.1em; text-transform: uppercase;
transition: color 0.18s;
}
.nav-links a:hover { color: var(--gold); }
.nav-right {
display: flex; align-items: center; gap: 1.5rem;
}
.nav-find {
color: var(--muted); font-size: 0.82rem;
text-decoration: none; transition: color 0.18s;
}
.nav-find:hover { color: var(--gold); }
.btn-book {
background: var(--gold); color: #000;
padding: 0.45rem 1.2rem;
border-radius: 3px; border: none;
font-family: var(--font-body);
font-size: 0.78rem; font-weight: 700;
letter-spacing: 0.1em; text-transform: uppercase;
text-decoration: none; cursor: pointer;
transition: background 0.18s, transform 0.1s;
}
.btn-book:hover { background: var(--gold-lt); transform: translateY(-1px); }
/* ── HERO ────────────────────────────────────────── */
#hero {
position: relative;
min-height: 100vh;
display: flex; align-items: center; justify-content: center; text-align: center;
padding: 7rem 1.5rem 5rem;
overflow: hidden;
}
.hero-bg {
position: absolute; inset: 0; z-index: 0;
background:
radial-gradient(ellipse 70% 55% at 50% 105%, rgba(109,40,217,.18) 0%, transparent 70%),
radial-gradient(ellipse 50% 40% at 15% 60%, rgba(176,48,32,.12) 0%, transparent 65%),
radial-gradient(ellipse 50% 40% at 85% 60%, rgba(212,160,23,.08) 0%, transparent 65%),
linear-gradient(180deg, #09090f 0%, #0d0f1e 55%, #09090f 100%);
}
.hero-bg::after {
content: '';
position: absolute; inset: 0;
background-image:
radial-gradient(circle, rgba(212,160,23,.55) 1px, transparent 1px),
radial-gradient(circle, rgba(212,160,23,.25) 1px, transparent 1px);
background-size: 52px 52px, 88px 88px;
background-position: 0 0, 26px 26px;
opacity: 0.12;
animation: drift 30s linear infinite;
}
@keyframes drift { to { transform: translateY(-80px); } }
.hero-body {
position: relative; z-index: 1;
max-width: 820px;
}
.hero-badge {
display: inline-block;
background: rgba(212,160,23,.12);
border: 1px solid rgba(212,160,23,.38);
color: var(--gold);
font-size: 0.68rem; font-weight: 700; letter-spacing: 0.25em; text-transform: uppercase;
padding: 0.35rem 1rem; border-radius: 2px;
margin-bottom: 1.6rem;
}
.hero-icon {
font-size: 4.5rem; line-height: 1; display: block;
margin-bottom: 0.9rem;
filter: drop-shadow(0 0 24px rgba(212,160,23,.5));
animation: glow 3.2s ease-in-out infinite;
}
@keyframes glow {
0%,100% { filter: drop-shadow(0 0 18px rgba(212,160,23,.42)); }
50% { filter: drop-shadow(0 0 42px rgba(212,160,23,.85)) drop-shadow(0 0 60px rgba(176,48,32,.3)); }
}
.hero-title {
font-family: var(--font-logo);
font-size: clamp(2.4rem, 7vw, 4.8rem);
color: var(--gold);
letter-spacing: 0.04em;
text-shadow: 0 0 44px rgba(212,160,23,.35);
margin-bottom: 0.4rem;
}
.hero-place {
font-family: var(--font-hud);
font-size: clamp(0.7rem, 1.8vw, 1rem);
color: var(--muted);
letter-spacing: 0.4em; text-transform: uppercase;
margin-bottom: 1.6rem;
}
.hero-copy {
font-size: 1.05rem; color: var(--text);
max-width: 520px; margin: 0 auto 1rem;
line-height: 1.75;
}
.hero-open {
display: inline-block;
background: rgba(109,40,217,.18);
border: 1px solid rgba(109,40,217,.38);
color: #b8a0f8;
font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
padding: 0.38rem 1rem; border-radius: 2px;
margin-bottom: 2.8rem;
}
.hero-ctas {
display: flex; flex-wrap: wrap; gap: 0.9rem; justify-content: center;
}
.btn-cta {
display: inline-flex; align-items: center; gap: 0.45rem;
padding: 0.8rem 1.65rem; border-radius: 3px; border: none;
font-family: var(--font-body); font-size: 0.85rem; font-weight: 600;
letter-spacing: 0.06em; text-transform: uppercase;
text-decoration: none; cursor: pointer;
transition: all 0.2s;
}
.btn-cta-primary { background: var(--gold); color: #000; }
.btn-cta-primary:hover {
background: var(--gold-lt); transform: translateY(-2px);
box-shadow: 0 6px 22px rgba(212,160,23,.38);
}
.btn-cta-ghost {
background: transparent; color: var(--text);
border: 1px solid var(--border);
}
.btn-cta-ghost:hover {
border-color: var(--gold); color: var(--gold);
transform: translateY(-2px);
box-shadow: 0 6px 22px rgba(212,160,23,.12);
}
/* ── SECTION BASE ────────────────────────────────── */
.section { padding: 5.5rem 2.5rem; }
.section-inner { max-width: 1120px; margin: 0 auto; }
.section-label {
font-family: var(--font-hud);
font-size: 0.62rem; letter-spacing: 0.3em; text-transform: uppercase;
color: var(--gold); margin-bottom: 0.65rem;
}
.section-title {
font-family: var(--font-logo);
font-size: clamp(1.7rem, 3.8vw, 2.7rem);
color: var(--text); line-height: 1.2; margin-bottom: 1rem;
}
.section-desc {
font-size: 0.98rem; color: var(--muted);
max-width: 520px; line-height: 1.75;
}
/* ── ARCADE ──────────────────────────────────────── */
#arcade {
background: var(--bg-2);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
}
.two-col {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
}
.cabinet {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 6px;
aspect-ratio: 3/4;
display: flex; flex-direction: column;
overflow: hidden;
position: relative;
}
.cabinet-top {
background: linear-gradient(135deg, #0d0f1e 0%, #14172c 100%);
flex: 1;
display: flex; align-items: center; justify-content: center;
padding: 2rem 1.5rem;
position: relative;
}
.cabinet-screen {
background: rgba(0,0,0,.65);
border: 2px solid var(--gold-dk);
border-radius: 3px;
padding: 1.5rem 2rem;
text-align: center;
width: 100%;
box-shadow: 0 0 18px rgba(212,160,23,.18), inset 0 0 18px rgba(0,0,0,.4);
}
.screen-title {
font-family: var(--font-hud);
font-size: 1.25rem; letter-spacing: 0.2em;
color: var(--gold);
animation: pulse 2s ease-in-out infinite;
margin-bottom: 0.2rem;
}
@keyframes pulse {
0%,100% { text-shadow: 0 0 6px var(--gold); }
50% { text-shadow: 0 0 22px var(--gold), 0 0 44px rgba(212,160,23,.5); }
}
.screen-sub {
font-family: var(--font-hud);
font-size: 0.5rem; letter-spacing: 0.3em; text-transform: uppercase;
color: var(--crimson); margin-bottom: 1rem;
}
.screen-insert {
font-family: var(--font-hud);
font-size: 0.48rem; letter-spacing: 0.22em; text-transform: uppercase;
color: var(--muted);
animation: blink 1.3s step-end infinite;
}
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
.cabinet-controls {
background: #1a1d30;
border-top: 1px solid var(--border);
padding: 0.9rem 1.5rem;
display: flex; align-items: center; justify-content: center; gap: 0.6rem;
}
.stick {
width: 18px; height: 18px;
background: #2a2d40; border-radius: 50%;
border: 2px solid #3a3d55;
box-shadow: 0 2px 5px rgba(0,0,0,.5);
}
.btn-ab {
width: 13px; height: 13px; border-radius: 50%;
border: 1px solid rgba(255,255,255,.15);
}
.games-list {
display: flex; flex-wrap: wrap; gap: 0.5rem;
margin-top: 1.6rem;
}
.game-tag {
background: var(--bg-card);
border: 1px solid var(--border);
color: var(--muted);
font-family: var(--font-hud);
font-size: 0.58rem; letter-spacing: 0.06em;
padding: 0.32rem 0.7rem; border-radius: 3px;
transition: border-color 0.18s, color 0.18s;
}
.game-tag:hover { border-color: var(--gold); color: var(--gold); }
/* ── BOARD GAMES ─────────────────────────────────── */
#board-games { background: var(--bg); }
.boardgames-visual {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 6px;
aspect-ratio: 4/3;
display: flex; align-items: center; justify-content: center;
position: relative; overflow: hidden;
}
.boardgames-visual::before {
content: '';
position: absolute; inset: 0;
background:
radial-gradient(circle at 35% 35%, rgba(109,40,217,.14) 0%, transparent 60%),
radial-gradient(circle at 70% 70%, rgba(14,116,144,.10) 0%, transparent 60%);
}
.table-art {
position: relative; z-index: 1; text-align: center;
}
.table-art span { font-size: 4rem; display: block; margin-bottom: 0.5rem; }
.table-art p {
font-family: var(--font-hud);
font-size: 0.58rem; letter-spacing: 0.28em; text-transform: uppercase;
color: var(--muted);
}
.game-cats {
display: grid; grid-template-columns: 1fr 1fr;
gap: 1.25rem; margin-top: 2rem;
}
.game-cat {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 5px; padding: 1.1rem 1.25rem;
transition: border-color 0.18s;
}
.game-cat:hover { border-color: rgba(212,160,23,.28); }
.cat-title {
font-family: var(--font-hud);
font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase;
color: var(--gold); margin-bottom: 0.7rem;
}
.cat-games {
list-style: none;
}
.cat-games li {
font-size: 0.85rem; color: var(--muted);
padding: 0.18rem 0 0.18rem 1rem; position: relative;
}
.cat-games li::before {
content: '▸'; position: absolute; left: 0;
color: var(--gold-dk); font-size: 0.65rem;
top: 50%; transform: translateY(-50%);
}
/* ── EVENTS ──────────────────────────────────────── */
#events {
background: var(--bg-2);
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
padding: 4.5rem 2.5rem;
text-align: center;
}
.events-body { max-width: 620px; margin: 0 auto; }
.events-badge {
display: inline-block;
font-family: var(--font-hud);
font-size: 0.58rem; letter-spacing: 0.3em; text-transform: uppercase;
color: #a78bfa;
border: 1px solid rgba(109,40,217,.38);
background: rgba(109,40,217,.12);
padding: 0.35rem 1rem; border-radius: 2px;
margin-bottom: 1.4rem;
}
.events-title {
font-family: var(--font-logo);
font-size: clamp(1.5rem, 3.2vw, 2.25rem);
color: var(--text); margin-bottom: 1rem;
}
.events-desc {
color: var(--muted); font-size: 0.97rem; line-height: 1.75; margin-bottom: 2rem;
}
.event-pills {
display: flex; flex-wrap: wrap; justify-content: center; gap: 0.65rem;
}
.pill {
background: rgba(109,40,217,.14);
border: 1px solid rgba(109,40,217,.28);
color: #c4b5fd;
font-size: 0.78rem; padding: 0.38rem 1rem; border-radius: 99px;
}
/* ── FOOTER ──────────────────────────────────────── */
footer {
background: #060609;
border-top: 1px solid var(--border);
padding: 4rem 2.5rem 2rem;
}
.footer-body { max-width: 1120px; margin: 0 auto; }
.footer-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 3rem;
margin-bottom: 3rem;
}
.footer-brand {
font-family: var(--font-logo);
font-size: 1.1rem; color: var(--gold);
display: flex; align-items: center; gap: 0.45rem;
margin-bottom: 0.7rem;
}
.footer-tagline {
color: var(--muted); font-size: 0.87rem; line-height: 1.65; margin-bottom: 1.1rem;
}
.contact-row {
display: flex; align-items: flex-start; gap: 0.5rem;
color: var(--muted); font-size: 0.83rem; margin-bottom: 0.45rem;
text-decoration: none; transition: color 0.18s;
}
.contact-row:hover { color: var(--gold); }
.col-head {
font-family: var(--font-hud);
font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase;
color: var(--gold); margin-bottom: 0.9rem;
}
.hours-list { list-style: none; }
.hours-list li {
display: flex; justify-content: space-between; gap: 1rem;
font-size: 0.83rem; color: var(--muted); margin-bottom: 0.38rem;
}
.hours-list .day { color: var(--text); }
.footer-nav { list-style: none; }
.footer-nav li { margin-bottom: 0.45rem; }
.footer-nav a {
color: var(--muted); font-size: 0.83rem; text-decoration: none;
transition: color 0.18s;
}
.footer-nav a:hover { color: var(--gold); }
.map-box {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 4px; height: 90px;
display: flex; align-items: center; justify-content: center;
margin-bottom: 0.75rem;
}
.map-box a {
color: var(--muted); font-size: 0.8rem; text-decoration: none;
display: flex; align-items: center; gap: 0.4rem;
transition: color 0.18s;
}
.map-box a:hover { color: var(--gold); }
.footer-bottom {
border-top: 1px solid var(--border);
padding-top: 1.4rem;
display: flex; justify-content: space-between; align-items: center;
flex-wrap: wrap; gap: 0.75rem;
}
.copyright { font-size: 0.78rem; color: var(--muted); }
.legal { display: flex; gap: 1.4rem; }
.legal a {
font-size: 0.78rem; color: var(--muted); text-decoration: none;
transition: color 0.18s;
}
.legal a:hover { color: var(--gold); }
/* ── RESPONSIVE ──────────────────────────────────── */
@media (max-width: 860px) {
nav { padding: 0.8rem 1.25rem; flex-wrap: wrap; gap: 0.7rem; }
.nav-links { order: 3; width: 100%; gap: 1.5rem; }
.two-col,
.boardgames-layout { grid-template-columns: 1fr; }
.game-cats { grid-template-columns: 1fr; }
.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
.hero-ctas { flex-direction: column; align-items: center; }
.footer-grid { grid-template-columns: 1fr; }
.footer-bottom { flex-direction: column; text-align: center; }
}
</style>
</head>
<body>
<!-- ── NAV ── -->
<nav>
<a href="#" class="nav-logo">🐉 The Fat Dragon</a>
<ul class="nav-links">
<li><a href="#arcade">Arcade</a></li>
<li><a href="#board-games">Board Games</a></li>
<li><a href="#events">Events</a></li>
</ul>
<div class="nav-right">
<a href="#contact" class="nav-find">Find Us</a>
<a href="#book" class="btn-book">Book Now</a>
</div>
</nav>
<!-- ── HERO ── -->
<section id="hero">
<div class="hero-bg"></div>
<div class="hero-body">
<div class="hero-badge">Coming Soon</div>
<span class="hero-icon">🐉</span>
<h1 class="hero-title">The Fat Dragon</h1>
<p class="hero-place">Ashbourne &middot; Co. Meath &middot; Ireland</p>
<p class="hero-copy">
A brand-new game shop is coming to Ashbourne — retro arcade cabinets,
tabletop strategy, D&amp;D campaigns, and a space built for every kind of player.
</p>
<span class="hero-open">Opening July 2026 &middot; D&amp;D Bookings Open Now</span>
<div class="hero-ctas">
<a href="#book" class="btn-cta btn-cta-primary">⚔️ D&amp;D Sessions</a>
<a href="#arcade" class="btn-cta btn-cta-ghost">🕹️ Retro Arcade</a>
<a href="#board-games" class="btn-cta btn-cta-ghost">🎲 Table Top Games</a>
</div>
</div>
</section>
<!-- ── ARCADE ── -->
<section id="arcade" class="section">
<div class="section-inner">
<div class="two-col">
<div class="cabinet">
<div class="cabinet-top">
<div class="cabinet-screen">
<div class="screen-title">FAT DRAGON</div>
<div class="screen-sub">Arcade &middot; Est. 2026</div>
<div class="screen-insert">Insert Coin to Continue</div>
</div>
</div>
<div class="cabinet-controls">
<div class="stick"></div>
<div class="btn-ab" style="background:#c0392b; margin-left:10px;"></div>
<div class="btn-ab" style="background:#2980b9;"></div>
<div class="btn-ab" style="background:#e67e22;"></div>
<div class="btn-ab" style="background:#27ae60;"></div>
</div>
</div>
<div>
<div class="section-label">Retro Arcade</div>
<h2 class="section-title">Play Against Friends and Rivals</h2>
<p class="section-desc">
Relive the golden age of gaming with our hand-picked collection of classic
arcade cabinets. Challenge friends head-to-head or prove yourself against
the machine — the high score board awaits.
</p>
<div class="games-list">
<span class="game-tag">Mortal Kombat II</span>
<span class="game-tag">Mortal Kombat III</span>
<span class="game-tag">Street Fighter II</span>
<span class="game-tag">Street Fighter III</span>
<span class="game-tag">Time Crisis</span>
<span class="game-tag">Marvel vs. Capcom</span>
<span class="game-tag">Pac-Man</span>
<span class="game-tag">Space Invaders</span>
</div>
</div>
</div>
</div>
</section>
<!-- ── BOARD GAMES ── -->
<section id="board-games" class="section">
<div class="section-inner">
<div class="two-col" style="direction:rtl;">
<div class="boardgames-visual" style="direction:ltr;">
<div class="table-art">
<span>🎲</span>
<p>Board &amp; Card Games</p>
</div>
</div>
<div style="direction:ltr;">
<div class="section-label">Board &amp; Card Games</div>
<h2 class="section-title">Gather Around the Table</h2>
<p class="section-desc">
From grand strategy to fast-paced card battles, our library has something
for every group. Bring your crew or meet new challengers — the table is always open.
</p>
<div class="game-cats">
<div class="game-cat">
<div class="cat-title">Strategy Games</div>
<ul class="cat-games">
<li>Catan</li>
<li>Ticket to Ride</li>
<li>Village</li>
<li>Dune</li>
</ul>
</div>
<div class="game-cat">
<div class="cat-title">Card Games</div>
<ul class="cat-games">
<li>Magic: The Gathering</li>
<li>Pokémon TCG</li>
<li>Yu-Gi-Oh!</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ── EVENTS ── -->
<section id="events">
<div class="events-body">
<div class="events-badge">Events &amp; Tournaments</div>
<h2 class="events-title">Compete, Collaborate, Celebrate</h2>
<p class="events-desc">
Regular tournaments, campaign nights, and community events are coming.
Full schedule launches with our opening in July 2026 — stay tuned.
</p>
<div class="event-pills">
<span class="pill">D&amp;D Campaign Nights</span>
<span class="pill">Fighting Game Tournaments</span>
<span class="pill">Pokémon TCG Events</span>
<span class="pill">Board Game Socials</span>
<span class="pill">Magic: The Gathering</span>
</div>
</div>
</section>
<!-- ── FOOTER ── -->
<footer id="contact">
<div class="footer-body">
<div class="footer-grid">
<div>
<div class="footer-brand">🐉 The Fat Dragon</div>
<p class="footer-tagline">
Ashbourne's home for retro arcade gaming, tabletop strategy,
and trading card battles. Opening July 2026.
</p>
<a href="mailto:hello@denofdragons.com" class="contact-row">✉ hello@denofdragons.com</a>
<a href="tel:+353899409075" class="contact-row">☎ 089 940 9075</a>
<span class="contact-row">📍 Ashbourne, Co. Meath, Ireland</span>
</div>
<div>
<div class="col-head">Hours</div>
<ul class="hours-list">
<li><span class="day">Mon Fri</span><span>12:00 22:00</span></li>
<li><span class="day">Saturday</span><span>09:00 22:00</span></li>
<li><span class="day">Sunday</span><span>09:00 21:00</span></li>
</ul>
</div>
<div>
<div class="col-head">Book</div>
<ul class="footer-nav">
<li><a href="#book">D&amp;D Sessions</a></li>
<li><a href="#arcade">Retro Arcade</a></li>
<li><a href="#board-games">Tabletop Games</a></li>
<li><a href="#events">Events</a></li>
</ul>
</div>
<div id="book">
<div class="col-head">Find Us</div>
<div class="map-box">
<a href="#contact">📍 Ashbourne, Co. Meath</a>
</div>
<p style="font-size:0.78rem; color:var(--muted); line-height:1.5;">
Full address and booking links<br>available at launch (July 2026).
</p>
</div>
</div>
<div class="footer-bottom">
<span class="copyright">© 2026 The Fat Dragon. All rights reserved.</span>
<div class="legal">
<a href="#">Privacy</a>
<a href="#">Terms</a>
</div>
</div>
</div>
</footer>
</body>
</html>