This commit is contained in:
Mark Randall Havens 2025-10-18 13:03:53 -05:00
parent 322b182ca1
commit 93d4f838b6
50 changed files with 1016 additions and 113 deletions

171
styles.css Normal file → Executable file
View file

@ -1,95 +1,76 @@
/* — THE FOLD WITHIN — refined gold-on-black aesthetic */
:root {
--bg-dark: #0f0d0e;
--bg-card: #1a1618;
--gold: #d4af37;
--gold-soft: #b89f50;
--border: #333;
--error: #ff6666;
--font-body: 'Georgia', serif;
--transition: all 0.3s ease;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
background: var(--bg-dark);
color: var(--gold);
font-family: var(--font-body);
line-height: 1.7;
overflow-x: hidden;
}
a { color: var(--gold); text-decoration: none; transition: var(--transition); }
a:hover { text-shadow: 0 0 6px var(--gold); }
header {
padding: 2rem 1rem;
text-align: center;
border-bottom: 1px solid var(--border);
}
nav {
display: flex; justify-content: space-between; align-items: center;
max-width: 960px; margin: 0 auto 2rem;
}
.logo { font-size: 1.6rem; letter-spacing: 3px; }
nav ul { list-style: none; display: flex; gap: 2rem; }
nav li { font-size: 0.95rem; text-transform: uppercase; letter-spacing: 1px; }
.hero { margin: 3rem auto; text-align: center; max-width: 720px; }
.glyph {
margin: 0 auto 1.5rem; width: 100px; height: 100px;
border: 2px solid var(--gold); border-radius: 50%;
position: relative; transition: var(--transition);
}
.glyph::before {
content: ""; position: absolute; inset: 25%;
border: 2px solid var(--gold); transform: rotate(45deg); transition: var(--transition);
}
.glyph:hover { transform: rotate(5deg); box-shadow: 0 0 12px rgba(212,175,55,0.3); }
.hero h1 { font-size: 2.1rem; text-transform: uppercase; margin-top: 1rem; letter-spacing: 2px; }
main { padding: 2rem 1rem 4rem; max-width: 1200px; margin: 0 auto; }
.latest h2 {
font-size: 1.3rem; text-transform: uppercase; letter-spacing: 1px;
border-top: 1px solid var(--border); padding-top: 1rem; margin-bottom: 2rem;
}
.grid {
display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2rem;
}
.loading { color: var(--gold-soft); text-align: center; }
article {
background: var(--bg-card); border: 1px solid var(--border);
border-radius: 10px; padding: 1.25rem; transition: var(--transition); cursor: pointer;
}
article:hover { transform: scale(1.03); box-shadow: 0 0 12px rgba(212,175,55,0.35); }
.thumb { width: 100%; height: 140px; background: var(--border); margin-bottom: 1rem; border-radius: 6px; }
h3 { font-size: 1.1rem; margin: 0.5rem 0; letter-spacing: 0.5px; }
.date { font-size: 0.8rem; color: var(--gold-soft); margin-bottom: 0.75rem; }
/* Markdown view */
.markdown { max-width: 720px; margin: 3rem auto; line-height: 1.85; font-size: 1rem; }
.markdown h1, .markdown h2, .markdown h3 { color: var(--gold); margin: 2rem 0 0.75rem; line-height: 1.4; }
.markdown h1 { font-size: 2rem; }
.markdown h2 { font-size: 1.5rem; }
.markdown h3 { font-size: 1.2rem; }
.markdown p { margin-bottom: 1rem; }
.markdown a { border-bottom: 1px dashed var(--gold-soft); }
.markdown a:hover { border-bottom-color: var(--gold); text-shadow: 0 0 4px var(--gold); }
/* Back link */
#back { display: inline-block; margin: 2rem 0 1rem; color: var(--gold-soft); font-size: 0.9rem; }
#back:hover { color: var(--gold); text-shadow: 0 0 5px var(--gold); }
/* Error */
.error { color: var(--error); text-align: center; margin-top: 2rem; font-style: italic; letter-spacing: 1px; }
/* Responsive tweaks */
@media (max-width: 600px) {
nav ul { gap: 1rem; }
.hero h1 { font-size: 1.5rem; }
.glyph { width: 80px; height: 80px; }
}
:root{--bg:#0f0d0e;--card:#1a1618;--gold:#d4af37;--soft:#e0c66d;--border:#333;--err:#ff6666;--font:'Literata',serif;--t:0.3s;--fs-base:1rem;--fs-h1:2rem;--fs-h2:1.5rem;--fs-h3:1.2rem;}
*{box-sizing:border-box;margin:0;padding:0;scroll-behavior:smooth}
body{background:var(--bg);color:var(--gold);font-family:var(--font);line-height:1.7;overflow-x:hidden}
@media (prefers-color-scheme: light) { body {background:#f0f0f0; color:#333; --gold:#b89f50; --soft:#d4af37; --border:#ccc; --card:#e0e0e0;} }
a{color:var(--gold);text-decoration:none;transition:all var(--t)} a:hover{text-shadow:0 0 6px var(--gold)}
header{padding:2rem 1rem;text-align:center;border-bottom:1px solid var(--border)}
nav{display:flex;justify-content:space-between;align-items:center;max-width:960px;margin:0 auto 2rem}
.logo{font-size:1.6rem;letter-spacing:3px}
nav ul{list-style:none;display:flex;gap:2rem}
nav li{font-size:.95rem;text-transform:uppercase;letter-spacing:1px}
.hero{margin:3rem auto;text-align:center;max-width:720px}
.glyph{margin:0 auto 1.5rem;width:100px;height:100px;border:2px solid var(--gold);border-radius:50%;position:relative;transition:all var(--t)}
.glyph::before{content:"";position:absolute;inset:25%;border:2px solid var(--gold);transform:rotate(45deg)}
.glyph:hover{transform:rotate(5deg);box-shadow:0 0 12px rgba(212,175,55,.3)}
.hero h1{font-size:var(--fs-h1);text-transform:uppercase;margin-top:1rem;letter-spacing:2px}
main{padding:2rem 1rem 4rem;max-width:1200px;margin:0 auto;transition:opacity var(--t)}
.latest h2{font-size:1.3rem;text-transform:uppercase;letter-spacing:1px;border-top:1px solid var(--border);padding-top:1rem;margin-bottom:2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem}
.loading{color:var(--soft);text-align:center}
article{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;transition:all var(--t);cursor:pointer}
article:hover{transform:scale(1.03);box-shadow:0 0 12px rgba(212,175,55,.35)}
.thumb{width:100%;height:140px;background:var(--border);margin-bottom:1rem;border-radius:6px}
h3{font-size:var(--fs-h3);margin:.5rem 0;letter-spacing:.5px}
.date{font-size:.8rem;color:var(--soft);margin-bottom:.75rem}
.markdown{max-width:720px;margin:3rem auto;line-height:1.85;font-size:var(--fs-base)}
.markdown p {hyphens: auto;}
.markdown h1,.markdown h2,.markdown h3{color:var(--gold);margin:2rem 0 .75rem;line-height:1.4}
.markdown h1{font-size:var(--fs-h1)}.markdown h2{font-size:var(--fs-h2)}.markdown h3{font-size:var(--fs-h3)}
.markdown p{margin-bottom:1rem}
.markdown a{border-bottom:1px dashed var(--soft)} .markdown a:hover{border-bottom-color:var(--gold);text-shadow:0 0 4px var(--gold)}
#back{display:inline-block;margin:2rem 0 1rem;color:var(--soft);font-size:.9rem}
#back:hover{color:var(--gold);text-shadow:0 0 5px var(--gold)}
.error{color:var(--err);text-align:center;margin-top:2rem;font-style:italic;letter-spacing:1px}
.mega {display:none; position:absolute; left:0; right:0; background:var(--card); border:1px solid var(--border); padding:1rem; z-index:10; text-align:left; max-width:960px; margin:0 auto;}
.sections:hover .mega {display:block;}
.mega ul {list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
.mega li {text-transform: none; letter-spacing:0;}
.pill {display:inline-block; padding:0.2rem 0.8rem; border-radius:999px; background:var(--border); margin:0.2rem; font-size:0.85rem; transition:all var(--t);}
.pill:hover {background:var(--soft); color:var(--bg);}
.pill.active {background:var(--gold); color:var(--bg);}
.pill.program {background:#584a1f;}
.reading {font-size:0.8rem; color:var(--soft);}
.share {margin:1rem 0;}
.nav-post, .nav-series {display:flex; justify-content:space-between; margin:2rem 0;}
.nav-post a, .nav-series a {color:var(--soft);}
.nav-post a:hover, .nav-series a:hover {color:var(--gold);}
.section-grid {display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:2rem;}
.filters {margin:1rem 0;}
.tag-cloud {display:flex; flex-wrap:wrap; gap:0.5rem;}
.controls {margin:1rem 0;}
.pager {text-align:center; margin:2rem 0;}
.pager button {padding:0.5rem 1rem; background:var(--card); border:1px solid var(--border); color:var(--gold); margin:0 0.5rem; cursor:pointer; transition:all var(--t);}
.pager button:hover {background:var(--border);}
.pager span {color:var(--soft);}
footer {padding:2rem 1rem; border-top:1px solid var(--border); text-align:center; font-size:0.9rem;}
footer div {margin:1rem 0;}
footer .sections ul {display:flex; flex-wrap:wrap; justify-content:center; gap:1rem;}
footer .tags .tag-cloud a {color:var(--soft); margin:0.2rem;}
footer .tags a:hover {color:var(--gold);}
.markdown blockquote {border-left:4px solid var(--gold); padding-left:1rem; font-style:italic; margin:1rem 0;}
.markdown code {background:var(--card); padding:0.2rem 0.4rem; border-radius:4px;}
.markdown pre {background:var(--card); padding:1rem; overflow:auto; border-radius:6px;}
.markdown table {border-collapse:collapse; margin:1rem 0;}
.markdown th, .markdown td {border:1px solid var(--border); padding:0.5rem;}
.markdown img {max-width:100%; height:auto; display:block; margin:1rem auto;}
a:focus {outline:2px solid var(--gold);}
@media (prefers-reduced-motion) { * {transition:none !important;}}
nav form {margin:0;}
nav input {background:var(--card); border:1px solid var(--border); color:var(--gold); padding:0.3rem 0.6rem; border-radius:4px;}
@media(max-width:600px){nav ul{gap:1rem;display:none;}.hero h1{font-size:1.5rem}.glyph{width:80px;height:80px} .hamburger{display:block;background:transparent;border:none;color:var(--gold);font-size:1.5rem;cursor:pointer;} nav ul.open {display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--card); padding:1rem; z-index:10;} .mega ul {grid-template-columns:1fr;}}
.author {color:var(--soft); font-style:italic; font-size:0.9rem;}
.breadcrumbs {font-size:0.9rem; color:var(--soft); margin-bottom:1rem;}
.breadcrumbs a {color:var(--soft);}
.breadcrumbs a:hover {color:var(--gold);}
.skip-link {position:absolute; top:-100px; left:0; background:var(--gold); color:var(--bg); padding:0.5rem; z-index:100;}
.skip-link:focus {top:0;}