Portfolio/src/assets/styles/portfolio.css
Matthew L McPeak f2251380ec
Some checks failed
ci / build (push) Failing after 14s
ci / publish (push) Has been skipped
Inital Commit
2026-06-18 11:34:29 -04:00

129 lines
2 KiB
CSS

/* ============================================================
portfolio.css — layout & motion for the Nychthemeron
portfolio template
============================================================ */
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
}
#app {
min-height: 100vh;
background: var(--surface-0);
color: var(--text-body);
}
.port-section {
padding: 5rem 2rem;
max-width: 1060px;
margin: 0 auto;
}
.port-hero {
min-height: 100vh;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 6rem 2rem 8rem;
text-align: center;
}
.port-2col {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 56px;
align-items: center;
}
.port-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.port-title {
font-family: var(--font-serif);
font-size: 2.2rem;
letter-spacing: 0.08em;
color: var(--text-high);
font-weight: 600;
margin: 0 0 2rem;
}
@keyframes bob {
0%,
100% {
transform: translateX(-50%) translateY(0);
}
50% {
transform: translateX(-50%) translateY(7px);
}
}
@keyframes blink {
0%,
50% {
opacity: 1;
}
50.01%,
100% {
opacity: 0;
}
}
@media (max-width: 600px) {
.port-nav-links {
display: none;
}
.port-toggle-text {
display: none;
}
}
/* Scroll reveal */
.reveal {
opacity: 0;
transform: translateY(28px);
transition:
opacity 0.7s ease,
transform 0.7s ease;
}
.reveal.visible {
opacity: 1;
transform: none;
}
/* Card hover lift + gold edge */
.nych-card {
transition:
transform 0.25s ease,
box-shadow 0.25s ease,
border-color 0.25s ease;
}
.nych-card:hover {
transform: translateY(-4px);
box-shadow:
0 14px 36px rgba(0, 0, 0, 0.32),
0 0 24px rgba(212, 178, 120, 0.08);
border-color: var(--border-hi);
}
@media (max-width: 800px) {
.port-2col {
grid-template-columns: 1fr;
}
.port-grid {
grid-template-columns: 1fr;
}
}