diff --git a/CatherineLynwood/Controllers/CalendarHouseController.cs b/CatherineLynwood/Controllers/CalendarHouseController.cs
new file mode 100644
index 0000000..f8bdab7
--- /dev/null
+++ b/CatherineLynwood/Controllers/CalendarHouseController.cs
@@ -0,0 +1,17 @@
+using Microsoft.AspNetCore.Mvc;
+
+namespace CatherineLynwood.Controllers
+{
+ [Route("the-calendar-house")]
+ public class CalendarHouseController : Controller
+ {
+ [Route("")]
+ public IActionResult Index() => View();
+
+ [Route("house-plan")]
+ public IActionResult HousePlan() => View();
+
+ [Route("the-pattern")]
+ public IActionResult ThePattern() => View();
+ }
+}
diff --git a/CatherineLynwood/Views/CalendarHouse/HousePlan.cshtml b/CatherineLynwood/Views/CalendarHouse/HousePlan.cshtml
new file mode 100644
index 0000000..7bc36b2
--- /dev/null
+++ b/CatherineLynwood/Views/CalendarHouse/HousePlan.cshtml
@@ -0,0 +1,110 @@
+@{
+ Layout = "_Layout";
+ ViewData["Title"] = "The Calendar House Plan";
+
+ var rooms = new[]
+ {
+ ("01", "Threshold Room", "Spring", "Ground"), ("02", "Blue Breakfast Room", "Spring", "Ground"),
+ ("03", "Observatory Parlour", "Spring", "Ground"), ("04", "East Gallery", "Spring", "Ground"),
+ ("05", "Rain Cabinet", "Spring", "Ground"), ("06", "Guest Room of Clocks", "Spring", "Ground"),
+ ("07", "Sunday Door", "Spring", "Ground"), ("08", "Orchard Room", "Spring", "Ground"),
+ ("09", "West Linen Hall", "Spring", "Ground"), ("10", "Glass Pantry", "Spring", "Ground"),
+ ("11", "Green Drawing Room", "Spring", "Ground"), ("12", "Letter Room", "Spring", "Ground"),
+ ("13", "Kitchen of Twelve Fires", "Summer", "Ground"), ("14", "Garden Stair", "Summer", "Ground"),
+ ("15", "North Dining Room", "Summer", "Ground"), ("16", "The Long Warm Hall", "Summer", "Ground"),
+ ("17", "Map Room", "Summer", "Ground"), ("18", "The Still Room", "Summer", "Ground"),
+ ("19", "Ellie's Chamber", "Summer", "First"), ("20", "Moon Landing", "Summer", "First"),
+ ("21", "Brother's Room", "Summer", "First"), ("22", "Sister's Room", "Summer", "First"),
+ ("23", "The Red Passage", "Summer", "First"), ("24", "Mirror Bath", "Summer", "First"),
+ ("25", "The Nursery Without Toys", "Autumn", "First"), ("26", "July Balcony", "Autumn", "First"),
+ ("27", "The Amber Library", "Autumn", "First"), ("28", "Aunt's Room", "Autumn", "First"),
+ ("29", "The Quiet Wardrobe", "Autumn", "First"), ("30", "Room of Names", "Autumn", "First"),
+ ("31", "Northwest Chamber", "Autumn", "First"), ("32", "The Bell Room", "Autumn", "First"),
+ ("33", "October Study", "Autumn", "First"), ("34", "The Locked Sitting Room", "Autumn", "First"),
+ ("35", "Salt Corridor", "Autumn", "First"), ("36", "The Listening Room", "Autumn", "First"),
+ ("37", "Winter Stair", "Winter", "Top"), ("38", "The Archive", "Winter", "Top"),
+ ("39", "Moth Room", "Winter", "Top"), ("40", "Servants' Sky Hall", "Winter", "Top"),
+ ("41", "The Twelfth Chimney", "Winter", "Top"), ("42", "Black Attic", "Winter", "Top"),
+ ("43", "The Closed Chapel", "Winter", "Top"), ("44", "Room of Spare Keys", "Winter", "Top"),
+ ("45", "The North Watch", "Winter", "Top"), ("46", "The Kept Room", "Winter", "Top"),
+ ("47", "Dead Calendar Room", "Winter", "Top"), ("48", "February Box Room", "Winter", "Top"),
+ ("49", "The Empty Room", "Winter", "Top"), ("50", "The Last Landing", "Winter", "Top"),
+ ("51", "The Room That Moves", "Winter", "Top"), ("52", "The Room With No Date", "Winter", "Top")
+ };
+}
+
+
+ The plan
+ Fifty-two rooms. Three floors. Four wings.
+
+ The house presents itself as architecture, but its real floor plan is time.
+ The rooms below are arranged like weeks, grouped into seasonal wings, and watched over by twelve chimneys.
+
+
+
+
+ 52 rooms
+ 3 floors
+ 4 wings
+ 12 chimneys
+ 7 doors
+ 365 windows
+
+
+
+
+ All
+ Ground
+ First
+ Top
+
+
+
+
Spring Wing
+
Summer Wing
+
Autumn Wing
+
Winter Wing
+
Central Hall
+
+ @for (var i = 0; i < 12; i++)
+ {
+
+ }
+
+
+ @for (var i = 0; i < 7; i++)
+ {
+
+ }
+
+
+
+
+ @foreach (var room in rooms)
+ {
+
+ @room.Item1
+ @room.Item2
+ @room.Item3 / @room.Item4 floor
+
+ }
+
+
+
+
+ The wrongness is deliberate.
+
+ The building is almost symmetrical, but never quite. The Spring and Winter wings do not align.
+ The seventh door has no matching corridor. The windows are counted from the outside, but the rooms
+ refuse to agree from within.
+
+
+
+@section Meta {
+
+}
diff --git a/CatherineLynwood/Views/CalendarHouse/Index.cshtml b/CatherineLynwood/Views/CalendarHouse/Index.cshtml
new file mode 100644
index 0000000..d203442
--- /dev/null
+++ b/CatherineLynwood/Views/CalendarHouse/Index.cshtml
@@ -0,0 +1,109 @@
+@{
+ Layout = "_Layout";
+ ViewData["Title"] = "The Calendar House";
+}
+
+
+
+
+
+
Standalone psychological mystery
+
The Calendar House
+
+ A lonely woman enters a house that offers belonging, intimacy, and safety.
+ Then she begins to understand the cost.
+
+
+
+
+ 52 rooms
+ 4 wings
+ 7 doors
+ 365 windows
+
+
+
+
+
+
The invitation
+
Ellie did not come here by accident.
+
+ After betrayal, humiliation, and a period of sleeping on a friend's sofa, Ellie receives a trunk
+ of belongings and an invitation to an isolated house built around a system no one fully admits
+ to understanding.
+
+
+ At first, it feels like retreat. Then like a game. Then like a place that has been waiting for her
+ to need it badly enough.
+
+
+
+
+
+ Fifty-two rooms
+ one for every week
+
+
+ Four wings
+ one for every season
+
+
+ Seven doors
+ one for every day
+
+
+ One way in
+ no reliable way back
+
+
+
+
+
+
+
+ The house watches
+ Corridors turn familiar only after they have betrayed you. Doors remember choices better than people do.
+
+
+
+ The residents belong
+ Warmth and unease sit together here. The people are affectionate, devoted, and impossible to read from the outside.
+
+
+
+ The pattern repeats
+ What looks like eccentric tradition may be inheritance, experiment, ritual, or something older than all three.
+
+
+
+
+ They say the house was built to a pattern.
+ No one remembers who designed it.
+ Fifty-two rooms. Four wings. Seven doors.
+ Each one placed with purpose.
+ Ellie did not come here by accident.
+ None of them did.
+
+
+@section Meta {
+
+}
diff --git a/CatherineLynwood/Views/CalendarHouse/ThePattern.cshtml b/CatherineLynwood/Views/CalendarHouse/ThePattern.cshtml
new file mode 100644
index 0000000..467319e
--- /dev/null
+++ b/CatherineLynwood/Views/CalendarHouse/ThePattern.cshtml
@@ -0,0 +1,55 @@
+@{
+ Layout = "_Layout";
+ ViewData["Title"] = "The Pattern";
+}
+
+
+ The pattern
+ Once you see it, it has already seen you.
+
+ The Calendar House is not simply a setting. It is a social system, a memory palace,
+ and a trap built from habit.
+
+
+
+
+
+ 01
+ Belonging
+ Ellie arrives bruised by ordinary rejection and finds a place that answers her loneliness too precisely.
+
+
+ 02
+ Normalisation
+ Inside the house, inherited behaviour becomes custom. What outsiders notice first, residents barely name.
+
+
+ 03
+ Inhibition
+ The house lowers defences slowly: through ritual, warmth, secrecy, and the comfort of being wanted.
+
+
+ 04
+ Repetition
+ Every room has a use. Every season has a pressure. Every invitation is both welcome and warning.
+
+
+
+
+
+@section Meta {
+
+}
diff --git a/CatherineLynwood/Views/CalendarHouse/_Layout.cshtml b/CatherineLynwood/Views/CalendarHouse/_Layout.cshtml
new file mode 100644
index 0000000..7950699
--- /dev/null
+++ b/CatherineLynwood/Views/CalendarHouse/_Layout.cshtml
@@ -0,0 +1,51 @@
+@{
+ var title = ViewData["Title"]?.ToString() ?? "The Calendar House";
+}
+
+
+
+
+
+
+ @title | Catherine Lynwood
+
+
+
+
+
+
+
+ @RenderSection("Meta", required: false)
+
+
+
+
+
+ @RenderBody()
+
+
+
+
+
+
+ @RenderSection("Scripts", required: false)
+
+
diff --git a/CatherineLynwood/Views/Discovery/IndexDesktop.cshtml b/CatherineLynwood/Views/Discovery/IndexDesktop.cshtml
index ee50862..e6ef388 100644
--- a/CatherineLynwood/Views/Discovery/IndexDesktop.cshtml
+++ b/CatherineLynwood/Views/Discovery/IndexDesktop.cshtml
@@ -1,281 +1,10 @@
-@model CatherineLynwood.Models.TitlePageViewModel
+@model CatherineLynwood.Models.TitlePageViewModel
@{
ViewData["Title"] = "The Alpha Flame: A Gritty 1980s Birmingham Crime Novel about Twin Sisters";
- bool showReviews = Model.Reviews.Items.Any();
}
-
-
-
-
-
-
-
-
-
-
-
The Alpha Flame: Discovery
-
It's 1983 Birmingham. Maggie, my fiery heroine, standing outside the derelict Rubery Hill Hospital. A story of survival, sisters, and fire.
-
-
-
-
-
-
-
-
-
-
-
-
-
★ Audiobook Out Now ★
-
-
- The Alpha Flame: Discovery is now available as a full-length audiobook, narrated to be lived in rather than rushed through.
- It’s a slow-burn, character-led story where quiet moments matter, tension builds gradually, and certain scenes land harder when you hear them spoken.
-
-
-
- Ideal for long drives, late nights, or anyone who prefers to sink into a story through headphones rather than skim it on a screen.
-
-
-
- 🎧 Explore the audiobook
-
-
-
-
-
-
-
-@if (showReviews)
-{
- var top = Model.Reviews.Items.Where(x => x.RatingValue == 5).OrderByDescending(y => y.DatePublished).First();
- var fullStars = (int)Math.Floor(top.RatingValue);
- var hasHalfStar = top.RatingValue - fullStars >= 0.5;
- var emptyStars = 5 - fullStars - (hasHalfStar ? 1 : 0);
- var reviewDate = top.DatePublished.ToString("d MMMM yyyy");
-
-
-
-
-
★ Reader Praise ★
-
-
- @for (int i = 0; i < fullStars; i++)
- {
-
- }
- @if (hasHalfStar)
- {
-
- }
- @for (int i = 0; i < emptyStars; i++)
- {
-
- }
-
- @Html.Raw(top.ReviewBody)
-
- @top.AuthorName on
-
- @if (string.IsNullOrEmpty(top.URL))
- {
- @top.SiteName
- }
- else
- {
-
- @top.SiteName
- }
-
- , @reviewDate
-
-
- @if (Model.Reviews.Items.Count > 1)
- {
-
- }
-
-
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Your browser does not support the audio element.
-
-
-
Listen to Catherine talking about the book
-
-
-
-
-
- She didn’t go looking for trouble. But when she found Beth, bruised, broken, and terrified, Maggie couldn’t walk away.
-
-
- But nothing prepares her for Beth. As she digs deeper into Beth’s world, Maggie finds herself pulled into the shadows, a seedy underworld of secrets, survival, and control, where loyalty is rare and nothing is guaranteed. The more she uncovers, the more she realises this isn’t someone else’s nightmare. It’s her own.
-
-
- Set in 1983 Birmingham, nearby Redditch, and Barmouth in Wales, The Alpha Flame: Discovery follows the lives of two young women, Beth and Maggie, as they uncover dark family secrets and fight to survive. Gritty and emotionally charged, it explores the bond between two women who refuse to be broken.
-
-
-
-
-
- Read full synopsis
-
-
-
-
-
-
-
For Beth, the world is a cold and unforgiving place. Devastation strikes in a single moment, leaving her isolated, shattered, and vulnerable. Alone in the bleak shadows of a city that offers neither refuge nor redemption, she is forced to navigate a relentless cycle of desperation and despair. Every step of her journey tests the limits of her endurance, pushing her into harrowing situations where survival feels like a hollow victory. Beth’s existence is marked by loss, betrayal, and an almost suffocating loneliness that threatens to consume her entirely. Yet, even in the darkest corners of her ordeal, a fragile ember of defiance smoulders within her, a quiet, stubborn refusal to let the world destroy her completely.
-
Maggie, by contrast, is a force of nature, a woman who thrives on her unshakable drive and an unrelenting belief in her own power. Behind her fiery red hair and disarming charm lies a storm of determination and ferocity. Maggie doesn’t just live; she races through life, fuelled by a need for speed and the thrill of freedom. Her Triumph TR6 isn’t just a car; it’s an extension of her spirit, sleek, powerful, and unapologetically bold. On the open road, with the engine roaring and the world blurring past her, she feels invincible. But Maggie’s intensity doesn’t stop at the wheel. Her relationships burn just as brightly. As a lover, she is dominant, passionate, and unafraid to embrace her darker desires. While fiercely loving and loyal, Maggie is also formidable; crossing her isn’t a mistake anyone makes twice.
-
When fate brings Beth and Maggie together, their connection is explosive, a union of two polar opposites that burns with both tenderness and raw power. For Beth, Maggie represents a lifeline, a reminder that love and trust still exist, even in a world that has betrayed her at every turn. For Maggie, Beth awakens a fierce protectiveness and vulnerability she’s rarely allowed herself to feel. Together, they ignite a flame that challenges them to confront their own fears, desires, and limitations.
-
Set against the kaleidoscope of 1983, where synthesised anthems provide a pulsing soundtrack and the streets are alive with the bold styles and rebellious energy of the decade, their story unfolds in a city teeming with danger and intrigue. From high-speed chases along winding roads to dimly lit clubs and desolate alleyways, the heroines’ journey is a visceral exploration of survival and freedom. The neon haze of the era contrasts sharply with the stark realities they face, painting a vivid picture of a world where strength and vulnerability coexist.
-
As secrets surface and danger tightens its grip, Beth and Maggie must confront not only the challenges around them but the truths within themselves. Their bond is tested by betrayal, desire, and the shadows of their pasts, but through it all, their flame burns brighter, illuminating their courage and the unbreakable spirit of two heroines determined to rewrite their fates.
-
At its heart, The Alpha Flame is a story of survival, passion, and empowerment. It captures the raw power of human connection against the gritty, vibrant backdrop of an unforgettable era. With its blend of drama, intensity, and unapologetic emotion, this is a story that will leave its mark long after the final page.
-
-
-
-
-
-
-
-
-
-
- Chapter Previews
-
-
-
-
-
-
-
-
Chapter 1: Drowning in Silence — Beth
-
Beth returns home to find her mother lifeless in the bath...
-
-
-
-
-
-
-
-
-
-
-
Chapter 2: The Last Lesson — Maggie
-
On Christmas Eve, Maggie nervously heads out for her driving test not knowing the story that will pan out before her...
-
-
-
-
-
-
-
-
-
-
-
Chapter 13: A Name She Never Owned — Susie
-
Susie goes out for a drink with a punter. What on earth could go wrong...
-
-
-
-
-
-
-
-@section Scripts {
-
-
-
-
-
-}
+@await Html.PartialAsync("_DiscoveryShowcase", Model)
@section Meta {
-
-
-
-
-
-
-
-
The Alpha Flame: Discovery
-
Birmingham 1983 - A tale of survival, secrets, and sisterhood.
-
-
-
-
-
-
-
-
-
-
-
The Alpha Flame: Discovery
-
Buy now
-
-
-
-
-
-
-
-
-
-
★ Audiobook Out Now ★
-
-
- The Alpha Flame: Discovery is now available as a full-length audiobook, narrated to be lived in rather than rushed through.
- It’s a slow-burn, character-led story where quiet moments matter, tension builds gradually, and certain scenes land harder when you hear them spoken.
-
-
-
- Ideal for long drives, late nights, or anyone who prefers to sink into a story through headphones rather than skim it on a screen.
-
-
-
- 🎧 Explore the audiobook
-
-
-
-
-
-
-@if (showReviews)
-{
- var top = Model.Reviews.Items.Where(x => x.RatingValue == 5).OrderByDescending(y => y.DatePublished).First();
- var fullStars = (int)Math.Floor(top.RatingValue);
- var hasHalfStar = top.RatingValue - fullStars >= 0.5;
- var emptyStars = 5 - fullStars - (hasHalfStar ? 1 : 0);
- var reviewDate = top.DatePublished.ToString("d MMMM yyyy");
-
-
-
-
-
★ Reader Praise ★
-
-
- @for (int i = 0; i < fullStars; i++)
- {
-
- }
- @if (hasHalfStar)
- {
-
- }
- @for (int i = 0; i < emptyStars; i++)
- {
-
- }
-
- @Html.Raw(top.ReviewBody)
-
- @top.AuthorName on
-
- @if (string.IsNullOrEmpty(top.URL))
- {
- @top.SiteName
- }
- else
- {
-
- @top.SiteName
- }
-
- , @reviewDate
-
-
- @if (Model.Reviews.Items.Count > 1)
- {
-
- }
-
-
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Your browser does not support the audio element.
-
-
-
Listen to Catherine talking about the book
-
-
-
-
-
-
-
She didn’t go looking for trouble. But when she found Beth, bruised, broken, and terrified, Maggie couldn’t walk away.
-
But nothing prepares her for Beth. As she digs deeper into Beth’s world, Maggie finds herself pulled into the shadows, a seedy underworld of secrets, survival, and control, where loyalty is rare and nothing is guaranteed. The more she uncovers, the more she realises this isn’t someone else’s nightmare. It’s her own.
-
Set in 1983 Birmingham, nearby Redditch, and Barmouth in Wales, The Alpha Flame: Discovery follows the lives of two young women, Beth and Maggie, as they uncover dark family secrets and fight to survive. Gritty and emotionally charged, it explores the bond between two women who refuse to be broken.
-
For Beth, the world is a cold and unforgiving place. Devastation strikes in a single moment, leaving her isolated, shattered, and vulnerable. Alone in the bleak shadows of a city that offers neither refuge nor redemption, she is forced to navigate a relentless cycle of desperation and despair. Every step of her journey tests the limits of her endurance, pushing her into harrowing situations where survival feels like a hollow victory. Beth’s existence is marked by loss, betrayal, and an almost suffocating loneliness that threatens to consume her entirely. Yet, even in the darkest corners of her ordeal, a fragile ember of defiance smoulders within her, a quiet, stubborn refusal to let the world destroy her completely.
-
Maggie, by contrast, is a force of nature, a woman who thrives on her unshakable drive and an unrelenting belief in her own power. Behind her fiery red hair and disarming charm lies a storm of determination and ferocity. Maggie doesn’t just live; she races through life, fuelled by a need for speed and the thrill of freedom. Her Triumph TR6 isn’t just a car; it’s an extension of her spirit, sleek, powerful, and unapologetically bold. On the open road, with the engine roaring and the world blurring past her, she feels invincible. But Maggie’s intensity doesn’t stop at the wheel. Her relationships burn just as brightly. As a lover, she is dominant, passionate, and unafraid to embrace her darker desires. While fiercely loving and loyal, Maggie is also formidable; crossing her isn’t a mistake anyone makes twice.
-
When fate brings Beth and Maggie together, their connection is explosive, a union of two polar opposites that burns with both tenderness and raw power. For Beth, Maggie represents a lifeline, a reminder that love and trust still exist, even in a world that has betrayed her at every turn. For Maggie, Beth awakens a fierce protectiveness and vulnerability she’s rarely allowed herself to feel. Together, they ignite a flame that challenges them to confront their own fears, desires, and limitations.
-
Set against the kaleidoscope of 1983, where synthesised anthems provide a pulsing soundtrack and the streets are alive with the bold styles and rebellious energy of the decade, their story unfolds in a city teeming with danger and intrigue. From high speed chases along winding roads to dimly lit clubs and desolate alleyways, the heroines’ journey is a visceral exploration of survival and freedom. The neon haze of the era contrasts sharply with the stark realities they face, painting a vivid picture of a world where strength and vulnerability coexist.
-
As secrets surface and danger tightens its grip, Beth and Maggie must confront not only the challenges around them but the truths within themselves. Their bond is tested by betrayal, desire, and the shadows of their pasts, but through it all, their flame burns brighter, illuminating their courage and the unbreakable spirit of two heroines determined to rewrite their fates.
-
At its heart, The Alpha Flame is a story of survival, passion, and empowerment. It captures the raw power of human connection against the gritty, vibrant backdrop of an unforgettable era. With its blend of drama, intensity, and unapologetic emotion, this is a story that will leave its mark long after the final page.
-
-
-
-
-
-
-
-
-
-
- Chapter Previews
-
-
-
-
-
-
-
-
Chapter 1: Drowning in Silence — Beth
-
Beth returns home to find her mother lifeless in the bath...
-
-
-
-
-
-
-
-
-
-
-
Chapter 2: The Last Lesson — Maggie
-
On Christmas Eve, Maggie nervously heads out for her driving test not knowing the story that will pan out before her...
-
-
-
-
-
-
-
-
-
-
-
Chapter 13: A Name She Never Owned — Susie
-
Susie goes out for a drink with a punter. What on earth could go wrong...
-
-
-
-
-
-
-
-@section Scripts {
-
-
-
-}
+@await Html.PartialAsync("_DiscoveryShowcase", Model)
@section Meta {
-
-
-
-
-
-
-
-
-
-
★ Audiobook Out Now ★
-
-
- The Alpha Flame: Discovery is now available as a full-length audiobook, narrated to be lived in rather than rushed through.
- It’s a slow-burn, character-led story where quiet moments matter, tension builds gradually, and certain scenes land harder when you hear them spoken.
-
-
-
- Ideal for long drives, late nights, or anyone who prefers to sink into a story through headphones rather than skim it on a screen.
-
-
-
- 🎧 Explore the audiobook
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Your browser does not support the audio element.
-
-
-
Listen to Catherine talking about the book
-
-
-
-
-
-
-
She didn’t go looking for trouble. But when she found Beth, bruised, broken, and terrified, Maggie couldn’t walk away.
-
But nothing prepares her for Beth. As she digs deeper into Beth’s world, Maggie finds herself pulled into the shadows, a seedy underworld of secrets, survival, and control, where loyalty is rare and nothing is guaranteed. The more she uncovers, the more she realises this isn’t someone else’s nightmare. It’s her own.
-
Set in 1983 Birmingham, nearby Redditch, and Barmouth in Wales, The Alpha Flame: Discovery follows the lives of two young women, Beth and Maggie, as they uncover dark family secrets and fight to survive. Gritty and emotionally charged, it explores the bond between two women who refuse to be broken.
-
For Beth, the world is a cold and unforgiving place. Devastation strikes in a single moment, leaving her isolated, shattered, and vulnerable. Alone in the bleak shadows of a city that offers neither refuge nor redemption, she is forced to navigate a relentless cycle of desperation and despair. Every step of her journey tests the limits of her endurance, pushing her into harrowing situations where survival feels like a hollow victory. Beth’s existence is marked by loss, betrayal, and an almost suffocating loneliness that threatens to consume her entirely. Yet, even in the darkest corners of her ordeal, a fragile ember of defiance smoulders within her, a quiet, stubborn refusal to let the world destroy her completely.
-
Maggie, by contrast, is a force of nature, a woman who thrives on her unshakable drive and an unrelenting belief in her own power. Behind her fiery red hair and disarming charm lies a storm of determination and ferocity. Maggie doesn’t just live; she races through life, fuelled by a need for speed and the thrill of freedom. Her Triumph TR6 isn’t just a car; it’s an extension of her spirit, sleek, powerful, and unapologetically bold. On the open road, with the engine roaring and the world blurring past her, she feels invincible. But Maggie’s intensity doesn’t stop at the wheel. Her relationships burn just as brightly. As a lover, she is dominant, passionate, and unafraid to embrace her darker desires. While fiercely loving and loyal, Maggie is also formidable; crossing her isn’t a mistake anyone makes twice.
-
When fate brings Beth and Maggie together, their connection is explosive, a union of two polar opposites that burns with both tenderness and raw power. For Beth, Maggie represents a lifeline, a reminder that love and trust still exist, even in a world that has betrayed her at every turn. For Maggie, Beth awakens a fierce protectiveness and vulnerability she’s rarely allowed herself to feel. Together, they ignite a flame that challenges them to confront their own fears, desires, and limitations.
-
Set against the kaleidoscope of 1983, where synthesised anthems provide a pulsing soundtrack and the streets are alive with the bold styles and rebellious energy of the decade, their story unfolds in a city teeming with danger and intrigue. From high speed chases along winding roads to dimly lit clubs and desolate alleyways, the heroines’ journey is a visceral exploration of survival and freedom. The neon haze of the era contrasts sharply with the stark realities they face, painting a vivid picture of a world where strength and vulnerability coexist.
-
As secrets surface and danger tightens its grip, Beth and Maggie must confront not only the challenges around them but the truths within themselves. Their bond is tested by betrayal, desire, and the shadows of their pasts, but through it all, their flame burns brighter, illuminating their courage and the unbreakable spirit of two heroines determined to rewrite their fates.
-
At its heart, The Alpha Flame is a story of survival, passion, and empowerment. It captures the raw power of human connection against the gritty, vibrant backdrop of an unforgettable era. With its blend of drama, intensity, and unapologetic emotion, this is a story that will leave its mark long after the final page.
-
-
-
-
-
-
-
-@if (showReviews)
-{
- var top = Model.Reviews.Items.Where(x => x.RatingValue == 5).OrderByDescending(y => y.DatePublished).First();
- var fullStars = (int)Math.Floor(top.RatingValue);
- var hasHalfStar = top.RatingValue - fullStars >= 0.5;
- var emptyStars = 5 - fullStars - (hasHalfStar ? 1 : 0);
- var reviewDate = top.DatePublished.ToString("d MMMM yyyy");
-
-
-
-
-
★ Reader Praise ★
-
-
- @for (int i = 0; i < fullStars; i++)
- {
-
- }
- @if (hasHalfStar)
- {
-
- }
- @for (int i = 0; i < emptyStars; i++)
- {
-
- }
-
- @Html.Raw(top.ReviewBody)
-
- @top.AuthorName on
-
- @if (string.IsNullOrEmpty(top.URL))
- {
- @top.SiteName
- }
- else
- {
- @top.SiteName
- }
-
- , @reviewDate
-
-
- @if (Model.Reviews.Items.Count > 1)
- {
-
- }
-
-
-
-}
-
-
-
-
-
-
-
- @await Component.InvokeAsync("BuyPanel", new { ISO2 = Model.UserIso2, Src = Model.Src })
-
-
-
-
-
-
-
-
-
-
The Alpha Flame: Discovery
-
Buy now
-
-
-
-
-
- Chapter Previews
-
-
-
-
-
-
-
-
Chapter 1, Drowning in Silence, Beth
-
Beth returns home to find her mother lifeless in the bath...
-
-
-
-
-
-
-
-
-
-
-
Chapter 2, The Last Lesson, Maggie
-
On Christmas Eve, Maggie nervously heads out for her driving test not knowing the story that will pan out before her...
-
-
-
-
-
-
-
-
-
-
-
Chapter 13, A Name She Never Owned, Susie
-
Susie goes out for a drink with a punter. What on earth could go wrong...
-
-
-
-
-
-
-
-@section Scripts {
-
-
-
-}
+@await Html.PartialAsync("_DiscoveryShowcase", Model)
@section Meta {
+
+
+ Home
+ The Alpha Flame
+ Discovery
+
+
+
+
+
+
The Alpha Flame trilogy / Book one
+
Discovery
+
The Alpha Flame by Catherine Lynwood
+
+ Two young women. One act of courage. A buried truth that turns survival into fire.
+
+
+ She didn't go looking for trouble. But when Maggie finds Beth bruised, broken, and terrified, walking away is no longer an option.
+
+
+
+
+
+
+
+
+
+ 1983
+ Birmingham
+
+
+ Gritty
+ Women's drama
+
+
+ Audio
+ Out now
+
+
+ Core
+ Survival, loyalty, fire
+
+
+
+
+
+
Get the book
+
Choose the edition that belongs on your shelf.
+
Best options are shown for your location, with direct paperback, collector's hardback, ebook, audiobook, and Amazon routes kept together.
+
+
+ @await Component.InvokeAsync("BuyPanel", new { ISO2 = Model.UserIso2, Src = Model.Src, Title = Model.Title })
+
+
+
+
+
+
+
+
+
Inside Discovery
+
Not a fairy tale. Not a soft landing.
+
+ Set in 1983 Birmingham, nearby Redditch, and Barmouth in Wales, The Alpha Flame: Discovery follows Beth and Maggie as they uncover dark family secrets and fight to survive.
+
+
+ It is character-led, emotionally charged fiction about the bond between two women who refuse to be broken by what the world has done to them.
+
+
+
+
+
+
+ 01
+ The Wound
+ Beth's world narrows into loss, danger, and loneliness, with only a fragile ember of defiance left burning.
+
+
+ 02
+ The Spark
+ Maggie is fast, fierce, loyal, and impossible to ignore. When she steps in, the story changes shape.
+
+
+ 03
+ The Bond
+ Their connection is tender, volatile, protective, and dangerous enough to expose every hidden truth.
+
+
+
+
+
+
Audiobook out now
+
Hear it lived in, not rushed through.
+
+ The Alpha Flame: Discovery is available as a full-length audiobook for long drives, late nights, and readers who want the quiet scenes to land with force.
+
+
+ Explore the audiobook
+
+
+ @if (showReviews)
+ {
+ var top = Model.Reviews.Items.Where(x => x.RatingValue == 5).OrderByDescending(y => y.DatePublished).First();
+ var reviewDate = top.DatePublished.ToString("d MMMM yyyy");
+
+
+
+
+
+
+
+
+
+
+ @Html.Raw(top.ReviewBody)
+
+ @top.AuthorName on
+ @if (string.IsNullOrEmpty(top.URL))
+ {
+ @top.SiteName
+ }
+ else
+ {
+ @top.SiteName
+ }
+ , @reviewDate
+
+
+ Read more reviews
+
+ }
+
+
+
+
Open the door
+
Chapter previews
+
+
+
+
+
+
+
+
Chapter 1 / Beth
+
Drowning in Silence
+
Beth returns home to find her mother lifeless in the bath.
+
Read preview
+
+
+
+
+
+
+
+
Chapter 2 / Maggie
+
The Last Lesson
+
On Christmas Eve, Maggie heads out for her driving test, unaware of what is already moving toward her.
+
Read preview
+
+
+
+
+
+
+
+
Chapter 13 / Susie
+
A Name She Never Owned
+
Susie goes out for a drink with a punter. What on earth could go wrong?
+
Read preview
+
+
+
+
+
diff --git a/CatherineLynwood/Views/Shared/_Layout.cshtml b/CatherineLynwood/Views/Shared/_Layout.cshtml
index d2c43ed..b9b049f 100644
--- a/CatherineLynwood/Views/Shared/_Layout.cshtml
+++ b/CatherineLynwood/Views/Shared/_Layout.cshtml
@@ -8,9 +8,13 @@
? "cl-page-guide"
: requestPath.Contains("/the-alpha-flame/blog")
? "cl-page-journal"
- : requestPath == "/" || requestPath == ""
- ? "cl-page-home"
- : "cl-page-general";
+ : requestPath.Contains("/about-catherine-lynwood")
+ ? "cl-page-about"
+ : requestPath.Contains("/verostic-genre")
+ ? "cl-page-verostic"
+ : requestPath == "/" || requestPath == ""
+ ? "cl-page-home"
+ : "cl-page-general";
}
diff --git a/CatherineLynwood/wwwroot/css/calendar-house.css b/CatherineLynwood/wwwroot/css/calendar-house.css
new file mode 100644
index 0000000..20a70dc
--- /dev/null
+++ b/CatherineLynwood/wwwroot/css/calendar-house.css
@@ -0,0 +1,617 @@
+:root {
+ --calendar-ink: #f3ead7;
+ --calendar-muted: #c7bda7;
+ --calendar-paper: #eadfc8;
+ --calendar-brass: #c79a4d;
+ --calendar-blood: #7e2f2a;
+ --calendar-moss: #51604a;
+ --calendar-night: #11150f;
+ --calendar-black: #070806;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+.calendar-house-body {
+ margin: 0;
+ color: var(--calendar-ink);
+ background:
+ radial-gradient(circle at 15% 15%, rgba(126, 47, 42, 0.18), transparent 28rem),
+ linear-gradient(135deg, #10150f 0%, #171611 45%, #070806 100%);
+ font-family: Georgia, "Times New Roman", serif;
+ min-height: 100vh;
+}
+
+.calendar-house-body a {
+ color: inherit;
+}
+
+.calendar-house-header {
+ position: sticky;
+ top: 0;
+ z-index: 20;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 0.75rem clamp(1rem, 3vw, 2.5rem);
+ background: rgba(7, 8, 6, 0.88);
+ border-bottom: 1px solid rgba(199, 154, 77, 0.35);
+ backdrop-filter: blur(16px);
+}
+
+.calendar-house-brand {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
+ text-decoration: none;
+ text-transform: uppercase;
+ letter-spacing: 0.08rem;
+ font-size: 0.9rem;
+}
+
+.brand-mark {
+ display: inline-grid;
+ place-items: center;
+ width: 2.4rem;
+ height: 2.4rem;
+ border: 1px solid var(--calendar-brass);
+ color: var(--calendar-brass);
+}
+
+.calendar-house-nav {
+ display: flex;
+ align-items: center;
+ gap: clamp(0.7rem, 2vw, 1.4rem);
+ font-family: Arial, sans-serif;
+ font-size: 0.88rem;
+}
+
+.calendar-house-nav a {
+ color: var(--calendar-muted);
+ text-decoration: none;
+}
+
+.calendar-house-nav a:hover,
+.calendar-house-nav a:focus {
+ color: var(--calendar-ink);
+}
+
+.calendar-hero {
+ position: relative;
+ min-height: min(860px, calc(100vh - 3.9rem));
+ display: grid;
+ align-items: end;
+ overflow: hidden;
+ border-bottom: 1px solid rgba(199, 154, 77, 0.28);
+}
+
+.calendar-hero-image {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+
+.calendar-hero-shade {
+ position: absolute;
+ inset: 0;
+ background:
+ linear-gradient(90deg, rgba(7, 8, 6, 0.9), rgba(7, 8, 6, 0.35) 52%, rgba(7, 8, 6, 0.78)),
+ linear-gradient(0deg, rgba(7, 8, 6, 0.96), transparent 58%);
+}
+
+.calendar-hero-content {
+ position: relative;
+ z-index: 2;
+ width: min(760px, 100%);
+ padding: clamp(7rem, 13vw, 12rem) clamp(1rem, 6vw, 5rem) clamp(7rem, 12vw, 10rem);
+}
+
+.calendar-kicker {
+ margin: 0 0 0.75rem;
+ color: var(--calendar-brass);
+ font-family: Arial, sans-serif;
+ text-transform: uppercase;
+ letter-spacing: 0.16rem;
+ font-size: 0.78rem;
+}
+
+.calendar-hero h1,
+.calendar-page-hero h1 {
+ margin: 0;
+ max-width: 12ch;
+ font-size: clamp(3.6rem, 12vw, 9rem);
+ line-height: 0.86;
+ font-weight: 500;
+}
+
+.calendar-hero-copy,
+.calendar-page-hero p {
+ max-width: 42rem;
+ color: var(--calendar-muted);
+ font-size: clamp(1.05rem, 2vw, 1.35rem);
+ line-height: 1.6;
+}
+
+.calendar-hero-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.8rem;
+ margin-top: 2rem;
+}
+
+.calendar-button {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.6rem;
+ min-height: 3rem;
+ padding: 0.8rem 1rem;
+ background: var(--calendar-brass);
+ color: var(--calendar-black);
+ border: 1px solid var(--calendar-brass);
+ text-decoration: none;
+ font-family: Arial, sans-serif;
+ font-weight: 700;
+}
+
+.calendar-button:hover,
+.calendar-button:focus {
+ color: var(--calendar-black);
+ background: #d8b06c;
+}
+
+.calendar-button-ghost {
+ color: var(--calendar-ink);
+ background: rgba(7, 8, 6, 0.52);
+}
+
+.calendar-button-ghost:hover,
+.calendar-button-ghost:focus {
+ color: var(--calendar-ink);
+ background: rgba(81, 96, 74, 0.7);
+}
+
+.calendar-hero-numbers {
+ position: absolute;
+ right: clamp(1rem, 4vw, 3rem);
+ bottom: 1.25rem;
+ z-index: 3;
+ display: grid;
+ grid-template-columns: repeat(4, minmax(5.5rem, 1fr));
+ gap: 0.6rem;
+ width: min(620px, calc(100% - 2rem));
+}
+
+.calendar-hero-numbers span,
+.calendar-house-stats div {
+ min-height: 5rem;
+ padding: 0.75rem;
+ background: rgba(7, 8, 6, 0.72);
+ border: 1px solid rgba(199, 154, 77, 0.38);
+ color: var(--calendar-muted);
+ font-family: Arial, sans-serif;
+ text-transform: uppercase;
+ font-size: 0.72rem;
+}
+
+.calendar-hero-numbers strong,
+.calendar-house-stats strong {
+ display: block;
+ color: var(--calendar-ink);
+ font-family: Georgia, "Times New Roman", serif;
+ font-size: 2rem;
+ line-height: 1;
+ font-weight: 500;
+}
+
+.calendar-section,
+.calendar-page-hero {
+ width: min(1180px, calc(100% - 2rem));
+ margin: 0 auto;
+}
+
+.calendar-section {
+ padding: clamp(3rem, 7vw, 6rem) 0;
+}
+
+.calendar-page-hero {
+ padding: clamp(6rem, 10vw, 9rem) 0 clamp(2.5rem, 6vw, 5rem);
+}
+
+.calendar-page-hero h1 {
+ max-width: 13ch;
+ font-size: clamp(3rem, 8vw, 7rem);
+}
+
+.calendar-intro-grid {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) minmax(300px, 0.7fr);
+ gap: clamp(2rem, 6vw, 5rem);
+ align-items: center;
+}
+
+.calendar-intro-grid h2,
+.calendar-note h2,
+.calendar-extract-card h2 {
+ margin: 0 0 1rem;
+ font-size: clamp(2rem, 5vw, 4rem);
+ line-height: 1;
+}
+
+.calendar-intro-grid p,
+.calendar-note p,
+.pattern-grid p,
+.calendar-extract-card p {
+ color: var(--calendar-muted);
+ font-size: 1.08rem;
+ line-height: 1.75;
+}
+
+.calendar-rule-panel,
+.calendar-extract-card {
+ padding: clamp(1rem, 4vw, 2rem);
+ color: #251c12;
+ background:
+ linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent),
+ var(--calendar-paper);
+ box-shadow: 0 1.2rem 4rem rgba(0, 0, 0, 0.42);
+}
+
+.rule-line {
+ display: flex;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 1rem 0;
+ border-bottom: 1px solid rgba(37, 28, 18, 0.24);
+ font-family: Arial, sans-serif;
+}
+
+.rule-line:last-child {
+ border-bottom: 0;
+}
+
+.rule-line span {
+ text-transform: uppercase;
+ font-size: 0.78rem;
+ letter-spacing: 0.08rem;
+}
+
+.rule-line b {
+ text-align: right;
+}
+
+.calendar-mood-board,
+.pattern-grid {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 1rem;
+}
+
+.calendar-mood-board article,
+.pattern-grid article,
+.calendar-note,
+.plan-board {
+ padding: clamp(1.2rem, 3vw, 2rem);
+ background: rgba(7, 8, 6, 0.45);
+ border: 1px solid rgba(199, 154, 77, 0.25);
+}
+
+.calendar-mood-board i {
+ color: var(--calendar-brass);
+ font-size: 2rem;
+}
+
+.calendar-mood-board h3,
+.pattern-grid h2 {
+ margin: 1rem 0 0.6rem;
+ font-size: 1.45rem;
+}
+
+.calendar-mood-board p {
+ color: var(--calendar-muted);
+ line-height: 1.65;
+}
+
+.calendar-blurb {
+ width: min(820px, calc(100% - 2rem));
+ text-align: center;
+}
+
+.calendar-blurb p {
+ margin: 0.45rem 0;
+ font-size: clamp(1.35rem, 3vw, 2.4rem);
+ line-height: 1.25;
+}
+
+.calendar-house-stats {
+ display: grid;
+ grid-template-columns: repeat(6, minmax(0, 1fr));
+ gap: 0.75rem;
+ padding-top: 0;
+}
+
+.calendar-house-stats div {
+ text-align: center;
+}
+
+.plan-board {
+ padding-top: 1.4rem;
+}
+
+.plan-controls {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.6rem;
+ margin-bottom: 1.4rem;
+}
+
+.plan-filter {
+ min-height: 2.6rem;
+ padding: 0.55rem 0.85rem;
+ color: var(--calendar-ink);
+ background: rgba(7, 8, 6, 0.7);
+ border: 1px solid rgba(199, 154, 77, 0.32);
+ font-family: Arial, sans-serif;
+}
+
+.plan-filter.active {
+ color: var(--calendar-black);
+ background: var(--calendar-brass);
+}
+
+.house-diagram {
+ position: relative;
+ display: grid;
+ grid-template-columns: 1fr 1.3fr 1fr;
+ grid-template-rows: 9rem 9rem 9rem;
+ gap: 0.8rem;
+ min-height: 29rem;
+ margin-bottom: 1.5rem;
+}
+
+.wing,
+.central-hall {
+ display: grid;
+ place-items: center;
+ padding: 1rem;
+ border: 1px solid rgba(234, 223, 200, 0.25);
+ background: rgba(234, 223, 200, 0.08);
+ color: var(--calendar-muted);
+ font-family: Arial, sans-serif;
+ text-transform: uppercase;
+ letter-spacing: 0.08rem;
+}
+
+.wing-spring {
+ grid-column: 2;
+ grid-row: 1;
+ background: rgba(81, 96, 74, 0.32);
+}
+
+.wing-summer {
+ grid-column: 3;
+ grid-row: 2;
+ background: rgba(199, 154, 77, 0.2);
+}
+
+.wing-autumn {
+ grid-column: 1;
+ grid-row: 2;
+ background: rgba(126, 47, 42, 0.3);
+}
+
+.wing-winter {
+ grid-column: 2;
+ grid-row: 3;
+ background: rgba(108, 122, 128, 0.22);
+ transform: translateX(1.4rem);
+}
+
+.central-hall {
+ grid-column: 2;
+ grid-row: 2;
+ color: var(--calendar-ink);
+ border-color: var(--calendar-brass);
+ background: rgba(7, 8, 6, 0.72);
+}
+
+.chimneys,
+.doors {
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+}
+
+.chimneys span,
+.doors span {
+ position: absolute;
+ display: block;
+ background: var(--calendar-brass);
+}
+
+.chimneys span {
+ width: 0.55rem;
+ height: 2rem;
+ top: -0.4rem;
+}
+
+.chimneys span:nth-child(1) { left: 12%; }
+.chimneys span:nth-child(2) { left: 19%; }
+.chimneys span:nth-child(3) { left: 28%; }
+.chimneys span:nth-child(4) { left: 36%; }
+.chimneys span:nth-child(5) { left: 43%; }
+.chimneys span:nth-child(6) { left: 51%; }
+.chimneys span:nth-child(7) { left: 58%; }
+.chimneys span:nth-child(8) { left: 65%; }
+.chimneys span:nth-child(9) { left: 73%; }
+.chimneys span:nth-child(10) { left: 81%; }
+.chimneys span:nth-child(11) { left: 88%; }
+.chimneys span:nth-child(12) { left: 94%; }
+
+.doors span {
+ width: 1.8rem;
+ height: 0.38rem;
+ bottom: 0;
+ background: var(--calendar-ink);
+}
+
+.doors span:nth-child(1) { left: 9%; }
+.doors span:nth-child(2) { left: 22%; }
+.doors span:nth-child(3) { left: 36%; }
+.doors span:nth-child(4) { left: 50%; }
+.doors span:nth-child(5) { left: 63%; }
+.doors span:nth-child(6) { left: 76%; }
+.doors span:nth-child(7) { left: 90%; }
+
+.room-grid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ gap: 0.6rem;
+}
+
+.room-tile {
+ display: grid;
+ grid-template-columns: auto 1fr;
+ gap: 0.3rem 0.65rem;
+ min-height: 6.2rem;
+ padding: 0.75rem;
+ color: var(--calendar-ink);
+ background: rgba(17, 21, 15, 0.92);
+ border: 1px solid rgba(199, 154, 77, 0.22);
+ text-align: left;
+}
+
+.room-tile:hover,
+.room-tile:focus {
+ border-color: var(--calendar-brass);
+ transform: translateY(-2px);
+}
+
+.room-tile span {
+ grid-row: span 2;
+ color: var(--calendar-brass);
+ font-size: 1.4rem;
+}
+
+.room-tile strong {
+ font-weight: 500;
+}
+
+.room-tile em {
+ color: var(--calendar-muted);
+ font-family: Arial, sans-serif;
+ font-size: 0.78rem;
+ font-style: normal;
+}
+
+.room-tile.is-hidden {
+ display: none;
+}
+
+.pattern-grid {
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+}
+
+.pattern-grid article span {
+ color: var(--calendar-brass);
+ font-size: 2rem;
+}
+
+.calendar-extract-card {
+ width: min(820px, calc(100% - 2rem));
+}
+
+.calendar-extract-card p {
+ margin: 0.4rem 0;
+ color: #251c12;
+ font-size: clamp(1.2rem, 2.4vw, 2rem);
+}
+
+.calendar-house-footer {
+ display: flex;
+ justify-content: space-between;
+ gap: 1rem;
+ padding: 1.5rem clamp(1rem, 3vw, 2.5rem);
+ color: var(--calendar-muted);
+ border-top: 1px solid rgba(199, 154, 77, 0.28);
+ background: rgba(7, 8, 6, 0.72);
+ font-family: Arial, sans-serif;
+}
+
+.calendar-house-footer div {
+ display: grid;
+ gap: 0.2rem;
+}
+
+@media (max-width: 980px) {
+ .calendar-intro-grid,
+ .calendar-mood-board,
+ .pattern-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .calendar-house-stats {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+
+ .room-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+}
+
+@media (max-width: 720px) {
+ .calendar-house-header,
+ .calendar-house-footer {
+ align-items: flex-start;
+ flex-direction: column;
+ }
+
+ .calendar-house-nav {
+ flex-wrap: wrap;
+ }
+
+ .calendar-hero {
+ min-height: 760px;
+ }
+
+ .calendar-hero-content {
+ padding-top: 5rem;
+ padding-bottom: 12rem;
+ }
+
+ .calendar-hero-numbers {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ left: 1rem;
+ right: 1rem;
+ width: auto;
+ }
+
+ .calendar-house-stats,
+ .room-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .house-diagram {
+ grid-template-columns: 1fr;
+ grid-template-rows: repeat(5, 6.5rem);
+ min-height: auto;
+ }
+
+ .wing-spring,
+ .wing-summer,
+ .wing-autumn,
+ .wing-winter,
+ .central-hall {
+ grid-column: 1;
+ transform: none;
+ }
+
+ .wing-spring { grid-row: 1; }
+ .wing-summer { grid-row: 2; }
+ .central-hall { grid-row: 3; }
+ .wing-autumn { grid-row: 4; }
+ .wing-winter { grid-row: 5; }
+}
diff --git a/CatherineLynwood/wwwroot/css/site.css b/CatherineLynwood/wwwroot/css/site.css
index a6919f3..ec82e79 100644
--- a/CatherineLynwood/wwwroot/css/site.css
+++ b/CatherineLynwood/wwwroot/css/site.css
@@ -853,3 +853,910 @@ body.cl-site-shell {
border-left: 3px solid var(--cl-tea);
}
+/* Experimental Discovery showcase */
+.cl-footer {
+ position: relative;
+ z-index: 2;
+}
+
+.cl-page-home .static-background {
+ background-image:
+ linear-gradient(90deg, rgba(14, 12, 11, 0.84), rgba(32, 24, 23, 0.58) 52%, rgba(14, 12, 11, 0.88)),
+ linear-gradient(0deg, rgba(14, 12, 11, 0.91), rgba(14, 12, 11, 0.34) 48%, rgba(14, 12, 11, 0.68)),
+ url('/images/webp/1983-birmingham-1920.webp');
+ filter: saturate(0.7) contrast(1.06) brightness(0.94);
+}
+
+.cl-discovery-wow {
+ --discovery-black: #070707;
+ --discovery-ink: #11100f;
+ --discovery-card: rgba(17, 14, 13, 0.78);
+ --discovery-glass: rgba(243, 235, 221, 0.08);
+ --discovery-line: rgba(200, 169, 130, 0.26);
+ --discovery-fire: #b74d37;
+ --discovery-teal: #5f8f8a;
+ --discovery-gold: #d4b47d;
+ --discovery-paper: #f5ecdd;
+ position: relative;
+ color: var(--discovery-paper);
+}
+
+.cl-page-discovery .scroll-hint {
+ display: none !important;
+}
+
+.cl-discovery-wow::before {
+ content: "";
+ position: fixed;
+ inset: 0;
+ z-index: -1;
+ pointer-events: none;
+ background:
+ radial-gradient(circle at 12% 18%, rgba(183, 77, 55, 0.28), transparent 21rem),
+ radial-gradient(circle at 88% 16%, rgba(95, 143, 138, 0.22), transparent 26rem),
+ linear-gradient(180deg, rgba(7, 7, 7, 0), rgba(7, 7, 7, 0.88));
+}
+
+.cl-discovery-breadcrumb {
+ margin-bottom: clamp(1.2rem, 3vw, 2.2rem);
+}
+
+.cl-discovery-hero {
+ position: relative;
+ display: grid;
+ grid-template-columns: minmax(0, 1.04fr) minmax(21rem, 0.86fr);
+ gap: clamp(1.5rem, 5vw, 5rem);
+ align-items: center;
+ min-height: min(48rem, calc(100vh - 8.5rem));
+ padding: clamp(1.25rem, 4vw, 4rem);
+ overflow: hidden;
+ background:
+ linear-gradient(135deg, rgba(10, 9, 9, 0.74), rgba(10, 9, 9, 0.9)),
+ url('/images/webp/rubery-hill-hospital-1920.webp') center / cover;
+ border: 1px solid rgba(212, 180, 125, 0.28);
+ box-shadow: 0 2.8rem 7rem rgba(0, 0, 0, 0.54);
+}
+
+.cl-discovery-hero::before,
+.cl-discovery-hero::after {
+ content: "";
+ position: absolute;
+ pointer-events: none;
+}
+
+.cl-discovery-hero::before {
+ inset: 0;
+ background:
+ linear-gradient(90deg, rgba(75, 36, 58, 0.48), transparent 36%),
+ linear-gradient(135deg, transparent 0 58%, rgba(183, 77, 55, 0.24) 58% 59%, transparent 59%),
+ repeating-linear-gradient(90deg, rgba(245, 236, 221, 0.1) 0 1px, transparent 1px 4px);
+ mix-blend-mode: screen;
+ opacity: 0.32;
+}
+
+.cl-discovery-hero::after {
+ right: -12%;
+ bottom: -20%;
+ width: min(48vw, 40rem);
+ aspect-ratio: 1;
+ border: 1px solid rgba(212, 180, 125, 0.18);
+ border-radius: 50%;
+ box-shadow: inset 0 0 0 4rem rgba(95, 143, 138, 0.07), 0 0 5rem rgba(183, 77, 55, 0.16);
+}
+
+.cl-discovery-hero__copy,
+.cl-discovery-hero__art {
+ position: relative;
+ z-index: 1;
+}
+
+.cl-discovery-hero h1 {
+ margin: 0;
+ color: var(--discovery-paper);
+ font-family: var(--cl-heading-font);
+ font-size: clamp(4rem, 10vw, 8.6rem);
+ font-weight: 500;
+ line-height: 0.84;
+}
+
+.cl-discovery-hero__series {
+ margin: 0.8rem 0 1.2rem;
+ color: var(--discovery-gold);
+ font-family: var(--cl-heading-font);
+ font-size: clamp(1.45rem, 3vw, 2.4rem);
+}
+
+.cl-discovery-hero__lead {
+ max-width: 48rem;
+ color: rgba(245, 236, 221, 0.96);
+ font-family: var(--cl-heading-font);
+ font-size: clamp(1.35rem, 2.5vw, 2.15rem);
+ line-height: 1.18;
+}
+
+.cl-discovery-hero__truth {
+ max-width: 42rem;
+ padding-left: 1rem;
+ color: rgba(245, 236, 221, 0.78);
+ border-left: 3px solid var(--discovery-fire);
+}
+
+.cl-discovery-actions {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.8rem;
+ margin-top: 1.6rem;
+}
+
+.cl-discovery-actions .btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.45rem;
+}
+
+.cl-discovery-cover-stack {
+ position: relative;
+ display: grid;
+ justify-items: center;
+ padding: clamp(0.75rem, 2vw, 1.25rem);
+}
+
+.cl-discovery-cover-stack::before {
+ content: "";
+ position: absolute;
+ inset: 9% 1% 5% 18%;
+ background:
+ linear-gradient(135deg, rgba(95, 143, 138, 0.28), rgba(183, 77, 55, 0.2)),
+ url('/images/webp/the-alpha-flame-discovery-open-on-the-table-beth-1200.webp') center / cover;
+ border: 1px solid rgba(212, 180, 125, 0.22);
+ filter: saturate(0.64) brightness(0.7);
+ transform: rotate(3deg);
+}
+
+.cl-discovery-cover {
+ position: relative;
+ width: min(82%, 25rem);
+ border: 1px solid rgba(245, 236, 221, 0.32);
+ box-shadow: 0 2rem 4rem rgba(0, 0, 0, 0.55);
+ filter: saturate(0.88) contrast(1.04);
+ transform: rotate(-2deg);
+}
+
+.cl-discovery-trailer-card {
+ position: absolute;
+ right: 0;
+ bottom: 7%;
+ display: block;
+ width: min(54%, 19rem);
+ overflow: hidden;
+ color: var(--discovery-paper);
+ text-decoration: none;
+ border: 1px solid rgba(245, 236, 221, 0.32);
+ box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.48);
+ transform: rotate(2deg);
+}
+
+.cl-discovery-trailer-card__image {
+ display: block;
+ width: 100%;
+ filter: saturate(0.72) contrast(1.05) brightness(0.78);
+}
+
+.cl-discovery-trailer-card span {
+ position: absolute;
+ left: 0.8rem;
+ bottom: 0.8rem;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+ padding: 0.42rem 0.62rem;
+ color: var(--discovery-paper);
+ background: rgba(75, 36, 58, 0.88);
+ border: 1px solid rgba(245, 236, 221, 0.2);
+ font-weight: 750;
+}
+
+.cl-discovery-proof-strip {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ margin: clamp(1rem, 3vw, 1.75rem) 0 clamp(2rem, 5vw, 4rem);
+ border-top: 1px solid var(--discovery-line);
+ border-bottom: 1px solid var(--discovery-line);
+ background: rgba(7, 7, 7, 0.42);
+ backdrop-filter: blur(8px);
+}
+
+.cl-discovery-proof-strip div {
+ padding: 1rem;
+ border-right: 1px solid var(--discovery-line);
+}
+
+.cl-discovery-proof-strip div:last-child {
+ border-right: 0;
+}
+
+.cl-discovery-proof-strip span,
+.cl-discovery-chapter-grid span {
+ display: block;
+ color: var(--discovery-gold);
+ font-size: 0.76rem;
+ font-weight: 800;
+ text-transform: uppercase;
+}
+
+.cl-discovery-proof-strip strong {
+ display: block;
+ margin-top: 0.2rem;
+ color: var(--discovery-paper);
+ font-family: var(--cl-heading-font);
+ font-size: clamp(1rem, 1.7vw, 1.4rem);
+ font-weight: 500;
+}
+
+.cl-discovery-buy-shell,
+.cl-discovery-story,
+.cl-discovery-audio,
+.cl-discovery-review {
+ margin-bottom: clamp(2rem, 5vw, 4rem);
+}
+
+.cl-discovery-buy-shell {
+ display: grid;
+ grid-template-columns: minmax(16rem, 0.52fr) minmax(0, 1fr);
+ gap: clamp(1rem, 3vw, 2rem);
+ align-items: stretch;
+}
+
+.cl-discovery-buy-intro,
+.cl-discovery-buy-panel,
+.cl-discovery-audio,
+.cl-discovery-review {
+ background:
+ linear-gradient(135deg, rgba(245, 236, 221, 0.11), rgba(245, 236, 221, 0.02)),
+ rgba(7, 7, 7, 0.68);
+ border: 1px solid var(--discovery-line);
+ box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.34);
+ backdrop-filter: blur(12px);
+}
+
+.cl-discovery-buy-intro {
+ padding: clamp(1.2rem, 3vw, 2.2rem);
+}
+
+.cl-discovery-buy-intro h2,
+.cl-discovery-story h2,
+.cl-discovery-audio h2,
+.cl-discovery-section-head h2 {
+ color: var(--discovery-paper);
+ font-size: clamp(2rem, 4vw, 4rem);
+ line-height: 0.95;
+}
+
+.cl-discovery-buy-intro p,
+.cl-discovery-story p,
+.cl-discovery-audio p {
+ color: rgba(245, 236, 221, 0.78);
+}
+
+.cl-discovery-buy-panel {
+ padding: clamp(0.8rem, 2vw, 1.4rem);
+}
+
+.cl-discovery-buy-panel #buyBox {
+ margin: 0;
+ background:
+ linear-gradient(135deg, rgba(245, 236, 221, 0.96), rgba(229, 213, 189, 0.92)) !important;
+}
+
+.cl-discovery-buy-panel #buyBox,
+.cl-discovery-buy-panel #buyBox p,
+.cl-discovery-buy-panel #buyBox li,
+.cl-discovery-buy-panel #buyBox span {
+ color: var(--cl-ink);
+}
+
+.cl-discovery-buy-panel #buyBox h1,
+.cl-discovery-buy-panel #buyBox h2,
+.cl-discovery-buy-panel #buyBox h3,
+.cl-discovery-buy-panel #buyBox h4,
+.cl-discovery-buy-panel #buyBox h5,
+.cl-discovery-buy-panel #buyBox h6 {
+ color: var(--cl-ink) !important;
+}
+
+.cl-discovery-buy-panel #buyBox .btn,
+.cl-discovery-buy-panel #buyBox .btn span,
+.cl-discovery-buy-panel #buyBox .btn i {
+ color: var(--cl-paper) !important;
+}
+
+.cl-discovery-buy-panel #buyBox .price-chip,
+.cl-discovery-buy-panel #buyBox .price-chip span {
+ color: var(--cl-ink) !important;
+}
+
+.cl-discovery-story {
+ display: grid;
+ grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 0.72fr);
+ gap: clamp(1.2rem, 4vw, 3.5rem);
+ align-items: end;
+}
+
+.cl-discovery-story__image {
+ position: relative;
+ overflow: hidden;
+ min-height: 23rem;
+ border: 1px solid var(--discovery-line);
+ box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.44);
+}
+
+.cl-discovery-story__image::after {
+ content: "";
+ position: absolute;
+ inset: 0;
+ background:
+ linear-gradient(90deg, rgba(7, 7, 7, 0.7), transparent 48%),
+ linear-gradient(0deg, rgba(7, 7, 7, 0.72), transparent 42%);
+}
+
+.cl-discovery-story__image img,
+.cl-discovery-story__image picture,
+.cl-discovery-story__image responsive-image {
+ width: 100%;
+}
+
+.cl-discovery-story__copy {
+ padding: clamp(1.2rem, 3vw, 2.5rem) 0;
+}
+
+.cl-discovery-tiles {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 1px;
+ margin-bottom: clamp(2rem, 5vw, 4rem);
+ background: var(--discovery-line);
+}
+
+.cl-discovery-tiles article {
+ padding: clamp(1.2rem, 3vw, 2rem);
+ background:
+ linear-gradient(160deg, rgba(75, 36, 58, 0.24), rgba(7, 7, 7, 0.86)),
+ rgba(7, 7, 7, 0.78);
+}
+
+.cl-discovery-tiles span {
+ color: rgba(212, 180, 125, 0.54);
+ font-family: var(--cl-heading-font);
+ font-size: clamp(2.4rem, 5vw, 4.8rem);
+ line-height: 1;
+}
+
+.cl-discovery-tiles h3,
+.cl-discovery-chapter-grid h3 {
+ color: var(--discovery-paper);
+}
+
+.cl-discovery-tiles p,
+.cl-discovery-review blockquote,
+.cl-discovery-chapter-grid p {
+ color: rgba(245, 236, 221, 0.76);
+}
+
+.cl-discovery-audio {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1.5rem;
+ padding: clamp(1.25rem, 3vw, 2.3rem);
+ border-left: 5px solid var(--discovery-fire);
+}
+
+.cl-discovery-audio h2 {
+ max-width: 46rem;
+}
+
+.cl-discovery-audio p {
+ max-width: 54rem;
+ margin-bottom: 0;
+}
+
+.cl-discovery-review {
+ display: grid;
+ grid-template-columns: 8rem minmax(0, 1fr) auto;
+ gap: clamp(1rem, 3vw, 2rem);
+ align-items: center;
+ padding: clamp(1.25rem, 3vw, 2.3rem);
+}
+
+.cl-discovery-review__stars {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr);
+ gap: 0.18rem;
+ color: var(--discovery-gold);
+}
+
+.cl-discovery-review blockquote {
+ margin: 0;
+ border-left: 0;
+ font-family: var(--cl-heading-font);
+ font-size: clamp(1.1rem, 2vw, 1.45rem);
+}
+
+.cl-discovery-review footer {
+ margin-top: 0.8rem;
+ color: rgba(245, 236, 221, 0.62);
+ font-family: var(--cl-body-font);
+ font-size: 0.95rem;
+}
+
+.cl-discovery-chapters {
+ margin-bottom: clamp(2rem, 5vw, 4rem);
+}
+
+.cl-discovery-section-head {
+ margin-bottom: 1rem;
+}
+
+.cl-discovery-chapter-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: clamp(1rem, 2vw, 1.4rem);
+}
+
+.cl-discovery-chapter-grid article {
+ overflow: hidden;
+ background: rgba(7, 7, 7, 0.72);
+ border: 1px solid var(--discovery-line);
+ box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.28);
+}
+
+.cl-discovery-chapter-grid img {
+ width: 100%;
+ aspect-ratio: 4 / 3;
+ object-fit: cover;
+ filter: saturate(0.75) contrast(1.08) brightness(0.86);
+}
+
+.cl-discovery-chapter-grid article > div {
+ padding: 1.1rem;
+}
+
+.cl-discovery-chapter-grid a:not(.btn) {
+ color: var(--discovery-gold);
+ font-weight: 750;
+}
+
+/* Rich reader warmth pass */
+:root {
+ --cl-chocolate: #150d0d;
+ --cl-chocolate-soft: #241615;
+ --cl-wine: #5c203f;
+ --cl-wine-deep: #351324;
+ --cl-plum: #2a1626;
+ --cl-merlot: #7b2943;
+ --cl-candle: #f0d0a0;
+ --cl-ganache: #c99a73;
+ --cl-velvet-paper: #ead8bd;
+ --cl-cream-shadow: #d6b98f;
+}
+
+.cl-site-shell {
+ background:
+ radial-gradient(circle at 18% 8%, rgba(123, 41, 67, 0.34), transparent 26rem),
+ radial-gradient(circle at 82% 12%, rgba(201, 154, 115, 0.18), transparent 24rem),
+ linear-gradient(135deg, var(--cl-chocolate-soft), var(--cl-chocolate) 48%, #070404) !important;
+}
+
+.cl-site-shell .static-background::before {
+ background:
+ radial-gradient(circle at 18% 14%, rgba(123, 41, 67, 0.4), transparent 25rem),
+ radial-gradient(circle at 78% 18%, rgba(201, 154, 115, 0.22), transparent 26rem),
+ linear-gradient(90deg, rgba(74, 24, 39, 0.18), transparent 45%, rgba(42, 18, 10, 0.3));
+}
+
+.cl-page-about .static-background,
+.cl-page-verostic .static-background {
+ background-image:
+ linear-gradient(90deg, rgba(20, 10, 10, 0.88), rgba(60, 29, 35, 0.58) 52%, rgba(20, 10, 10, 0.9)),
+ linear-gradient(0deg, rgba(20, 10, 10, 0.94), rgba(20, 10, 10, 0.34) 48%, rgba(20, 10, 10, 0.68)),
+ url('/images/webp/beth-and-maggie-rubery-hill-1920.webp');
+ filter: saturate(0.74) contrast(1.08) brightness(0.82);
+}
+
+.cl-page-journal .static-background,
+.cl-page-guide .static-background {
+ filter: saturate(0.74) contrast(1.08) brightness(0.86);
+}
+
+.cl-page-discovery .static-background {
+ filter: saturate(0.5) contrast(1.14) brightness(0.8);
+}
+
+.cl-navbar {
+ min-height: 4.35rem;
+ background:
+ linear-gradient(90deg, rgba(20, 10, 10, 0.98), rgba(58, 24, 39, 0.94) 45%, rgba(20, 10, 10, 0.98)) !important;
+ border-bottom: 1px solid rgba(240, 208, 160, 0.5) !important;
+ box-shadow: 0 1rem 2.6rem rgba(0, 0, 0, 0.42), inset 0 -1px 0 rgba(255, 255, 255, 0.04);
+}
+
+.cl-navbar::before {
+ content: "";
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+ background:
+ radial-gradient(circle at 8% 0%, rgba(240, 208, 160, 0.16), transparent 14rem),
+ linear-gradient(90deg, transparent, rgba(240, 208, 160, 0.08), transparent);
+}
+
+.cl-navbar .container-fluid {
+ position: relative;
+ z-index: 1;
+}
+
+.cl-navbar .navbar-brand {
+ padding: 0.3rem 0.65rem 0.3rem 0;
+}
+
+.cl-navbar .navbar-brand img {
+ height: 50px !important;
+ width: 294px !important;
+ filter: sepia(0.24) saturate(0.95) brightness(1.12) drop-shadow(0 0.25rem 0.8rem rgba(240, 208, 160, 0.18));
+}
+
+.cl-navbar .nav-link {
+ position: relative;
+ margin-inline: 0.08rem;
+ padding: 0.78rem 0.72rem !important;
+ color: rgba(240, 208, 160, 0.82) !important;
+ font-size: 0.9rem;
+ border-radius: 999px;
+ transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
+}
+
+.cl-navbar .nav-link::after {
+ content: "";
+ position: absolute;
+ left: 0.8rem;
+ right: 0.8rem;
+ bottom: 0.38rem;
+ height: 1px;
+ background: linear-gradient(90deg, transparent, var(--cl-candle), transparent);
+ opacity: 0;
+ transform: scaleX(0.4);
+ transition: opacity 180ms ease, transform 180ms ease;
+}
+
+.cl-navbar .nav-link:hover,
+.cl-navbar .nav-link:focus,
+.cl-navbar .nav-link.show {
+ color: #fff3df !important;
+ background: rgba(240, 208, 160, 0.08);
+ transform: translateY(-1px);
+}
+
+.cl-navbar .nav-link:hover::after,
+.cl-navbar .nav-link:focus::after,
+.cl-navbar .nav-link.show::after {
+ opacity: 0.9;
+ transform: scaleX(1);
+}
+
+.cl-navbar .dropdown-menu {
+ padding: 0.45rem;
+ background:
+ linear-gradient(145deg, rgba(46, 20, 27, 0.98), rgba(20, 10, 10, 0.98));
+ border-color: rgba(240, 208, 160, 0.34);
+ box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.48);
+}
+
+.cl-navbar .dropdown-item {
+ color: rgba(240, 208, 160, 0.88);
+ border-radius: 3px;
+}
+
+.cl-navbar .dropdown-item:hover,
+.cl-navbar .dropdown-item:focus {
+ color: #fff3df;
+ background: rgba(123, 41, 67, 0.86);
+}
+
+.cl-site-shell .card,
+.cl-site-shell .character-card,
+.cl-site-shell .accordion-item,
+.cl-site-shell form.bg-white,
+.cl-site-shell .modal-content,
+.cl-site-shell .alert,
+.cl-site-shell .bg-white,
+.cl-site-shell .bg-light {
+ color: #f7ead5 !important;
+ background:
+ linear-gradient(145deg, rgba(255, 233, 197, 0.13), rgba(79, 28, 42, 0.1)),
+ linear-gradient(180deg, rgba(43, 24, 18, 0.92), rgba(25, 13, 12, 0.92)) !important;
+ border-color: rgba(240, 208, 160, 0.28) !important;
+ box-shadow: 0 1.4rem 3.6rem rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.06);
+}
+
+.cl-site-shell .card-header,
+.cl-site-shell .accordion-button {
+ color: #fff0d9 !important;
+ background:
+ linear-gradient(90deg, rgba(92, 32, 63, 0.72), rgba(36, 22, 16, 0.72)) !important;
+ border-bottom-color: rgba(240, 208, 160, 0.2);
+}
+
+.cl-site-shell .card h1,
+.cl-site-shell .card h2,
+.cl-site-shell .card h3,
+.cl-site-shell .card h4,
+.cl-site-shell .card h5,
+.cl-site-shell .card h6,
+.cl-site-shell .accordion-item h2,
+.cl-site-shell .modal-content h5,
+.cl-site-shell .bg-white h1,
+.cl-site-shell .bg-white h2,
+.cl-site-shell .bg-white h3,
+.cl-site-shell .bg-light h1,
+.cl-site-shell .bg-light h2,
+.cl-site-shell .bg-light h3 {
+ color: #fff0d9 !important;
+}
+
+.cl-site-shell .card p,
+.cl-site-shell .card li,
+.cl-site-shell .card dd,
+.cl-site-shell .card dt,
+.cl-site-shell .bg-white p,
+.cl-site-shell .bg-white li,
+.cl-site-shell .bg-light p,
+.cl-site-shell .bg-light li {
+ color: rgba(247, 234, 213, 0.82);
+}
+
+.cl-site-shell .text-black,
+.cl-site-shell .text-dark,
+.cl-site-shell .link-dark,
+.cl-site-shell a.link-dark,
+.cl-site-shell .card a:not(.btn),
+.cl-site-shell .accordion-item a:not(.btn),
+.cl-site-shell .modal-content a:not(.btn),
+.cl-site-shell .bg-white a:not(.btn),
+.cl-site-shell .bg-light a:not(.btn) {
+ color: var(--cl-candle) !important;
+}
+
+.cl-site-shell .text-muted,
+.cl-site-shell .card .text-muted,
+.cl-site-shell .accordion-item .text-muted,
+.cl-site-shell .modal-content .text-muted,
+.cl-site-shell .bg-white .text-muted,
+.cl-site-shell .bg-light .text-muted {
+ color: rgba(234, 216, 189, 0.68) !important;
+}
+
+.cl-site-shell .card-img,
+.cl-site-shell .card-img-top,
+.cl-site-shell .img-fluid,
+.cl-site-shell .fit-image {
+ filter: saturate(0.86) contrast(1.06) brightness(0.94);
+}
+
+.cl-site-shell .btn-dark,
+.cl-site-shell .btn-primary {
+ color: #fff0d9 !important;
+ background:
+ linear-gradient(135deg, var(--cl-merlot), var(--cl-wine-deep)) !important;
+ border-color: rgba(240, 208, 160, 0.3) !important;
+}
+
+.cl-site-shell .btn-dark:hover,
+.cl-site-shell .btn-dark:focus,
+.cl-site-shell .btn-primary:hover,
+.cl-site-shell .btn-primary:focus {
+ color: #fff7ec !important;
+ background:
+ linear-gradient(135deg, #8d314c, #52223b) !important;
+ border-color: rgba(240, 208, 160, 0.52) !important;
+}
+
+.cl-site-shell .btn-outline-dark,
+.cl-site-shell .btn-outline-secondary,
+.cl-site-shell .btn-outline-light {
+ color: var(--cl-candle) !important;
+ border-color: rgba(240, 208, 160, 0.48) !important;
+}
+
+.cl-site-shell .btn-outline-dark:hover,
+.cl-site-shell .btn-outline-dark:focus,
+.cl-site-shell .btn-outline-secondary:hover,
+.cl-site-shell .btn-outline-secondary:focus,
+.cl-site-shell .btn-outline-light:hover,
+.cl-site-shell .btn-outline-light:focus {
+ color: #fff3df !important;
+ background: rgba(92, 32, 63, 0.86) !important;
+}
+
+.cl-site-shell .badge.bg-dark,
+.cl-site-shell .badge.text-bg-secondary,
+.cl-site-shell .badge.text-bg-dark {
+ color: #fff0d9 !important;
+ background: rgba(92, 32, 63, 0.82) !important;
+ border: 1px solid rgba(240, 208, 160, 0.26);
+}
+
+.cl-site-shell audio {
+ filter: sepia(0.16) saturate(0.82);
+}
+
+.cl-site-shell .plyr--audio .plyr__controls {
+ background:
+ linear-gradient(135deg, rgba(255, 243, 223, 0.96), rgba(229, 202, 162, 0.9)) !important;
+ border-color: rgba(92, 32, 63, 0.45) !important;
+}
+
+.cl-site-shell .form-control,
+.cl-site-shell .form-select {
+ color: #2a1812;
+ background-color: #f4e6d0;
+ border-color: rgba(124, 88, 61, 0.42);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
+}
+
+.cl-site-shell blockquote,
+.cl-site-shell .blockquote {
+ color: #f7ead5;
+ border-left-color: rgba(190, 74, 100, 0.86);
+}
+
+.cl-site-shell blockquote p,
+.cl-site-shell .blockquote p {
+ color: #f7ead5;
+ opacity: 0.94;
+}
+
+.cl-journal-filter,
+.cl-feature-card,
+.cl-page-discovery .card,
+.cl-page-discovery .alert,
+.cl-page-guide .card,
+.cl-page-journal .card,
+.cl-page-verostic .accordion-item,
+.cl-page-about section {
+ backdrop-filter: blur(10px);
+}
+
+.cl-page-about section,
+.cl-page-verostic section > .mb-4,
+.cl-page-verostic section > .mb-5 {
+ padding: clamp(1rem, 2vw, 1.5rem);
+ background:
+ linear-gradient(145deg, rgba(255, 233, 197, 0.11), rgba(79, 28, 42, 0.08)),
+ rgba(21, 13, 13, 0.68);
+ border: 1px solid rgba(240, 208, 160, 0.22);
+ box-shadow: 0 1rem 2.8rem rgba(0, 0, 0, 0.28);
+}
+
+.cl-discovery-buy-panel #buyBox {
+ background:
+ linear-gradient(145deg, rgba(83, 47, 34, 0.94), rgba(43, 22, 19, 0.96)),
+ linear-gradient(180deg, rgba(255, 230, 191, 0.1), rgba(92, 32, 63, 0.08)) !important;
+ border-color: rgba(240, 208, 160, 0.36) !important;
+ box-shadow: 0 1.6rem 3.8rem rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.07);
+}
+
+.cl-discovery-buy-panel #buyBox,
+.cl-discovery-buy-panel #buyBox p,
+.cl-discovery-buy-panel #buyBox li,
+.cl-discovery-buy-panel #buyBox span,
+.cl-discovery-buy-panel #buyBox h1,
+.cl-discovery-buy-panel #buyBox h2,
+.cl-discovery-buy-panel #buyBox h3,
+.cl-discovery-buy-panel #buyBox h4,
+.cl-discovery-buy-panel #buyBox h5,
+.cl-discovery-buy-panel #buyBox h6,
+#buyBox,
+#buyBox p,
+#buyBox li,
+#buyBox span,
+#buyBox h1,
+#buyBox h2,
+#buyBox h3,
+#buyBox h4,
+#buyBox h5,
+#buyBox h6 {
+ color: #fff0d9 !important;
+}
+
+#buyBox .btn,
+#buyBox .btn span,
+#buyBox .btn i {
+ color: #fff0d9 !important;
+}
+
+#buyBox .price-chip,
+#buyBox .price-chip span {
+ color: #2a1812 !important;
+ background: #d9b979 !important;
+ border-color: rgba(255, 243, 223, 0.44) !important;
+}
+
+.cl-footer {
+ background:
+ linear-gradient(180deg, rgba(20, 10, 10, 0.98), rgba(10, 5, 5, 0.98)) !important;
+ border-top-color: rgba(240, 208, 160, 0.36) !important;
+}
+
+@media (max-width: 991.98px) {
+ .cl-discovery-hero,
+ .cl-discovery-buy-shell,
+ .cl-discovery-story,
+ .cl-discovery-review {
+ grid-template-columns: 1fr;
+ }
+
+ .cl-discovery-hero {
+ min-height: 0;
+ }
+
+ .cl-discovery-cover-stack {
+ max-width: 34rem;
+ margin-inline: auto;
+ }
+
+ .cl-discovery-review {
+ align-items: start;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .cl-discovery-hero {
+ padding: 1rem;
+ }
+
+ .cl-discovery-hero h1 {
+ font-size: clamp(3.5rem, 17vw, 4.9rem);
+ line-height: 0.92;
+ }
+
+ .cl-discovery-hero__series {
+ font-size: clamp(1.15rem, 6vw, 1.55rem);
+ line-height: 1.16;
+ }
+
+ .cl-discovery-hero__lead {
+ font-size: clamp(1.15rem, 6vw, 1.55rem);
+ line-height: 1.26;
+ }
+
+ .cl-discovery-proof-strip,
+ .cl-discovery-tiles,
+ .cl-discovery-chapter-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .cl-discovery-proof-strip div {
+ border-right: 0;
+ border-bottom: 1px solid var(--discovery-line);
+ }
+
+ .cl-discovery-proof-strip div:last-child {
+ border-bottom: 0;
+ }
+
+ .cl-discovery-audio {
+ display: block;
+ }
+
+ .cl-discovery-audio .btn {
+ margin-top: 1rem;
+ width: 100%;
+ }
+
+ .cl-discovery-trailer-card {
+ right: 0.35rem;
+ bottom: 3%;
+ width: 58%;
+ }
+}
+
diff --git a/CatherineLynwood/wwwroot/css/site.min.css b/CatherineLynwood/wwwroot/css/site.min.css
index 8877cc8..b4cab92 100644
--- a/CatherineLynwood/wwwroot/css/site.min.css
+++ b/CatherineLynwood/wwwroot/css/site.min.css
@@ -1 +1 @@
-html{font-size:14px}@media (min-width:768px){html{font-size:16px}}html{position:relative}.content{min-height:93vh}.content{position:relative;z-index:1}section{padding-bottom:10px}.w-sm-50{width:100%}@media (min-width:576px){.w-sm-50{width:50%}}.w-md-50{width:100%}@media (min-width:768px){.w-md-50{width:50%}}.excerpt-section{background-color:#f8f9fa}.scene-image{max-width:100%;height:auto;border-radius:10px}.audio-player{margin:1rem 0}.chapter-text{font-family:'Georgia',serif;font-size:1.1rem;line-height:1.6;color:#333}.chapter-title{font-size:1.5rem;font-weight:bold;color:#555;margin-bottom:1rem}.responsive-border{border-right:3px solid #000}@media (max-width:575.98px){.responsive-border{border-right:none;border-bottom:3px solid #000}}.fit-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.share-button{padding:8px 12px;margin-left:10px;margin-right:10px;color:#fff;text-decoration:none;border-radius:4px;font-size:14px}.share-button.facebook{background-color:#3b5998}.share-button.twitter{background-color:#1da1f2}.share-button.linkedin{background-color:#0077b5}.share-button.pinterest{background-color:#bd081c}.share-button.instagram{background-color:#E4405F}.share-button.tiktok{background-color:#010101}.follow-icon{color:#FFF;font-size:1.5rem;margin:0 6px;transition:color 0.2s ease;text-decoration:none;cursor:pointer}.follow-icon:hover{color:#0077b5}#companion-body{overflow-y:auto}.tagline-shadow{text-shadow:2px 2px 4px rgba(0,0,0,0.8)}:root{--cl-ink:#181514;--cl-ink-soft:#26211f;--cl-paper:#f3ebdd;--cl-paper-deep:#e5d5bd;--cl-rose:#8e3a4a;--cl-mulberry:#4b243a;--cl-tea:#c8a982;--cl-rain:#73706d;--cl-copper:#b56945;--cl-line:rgba(200,169,130,0.36);--cl-shadow:0 1.1rem 2.8rem rgba(16,12,10,0.28);--cl-heading-font:Georgia,"Times New Roman",serif;--cl-body-font:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif}body.cl-site-shell{color:var(--cl-paper);background:radial-gradient(circle at 18% 8%,rgba(142,58,74,0.24),transparent 26rem),linear-gradient(135deg,#211b19 0%,#181514 48%,#090807 100%) !important;font-family:var(--cl-body-font);letter-spacing:0}.cl-site-shell .static-background{background-image:linear-gradient(rgba(24,21,20,0.78),rgba(24,21,20,0.9)),url('/images/webp/the-alpha-flame-reckoning-blank-960.webp');filter:saturate(0.74) contrast(1.06)}.cl-site-shell .video-overlay{background:linear-gradient(90deg,rgba(24,21,20,0.88),rgba(24,21,20,0.42) 48%,rgba(24,21,20,0.82)),linear-gradient(0deg,rgba(24,21,20,0.92),transparent 58%) !important}.cl-site-shell h1,.cl-site-shell h2,.cl-site-shell h3,.cl-site-shell h4,.cl-site-shell .display-1,.cl-site-shell .display-2,.cl-site-shell .display-3,.cl-site-shell .display-4,.cl-site-shell .display-5,.cl-site-shell .display-6{color:var(--cl-paper);font-family:var(--cl-heading-font);font-weight:500;letter-spacing:0}.cl-site-shell p,.cl-site-shell li{line-height:1.72}.cl-site-shell a{color:var(--cl-tea);text-underline-offset:0.18em}.cl-site-shell a:hover,.cl-site-shell a:focus{color:var(--cl-paper)}.cl-site-shell .lead{color:rgba(243,235,221,0.86);font-family:var(--cl-heading-font)}.bg-primary{background-color:var(--cl-ink) !important}.bg-dark{background-color:rgba(17,14,13,0.94) !important}.text-primary,.text-primary-emphasis{color:var(--cl-tea) !important}.text-muted{color:rgba(38,33,31,0.62) !important}.cl-site-shell .text-white .text-muted,.cl-site-shell .bg-dark .text-muted,.cl-site-shell>.content .text-muted{color:rgba(243,235,221,0.68) !important}.border-primary,.border-dark{border-color:var(--cl-line) !important}.cl-navbar{border-bottom-color:rgba(200,169,130,0.34) !important;box-shadow:0 0.75rem 2.5rem rgba(0,0,0,0.25);backdrop-filter:blur(14px)}.cl-navbar .navbar-brand img{filter:sepia(0.16) saturate(0.78) brightness(1.05)}.cl-navbar .nav-link{color:rgba(243,235,221,0.76) !important;font-size:0.88rem;font-weight:650;letter-spacing:0.02em}.cl-navbar .nav-link:hover,.cl-navbar .nav-link:focus,.cl-navbar .nav-link.show{color:var(--cl-paper) !important}.cl-navbar .dropdown-menu{background:var(--cl-paper);border:1px solid var(--cl-line);border-radius:4px;box-shadow:var(--cl-shadow)}.cl-navbar .dropdown-item{color:var(--cl-ink)}.cl-navbar .dropdown-item:hover,.cl-navbar .dropdown-item:focus{color:var(--cl-paper);background:var(--cl-mulberry)}.cl-main-container{padding-top:1rem;padding-bottom:3rem}.breadcrumb{--bs-breadcrumb-divider-color:rgba(243,235,221,0.48);margin-bottom:1.35rem;font-size:0.82rem;letter-spacing:0.04em;text-transform:uppercase}.breadcrumb-item,.breadcrumb-item a,.breadcrumb-item a:visited{color:rgba(243,235,221,0.72) !important}.breadcrumb-item.active{color:var(--cl-paper) !important}.cl-site-shell .card,.cl-site-shell .character-card,.cl-site-shell .accordion-item,.cl-site-shell .modal-content,.cl-site-shell form.bg-white,.cl-panel{color:var(--cl-ink);background:linear-gradient(135deg,rgba(255,255,255,0.34),rgba(255,255,255,0)),var(--cl-paper);border:1px solid rgba(75,36,58,0.22) !important;border-radius:6px !important;box-shadow:var(--cl-shadow)}.cl-site-shell .card-header{color:var(--cl-ink);background:rgba(229,213,189,0.78);border-bottom:1px solid rgba(75,36,58,0.18)}.cl-site-shell .card h1,.cl-site-shell .card h2,.cl-site-shell .card h3,.cl-site-shell .card h4,.cl-site-shell .card h5,.cl-site-shell .card h6,.cl-site-shell .accordion-item h2,.cl-site-shell .modal-content h5{color:var(--cl-ink)}.cl-site-shell .card .text-muted,.cl-site-shell .accordion-item .text-muted,.cl-site-shell .modal-content .text-muted{color:rgba(38,33,31,0.62) !important}.cl-site-shell .card a:not(.btn),.cl-site-shell .accordion-item a:not(.btn),.cl-site-shell .modal-content a:not(.btn){color:var(--cl-mulberry);font-weight:650}.cl-site-shell .card-img,.cl-site-shell .card-img-top,.cl-site-shell .img-fluid,.cl-site-shell .fit-image{filter:saturate(0.88) contrast(1.03)}.cl-site-shell .rounded-4,.cl-site-shell .rounded-5{border-radius:6px !important}.cl-site-shell .btn{border-radius:2px;font-weight:750;letter-spacing:0.015em;box-shadow:none}.cl-site-shell .btn-dark{color:var(--cl-paper);background:var(--cl-mulberry);border-color:var(--cl-mulberry)}.cl-site-shell .btn-dark:hover,.cl-site-shell .btn-dark:focus{color:var(--cl-paper);background:var(--cl-rose);border-color:var(--cl-rose)}.cl-site-shell .btn-outline-dark,.cl-site-shell .btn-outline-secondary,.cl-site-shell .btn-outline-light{color:var(--cl-paper);background:transparent;border-color:rgba(200,169,130,0.56)}.cl-site-shell .btn-outline-dark:hover,.cl-site-shell .btn-outline-dark:focus,.cl-site-shell .btn-outline-secondary:hover,.cl-site-shell .btn-outline-secondary:focus,.cl-site-shell .btn-outline-light:hover,.cl-site-shell .btn-outline-light:focus{color:var(--cl-paper);background:var(--cl-mulberry);border-color:var(--cl-mulberry)}.cl-site-shell .card .btn-outline-dark,.cl-site-shell .card .btn-outline-secondary,.cl-site-shell form.bg-white .btn-outline-dark,.cl-site-shell form.bg-white .btn-outline-secondary,.cl-site-shell .modal-content .btn-outline-dark{color:var(--cl-mulberry);border-color:rgba(75,36,58,0.56)}.cl-site-shell .badge.bg-dark{color:var(--cl-paper);background:var(--cl-mulberry) !important;border-radius:2px}.cl-site-shell .badge.bg-warning{color:var(--cl-ink) !important;background:var(--cl-tea) !important;border-radius:2px}.cl-site-shell .form-control,.cl-site-shell .form-select,.cl-site-shell .input-group-text{color:var(--cl-ink);background-color:#fffaf2;border-color:rgba(75,36,58,0.26);border-radius:2px}.cl-site-shell .form-control:focus,.cl-site-shell .form-select:focus{border-color:var(--cl-rose);box-shadow:0 0 0 0.18rem rgba(142,58,74,0.18)}.cl-site-shell .pagination{--bs-pagination-color:var(--cl-mulberry);--bs-pagination-hover-color:var(--cl-rose);--bs-pagination-active-color:var(--cl-paper);--bs-pagination-active-bg:var(--cl-mulberry);--bs-pagination-active-border-color:var(--cl-mulberry);--bs-pagination-focus-box-shadow:0 0 0 0.18rem rgba(142,58,74,0.18)}.cl-editorial-hero .fa-coffee{--fa-primary-color:var(--cl-paper) !important;--fa-secondary-color:var(--cl-tea) !important}.cl-site-shell blockquote{border-left-color:var(--cl-rose);color:var(--cl-ink)}.cl-site-shell hr{border-color:rgba(200,169,130,0.38);opacity:1}.hero-video-container,.trailer-wrapper{border-color:rgba(200,169,130,0.55);border-radius:6px;box-shadow:0 1.2rem 3rem rgba(0,0,0,0.46)}.trailer-play-btn{background:rgba(75,36,58,0.82)}.trailer-play-btn:hover{background:rgba(142,58,74,0.9)}#buyBox{background:linear-gradient(135deg,rgba(255,255,255,0.32),rgba(255,255,255,0)),var(--cl-paper) !important;border-color:rgba(75,36,58,0.28) !important;border-radius:6px !important;color:var(--cl-ink)}.price-chip{color:var(--cl-ink);background:var(--cl-tea);border-color:rgba(75,36,58,0.28)}.chapter-text-scroll{background-color:var(--cl-paper);border-color:rgba(75,36,58,0.28);color:var(--cl-ink)}.chapter-text-scroll p.active{background-color:rgba(142,58,74,0.12);border-left-color:var(--cl-rose)}.progress-container,.progress-bar{background-color:var(--cl-mulberry)}.chapter-tick{background:var(--cl-tea)}.chapter-tick-label{color:var(--cl-paper)}.share-button{border-radius:2px;background-color:var(--cl-mulberry) !important}.share-button:hover,.follow-icon:hover{color:var(--cl-paper);background-color:var(--cl-rose) !important}.cl-footer{border-top-color:rgba(200,169,130,0.34) !important;color:rgba(243,235,221,0.72)}.scroll-hint{color:var(--cl-paper);background:rgba(75,36,58,0.82);box-shadow:0 0.7rem 1.8rem rgba(0,0,0,0.36)}.cl-editorial-hero{position:relative;padding:clamp(2.25rem,6vw,5.5rem);margin-bottom:clamp(1.5rem,4vw,3rem);background:linear-gradient(135deg,rgba(75,36,58,0.9),rgba(24,21,20,0.86)),url('/images/webp/the-alpha-flame-reckoning-blank-960.webp') center / cover;border:1px solid rgba(200,169,130,0.34);box-shadow:var(--cl-shadow)}.cl-editorial-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,20,0.08),rgba(24,21,20,0.54));pointer-events:none}.cl-editorial-hero>*{position:relative;z-index:1}.cl-kicker{color:var(--cl-tea);font-size:0.78rem;font-weight:750;letter-spacing:0.16em;text-transform:uppercase}.cl-feature-card{overflow:hidden}.cl-feature-card .card-body{padding:clamp(1.25rem,3vw,2.5rem)}.cl-journal-filter{background:linear-gradient(135deg,rgba(255,255,255,0.26),rgba(255,255,255,0)),rgba(243,235,221,0.94) !important}.cl-site-shell .accordion-button{color:var(--cl-ink);background:var(--cl-paper);box-shadow:none}.cl-site-shell .accordion-button:not(.collapsed){color:var(--cl-paper);background:var(--cl-mulberry)}@media (max-width:575.98px){.cl-main-container{padding-left:1rem;padding-right:1rem}.cl-navbar .navbar-brand img{width:220px !important;height:auto !important}}#background-wrapper,.cl-site-shell .video-background,.cl-site-shell .static-background{position:fixed;inset:0;width:100%;height:100%}#background-wrapper{z-index:0;overflow:hidden}.cl-site-shell .video-background,.cl-site-shell .static-background{z-index:0}.cl-site-shell .video-background video{display:none !important}.cl-site-shell .static-background{background-image:linear-gradient(90deg,rgba(14,12,11,0.92),rgba(30,22,22,0.74) 52%,rgba(14,12,11,0.94)),linear-gradient(0deg,rgba(14,12,11,0.96),rgba(14,12,11,0.42) 45%,rgba(14,12,11,0.78)),url('/images/webp/1983-birmingham-1920.webp');background-position:center;background-size:cover;filter:saturate(0.62) contrast(1.08) brightness(0.82)}.cl-site-shell .static-background::before,.cl-site-shell .static-background::after{content:"";position:absolute;inset:0;pointer-events:none}.cl-site-shell .static-background::before{background:radial-gradient(circle at 24% 18%,rgba(142,58,74,0.32),transparent 24rem),radial-gradient(circle at 82% 30%,rgba(181,105,69,0.18),transparent 26rem)}.cl-site-shell .static-background::after{opacity:0.16;mix-blend-mode:soft-light;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,0.18) 0 1px,transparent 1px 3px),linear-gradient(rgba(255,255,255,0.08),transparent)}.cl-page-home .static-background,.cl-page-guide .static-background{background-image:linear-gradient(90deg,rgba(14,12,11,0.92),rgba(32,24,23,0.68) 52%,rgba(14,12,11,0.94)),linear-gradient(0deg,rgba(14,12,11,0.98),rgba(14,12,11,0.42) 48%,rgba(14,12,11,0.78)),url('/images/webp/1983-birmingham-1920.webp')}.cl-page-discovery .static-background{background-image:linear-gradient(90deg,rgba(12,12,12,0.96),rgba(30,29,26,0.68) 48%,rgba(12,12,12,0.94)),linear-gradient(0deg,rgba(12,12,12,0.98),rgba(12,12,12,0.44) 52%,rgba(12,12,12,0.76)),url('/images/webp/rubery-hill-hospital-1920.webp');background-position:center top;filter:saturate(0.42) contrast(1.16) brightness(0.74)}.cl-page-journal .static-background{background-image:linear-gradient(90deg,rgba(17,13,12,0.94),rgba(44,28,29,0.7) 52%,rgba(17,13,12,0.96)),linear-gradient(0deg,rgba(17,13,12,0.98),rgba(17,13,12,0.42) 48%,rgba(17,13,12,0.76)),url('/images/webp/the-alpha-flame-discovery-open-on-the-table-maggie-1920.webp')}.cl-page-reckoning .static-background{background-image:linear-gradient(90deg,rgba(12,10,9,0.92),rgba(35,22,21,0.68) 52%,rgba(12,10,9,0.94)),linear-gradient(0deg,rgba(12,10,9,0.98),rgba(12,10,9,0.38) 48%,rgba(12,10,9,0.78)),url('/images/webp/walnut-desktop.webp')}.cl-editorial-hero{overflow:hidden;background:linear-gradient(135deg,rgba(75,36,58,0.88),rgba(24,21,20,0.76) 58%,rgba(24,21,20,0.92)),url('/images/webp/1983-birmingham-1400.webp') center / cover;backdrop-filter:blur(1px)}.cl-page-discovery .cl-editorial-hero{background:linear-gradient(135deg,rgba(75,36,58,0.88),rgba(24,21,20,0.78) 58%,rgba(24,21,20,0.94)),url('/images/webp/rubery-hill-hospital-1400.webp') center top / cover}.cl-cover-feature{position:relative;isolation:isolate;display:inline-block;width:min(100%,31rem);padding:clamp(0.55rem,1.6vw,0.95rem);background:linear-gradient(145deg,rgba(243,235,221,0.14),rgba(75,36,58,0.26)),rgba(16,12,10,0.7);border:1px solid rgba(200,169,130,0.44);border-radius:6px;box-shadow:0 2rem 4.6rem rgba(0,0,0,0.52)}.cl-cover-feature::before{content:"";position:absolute;inset:0.55rem;z-index:-1;border:1px solid rgba(243,235,221,0.14)}.cl-cover-feature__image{display:block;width:100%;border-radius:4px;filter:saturate(0.82) contrast(1.04) brightness(0.92)}.cl-cover-feature__label{position:absolute;right:clamp(1rem,3vw,1.75rem);bottom:clamp(1rem,3vw,1.75rem);max-width:calc(100% - 2rem);padding:0.55rem 0.75rem;color:var(--cl-paper);text-align:right;background:rgba(24,21,20,0.72);border-left:3px solid var(--cl-tea);backdrop-filter:blur(3px)}.cl-cover-feature__label span,.cl-cover-feature__label strong{display:block;line-height:1.05}.cl-cover-feature__label span{color:var(--cl-tea);font-size:0.72rem;font-weight:750;letter-spacing:0.14em;text-transform:uppercase}.cl-cover-feature__label strong{font-family:var(--cl-heading-font);font-size:clamp(1.45rem,4vw,2.55rem);font-weight:500}.cl-trailer-still{position:relative;display:block;overflow:hidden;color:var(--cl-paper);text-decoration:none;border:1px solid rgba(75,36,58,0.28);border-radius:6px;box-shadow:0 1.1rem 2.6rem rgba(24,21,20,0.24)}.cl-trailer-still__image{display:block;width:100%;filter:saturate(0.74) contrast(1.07) brightness(0.9);transition:transform 220ms ease,filter 220ms ease}.cl-trailer-still__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,20,0.52),transparent 46%,rgba(75,36,58,0.34)),linear-gradient(0deg,rgba(24,21,20,0.54),transparent 46%)}.cl-trailer-still__button{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;gap:0.6rem;padding:0.72rem 0.95rem;color:var(--cl-paper);background:rgba(75,36,58,0.88);border:1px solid rgba(243,235,221,0.28);border-radius:999px;font-weight:750;transform:translate(-50%,-50%);box-shadow:0 0.8rem 2rem rgba(0,0,0,0.32)}.cl-trailer-still:hover,.cl-trailer-still:focus{color:var(--cl-paper)}.cl-trailer-still:hover .cl-trailer-still__image,.cl-trailer-still:focus .cl-trailer-still__image{filter:saturate(0.86) contrast(1.1) brightness(0.98);transform:scale(1.025)}.cl-trailer-still--portrait{max-width:28rem;margin-inline:auto}.cl-site-shell .character-card{backdrop-filter:blur(4px)}.cl-site-shell .carousel-caption{color:var(--cl-paper);background:rgba(24,21,20,0.72);border-left:3px solid var(--cl-tea)}
\ No newline at end of file
+html{font-size:14px}@media (min-width:768px){html{font-size:16px}}html{position:relative}.content{min-height:93vh}.content{position:relative;z-index:1}section{padding-bottom:10px}.w-sm-50{width:100%}@media (min-width:576px){.w-sm-50{width:50%}}.w-md-50{width:100%}@media (min-width:768px){.w-md-50{width:50%}}.excerpt-section{background-color:#f8f9fa}.scene-image{max-width:100%;height:auto;border-radius:10px}.audio-player{margin:1rem 0}.chapter-text{font-family:'Georgia',serif;font-size:1.1rem;line-height:1.6;color:#333}.chapter-title{font-size:1.5rem;font-weight:bold;color:#555;margin-bottom:1rem}.responsive-border{border-right:3px solid #000}@media (max-width:575.98px){.responsive-border{border-right:none;border-bottom:3px solid #000}}.fit-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.share-button{padding:8px 12px;margin-left:10px;margin-right:10px;color:#fff;text-decoration:none;border-radius:4px;font-size:14px}.share-button.facebook{background-color:#3b5998}.share-button.twitter{background-color:#1da1f2}.share-button.linkedin{background-color:#0077b5}.share-button.pinterest{background-color:#bd081c}.share-button.instagram{background-color:#E4405F}.share-button.tiktok{background-color:#010101}.follow-icon{color:#FFF;font-size:1.5rem;margin:0 6px;transition:color 0.2s ease;text-decoration:none;cursor:pointer}.follow-icon:hover{color:#0077b5}#companion-body{overflow-y:auto}.tagline-shadow{text-shadow:2px 2px 4px rgba(0,0,0,0.8)}:root{--cl-ink:#181514;--cl-ink-soft:#26211f;--cl-paper:#f3ebdd;--cl-paper-deep:#e5d5bd;--cl-rose:#8e3a4a;--cl-mulberry:#4b243a;--cl-tea:#c8a982;--cl-rain:#73706d;--cl-copper:#b56945;--cl-line:rgba(200,169,130,0.36);--cl-shadow:0 1.1rem 2.8rem rgba(16,12,10,0.28);--cl-heading-font:Georgia,"Times New Roman",serif;--cl-body-font:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif}body.cl-site-shell{color:var(--cl-paper);background:radial-gradient(circle at 18% 8%,rgba(142,58,74,0.24),transparent 26rem),linear-gradient(135deg,#211b19 0%,#181514 48%,#090807 100%) !important;font-family:var(--cl-body-font);letter-spacing:0}.cl-site-shell .static-background{background-image:linear-gradient(rgba(24,21,20,0.78),rgba(24,21,20,0.9)),url('/images/webp/the-alpha-flame-reckoning-blank-960.webp');filter:saturate(0.74) contrast(1.06)}.cl-site-shell .video-overlay{background:linear-gradient(90deg,rgba(24,21,20,0.88),rgba(24,21,20,0.42) 48%,rgba(24,21,20,0.82)),linear-gradient(0deg,rgba(24,21,20,0.92),transparent 58%) !important}.cl-site-shell h1,.cl-site-shell h2,.cl-site-shell h3,.cl-site-shell h4,.cl-site-shell .display-1,.cl-site-shell .display-2,.cl-site-shell .display-3,.cl-site-shell .display-4,.cl-site-shell .display-5,.cl-site-shell .display-6{color:var(--cl-paper);font-family:var(--cl-heading-font);font-weight:500;letter-spacing:0}.cl-site-shell p,.cl-site-shell li{line-height:1.72}.cl-site-shell a{color:var(--cl-tea);text-underline-offset:0.18em}.cl-site-shell a:hover,.cl-site-shell a:focus{color:var(--cl-paper)}.cl-site-shell .lead{color:rgba(243,235,221,0.86);font-family:var(--cl-heading-font)}.bg-primary{background-color:var(--cl-ink) !important}.bg-dark{background-color:rgba(17,14,13,0.94) !important}.text-primary,.text-primary-emphasis{color:var(--cl-tea) !important}.text-muted{color:rgba(38,33,31,0.62) !important}.cl-site-shell .text-white .text-muted,.cl-site-shell .bg-dark .text-muted,.cl-site-shell>.content .text-muted{color:rgba(243,235,221,0.68) !important}.border-primary,.border-dark{border-color:var(--cl-line) !important}.cl-navbar{border-bottom-color:rgba(200,169,130,0.34) !important;box-shadow:0 0.75rem 2.5rem rgba(0,0,0,0.25);backdrop-filter:blur(14px)}.cl-navbar .navbar-brand img{filter:sepia(0.16) saturate(0.78) brightness(1.05)}.cl-navbar .nav-link{color:rgba(243,235,221,0.76) !important;font-size:0.88rem;font-weight:650;letter-spacing:0.02em}.cl-navbar .nav-link:hover,.cl-navbar .nav-link:focus,.cl-navbar .nav-link.show{color:var(--cl-paper) !important}.cl-navbar .dropdown-menu{background:var(--cl-paper);border:1px solid var(--cl-line);border-radius:4px;box-shadow:var(--cl-shadow)}.cl-navbar .dropdown-item{color:var(--cl-ink)}.cl-navbar .dropdown-item:hover,.cl-navbar .dropdown-item:focus{color:var(--cl-paper);background:var(--cl-mulberry)}.cl-main-container{padding-top:1rem;padding-bottom:3rem}.breadcrumb{--bs-breadcrumb-divider-color:rgba(243,235,221,0.48);margin-bottom:1.35rem;font-size:0.82rem;letter-spacing:0.04em;text-transform:uppercase}.breadcrumb-item,.breadcrumb-item a,.breadcrumb-item a:visited{color:rgba(243,235,221,0.72) !important}.breadcrumb-item.active{color:var(--cl-paper) !important}.cl-site-shell .card,.cl-site-shell .character-card,.cl-site-shell .accordion-item,.cl-site-shell .modal-content,.cl-site-shell form.bg-white,.cl-panel{color:var(--cl-ink);background:linear-gradient(135deg,rgba(255,255,255,0.34),rgba(255,255,255,0)),var(--cl-paper);border:1px solid rgba(75,36,58,0.22) !important;border-radius:6px !important;box-shadow:var(--cl-shadow)}.cl-site-shell .card-header{color:var(--cl-ink);background:rgba(229,213,189,0.78);border-bottom:1px solid rgba(75,36,58,0.18)}.cl-site-shell .card h1,.cl-site-shell .card h2,.cl-site-shell .card h3,.cl-site-shell .card h4,.cl-site-shell .card h5,.cl-site-shell .card h6,.cl-site-shell .accordion-item h2,.cl-site-shell .modal-content h5{color:var(--cl-ink)}.cl-site-shell .card .text-muted,.cl-site-shell .accordion-item .text-muted,.cl-site-shell .modal-content .text-muted{color:rgba(38,33,31,0.62) !important}.cl-site-shell .card a:not(.btn),.cl-site-shell .accordion-item a:not(.btn),.cl-site-shell .modal-content a:not(.btn){color:var(--cl-mulberry);font-weight:650}.cl-site-shell .card-img,.cl-site-shell .card-img-top,.cl-site-shell .img-fluid,.cl-site-shell .fit-image{filter:saturate(0.88) contrast(1.03)}.cl-site-shell .rounded-4,.cl-site-shell .rounded-5{border-radius:6px !important}.cl-site-shell .btn{border-radius:2px;font-weight:750;letter-spacing:0.015em;box-shadow:none}.cl-site-shell .btn-dark{color:var(--cl-paper);background:var(--cl-mulberry);border-color:var(--cl-mulberry)}.cl-site-shell .btn-dark:hover,.cl-site-shell .btn-dark:focus{color:var(--cl-paper);background:var(--cl-rose);border-color:var(--cl-rose)}.cl-site-shell .btn-outline-dark,.cl-site-shell .btn-outline-secondary,.cl-site-shell .btn-outline-light{color:var(--cl-paper);background:transparent;border-color:rgba(200,169,130,0.56)}.cl-site-shell .btn-outline-dark:hover,.cl-site-shell .btn-outline-dark:focus,.cl-site-shell .btn-outline-secondary:hover,.cl-site-shell .btn-outline-secondary:focus,.cl-site-shell .btn-outline-light:hover,.cl-site-shell .btn-outline-light:focus{color:var(--cl-paper);background:var(--cl-mulberry);border-color:var(--cl-mulberry)}.cl-site-shell .card .btn-outline-dark,.cl-site-shell .card .btn-outline-secondary,.cl-site-shell form.bg-white .btn-outline-dark,.cl-site-shell form.bg-white .btn-outline-secondary,.cl-site-shell .modal-content .btn-outline-dark{color:var(--cl-mulberry);border-color:rgba(75,36,58,0.56)}.cl-site-shell .badge.bg-dark{color:var(--cl-paper);background:var(--cl-mulberry) !important;border-radius:2px}.cl-site-shell .badge.bg-warning{color:var(--cl-ink) !important;background:var(--cl-tea) !important;border-radius:2px}.cl-site-shell .form-control,.cl-site-shell .form-select,.cl-site-shell .input-group-text{color:var(--cl-ink);background-color:#fffaf2;border-color:rgba(75,36,58,0.26);border-radius:2px}.cl-site-shell .form-control:focus,.cl-site-shell .form-select:focus{border-color:var(--cl-rose);box-shadow:0 0 0 0.18rem rgba(142,58,74,0.18)}.cl-site-shell .pagination{--bs-pagination-color:var(--cl-mulberry);--bs-pagination-hover-color:var(--cl-rose);--bs-pagination-active-color:var(--cl-paper);--bs-pagination-active-bg:var(--cl-mulberry);--bs-pagination-active-border-color:var(--cl-mulberry);--bs-pagination-focus-box-shadow:0 0 0 0.18rem rgba(142,58,74,0.18)}.cl-editorial-hero .fa-coffee{--fa-primary-color:var(--cl-paper) !important;--fa-secondary-color:var(--cl-tea) !important}.cl-site-shell blockquote{border-left-color:var(--cl-rose);color:var(--cl-ink)}.cl-site-shell hr{border-color:rgba(200,169,130,0.38);opacity:1}.hero-video-container,.trailer-wrapper{border-color:rgba(200,169,130,0.55);border-radius:6px;box-shadow:0 1.2rem 3rem rgba(0,0,0,0.46)}.trailer-play-btn{background:rgba(75,36,58,0.82)}.trailer-play-btn:hover{background:rgba(142,58,74,0.9)}#buyBox{background:linear-gradient(135deg,rgba(255,255,255,0.32),rgba(255,255,255,0)),var(--cl-paper) !important;border-color:rgba(75,36,58,0.28) !important;border-radius:6px !important;color:var(--cl-ink)}.price-chip{color:var(--cl-ink);background:var(--cl-tea);border-color:rgba(75,36,58,0.28)}.chapter-text-scroll{background-color:var(--cl-paper);border-color:rgba(75,36,58,0.28);color:var(--cl-ink)}.chapter-text-scroll p.active{background-color:rgba(142,58,74,0.12);border-left-color:var(--cl-rose)}.progress-container,.progress-bar{background-color:var(--cl-mulberry)}.chapter-tick{background:var(--cl-tea)}.chapter-tick-label{color:var(--cl-paper)}.share-button{border-radius:2px;background-color:var(--cl-mulberry) !important}.share-button:hover,.follow-icon:hover{color:var(--cl-paper);background-color:var(--cl-rose) !important}.cl-footer{border-top-color:rgba(200,169,130,0.34) !important;color:rgba(243,235,221,0.72)}.scroll-hint{color:var(--cl-paper);background:rgba(75,36,58,0.82);box-shadow:0 0.7rem 1.8rem rgba(0,0,0,0.36)}.cl-editorial-hero{position:relative;padding:clamp(2.25rem,6vw,5.5rem);margin-bottom:clamp(1.5rem,4vw,3rem);background:linear-gradient(135deg,rgba(75,36,58,0.9),rgba(24,21,20,0.86)),url('/images/webp/the-alpha-flame-reckoning-blank-960.webp') center / cover;border:1px solid rgba(200,169,130,0.34);box-shadow:var(--cl-shadow)}.cl-editorial-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,20,0.08),rgba(24,21,20,0.54));pointer-events:none}.cl-editorial-hero>*{position:relative;z-index:1}.cl-kicker{color:var(--cl-tea);font-size:0.78rem;font-weight:750;letter-spacing:0.16em;text-transform:uppercase}.cl-feature-card{overflow:hidden}.cl-feature-card .card-body{padding:clamp(1.25rem,3vw,2.5rem)}.cl-journal-filter{background:linear-gradient(135deg,rgba(255,255,255,0.26),rgba(255,255,255,0)),rgba(243,235,221,0.94) !important}.cl-site-shell .accordion-button{color:var(--cl-ink);background:var(--cl-paper);box-shadow:none}.cl-site-shell .accordion-button:not(.collapsed){color:var(--cl-paper);background:var(--cl-mulberry)}@media (max-width:575.98px){.cl-main-container{padding-left:1rem;padding-right:1rem}.cl-navbar .navbar-brand img{width:220px !important;height:auto !important}}#background-wrapper,.cl-site-shell .video-background,.cl-site-shell .static-background{position:fixed;inset:0;width:100%;height:100%}#background-wrapper{z-index:0;overflow:hidden}.cl-site-shell .video-background,.cl-site-shell .static-background{z-index:0}.cl-site-shell .video-background video{display:none !important}.cl-site-shell .static-background{background-image:linear-gradient(90deg,rgba(14,12,11,0.92),rgba(30,22,22,0.74) 52%,rgba(14,12,11,0.94)),linear-gradient(0deg,rgba(14,12,11,0.96),rgba(14,12,11,0.42) 45%,rgba(14,12,11,0.78)),url('/images/webp/1983-birmingham-1920.webp');background-position:center;background-size:cover;filter:saturate(0.62) contrast(1.08) brightness(0.82)}.cl-site-shell .static-background::before,.cl-site-shell .static-background::after{content:"";position:absolute;inset:0;pointer-events:none}.cl-site-shell .static-background::before{background:radial-gradient(circle at 24% 18%,rgba(142,58,74,0.32),transparent 24rem),radial-gradient(circle at 82% 30%,rgba(181,105,69,0.18),transparent 26rem)}.cl-site-shell .static-background::after{opacity:0.16;mix-blend-mode:soft-light;background-image:repeating-linear-gradient(90deg,rgba(255,255,255,0.18) 0 1px,transparent 1px 3px),linear-gradient(rgba(255,255,255,0.08),transparent)}.cl-page-home .static-background,.cl-page-guide .static-background{background-image:linear-gradient(90deg,rgba(14,12,11,0.92),rgba(32,24,23,0.68) 52%,rgba(14,12,11,0.94)),linear-gradient(0deg,rgba(14,12,11,0.98),rgba(14,12,11,0.42) 48%,rgba(14,12,11,0.78)),url('/images/webp/1983-birmingham-1920.webp')}.cl-page-discovery .static-background{background-image:linear-gradient(90deg,rgba(12,12,12,0.96),rgba(30,29,26,0.68) 48%,rgba(12,12,12,0.94)),linear-gradient(0deg,rgba(12,12,12,0.98),rgba(12,12,12,0.44) 52%,rgba(12,12,12,0.76)),url('/images/webp/rubery-hill-hospital-1920.webp');background-position:center top;filter:saturate(0.42) contrast(1.16) brightness(0.74)}.cl-page-journal .static-background{background-image:linear-gradient(90deg,rgba(17,13,12,0.94),rgba(44,28,29,0.7) 52%,rgba(17,13,12,0.96)),linear-gradient(0deg,rgba(17,13,12,0.98),rgba(17,13,12,0.42) 48%,rgba(17,13,12,0.76)),url('/images/webp/the-alpha-flame-discovery-open-on-the-table-maggie-1920.webp')}.cl-page-reckoning .static-background{background-image:linear-gradient(90deg,rgba(12,10,9,0.92),rgba(35,22,21,0.68) 52%,rgba(12,10,9,0.94)),linear-gradient(0deg,rgba(12,10,9,0.98),rgba(12,10,9,0.38) 48%,rgba(12,10,9,0.78)),url('/images/webp/walnut-desktop.webp')}.cl-editorial-hero{overflow:hidden;background:linear-gradient(135deg,rgba(75,36,58,0.88),rgba(24,21,20,0.76) 58%,rgba(24,21,20,0.92)),url('/images/webp/1983-birmingham-1400.webp') center / cover;backdrop-filter:blur(1px)}.cl-page-discovery .cl-editorial-hero{background:linear-gradient(135deg,rgba(75,36,58,0.88),rgba(24,21,20,0.78) 58%,rgba(24,21,20,0.94)),url('/images/webp/rubery-hill-hospital-1400.webp') center top / cover}.cl-cover-feature{position:relative;isolation:isolate;display:inline-block;width:min(100%,31rem);padding:clamp(0.55rem,1.6vw,0.95rem);background:linear-gradient(145deg,rgba(243,235,221,0.14),rgba(75,36,58,0.26)),rgba(16,12,10,0.7);border:1px solid rgba(200,169,130,0.44);border-radius:6px;box-shadow:0 2rem 4.6rem rgba(0,0,0,0.52)}.cl-cover-feature::before{content:"";position:absolute;inset:0.55rem;z-index:-1;border:1px solid rgba(243,235,221,0.14)}.cl-cover-feature__image{display:block;width:100%;border-radius:4px;filter:saturate(0.82) contrast(1.04) brightness(0.92)}.cl-cover-feature__label{position:absolute;right:clamp(1rem,3vw,1.75rem);bottom:clamp(1rem,3vw,1.75rem);max-width:calc(100% - 2rem);padding:0.55rem 0.75rem;color:var(--cl-paper);text-align:right;background:rgba(24,21,20,0.72);border-left:3px solid var(--cl-tea);backdrop-filter:blur(3px)}.cl-cover-feature__label span,.cl-cover-feature__label strong{display:block;line-height:1.05}.cl-cover-feature__label span{color:var(--cl-tea);font-size:0.72rem;font-weight:750;letter-spacing:0.14em;text-transform:uppercase}.cl-cover-feature__label strong{font-family:var(--cl-heading-font);font-size:clamp(1.45rem,4vw,2.55rem);font-weight:500}.cl-trailer-still{position:relative;display:block;overflow:hidden;color:var(--cl-paper);text-decoration:none;border:1px solid rgba(75,36,58,0.28);border-radius:6px;box-shadow:0 1.1rem 2.6rem rgba(24,21,20,0.24)}.cl-trailer-still__image{display:block;width:100%;filter:saturate(0.74) contrast(1.07) brightness(0.9);transition:transform 220ms ease,filter 220ms ease}.cl-trailer-still__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,20,0.52),transparent 46%,rgba(75,36,58,0.34)),linear-gradient(0deg,rgba(24,21,20,0.54),transparent 46%)}.cl-trailer-still__button{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;gap:0.6rem;padding:0.72rem 0.95rem;color:var(--cl-paper);background:rgba(75,36,58,0.88);border:1px solid rgba(243,235,221,0.28);border-radius:999px;font-weight:750;transform:translate(-50%,-50%);box-shadow:0 0.8rem 2rem rgba(0,0,0,0.32)}.cl-trailer-still:hover,.cl-trailer-still:focus{color:var(--cl-paper)}.cl-trailer-still:hover .cl-trailer-still__image,.cl-trailer-still:focus .cl-trailer-still__image{filter:saturate(0.86) contrast(1.1) brightness(0.98);transform:scale(1.025)}.cl-trailer-still--portrait{max-width:28rem;margin-inline:auto}.cl-site-shell .character-card{backdrop-filter:blur(4px)}.cl-site-shell .carousel-caption{color:var(--cl-paper);background:rgba(24,21,20,0.72);border-left:3px solid var(--cl-tea)}.cl-footer{position:relative;z-index:2}.cl-page-home .static-background{background-image:linear-gradient(90deg,rgba(14,12,11,0.84),rgba(32,24,23,0.58) 52%,rgba(14,12,11,0.88)),linear-gradient(0deg,rgba(14,12,11,0.91),rgba(14,12,11,0.34) 48%,rgba(14,12,11,0.68)),url('/images/webp/1983-birmingham-1920.webp');filter:saturate(0.7) contrast(1.06) brightness(0.94)}.cl-discovery-wow{--discovery-black:#070707;--discovery-ink:#11100f;--discovery-card:rgba(17,14,13,0.78);--discovery-glass:rgba(243,235,221,0.08);--discovery-line:rgba(200,169,130,0.26);--discovery-fire:#b74d37;--discovery-teal:#5f8f8a;--discovery-gold:#d4b47d;--discovery-paper:#f5ecdd;position:relative;color:var(--discovery-paper)}.cl-page-discovery .scroll-hint{display:none !important}.cl-discovery-wow::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 18%,rgba(183,77,55,0.28),transparent 21rem),radial-gradient(circle at 88% 16%,rgba(95,143,138,0.22),transparent 26rem),linear-gradient(180deg,rgba(7,7,7,0),rgba(7,7,7,0.88))}.cl-discovery-breadcrumb{margin-bottom:clamp(1.2rem,3vw,2.2rem)}.cl-discovery-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(21rem,0.86fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;min-height:min(48rem,calc(100vh - 8.5rem));padding:clamp(1.25rem,4vw,4rem);overflow:hidden;background:linear-gradient(135deg,rgba(10,9,9,0.74),rgba(10,9,9,0.9)),url('/images/webp/rubery-hill-hospital-1920.webp') center / cover;border:1px solid rgba(212,180,125,0.28);box-shadow:0 2.8rem 7rem rgba(0,0,0,0.54)}.cl-discovery-hero::before,.cl-discovery-hero::after{content:"";position:absolute;pointer-events:none}.cl-discovery-hero::before{inset:0;background:linear-gradient(90deg,rgba(75,36,58,0.48),transparent 36%),linear-gradient(135deg,transparent 0 58%,rgba(183,77,55,0.24) 58% 59%,transparent 59%),repeating-linear-gradient(90deg,rgba(245,236,221,0.1) 0 1px,transparent 1px 4px);mix-blend-mode:screen;opacity:0.32}.cl-discovery-hero::after{right:-12%;bottom:-20%;width:min(48vw,40rem);aspect-ratio:1;border:1px solid rgba(212,180,125,0.18);border-radius:50%;box-shadow:inset 0 0 0 4rem rgba(95,143,138,0.07),0 0 5rem rgba(183,77,55,0.16)}.cl-discovery-hero__copy,.cl-discovery-hero__art{position:relative;z-index:1}.cl-discovery-hero h1{margin:0;color:var(--discovery-paper);font-family:var(--cl-heading-font);font-size:clamp(4rem,10vw,8.6rem);font-weight:500;line-height:0.84}.cl-discovery-hero__series{margin:0.8rem 0 1.2rem;color:var(--discovery-gold);font-family:var(--cl-heading-font);font-size:clamp(1.45rem,3vw,2.4rem)}.cl-discovery-hero__lead{max-width:48rem;color:rgba(245,236,221,0.96);font-family:var(--cl-heading-font);font-size:clamp(1.35rem,2.5vw,2.15rem);line-height:1.18}.cl-discovery-hero__truth{max-width:42rem;padding-left:1rem;color:rgba(245,236,221,0.78);border-left:3px solid var(--discovery-fire)}.cl-discovery-actions{display:flex;flex-wrap:wrap;gap:0.8rem;margin-top:1.6rem}.cl-discovery-actions .btn{display:inline-flex;align-items:center;gap:0.45rem}.cl-discovery-cover-stack{position:relative;display:grid;justify-items:center;padding:clamp(0.75rem,2vw,1.25rem)}.cl-discovery-cover-stack::before{content:"";position:absolute;inset:9% 1% 5% 18%;background:linear-gradient(135deg,rgba(95,143,138,0.28),rgba(183,77,55,0.2)),url('/images/webp/the-alpha-flame-discovery-open-on-the-table-beth-1200.webp') center / cover;border:1px solid rgba(212,180,125,0.22);filter:saturate(0.64) brightness(0.7);transform:rotate(3deg)}.cl-discovery-cover{position:relative;width:min(82%,25rem);border:1px solid rgba(245,236,221,0.32);box-shadow:0 2rem 4rem rgba(0,0,0,0.55);filter:saturate(0.88) contrast(1.04);transform:rotate(-2deg)}.cl-discovery-trailer-card{position:absolute;right:0;bottom:7%;display:block;width:min(54%,19rem);overflow:hidden;color:var(--discovery-paper);text-decoration:none;border:1px solid rgba(245,236,221,0.32);box-shadow:0 1.4rem 3rem rgba(0,0,0,0.48);transform:rotate(2deg)}.cl-discovery-trailer-card__image{display:block;width:100%;filter:saturate(0.72) contrast(1.05) brightness(0.78)}.cl-discovery-trailer-card span{position:absolute;left:0.8rem;bottom:0.8rem;display:inline-flex;align-items:center;gap:0.4rem;padding:0.42rem 0.62rem;color:var(--discovery-paper);background:rgba(75,36,58,0.88);border:1px solid rgba(245,236,221,0.2);font-weight:750}.cl-discovery-proof-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:clamp(1rem,3vw,1.75rem) 0 clamp(2rem,5vw,4rem);border-top:1px solid var(--discovery-line);border-bottom:1px solid var(--discovery-line);background:rgba(7,7,7,0.42);backdrop-filter:blur(8px)}.cl-discovery-proof-strip div{padding:1rem;border-right:1px solid var(--discovery-line)}.cl-discovery-proof-strip div:last-child{border-right:0}.cl-discovery-proof-strip span,.cl-discovery-chapter-grid span{display:block;color:var(--discovery-gold);font-size:0.76rem;font-weight:800;text-transform:uppercase}.cl-discovery-proof-strip strong{display:block;margin-top:0.2rem;color:var(--discovery-paper);font-family:var(--cl-heading-font);font-size:clamp(1rem,1.7vw,1.4rem);font-weight:500}.cl-discovery-buy-shell,.cl-discovery-story,.cl-discovery-audio,.cl-discovery-review{margin-bottom:clamp(2rem,5vw,4rem)}.cl-discovery-buy-shell{display:grid;grid-template-columns:minmax(16rem,0.52fr) minmax(0,1fr);gap:clamp(1rem,3vw,2rem);align-items:stretch}.cl-discovery-buy-intro,.cl-discovery-buy-panel,.cl-discovery-audio,.cl-discovery-review{background:linear-gradient(135deg,rgba(245,236,221,0.11),rgba(245,236,221,0.02)),rgba(7,7,7,0.68);border:1px solid var(--discovery-line);box-shadow:0 1.5rem 4rem rgba(0,0,0,0.34);backdrop-filter:blur(12px)}.cl-discovery-buy-intro{padding:clamp(1.2rem,3vw,2.2rem)}.cl-discovery-buy-intro h2,.cl-discovery-story h2,.cl-discovery-audio h2,.cl-discovery-section-head h2{color:var(--discovery-paper);font-size:clamp(2rem,4vw,4rem);line-height:0.95}.cl-discovery-buy-intro p,.cl-discovery-story p,.cl-discovery-audio p{color:rgba(245,236,221,0.78)}.cl-discovery-buy-panel{padding:clamp(0.8rem,2vw,1.4rem)}.cl-discovery-buy-panel #buyBox{margin:0;background:linear-gradient(135deg,rgba(245,236,221,0.96),rgba(229,213,189,0.92)) !important}.cl-discovery-buy-panel #buyBox,.cl-discovery-buy-panel #buyBox p,.cl-discovery-buy-panel #buyBox li,.cl-discovery-buy-panel #buyBox span{color:var(--cl-ink)}.cl-discovery-buy-panel #buyBox h1,.cl-discovery-buy-panel #buyBox h2,.cl-discovery-buy-panel #buyBox h3,.cl-discovery-buy-panel #buyBox h4,.cl-discovery-buy-panel #buyBox h5,.cl-discovery-buy-panel #buyBox h6{color:var(--cl-ink) !important}.cl-discovery-buy-panel #buyBox .btn,.cl-discovery-buy-panel #buyBox .btn span,.cl-discovery-buy-panel #buyBox .btn i{color:var(--cl-paper) !important}.cl-discovery-buy-panel #buyBox .price-chip,.cl-discovery-buy-panel #buyBox .price-chip span{color:var(--cl-ink) !important}.cl-discovery-story{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(18rem,0.72fr);gap:clamp(1.2rem,4vw,3.5rem);align-items:end}.cl-discovery-story__image{position:relative;overflow:hidden;min-height:23rem;border:1px solid var(--discovery-line);box-shadow:0 2rem 5rem rgba(0,0,0,0.44)}.cl-discovery-story__image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,0.7),transparent 48%),linear-gradient(0deg,rgba(7,7,7,0.72),transparent 42%)}.cl-discovery-story__image img,.cl-discovery-story__image picture,.cl-discovery-story__image responsive-image{width:100%}.cl-discovery-story__copy{padding:clamp(1.2rem,3vw,2.5rem) 0}.cl-discovery-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:clamp(2rem,5vw,4rem);background:var(--discovery-line)}.cl-discovery-tiles article{padding:clamp(1.2rem,3vw,2rem);background:linear-gradient(160deg,rgba(75,36,58,0.24),rgba(7,7,7,0.86)),rgba(7,7,7,0.78)}.cl-discovery-tiles span{color:rgba(212,180,125,0.54);font-family:var(--cl-heading-font);font-size:clamp(2.4rem,5vw,4.8rem);line-height:1}.cl-discovery-tiles h3,.cl-discovery-chapter-grid h3{color:var(--discovery-paper)}.cl-discovery-tiles p,.cl-discovery-review blockquote,.cl-discovery-chapter-grid p{color:rgba(245,236,221,0.76)}.cl-discovery-audio{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:clamp(1.25rem,3vw,2.3rem);border-left:5px solid var(--discovery-fire)}.cl-discovery-audio h2{max-width:46rem}.cl-discovery-audio p{max-width:54rem;margin-bottom:0}.cl-discovery-review{display:grid;grid-template-columns:8rem minmax(0,1fr) auto;gap:clamp(1rem,3vw,2rem);align-items:center;padding:clamp(1.25rem,3vw,2.3rem)}.cl-discovery-review__stars{display:grid;grid-template-columns:repeat(5,1fr);gap:0.18rem;color:var(--discovery-gold)}.cl-discovery-review blockquote{margin:0;border-left:0;font-family:var(--cl-heading-font);font-size:clamp(1.1rem,2vw,1.45rem)}.cl-discovery-review footer{margin-top:0.8rem;color:rgba(245,236,221,0.62);font-family:var(--cl-body-font);font-size:0.95rem}.cl-discovery-chapters{margin-bottom:clamp(2rem,5vw,4rem)}.cl-discovery-section-head{margin-bottom:1rem}.cl-discovery-chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.4rem)}.cl-discovery-chapter-grid article{overflow:hidden;background:rgba(7,7,7,0.72);border:1px solid var(--discovery-line);box-shadow:0 1.2rem 3rem rgba(0,0,0,0.28)}.cl-discovery-chapter-grid img{width:100%;aspect-ratio:4 / 3;object-fit:cover;filter:saturate(0.75) contrast(1.08) brightness(0.86)}.cl-discovery-chapter-grid article>div{padding:1.1rem}.cl-discovery-chapter-grid a:not(.btn){color:var(--discovery-gold);font-weight:750}:root{--cl-chocolate:#150d0d;--cl-chocolate-soft:#241615;--cl-wine:#5c203f;--cl-wine-deep:#351324;--cl-plum:#2a1626;--cl-merlot:#7b2943;--cl-candle:#f0d0a0;--cl-ganache:#c99a73;--cl-velvet-paper:#ead8bd;--cl-cream-shadow:#d6b98f}.cl-site-shell{background:radial-gradient(circle at 18% 8%,rgba(123,41,67,0.34),transparent 26rem),radial-gradient(circle at 82% 12%,rgba(201,154,115,0.18),transparent 24rem),linear-gradient(135deg,var(--cl-chocolate-soft),var(--cl-chocolate) 48%,#070404) !important}.cl-site-shell .static-background::before{background:radial-gradient(circle at 18% 14%,rgba(123,41,67,0.4),transparent 25rem),radial-gradient(circle at 78% 18%,rgba(201,154,115,0.22),transparent 26rem),linear-gradient(90deg,rgba(74,24,39,0.18),transparent 45%,rgba(42,18,10,0.3))}.cl-page-about .static-background,.cl-page-verostic .static-background{background-image:linear-gradient(90deg,rgba(20,10,10,0.88),rgba(60,29,35,0.58) 52%,rgba(20,10,10,0.9)),linear-gradient(0deg,rgba(20,10,10,0.94),rgba(20,10,10,0.34) 48%,rgba(20,10,10,0.68)),url('/images/webp/beth-and-maggie-rubery-hill-1920.webp');filter:saturate(0.74) contrast(1.08) brightness(0.82)}.cl-page-journal .static-background,.cl-page-guide .static-background{filter:saturate(0.74) contrast(1.08) brightness(0.86)}.cl-page-discovery .static-background{filter:saturate(0.5) contrast(1.14) brightness(0.8)}.cl-navbar{min-height:4.35rem;background:linear-gradient(90deg,rgba(20,10,10,0.98),rgba(58,24,39,0.94) 45%,rgba(20,10,10,0.98)) !important;border-bottom:1px solid rgba(240,208,160,0.5) !important;box-shadow:0 1rem 2.6rem rgba(0,0,0,0.42),inset 0 -1px 0 rgba(255,255,255,0.04)}.cl-navbar::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 8% 0%,rgba(240,208,160,0.16),transparent 14rem),linear-gradient(90deg,transparent,rgba(240,208,160,0.08),transparent)}.cl-navbar .container-fluid{position:relative;z-index:1}.cl-navbar .navbar-brand{padding:0.3rem 0.65rem 0.3rem 0}.cl-navbar .navbar-brand img{height:50px !important;width:294px !important;filter:sepia(0.24) saturate(0.95) brightness(1.12) drop-shadow(0 0.25rem 0.8rem rgba(240,208,160,0.18))}.cl-navbar .nav-link{position:relative;margin-inline:0.08rem;padding:0.78rem 0.72rem !important;color:rgba(240,208,160,0.82) !important;font-size:0.9rem;border-radius:999px;transition:background-color 180ms ease,color 180ms ease,transform 180ms ease}.cl-navbar .nav-link::after{content:"";position:absolute;left:0.8rem;right:0.8rem;bottom:0.38rem;height:1px;background:linear-gradient(90deg,transparent,var(--cl-candle),transparent);opacity:0;transform:scaleX(0.4);transition:opacity 180ms ease,transform 180ms ease}.cl-navbar .nav-link:hover,.cl-navbar .nav-link:focus,.cl-navbar .nav-link.show{color:#fff3df !important;background:rgba(240,208,160,0.08);transform:translateY(-1px)}.cl-navbar .nav-link:hover::after,.cl-navbar .nav-link:focus::after,.cl-navbar .nav-link.show::after{opacity:0.9;transform:scaleX(1)}.cl-navbar .dropdown-menu{padding:0.45rem;background:linear-gradient(145deg,rgba(46,20,27,0.98),rgba(20,10,10,0.98));border-color:rgba(240,208,160,0.34);box-shadow:0 1.4rem 3rem rgba(0,0,0,0.48)}.cl-navbar .dropdown-item{color:rgba(240,208,160,0.88);border-radius:3px}.cl-navbar .dropdown-item:hover,.cl-navbar .dropdown-item:focus{color:#fff3df;background:rgba(123,41,67,0.86)}.cl-site-shell .card,.cl-site-shell .character-card,.cl-site-shell .accordion-item,.cl-site-shell form.bg-white,.cl-site-shell .modal-content,.cl-site-shell .alert,.cl-site-shell .bg-white,.cl-site-shell .bg-light{color:#f7ead5 !important;background:linear-gradient(145deg,rgba(255,233,197,0.13),rgba(79,28,42,0.1)),linear-gradient(180deg,rgba(43,24,18,0.92),rgba(25,13,12,0.92)) !important;border-color:rgba(240,208,160,0.28) !important;box-shadow:0 1.4rem 3.6rem rgba(0,0,0,0.38),inset 0 1px 0 rgba(255,255,255,0.06)}.cl-site-shell .card-header,.cl-site-shell .accordion-button{color:#fff0d9 !important;background:linear-gradient(90deg,rgba(92,32,63,0.72),rgba(36,22,16,0.72)) !important;border-bottom-color:rgba(240,208,160,0.2)}.cl-site-shell .card h1,.cl-site-shell .card h2,.cl-site-shell .card h3,.cl-site-shell .card h4,.cl-site-shell .card h5,.cl-site-shell .card h6,.cl-site-shell .accordion-item h2,.cl-site-shell .modal-content h5,.cl-site-shell .bg-white h1,.cl-site-shell .bg-white h2,.cl-site-shell .bg-white h3,.cl-site-shell .bg-light h1,.cl-site-shell .bg-light h2,.cl-site-shell .bg-light h3{color:#fff0d9 !important}.cl-site-shell .card p,.cl-site-shell .card li,.cl-site-shell .card dd,.cl-site-shell .card dt,.cl-site-shell .bg-white p,.cl-site-shell .bg-white li,.cl-site-shell .bg-light p,.cl-site-shell .bg-light li{color:rgba(247,234,213,0.82)}.cl-site-shell .text-black,.cl-site-shell .text-dark,.cl-site-shell .link-dark,.cl-site-shell a.link-dark,.cl-site-shell .card a:not(.btn),.cl-site-shell .accordion-item a:not(.btn),.cl-site-shell .modal-content a:not(.btn),.cl-site-shell .bg-white a:not(.btn),.cl-site-shell .bg-light a:not(.btn){color:var(--cl-candle) !important}.cl-site-shell .text-muted,.cl-site-shell .card .text-muted,.cl-site-shell .accordion-item .text-muted,.cl-site-shell .modal-content .text-muted,.cl-site-shell .bg-white .text-muted,.cl-site-shell .bg-light .text-muted{color:rgba(234,216,189,0.68) !important}.cl-site-shell .card-img,.cl-site-shell .card-img-top,.cl-site-shell .img-fluid,.cl-site-shell .fit-image{filter:saturate(0.86) contrast(1.06) brightness(0.94)}.cl-site-shell .btn-dark,.cl-site-shell .btn-primary{color:#fff0d9 !important;background:linear-gradient(135deg,var(--cl-merlot),var(--cl-wine-deep)) !important;border-color:rgba(240,208,160,0.3) !important}.cl-site-shell .btn-dark:hover,.cl-site-shell .btn-dark:focus,.cl-site-shell .btn-primary:hover,.cl-site-shell .btn-primary:focus{color:#fff7ec !important;background:linear-gradient(135deg,#8d314c,#52223b) !important;border-color:rgba(240,208,160,0.52) !important}.cl-site-shell .btn-outline-dark,.cl-site-shell .btn-outline-secondary,.cl-site-shell .btn-outline-light{color:var(--cl-candle) !important;border-color:rgba(240,208,160,0.48) !important}.cl-site-shell .btn-outline-dark:hover,.cl-site-shell .btn-outline-dark:focus,.cl-site-shell .btn-outline-secondary:hover,.cl-site-shell .btn-outline-secondary:focus,.cl-site-shell .btn-outline-light:hover,.cl-site-shell .btn-outline-light:focus{color:#fff3df !important;background:rgba(92,32,63,0.86) !important}.cl-site-shell .badge.bg-dark,.cl-site-shell .badge.text-bg-secondary,.cl-site-shell .badge.text-bg-dark{color:#fff0d9 !important;background:rgba(92,32,63,0.82) !important;border:1px solid rgba(240,208,160,0.26)}.cl-site-shell audio{filter:sepia(0.16) saturate(0.82)}.cl-site-shell .plyr--audio .plyr__controls{background:linear-gradient(135deg,rgba(255,243,223,0.96),rgba(229,202,162,0.9)) !important;border-color:rgba(92,32,63,0.45) !important}.cl-site-shell .form-control,.cl-site-shell .form-select{color:#2a1812;background-color:#f4e6d0;border-color:rgba(124,88,61,0.42);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55)}.cl-site-shell blockquote,.cl-site-shell .blockquote{color:#f7ead5;border-left-color:rgba(190,74,100,0.86)}.cl-site-shell blockquote p,.cl-site-shell .blockquote p{color:#f7ead5;opacity:0.94}.cl-journal-filter,.cl-feature-card,.cl-page-discovery .card,.cl-page-discovery .alert,.cl-page-guide .card,.cl-page-journal .card,.cl-page-verostic .accordion-item,.cl-page-about section{backdrop-filter:blur(10px)}.cl-page-about section,.cl-page-verostic section>.mb-4,.cl-page-verostic section>.mb-5{padding:clamp(1rem,2vw,1.5rem);background:linear-gradient(145deg,rgba(255,233,197,0.11),rgba(79,28,42,0.08)),rgba(21,13,13,0.68);border:1px solid rgba(240,208,160,0.22);box-shadow:0 1rem 2.8rem rgba(0,0,0,0.28)}.cl-discovery-buy-panel #buyBox{background:linear-gradient(145deg,rgba(83,47,34,0.94),rgba(43,22,19,0.96)),linear-gradient(180deg,rgba(255,230,191,0.1),rgba(92,32,63,0.08)) !important;border-color:rgba(240,208,160,0.36) !important;box-shadow:0 1.6rem 3.8rem rgba(0,0,0,0.42),inset 0 1px 0 rgba(255,255,255,0.07)}.cl-discovery-buy-panel #buyBox,.cl-discovery-buy-panel #buyBox p,.cl-discovery-buy-panel #buyBox li,.cl-discovery-buy-panel #buyBox span,.cl-discovery-buy-panel #buyBox h1,.cl-discovery-buy-panel #buyBox h2,.cl-discovery-buy-panel #buyBox h3,.cl-discovery-buy-panel #buyBox h4,.cl-discovery-buy-panel #buyBox h5,.cl-discovery-buy-panel #buyBox h6,#buyBox,#buyBox p,#buyBox li,#buyBox span,#buyBox h1,#buyBox h2,#buyBox h3,#buyBox h4,#buyBox h5,#buyBox h6{color:#fff0d9 !important}#buyBox .btn,#buyBox .btn span,#buyBox .btn i{color:#fff0d9 !important}#buyBox .price-chip,#buyBox .price-chip span{color:#2a1812 !important;background:#d9b979 !important;border-color:rgba(255,243,223,0.44) !important}.cl-footer{background:linear-gradient(180deg,rgba(20,10,10,0.98),rgba(10,5,5,0.98)) !important;border-top-color:rgba(240,208,160,0.36) !important}@media (max-width:991.98px){.cl-discovery-hero,.cl-discovery-buy-shell,.cl-discovery-story,.cl-discovery-review{grid-template-columns:1fr}.cl-discovery-hero{min-height:0}.cl-discovery-cover-stack{max-width:34rem;margin-inline:auto}.cl-discovery-review{align-items:start}}@media (max-width:767.98px){.cl-discovery-hero{padding:1rem}.cl-discovery-hero h1{font-size:clamp(3.5rem,17vw,4.9rem);line-height:0.92}.cl-discovery-hero__series{font-size:clamp(1.15rem,6vw,1.55rem);line-height:1.16}.cl-discovery-hero__lead{font-size:clamp(1.15rem,6vw,1.55rem);line-height:1.26}.cl-discovery-proof-strip,.cl-discovery-tiles,.cl-discovery-chapter-grid{grid-template-columns:1fr}.cl-discovery-proof-strip div{border-right:0;border-bottom:1px solid var(--discovery-line)}.cl-discovery-proof-strip div:last-child{border-bottom:0}.cl-discovery-audio{display:block}.cl-discovery-audio .btn{margin-top:1rem;width:100%}.cl-discovery-trailer-card{right:0.35rem;bottom:3%;width:58%}}
\ No newline at end of file
diff --git a/CatherineLynwood/wwwroot/images/calendar-house-hero.png b/CatherineLynwood/wwwroot/images/calendar-house-hero.png
new file mode 100644
index 0000000..b9933bf
Binary files /dev/null and b/CatherineLynwood/wwwroot/images/calendar-house-hero.png differ
diff --git a/CatherineLynwood/wwwroot/js/calendar-house.js b/CatherineLynwood/wwwroot/js/calendar-house.js
new file mode 100644
index 0000000..076fe33
--- /dev/null
+++ b/CatherineLynwood/wwwroot/js/calendar-house.js
@@ -0,0 +1,22 @@
+(function () {
+ const filters = document.querySelectorAll(".plan-filter");
+ const rooms = document.querySelectorAll(".room-tile");
+
+ if (!filters.length || !rooms.length) {
+ return;
+ }
+
+ filters.forEach((filter) => {
+ filter.addEventListener("click", () => {
+ const selectedFloor = filter.dataset.floor;
+
+ filters.forEach((item) => item.classList.remove("active"));
+ filter.classList.add("active");
+
+ rooms.forEach((room) => {
+ const shouldShow = selectedFloor === "All" || room.dataset.floor === selectedFloor;
+ room.classList.toggle("is-hidden", !shouldShow);
+ });
+ });
+ });
+})();