Files
hesu-JT/css/about-us.css
T
2026-08-27 11:54:26 +08:00

294 lines
9.0 KiB
CSS

/* ============================================================
About Us — pinned sections with scroll-linked transitions
#au-1 : mask darkens + intro/corner hide + slogan rises in
#au-3 : photo zooms to fullscreen + fades, then logo/text reveal
============================================================ */
.au-main { position: relative; z-index: 1; }
.site-footer { position: relative; z-index: 3; }
/* CSS sticky pin (native GPU compositing — smoother than JS pin) */
.au-pin { position: relative; height: 300vh; }
.au-screen {
position: sticky;
top: 0;
height: 100vh;
overflow: hidden;
}
#au-1 { z-index: 1; }
#au-3 { z-index: 2; }
/* full-bleed photo + base veil */
.au-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; }
.au-bg::after { content: ""; position: absolute; inset: 0; background: rgba(1,15,30,0.30); }
.au-corner-img { position: absolute; right: 0; bottom: 0; z-index: 2; height: auto; pointer-events: none; }
.au-inner {
position: relative; z-index: 1;
width: 100%;
max-width: var(--container);
margin: 60px auto 0;
padding: var(--header-h) 32px;
text-align: left;
color: #fff;
}
.au-text { margin-left: 0; margin-right: auto; }
/* mask overlay — fades in (clear -> dark), scroll-linked */
.au-mask {
position: absolute; inset: 0; z-index: 3;
background: rgba(1,15,30,0.55);
opacity: 0;
}
/* slogan overlay — center-lower; slogan rises in (NIO-style) via .is-current */
.au-slogan-layer {
position: absolute; inset: 0; z-index: 4;
display: flex; flex-direction: column; align-items: center; justify-content: center;
padding: var(--header-h) 32px;
padding-top: 16vh;
text-align: center; color: #fff;
}
.au-title {
font-family: var(--font-display);
font-weight: 900;
font-size: clamp(2rem, 5vw, 2.4rem);
line-height: 1.1;
color: #fff;
margin-bottom: 26px;
text-shadow: 0 2px 20px rgba(0,0,0,0.45);
}
.au-text {
font-size: clamp(1rem, 1.4vw, 1.1rem);
line-height: 1.85;
color: rgba(255,255,255,0.92);
max-width: 820px;
text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}
.au-slogan {
font-family: var(--font-display);
font-weight: 800;
font-size: clamp(2.2rem, 6vw, 2.6rem);
line-height: 1.1;
color: #fff;
text-shadow: 0 2px 24px rgba(0,0,0,0.5);
margin-bottom: 24px;
}
.au-slogan-cn {
font-size: clamp(1.2rem, 2.4vw, 2rem);
letter-spacing: 0.3em;
color: var(--orange-300);
text-shadow: 0 1px 12px rgba(0,0,0,0.5);
}
/* slogan entry/exit is driven by the GSAP timeline in about-us.js */
/* ============================================================
Section #au-3 — Strong Resources: image zoom-fade -> logo reveal
============================================================ */
.au-zoom-img {
position: absolute; left: 50%; top: 68%;
width: min(711px, 82vw); height: min(560px, 58vh);
transform: translate(-50%, -50%) scale(1);
transform-origin: center;
background-size: cover; background-position: center;
z-index: 1;
box-shadow: 0 24px 70px rgba(0,0,0,0.45);
}
/* black veil over the zooming photo — fades IN instead of fading the photo out */
.au-zoom-mask {
position: absolute; inset: 0; z-index: 2;
background: #000;
opacity: 0;
}
/* title + intro (top, centered, not vertically centered) */
.au-sec-head {
position: absolute; top: 0; left: 0; right: 0; z-index: 3;
padding: calc(var(--header-h) + 56px) 32px 0;
text-align: center; color: #fff;
}
.au-sec-title {
font-family: var(--font-display); font-weight: 700;
font-size: clamp(1.8rem, 4vw, 2rem); line-height: 1.1;
color: #202020; margin-bottom: 18px;
}
.au-sec-text {
font-size: clamp(0.95rem, 1.3vw, 1rem); line-height: 1.8;
color: #202020; max-width: 760px; margin: 0 auto;
}
/* centered logo + text reveal */
.au-reveal {
position: absolute; inset: 0; z-index: 4;
display: flex; flex-direction: column; align-items: center; justify-content: center;
padding: 32px; text-align: center; color: #fff;
opacity: 0;
}
.au-logo-big { display: flex; align-items: center; justify-content: center; margin-bottom: 28px; }
.au-logo-big .logo-img { height: clamp(44px, 6vw, 76px); }
.au-reveal-text {
font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.85;
color: rgba(255,255,255,0.92); max-width: 720px;
}
@media (max-width: 760px) {
.au-inner { text-align: left; }
.au-gps__cards { grid-template-columns: 1fr 1fr; }
.au-gps__split { grid-template-columns: 1fr; }
.au-gps { padding: 80px 0; }
.au-gps__wide, .au-gps__split { margin-top: 60px; }
/* grid/flex children must shrink below content min-width, else the carousel
track stretches the 1fr column to 393px and overflows the viewport */
.au-gps__split > *, .au-gps__data, .au-gps__viewport { min-width: 0; max-width: 100%; }
}
/* initial states + GPU compositing for smooth scroll */
.au-bg { transform: scale(1.04); }
.au-bg, .au-inner, .au-corner-img, .au-mask,
.au-zoom-img, .au-zoom-mask, .au-sec-head, .au-reveal { will-change: transform, opacity; }
/* ============================================================
Global Presence, Local Service — white background section
============================================================ */
.au-gps {
background: #ffffff;
padding: 120px 0;
}
.au-gps__inner {
max-width: 1400px; margin: 0 auto; padding: 0 40px;
}
.au-gps__title {
font-family: var(--font-display); font-weight: 700;
font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1;
letter-spacing: -0.01em; color: #111; margin-bottom: 24px;
text-align: center;
}
.au-gps__text {
font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.8;
color: #333; max-width: 900px; margin-bottom: 60px;
text-align: center; margin-inline: auto;
}
/* 4 images in a row (plain, no labels) */
.au-gps__cards {
display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.au-gps__card-img {
width: 100%;
object-fit: cover;
display: block;
}
/* wide image */
.au-gps__wide {
max-width: 1000px; margin: 100px auto 0; padding: 0 40px;
}
.au-gps__wide-img {
width: 100%; display: block;
}
.au-gps__wide-img:hover {
transform: scale(1.04);
transition: transform .5s var(--ease);
}
.au-gps__split {
display: grid; grid-template-columns: 1.7fr 1fr; gap: 32px;
max-width: 1000px; margin: 100px auto 0; padding: 0 40px;
}
.au-gps__data { display: flex; flex-direction: column; }
.au-gps__viewport { overflow: hidden; border-radius: 8px; }
.au-gps__track {
display: flex;
transition: transform .55s cubic-bezier(.22,1,.36,1);
will-change: transform;
}
.au-gps__data-card { flex: 0 0 100%; }
.au-gps__data-img {
width: 100%; aspect-ratio: 16 / 10; border-radius: 8px;
background-size: cover; background-position: center;
}
.au-gps__data-body { padding: 16px 4px 0; }
.au-gps__data-body h4 {
font-family: var(--font-display); font-weight: 700;
font-size: 1.15rem; color: #111; margin-bottom: 8px;
}
.au-gps__data-body p { font-size: 0.92rem; color: #555; line-height: 1.6; }
/* carousel pager — horizontal bars, left-aligned */
.au-gps__dots {
display: flex; justify-content: flex-start; gap: 10px; margin-top: 20px;
}
.au-gps__dots button {
width: 28px; height: 3px;
border: 0; border-radius: 2px;
background: #d9dee6;
cursor: pointer; padding: 0;
transition: background .3s, width .3s;
}
.au-gps__dots button.active { background: var(--orange-500); width: 44px; }
.au-gps__feature {
position: relative; border-radius: 8px; overflow: hidden;
min-height: 400px;
}
.au-gps__feature-img {
position: absolute; inset: 0;
background: url(../image/about-us/right.jpg) center / cover no-repeat;
display: flex; align-items: center;
padding: 40px 44px;
}
/* title sits outside the vertical line; the line spans only the list below it */
.au-gps__feature-title {
font-family: var(--font-display);
font-weight: 800;
font-size: clamp(1.6rem, 2vw, 1.5rem);
line-height: 1.2;
letter-spacing: 0.01em;
background: linear-gradient(88.61deg, #FF6000 7.43%, #FFA557 98.82%);
-webkit-background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent;
margin-bottom: 18px;
}
.au-gps__feature-list {
position: relative;
padding-left: 26px;
}
/* vertical line drawn as a pseudo element so it stops exactly at the
first / last text line instead of spanning the whole padded box */
.au-gps__feature-list::before {
content: ""; position: absolute; left: 0;
top: 17px; bottom: 17px; /* ≈ one half-leading (line-height 3) */
width: 1px;
background: #ffffff;
}
.au-gps__feature-list p {
font-family: var(--font-display);
font-weight: 600;
font-size: 1.05rem;
color: #ffffff;
line-height: 3.5;
padding: 0;
text-shadow: 0 1px 10px rgba(0,0,0,0.45);
}
.au-gps__feature-list p + p { margin-top: 12px; }
.au-slogan, .au-slogan-cn {
opacity: 0;
transform: translate3d(0, 50px, 0);
transition: opacity .3s linear, transform .3s linear;
}
.au-slogan-layer.is-current .au-slogan {
opacity: 1;
transform: translateZ(0);
transition: opacity .6s linear .3s, transform .6s linear .3s;
}
.au-slogan-layer.is-current .au-slogan-cn {
opacity: 1;
transform: translateZ(0);
transition: opacity .6s linear .5s, transform .6s linear .5s;
}