2026-02-17 17:53:00 +01:00
|
|
|
@import "tailwindcss";
|
2026-02-20 08:46:37 +01:00
|
|
|
@plugin "@tailwindcss/typography";
|
2026-02-17 17:53:00 +01:00
|
|
|
|
2026-02-22 08:41:15 +01:00
|
|
|
@custom-variant hover (&:hover);
|
|
|
|
|
|
2026-02-17 17:53:00 +01:00
|
|
|
@theme {
|
2026-02-19 19:49:11 +01:00
|
|
|
/* Brand Palette: Palina Gold (#DDC288) */
|
|
|
|
|
--color-brand-50: #faf8f0;
|
|
|
|
|
--color-brand-100: #f4edd1;
|
|
|
|
|
--color-brand-200: #e9dba4;
|
|
|
|
|
--color-brand-300: #ddc277;
|
2026-02-20 09:04:36 +01:00
|
|
|
--color-brand-400: #ddc288;
|
2026-02-19 19:49:11 +01:00
|
|
|
--color-brand-500: #c9a765;
|
|
|
|
|
--color-brand-600: #b58d46;
|
|
|
|
|
--color-brand-700: #9c763a;
|
|
|
|
|
--color-brand-800: #7d5e31;
|
|
|
|
|
--color-brand-900: #624a29;
|
|
|
|
|
--color-brand-950: #4c3a23;
|
|
|
|
|
|
2026-02-20 09:04:36 +01:00
|
|
|
/* Font Families */
|
2026-02-20 09:49:13 +01:00
|
|
|
--font-serif: "Fraunces", serif;
|
|
|
|
|
--font-heading: "Fraunces", serif;
|
2026-02-20 09:46:39 +01:00
|
|
|
--font-sans: "Montserrat", sans-serif;
|
2026-02-20 09:23:24 +01:00
|
|
|
}
|
2026-02-20 09:12:10 +01:00
|
|
|
|
2026-02-20 09:26:35 +01:00
|
|
|
/*
|
|
|
|
|
Theme Variable Definitions
|
|
|
|
|
Using :root for default (Dark) and [data-theme='light'] for overrides.
|
|
|
|
|
*/
|
|
|
|
|
:root {
|
|
|
|
|
--bg-primary: #121212;
|
|
|
|
|
--bg-secondary: #1e1e1e;
|
|
|
|
|
--bg-tertiary: #2a2a2a;
|
|
|
|
|
--text-primary: #f2f2f2;
|
|
|
|
|
--text-secondary: #a3a3a3;
|
|
|
|
|
--text-tertiary: #737373;
|
2026-02-20 10:10:37 +01:00
|
|
|
--brand-primary: #ddc288;
|
2026-02-20 09:26:35 +01:00
|
|
|
--brand-secondary: #c9a765;
|
2026-02-17 18:54:09 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-20 09:26:35 +01:00
|
|
|
[data-theme='light'] {
|
2026-02-19 19:49:11 +01:00
|
|
|
--bg-primary: #fdfcf9;
|
|
|
|
|
--bg-secondary: #f4f1e8;
|
|
|
|
|
--bg-tertiary: #e9e4d5;
|
|
|
|
|
--text-primary: #2d2114;
|
|
|
|
|
--text-secondary: #624a29;
|
|
|
|
|
--text-tertiary: #7d5e31;
|
2026-02-20 10:10:37 +01:00
|
|
|
--brand-primary: #9c763a;
|
2026-02-20 09:26:35 +01:00
|
|
|
--brand-secondary: #7d5e31;
|
2026-02-17 17:53:00 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@layer base {
|
2026-02-19 21:03:41 +01:00
|
|
|
[x-cloak] { display: none !important; }
|
|
|
|
|
|
2026-02-17 17:53:00 +01:00
|
|
|
body {
|
2026-02-17 18:54:09 +01:00
|
|
|
background-color: var(--bg-primary);
|
|
|
|
|
color: var(--text-primary);
|
2026-02-19 21:30:48 +01:00
|
|
|
font-family: var(--font-sans);
|
2026-02-20 09:04:36 +01:00
|
|
|
transition: background-color 0.3s ease, color 0.3s ease;
|
2026-02-17 18:54:09 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
2026-02-19 21:26:29 +01:00
|
|
|
font-family: var(--font-heading);
|
2026-02-19 19:49:11 +01:00
|
|
|
color: var(--brand-primary);
|
2026-02-20 09:23:24 +01:00
|
|
|
transition: color 0.3s ease;
|
2026-02-17 17:53:00 +01:00
|
|
|
}
|
|
|
|
|
}
|
2026-02-17 18:29:09 +01:00
|
|
|
|
2026-02-20 10:10:37 +01:00
|
|
|
/*
|
|
|
|
|
Typography (Prose) Customization
|
|
|
|
|
Using @utility prose to override internal Typography plugin variables
|
|
|
|
|
as recommended for Tailwind CSS v4. Must be at the top level.
|
|
|
|
|
*/
|
|
|
|
|
@utility prose {
|
|
|
|
|
--tw-prose-body: var(--text-primary);
|
|
|
|
|
--tw-prose-headings: var(--brand-primary);
|
|
|
|
|
--tw-prose-links: var(--brand-primary);
|
|
|
|
|
--tw-prose-bold: var(--text-primary);
|
|
|
|
|
--tw-prose-counters: var(--text-secondary);
|
|
|
|
|
--tw-prose-bullets: var(--brand-primary);
|
|
|
|
|
--tw-prose-hr: var(--bg-tertiary);
|
|
|
|
|
--tw-prose-quotes: var(--text-primary);
|
|
|
|
|
--tw-prose-quote-borders: var(--brand-primary);
|
|
|
|
|
--tw-prose-captions: var(--text-secondary);
|
|
|
|
|
--tw-prose-code: var(--text-primary);
|
|
|
|
|
--tw-prose-pre-code: var(--text-primary);
|
|
|
|
|
--tw-prose-pre-bg: var(--bg-secondary);
|
|
|
|
|
--tw-prose-th-borders: var(--bg-tertiary);
|
|
|
|
|
--tw-prose-td-borders: var(--bg-secondary);
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-17 19:49:10 +01:00
|
|
|
@layer components {
|
|
|
|
|
/* Main navigation styling */
|
2026-02-20 10:18:57 +01:00
|
|
|
header nav ul.nav {
|
|
|
|
|
@apply flex items-center space-x-6;
|
2026-02-17 19:49:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Mobile navigation styling */
|
2026-02-20 10:18:57 +01:00
|
|
|
#mobile-menu nav ul.nav {
|
|
|
|
|
@apply flex flex-col items-center space-y-10 text-4xl;
|
2026-02-17 19:49:10 +01:00
|
|
|
}
|
2026-02-20 08:54:47 +01:00
|
|
|
|
2026-02-20 10:40:04 +01:00
|
|
|
/* Footer navigation styling */
|
|
|
|
|
footer nav ul.nav {
|
2026-02-20 10:48:12 +01:00
|
|
|
@apply flex items-center space-x-4 text-sm tracking-wide;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
footer nav ul.nav li {
|
|
|
|
|
@apply flex items-center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
footer nav ul.nav li:not(:last-child)::after {
|
|
|
|
|
content: "|";
|
|
|
|
|
@apply ml-4 opacity-20 text-[var(--text-secondary)];
|
2026-02-20 10:40:04 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-20 10:21:26 +01:00
|
|
|
/* Navigation Links */
|
|
|
|
|
.nav-link {
|
|
|
|
|
@apply relative py-2 px-1 transition-all duration-300 opacity-80 hover:opacity-100 hover:text-[var(--brand-primary)];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.nav-link::after {
|
|
|
|
|
content: "";
|
|
|
|
|
@apply absolute bottom-0 left-0 w-full h-0.5 bg-[var(--brand-primary)] transform scale-x-0 transition-transform duration-300 ease-out origin-left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.nav-link:hover::after,
|
|
|
|
|
.nav-current .nav-link::after {
|
|
|
|
|
@apply scale-x-100;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.nav-current .nav-link {
|
|
|
|
|
@apply text-[var(--brand-primary)] opacity-100 font-semibold;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-20 09:33:22 +01:00
|
|
|
/* Button & Link Components */
|
|
|
|
|
.btn-primary {
|
2026-02-20 09:36:22 +01:00
|
|
|
@apply inline-flex items-center px-8 py-3 border border-transparent text-base font-semibold rounded-lg shadow-md
|
|
|
|
|
bg-[var(--brand-primary)] text-[var(--bg-primary)]
|
|
|
|
|
hover:shadow-lg hover:-translate-y-0.5 active:translate-y-0
|
|
|
|
|
transition-all duration-300 cursor-pointer relative overflow-hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-primary::after {
|
|
|
|
|
content: "";
|
|
|
|
|
@apply absolute inset-0 bg-white opacity-0 transition-opacity duration-300;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-primary:hover::after {
|
|
|
|
|
@apply opacity-10;
|
2026-02-20 09:33:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.fancy-link {
|
|
|
|
|
@apply font-medium transition-all duration-300 relative inline-block;
|
|
|
|
|
color: var(--brand-primary) !important;
|
|
|
|
|
text-decoration: none !important;
|
|
|
|
|
background-image: linear-gradient(var(--brand-primary), var(--brand-primary));
|
|
|
|
|
background-position: 0 100%;
|
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
|
background-size: 0 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.fancy-link:hover {
|
|
|
|
|
@apply text-[var(--text-primary)];
|
|
|
|
|
background-size: 100% 1px;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-20 10:10:37 +01:00
|
|
|
/* Specific prose element overrides for fonts and effects */
|
2026-02-20 09:23:24 +01:00
|
|
|
.prose :where(h1, h2, h3, h4, h5, h6) {
|
2026-02-20 09:26:35 +01:00
|
|
|
color: var(--brand-primary) !important;
|
2026-02-20 08:54:47 +01:00
|
|
|
font-family: var(--font-heading);
|
2026-02-20 09:23:24 +01:00
|
|
|
@apply font-bold tracking-tight transition-colors duration-300;
|
2026-02-20 08:54:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.prose a {
|
2026-02-20 09:26:35 +01:00
|
|
|
color: var(--brand-primary) !important;
|
2026-02-20 09:30:21 +01:00
|
|
|
text-decoration: none !important;
|
|
|
|
|
@apply font-medium transition-all duration-300;
|
|
|
|
|
background-image: linear-gradient(var(--brand-primary), var(--brand-primary));
|
|
|
|
|
background-position: 0 100%;
|
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
|
background-size: 0 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.prose a:hover {
|
|
|
|
|
background-size: 100% 1px;
|
2026-02-20 08:54:47 +01:00
|
|
|
}
|
2026-02-22 08:11:25 +01:00
|
|
|
|
2026-02-22 08:16:00 +01:00
|
|
|
/* Initial Letter (Drop Cap) Effect - Only on Posts */
|
|
|
|
|
.post-template .post-content > p:first-of-type::first-letter {
|
2026-02-22 08:11:25 +01:00
|
|
|
-webkit-initial-letter: 3 2;
|
|
|
|
|
initial-letter: 3 2;
|
|
|
|
|
color: var(--brand-primary);
|
|
|
|
|
@apply font-serif font-bold mr-4 float-left transition-colors duration-300;
|
|
|
|
|
/* Fallback for browsers that don't support initial-letter */
|
|
|
|
|
@supports not (initial-letter: 3) {
|
|
|
|
|
@apply text-7xl leading-[0.8] mt-2;
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-17 19:49:10 +01:00
|
|
|
|
2026-02-22 11:25:13 +01:00
|
|
|
/* Koenig Editor (Ghost) required classes */
|
|
|
|
|
.kg-width-wide {
|
|
|
|
|
position: relative;
|
|
|
|
|
width: 85vw;
|
|
|
|
|
left: 50%;
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
max-width: 1200px;
|
|
|
|
|
}
|
2026-02-22 11:22:17 +01:00
|
|
|
|
2026-02-22 11:25:13 +01:00
|
|
|
.kg-width-full {
|
|
|
|
|
position: relative;
|
|
|
|
|
width: 100vw;
|
|
|
|
|
left: 50%;
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
}
|
2026-02-22 11:22:17 +01:00
|
|
|
|
2026-02-22 11:25:13 +01:00
|
|
|
.kg-card {
|
|
|
|
|
@apply mb-8;
|
|
|
|
|
}
|
2026-02-22 11:22:17 +01:00
|
|
|
|
2026-02-22 11:25:13 +01:00
|
|
|
.kg-card-caption {
|
|
|
|
|
@apply text-center text-sm text-[var(--text-secondary)] mt-2;
|
|
|
|
|
}
|
2026-02-22 11:22:17 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-19 19:04:43 +01:00
|
|
|
.site-logo {
|
|
|
|
|
@apply transition-all duration-300;
|
2026-02-19 19:49:11 +01:00
|
|
|
color: var(--brand-primary);
|
|
|
|
|
fill: currentColor;
|
2026-02-19 19:04:43 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-22 09:27:29 +01:00
|
|
|
.post-grid-item {
|
|
|
|
|
opacity: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.post-grid-item.animated {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-17 18:29:09 +01:00
|
|
|
@keyframes fadeInUp {
|
|
|
|
|
from {
|
|
|
|
|
opacity: 0;
|
|
|
|
|
transform: translateY(20px);
|
|
|
|
|
}
|
2026-02-22 09:32:37 +01:00
|
|
|
to {
|
|
|
|
|
opacity: 1;
|
|
|
|
|
transform: translateY(0);
|
|
|
|
|
}
|
2026-02-17 18:29:09 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.animate-fadeInUp {
|
2026-02-22 09:32:37 +01:00
|
|
|
animation: fadeInUp 0.5s ease-out both;
|
2026-02-17 18:29:09 +01:00
|
|
|
}
|