Files
ITStudioMainSite/assets/css/about-hero.css
T
2026-03-01 23:39:08 +08:00

359 lines
7.2 KiB
CSS

/* =========================================
工作室介绍页 - 旧首页视觉
========================================= */
.site-main {
position: relative;
}
.hero-section {
padding: 40px 0;
background-color: var(--bg-body);
position: relative;
overflow: visible;
background-image: none;
min-height: calc(100vh - var(--header-height));
display: flex;
align-items: center;
isolation: isolate;
z-index: 1;
}
.hero-scroll-indicator {
position: absolute;
left: 50%;
bottom: 28px;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
z-index: 4;
color: var(--text-secondary);
font-family: var(--font-mono);
font-size: 0.9rem;
letter-spacing: 0.12em;
text-transform: uppercase;
opacity: 0;
pointer-events: none;
transition: opacity 0.45s var(--ease-in-out), transform 0.45s var(--ease-in-out);
}
.hero-scroll-indicator .scroll-arrow {
width: 18px;
height: 18px;
border-right: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg);
animation: hero-scroll-bounce 1.6s ease-in-out infinite;
}
.hero-scroll-indicator .scroll-text {
font-size: 0.7rem;
letter-spacing: 0.3em;
}
@keyframes hero-scroll-bounce {
0%, 100% { transform: translateY(0) rotate(45deg); opacity: 0.5; }
50% { transform: translateY(6px) rotate(45deg); opacity: 1; }
}
@media (min-width: 900px) {
.home-hero-initial .site-header {
transform: translateY(-100%);
}
.home-hero-initial .site-header,
.home-hero-scrolled .site-header {
position: fixed;
left: 0;
right: 0;
width: 100%;
}
.home-hero-initial .hero-scroll-indicator {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
.home-hero-scrolled .hero-scroll-indicator {
opacity: 0;
transform: translateX(-50%) translateY(10px);
}
}
.hero-waves {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 140vh;
opacity: 0.5;
pointer-events: none;
z-index: 2;
mix-blend-mode: screen;
filter: saturate(1.08);
display: block;
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.9) 55%, rgba(0, 0, 0, 0.35) 75%, rgba(0, 0, 0, 0) 100%);
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.9) 55%, rgba(0, 0, 0, 0.35) 75%, rgba(0, 0, 0, 0) 100%);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
}
html:not([data-theme="dark"]) .hero-waves {
opacity: 0.55;
mix-blend-mode: multiply;
filter: saturate(1.2);
}
[data-theme="dark"] .hero-waves {
opacity: 0.5;
mix-blend-mode: screen;
filter: saturate(1.08);
}
.hero-section::after {
display: none;
}
.hero-content {
max-width: 800px;
margin: 0 auto;
text-align: center;
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
}
.hero-title {
display: flex;
justify-content: center;
margin: 0 0 1.2rem;
overflow: visible;
--hero-title-gradient: linear-gradient(135deg, var(--text-primary) 0%, var(--color-primary) 100%);
width: 100%;
}
.hero-title-svg {
display: block;
width: min(88vw, 900px);
margin: 0 auto;
aspect-ratio: 3 / 2;
background-image: var(--hero-title-gradient);
-webkit-mask: url("../../resources/title.svg") center / contain no-repeat;
mask: url("../../resources/title.svg") center / contain no-repeat;
filter:
drop-shadow(0 10px 24px rgba(12, 20, 32, 0.25))
drop-shadow(0 0 18px rgba(120, 190, 255, 0.28));
position: relative;
transform: translateY(-8px) scale(1.06);
transform-origin: center;
}
.hero-title-svg::before {
content: "";
position: absolute;
inset: -6% -4%;
background:
radial-gradient(circle at 30% 35%, rgba(255, 255, 255, 0.35), transparent 55%),
radial-gradient(circle at 70% 45%, rgba(140, 205, 255, 0.28), transparent 60%),
linear-gradient(180deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0));
-webkit-mask: url("../../resources/title.svg") center / contain no-repeat;
mask: url("../../resources/title.svg") center / contain no-repeat;
opacity: 0.22;
filter: blur(6px);
mix-blend-mode: screen;
pointer-events: none;
}
html:not([data-theme="dark"]) .hero-title-svg::before {
opacity: 0;
}
.hero-title-svg::after {
content: "";
position: absolute;
left: 0;
right: 0;
top: 100%;
height: 55%;
background-image: var(--hero-title-gradient);
-webkit-mask: url("../../resources/title.svg") center / contain no-repeat;
mask: url("../../resources/title.svg") center / contain no-repeat;
transform: scaleY(-1);
opacity: 0.18;
filter: blur(2px);
}
.hero-title-text {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.hero-description {
font-size: 1.5rem;
color: var(--text-secondary);
margin-bottom: 3rem;
font-family: var(--font-mono);
min-height: 3.6em;
}
.stream-char {
transition: opacity 0.4s ease;
}
.services-provided {
margin-top: 0;
position: relative;
z-index: 2;
}
.services-section {
padding: 80px 0;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, var(--bg-body) 55%);
position: relative;
z-index: 3;
}
.services-provided h2 {
font-size: 1.8rem;
margin-bottom: 1.5rem;
padding-bottom: 1rem;
border-bottom: none;
color: var(--text-primary);
display: flex;
align-items: center;
}
.services-provided h2::before {
content: "$";
color: var(--color-primary);
margin-right: 10px;
font-family: var(--font-mono);
font-weight: 800;
}
.services-grid-box {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px;
padding: 0 10px;
}
.service-item {
background: transparent;
border: none;
border-radius: var(--radius-md);
padding: 32px 24px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
transition: all var(--duration-fast);
text-decoration: none;
}
.service-item:hover {
transform: translateY(-4px);
box-shadow: none;
}
.service-icon {
margin-bottom: 1.5rem;
color: var(--color-primary);
}
.service-icon svg {
width: 90px;
height: 90px;
display: block;
}
.service-item span {
font-weight: 600;
color: var(--text-primary);
font-size: 1.25rem;
}
@media (max-width: 1100px) {
.services-grid-box {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.hero-title {
margin-bottom: 1rem;
}
.hero-title-svg {
width: min(92vw, 560px);
transform: translateY(-6px) scale(1.03);
}
.hero-description {
font-size: 1rem;
}
.services-section {
padding: 28px 0;
}
.hero-section {
min-height: auto;
padding: 16px 0 16px;
}
.hero-waves {
display: none;
}
.hero-scroll-indicator {
display: none;
}
}
@media (max-width: 600px) {
.services-grid-box {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.service-item {
padding: 12px 8px;
border: none;
background: transparent;
box-shadow: none;
}
.service-item:hover {
transform: none;
border-color: transparent;
box-shadow: none;
}
.service-icon {
margin-bottom: 0.75rem;
}
.service-icon svg {
width: 64px;
height: 64px;
}
.service-item span {
font-size: 1rem;
}
}