Files
Portfolio/src/styles/layout.css
LucaP bc18bc2043 feat: refine nightdrive world and authored car
Integrate the Blender grand tourer with a cohesive shader-driven road, terrain, atmosphere, lighting, and post-processing pass. Refine responsive drive dynamics and sign lifecycle behavior, and add durable visual, accessibility, and performance verification evidence.
2026-09-02 23:16:25 +03:00

330 lines
6.8 KiB
CSS
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.
:root {
--site-navigation-block-size: 53px;
}
.portfolio-shell {
min-width: 0;
}
.site-header {
min-block-size: 0;
}
.site-navigation {
position: fixed;
z-index: var(--z-navigation);
inset: 0 0 auto;
min-block-size: var(--site-navigation-block-size);
border-block-end: 1px solid var(--line);
background: var(--surface-strong);
}
.site-navigation__disclosure {
max-inline-size: 96rem;
margin-inline: auto;
}
.site-navigation summary {
display: none;
}
.site-navigation ul {
display: grid !important;
grid-template-columns: repeat(8, minmax(0, 1fr));
grid-auto-rows: 52px;
margin: 0;
padding: 0;
list-style: none;
}
.site-navigation a {
display: inline-flex;
inline-size: 100%;
min-block-size: 44px;
align-items: center;
justify-content: center;
padding-inline: 0.45rem;
border-block-end: 2px solid transparent;
color: var(--text-muted);
font: 520 0.78rem/1 var(--mono);
letter-spacing: 0.06em;
text-decoration: none;
transition:
color var(--transition),
background-color var(--transition),
border-color var(--transition);
}
.site-navigation a:hover,
.site-navigation a:focus-visible {
background: rgb(120 216 229 / 8%);
color: var(--text);
}
.site-navigation a[aria-current="page"] {
border-block-end-color: var(--cyan);
color: var(--cyan);
}
.site-navigation a:focus-visible {
outline-offset: -3px;
}
.portfolio-main {
min-width: 0;
padding-block: var(--site-navigation-block-size) 18vh;
}
.hero-journey {
display: grid;
min-block-size: calc(100svh - var(--site-navigation-block-size));
align-items: start;
padding: clamp(3.5rem, 12vh, 8rem) 4vw 16vh;
scroll-margin-block-start: var(--site-navigation-block-size);
}
.hero-journey__content {
display: grid;
inline-size: min(34rem, 39vw);
gap: 1rem;
padding: clamp(1.4rem, 2.2vw, 2.1rem);
border: 1px solid var(--line);
border-inline-start: 3px solid var(--cyan);
border-inline-end: 0;
border-radius: 3px 0 0 3px;
background: linear-gradient(
90deg,
rgb(5 12 23 / 96%) 0 72%,
rgb(5 12 23 / 74%) 88%,
rgb(5 12 23 / 0%) 100%
);
box-shadow: -1.4rem 2rem 4rem rgb(0 5 15 / 24%);
}
.portfolio-section {
position: relative;
min-width: 0;
margin-block: clamp(6rem, 16vh, 11rem);
padding: clamp(1.5rem, 2.6vw, 2.7rem);
scroll-margin-block-start: calc(
var(--site-navigation-block-size) + var(--space-3)
);
border: var(--panel-border);
border-radius: var(--radius-surface);
background: var(--surface);
box-shadow: var(--panel-shadow);
}
.portfolio-section[data-layout="right-rail"] {
inline-size: 42%;
margin-inline: 54% 4%;
}
.portfolio-section[data-layout="left-timeline"] {
inline-size: 46%;
margin-inline: 4% 50%;
}
.portfolio-section[data-layout="full-diagram"] {
inline-size: 68%;
margin-inline: 16%;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
}
.portfolio-section[data-layout="project-stage"] {
inline-size: 92%;
margin-inline: 4%;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
}
.portfolio-section[data-layout="project-stage"] > h2,
.portfolio-section[data-layout="project-stage"] > .section-eyebrow {
inline-size: fit-content;
padding: 0.55rem 0.8rem;
border-inline-start: 2px solid var(--cyan);
background: var(--surface-strong);
}
.portfolio-section[data-layout="compact-rail"] {
inline-size: 42%;
margin-inline: 54% 4%;
}
.portfolio-section[data-layout="toolkit-field"] {
inline-size: 68%;
margin-inline: 16%;
}
.portfolio-section[data-layout="destination"] {
inline-size: min(42rem, 46%);
margin-inline: 4% auto;
}
.portfolio-section footer {
min-width: 0;
}
@media (min-width: 768px) and (max-width: 1279px) {
.hero-journey {
padding-inline: 4vw;
}
.hero-journey__content {
inline-size: min(31rem, 58vw);
}
.portfolio-section[data-layout="right-rail"] {
inline-size: 60%;
margin-inline: 36% 4%;
}
.portfolio-section[data-layout="left-timeline"] {
inline-size: 60%;
margin-inline: 4% 36%;
}
.portfolio-section[data-layout="full-diagram"],
.portfolio-section[data-layout="toolkit-field"] {
inline-size: 84%;
margin-inline: 8%;
}
.portfolio-section[data-layout="project-stage"] {
inline-size: 92%;
margin-inline: 4%;
}
.portfolio-section[data-layout="compact-rail"] {
inline-size: 62%;
margin-inline: 34% 4%;
}
.portfolio-section[data-layout="destination"] {
inline-size: 70%;
}
}
@media (max-width: 767px) {
:root {
--site-navigation-block-size: 53px;
}
.site-navigation__disclosure {
position: relative;
}
.site-navigation summary {
display: flex;
min-block-size: 52px;
align-items: center;
justify-content: space-between;
padding-inline: 1rem;
color: var(--text);
cursor: pointer;
font: 560 0.76rem/1 var(--mono);
letter-spacing: 0.08em;
list-style: none;
}
.site-navigation summary::after {
color: var(--cyan);
content: "+";
font-size: 1.1rem;
}
.site-navigation details[open] summary::after {
content: "−";
}
.site-navigation summary::-webkit-details-marker {
display: none;
}
.site-navigation summary:focus-visible {
outline: none;
box-shadow: inset 0 0 0 2px var(--focus);
}
.site-navigation ul {
position: absolute;
inset: 100% 0 auto;
display: grid !important;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-auto-rows: 48px;
border-block: 1px solid var(--line);
background: var(--surface-strong);
box-shadow: var(--panel-shadow);
}
.site-navigation details:not([open]) ul {
display: none !important;
}
.portfolio-main {
padding-block-end: 8rem;
}
.hero-journey {
min-block-size: calc(100svh - var(--site-navigation-block-size));
align-items: start;
padding: clamp(2rem, 9vh, 4.5rem) 1rem 8rem;
}
.hero-journey__content {
inline-size: 100%;
gap: 0.9rem;
padding: 1.25rem 1.15rem 1.35rem;
background: linear-gradient(
90deg,
rgb(5 12 23 / 97%) 0 82%,
rgb(5 12 23 / 58%) 94%,
rgb(5 12 23 / 0%) 100%
);
}
.portfolio-section,
.portfolio-section[data-layout] {
inline-size: calc(100% - 2rem);
margin: 6rem 1rem;
padding: 1.4rem;
background: var(--surface-strong);
}
.portfolio-section[data-layout="project-stage"] {
padding: 0;
border: 0;
background: transparent;
}
.portfolio-section[data-layout="project-stage"] > h2,
.portfolio-section[data-layout="project-stage"] > .section-eyebrow {
margin-inline-start: 0;
background: var(--surface-strong);
}
.project-link,
.contact-link,
.contact-social-link {
min-inline-size: 44px;
min-block-size: 44px;
}
}
@media (max-height: 420px) {
.hero-journey {
min-block-size: auto;
padding-block: 4rem 3rem;
}
.portfolio-section,
.portfolio-section[data-layout] {
margin-block: 4rem;
}
}