|
|
@ -153,7 +153,7 @@ watch(sentinel, (el) => { |
|
|
<template v-for="(item, ri) in col" :key="item.id"> |
|
|
<template v-for="(item, ri) in col" :key="item.id"> |
|
|
<div |
|
|
<div |
|
|
class="card-reveal" |
|
|
class="card-reveal" |
|
|
:style="{ '--enter-delay': `${ci * 60 + ri * 40}ms` }" |
|
|
:style="{ '--enter-delay': `${ci * 80 + ri * 60}ms` }" |
|
|
> |
|
|
> |
|
|
<IndexWaterfallCard |
|
|
<IndexWaterfallCard |
|
|
v-if="item.type === 'image-text'" |
|
|
v-if="item.type === 'image-text'" |
|
|
@ -218,29 +218,42 @@ watch(sentinel, (el) => { |
|
|
padding: 0 24px; |
|
|
padding: 0 24px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* ── Header: cream canvas, coral type ── */ |
|
|
|
|
|
|
|
|
.page-header { |
|
|
.page-header { |
|
|
text-align: center; |
|
|
padding: clamp(64px, 10vw, 108px) 0 clamp(20px, 3vw, 32px); |
|
|
padding: 72px 0 56px; |
|
|
animation: header-reveal 0.8s var(--ease-out-expo) both; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@keyframes header-reveal { |
|
|
|
|
|
from { |
|
|
|
|
|
opacity: 0; |
|
|
|
|
|
transform: translateY(8px); |
|
|
|
|
|
} |
|
|
|
|
|
to { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
transform: translateY(0); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.page-header h1 { |
|
|
.page-header h1 { |
|
|
font-family: "Times New Roman", Georgia, Garamond, serif; |
|
|
font-family: var(--font-display); |
|
|
font-size: 48px; |
|
|
font-size: clamp(64px, 10vw, 132px); |
|
|
font-weight: 400; |
|
|
font-weight: 400; |
|
|
color: var(--color-ink); |
|
|
color: var(--color-primary); |
|
|
margin: 0 0 10px; |
|
|
margin: 0; |
|
|
letter-spacing: -1px; |
|
|
line-height: 0.88; |
|
|
line-height: 1.1; |
|
|
letter-spacing: -0.02em; |
|
|
animation: fade-slide-up 0.7s var(--ease-out-expo) both; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.subtitle { |
|
|
.subtitle { |
|
|
color: var(--color-muted); |
|
|
color: var(--color-muted); |
|
|
font-size: 16px; |
|
|
font-size: clamp(16px, 2vw, 20px); |
|
|
font-weight: 400; |
|
|
font-weight: 400; |
|
|
margin: 0; |
|
|
margin: clamp(14px, 2.5vw, 24px) 0 0; |
|
|
|
|
|
letter-spacing: 0.06em; |
|
|
animation: fade-slide-up 0.7s var(--ease-out-expo) both; |
|
|
animation: fade-slide-up 0.7s var(--ease-out-expo) both; |
|
|
animation-delay: 120ms; |
|
|
animation-delay: 200ms; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes fade-slide-up { |
|
|
@keyframes fade-slide-up { |
|
|
@ -254,21 +267,7 @@ watch(sentinel, (el) => { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.card-reveal { |
|
|
/* ── Masonry ── */ |
|
|
animation: card-enter 0.55s var(--ease-out-expo) both; |
|
|
|
|
|
animation-delay: var(--enter-delay, 0ms); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@keyframes card-enter { |
|
|
|
|
|
from { |
|
|
|
|
|
opacity: 0; |
|
|
|
|
|
transform: translateY(20px); |
|
|
|
|
|
} |
|
|
|
|
|
to { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
transform: translateY(0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.masonry { |
|
|
.masonry { |
|
|
display: flex; |
|
|
display: flex; |
|
|
@ -284,11 +283,31 @@ watch(sentinel, (el) => { |
|
|
gap: 20px; |
|
|
gap: 20px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* ── Card reveal ── */ |
|
|
|
|
|
|
|
|
|
|
|
.card-reveal { |
|
|
|
|
|
animation: card-enter 0.65s var(--ease-out-expo) both; |
|
|
|
|
|
animation-delay: var(--enter-delay, 0ms); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@keyframes card-enter { |
|
|
|
|
|
from { |
|
|
|
|
|
opacity: 0; |
|
|
|
|
|
transform: translateY(24px); |
|
|
|
|
|
} |
|
|
|
|
|
to { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
transform: translateY(0); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* ── Sentinel ── */ |
|
|
|
|
|
|
|
|
.sentinel { |
|
|
.sentinel { |
|
|
display: flex; |
|
|
display: flex; |
|
|
justify-content: center; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
padding: 48px 0 80px; |
|
|
padding: 56px 0 96px; |
|
|
min-height: 60px; |
|
|
min-height: 60px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -320,4 +339,21 @@ watch(sentinel, (el) => { |
|
|
0%, 100% { opacity: 0.3; transform: scaleY(0.6); } |
|
|
0%, 100% { opacity: 0.3; transform: scaleY(0.6); } |
|
|
50% { opacity: 0.8; transform: scaleY(1); } |
|
|
50% { opacity: 0.8; transform: scaleY(1); } |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* ── Responsive ── */ |
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) { |
|
|
|
|
|
.home { |
|
|
|
|
|
padding: 0 16px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.page-header { |
|
|
|
|
|
margin: 16px 0 40px; |
|
|
|
|
|
padding: 40px 24px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.page-header h1 { |
|
|
|
|
|
font-size: clamp(40px, 12vw, 64px); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |
|
|
|