Files
fiveq-website-2026/css/site.css
T
2026-08-24 15:37:08 +08:00

746 lines
12 KiB
CSS

@font-face {
font-family: "Manrope";
src: url("../fonts/manrope-latin-400-normal.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Manrope";
src: url("../fonts/manrope-latin-700-normal.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Manrope";
src: url("../fonts/manrope-latin-800-normal.woff2") format("woff2");
font-weight: 800;
font-style: normal;
font-display: swap;
}
:root {
--bg: #fffdfb;
--surface: #ffffff;
--surface-soft: #f8f9fd;
--line: #ece7e2;
--line-strong: #d8dde8;
--text: #2d2a28;
--text-heading: #1f2430;
--muted: #8e8a87;
--muted-strong: #686461;
--brand: #7aa0ff;
--brand-strong: #4b76eb;
--brand-soft: #eef3ff;
--footer: #f4f1ec;
--footer-heading: #1f2430;
--footer-muted: #6f6b68;
--footer-faint: #948f8b;
--footer-line: #e6e1db;
--header-bg: rgba(255, 253, 251, 0.9);
--nav-link: #44423f;
--shadow-card: 0 14px 48px rgba(43, 53, 84, 0.08);
--radius-lg: 24px;
--content: 1320px;
--nav-h: 104px;
color-scheme: light;
}
[data-theme="dark"] {
--bg: #0f1115;
--surface: #171a21;
--surface-soft: #1c2028;
--line: #2a2f3a;
--line-strong: #3d4454;
--text: #e8eaef;
--text-heading: #f1f3f7;
--muted: #8b95a5;
--muted-strong: #aeb6c3;
--brand: #9bb4ff;
--brand-strong: #b8c8ff;
--brand-soft: #252a38;
--footer: #0c0e12;
--footer-heading: #f1f3f7;
--footer-muted: #8a91a0;
--footer-faint: #6d7584;
--footer-line: #2a2f3a;
--header-bg: rgba(15, 17, 21, 0.88);
--nav-link: #c9d0db;
--shadow-card: 0 14px 48px rgba(0, 0, 0, 0.4);
color-scheme: dark;
}
.site-lang-en body,
.site-lang-fr body {
font-family: Manrope, "Segoe UI", system-ui, sans-serif;
}
.site-lang-ja body {
font-family:
Manrope,
"Hiragino Sans",
"Hiragino Kaku Gothic ProN",
"Noto Sans JP",
"PingFang SC",
"Microsoft YaHei",
sans-serif;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
min-width: 320px;
background: var(--bg);
color: var(--text);
font-family: Manrope, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
text-rendering: optimizeLegibility;
}
img {
display: block;
max-width: 100%;
}
a {
color: inherit;
text-decoration: none;
}
button {
font: inherit;
}
.page-shell {
position: relative;
overflow-x: clip;
}
.container {
width: min(calc(100% - 48px), var(--content));
margin: 0 auto;
}
.site-header {
position: sticky;
top: 0;
z-index: 100;
background: var(--header-bg);
backdrop-filter: blur(16px);
}
.site-header::after {
content: "";
position: absolute;
inset: auto 0 0;
height: 1px;
background: var(--line);
}
.site-nav {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
min-height: var(--nav-h);
}
.brand {
display: inline-flex;
align-items: center;
gap: 14px;
min-width: 0;
}
.brand-mark {
width: 34px;
height: 34px;
flex: none;
}
.brand-copy {
display: flex;
align-items: center;
gap: 8px;
white-space: nowrap;
font-size: 24px;
font-weight: 700;
letter-spacing: 0.01em;
color: var(--text-heading);
}
.nav-links {
display: inline-flex;
align-items: center;
gap: 34px;
flex-wrap: wrap;
}
.nav-link {
position: relative;
padding: 8px 0;
font-size: 18px;
font-weight: 700;
color: var(--nav-link);
letter-spacing: 0.04em;
}
.nav-link.current {
color: var(--brand);
}
.nav-link.current::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -10px;
margin: auto;
width: 18px;
height: 2px;
border-radius: 999px;
background: currentColor;
}
.header-tools {
display: inline-flex;
align-items: center;
gap: 12px;
}
.lang-switch {
position: relative;
}
.lang-switch summary {
list-style: none;
cursor: pointer;
}
.lang-switch summary::-webkit-details-marker {
display: none;
}
.lang-switch-panel {
position: absolute;
right: 0;
top: calc(100% + 10px);
min-width: 168px;
padding: 8px;
border-radius: 16px;
border: 1px solid var(--line);
background: var(--surface);
box-shadow: var(--shadow-card);
z-index: 120;
}
.lang-switch-panel a {
display: block;
padding: 10px 12px;
border-radius: 12px;
font-size: 13px;
font-weight: 700;
color: var(--text);
}
.lang-switch-panel a:hover,
.lang-switch-panel a:focus-visible {
background: var(--brand-soft);
color: var(--brand-strong);
}
.lang-switch-panel a.current {
color: var(--brand-strong);
}
.theme-toggle-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border: 1px solid var(--line);
border-radius: 14px;
background: var(--surface);
color: var(--text-heading);
cursor: pointer;
}
.theme-toggle-btn:hover {
border-color: var(--line-strong);
}
.theme-toggle-btn .icon-dark {
display: none;
}
[data-theme="dark"] .theme-toggle-btn .icon-light {
display: none;
}
[data-theme="dark"] .theme-toggle-btn .icon-dark {
display: block;
}
.locale-pill {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 14px;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--surface);
color: var(--muted-strong);
font-size: 12px;
font-weight: 700;
}
.locale-pill svg {
width: 10px;
height: 10px;
flex-shrink: 0;
}
.menu-toggle {
display: none;
align-items: center;
justify-content: center;
width: 46px;
height: 46px;
border: 0;
border-radius: 14px;
background: var(--surface);
box-shadow: 0 8px 24px rgba(49, 50, 56, 0.08);
color: var(--text);
cursor: pointer;
}
.mobile-menu {
display: none;
padding: 0 0 24px;
}
.mobile-menu.is-open {
display: block;
}
.mobile-menu a {
display: block;
padding: 14px 18px;
border-radius: 16px;
font-size: 15px;
font-weight: 700;
}
.mobile-menu a.current {
background: var(--brand-soft);
color: var(--brand-strong);
}
.hero {
padding: 92px 0 60px;
}
.home-hero {
text-align: center;
padding: 72px 0 36px;
}
.home-kicker {
margin: 0 0 16px;
color: var(--brand);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.16em;
}
.home-lead {
max-width: 36em;
margin: 16px auto 0;
color: var(--muted-strong);
font-size: 18px;
line-height: 1.7;
}
.home-hero .hero-actions {
margin-top: 28px;
}
.about-hero {
padding-bottom: 12px;
}
.hero-title {
margin: 0;
color: var(--text-heading);
font-size: clamp(40px, 5vw, 72px);
line-height: 1.15;
font-weight: 800;
letter-spacing: -0.03em;
}
.hero-actions {
display: flex;
justify-content: center;
gap: 18px;
margin-top: 44px;
flex-wrap: wrap;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 48px;
padding: 0 24px;
border-radius: 999px;
border: 1px solid transparent;
font-size: 13px;
font-weight: 800;
letter-spacing: 0.06em;
cursor: pointer;
}
.btn-outline {
border-color: rgba(122, 160, 255, 0.4);
color: var(--brand);
background: rgba(255, 255, 255, 0.72);
}
[data-theme="dark"] .btn-outline {
background: rgba(23, 26, 33, 0.72);
}
.btn-primary {
background: linear-gradient(135deg, #7aa0ff, #5f84ef);
color: #fff;
box-shadow: 0 14px 34px rgba(95, 132, 239, 0.28);
}
.section {
padding: 122px 0;
}
.section.compact {
padding-top: 88px;
padding-bottom: 88px;
}
.section-head {
margin: 0 auto 58px;
text-align: center;
}
.section-title {
margin: 0;
color: var(--text-heading);
font-size: clamp(26px, 3.3vw, 48px);
line-height: 1.18;
letter-spacing: -0.02em;
}
.section-copy {
max-width: 780px;
margin: 22px auto 0;
color: var(--muted-strong);
font-size: 15px;
line-height: 1.95;
}
.grid-two {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 30px;
}
.feature-card {
position: relative;
min-height: 100%;
padding: 34px;
border-radius: var(--radius-lg);
background: var(--surface);
border: 1px solid var(--line);
box-shadow: var(--shadow-card);
}
.feature-card h3 {
margin: 0 0 16px;
color: var(--text-heading);
font-size: 28px;
line-height: 1.22;
letter-spacing: -0.02em;
}
.feature-card p {
margin: 0;
color: var(--muted-strong);
font-size: 15px;
line-height: 1.9;
}
.mini-link {
display: inline-flex;
margin-top: 26px;
color: var(--brand);
font-size: 13px;
font-weight: 800;
letter-spacing: 0.06em;
}
.product-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 30px;
}
.product-kicker {
margin: 0 0 8px;
color: var(--brand);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.product-card .mini-link {
margin-top: 18px;
}
.about-stack {
display: grid;
gap: 18px;
}
.about-stack h2 {
margin: 0 0 10px;
color: var(--text-heading);
font-size: 26px;
}
.about-stack p {
margin: 0;
color: var(--muted-strong);
line-height: 1.8;
}
.about-products {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px 18px;
}
.about-products a {
color: var(--brand-strong);
font-weight: 700;
}
.about-products a:hover {
text-decoration: underline;
}
.site-footer {
margin-top: 120px;
background: var(--footer);
color: var(--footer-heading);
border-top: 1px solid var(--footer-line);
}
.footer-main {
display: grid;
grid-template-columns: 1.35fr 0.8fr 0.8fr;
gap: 48px;
padding: 60px 0 40px;
}
.site-footer h3 {
margin: 0 0 18px;
color: var(--footer-heading);
font-size: 18px;
letter-spacing: -0.01em;
}
.site-footer p,
.site-footer a {
color: var(--footer-muted);
font-size: 14px;
line-height: 2;
}
.site-footer a:hover,
.site-footer a:focus-visible {
color: var(--footer-heading);
}
.footer-links {
display: grid;
gap: 6px;
}
.footer-bottom {
border-top: 1px solid var(--footer-line);
padding: 22px 0 30px;
color: var(--footer-faint);
font-size: 12px;
text-align: center;
}
.footer-legal-line {
margin: 0;
line-height: 1.65;
}
.site-footer .footer-icp-link {
color: var(--footer-muted);
text-decoration: underline;
text-underline-offset: 3px;
}
.site-footer .footer-icp-link:hover {
color: var(--footer-heading);
}
.footer-trademark {
margin: 14px auto 0;
max-width: 720px;
color: var(--footer-faint);
font-size: 11px;
line-height: 1.7;
}
.bg-wash {
position: relative;
}
.bg-wash::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 12% 12%, rgba(122, 160, 255, 0.08), transparent 24%),
radial-gradient(circle at 88% 18%, rgba(242, 136, 119, 0.08), transparent 22%),
radial-gradient(circle at 78% 86%, rgba(122, 160, 255, 0.05), transparent 24%);
pointer-events: none;
}
.bg-wash > * {
position: relative;
}
@media (max-width: 1180px) {
.site-nav {
min-height: 88px;
}
.nav-links,
.lang-switch {
display: none;
}
.mobile-lang {
padding: 8px 0 4px;
margin-top: 8px;
border-top: 1px solid var(--line);
}
.mobile-lang p {
margin: 0 0 8px;
padding: 0 18px;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--muted);
}
.mobile-lang a {
display: block;
padding: 10px 18px;
border-radius: 12px;
font-size: 14px;
font-weight: 700;
}
.mobile-lang a.current {
background: var(--brand-soft);
color: var(--brand-strong);
}
.mobile-menu .theme-toggle-btn {
margin: 12px 18px 0;
width: calc(100% - 36px);
}
.menu-toggle {
display: inline-flex;
}
.product-grid,
.footer-main,
.grid-two {
grid-template-columns: 1fr;
}
}
@media (max-width: 760px) {
:root {
--nav-h: 84px;
}
.container {
width: min(calc(100% - 32px), var(--content));
}
.hero {
padding: 64px 0 32px;
}
.section {
padding: 82px 0;
}
.feature-card {
padding: 26px;
}
.brand-copy {
gap: 6px;
font-size: 24px;
}
.hero-title {
font-size: clamp(28px, 8.4vw, 40px);
overflow-wrap: break-word;
}
.home-lead {
font-size: 17px;
line-height: 1.65;
}
.hero-actions {
flex-direction: column;
align-items: stretch;
}
.btn {
width: 100%;
}
.site-footer {
margin-top: 82px;
}
}