Files
my-protfolio/src/components/RiverJourney.module.css

237 lines
4.7 KiB
CSS

.journeySection {
position: relative;
width: 100%;
height: 65.625rem;
overflow: hidden;
background: var(--bg-page);
}
.journeySection::after {
content: '';
position: absolute;
inset: 0;
z-index: 1;
pointer-events: none;
background:
linear-gradient(to bottom, var(--bg-page), transparent 10%, transparent 90%, var(--bg-page)),
radial-gradient(ellipse at center, transparent 48%, var(--bg-page) 100%);
opacity: 0.62;
}
.introBlock {
position: absolute;
top: 7rem;
left: var(--layout-page-gutter);
z-index: 3;
width: min(24.375rem, calc(100% - (2 * var(--layout-page-gutter))));
padding: var(--space-4);
border-radius: var(--radius-md);
background: var(--overlay-contact);
backdrop-filter: blur(8px);
}
.eyebrow {
display: block;
margin-bottom: var(--space-2);
color: var(--text-secondary);
font-size: var(--font-size-label-small);
font-weight: 700;
line-height: var(--line-height-label-small);
letter-spacing: var(--letter-spacing-eyebrow);
text-transform: uppercase;
}
.heading {
margin-bottom: var(--space-3);
color: var(--text-primary);
font-size: var(--font-size-h2);
font-weight: 700;
line-height: var(--line-height-h2);
}
.underlineBar {
width: 7.5rem;
height: 3px;
margin-bottom: var(--space-5);
border-radius: var(--radius-pill);
background: var(--accent-default);
}
.description {
color: var(--text-secondary);
font-size: var(--font-size-body-large);
font-weight: 400;
line-height: var(--line-height-body-large);
}
.stepsList {
position: absolute;
top: 5.5rem;
right: var(--layout-page-gutter);
z-index: 3;
display: flex;
flex-direction: column;
width: min(33rem, 46vw);
gap: var(--space-3);
padding-left: 3.5rem;
list-style: none;
}
.stepsList::before {
content: '';
position: absolute;
top: 1.25rem;
bottom: 1.25rem;
left: 1.25rem;
width: 2px;
border-radius: var(--radius-pill);
background: var(--border-strong);
}
.stepCard {
position: relative;
display: flex;
width: 100%;
min-height: 6.125rem;
gap: var(--space-3);
padding: var(--space-4);
border: 1px solid var(--border-default);
border-radius: var(--radius-md);
background: var(--overlay-contact);
box-shadow: 0 0.5rem 1.5rem var(--shadow-color);
backdrop-filter: blur(8px);
transition: border-color var(--motion-duration-fast) ease;
}
.stepIcon {
position: absolute;
top: 1rem;
left: -3.5rem;
z-index: 1;
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.5rem;
height: 2.5rem;
border: 1px solid var(--border-strong);
border-radius: 50%;
background: var(--bg-raised);
color: var(--accent-default);
box-shadow: 0 0.375rem 1rem var(--shadow-color);
}
.stepContent {
min-width: 0;
}
.stepTitle {
margin-bottom: var(--space-1);
color: var(--text-primary);
font-size: var(--font-size-h3);
font-weight: 700;
line-height: var(--line-height-h3);
}
.stepDesc {
color: var(--text-secondary);
font-size: var(--font-size-body-small);
line-height: var(--line-height-body-small);
}
@media (max-width: 1024px) {
.introBlock {
top: 5rem;
}
.stepsList {
top: 4.5rem;
right: 2rem;
width: min(28rem, 45vw);
}
}
@media (max-width: 900px) {
.journeySection {
height: auto;
min-height: 70rem;
padding: var(--layout-section-padding) var(--layout-page-gutter);
}
.journeySection::after {
background: linear-gradient(to bottom, transparent 0 28%, var(--bg-page) 54%);
opacity: 0.82;
}
.introBlock {
position: relative;
top: auto;
left: auto;
width: 100%;
padding: var(--space-4);
border: 1px solid var(--border-default);
background: var(--overlay-contact);
box-shadow: 0 0.5rem 1.5rem var(--shadow-color);
backdrop-filter: blur(12px);
}
.heading {
font-size: 1.75rem;
line-height: 2.375rem;
}
.description {
font-size: var(--font-size-body-default);
line-height: var(--line-height-body-default);
}
.stepsList {
position: relative;
top: auto;
right: auto;
display: flex;
flex-direction: column;
width: 100%;
gap: var(--space-3);
margin-top: 13.75rem;
padding-left: 3.25rem;
}
.stepsList::before {
content: '';
position: absolute;
top: 1.25rem;
bottom: 1.25rem;
left: 1.125rem;
width: 2px;
background: var(--border-strong);
}
.stepCard {
position: relative;
inset: auto;
width: 100%;
padding: var(--space-3) var(--space-4);
box-shadow: none;
backdrop-filter: blur(6px);
}
.stepIcon {
top: 0.75rem;
left: -3.25rem;
}
}
@media (min-width: 1441px) {
.journeySection {
overflow: visible;
}
.journeySection::after {
left: 50%;
right: auto;
transform: translateX(-50%);
width: 100vw;
}
}