Files
kaleidoskop/styles/layout.css
T
valknar 90b35f9d0c Remove interior title page — cover replaces it
The title page is redundant since the KDP cover (cover.pdf) already
establishes title and author. Interior now opens directly on the
copyright page, followed by the TOC and stories (99 pages total).
Removed unused .page--title CSS from layout and typography.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:56:59 +02:00

128 lines
2.5 KiB
CSS

/* ── Image pages ── */
.page--image {
background: var(--color-primary, #1a1a2e);
}
.scene-image {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
/* Placeholder shown when image not yet available */
.placeholder-image {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.placeholder-label {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.5rem;
color: rgba(255, 255, 255, 0.75);
text-align: center;
padding: 1.5rem 2.5rem;
border: 1px dashed rgba(255, 255, 255, 0.25);
border-radius: 4px;
}
.placeholder-story {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.15em;
opacity: 0.6;
}
.placeholder-scene {
font-size: 1.15rem;
font-weight: 500;
line-height: 1.4;
}
/* ── Text pages ── */
.page--text {
background: var(--cream, #faf8f2);
/* Subtle paper texture via SVG noise */
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
background-repeat: repeat;
display: flex;
align-items: center;
}
.text-page-inner {
width: 100%;
display: flex;
flex-direction: column;
gap: 0;
}
.scene-ornament {
margin-top: auto;
}
/* ── Imprint page ── */
.page--imprint {
background: var(--cream, #faf8f2);
display: flex;
align-items: flex-end;
}
/* ── Table of contents ── */
.page--toc {
background: var(--cream, #faf8f2);
display: flex;
flex-direction: column;
gap: 2rem;
}
.toc-list {
list-style: none;
counter-reset: toc;
display: flex;
flex-direction: column;
gap: 0.7rem;
}
.toc-list li {
counter-increment: toc;
display: flex;
align-items: baseline;
gap: 0.8rem;
}
.toc-list li::before {
content: counter(toc, decimal-leading-zero);
min-width: 2.2rem;
flex-shrink: 0;
}
/* ── Finale page ── */
.page--finale {
background: var(--midnight, #0d0d2b);
position: relative;
}
.finale-image {
width: 100%;
height: 100%;
object-fit: cover;
}
.finale-overlay {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
padding-bottom: 1in;
text-align: center;
background: linear-gradient(to top, rgba(13, 13, 43, 0.75) 0%, transparent 55%);
}