MV Sea Bird — Valletta Grand Harbour Fireworks
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--navy: #0A1F44;
--navy-mid: #0D2B5E;
--gold: #C9A84C;
--gold-light: #F0D88A;
--cream: #FFFDF5;
--light-blue: #E8F0FA;
--dark: #1a1a2e;
--text: #2c3e50;
--muted: #666;
--red: #8B0000;
--red-bg: #FFF0F0;
--red-border: #FFCCCC;
--green: #2E7D32;
--green-bg: #F0FAF0;
--warn-bg: #FFF8E7;
--warn-border: #F0E0B0;
}
body {
font-family: 'Source Sans 3', sans-serif;
background: #0c1829;
color: var(--text);
min-height: 100vh;
}
/* HERO */
.hero {
background: linear-gradient(160deg, #0a1832 0%, #0d2b5e 50%, #0a1832 100%);
position: relative;
overflow: hidden;
padding: 60px 20px 50px;
text-align: center;
}
.hero::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 50% 0%, rgba(201,168,76,0.15) 0%, transparent 70%);
pointer-events: none;
}
.hero-stars {
position: absolute;
inset: 0;
background-image:
radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.4) 0%, transparent 100%),
radial-gradient(1px 1px at 80% 10%, rgba(255,255,255,0.3) 0%, transparent 100%),
radial-gradient(1px 1px at 60% 70%, rgba(255,255,255,0.2) 0%, transparent 100%),
radial-gradient(1px 1px at 10% 60%, rgba(255,255,255,0.3) 0%, transparent 100%),
radial-gradient(1px 1px at 90% 50%, rgba(255,255,255,0.2) 0%, transparent 100%),
radial-gradient(2px 2px at 40% 20%, rgba(201,168,76,0.4) 0%, transparent 100%),
radial-gradient(2px 2px at 70% 80%, rgba(201,168,76,0.3) 0%, transparent 100%);
pointer-events: none;
}
.hero-label {
font-family: 'Source Sans 3', sans-serif;
font-size: 11px;
font-weight: 700;
letter-spacing: 5px;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 16px;
opacity: 0;
animation: fadeUp 0.6s ease forwards 0.1s;
}
.hero h1 {
font-family: 'Playfair Display', serif;
font-size: clamp(32px, 6vw, 52px);
font-weight: 900;
color: #fff;
line-height: 1.1;
margin-bottom: 12px;
opacity: 0;
animation: fadeUp 0.6s ease forwards 0.25s;
}
.hero-sub {
font-size: 13px;
letter-spacing: 4px;
text-transform: uppercase;
color: var(--gold);
font-weight: 600;
margin-bottom: 20px;
opacity: 0;
animation: fadeUp 0.6s ease forwards 0.4s;
}
.hero-boat {
display: inline-block;
background: rgba(201,168,76,0.15);
border: 1px solid rgba(201,168,76,0.4);
border-radius: 30px;
padding: 10px 28px;
font-family: 'Playfair Display', serif;
font-size: 20px;
color: var(--gold);
font-weight: 700;
opacity: 0;
animation: fadeUp 0.6s ease forwards 0.55s;
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* CONTENT WRAPPER */
.content {
max-width: 780px;
margin: 0 auto;
padding: 0 16px 60px;
}
/* CARDS */
.card {
background: #fff;
border-radius: 12px;
overflow: hidden;
margin: 24px 0;
box-shadow: 0 4px 24px rgba(0,0,0,0.18);
opacity: 0;
animation: fadeUp 0.5s ease forwards;
}
.card:nth-child(1) { animation-delay: 0.1s; }
.card:nth-child(2) { animation-delay: 0.2s; }
.card:nth-child(3) { animation-delay: 0.3s; }
.card:nth-child(4) { animation-delay: 0.4s; }
.card:nth-child(5) { animation-delay: 0.5s; }
.card:nth-child(6) { animation-delay: 0.6s; }
.card:nth-child(7) { animation-delay: 0.7s; }
.card-header {
background: var(--navy);
padding: 14px 20px;
display: flex;
align-items: center;
gap: 10px;
}
.card-header .icon { font-size: 18px; }
.card-header h2 {
font-family: 'Source Sans 3', sans-serif;
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--gold);
}
/* TIMELINE */
.timeline-row {
display: grid;
grid-template-columns: 72px 1fr;
border-bottom: 1px solid #f0f0f0;
}
.timeline-row:last-child { border-bottom: none; }
.tl-time {
background: var(--navy);
color: var(--gold);
font-weight: 700;
font-size: 13px;
display: flex;
align-items: center;
justify-content: center;
padding: 12px 6px;
text-align: center;
line-height: 1.3;
}
.tl-desc {
background: var(--light-blue);
padding: 12px 16px;
font-size: 14px;
color: var(--text);
display: flex;
align-items: center;
}
/* WARNING BOX */
.warning-box {
background: var(--red-bg);
border: 2px solid #CC0000;
border-radius: 8px;
padding: 14px 18px;
margin: 0 16px 16px;
}
.warning-box .title {
font-size: 12px;
font-weight: 700;
color: var(--red);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 5px;
}
.warning-box p {
font-size: 13px;
color: var(--red);
}
/* LOCATION TABLE */
.loc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
}
.loc-col { border-right: 1px solid #e0e0e0; }
.loc-col:last-child { border-right: none; }
.loc-head {
background: var(--navy);
color: var(--gold);
font-weight: 700;
font-size: 14px;
padding: 12px;
text-align: center;
}
.loc-body { padding: 14px 14px; background: var(--cream); }
.loc-time {
font-size: 14px;
color: var(--text);
margin-bottom: 12px;
padding-bottom: 10px;
border-bottom: 1px solid #e8e8e8;
}
.loc-info {
font-size: 13px;
color: #1155CC;
line-height: 1.8;
}
.loc-info a { color: #1155CC; }
/* WRISTBANDS */
.wristband-row {
display: grid;
grid-template-columns: 70px 1fr;
border-bottom: 1px solid #e8e8e8;
}
.wristband-row:last-child { border-bottom: none; }
.wb-badge {
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 13px;
padding: 14px 8px;
}
.wb-gold { background: #FFD700; color: #7B5C00; }
.wb-blue { background: #C8D8F0; color: #0A3D8F; }
.wb-info { padding: 14px; }
.wb-info strong { display: block; font-size: 14px; margin-bottom: 3px; color: var(--navy); }
.wb-info span { font-size: 13px; color: var(--muted); }
.wb-gold-bg { background: #FFFBEA; }
.wb-blue-bg { background: #EEF4FF; }
/* MENU TABLE */
.menu-row {
display: grid;
grid-template-columns: 1fr auto;
padding: 10px 16px;
border-bottom: 1px solid #f0f0f0;
align-items: center;
}
.menu-row:last-child { border-bottom: none; }
.menu-row.divider { background: var(--light-blue); }
.menu-item { font-size: 14px; color: var(--text); }
.menu-desc { font-size: 12px; color: var(--muted); margin-top: 2px; }
.menu-price { font-size: 14px; font-weight: 700; color: var(--green); white-space: nowrap; padding-left: 12px; }
.menu-price.muted { color: var(--muted); font-weight: 400; }
/* RULES */
.rule-row {
padding: 11px 16px;
border-bottom: 1px solid var(--red-border);
font-size: 14px;
font-weight: 600;
display: flex;
align-items: center;
gap: 10px;
}
.rule-row:last-child { border-bottom: none; }
.rule-row.red { background: var(--red-bg); color: var(--red); }
.rule-row.green { background: var(--green-bg); color: var(--green); border-bottom-color: #C8E6C9; }
/* WEAR */
.wear-row {
padding: 11px 16px;
border-bottom: 1px solid var(--warn-border);
font-size: 14px;
color: var(--text);
background: var(--warn-bg);
display: flex;
align-items: center;
gap: 10px;
}
.wear-row:last-child { border-bottom: none; }
/* CONTACT */
.contact-box {
margin: 0 0 0 0;
}
.contact-head {
background: var(--navy-mid);
padding: 12px 20px;
text-align: center;
font-size: 12px;
font-weight: 700;
color: var(--gold);
letter-spacing: 2px;
text-transform: uppercase;
}
.contact-body {
background: var(--light-blue);
padding: 16px 20px;
text-align: center;
font-size: 14px;
color: var(--text);
line-height: 1.6;
}
/* FOOTER */
footer {
background: var(--navy);
padding: 30px 20px;
text-align: center;
}
footer .brand {
font-family: 'Playfair Display', serif;
font-size: 20px;
color: var(--gold);
margin-bottom: 12px;
}
footer .links {
font-size: 12px;
color: #aaa;
line-height: 2;
}
footer .links a { color: #7799cc; text-decoration: none; }
footer .tagline {
font-size: 12px;
color: #555;
font-style: italic;
margin-top: 10px;
}
@media (max-width: 500px) {
.loc-grid { grid-template-columns: 1fr; }
.loc-col { border-right: none; border-bottom: 1px solid #e0e0e0; }
.loc-col:last-child { border-bottom: none; }
.tl-time { font-size: 11px; }
}
SeaTrips Presents
Valletta Grand Harbour
Fireworks & Drone Spectacular
Your Event Information
⚓ Aboard MV Sea Bird
18:15
Check-in — Bugibba Jetty (wristbands issued)
18:45
Departure from Bugibba Jetty
19:00
Check-in — Sliema Ferries (wristbands issued dockside)
19:30
Departure from Sliema Ferries
21:00
Fireworks Spectacular — Grand Harbour, Valletta
23:00
Fireworks end — vessel departs Valletta
~23:30
Approximate arrival — Sliema Ferries
~00:15
Approximate arrival back — Bugibba Jetty
⚠ Timings are strict — the harbour closes and the boat will leave on time
Please plan ahead and allow extra time for traffic. We cannot wait for late arrivals.
Sliema Ferries
Arrive by 19:00
The boat will not be at Sliema until later. Please check in and collect your wristband dockside — staff will be on hand to queue you ready for boarding.
Opposite the Londoners Pub
📍 View on Google Maps
Gold
VIP — Gold Wristband
Upper deck access only. Separate priority boarding queue at all locations.
Blue
Standard — Blue Stripe Wristband
Lower deck access. General queue — first come, first served.
🌧 Dress warmly — it will be cold on the water at night
🧳 Blankets available to purchase onboard for €17.00 — or bring your own
👟 Flat shoes only — NO high heels permitted on board
🚭 NO Smoking on board
💨 Vaping is permitted on board
👕 NO High Heels — flat shoes only for safety
🚫 Outside food and drinks are not permitted on board
🎟 General admission is first come, first served
Please get in touch before the event
We will be very busy with our operations this evening and cannot guarantee we will be reachable during check-in. If you have any questions, please contact us in advance — we are happy to help!