<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Perks Bakery & Cafe – Order Online</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root {
--bg: #0e0e0e;
--bg-alt: #171414;
--card: #1d1816;
--accent: #3a2a23;
--accent-soft: #5a3a2b;
--text: #f5efe8;
--muted: #a89e93;
--highlight: #f2c28b;
--radius-lg: 18px;
--radius-xl: 26px;
--shadow-soft: 0 18px 40px rgba(0, 0, 0, 0.6);
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Text", sans-serif;
background: radial-gradient(circle at top, #181313 0, #0b0b0b 55%, #050505 100%);
color: var(--text);
-webkit-font-smoothing: antialiased;
}
a {
color: inherit;
text-decoration: none;
}
.page {
min-height: 100vh;
display: flex;
flex-direction: column;
padding: 16px;
max-width: 480px;
margin: 0 auto;
}
/* HEADER / TOP BAR */
.top-bar {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.brand-pill {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 12px;
border-radius: 999px;
background: rgba(24, 20, 18, 0.9);
border: 1px solid rgba(120, 100, 80, 0.45);
backdrop-filter: blur(10px);
}
.brand-logo {
width: 24px;
height: 24px;
border-radius: 999px;
background: radial-gradient(circle at 30% 20%, #f5efe8, #c69b6b 45%, #3a2a23 100%);
box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.6);
}
.brand-text {
display: flex;
flex-direction: column;
line-height: 1.1;
}
.brand-text span:first-child {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.16em;
color: var(--muted);
}
.brand-text span:last-child {
font-size: 13px;
font-weight: 500;
}
.top-actions {
display: flex;
align-items: center;
gap: 8px;
}
.ghost-button {
border-radius: 999px;
border: 1px solid rgba(120, 100, 80, 0.5);
padding: 6px 12px;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.16em;
color: var(--muted);
background: rgba(14, 14, 14, 0.7);
cursor: pointer;
}
.icon-button {
width: 32px;
height: 32px;
border-radius: 999px;
border: 1px solid rgba(120, 100, 80, 0.5);
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(10, 10, 10, 0.9);
cursor: pointer;
position: relative;
}
.icon-button span {
font-size: 15px;
}
.dot-badge {
position: absolute;
top: 4px;
right: 4px;
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--highlight);
box-shadow: 0 0 0 2px rgba(5, 5, 5, 0.9);
}
/* HERO CARD */
.hero-card {
margin-top: 6px;
border-radius: 26px;
padding: 18px 16px 16px;
background: radial-gradient(circle at top left, #403028 0, #1b1512 45%, #0c0907 100%);
box-shadow: var(--shadow-soft);
position: relative;
overflow: hidden;
}
.hero-glow {
position: absolute;
inset: -40%;
background:
radial-gradient(circle at 20% 0, rgba(242, 194, 139, 0.28) 0, transparent 55%),
radial-gradient(circle at 85% 20%, rgba(246, 231, 210, 0.22) 0, transparent 55%);
opacity: 0.9;
pointer-events: none;
}
.hero-content {
position: relative;
z-index: 1;
}
.hero-top-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.logo-lockup {
display: flex;
align-items: center;
gap: 10px;
}
.logo-circle {
width: 40px;
height: 40px;
border-radius: 999px;
background:
radial-gradient(circle at 30% 20%, #f5efe8, #f2c28b 40%, #3a2a23 80%, #120b08 100%);
border: 1px solid rgba(10, 8, 6, 0.9);
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.7);
}
.logo-text {
display: flex;
flex-direction: column;
}
.logo-text span:first-child {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.18em;
color: var(--muted);
}
.logo-text span:last-child {
font-size: 18px;
font-weight: 600;
}
.badge-soft {
font-size: 10px;
padding: 5px 10px;
border-radius: 999px;
background: rgba(14, 14, 14, 0.6);
border: 1px solid rgba(245, 239, 232, 0.18);
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(--muted);
}
.hero-heading {
font-size: 20px;
font-weight: 500;
margin-bottom: 6px;
}
.hero-sub {
font-size: 13px;
color: var(--muted);
margin-bottom: 14px;
}
.hero-meta {
display: flex;
gap: 12px;
font-size: 11px;
margin-bottom: 14px;
color: var(--muted);
}
.hero-meta span::before {
content: "●";
font-size: 7px;
margin-right: 6px;
color: var(--highlight);
}
.hero-buttons {
display: grid;
grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
gap: 10px;
margin-bottom: 4px;
}
.btn-primary {
border-radius: 999px;
border: none;
padding: 10px 16px;
font-size: 13px;
font-weight: 500;
background: linear-gradient(135deg, var(--accent), var(--accent-soft));
color: var(--text);
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.7);
}
.btn-primary span.icon {
font-size: 14px;
transform: translateY(1px);
}
.btn-ghost {
border-radius: 999px;
border: 1px solid rgba(245, 239, 232, 0.25);
padding: 9px 14px;
font-size: 12px;
background: rgba(15, 12, 10, 0.7);
color: var(--text);
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
}
.hero-footer {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 11px;
color: var(--muted);
margin-top: 4px;
}
.pill-small {
padding: 4px 9px;
border-radius: 999px;
border: 1px solid rgba(245, 239, 232, 0.16);
background: rgba(10, 10, 10, 0.5);
}
/* QUICK ACTION TILES */
.tiles {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
margin-top: 18px;
margin-bottom: 18px;
}
.tile {
border-radius: var(--radius-lg);
padding: 10px 11px;
background: linear-gradient(145deg, #16120f, #0d0a08);
border: 1px solid rgba(70, 55, 44, 0.7);
box-shadow: 0 16px 30px rgba(0, 0, 0, 0.7);
display: flex;
flex-direction: column;
gap: 4px;
cursor: pointer;
}
.tile-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2px;
}
.tile-icon {
width: 22px;
height: 22px;
border-radius: 999px;
background: radial-gradient(circle at 30% 20%, #f5efe8, #e4b98a 35%, #3a2a23 80%);
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 13px;
}
.tile-title {
font-size: 13px;
font-weight: 500;
}
.tile-tag {
font-size: 9px;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--muted);
}
.tile-body {
font-size: 11px;
color: var(--muted);
}
/* MENU SECTION */
.section-label {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.16em;
color: var(--muted);
margin-bottom: 6px;
}
.section-heading {
font-size: 16px;
font-weight: 500;
margin-bottom: 10px;
}
.category {
margin-bottom: 16px;
}
.category-title-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 6px;
}
.category-title {
font-size: 13px;
font-weight: 500;
}
.category-hint {
font-size: 11px;
color: var(--muted);
}
.item-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.item-card {
border-radius: 16px;
padding: 10px 11px;
background: radial-gradient(circle at top left, #211813 0, #120d0a 45%, #080606 100%);
border: 1px solid rgba(70, 55, 44, 0.9);
display: flex;
justify-content: space-between;
gap: 10px;
}
.item-main {
display: flex;
flex-direction: column;
gap: 2px;
flex: 1;
}
.item-name-row {
display: flex;
justify-content: space-between;
gap: 8px;
}
.item-name {
font-size: 13px;
font-weight: 500;
}
.item-tag {
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--muted);
}
.item-desc {
font-size: 11px;
color: var(--muted);
}
.item-meta {
font-size: 10px;
color: var(--muted);
}
.item-side {
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: space-between;
}
.item-price {
font-size: 13px;
font-weight: 500;
color: var(--highlight);
}
.item-btn {
margin-top: 4px;
border-radius: 999px;
border: 1px solid rgba(245, 239, 232, 0.2);
padding: 3px 8px;
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.14em;
background: rgba(12, 10, 8, 0.85);
cursor: pointer;
color: var(--muted);
}
/* FIND US */
.find-us {
margin-top: 22px;
padding: 16px 14px;
border-radius: 20px;
background: linear-gradient(150deg, #16110e, #0c0a09);
border: 1px solid rgba(70, 55, 44, 0.8);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.7);
font-size: 12px;
}
.find-title-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 6px;
}
.find-title {
font-size: 13px;
font-weight: 500;
}
.find-pill {
font-size: 10px;
padding: 3px 8px;
border-radius: 999px;
border: 1px solid rgba(245, 239, 232, 0.18);
color: var(--muted);
}
.find-body {
margin-bottom: 8px;
}
.find-body p + p {
margin-top: 2px;
}
.find-meta {
font-size: 11px;
color: var(--muted);
display: flex;
justify-content: space-between;
gap: 8px;
}
/* MINOR UTILS */
.mt-12 { margin-top: 12px; }
.mt-16 { margin-top: 16px; }
.mt-20 { margin-top: 20px; }
.mb-8 { margin-bottom: 8px; }
@media (min-width: 640px) {
.page {
max-width: 520px;
padding: 24px 20px 32px;
}
.hero-heading {
font-size: 22px;
}
.hero-sub {
font-size: 14px;
}
}
</style>
</head>
<body>
<div class="page">
<!-- TOP BAR -->
<header class="top-bar">
<div class="brand-pill">
<div class="brand-logo"></div>
<div class="brand-text">
<span>Mutual Street</span>
<span>Perks Bakery & Cafe</span>
</div>
</div>
<div class="top-actions">
<button class="ghost-button" onclick="scrollToSection('menu')">Menu</button>
<button class="icon-button" title="View cart">
<span>🛒</span>
<div class="dot-badge"></div>
</button>
</div>
</header>
<!-- HERO -->
<section class="hero-card" aria-label="Order ahead">
<div class="hero-glow"></div>
<div class="hero-content">
<div class="hero-top-row">
<div class="logo-lockup">
<div class="logo-circle"></div>
<div class="logo-text">
<span>Daily ritual</span>
<span>Perks Bakery & Cafe</span>
</div>
</div>
<span class="badge-soft">Order ahead</span>
</div>
<h1 class="hero-heading">Coffee, pastries, and perks in one tap.</h1>
<p class="hero-sub">
Place your pickup order, skip the line, and grab your favourites at 53A Mutual Street.
</p>
<div class="hero-meta">
<span>Pickup only</span>
<span>Mutual & Dundas</span>
</div>
<div class="hero-buttons">
<button class="btn-primary" onclick="goToSquare()">
<span class="icon">⚡</span>
<span>Start order</span>
</button>
<button class="btn-ghost" onclick="scrollToSection('menu')">
View menu
</button>
</div>
<div class="hero-footer">
<div class="pill-small">
Sign in later • Rewards coming soon
</div>
<span>Toronto, ON</span>
</div>
</div>
</section>
<!-- QUICK ACTION TILES -->
<section class="tiles" aria-label="Quick actions">
<button class="tile" onclick="scrollToSection('menu')">
<div class="tile-header">
<div>
<div class="tile-title">Menu</div>
<div class="tile-tag">Coffee • Tea • Bakery</div>
</div>
<div class="tile-icon">☕</div>
</div>
<div class="tile-body">
Browse signatures, classics, and rotating specials.
</div>
</button>
<button class="tile" onclick="goToSquare()">
<div class="tile-header">
<div>
<div class="tile-title">Order ahead</div>
<div class="tile-tag">Pickup only</div>
</div>
<div class="tile-icon">⚡</div>
</div>
<div class="tile-body">
Place your pickup order in under a minute.
</div>
</button>
<button class="tile" onclick="scrollToSection('find-us')">
<div class="tile-header">
<div>
<div class="tile-title">Find us</div>
<div class="tile-tag">Mutual Street</div>
</div>
<div class="tile-icon">📍</div>
</div>
<div class="tile-body">
53A Mutual Street, Toronto, Ontario M5B 2A9.
</div>
</button>
<button class="tile" type="button">
<div class="tile-header">
<div>
<div class="tile-title">Perks</div>
<div class="tile-tag">Coming soon</div>
</div>
<div class="tile-icon">★</div>
</div>
<div class="tile-body">
Rewards, birthday treats, and members-only drops.
</div>
</button>
</section>
<!-- MENU SECTION -->
<section id="menu" class="mt-16" aria-label="Menu">
<div class="section-label">Menu preview</div>
<div class="section-heading">Today at Perks</div>
<!-- Coffee -->
<div class="category">
<div class="category-title-row">
<div class="category-title">Brewed coffee</div>
<div class="category-hint">Rotating beans</div>
</div>
<div class="item-list">
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">House drip</h3>
<span class="item-tag">Hot</span>
</div>
<p class="item-desc">Balanced, daily-driver filter coffee roasted for Mutual Street.</p>
<p class="item-meta">SM / MD / LG • Oat & alt milks available</p>
</div>
<div class="item-side">
<span class="item-price">from $3.25</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">Cold brew</h3>
<span class="item-tag">Over ice</span>
</div>
<p class="item-desc">Slow-steeped, smooth, low-acid cold brew for long days.</p>
<p class="item-meta">Limited daily batch</p>
</div>
<div class="item-side">
<span class="item-price">$4.75</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
</div>
</div>
<!-- Espresso -->
<div class="category">
<div class="category-title-row">
<div class="category-title">Espresso bar</div>
<div class="category-hint">Dine-in or to-go</div>
</div>
<div class="item-list">
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">Espresso</h3>
<span class="item-tag">Double</span>
</div>
<p class="item-desc">Tight, syrupy double shot pulled on seasonal espresso.</p>
<p class="item-meta">Ask about current origin</p>
</div>
<div class="item-side">
<span class="item-price">$3.50</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">Latte</h3>
<span class="item-tag">Hot / iced</span>
</div>
<p class="item-desc">Velvety espresso + milk, with optional syrups and alt milks.</p>
<p class="item-meta">Vanilla • Caramel • Seasonal</p>
</div>
<div class="item-side">
<span class="item-price">from $4.75</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
</div>
</div>
<!-- Tea & Bakery (short preview) -->
<div class="category">
<div class="category-title-row">
<div class="category-title">Tea & bakery</div>
<div class="category-hint">Rotating case</div>
</div>
<div class="item-list">
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">Matcha / chai</h3>
<span class="item-tag">Hot / iced</span>
</div>
<p class="item-desc">Comfort drinks built on quality tea and spice blends.</p>
<p class="item-meta">Oat & alt milks available</p>
</div>
<div class="item-side">
<span class="item-price">from $4.50</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
<article class="item-card">
<div class="item-main">
<div class="item-name-row">
<h3 class="item-name">Bakery case</h3>
<span class="item-tag">In-store</span>
</div>
<p class="item-desc">Pastries and bakes that change with the mood and the day.</p>
<p class="item-meta">Ask in-store for today’s lineup</p>
</div>
<div class="item-side">
<span class="item-price">Varies</span>
<button class="item-btn" onclick="goToSquare()">Order</button>
</div>
</article>
</div>
</div>
</section>
<!-- FIND US -->
<section id="find-us" class="find-us" aria-label="Find Perks Bakery & Cafe">
<div class="find-title-row">
<div class="find-title">Find us on Mutual</div>
<div class="find-pill">Toronto • Garden District</div>
</div>
<div class="find-body">
<p>53A Mutual Street</p>
<p>Toronto, Ontario M5B 2A9</p>
<p class="mt-12">Email: <a href="mailto:perksbakerycafe@mutualst.ca">perksbakerycafe@mutualst.ca</a></p>
<p>Phone: TBA</p>
</div>
<div class="find-meta mt-12">
<span>Hours: TBA</span>
<span>Pickup only • No delivery</span>
</div>
</section>
</div>
<script>
// TODO: Replace with your real Square order URL
const SQUARE_ORDER_URL = "https://mutual-street-perks-bakery-cafe.square.site";
function goToSquare() {
window.open(SQUARE_ORDER_URL, "_blank");
}
function scrollToSection(id) {
const el = document.getElementById(id);
if (!el) return;
el.scrollIntoView({ behavior: "smooth", block: "start" });
}
</script>
</body>
</html>