dontbechad/static/css/journey.css
Chad 32264deb5a Initial commit: Complete Hugo site with interactive story timeline
- Hugo site configured and working
- Story page with interactive collapsible timeline
- CSS styling for journey/timeline layout
- JavaScript for dynamic markdown-to-timeline conversion
- Theme with responsive design
- Content structure for Bitcoin education site

Features:
- Collapsible year sections with animations
- Quick jump navigation between years
- Mobile responsive design
- Interactive timeline functionality
2026-01-18 16:23:55 -06:00

447 lines
No EOL
8.6 KiB
CSS

/* Dynamic Story Page Styles */
.story-page {
background: linear-gradient(135deg, #0A1929 0%, #1A2332 50%, #0F172A 100%);
background-attachment: fixed;
position: relative;
overflow: hidden;
}
/* Logo styling */
.logo-image {
height: 40px;
width: auto;
filter: drop-shadow(0 2px 8px rgba(255, 107, 53, 0.3));
transition: all 0.3s ease;
}
.logo-image:hover {
transform: scale(1.05);
filter: drop-shadow(0 4px 12px rgba(255, 107, 53, 0.5));
}
.logo-svg {
animation: subtle-glow 4s ease-in-out infinite alternate;
}
@keyframes subtle-glow {
0% { filter: brightness(1) drop-shadow(0 0 5px rgba(255, 107, 53, 0.3)); }
100% { filter: brightness(1.1) drop-shadow(0 0 8px rgba(255, 107, 53, 0.5)); }
}
.story-page::before {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
radial-gradient(circle at 20% 50%, rgba(255, 107, 53, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(255, 107, 53, 0.05) 0%, transparent 50%),
url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" style="background:transparent;"><defs><pattern id="bitcoin-grid" width="20" height="20" patternUnits="userSpaceOnUse"><circle cx="10" cy="10" r="1" fill="%23FF6B35" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23bitcoin-grid)"/></svg>');
background-size: 100% 100%, 100% 100%, 100px 100px;
pointer-events: none;
z-index: 1;
}
.story-container {
max-width: 1000px;
margin: 0 auto;
padding: 40px 20px;
position: relative;
z-index: 2;
}
.story-intro {
text-align: center;
margin-bottom: 60px;
}
.story-intro h1 {
color: var(--primary-color);
margin-bottom: 20px;
font-size: 2.5rem;
font-weight: 700;
text-shadow: 0 0 20px rgba(255, 107, 53, 0.3);
background: linear-gradient(135deg, #FF6B35, #FF8F65);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.story-intro p {
max-width: 600px;
margin: 0 auto;
line-height: 1.6;
color: #E2E8F0;
font-size: 1.1rem;
}
.story-thread {
position: relative;
max-width: 800px;
margin: 0 auto;
}
.year-section {
margin-bottom: 40px;
position: relative;
}
.year-header {
background: linear-gradient(135deg, rgba(255, 107, 53, 0.9), rgba(255, 143, 101, 0.9));
color: white;
padding: 20px 30px;
border-radius: 15px;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
font-weight: bold;
font-size: 1.3rem;
transition: all 0.3s ease;
border: 2px solid rgba(255, 107, 53, 0.3);
width: 100%;
box-sizing: border-box;
backdrop-filter: blur(10px);
box-shadow: 0 8px 32px rgba(255, 107, 53, 0.2);
position: relative;
overflow: hidden;
}
.year-header::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.5s ease;
}
.year-header:hover::before {
left: 100%;
}
.year-header:hover {
transform: translateY(-3px);
box-shadow: 0 12px 40px rgba(255, 107, 53, 0.4);
border-color: rgba(255, 107, 53, 0.5);
}
.year-arrow {
transition: transform 0.3s ease;
font-size: 1.5rem;
}
.year-header.active .year-arrow {
transform: rotate(90deg);
}
.year-badge {
background: rgba(255, 255, 255, 0.2);
padding: 4px 12px;
border-radius: 20px;
font-size: 0.9rem;
}
.year-content {
background: rgba(26, 35, 50, 0.8);
border: 1px solid rgba(255, 107, 53, 0.2);
border-radius: 15px;
margin-top: 15px;
overflow: hidden;
max-height: 0;
transition: max-height 0.5s ease, opacity 0.3s ease;
opacity: 0;
backdrop-filter: blur(10px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.year-content.active {
max-height: 2000px;
opacity: 1;
}
.year-content-inner {
padding: 35px;
color: #E2E8F0;
}
.year-content-inner h3 {
color: #FF6B35;
font-size: 1.3rem;
margin-bottom: 15px;
font-weight: 600;
}
.year-content-inner h4 {
color: #FF8F65;
font-size: 1.1rem;
margin-bottom: 10px;
font-weight: 500;
}
.year-content-inner p {
line-height: 1.7;
margin-bottom: 15px;
color: #CBD5E1;
}
.year-content-inner ul {
list-style: none;
padding: 0;
margin-bottom: 20px;
}
.year-content-inner li {
margin-bottom: 12px;
padding-left: 25px;
position: relative;
line-height: 1.6;
color: #CBD5E1;
}
.year-content-inner li:before {
content: '₿';
position: absolute;
left: 0;
color: #FF6B35;
font-weight: bold;
font-size: 1.1rem;
}
.year-content-inner strong {
color: #FF8F65;
font-weight: 600;
}
.timeline-marker {
position: absolute;
left: 50%;
top: 50px;
width: 12px;
height: 12px;
background: var(--primary-color);
border-radius: 50%;
transform: translateX(-50%);
z-index: 10;
box-shadow: 0 0 20px rgba(255, 107, 53, 0.5);
}
.timeline-line {
position: absolute;
left: 50%;
top: 56px;
bottom: 0;
width: 2px;
background: linear-gradient(180deg, var(--primary-color), transparent);
transform: translateX(-50%);
}
.experience-section {
margin-bottom: 40px;
padding-left: 60px;
position: relative;
}
.experience-section:before {
content: '';
position: absolute;
left: 20px;
top: 8px;
bottom: 8px;
width: 2px;
background: var(--border-color);
}
.experience-title {
color: var(--primary-color);
font-size: 1.1rem;
font-weight: bold;
margin-bottom: 15px;
position: relative;
}
.experience-title:before {
content: '';
position: absolute;
left: -45px;
top: 50%;
width: 8px;
height: 8px;
background: var(--primary-color);
border-radius: 50%;
transform: translateY(-50%);
}
.experience-content {
margin-bottom: 20px;
}
.experience-content ul {
list-style: none;
padding: 0;
}
.experience-content li {
margin-bottom: 12px;
padding-left: 20px;
position: relative;
line-height: 1.5;
}
.experience-content li:before {
content: '₿';
position: absolute;
left: 0;
color: var(--primary-color);
font-weight: bold;
}
.milestone-highlight {
background: rgba(255, 107, 53, 0.1);
border-left: 4px solid var(--primary-color);
padding: 15px;
margin: 20px 0;
border-radius: 0 8px 8px 0;
}
.milestone-title {
color: var(--primary-color);
font-weight: bold;
margin-bottom: 10px;
}
.story-navigation {
display: flex;
justify-content: center;
gap: 20px;
margin: 40px 0;
flex-wrap: wrap;
}
.story-nav-btn {
background: rgba(26, 35, 50, 0.8);
border: 2px solid rgba(255, 107, 53, 0.3);
color: #FF6B35;
padding: 10px 18px;
border-radius: 10px;
text-decoration: none;
font-weight: 600;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
font-size: 0.9rem;
}
.story-nav-btn:hover {
background: rgba(255, 107, 53, 0.9);
color: white;
transform: translateY(-2px);
box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3);
border-color: rgba(255, 107, 53, 0.5);
}
.year-number {
font-size: 1.5rem;
font-weight: bold;
text-shadow: 0 0 10px rgba(255, 107, 53, 0.5);
}
/* Add glowing effect for active sections */
.year-header.active {
background: linear-gradient(135deg, rgba(255, 107, 53, 1), rgba(255, 143, 101, 1));
box-shadow: 0 0 30px rgba(255, 107, 53, 0.5);
border-color: rgba(255, 107, 53, 0.8);
}
/* Add pulse animation to year arrow */
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.year-header.active .year-arrow {
animation: pulse 2s infinite;
}
/* Add smooth fade-in animation */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.year-content.active .year-content-inner {
animation: fadeInUp 0.5s ease;
}
/* Add hover effect for navigation buttons */
.story-nav-btn {
position: relative;
overflow: hidden;
}
.story-nav-btn::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: rgba(255, 255, 255, 0.2);
transform: translate(-50%, -50%);
transition: width 0.3s ease, height 0.3s ease;
}
.story-nav-btn:hover::after {
width: 100%;
height: 100%;
}
.quick-jump {
text-align: center;
margin-bottom: 40px;
}
.quick-jump label {
color: #E2E8F0;
margin-bottom: 15px;
display: block;
font-weight: 600;
font-size: 1.1rem;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
@media (max-width: 768px) {
.story-container {
padding: 20px 15px;
}
.timeline-marker {
left: 20px;
}
.timeline-line {
left: 20px;
}
.experience-section {
padding-left: 40px;
}
.experience-section:before {
left: 10px;
}
.experience-title:before {
left: -25px;
}
}