Files
petruspistor.com/resources/css/index.css
2025-08-21 07:26:20 +00:00

134 lines
3.3 KiB
CSS
Executable File
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.

/* Reset */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
/* Base */
body {
font-family: 'Iceland', sans-serif;
color: #BF8915; /* dark yellowish gold text color for body */
background: #1c1c1c; /* slate/charcoal background */
line-height: 1.5;
}
/* Full-bleed banner */
.site-header {
position: relative; /* allows overlay title */
margin: 0;
padding: 0;
}
.site-header img {
display: block; /* removes inline image gap */
width: 100%;
height: auto;
}
/* Readability overlay for bright images (subtle) */
.site-header::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,0) 60%);
pointer-events: none;
}
/* Overlay title on the banner (desktop defaults) */
.site-title {
font-family: 'Iceland', sans-serif;
font-size: clamp(3rem, 6vw, 6rem); /* ~48px96px */
text-align: center;
color: #ffd700; /* gold */
margin: 0;
text-shadow: 0 4px 12px rgba(0,0,0,0.6); /* elegant shadow for depth */
/* overlay positioning */
position: absolute;
left: 35%; /* your desktop tweak */
bottom: 3%; /* your desktop tweak */
transform: translateX(-50%);
z-index: 1;
/* fade-in animation */
opacity: 0;
animation: fadeIn 1s ease-out forwards;
}
/* Absolute-positioned slide uses combined translate */
@keyframes fadeIn {
from { opacity: 0; transform: translate(-50%, -10px); }
to { opacity: 1; transform: translate(-50%, 0); }
}
/* Sticky nav under header */
.site-nav {
position: sticky;
top: 0;
background: rgba(20,20,20,.75);
backdrop-filter: blur(6px);
border-top: 1px solid rgba(255,255,255,.07);
border-bottom: 1px solid rgba(255,255,255,.07);
}
.site-nav ul {
margin: 0 auto;
padding: .5rem 1rem;
list-style: none;
display: flex;
gap: 1rem;
justify-content: center;
max-width: 1000px;
}
.site-nav a {
color: #efefef;
text-decoration: none;
padding: .5rem .75rem;
border-radius: .5rem;
}
.site-nav a:hover, .site-nav a:focus-visible {
background: rgba(255,255,255,.08);
}
/* Content + footer */
.content { max-width: 1000px; margin: 2rem auto; padding: 0 1rem 3rem; }
.site-footer { text-align: center; color: #bdbdbd; padding: 1.5rem 1rem 3rem; }
/* ---------------------------- */
/* Responsive title adjustments */
/* ---------------------------- */
/* Tablet */
@media (max-width: 1024px) {
.site-title {
left: 50%; /* center on tablet */
bottom: 8%;
font-size: clamp(2.5rem, 6vw, 5rem);
}
}
/* Mobile */
@media (max-width: 640px) {
.site-title {
left: 50%; /* center on mobile */
bottom: 12%; /* lift it for safe spacing */
font-size: clamp(2rem, 8vw, 3.25rem);
line-height: 1.05;
padding: 0 .25rem; /* avoid edge clipping */
}
/* Optional: ensure banner has enough vertical room on short screens */
.site-header {
min-height: 40vh;
}
}
/* Very small phones */
@media (max-width: 380px) {
.site-title {
bottom: 14%;
font-size: clamp(1.8rem, 9vw, 2.8rem);
}
}
/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
.site-title { animation: none; opacity: 1; transform: translate(-50%, 0); }
}