feat: improve lightbox rendering, hero styles, and config loading

This commit is contained in:
ralksta
2026-03-08 16:16:15 +01:00
parent 09f358559e
commit 01da5e1baa
7 changed files with 437 additions and 189 deletions

View File

@@ -57,7 +57,8 @@
.main {
max-width: var(--max-width);
margin: 0 auto;
padding: 104px 24px 96px; /* 56px header + 48px original padding */
padding: 104px 24px 96px;
/* 56px header + 48px original padding */
}
/* Simple CSS Page Fade-In (Replaces Framer Motion) */
@@ -70,6 +71,7 @@
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
@@ -80,7 +82,8 @@
.main:has(.hero),
.main:has(.about) {
max-width: none;
padding-top: 56px; /* Still need space for header */
padding-top: 56px;
/* Still need space for header */
padding-left: 0;
padding-right: 0;
padding-bottom: 0;
@@ -179,6 +182,95 @@
opacity: 1;
}
/* ── Hero: Fullbleed Layout ─────────────────────── */
.hero--fullbleed {
position: relative;
min-height: calc(100vh - 56px);
overflow: hidden;
}
/* HeroCarousel images fill the entire container */
.hero--fullbleed>span,
.hero--fullbleed>img {
position: absolute !important;
inset: 0;
width: 100% !important;
height: 100% !important;
object-fit: cover;
}
.hero__fullbleed-overlay {
position: absolute;
inset: 0;
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 64px 40px;
/* Multi-stop for contrast on any image brightness */
background:
radial-gradient(ellipse at center, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.0) 70%),
linear-gradient(to bottom, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.15) 40%, rgba(0, 0, 0, 0.45) 100%);
}
.hero--fullbleed .hero__title {
color: #fff;
font-size: 4rem;
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7), 0 8px 48px rgba(0, 0, 0, 0.6);
}
.hero--fullbleed .hero__subtitle {
color: rgba(255, 255, 255, 0.92);
margin-bottom: 32px;
text-shadow: 0 1px 6px rgba(0, 0, 0, 0.7);
}
.hero--fullbleed .hero__nav {
background: rgba(0, 0, 0, 0.38);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
padding: 14px 28px;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
.hero--fullbleed .hero__nav-link {
color: rgba(255, 255, 255, 0.7);
text-decoration-color: rgba(255, 255, 255, 0.25);
}
.hero--fullbleed .hero__nav-link:hover {
color: #fff;
text-decoration-color: #fff;
}
/* ── Hero: Minimal Layout ───────────────────────── */
.hero--minimal {
display: flex;
align-items: center;
justify-content: center;
min-height: calc(100vh - 56px);
padding: 64px 40px;
}
.hero--minimal .hero__content {
text-align: center;
max-width: 500px;
}
.hero--minimal .hero__title {
font-size: 4.5rem;
font-weight: 300;
letter-spacing: 0.08em;
margin-bottom: 12px;
}
.hero--minimal .hero__subtitle {
margin-bottom: 48px;
}
/* ── Hero: Stacked Layout ───────────────────────── */
.hero--stacked {
display: flex;