*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } :root {
--bg:         #FAF8F4;
--surface:    #FFFFFF;
--surface2:   #F3F0EA;
--surface3:   #EAE6DC;
--border:     rgba(30,24,14,0.10);
--border2:    rgba(30,24,14,0.06);
--ink:        #1A1810;
--ink2:       #3C3830;
--muted:      #8C8680;
--gold:       #A07820;
--gold-light: #C9A84C;
--gold-dim:   #C9A84C;
--gold-bg:    rgba(160,120,32,0.06);
--green:      #1D9952;
--green-bg:   rgba(29,153,82,0.08);
--red:        #D03030;
--mono:  'IBM Plex Mono', monospace;
--serif: 'DM Serif Display', serif;
--sans:  'Instrument Sans', sans-serif;
--max-w: 1200px;
--content-w: 760px;
} html { scroll-behavior: smooth; }
body {
background: var(--bg);
color: var(--ink2);
font-family: var(--sans);
font-size: 16px;
line-height: 1.6;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
} body::before {
content: '';
position: fixed;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 9999;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; } h1, h2, h3, h4, h5, h6 {
font-family: var(--serif);
color: var(--ink);
line-height: 1.15;
font-weight: 400;
}
h1 { font-size: clamp(32px, 5vw, 56px); }
h2 { font-size: clamp(26px, 3.5vw, 40px); }
h3 { font-size: clamp(20px, 2.5vw, 28px); }
h4 { font-size: clamp(17px, 2vw, 22px); }
h5 { font-size: 18px; }
h6 { font-size: 16px; }
p { margin-bottom: 1.25rem; color: var(--ink2); }
p:last-child { margin-bottom: 0; } .site-wrapper { display: flex; flex-direction: column; min-height: 100vh; }
.site-main    { flex: 1; }
.container {
max-width: var(--max-w);
margin: 0 auto;
padding: 0 48px;
}
.container--narrow {
max-width: var(--content-w);
margin: 0 auto;
padding: 0 48px;
} .site-header {
position: fixed;
top: 0; left: 0; right: 0;
z-index: 200;
border-bottom: 1px solid var(--border);
background: rgba(250,248,244,0.94);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
}
.nav-inner {
max-width: var(--max-w);
margin: 0 auto;
padding: 0 48px;
height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
}
.site-logo {
font-family: var(--serif);
font-size: 22px;
color: var(--ink);
text-decoration: none;
letter-spacing: 0.01em;
flex-shrink: 0;
}
.site-logo span { color: var(--gold); }
.site-logo img {
height: 36px;
width: auto;
} .primary-menu {
display: flex;
align-items: center;
gap: 0;
list-style: none;
flex: 1;
justify-content: center;
}
.primary-menu > li > a {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
text-decoration: none;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 8px 14px;
display: block;
transition: color 0.2s;
position: relative;
}
.primary-menu > li > a:hover,
.primary-menu > li.current-menu-item > a,
.primary-menu > li.current-page-ancestor > a {
color: var(--ink);
}
.primary-menu > li.current-menu-item > a::after {
content: '';
position: absolute;
bottom: 0; left: 14px; right: 14px;
height: 1px;
background: var(--gold);
} .primary-menu .sub-menu {
display: none;
position: absolute;
top: 100%;
left: 0;
background: var(--surface);
border: 1px solid var(--border);
min-width: 180px;
padding: 8px 0;
box-shadow: 0 8px 32px rgba(30,24,14,0.08);
list-style: none;
z-index: 100;
}
.primary-menu li {
position: relative;
}
.primary-menu li:hover > .sub-menu { display: block; }
.primary-menu .sub-menu li a {
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--muted);
padding: 10px 18px;
display: block;
transition: color 0.2s, background 0.2s;
}
.primary-menu .sub-menu li a:hover { color: var(--ink); background: var(--surface2); } .nav-cta {
font-family: var(--mono);
font-size: 11px;
padding: 10px 20px;
background: var(--ink);
color: var(--bg) !important;
border: none;
cursor: pointer;
letter-spacing: 0.08em;
text-transform: uppercase;
font-weight: 500;
transition: background 0.2s, transform 0.1s;
text-decoration: none;
display: inline-block;
flex-shrink: 0;
}
.nav-cta:hover { background: var(--gold); transform: translateY(-1px); } .nav-search-toggle {
background: none;
border: none;
cursor: pointer;
color: var(--muted);
padding: 8px;
transition: color 0.2s;
display: flex;
align-items: center;
}
.nav-search-toggle:hover { color: var(--ink); }
.nav-search-toggle svg { width: 16px; height: 16px; } .nav-search-bar {
position: absolute;
top: 100%;
left: 0; right: 0;
background: var(--surface);
border-bottom: 1px solid var(--border);
padding: 16px 48px;
display: none;
align-items: center;
gap: 16px;
}
.nav-search-bar.open { display: flex; }
.nav-search-bar form { display: flex; width: 100%; max-width: 640px; margin: 0 auto; gap: 0; }
.nav-search-bar input[type="search"] {
flex: 1;
font-family: var(--sans);
font-size: 15px;
color: var(--ink);
background: var(--surface2);
border: 1px solid var(--border);
border-right: none;
padding: 12px 16px;
outline: none;
}
.nav-search-bar input[type="search"]:focus { border-color: var(--gold-dim); background: #FFFDF8; }
.nav-search-bar button[type="submit"] {
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
background: var(--ink);
color: var(--bg);
border: none;
padding: 12px 20px;
cursor: pointer;
transition: background 0.2s;
}
.nav-search-bar button[type="submit"]:hover { background: var(--gold); } .nav-hamburger {
display: none;
flex-direction: column;
gap: 5px;
cursor: pointer;
padding: 4px;
background: none;
border: none;
}
.nav-hamburger span {
display: block;
width: 24px; height: 2px;
background: var(--ink);
transition: all 0.3s;
transform-origin: center;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } .nav-mobile-drawer {
display: none;
position: fixed;
top: 68px; left: 0; right: 0;
background: rgba(250,248,244,0.98);
backdrop-filter: blur(16px);
border-bottom: 1px solid var(--border);
z-index: 190;
padding: 0 24px 32px;
flex-direction: column;
max-height: calc(100vh - 68px);
overflow-y: auto;
}
.nav-mobile-drawer.open { display: flex; }
.nav-mobile-drawer .mobile-menu {
list-style: none;
display: flex;
flex-direction: column;
}
.nav-mobile-drawer .mobile-menu li a {
font-family: var(--mono);
font-size: 13px;
color: var(--muted);
text-decoration: none;
letter-spacing: 0.06em;
text-transform: uppercase;
padding: 16px 0;
border-bottom: 1px solid var(--border);
display: block;
transition: color 0.2s;
}
.nav-mobile-drawer .mobile-menu li a:hover { color: var(--ink); }
.nav-mobile-drawer .mobile-menu .sub-menu {
list-style: none;
padding: 0 0 0 16px;
}
.nav-mobile-drawer .mobile-menu .sub-menu li a {
font-size: 12px;
padding: 10px 0;
border-bottom: none;
}
.nav-mobile-drawer .nav-cta {
margin-top: 20px;
display: block;
text-align: center;
padding: 14px;
} .site-hero {
padding: 148px 0 80px;
background: var(--bg);
position: relative;
overflow: hidden;
border-bottom: 1px solid var(--border);
} .site-hero::before {
content: '';
position: absolute;
inset: 0;
background-image: repeating-linear-gradient(
-55deg, transparent, transparent 48px,
rgba(30,24,14,0.022) 48px, rgba(30,24,14,0.022) 49px
);
pointer-events: none;
} .site-hero::after {
content: '';
position: absolute;
top: -160px; right: -160px;
width: 560px; height: 560px;
background: radial-gradient(circle, rgba(201,168,76,0.12) 0%, transparent 70%);
pointer-events: none;
}
.hero-inner {
max-width: var(--max-w);
margin: 0 auto;
padding: 0 48px;
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: center;
}
.hero-eyebrow {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--gold);
border: 1px solid var(--gold-dim);
background: var(--gold-bg);
padding: 6px 14px;
margin-bottom: 28px;
animation: floatUp 0.5s 0.1s ease both;
}
.hero-eyebrow::before {
content: '';
width: 6px; height: 6px;
background: var(--gold);
border-radius: 50%;
animation: pulse 2s infinite;
flex-shrink: 0;
}
.hero-title {
font-family: var(--serif);
font-size: clamp(40px, 5vw, 64px);
line-height: 1.08;
color: var(--ink);
margin-bottom: 20px;
animation: floatUp 0.6s 0.2s ease both;
}
.hero-title em { font-style: italic; color: var(--gold); }
.hero-desc {
font-size: 17px;
line-height: 1.75;
color: var(--muted);
margin-bottom: 36px;
max-width: 480px;
animation: floatUp 0.6s 0.3s ease both;
}
.hero-actions {
display: flex;
gap: 14px;
align-items: center;
flex-wrap: wrap;
animation: floatUp 0.6s 0.4s ease both;
} .hero-featured {
animation: floatUp 0.8s 0.2s ease both;
}
.hero-post-card {
background: var(--surface);
border: 1px solid var(--border);
box-shadow: 0 8px 40px rgba(30,24,14,0.09), 0 24px 60px rgba(30,24,14,0.05);
overflow: hidden;
transition: transform 0.3s, box-shadow 0.3s;
}
.hero-post-card:hover {
transform: translateY(-4px);
box-shadow: 0 16px 56px rgba(30,24,14,0.12), 0 32px 80px rgba(30,24,14,0.07);
}
.hero-post-card .post-thumb {
aspect-ratio: 16 / 9;
overflow: hidden;
background: var(--surface2);
}
.hero-post-card .post-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.hero-post-card:hover .post-thumb img { transform: scale(1.03); }
.hero-post-card .post-card-body { padding: 28px; }
.hero-post-card .post-category {
font-family: var(--mono);
font-size: 10px;
color: var(--gold);
letter-spacing: 0.12em;
text-transform: uppercase;
margin-bottom: 10px;
}
.hero-post-card .post-title {
font-family: var(--serif);
font-size: 22px;
color: var(--ink);
line-height: 1.25;
margin-bottom: 12px;
text-decoration: none;
display: block;
transition: color 0.2s;
}
.hero-post-card .post-title:hover { color: var(--gold); }
.hero-post-card .post-excerpt {
font-size: 14px;
color: var(--muted);
line-height: 1.65;
margin-bottom: 20px;
}
.post-meta {
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
.post-meta-item {
font-family: var(--mono);
font-size: 10px;
color: var(--muted);
letter-spacing: 0.06em;
text-transform: uppercase;
display: flex;
align-items: center;
gap: 5px;
}
.post-meta-item a { color: var(--muted); transition: color 0.2s; }
.post-meta-item a:hover { color: var(--gold); } .btn-primary {
font-family: var(--mono);
font-size: 12px;
padding: 13px 28px;
background: var(--ink);
color: var(--bg);
border: none;
cursor: pointer;
letter-spacing: 0.07em;
text-transform: uppercase;
font-weight: 500;
transition: background 0.2s, transform 0.15s;
text-decoration: none;
display: inline-block;
}
.btn-primary:hover { background: var(--gold); transform: translateY(-2px); color: var(--bg); }
.btn-ghost {
font-family: var(--mono);
font-size: 12px;
padding: 13px 24px;
background: transparent;
color: var(--muted);
border: 1px solid var(--border);
cursor: pointer;
letter-spacing: 0.07em;
text-transform: uppercase;
transition: color 0.2s, border-color 0.2s;
text-decoration: none;
display: inline-block;
}
.btn-ghost:hover { color: var(--ink); border-color: rgba(30,24,14,0.3); } .read-more {
font-family: var(--mono);
font-size: 11px;
color: var(--gold);
letter-spacing: 0.08em;
text-transform: uppercase;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 6px;
transition: gap 0.2s;
}
.read-more::after { content: '→'; }
.read-more:hover { gap: 10px; } .section-eyebrow {
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 12px;
display: block;
}
.section-heading {
font-family: var(--serif);
font-size: clamp(28px, 3.5vw, 44px);
line-height: 1.1;
color: var(--ink);
margin-bottom: 16px;
}
.section-sub {
font-size: 16px;
line-height: 1.75;
color: var(--muted);
} .blog-section {
padding: 80px 0 100px;
}
.blog-section-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
margin-bottom: 56px;
flex-wrap: wrap;
} .posts-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1px;
background: var(--border);
border: 1px solid var(--border);
} .post-card {
background: var(--surface);
overflow: hidden;
transition: background 0.2s;
display: flex;
flex-direction: column;
}
.post-card:hover { background: #FFFDF8; }
.post-card .post-thumb {
aspect-ratio: 16 / 9;
overflow: hidden;
background: var(--surface2);
}
.post-card .post-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.post-card:hover .post-thumb img { transform: scale(1.04); }
.post-card-body {
padding: 28px 24px 24px;
flex: 1;
display: flex;
flex-direction: column;
}
.post-category {
font-family: var(--mono);
font-size: 10px;
color: var(--gold);
letter-spacing: 0.12em;
text-transform: uppercase;
margin-bottom: 10px;
text-decoration: none;
}
.post-category:hover { color: var(--ink); }
.post-card .post-title {
font-family: var(--serif);
font-size: 20px;
line-height: 1.25;
color: var(--ink);
margin-bottom: 12px;
text-decoration: none;
display: block;
transition: color 0.2s;
}
.post-card .post-title:hover { color: var(--gold); }
.post-card .post-excerpt {
font-size: 14px;
color: var(--muted);
line-height: 1.65;
margin-bottom: 20px;
flex: 1;
}
.post-card-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 16px;
border-top: 1px solid var(--border2);
margin-top: auto;
} .post-card.post-featured {
grid-column: span 2;
flex-direction: row;
}
.post-card.post-featured .post-thumb {
flex: 0 0 45%;
aspect-ratio: unset;
min-height: 100%;
}
.post-card.post-featured .post-card-body {
padding: 36px 32px;
}
.post-card.post-featured .post-title { font-size: 24px; } .posts-list { display: flex; flex-direction: column; gap: 0; }
.post-list-item {
display: grid;
grid-template-columns: 200px 1fr;
gap: 0;
background: var(--surface);
border: 1px solid var(--border);
border-top: none;
overflow: hidden;
transition: background 0.2s;
}
.post-list-item:first-child { border-top: 1px solid var(--border); }
.post-list-item:hover { background: #FFFDF8; }
.post-list-item .post-thumb {
aspect-ratio: unset;
overflow: hidden;
background: var(--surface2);
}
.post-list-item .post-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s;
}
.post-list-item:hover .post-thumb img { transform: scale(1.04); }
.post-list-body {
padding: 24px 28px;
display: flex;
flex-direction: column;
justify-content: center;
}
.post-list-body .post-title {
font-family: var(--serif);
font-size: 20px;
color: var(--ink);
line-height: 1.25;
margin-bottom: 8px;
text-decoration: none;
display: block;
transition: color 0.2s;
}
.post-list-body .post-title:hover { color: var(--gold); }
.post-list-body .post-excerpt {
font-size: 14px;
color: var(--muted);
line-height: 1.6;
margin-bottom: 12px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
} .post-thumb-placeholder {
background: var(--surface2);
display: flex;
align-items: center;
justify-content: center;
font-family: var(--mono);
font-size: 10px;
color: var(--muted);
letter-spacing: 0.08em;
} .pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 4px;
margin-top: 64px;
}
.pagination .page-numbers {
font-family: var(--mono);
font-size: 12px;
width: 40px; height: 40px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid var(--border);
color: var(--muted);
text-decoration: none;
transition: all 0.2s;
letter-spacing: 0.04em;
}
.pagination .page-numbers:hover { color: var(--ink); border-color: rgba(30,24,14,0.3); background: var(--surface); }
.pagination .page-numbers.current { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.pagination .page-numbers.dots { border: none; color: var(--muted); width: auto; }
.pagination .prev, .pagination .next { width: auto; padding: 0 16px; letter-spacing: 0.08em; } .single-post-hero {
padding: 120px 0 0;
background: var(--bg);
border-bottom: 1px solid var(--border);
position: relative;
overflow: hidden;
}
.single-post-hero::before {
content: '';
position: absolute;
inset: 0;
background-image: repeating-linear-gradient(
-55deg, transparent, transparent 48px,
rgba(30,24,14,0.018) 48px, rgba(30,24,14,0.018) 49px
);
pointer-events: none;
}
.post-hero-inner {
max-width: var(--content-w);
margin: 0 auto;
padding: 60px 48px 0;
position: relative;
z-index: 1;
}
.post-hero-category {
font-family: var(--mono);
font-size: 10px;
color: var(--gold);
letter-spacing: 0.14em;
text-transform: uppercase;
margin-bottom: 16px;
display: flex;
align-items: center;
gap: 8px;
text-decoration: none;
}
.post-hero-category::before {
content: '';
width: 20px; height: 1px;
background: var(--gold);
}
.post-hero-title {
font-family: var(--serif);
font-size: clamp(30px, 4vw, 50px);
color: var(--ink);
line-height: 1.12;
margin-bottom: 24px;
}
.post-hero-meta {
display: flex;
align-items: center;
gap: 20px;
flex-wrap: wrap;
padding-bottom: 32px;
border-bottom: 1px solid var(--border);
} .post-featured-image {
margin-top: 0;
}
.post-featured-image img {
width: 100%;
max-height: 520px;
object-fit: cover;
} .post-content-wrap {
padding: 64px 0 100px;
}
.post-content {
max-width: var(--content-w);
margin: 0 auto;
padding: 0 48px;
} .entry-content h2 {
font-family: var(--serif);
font-size: clamp(22px, 2.8vw, 32px);
color: var(--ink);
margin: 2.5rem 0 1rem;
line-height: 1.2;
padding-top: 2rem;
border-top: 1px solid var(--border);
}
.entry-content h2:first-child { border-top: none; padding-top: 0; }
.entry-content h3 {
font-family: var(--sans);
font-size: 18px;
font-weight: 600;
color: var(--ink);
margin: 2rem 0 0.75rem;
}
.entry-content h4 {
font-family: var(--mono);
font-size: 12px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--gold);
margin: 1.5rem 0 0.75rem;
}
.entry-content p {
font-size: 16px;
line-height: 1.85;
color: var(--ink2);
margin-bottom: 1.5rem;
}
.entry-content a {
color: var(--gold);
border-bottom: 1px solid rgba(160,120,32,0.3);
text-decoration: none;
transition: border-color 0.2s;
}
.entry-content a:hover { border-color: var(--gold); }
.entry-content ul,
.entry-content ol {
margin: 1rem 0 1.5rem 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 8px;
}
.entry-content ul li,
.entry-content ol li {
font-size: 16px;
line-height: 1.7;
color: var(--ink2);
display: flex;
gap: 12px;
align-items: flex-start;
}
.entry-content ul li::before {
content: '→';
color: var(--gold-dim);
font-family: var(--mono);
font-size: 13px;
flex-shrink: 0;
margin-top: 3px;
}
.entry-content ol { counter-reset: ol; }
.entry-content ol li { counter-increment: ol; }
.entry-content ol li::before {
content: counter(ol, decimal-leading-zero);
font-family: var(--mono);
font-size: 11px;
color: var(--gold);
letter-spacing: 0.06em;
flex-shrink: 0;
margin-top: 4px;
min-width: 22px;
}
.entry-content blockquote {
border-left: 3px solid var(--gold);
background: var(--gold-bg);
padding: 20px 24px;
margin: 2rem 0;
font-family: var(--serif);
font-size: 20px;
line-height: 1.5;
color: var(--ink);
font-style: italic;
}
.entry-content blockquote cite {
display: block;
margin-top: 12px;
font-family: var(--mono);
font-size: 11px;
font-style: normal;
color: var(--muted);
letter-spacing: 0.06em;
}
.entry-content code {
font-family: var(--mono);
font-size: 13px;
background: var(--surface2);
border: 1px solid var(--border);
padding: 2px 7px;
color: var(--ink);
}
.entry-content pre {
background: var(--ink);
padding: 24px;
overflow-x: auto;
margin: 1.5rem 0;
}
.entry-content pre code {
background: none;
border: none;
padding: 0;
color: #F2EDE4;
font-size: 13px;
line-height: 1.7;
}
.entry-content table {
width: 100%;
border-collapse: collapse;
margin: 1.5rem 0;
font-size: 14px;
}
.entry-content th {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--gold);
background: var(--surface2);
padding: 12px 16px;
text-align: left;
border-bottom: 1px solid var(--border);
}
.entry-content td {
padding: 12px 16px;
border-bottom: 1px solid var(--border2);
color: var(--ink2);
line-height: 1.5;
}
.entry-content tr:last-child td { border-bottom: none; }
.entry-content img {
max-width: 100%;
height: auto;
margin: 1.5rem 0;
}
.entry-content hr {
border: none;
border-top: 1px solid var(--border);
margin: 3rem 0;
} .post-tags {
margin-top: 48px;
padding-top: 28px;
border-top: 1px solid var(--border);
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.post-tags-label {
font-family: var(--mono);
font-size: 10px;
color: var(--muted);
letter-spacing: 0.1em;
text-transform: uppercase;
}
.post-tag {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
background: var(--surface2);
border: 1px solid var(--border);
padding: 5px 12px;
text-decoration: none;
letter-spacing: 0.05em;
transition: all 0.2s;
}
.post-tag:hover { color: var(--gold); border-color: var(--gold-dim); background: var(--gold-bg); } .author-box {
margin-top: 56px;
padding: 28px;
background: var(--surface);
border: 1px solid var(--border);
display: flex;
gap: 24px;
align-items: flex-start;
}
.author-avatar {
width: 64px; height: 64px;
border-radius: 50%;
overflow: hidden;
flex-shrink: 0;
background: var(--surface2);
border: 2px solid var(--border);
}
.author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.author-name {
font-family: var(--serif);
font-size: 20px;
color: var(--ink);
margin-bottom: 6px;
}
.author-bio {
font-size: 14px;
color: var(--muted);
line-height: 1.65;
} .post-nav {
margin-top: 56px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1px;
background: var(--border);
border: 1px solid var(--border);
}
.post-nav-link {
background: var(--surface);
padding: 24px;
text-decoration: none;
transition: background 0.2s;
display: block;
}
.post-nav-link:hover { background: #FFFDF8; }
.post-nav-direction {
font-family: var(--mono);
font-size: 10px;
color: var(--gold);
letter-spacing: 0.1em;
text-transform: uppercase;
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 6px;
}
.post-nav-link.next .post-nav-direction { justify-content: flex-end; }
.post-nav-title {
font-family: var(--serif);
font-size: 18px;
color: var(--ink);
line-height: 1.25;
}
.post-nav-link.next { text-align: right; } .related-posts {
margin-top: 64px;
padding-top: 48px;
border-top: 1px solid var(--border);
}
.related-posts-heading {
font-family: var(--mono);
font-size: 11px;
color: var(--gold);
letter-spacing: 0.12em;
text-transform: uppercase;
margin-bottom: 28px;
}
.related-posts-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1px;
background: var(--border);
border: 1px solid var(--border);
} .comments-area {
margin-top: 64px;
padding-top: 48px;
border-top: 1px solid var(--border);
}
.comments-title {
font-family: var(--serif);
font-size: 28px;
color: var(--ink);
margin-bottom: 36px;
}
.comment-list { list-style: none; }
.comment { padding: 24px 0; border-bottom: 1px solid var(--border2); }
.comment:last-child { border-bottom: none; }
.comment-author { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.comment-author img { border-radius: 50%; }
.comment-author-name {
font-weight: 600;
color: var(--ink);
font-size: 15px;
}
.comment-date {
font-family: var(--mono);
font-size: 10px;
color: var(--muted);
letter-spacing: 0.06em;
margin-left: auto;
}
.comment-text { font-size: 15px; color: var(--ink2); line-height: 1.75; }
.comment-reply-link {
font-family: var(--mono);
font-size: 10px;
color: var(--gold);
text-decoration: none;
letter-spacing: 0.08em;
text-transform: uppercase;
display: inline-block;
margin-top: 10px;
} .comment-respond {
margin-top: 48px;
padding: 36px;
background: var(--surface);
border: 1px solid var(--border);
}
.comment-reply-title {
font-family: var(--serif);
font-size: 24px;
color: var(--ink);
margin-bottom: 28px;
}
.comment-form label {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--muted);
display: block;
margin-bottom: 7px;
}
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
font-family: var(--sans);
font-size: 15px;
width: 100%;
background: var(--bg);
border: 1px solid var(--border);
padding: 12px 15px;
color: var(--ink);
outline: none;
transition: border-color 0.2s, background 0.2s;
-webkit-appearance: none;
border-radius: 0;
margin-bottom: 20px;
}
.comment-form input:focus,
.comment-form textarea:focus { border-color: var(--gold-dim); background: #FFFDF8; }
.comment-form textarea { min-height: 140px; resize: vertical; line-height: 1.7; }
.comment-form-cookies-consent label { font-family: var(--sans); font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--muted); }
.form-submit input[type="submit"] {
font-family: var(--mono);
font-size: 12px;
padding: 13px 28px;
background: var(--ink);
color: var(--bg);
border: none;
cursor: pointer;
letter-spacing: 0.07em;
text-transform: uppercase;
transition: background 0.2s;
border-radius: 0;
}
.form-submit input[type="submit"]:hover { background: var(--gold); } .content-sidebar-wrap {
display: grid;
grid-template-columns: 1fr 300px;
gap: 64px;
align-items: start;
padding: 80px 0 100px;
}
.widget {
margin-bottom: 40px;
padding-bottom: 40px;
border-bottom: 1px solid var(--border);
}
.widget:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.widget-title {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid var(--border);
}
.widget ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.widget ul li a {
font-size: 14px;
color: var(--muted);
text-decoration: none;
transition: color 0.2s;
display: flex;
align-items: center;
justify-content: space-between;
}
.widget ul li a:hover { color: var(--gold); }
.widget ul li .post-count {
font-family: var(--mono);
font-size: 10px;
color: var(--muted);
}
.widget_search .search-form { display: flex; gap: 0; }
.widget_search input[type="search"] {
flex: 1;
font-family: var(--sans);
font-size: 14px;
background: var(--surface);
border: 1px solid var(--border);
border-right: none;
padding: 10px 14px;
outline: none;
color: var(--ink);
}
.widget_search input[type="search"]:focus { border-color: var(--gold-dim); }
.widget_search button[type="submit"] {
background: var(--ink);
color: var(--bg);
border: none;
padding: 10px 16px;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.06em;
text-transform: uppercase;
cursor: pointer;
transition: background 0.2s;
}
.widget_search button[type="submit"]:hover { background: var(--gold); } .widget_tag_cloud .tag-cloud {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.widget_tag_cloud .tag-cloud-link {
font-family: var(--mono);
font-size: 11px !important;
color: var(--muted);
background: var(--surface2);
border: 1px solid var(--border);
padding: 5px 12px;
text-decoration: none;
letter-spacing: 0.04em;
transition: all 0.2s;
}
.widget_tag_cloud .tag-cloud-link:hover { color: var(--gold); border-color: var(--gold-dim); background: var(--gold-bg); } .page-hero {
padding: 140px 0 64px;
background: var(--bg);
border-bottom: 1px solid var(--border);
position: relative;
overflow: hidden;
}
.page-hero::before {
content: '';
position: absolute;
inset: 0;
background-image: repeating-linear-gradient(
-55deg, transparent, transparent 48px,
rgba(30,24,14,0.022) 48px, rgba(30,24,14,0.022) 49px
);
pointer-events: none;
}
.page-hero::after {
content: '';
position: absolute;
top: -120px; right: -120px;
width: 440px; height: 440px;
background: radial-gradient(circle, rgba(201,168,76,0.09) 0%, transparent 70%);
pointer-events: none;
}
.page-hero-inner {
max-width: var(--content-w);
margin: 0 auto;
padding: 0 48px;
position: relative;
z-index: 1;
}
.page-title {
font-family: var(--serif);
font-size: clamp(32px, 4.5vw, 52px);
color: var(--ink);
line-height: 1.1;
margin-bottom: 16px;
animation: floatUp 0.6s 0.1s ease both;
}
.breadcrumb {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
letter-spacing: 0.05em;
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 40px;
}
.breadcrumb a { color: var(--muted); text-decoration: none; transition: color 0.2s; }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span { color: var(--border); } .error-404 {
min-height: 80vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 120px 48px;
}
.error-404-inner { max-width: 560px; }
.error-code {
font-family: var(--serif);
font-size: 120px;
color: var(--surface3);
line-height: 1;
margin-bottom: 0;
}
.error-title {
font-family: var(--serif);
font-size: 32px;
color: var(--ink);
margin-bottom: 16px;
}
.error-desc { font-size: 16px; color: var(--muted); line-height: 1.7; margin-bottom: 36px; }
.error-search { max-width: 400px; margin: 0 auto 32px; }
.error-search .search-form { display: flex; }
.error-search input[type="search"] {
flex: 1;
font-family: var(--sans);
font-size: 15px;
background: var(--surface);
border: 1px solid var(--border);
border-right: none;
padding: 13px 16px;
outline: none;
color: var(--ink);
}
.error-search input[type="search"]:focus { border-color: var(--gold-dim); }
.error-search button {
background: var(--ink);
color: var(--bg);
border: none;
padding: 13px 20px;
font-family: var(--mono);
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
cursor: pointer;
transition: background 0.2s;
}
.error-search button:hover { background: var(--gold); } .site-ticker {
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
overflow: hidden;
padding: 12px 0;
background: var(--surface2);
}
.ticker-track {
display: flex;
animation: ticker-scroll 30s linear infinite;
white-space: nowrap;
}
.ticker-item {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
letter-spacing: 0.12em;
text-transform: uppercase;
padding: 0 40px;
white-space: nowrap;
}
.ticker-item span { color: var(--gold); } .footer-top {
border-top: 1px solid var(--border);
background: var(--surface2);
padding: 64px 0 48px;
}
.footer-top-inner {
max-width: var(--max-w);
margin: 0 auto;
padding: 0 48px;
display: grid;
grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 48px;
}
.footer-brand {
font-family: var(--serif);
font-size: 22px;
color: var(--ink);
text-decoration: none;
display: block;
margin-bottom: 14px;
}
.footer-brand span { color: var(--gold); }
.footer-brand-desc { font-size: 13px; color: var(--muted); line-height: 1.7; max-width: 280px; margin-bottom: 24px; }
.footer-social { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-social a {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
border: 1px solid var(--border);
padding: 7px 14px;
letter-spacing: 0.07em;
text-transform: uppercase;
text-decoration: none;
background: var(--surface);
transition: all 0.2s;
}
.footer-social a:hover { color: var(--ink); border-color: rgba(30,24,14,0.25); }
.footer-col-title {
font-family: var(--mono);
font-size: 10px;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 20px;
display: block;
}
.footer-col-links { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.footer-col-links a { font-size: 14px; color: var(--muted); text-decoration: none; transition: color 0.2s; }
.footer-col-links a:hover { color: var(--ink); }
.footer-bottom {
border-top: 1px solid var(--border);
background: var(--surface3);
padding: 20px 0;
}
.footer-bottom-inner {
max-width: var(--max-w);
margin: 0 auto;
padding: 0 48px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.footer-logo { font-family: var(--serif); font-size: 18px; color: var(--muted); }
.footer-copy { font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: 0.05em; }
.footer-legal-links { display: flex; gap: 20px; flex-wrap: wrap; }
.footer-legal-links a {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
text-decoration: none;
letter-spacing: 0.05em;
transition: color 0.2s;
}
.footer-legal-links a:hover { color: var(--ink); } .alignleft  { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { display: block; margin: 0 auto 16px; }
.alignwide  { margin-left: -80px; margin-right: -80px; max-width: calc(100% + 160px); }
.alignfull  { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-family: var(--mono); font-size: 11px; color: var(--muted); letter-spacing: 0.05em; margin-top: 8px; text-align: center; }
.sticky { border-left: 3px solid var(--gold); }
.bypostauthor {}
.screen-reader-text {
border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
height: 1px; margin: -1px; overflow: hidden; padding: 0;
position: absolute; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
background-color: var(--surface2); border-radius: 2px;
clip: auto !important; clip-path: none; color: var(--ink);
display: block; font-size: 14px; height: auto; left: 5px;
line-height: normal; padding: 15px 23px 14px;
text-decoration: none; top: 5px; width: auto; z-index: 100000;
} @keyframes floatUp {
from { opacity: 0; transform: translateY(24px); }
to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50%       { opacity: 0.3; }
}
@keyframes ticker-scroll {
from { transform: translateX(0); }
to   { transform: translateX(-50%); }
} @media (max-width: 1100px) {
.container, .container--narrow { padding: 0 28px; }
.nav-inner { padding: 0 28px; }
.hero-inner { padding: 0 28px; gap: 48px; }
.footer-top-inner { padding: 0 28px; grid-template-columns: 1fr 1fr; gap: 36px; }
.footer-bottom-inner { padding: 0 28px; }
.footer-brand-col { grid-column: 1 / -1; }
.post-hero-inner { padding: 48px 28px 0; }
.post-content { padding: 0 28px; }
.content-sidebar-wrap { gap: 40px; }
.page-hero-inner { padding: 0 28px; }
}
@media (max-width: 900px) {
.posts-grid { grid-template-columns: 1fr 1fr; }
.post-card.post-featured { grid-column: span 2; flex-direction: column; }
.post-card.post-featured .post-thumb { flex: none; aspect-ratio: 16/9; }
.related-posts-grid { grid-template-columns: 1fr 1fr; }
.content-sidebar-wrap { grid-template-columns: 1fr; }
.content-sidebar-wrap .site-sidebar { order: 2; }
}
@media (max-width: 768px) {
.nav-inner { padding: 0 20px; height: 60px; }
.primary-menu { display: none; }
.nav-search-toggle { display: none; }
.nav-cta { display: none; }
.nav-hamburger { display: flex; }
.nav-mobile-drawer { top: 60px; }
.nav-search-bar { padding: 14px 20px; }
.hero-inner { grid-template-columns: 1fr; padding: 0 20px; gap: 40px; }
.site-hero { padding: 108px 0 60px; }
.hero-featured { order: -1; }
.blog-section { padding: 56px 0 72px; }
.blog-section-header { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 36px; }
.posts-grid { grid-template-columns: 1fr; }
.post-card.post-featured { grid-column: span 1; }
.posts-list .post-list-item { grid-template-columns: 120px 1fr; }
.related-posts-grid { grid-template-columns: 1fr; }
.post-nav { grid-template-columns: 1fr; }
.single-post-hero { padding: 96px 0 0; }
.post-hero-inner { padding: 40px 20px 0; }
.post-content { padding: 0 20px; }
.post-content-wrap { padding: 48px 0 72px; }
.footer-top { padding: 48px 0 36px; }
.footer-top-inner { padding: 0 20px; grid-template-columns: 1fr; }
.footer-brand-col { grid-column: auto; }
.footer-brand-desc { max-width: 100%; }
.footer-bottom { padding: 16px 0; }
.footer-bottom-inner { padding: 0 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
.page-hero { padding: 108px 0 48px; }
.page-hero-inner { padding: 0 20px; }
.alignwide { margin-left: 0; margin-right: 0; max-width: 100%; }
.error-404 { padding: 100px 20px; }
.comment-respond { padding: 24px 20px; }
.author-box { flex-direction: column; gap: 16px; }
}
@media (max-width: 480px) {
:root { --max-w: 100%; }
.container, .container--narrow { padding: 0 16px; }
.nav-inner { padding: 0 16px; }
.hero-inner, .post-hero-inner { padding: 0 16px; }
.post-content { padding: 0 16px; }
.footer-top-inner, .footer-bottom-inner { padding: 0 16px; }
.page-hero-inner { padding: 0 16px; }
.hero-title { font-size: 32px; }
.posts-list .post-list-item { grid-template-columns: 1fr; }
.posts-list .post-list-item .post-thumb { aspect-ratio: 16/7; }
.post-nav { grid-template-columns: 1fr; }
.entry-content .alignleft,
.entry-content .alignright { float: none; margin: 1rem 0; }
}