shiloh-website/css/creed.css
2026-07-07 13:51:27 -07:00

566 lines
13 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* =================================================================
SHILOH CREED PAGE — NAVIGATION & READABILITY
================================================================= */
body.creed-page {
background: var(--color-surface-1);
}
/* --- Sticky nav bar (creed page only) ------------------------ */
.creed-page #header {
position: sticky;
top: 0;
z-index: 60;
}
.creed-page .nav-bar {
background: var(--color-bg);
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
padding: 0.5rem var(--space-sm);
min-height: 56px;
gap: var(--space-sm);
}
.creed-page .nav-bar .logo img {
height: 36px;
width: auto;
}
/* --- Skip link ------------------------------------------------ */
.creed-page .skip-link {
position: absolute;
top: -100px;
left: var(--space-sm);
background: var(--color-accent);
color: var(--color-surface-2);
padding: var(--space-sm) var(--space-md);
border-radius: var(--radius-sm);
font-weight: var(--fw-button);
text-decoration: none;
z-index: 1000;
transition: top var(--transition-fast);
}
.creed-page .skip-link:focus {
top: var(--space-sm);
}
/* --- Reading progress bar (top of page) ----------------------- */
.reading-progress {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 3px;
background: transparent;
z-index: 999;
pointer-events: none;
}
.reading-progress-bar {
height: 100%;
width: 0%;
background: var(--color-accent);
transition: width 0.1s linear;
}
/* --- Hero -----------------------------------------------------
NOTE: <main> in styles.css is `display: flex; justify-content: space-around`
so all direct children of <main> need `flex: 1 1 100%` to claim the full
row. Without this, the hero shrinks to its content width and floats to
the left on desktop. */
.creed-hero,
.creed-toolbar,
.creed-layout {
flex: 1 1 100%;
width: 100%;
align-self: stretch;
text-align: left;
min-width: 0;
}
/* --- Hero ----------------------------------------------------- */
.creed-hero {
padding: 0;
background: linear-gradient(180deg, var(--color-surface-2) 0%, var(--color-surface-1) 100%);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
border-top: 4px solid var(--color-accent);
min-height: 0;
}
.creed-hero-inner {
max-width: 1000px;
margin: 0 auto;
padding: var(--space-xl) var(--space-md) var(--space-lg);
text-align: center;
}
.creed-eyebrow {
text-transform: uppercase;
letter-spacing: 0.2em;
font-size: 0.85rem;
color: var(--color-accent);
font-weight: var(--fw-button);
margin-bottom: var(--space-sm);
}
.creed-hero h1 {
font-size: clamp(2.25rem, 1.5rem + 4vw, 4.5rem);
line-height: var(--lh-tight);
color: var(--color-heading);
margin-bottom: var(--space-md);
}
.creed-tagline {
font-size: var(--fs-h3);
color: var(--color-text);
margin-bottom: var(--space-lg);
line-height: var(--lh-base);
}
.creed-meta {
display: flex;
flex-wrap: wrap;
gap: var(--space-xs) var(--space-md);
justify-content: center;
font-size: 0.9rem;
color: var(--color-text);
margin-bottom: var(--space-lg);
opacity: 0.85;
}
.creed-meta span {
display: inline-flex;
align-items: center;
gap: 0.3em;
}
.creed-meta span + span::before {
content: "·";
margin-right: var(--space-md);
opacity: 0.4;
}
.creed-hero-actions {
display: flex;
flex-wrap: wrap;
gap: var(--space-sm);
justify-content: center;
}
/* --- Toolbar (search) ---------------------------------------- */
.creed-toolbar {
position: sticky;
top: 56px;
z-index: 55;
background: var(--color-surface-2);
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
padding: 0;
}
.creed-toolbar-inner {
max-width: 1200px;
margin: 0 auto;
padding: 0.4rem var(--space-md);
display: flex;
flex-wrap: nowrap;
gap: var(--space-sm);
align-items: center;
}
.creed-search {
flex: 1 1 auto;
min-width: 0;
display: flex;
align-items: center;
}
.creed-search input {
width: 100%;
padding: 0.35rem 0.7rem;
background: var(--color-surface-1);
color: var(--color-text);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: var(--radius-sm);
font-family: inherit;
font-size: 0.9rem;
line-height: 1.3;
}
.creed-search input:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: 0 0 0 2px rgba(69, 227, 255, 0.2);
}
.creed-toolbar-status {
font-size: 0.8rem;
color: var(--color-text);
opacity: 0.7;
margin: 0;
white-space: nowrap;
flex-shrink: 0;
}
/* --- Layout: TOC + content side-by-side ----------------------- */
.creed-layout {
max-width: 1200px;
margin: 0 auto;
padding: var(--space-lg) var(--space-md);
display: grid;
grid-template-columns: 240px 1fr;
gap: var(--space-lg);
align-items: start;
}
/* --- Table of contents ---------------------------------------- */
.creed-toc {
position: sticky;
top: var(--space-md);
background: var(--color-surface-2);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: var(--radius-md);
padding: var(--space-md);
max-height: calc(100vh - 2 * var(--space-md));
overflow-y: auto;
}
.creed-toc-title {
text-transform: uppercase;
letter-spacing: 0.15em;
font-size: 0.75rem;
color: var(--color-accent);
font-weight: var(--fw-button);
margin: 0 0 var(--space-xs);
}
.creed-toc-progress {
font-size: 0.8rem;
color: var(--color-text);
opacity: 0.6;
margin: 0 0 var(--space-sm);
}
.creed-toc-list {
list-style: none;
padding: 0;
margin: 0;
}
.creed-toc-list li {
margin: 0;
}
.creed-toc-list a {
display: flex;
align-items: center;
gap: var(--space-sm);
padding: 0.5rem 0.6rem;
color: var(--color-text);
text-decoration: none;
border-radius: var(--radius-sm);
font-size: 0.92rem;
border-left: 3px solid transparent;
transition: background var(--transition-fast), border-color var(--transition-fast);
}
.creed-toc-list a:hover {
background: rgba(255, 255, 255, 0.05);
}
.creed-toc-list a.is-active {
background: rgba(69, 227, 255, 0.08);
border-left-color: var(--color-accent);
color: var(--color-heading);
font-weight: var(--fw-button);
}
.creed-toc-list .toc-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.6rem;
height: 1.6rem;
background: var(--color-surface-1);
color: var(--color-text);
border-radius: var(--radius-full);
font-size: 0.75rem;
font-weight: var(--fw-button);
flex-shrink: 0;
}
.creed-toc-list a.is-active .toc-num {
background: var(--color-accent);
color: var(--color-surface-2);
}
/* --- Article content ----------------------------------------- */
.creed-content {
max-width: 800px;
min-width: 0;
}
.creed-intro {
font-size: 1.1rem;
line-height: var(--lh-base);
color: var(--color-text);
margin-bottom: var(--space-xl);
padding: var(--space-md);
background: var(--color-surface-2);
border-left: 4px solid var(--color-accent);
border-radius: var(--radius-sm);
}
.creed-section {
margin-bottom: var(--space-xl);
padding-top: var(--space-md);
scroll-margin-top: 120px;
}
.creed-section-header {
display: flex;
align-items: center;
gap: var(--space-md);
margin-bottom: var(--space-sm);
padding: var(--space-xs) var(--space-sm);
border-bottom: 2px solid var(--color-accent);
border-radius: var(--radius-sm);
background: rgba(124, 242, 160, 0.04);
}
.creed-section-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.5rem;
height: 2.5rem;
background: var(--color-accent);
color: var(--color-surface-2);
border-radius: var(--radius-full);
font-size: 1.25rem;
font-weight: var(--fw-button);
flex-shrink: 0;
}
.creed-section h2 {
font-size: var(--fs-h2);
color: var(--color-heading);
line-height: var(--lh-tight);
margin: 0;
}
.creed-section-lead {
font-size: 1.05rem;
line-height: var(--lh-base);
color: var(--color-text);
margin: var(--space-sm) 0 var(--space-md);
font-style: italic;
opacity: 0.9;
}
/* --- Article (collapsible) ----------------------------------- */
.creed-article {
background: var(--color-surface-2);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: var(--radius-md);
margin-bottom: var(--space-sm);
transition: border-color var(--transition-fast);
}
.creed-article[open] {
border-color: rgba(69, 227, 255, 0.3);
}
.creed-article.is-hidden {
display: none;
}
.creed-article summary {
cursor: pointer;
padding: var(--space-sm) var(--space-md);
font-size: 1.05rem;
font-weight: var(--fw-button);
color: var(--color-heading);
list-style: none;
display: flex;
align-items: center;
gap: var(--space-sm);
user-select: none;
border-radius: var(--radius-md);
transition: background var(--transition-fast);
}
.creed-article summary::-webkit-details-marker {
display: none;
}
.creed-article summary::before {
content: "+";
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
background: var(--color-surface-1);
color: var(--color-accent);
border-radius: var(--radius-sm);
font-size: 1rem;
font-weight: var(--fw-button);
transition: transform var(--transition-fast), background var(--transition-fast);
flex-shrink: 0;
}
.creed-article[open] > summary::before {
content: "";
background: var(--color-accent);
color: var(--color-surface-2);
}
.creed-article summary:hover {
background: rgba(255, 255, 255, 0.03);
}
.creed-article summary:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
.creed-article-body {
padding: 0 var(--space-md) var(--space-md);
color: var(--color-text);
line-height: var(--lh-base);
}
.creed-article-body > p {
margin-bottom: var(--space-sm);
}
.creed-article-body mark {
background: rgba(69, 227, 255, 0.25);
color: var(--color-heading);
padding: 0.1em 0.2em;
border-radius: 2px;
}
/* --- Scripture references as a plain text list -------------- */
.creed-references {
list-style: none;
padding: 0;
margin: var(--space-sm) 0 0;
display: flex;
flex-wrap: wrap;
gap: 0.4rem 0.6rem;
}
.creed-references li {
margin: 0;
}
.creed-references a {
display: inline-block;
padding: 0;
background: none;
color: var(--color-accent);
border: 0;
border-radius: 0;
font-size: 0.85rem;
text-decoration: underline;
text-underline-offset: 2px;
white-space: nowrap;
transition: color var(--transition-fast);
}
.creed-references a::before {
content: "";
}
.creed-references a:hover,
.creed-references a:focus-visible {
background: none;
color: var(--color-heading);
border: 0;
}
/* --- Closing section ---------------------------------------- */
.creed-summary {
background: var(--color-surface-2);
border-radius: var(--radius-md);
padding: var(--space-lg) var(--space-md);
border: 1px solid rgba(69, 227, 255, 0.2);
}
.creed-summary .creed-section-header {
border-bottom-color: var(--color-accent);
}
.creed-closing {
margin-top: var(--space-md);
font-size: 1.15rem;
font-style: italic;
color: var(--color-accent);
text-align: center;
}
/* --- Filter no-match state --------------------------------- */
.creed-section.is-hidden {
display: none;
}
/* --- Responsive: stack on mobile ---------------------------- */
@media (max-width: 960px) {
.creed-layout {
grid-template-columns: 1fr;
}
.creed-toc {
position: static;
max-height: none;
}
.creed-meta {
flex-direction: column;
gap: var(--space-xs);
}
}
@media (max-width: 600px) {
.creed-hero-inner {
padding: var(--space-lg) var(--space-sm) var(--space-md);
}
.creed-section-header {
gap: var(--space-xs);
padding: var(--space-xs);
}
.creed-section-num {
width: 2rem;
height: 2rem;
font-size: 1rem;
}
}
/* --- Print --------------------------------------------------- */
@media print {
.creed-toc,
.creed-toolbar,
.reading-progress,
#back-to-top,
#header,
#footer,
#message,
.creed-hero-actions {
display: none !important;
}
.creed-layout {
display: block;
padding: 0;
max-width: none;
}
.creed-content {
max-width: none;
}
.creed-hero {
background: none;
color: #000;
border-bottom: 2px solid #000;
}
.creed-hero-inner {
padding: 0 0 1rem;
text-align: center;
}
.creed-hero h1,
.creed-section h2,
.creed-article summary,
.creed-section-num,
.creed-eyebrow,
.creed-tagline,
.creed-meta,
.creed-closing {
color: #000 !important;
}
.creed-section-num {
background: #000 !important;
color: #fff !important;
}
.creed-article,
.creed-intro,
.creed-summary {
background: none !important;
border: 1px solid #ccc;
page-break-inside: avoid;
margin-bottom: 1rem;
}
.creed-article {
page-break-inside: avoid;
}
.creed-article-body {
display: block !important;
}
.creed-article[open] > summary::before,
.creed-article summary::before {
display: none;
}
.creed-references a {
background: none !important;
color: #000 !important;
border: 0;
}
.creed-references a::before {
content: "";
}
a {
color: #000;
text-decoration: underline;
}
.creed-section {
page-break-before: always;
}
}