newapi.html
· 34 KiB · HTML
Исходник
<div class="bg-background text-foreground relative min-h-svh overflow-x-clip qy-home" data-qy-theme="light">
<style>
.qy-home {
--qy-bg: #fbfaf7;
--qy-bg-soft: rgba(255, 255, 255, 0.72);
--qy-bg-solid: rgba(255, 255, 255, 0.92);
--qy-text: #151a1f;
--qy-muted: #68717d;
--qy-faint: #8b96a5;
--qy-line: rgba(37, 45, 57, 0.1);
--qy-line-strong: rgba(37, 45, 57, 0.16);
--qy-card: rgba(255, 255, 255, 0.62);
--qy-card-strong: rgba(255, 255, 255, 0.84);
--qy-primary: #1d7f8c;
--qy-primary-strong: #115d68;
--qy-accent: #c79f62;
--qy-cyan: #74d7df;
--qy-blue: #9eb8ff;
--qy-shadow: 0 24px 80px rgba(31, 42, 58, 0.12);
--qy-shadow-soft: 0 16px 42px rgba(31, 42, 58, 0.08);
--qy-radius-xl: 34px;
--qy-radius-lg: 24px;
--qy-radius-md: 18px;
color: var(--qy-text);
background:
radial-gradient(ellipse 56% 38% at 50% 30%, rgba(116, 215, 223, 0.22), rgba(255, 255, 255, 0.22) 46%, rgba(255, 255, 255, 0) 76%),
radial-gradient(ellipse 42% 30% at 58% 46%, rgba(199, 159, 98, 0.11), rgba(255, 255, 255, 0) 70%);
isolation: isolate;
}
.dark .qy-home,
.qy-home[data-qy-theme="dark"] {
--qy-bg: #090d12;
--qy-bg-soft: rgba(13, 18, 25, 0.72);
--qy-bg-solid: rgba(13, 18, 25, 0.94);
--qy-text: #eef3f6;
--qy-muted: #a7b1bd;
--qy-faint: #737f8f;
--qy-line: rgba(237, 246, 249, 0.1);
--qy-line-strong: rgba(237, 246, 249, 0.16);
--qy-card: rgba(15, 22, 30, 0.58);
--qy-card-strong: rgba(15, 22, 30, 0.86);
--qy-primary: #7fe3eb;
--qy-primary-strong: #b8f4f7;
--qy-accent: #e3bf7e;
--qy-cyan: #76dce5;
--qy-blue: #99b8ff;
--qy-shadow: 0 28px 90px rgba(0, 0, 0, 0.48);
--qy-shadow-soft: 0 18px 52px rgba(0, 0, 0, 0.36);
background:
radial-gradient(ellipse 56% 38% at 50% 30%, rgba(116, 215, 223, 0.13), rgba(9, 13, 18, 0.2) 46%, rgba(9, 13, 18, 0) 76%),
radial-gradient(ellipse 42% 30% at 58% 46%, rgba(227, 191, 126, 0.09), rgba(9, 13, 18, 0) 70%);
}
.qy-home * {
box-sizing: border-box;
}
.qy-home a {
color: inherit;
text-decoration: none;
}
.qy-shell {
position: relative;
width: min(100%, 1180px);
margin: 0 auto;
padding: 22px clamp(18px, 4vw, 34px) 48px;
}
.qy-shell::before {
content: "";
position: absolute;
inset: 116px clamp(0px, 3vw, 28px) auto;
height: 620px;
pointer-events: none;
z-index: -1;
opacity: 0.92;
background:
linear-gradient(115deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.08) 34%, rgba(255, 255, 255, 0.64) 68%, rgba(255, 255, 255, 0)),
radial-gradient(circle at 22% 26%, rgba(116, 215, 223, 0.2), transparent 34%),
radial-gradient(circle at 70% 24%, rgba(158, 184, 255, 0.18), transparent 32%),
radial-gradient(circle at 50% 78%, rgba(199, 159, 98, 0.13), transparent 30%);
border-radius: 46px;
filter: blur(0.2px);
-webkit-mask-image: linear-gradient(to bottom, transparent 0, transparent 34px, #000 132px, #000 78%, transparent 100%), radial-gradient(ellipse 68% 56% at 50% 42%, #000 38%, transparent 100%);
-webkit-mask-composite: source-in;
mask-image: linear-gradient(to bottom, transparent 0, transparent 34px, #000 132px, #000 78%, transparent 100%), radial-gradient(ellipse 68% 56% at 50% 42%, #000 38%, transparent 100%);
mask-composite: intersect;
}
.dark .qy-shell::before,
.qy-home[data-qy-theme="dark"] .qy-shell::before {
background:
linear-gradient(115deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02) 34%, rgba(255, 255, 255, 0.07) 68%, rgba(255, 255, 255, 0)),
radial-gradient(circle at 22% 26%, rgba(116, 215, 223, 0.18), transparent 34%),
radial-gradient(circle at 70% 24%, rgba(158, 184, 255, 0.14), transparent 32%),
radial-gradient(circle at 50% 78%, rgba(227, 191, 126, 0.1), transparent 30%);
}
.qy-nav {
position: sticky;
top: 14px;
z-index: 20;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 66px;
padding: 12px 14px 12px 16px;
border: 1px solid var(--qy-line);
border-radius: 999px;
background: color-mix(in srgb, var(--qy-bg-solid) 78%, transparent);
box-shadow: 0 14px 42px rgba(40, 48, 64, 0.08);
backdrop-filter: blur(22px) saturate(160%);
-webkit-backdrop-filter: blur(22px) saturate(160%);
}
.qy-brand {
display: inline-flex;
align-items: center;
gap: 11px;
min-width: 0;
}
.qy-logo-wrap {
display: grid;
place-items: center;
width: 40px;
height: 40px;
border: 1px solid var(--qy-line-strong);
border-radius: 16px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.32));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), 0 12px 26px rgba(37, 45, 57, 0.08);
overflow: hidden;
}
.dark .qy-logo-wrap,
.qy-home[data-qy-theme="dark"] .qy-logo-wrap {
background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035));
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 12px 26px rgba(0, 0, 0, 0.25);
}
.qy-logo-wrap img {
width: 27px;
height: 27px;
border-radius: 9px;
object-fit: cover;
}
.qy-brand-text {
display: flex;
flex-direction: column;
gap: 1px;
line-height: 1.05;
}
.qy-brand-name {
font-size: 15px;
font-weight: 760;
letter-spacing: -0.03em;
}
.qy-brand-sub {
font-size: 10px;
letter-spacing: 0.17em;
text-transform: uppercase;
color: var(--qy-faint);
}
.qy-nav-links {
display: flex;
align-items: center;
gap: 4px;
color: var(--qy-muted);
font-size: 13px;
font-weight: 560;
}
.qy-nav-links a {
padding: 9px 12px;
border-radius: 999px;
transition: color 0.22s ease, background 0.22s ease;
}
.qy-nav-links a:hover {
color: var(--qy-text);
background: rgba(127, 143, 162, 0.1);
}
.qy-nav-actions {
display: flex;
align-items: center;
gap: 8px;
}
.qy-theme-toggle,
.qy-small-button {
appearance: none;
border: 1px solid var(--qy-line);
color: var(--qy-text);
background: rgba(255, 255, 255, 0.42);
border-radius: 999px;
cursor: pointer;
transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}
.dark .qy-theme-toggle,
.dark .qy-small-button,
.qy-home[data-qy-theme="dark"] .qy-theme-toggle,
.qy-home[data-qy-theme="dark"] .qy-small-button {
background: rgba(255, 255, 255, 0.06);
}
.qy-theme-toggle {
display: inline-flex;
align-items: center;
gap: 7px;
height: 40px;
padding: 0 12px;
font-size: 12px;
font-weight: 650;
}
.qy-theme-toggle:hover,
.qy-small-button:hover {
transform: translateY(-1px);
border-color: color-mix(in srgb, var(--qy-primary) 38%, var(--qy-line));
background: rgba(255, 255, 255, 0.68);
}
.dark .qy-theme-toggle:hover,
.dark .qy-small-button:hover,
.qy-home[data-qy-theme="dark"] .qy-theme-toggle:hover,
.qy-home[data-qy-theme="dark"] .qy-small-button:hover {
background: rgba(255, 255, 255, 0.1);
}
.qy-small-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 40px;
padding: 0 15px;
font-size: 13px;
font-weight: 700;
color: var(--qy-primary-strong);
}
.qy-hero {
display: grid;
grid-template-columns: minmax(0, 1.02fr) minmax(340px, 0.78fr);
gap: clamp(28px, 5vw, 58px);
align-items: center;
padding: clamp(92px, 8vw, 134px) 0 clamp(42px, 7vw, 78px);
}
.qy-eyebrow {
display: inline-flex;
align-items: center;
gap: 9px;
width: fit-content;
margin-bottom: 18px;
padding: 8px 11px 8px 8px;
border: 1px solid var(--qy-line);
border-radius: 999px;
background: var(--qy-card);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.44);
color: var(--qy-muted);
font-size: 12px;
font-weight: 650;
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
}
.qy-pulse {
width: 23px;
height: 23px;
border-radius: 50%;
background: radial-gradient(circle, var(--qy-cyan) 0 28%, rgba(116, 215, 223, 0.2) 31% 58%, transparent 61%);
box-shadow: 0 0 0 6px rgba(116, 215, 223, 0.08);
}
.qy-title {
max-width: 760px;
margin: 0;
color: var(--qy-text);
font-size: clamp(42px, 7.4vw, 86px);
line-height: 0.95;
letter-spacing: -0.075em;
font-weight: 820;
}
.qy-title .qy-gradient-text {
display: inline-block;
color: transparent;
background: linear-gradient(110deg, var(--qy-primary-strong), #6d8ff6 45%, var(--qy-accent) 88%);
-webkit-background-clip: text;
background-clip: text;
}
.dark .qy-title .qy-gradient-text,
.qy-home[data-qy-theme="dark"] .qy-title .qy-gradient-text {
background: linear-gradient(110deg, var(--qy-primary), #b7c7ff 45%, var(--qy-accent) 88%);
-webkit-background-clip: text;
background-clip: text;
}
.qy-lede {
max-width: 640px;
margin: 24px 0 0;
color: var(--qy-muted);
font-size: clamp(16px, 2vw, 19px);
line-height: 1.85;
}
.qy-hero-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
margin-top: 30px;
}
.qy-button-primary,
.qy-button-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-height: 48px;
padding: 0 20px;
border-radius: 999px;
font-size: 14px;
font-weight: 760;
transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background 0.24s ease;
}
.qy-button-primary {
color: #fff;
border: 1px solid rgba(17, 93, 104, 0.28);
background:
linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0)),
linear-gradient(135deg, #115d68, #238995 52%, #7c6f52);
box-shadow: 0 18px 36px rgba(29, 127, 140, 0.26);
}
.qy-button-ghost {
color: var(--qy-text);
border: 1px solid var(--qy-line-strong);
background: var(--qy-card);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
}
.qy-button-primary:hover,
.qy-button-ghost:hover {
transform: translateY(-2px);
box-shadow: var(--qy-shadow-soft);
}
.qy-trust-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 28px;
}
.qy-trust-chip {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 10px;
border: 1px solid var(--qy-line);
border-radius: 999px;
background: rgba(255, 255, 255, 0.34);
color: var(--qy-muted);
font-size: 12px;
font-weight: 630;
}
.dark .qy-trust-chip,
.qy-home[data-qy-theme="dark"] .qy-trust-chip {
background: rgba(255, 255, 255, 0.045);
}
.qy-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--qy-primary);
box-shadow: 0 0 16px rgba(116, 215, 223, 0.9);
}
.qy-console {
position: relative;
padding: 13px;
border: 1px solid var(--qy-line-strong);
border-radius: 32px;
background: linear-gradient(150deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.34));
box-shadow: var(--qy-shadow);
backdrop-filter: blur(28px) saturate(145%);
-webkit-backdrop-filter: blur(28px) saturate(145%);
}
.dark .qy-console,
.qy-home[data-qy-theme="dark"] .qy-console {
background: linear-gradient(150deg, rgba(255, 255, 255, 0.105), rgba(255, 255, 255, 0.035));
}
.qy-console::before {
content: "";
position: absolute;
inset: 16px auto auto -34px;
width: 74px;
height: 74px;
border-radius: 26px;
background: linear-gradient(135deg, rgba(199, 159, 98, 0.22), rgba(116, 215, 223, 0.2));
filter: blur(18px);
opacity: 0.9;
z-index: -1;
}
.qy-console-inner {
overflow: hidden;
border: 1px solid var(--qy-line);
border-radius: 24px;
background: var(--qy-bg-solid);
}
.qy-console-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
padding: 15px 16px;
border-bottom: 1px solid var(--qy-line);
}
.qy-window-dots {
display: flex;
gap: 7px;
}
.qy-window-dots span {
width: 9px;
height: 9px;
border-radius: 50%;
background: var(--qy-line-strong);
}
.qy-window-dots span:nth-child(1) { background: #e8a4a0; }
.qy-window-dots span:nth-child(2) { background: #e3c16f; }
.qy-window-dots span:nth-child(3) { background: #8ad6a4; }
.qy-status-pill {
display: inline-flex;
align-items: center;
gap: 7px;
color: var(--qy-muted);
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 11px;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.qy-live-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: #2dcf83;
box-shadow: 0 0 0 5px rgba(45, 207, 131, 0.12), 0 0 18px rgba(45, 207, 131, 0.7);
}
.qy-console-body {
padding: 18px;
}
.qy-metric-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
margin-bottom: 14px;
}
.qy-mini-metric {
min-width: 0;
padding: 12px;
border: 1px solid var(--qy-line);
border-radius: 17px;
background: color-mix(in srgb, var(--qy-card) 82%, transparent);
}
.qy-mini-metric span {
display: block;
color: var(--qy-faint);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.qy-mini-metric strong {
display: block;
margin-top: 7px;
font-size: 20px;
line-height: 1;
letter-spacing: -0.06em;
}
.qy-route-card {
padding: 15px;
border: 1px solid var(--qy-line);
border-radius: 20px;
background:
linear-gradient(135deg, rgba(116, 215, 223, 0.08), transparent 42%),
color-mix(in srgb, var(--qy-card-strong) 88%, transparent);
}
.qy-route-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 14px;
}
.qy-route-head span {
color: var(--qy-faint);
font-size: 11px;
font-weight: 720;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.qy-model-stack {
display: grid;
gap: 9px;
}
.qy-model-row {
display: grid;
grid-template-columns: 94px minmax(0, 1fr) auto;
align-items: center;
gap: 10px;
color: var(--qy-muted);
font-size: 12px;
}
.qy-model-row strong {
color: var(--qy-text);
font-size: 12px;
}
.qy-bar {
position: relative;
height: 7px;
overflow: hidden;
border-radius: 999px;
background: rgba(127, 143, 162, 0.14);
}
.qy-bar i {
display: block;
height: 100%;
border-radius: inherit;
background: linear-gradient(90deg, var(--qy-primary), var(--qy-blue));
}
.qy-code-card {
margin-top: 12px;
padding: 15px;
border: 1px solid var(--qy-line);
border-radius: 20px;
background: rgba(10, 14, 20, 0.92);
color: #d8edf0;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.qy-code-card code {
display: block;
overflow-wrap: anywhere;
white-space: pre-wrap;
color: inherit;
background: transparent;
padding: 0;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
font-size: 11.5px;
line-height: 1.68;
}
.qy-code-card .qy-code-muted { color: #7c8b99; }
.qy-code-card .qy-code-key { color: #9ee7f1; }
.qy-code-card .qy-code-string { color: #e7c989; }
.qy-section {
padding: clamp(48px, 8vw, 88px) 0;
}
.qy-section-head {
display: flex;
align-items: end;
justify-content: space-between;
gap: 20px;
margin-bottom: 24px;
}
.qy-section-kicker {
margin: 0 0 10px;
color: var(--qy-primary-strong);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.qy-section-title {
margin: 0;
max-width: 620px;
font-size: clamp(28px, 4.4vw, 48px);
line-height: 1.05;
letter-spacing: -0.055em;
font-weight: 820;
}
.qy-section-desc {
max-width: 380px;
margin: 0;
color: var(--qy-muted);
font-size: 14px;
line-height: 1.75;
}
.qy-stat-strip {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12px;
padding: 14px;
border: 1px solid var(--qy-line);
border-radius: var(--qy-radius-lg);
background: var(--qy-card);
box-shadow: var(--qy-shadow-soft);
backdrop-filter: blur(22px);
-webkit-backdrop-filter: blur(22px);
}
.qy-stat {
min-height: 116px;
padding: 18px;
border: 1px solid var(--qy-line);
border-radius: 20px;
background: color-mix(in srgb, var(--qy-bg-solid) 76%, transparent);
}
.qy-stat strong {
display: block;
font-size: clamp(28px, 4vw, 42px);
line-height: 1;
letter-spacing: -0.07em;
}
.qy-stat span {
display: block;
margin-top: 12px;
color: var(--qy-muted);
font-size: 13px;
line-height: 1.55;
}
.qy-feature-grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 14px;
}
.qy-card {
position: relative;
overflow: hidden;
min-height: 260px;
padding: clamp(22px, 3vw, 30px);
border: 1px solid var(--qy-line);
border-radius: var(--qy-radius-lg);
background: var(--qy-card);
box-shadow: var(--qy-shadow-soft);
backdrop-filter: blur(24px) saturate(140%);
-webkit-backdrop-filter: blur(24px) saturate(140%);
}
.qy-card::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(135deg, rgba(255, 255, 255, 0.28), transparent 42%);
opacity: 0.8;
}
.dark .qy-card::after,
.qy-home[data-qy-theme="dark"] .qy-card::after {
opacity: 0.22;
}
.qy-card-content {
position: relative;
z-index: 1;
}
.qy-card-label {
display: inline-flex;
align-items: center;
gap: 8px;
margin-bottom: 18px;
color: var(--qy-faint);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.15em;
text-transform: uppercase;
}
.qy-card-label::before {
content: "";
width: 22px;
height: 1px;
background: var(--qy-accent);
}
.qy-card h3 {
margin: 0;
font-size: clamp(22px, 3vw, 31px);
line-height: 1.12;
letter-spacing: -0.045em;
}
.qy-card p {
margin: 14px 0 0;
color: var(--qy-muted);
font-size: 14px;
line-height: 1.78;
}
.qy-model-cloud {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 28px;
}
.qy-model-cloud span {
padding: 10px 13px;
border: 1px solid var(--qy-line);
border-radius: 999px;
background: rgba(255, 255, 255, 0.42);
color: var(--qy-muted);
font-size: 12px;
font-weight: 700;
}
.dark .qy-model-cloud span,
.qy-home[data-qy-theme="dark"] .qy-model-cloud span {
background: rgba(255, 255, 255, 0.045);
}
.qy-card-wide {
grid-column: span 2;
min-height: 220px;
background:
radial-gradient(circle at 84% 28%, rgba(116, 215, 223, 0.15), transparent 28%),
var(--qy-card);
}
.qy-orbit {
position: absolute;
right: clamp(20px, 5vw, 64px);
bottom: 26px;
width: 210px;
height: 150px;
opacity: 0.92;
}
.qy-orbit span {
position: absolute;
display: grid;
place-items: center;
border: 1px solid var(--qy-line);
border-radius: 999px;
background: var(--qy-bg-solid);
color: var(--qy-muted);
font-size: 11px;
font-weight: 760;
box-shadow: 0 12px 28px rgba(31, 42, 58, 0.08);
}
.qy-orbit span:nth-child(1) { inset: 10px auto auto 70px; width: 74px; height: 74px; color: var(--qy-primary-strong); }
.qy-orbit span:nth-child(2) { inset: 78px auto auto 8px; width: 56px; height: 56px; }
.qy-orbit span:nth-child(3) { inset: 84px 18px auto auto; width: 62px; height: 62px; }
.qy-orbit span:nth-child(4) { inset: 2px 0 auto auto; width: 44px; height: 44px; color: var(--qy-accent); }
.qy-steps {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.qy-step {
padding: 22px;
border: 1px solid var(--qy-line);
border-radius: var(--qy-radius-lg);
background: color-mix(in srgb, var(--qy-card) 84%, transparent);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
}
.qy-step-num {
display: inline-flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
margin-bottom: 22px;
border: 1px solid var(--qy-line-strong);
border-radius: 14px;
background: linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.24));
color: var(--qy-primary-strong);
font-size: 13px;
font-weight: 840;
}
.dark .qy-step-num,
.qy-home[data-qy-theme="dark"] .qy-step-num {
background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035));
}
.qy-step h3 {
margin: 0;
font-size: 18px;
letter-spacing: -0.03em;
}
.qy-step p {
margin: 10px 0 0;
color: var(--qy-muted);
font-size: 13px;
line-height: 1.75;
}
.qy-cta {
position: relative;
overflow: hidden;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 24px;
align-items: center;
padding: clamp(26px, 5vw, 42px);
border: 1px solid var(--qy-line);
border-radius: var(--qy-radius-xl);
background:
radial-gradient(circle at 76% 28%, rgba(116, 215, 223, 0.18), transparent 30%),
radial-gradient(circle at 20% 82%, rgba(199, 159, 98, 0.13), transparent 28%),
var(--qy-card-strong);
box-shadow: var(--qy-shadow);
backdrop-filter: blur(24px);
-webkit-backdrop-filter: blur(24px);
}
.qy-cta h2 {
margin: 0;
font-size: clamp(28px, 4vw, 46px);
line-height: 1.08;
letter-spacing: -0.055em;
}
.qy-cta p {
max-width: 570px;
margin: 14px 0 0;
color: var(--qy-muted);
font-size: 14px;
line-height: 1.8;
}
.qy-footer {
display: flex;
justify-content: space-between;
gap: 18px;
padding: 30px 0 6px;
color: var(--qy-faint);
font-size: 12px;
line-height: 1.8;
}
.qy-footer-links {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 12px;
}
.qy-footer a:hover {
color: var(--qy-text);
text-decoration: underline;
text-underline-offset: 4px;
}
@media (max-width: 920px) {
.qy-nav-links { display: none; }
.qy-hero { grid-template-columns: 1fr; }
.qy-console { max-width: 620px; }
.qy-section-head { align-items: start; flex-direction: column; }
.qy-stat-strip { grid-template-columns: repeat(2, 1fr); }
.qy-feature-grid { grid-template-columns: 1fr; }
.qy-card-wide { grid-column: auto; }
.qy-orbit { position: relative; right: auto; bottom: auto; margin-top: 24px; }
.qy-steps { grid-template-columns: 1fr; }
.qy-cta { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
.qy-shell { padding-inline: 14px; }
.qy-shell::before { inset-inline: -14px; border-radius: 34px; }
.qy-nav { border-radius: 24px; align-items: stretch; }
.qy-brand-sub { display: none; }
.qy-small-button { display: none; }
.qy-theme-toggle { width: 42px; padding: 0; justify-content: center; }
.qy-theme-toggle span { display: none; }
.qy-hero { padding-top: 82px; }
.qy-title { font-size: clamp(40px, 16vw, 62px); }
.qy-hero-actions { align-items: stretch; flex-direction: column; }
.qy-button-primary, .qy-button-ghost { width: 100%; }
.qy-metric-grid { grid-template-columns: 1fr; }
.qy-model-row { grid-template-columns: 82px minmax(0, 1fr); }
.qy-model-row small { display: none; }
.qy-stat-strip { grid-template-columns: 1fr; padding: 10px; }
.qy-card { min-height: auto; }
.qy-footer { flex-direction: column; }
.qy-footer-links { justify-content: flex-start; }
}
@media (prefers-reduced-motion: no-preference) {
.qy-fade-up {
animation: qyFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.qy-delay-1 { animation-delay: 0.08s; }
.qy-delay-2 { animation-delay: 0.16s; }
.qy-delay-3 { animation-delay: 0.24s; }
.qy-delay-4 { animation-delay: 0.32s; }
.qy-console {
animation: qyFloat 6s ease-in-out infinite;
}
}
@keyframes qyFadeUp {
from { opacity: 0; transform: translateY(18px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes qyFloat {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
</style>
<div class="qy-shell">
<section class="qy-hero" aria-labelledby="qy-hero-title">
<div class="qy-hero-copy">
<div class="qy-eyebrow qy-fade-up qy-delay-1">
<span class="qy-pulse" aria-hidden="true"></span>
<span>轻量、稳定、面向未来的 AI 入口</span>
</div>
<h1 id="qy-hero-title" class="qy-title qy-fade-up qy-delay-2">
让每一次调用,<br><span class="qy-gradient-text">都清澈而高效。</span>
</h1>
<p class="qy-lede qy-fade-up qy-delay-3">
清羽AI 将模型接入、用量观测、密钥管理与 API 分发整理成一个优雅的工作台。少一点复杂配置,多一点稳定体验。
</p>
<div class="qy-hero-actions qy-fade-up qy-delay-4">
<a class="qy-button-primary" href="/dashboard">开始使用 <span aria-hidden="true">→</span></a>
<a class="qy-button-ghost" href="/pricing">浏览模型广场</a>
</div>
<div class="qy-trust-row qy-fade-up qy-delay-4" aria-label="平台能力摘要">
<span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 多模型统一接入</span>
<span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 透明用量计费</span>
<span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 细粒度密钥管理</span>
</div>
</div>
<aside class="qy-console qy-fade-up qy-delay-3" aria-label="清羽AI 状态仪表盘示意">
<div class="qy-console-inner">
<div class="qy-console-top">
<div class="qy-window-dots" aria-hidden="true"><span></span><span></span><span></span></div>
<div class="qy-status-pill"><i class="qy-live-dot" aria-hidden="true"></i> all systems refined</div>
</div>
<div class="qy-console-body">
<div class="qy-metric-grid">
<div class="qy-mini-metric"><span>Latency</span><strong>82ms</strong></div>
<div class="qy-mini-metric"><span>Uptime</span><strong>99.9%</strong></div>
<div class="qy-mini-metric"><span>Routes</span><strong>50+</strong></div>
</div>
<div class="qy-route-card">
<div class="qy-route-head">
<span>model routing</span>
<span>live</span>
</div>
<div class="qy-model-stack">
<div class="qy-model-row"><strong>Claude</strong><span class="qy-bar"><i style="width: 86%"></i></span><small>86%</small></div>
<div class="qy-model-row"><strong>Gemini</strong><span class="qy-bar"><i style="width: 72%"></i></span><small>72%</small></div>
<div class="qy-model-row"><strong>DeepSeek</strong><span class="qy-bar"><i style="width: 64%"></i></span><small>64%</small></div>
<div class="qy-model-row"><strong>Qwen</strong><span class="qy-bar"><i style="width: 58%"></i></span><small>58%</small></div>
</div>
</div>
<div class="qy-code-card" aria-label="API 调用示例">
<code><span class="qy-code-muted">POST</span> <span class="qy-code-key">/v1/chat/completions</span>
{
<span class="qy-code-key">"model"</span>: <span class="qy-code-string">"qingyu-auto"</span>,
<span class="qy-code-key">"stream"</span>: true,
<span class="qy-code-key">"quality"</span>: <span class="qy-code-string">"balanced"</span>
}</code>
</div>
</div>
</div>
</aside>
</section>
<section class="qy-section" aria-label="平台指标">
<div class="qy-stat-strip">
<div class="qy-stat"><strong>50+</strong><span>主流上游服务与模型渠道统一适配</span></div>
<div class="qy-stat"><strong>100+</strong><span>模型计费、限额与倍率策略灵活管理</span></div>
<div class="qy-stat"><strong>10+</strong><span>调度、监控、权限与审计能力协同工作</span></div>
<div class="qy-stat"><strong>24/7</strong><span>面向真实业务流量的稳定访问体验</span></div>
</div>
</section>
<section class="qy-section" aria-labelledby="qy-feature-title">
<div class="qy-section-head">
<div>
<p class="qy-section-kicker">core system</p>
<h2 id="qy-feature-title" class="qy-section-title">高级感来自秩序,而不是堆满元素。</h2>
</div>
<p class="qy-section-desc">清羽AI 把复杂能力收束成清晰界面:路由清楚、账单清楚、密钥清楚,团队与个人都能快速上手。</p>
</div>
<div class="qy-feature-grid">
<article class="qy-card qy-card-wide">
<div class="qy-card-content">
<span class="qy-card-label">Unified Gateway</span>
<h3>一个入口,连接不同模型生态。</h3>
<p>兼容常见 API 工作流,让应用无需频繁改造就能在多个模型之间切换、降级与调度。</p>
<div class="qy-model-cloud" aria-label="支持模型示例">
<span>OpenAI</span><span>Claude</span><span>Gemini</span><span>DeepSeek</span><span>Qwen</span><span>Llama</span>
</div>
</div>
<div class="qy-orbit" aria-hidden="true"><span>API</span><span>Key</span><span>Log</span><span>AI</span></div>
</article>
<article class="qy-card">
<div class="qy-card-content">
<span class="qy-card-label">Cost Clarity</span>
<h3>用量与成本,不再藏在黑箱里。</h3>
<p>通过清晰的消耗记录、倍率配置和额度控制,让每一次请求都可追踪、可理解、可优化。</p>
</div>
</article>
<article class="qy-card">
<div class="qy-card-content">
<span class="qy-card-label">Access Control</span>
<h3>密钥、权限与团队协作保持克制有序。</h3>
<p>为个人项目保留轻量体验,也为多人协作准备权限边界、访问限制与安全策略。</p>
</div>
</article>
</div>
</section>
<section class="qy-section" aria-labelledby="qy-flow-title">
<div class="qy-section-head">
<div>
<p class="qy-section-kicker">workflow</p>
<h2 id="qy-flow-title" class="qy-section-title">三步建立自己的 AI 工作流。</h2>
</div>
</div>
<div class="qy-steps">
<article class="qy-step">
<span class="qy-step-num">01</span>
<h3>接入渠道</h3>
<p>添加上游模型服务,配置密钥、倍率与可用范围,建立统一的模型资源池。</p>
</article>
<article class="qy-step">
<span class="qy-step-num">02</span>
<h3>分发请求</h3>
<p>使用统一 API 入口连接你的应用,让模型调用、路由切换和策略调整更加平滑。</p>
</article>
<article class="qy-step">
<span class="qy-step-num">03</span>
<h3>观察优化</h3>
<p>通过用量、延迟与成本数据持续调整策略,获得更稳定也更经济的调用体验。</p>
</article>
</div>
</section>
<section class="qy-section" aria-label="开始使用清羽AI">
<div class="qy-cta">
<div>
<h2>把复杂留给系统,把清爽留给使用者。</h2>
<p>清羽AI 适合个人开发者、轻量团队与 AI 应用探索者。它不追求喧闹,而是把每个必要能力打磨得足够清晰。</p>
</div>
<a class="qy-button-primary" href="/dashboard">进入清羽AI <span aria-hidden="true">→</span></a>
</div>
</section>
<footer class="qy-footer">
<div>
<strong>清羽AI</strong><br>
<span>© 2026 清羽飞扬。保留所有权利。</span>
</div>
<div class="qy-footer-links">
<a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">陕ICP备2024028531号</a>
<a href="https://beian.gov.cn/portal/registerSystemInfo?recordcode=61011602000637" target="_blank" rel="noopener noreferrer">陕公网安备61011602000637号</a>
</div>
</footer>
</div>
<script>
(() => {
const root = document.currentScript.closest('.qy-home');
if (!root) return;
const storageKey = 'qingyu-ai-theme';
const applyTheme = (theme) => {
root.setAttribute('data-qy-theme', theme);
if (theme === 'dark') document.documentElement.classList.add('dark');
if (theme === 'light') document.documentElement.classList.remove('dark');
};
const saved = localStorage.getItem(storageKey);
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
applyTheme(saved || (prefersDark ? 'dark' : 'light'));
})();
</script>
</div>
| 1 | <div class="bg-background text-foreground relative min-h-svh overflow-x-clip qy-home" data-qy-theme="light"> |
| 2 | <style> |
| 3 | .qy-home { |
| 4 | --qy-bg: #fbfaf7; |
| 5 | --qy-bg-soft: rgba(255, 255, 255, 0.72); |
| 6 | --qy-bg-solid: rgba(255, 255, 255, 0.92); |
| 7 | --qy-text: #151a1f; |
| 8 | --qy-muted: #68717d; |
| 9 | --qy-faint: #8b96a5; |
| 10 | --qy-line: rgba(37, 45, 57, 0.1); |
| 11 | --qy-line-strong: rgba(37, 45, 57, 0.16); |
| 12 | --qy-card: rgba(255, 255, 255, 0.62); |
| 13 | --qy-card-strong: rgba(255, 255, 255, 0.84); |
| 14 | --qy-primary: #1d7f8c; |
| 15 | --qy-primary-strong: #115d68; |
| 16 | --qy-accent: #c79f62; |
| 17 | --qy-cyan: #74d7df; |
| 18 | --qy-blue: #9eb8ff; |
| 19 | --qy-shadow: 0 24px 80px rgba(31, 42, 58, 0.12); |
| 20 | --qy-shadow-soft: 0 16px 42px rgba(31, 42, 58, 0.08); |
| 21 | --qy-radius-xl: 34px; |
| 22 | --qy-radius-lg: 24px; |
| 23 | --qy-radius-md: 18px; |
| 24 | color: var(--qy-text); |
| 25 | background: |
| 26 | radial-gradient(ellipse 56% 38% at 50% 30%, rgba(116, 215, 223, 0.22), rgba(255, 255, 255, 0.22) 46%, rgba(255, 255, 255, 0) 76%), |
| 27 | radial-gradient(ellipse 42% 30% at 58% 46%, rgba(199, 159, 98, 0.11), rgba(255, 255, 255, 0) 70%); |
| 28 | isolation: isolate; |
| 29 | } |
| 30 | .dark .qy-home, |
| 31 | .qy-home[data-qy-theme="dark"] { |
| 32 | --qy-bg: #090d12; |
| 33 | --qy-bg-soft: rgba(13, 18, 25, 0.72); |
| 34 | --qy-bg-solid: rgba(13, 18, 25, 0.94); |
| 35 | --qy-text: #eef3f6; |
| 36 | --qy-muted: #a7b1bd; |
| 37 | --qy-faint: #737f8f; |
| 38 | --qy-line: rgba(237, 246, 249, 0.1); |
| 39 | --qy-line-strong: rgba(237, 246, 249, 0.16); |
| 40 | --qy-card: rgba(15, 22, 30, 0.58); |
| 41 | --qy-card-strong: rgba(15, 22, 30, 0.86); |
| 42 | --qy-primary: #7fe3eb; |
| 43 | --qy-primary-strong: #b8f4f7; |
| 44 | --qy-accent: #e3bf7e; |
| 45 | --qy-cyan: #76dce5; |
| 46 | --qy-blue: #99b8ff; |
| 47 | --qy-shadow: 0 28px 90px rgba(0, 0, 0, 0.48); |
| 48 | --qy-shadow-soft: 0 18px 52px rgba(0, 0, 0, 0.36); |
| 49 | background: |
| 50 | radial-gradient(ellipse 56% 38% at 50% 30%, rgba(116, 215, 223, 0.13), rgba(9, 13, 18, 0.2) 46%, rgba(9, 13, 18, 0) 76%), |
| 51 | radial-gradient(ellipse 42% 30% at 58% 46%, rgba(227, 191, 126, 0.09), rgba(9, 13, 18, 0) 70%); |
| 52 | } |
| 53 | .qy-home * { |
| 54 | box-sizing: border-box; |
| 55 | } |
| 56 | .qy-home a { |
| 57 | color: inherit; |
| 58 | text-decoration: none; |
| 59 | } |
| 60 | .qy-shell { |
| 61 | position: relative; |
| 62 | width: min(100%, 1180px); |
| 63 | margin: 0 auto; |
| 64 | padding: 22px clamp(18px, 4vw, 34px) 48px; |
| 65 | } |
| 66 | .qy-shell::before { |
| 67 | content: ""; |
| 68 | position: absolute; |
| 69 | inset: 116px clamp(0px, 3vw, 28px) auto; |
| 70 | height: 620px; |
| 71 | pointer-events: none; |
| 72 | z-index: -1; |
| 73 | opacity: 0.92; |
| 74 | background: |
| 75 | linear-gradient(115deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.08) 34%, rgba(255, 255, 255, 0.64) 68%, rgba(255, 255, 255, 0)), |
| 76 | radial-gradient(circle at 22% 26%, rgba(116, 215, 223, 0.2), transparent 34%), |
| 77 | radial-gradient(circle at 70% 24%, rgba(158, 184, 255, 0.18), transparent 32%), |
| 78 | radial-gradient(circle at 50% 78%, rgba(199, 159, 98, 0.13), transparent 30%); |
| 79 | border-radius: 46px; |
| 80 | filter: blur(0.2px); |
| 81 | -webkit-mask-image: linear-gradient(to bottom, transparent 0, transparent 34px, #000 132px, #000 78%, transparent 100%), radial-gradient(ellipse 68% 56% at 50% 42%, #000 38%, transparent 100%); |
| 82 | -webkit-mask-composite: source-in; |
| 83 | mask-image: linear-gradient(to bottom, transparent 0, transparent 34px, #000 132px, #000 78%, transparent 100%), radial-gradient(ellipse 68% 56% at 50% 42%, #000 38%, transparent 100%); |
| 84 | mask-composite: intersect; |
| 85 | } |
| 86 | .dark .qy-shell::before, |
| 87 | .qy-home[data-qy-theme="dark"] .qy-shell::before { |
| 88 | background: |
| 89 | linear-gradient(115deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02) 34%, rgba(255, 255, 255, 0.07) 68%, rgba(255, 255, 255, 0)), |
| 90 | radial-gradient(circle at 22% 26%, rgba(116, 215, 223, 0.18), transparent 34%), |
| 91 | radial-gradient(circle at 70% 24%, rgba(158, 184, 255, 0.14), transparent 32%), |
| 92 | radial-gradient(circle at 50% 78%, rgba(227, 191, 126, 0.1), transparent 30%); |
| 93 | } |
| 94 | .qy-nav { |
| 95 | position: sticky; |
| 96 | top: 14px; |
| 97 | z-index: 20; |
| 98 | display: flex; |
| 99 | align-items: center; |
| 100 | justify-content: space-between; |
| 101 | gap: 16px; |
| 102 | min-height: 66px; |
| 103 | padding: 12px 14px 12px 16px; |
| 104 | border: 1px solid var(--qy-line); |
| 105 | border-radius: 999px; |
| 106 | background: color-mix(in srgb, var(--qy-bg-solid) 78%, transparent); |
| 107 | box-shadow: 0 14px 42px rgba(40, 48, 64, 0.08); |
| 108 | backdrop-filter: blur(22px) saturate(160%); |
| 109 | -webkit-backdrop-filter: blur(22px) saturate(160%); |
| 110 | } |
| 111 | .qy-brand { |
| 112 | display: inline-flex; |
| 113 | align-items: center; |
| 114 | gap: 11px; |
| 115 | min-width: 0; |
| 116 | } |
| 117 | .qy-logo-wrap { |
| 118 | display: grid; |
| 119 | place-items: center; |
| 120 | width: 40px; |
| 121 | height: 40px; |
| 122 | border: 1px solid var(--qy-line-strong); |
| 123 | border-radius: 16px; |
| 124 | background: linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.32)); |
| 125 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), 0 12px 26px rgba(37, 45, 57, 0.08); |
| 126 | overflow: hidden; |
| 127 | } |
| 128 | .dark .qy-logo-wrap, |
| 129 | .qy-home[data-qy-theme="dark"] .qy-logo-wrap { |
| 130 | background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035)); |
| 131 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 12px 26px rgba(0, 0, 0, 0.25); |
| 132 | } |
| 133 | .qy-logo-wrap img { |
| 134 | width: 27px; |
| 135 | height: 27px; |
| 136 | border-radius: 9px; |
| 137 | object-fit: cover; |
| 138 | } |
| 139 | .qy-brand-text { |
| 140 | display: flex; |
| 141 | flex-direction: column; |
| 142 | gap: 1px; |
| 143 | line-height: 1.05; |
| 144 | } |
| 145 | .qy-brand-name { |
| 146 | font-size: 15px; |
| 147 | font-weight: 760; |
| 148 | letter-spacing: -0.03em; |
| 149 | } |
| 150 | .qy-brand-sub { |
| 151 | font-size: 10px; |
| 152 | letter-spacing: 0.17em; |
| 153 | text-transform: uppercase; |
| 154 | color: var(--qy-faint); |
| 155 | } |
| 156 | .qy-nav-links { |
| 157 | display: flex; |
| 158 | align-items: center; |
| 159 | gap: 4px; |
| 160 | color: var(--qy-muted); |
| 161 | font-size: 13px; |
| 162 | font-weight: 560; |
| 163 | } |
| 164 | .qy-nav-links a { |
| 165 | padding: 9px 12px; |
| 166 | border-radius: 999px; |
| 167 | transition: color 0.22s ease, background 0.22s ease; |
| 168 | } |
| 169 | .qy-nav-links a:hover { |
| 170 | color: var(--qy-text); |
| 171 | background: rgba(127, 143, 162, 0.1); |
| 172 | } |
| 173 | .qy-nav-actions { |
| 174 | display: flex; |
| 175 | align-items: center; |
| 176 | gap: 8px; |
| 177 | } |
| 178 | .qy-theme-toggle, |
| 179 | .qy-small-button { |
| 180 | appearance: none; |
| 181 | border: 1px solid var(--qy-line); |
| 182 | color: var(--qy-text); |
| 183 | background: rgba(255, 255, 255, 0.42); |
| 184 | border-radius: 999px; |
| 185 | cursor: pointer; |
| 186 | transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease; |
| 187 | } |
| 188 | .dark .qy-theme-toggle, |
| 189 | .dark .qy-small-button, |
| 190 | .qy-home[data-qy-theme="dark"] .qy-theme-toggle, |
| 191 | .qy-home[data-qy-theme="dark"] .qy-small-button { |
| 192 | background: rgba(255, 255, 255, 0.06); |
| 193 | } |
| 194 | .qy-theme-toggle { |
| 195 | display: inline-flex; |
| 196 | align-items: center; |
| 197 | gap: 7px; |
| 198 | height: 40px; |
| 199 | padding: 0 12px; |
| 200 | font-size: 12px; |
| 201 | font-weight: 650; |
| 202 | } |
| 203 | .qy-theme-toggle:hover, |
| 204 | .qy-small-button:hover { |
| 205 | transform: translateY(-1px); |
| 206 | border-color: color-mix(in srgb, var(--qy-primary) 38%, var(--qy-line)); |
| 207 | background: rgba(255, 255, 255, 0.68); |
| 208 | } |
| 209 | .dark .qy-theme-toggle:hover, |
| 210 | .dark .qy-small-button:hover, |
| 211 | .qy-home[data-qy-theme="dark"] .qy-theme-toggle:hover, |
| 212 | .qy-home[data-qy-theme="dark"] .qy-small-button:hover { |
| 213 | background: rgba(255, 255, 255, 0.1); |
| 214 | } |
| 215 | .qy-small-button { |
| 216 | display: inline-flex; |
| 217 | align-items: center; |
| 218 | justify-content: center; |
| 219 | min-height: 40px; |
| 220 | padding: 0 15px; |
| 221 | font-size: 13px; |
| 222 | font-weight: 700; |
| 223 | color: var(--qy-primary-strong); |
| 224 | } |
| 225 | .qy-hero { |
| 226 | display: grid; |
| 227 | grid-template-columns: minmax(0, 1.02fr) minmax(340px, 0.78fr); |
| 228 | gap: clamp(28px, 5vw, 58px); |
| 229 | align-items: center; |
| 230 | padding: clamp(92px, 8vw, 134px) 0 clamp(42px, 7vw, 78px); |
| 231 | } |
| 232 | .qy-eyebrow { |
| 233 | display: inline-flex; |
| 234 | align-items: center; |
| 235 | gap: 9px; |
| 236 | width: fit-content; |
| 237 | margin-bottom: 18px; |
| 238 | padding: 8px 11px 8px 8px; |
| 239 | border: 1px solid var(--qy-line); |
| 240 | border-radius: 999px; |
| 241 | background: var(--qy-card); |
| 242 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.44); |
| 243 | color: var(--qy-muted); |
| 244 | font-size: 12px; |
| 245 | font-weight: 650; |
| 246 | backdrop-filter: blur(18px); |
| 247 | -webkit-backdrop-filter: blur(18px); |
| 248 | } |
| 249 | .qy-pulse { |
| 250 | width: 23px; |
| 251 | height: 23px; |
| 252 | border-radius: 50%; |
| 253 | background: radial-gradient(circle, var(--qy-cyan) 0 28%, rgba(116, 215, 223, 0.2) 31% 58%, transparent 61%); |
| 254 | box-shadow: 0 0 0 6px rgba(116, 215, 223, 0.08); |
| 255 | } |
| 256 | .qy-title { |
| 257 | max-width: 760px; |
| 258 | margin: 0; |
| 259 | color: var(--qy-text); |
| 260 | font-size: clamp(42px, 7.4vw, 86px); |
| 261 | line-height: 0.95; |
| 262 | letter-spacing: -0.075em; |
| 263 | font-weight: 820; |
| 264 | } |
| 265 | .qy-title .qy-gradient-text { |
| 266 | display: inline-block; |
| 267 | color: transparent; |
| 268 | background: linear-gradient(110deg, var(--qy-primary-strong), #6d8ff6 45%, var(--qy-accent) 88%); |
| 269 | -webkit-background-clip: text; |
| 270 | background-clip: text; |
| 271 | } |
| 272 | .dark .qy-title .qy-gradient-text, |
| 273 | .qy-home[data-qy-theme="dark"] .qy-title .qy-gradient-text { |
| 274 | background: linear-gradient(110deg, var(--qy-primary), #b7c7ff 45%, var(--qy-accent) 88%); |
| 275 | -webkit-background-clip: text; |
| 276 | background-clip: text; |
| 277 | } |
| 278 | .qy-lede { |
| 279 | max-width: 640px; |
| 280 | margin: 24px 0 0; |
| 281 | color: var(--qy-muted); |
| 282 | font-size: clamp(16px, 2vw, 19px); |
| 283 | line-height: 1.85; |
| 284 | } |
| 285 | .qy-hero-actions { |
| 286 | display: flex; |
| 287 | flex-wrap: wrap; |
| 288 | align-items: center; |
| 289 | gap: 12px; |
| 290 | margin-top: 30px; |
| 291 | } |
| 292 | .qy-button-primary, |
| 293 | .qy-button-ghost { |
| 294 | display: inline-flex; |
| 295 | align-items: center; |
| 296 | justify-content: center; |
| 297 | gap: 9px; |
| 298 | min-height: 48px; |
| 299 | padding: 0 20px; |
| 300 | border-radius: 999px; |
| 301 | font-size: 14px; |
| 302 | font-weight: 760; |
| 303 | transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease, background 0.24s ease; |
| 304 | } |
| 305 | .qy-button-primary { |
| 306 | color: #fff; |
| 307 | border: 1px solid rgba(17, 93, 104, 0.28); |
| 308 | background: |
| 309 | linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0)), |
| 310 | linear-gradient(135deg, #115d68, #238995 52%, #7c6f52); |
| 311 | box-shadow: 0 18px 36px rgba(29, 127, 140, 0.26); |
| 312 | } |
| 313 | .qy-button-ghost { |
| 314 | color: var(--qy-text); |
| 315 | border: 1px solid var(--qy-line-strong); |
| 316 | background: var(--qy-card); |
| 317 | backdrop-filter: blur(16px); |
| 318 | -webkit-backdrop-filter: blur(16px); |
| 319 | } |
| 320 | .qy-button-primary:hover, |
| 321 | .qy-button-ghost:hover { |
| 322 | transform: translateY(-2px); |
| 323 | box-shadow: var(--qy-shadow-soft); |
| 324 | } |
| 325 | .qy-trust-row { |
| 326 | display: flex; |
| 327 | flex-wrap: wrap; |
| 328 | gap: 10px; |
| 329 | margin-top: 28px; |
| 330 | } |
| 331 | .qy-trust-chip { |
| 332 | display: inline-flex; |
| 333 | align-items: center; |
| 334 | gap: 8px; |
| 335 | padding: 8px 10px; |
| 336 | border: 1px solid var(--qy-line); |
| 337 | border-radius: 999px; |
| 338 | background: rgba(255, 255, 255, 0.34); |
| 339 | color: var(--qy-muted); |
| 340 | font-size: 12px; |
| 341 | font-weight: 630; |
| 342 | } |
| 343 | .dark .qy-trust-chip, |
| 344 | .qy-home[data-qy-theme="dark"] .qy-trust-chip { |
| 345 | background: rgba(255, 255, 255, 0.045); |
| 346 | } |
| 347 | .qy-dot { |
| 348 | width: 7px; |
| 349 | height: 7px; |
| 350 | border-radius: 50%; |
| 351 | background: var(--qy-primary); |
| 352 | box-shadow: 0 0 16px rgba(116, 215, 223, 0.9); |
| 353 | } |
| 354 | .qy-console { |
| 355 | position: relative; |
| 356 | padding: 13px; |
| 357 | border: 1px solid var(--qy-line-strong); |
| 358 | border-radius: 32px; |
| 359 | background: linear-gradient(150deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.34)); |
| 360 | box-shadow: var(--qy-shadow); |
| 361 | backdrop-filter: blur(28px) saturate(145%); |
| 362 | -webkit-backdrop-filter: blur(28px) saturate(145%); |
| 363 | } |
| 364 | .dark .qy-console, |
| 365 | .qy-home[data-qy-theme="dark"] .qy-console { |
| 366 | background: linear-gradient(150deg, rgba(255, 255, 255, 0.105), rgba(255, 255, 255, 0.035)); |
| 367 | } |
| 368 | .qy-console::before { |
| 369 | content: ""; |
| 370 | position: absolute; |
| 371 | inset: 16px auto auto -34px; |
| 372 | width: 74px; |
| 373 | height: 74px; |
| 374 | border-radius: 26px; |
| 375 | background: linear-gradient(135deg, rgba(199, 159, 98, 0.22), rgba(116, 215, 223, 0.2)); |
| 376 | filter: blur(18px); |
| 377 | opacity: 0.9; |
| 378 | z-index: -1; |
| 379 | } |
| 380 | .qy-console-inner { |
| 381 | overflow: hidden; |
| 382 | border: 1px solid var(--qy-line); |
| 383 | border-radius: 24px; |
| 384 | background: var(--qy-bg-solid); |
| 385 | } |
| 386 | .qy-console-top { |
| 387 | display: flex; |
| 388 | align-items: center; |
| 389 | justify-content: space-between; |
| 390 | gap: 14px; |
| 391 | padding: 15px 16px; |
| 392 | border-bottom: 1px solid var(--qy-line); |
| 393 | } |
| 394 | .qy-window-dots { |
| 395 | display: flex; |
| 396 | gap: 7px; |
| 397 | } |
| 398 | .qy-window-dots span { |
| 399 | width: 9px; |
| 400 | height: 9px; |
| 401 | border-radius: 50%; |
| 402 | background: var(--qy-line-strong); |
| 403 | } |
| 404 | .qy-window-dots span:nth-child(1) { background: #e8a4a0; } |
| 405 | .qy-window-dots span:nth-child(2) { background: #e3c16f; } |
| 406 | .qy-window-dots span:nth-child(3) { background: #8ad6a4; } |
| 407 | .qy-status-pill { |
| 408 | display: inline-flex; |
| 409 | align-items: center; |
| 410 | gap: 7px; |
| 411 | color: var(--qy-muted); |
| 412 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; |
| 413 | font-size: 11px; |
| 414 | letter-spacing: 0.06em; |
| 415 | text-transform: uppercase; |
| 416 | } |
| 417 | .qy-live-dot { |
| 418 | width: 7px; |
| 419 | height: 7px; |
| 420 | border-radius: 50%; |
| 421 | background: #2dcf83; |
| 422 | box-shadow: 0 0 0 5px rgba(45, 207, 131, 0.12), 0 0 18px rgba(45, 207, 131, 0.7); |
| 423 | } |
| 424 | .qy-console-body { |
| 425 | padding: 18px; |
| 426 | } |
| 427 | .qy-metric-grid { |
| 428 | display: grid; |
| 429 | grid-template-columns: repeat(3, 1fr); |
| 430 | gap: 10px; |
| 431 | margin-bottom: 14px; |
| 432 | } |
| 433 | .qy-mini-metric { |
| 434 | min-width: 0; |
| 435 | padding: 12px; |
| 436 | border: 1px solid var(--qy-line); |
| 437 | border-radius: 17px; |
| 438 | background: color-mix(in srgb, var(--qy-card) 82%, transparent); |
| 439 | } |
| 440 | .qy-mini-metric span { |
| 441 | display: block; |
| 442 | color: var(--qy-faint); |
| 443 | font-size: 10px; |
| 444 | font-weight: 700; |
| 445 | letter-spacing: 0.12em; |
| 446 | text-transform: uppercase; |
| 447 | } |
| 448 | .qy-mini-metric strong { |
| 449 | display: block; |
| 450 | margin-top: 7px; |
| 451 | font-size: 20px; |
| 452 | line-height: 1; |
| 453 | letter-spacing: -0.06em; |
| 454 | } |
| 455 | .qy-route-card { |
| 456 | padding: 15px; |
| 457 | border: 1px solid var(--qy-line); |
| 458 | border-radius: 20px; |
| 459 | background: |
| 460 | linear-gradient(135deg, rgba(116, 215, 223, 0.08), transparent 42%), |
| 461 | color-mix(in srgb, var(--qy-card-strong) 88%, transparent); |
| 462 | } |
| 463 | .qy-route-head { |
| 464 | display: flex; |
| 465 | align-items: center; |
| 466 | justify-content: space-between; |
| 467 | gap: 10px; |
| 468 | margin-bottom: 14px; |
| 469 | } |
| 470 | .qy-route-head span { |
| 471 | color: var(--qy-faint); |
| 472 | font-size: 11px; |
| 473 | font-weight: 720; |
| 474 | letter-spacing: 0.14em; |
| 475 | text-transform: uppercase; |
| 476 | } |
| 477 | .qy-model-stack { |
| 478 | display: grid; |
| 479 | gap: 9px; |
| 480 | } |
| 481 | .qy-model-row { |
| 482 | display: grid; |
| 483 | grid-template-columns: 94px minmax(0, 1fr) auto; |
| 484 | align-items: center; |
| 485 | gap: 10px; |
| 486 | color: var(--qy-muted); |
| 487 | font-size: 12px; |
| 488 | } |
| 489 | .qy-model-row strong { |
| 490 | color: var(--qy-text); |
| 491 | font-size: 12px; |
| 492 | } |
| 493 | .qy-bar { |
| 494 | position: relative; |
| 495 | height: 7px; |
| 496 | overflow: hidden; |
| 497 | border-radius: 999px; |
| 498 | background: rgba(127, 143, 162, 0.14); |
| 499 | } |
| 500 | .qy-bar i { |
| 501 | display: block; |
| 502 | height: 100%; |
| 503 | border-radius: inherit; |
| 504 | background: linear-gradient(90deg, var(--qy-primary), var(--qy-blue)); |
| 505 | } |
| 506 | .qy-code-card { |
| 507 | margin-top: 12px; |
| 508 | padding: 15px; |
| 509 | border: 1px solid var(--qy-line); |
| 510 | border-radius: 20px; |
| 511 | background: rgba(10, 14, 20, 0.92); |
| 512 | color: #d8edf0; |
| 513 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); |
| 514 | } |
| 515 | .qy-code-card code { |
| 516 | display: block; |
| 517 | overflow-wrap: anywhere; |
| 518 | white-space: pre-wrap; |
| 519 | color: inherit; |
| 520 | background: transparent; |
| 521 | padding: 0; |
| 522 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; |
| 523 | font-size: 11.5px; |
| 524 | line-height: 1.68; |
| 525 | } |
| 526 | .qy-code-card .qy-code-muted { color: #7c8b99; } |
| 527 | .qy-code-card .qy-code-key { color: #9ee7f1; } |
| 528 | .qy-code-card .qy-code-string { color: #e7c989; } |
| 529 | .qy-section { |
| 530 | padding: clamp(48px, 8vw, 88px) 0; |
| 531 | } |
| 532 | .qy-section-head { |
| 533 | display: flex; |
| 534 | align-items: end; |
| 535 | justify-content: space-between; |
| 536 | gap: 20px; |
| 537 | margin-bottom: 24px; |
| 538 | } |
| 539 | .qy-section-kicker { |
| 540 | margin: 0 0 10px; |
| 541 | color: var(--qy-primary-strong); |
| 542 | font-size: 12px; |
| 543 | font-weight: 800; |
| 544 | letter-spacing: 0.18em; |
| 545 | text-transform: uppercase; |
| 546 | } |
| 547 | .qy-section-title { |
| 548 | margin: 0; |
| 549 | max-width: 620px; |
| 550 | font-size: clamp(28px, 4.4vw, 48px); |
| 551 | line-height: 1.05; |
| 552 | letter-spacing: -0.055em; |
| 553 | font-weight: 820; |
| 554 | } |
| 555 | .qy-section-desc { |
| 556 | max-width: 380px; |
| 557 | margin: 0; |
| 558 | color: var(--qy-muted); |
| 559 | font-size: 14px; |
| 560 | line-height: 1.75; |
| 561 | } |
| 562 | .qy-stat-strip { |
| 563 | display: grid; |
| 564 | grid-template-columns: repeat(4, 1fr); |
| 565 | gap: 12px; |
| 566 | padding: 14px; |
| 567 | border: 1px solid var(--qy-line); |
| 568 | border-radius: var(--qy-radius-lg); |
| 569 | background: var(--qy-card); |
| 570 | box-shadow: var(--qy-shadow-soft); |
| 571 | backdrop-filter: blur(22px); |
| 572 | -webkit-backdrop-filter: blur(22px); |
| 573 | } |
| 574 | .qy-stat { |
| 575 | min-height: 116px; |
| 576 | padding: 18px; |
| 577 | border: 1px solid var(--qy-line); |
| 578 | border-radius: 20px; |
| 579 | background: color-mix(in srgb, var(--qy-bg-solid) 76%, transparent); |
| 580 | } |
| 581 | .qy-stat strong { |
| 582 | display: block; |
| 583 | font-size: clamp(28px, 4vw, 42px); |
| 584 | line-height: 1; |
| 585 | letter-spacing: -0.07em; |
| 586 | } |
| 587 | .qy-stat span { |
| 588 | display: block; |
| 589 | margin-top: 12px; |
| 590 | color: var(--qy-muted); |
| 591 | font-size: 13px; |
| 592 | line-height: 1.55; |
| 593 | } |
| 594 | .qy-feature-grid { |
| 595 | display: grid; |
| 596 | grid-template-columns: 1.1fr 0.9fr; |
| 597 | gap: 14px; |
| 598 | } |
| 599 | .qy-card { |
| 600 | position: relative; |
| 601 | overflow: hidden; |
| 602 | min-height: 260px; |
| 603 | padding: clamp(22px, 3vw, 30px); |
| 604 | border: 1px solid var(--qy-line); |
| 605 | border-radius: var(--qy-radius-lg); |
| 606 | background: var(--qy-card); |
| 607 | box-shadow: var(--qy-shadow-soft); |
| 608 | backdrop-filter: blur(24px) saturate(140%); |
| 609 | -webkit-backdrop-filter: blur(24px) saturate(140%); |
| 610 | } |
| 611 | .qy-card::after { |
| 612 | content: ""; |
| 613 | position: absolute; |
| 614 | inset: 0; |
| 615 | pointer-events: none; |
| 616 | background: linear-gradient(135deg, rgba(255, 255, 255, 0.28), transparent 42%); |
| 617 | opacity: 0.8; |
| 618 | } |
| 619 | .dark .qy-card::after, |
| 620 | .qy-home[data-qy-theme="dark"] .qy-card::after { |
| 621 | opacity: 0.22; |
| 622 | } |
| 623 | .qy-card-content { |
| 624 | position: relative; |
| 625 | z-index: 1; |
| 626 | } |
| 627 | .qy-card-label { |
| 628 | display: inline-flex; |
| 629 | align-items: center; |
| 630 | gap: 8px; |
| 631 | margin-bottom: 18px; |
| 632 | color: var(--qy-faint); |
| 633 | font-size: 11px; |
| 634 | font-weight: 800; |
| 635 | letter-spacing: 0.15em; |
| 636 | text-transform: uppercase; |
| 637 | } |
| 638 | .qy-card-label::before { |
| 639 | content: ""; |
| 640 | width: 22px; |
| 641 | height: 1px; |
| 642 | background: var(--qy-accent); |
| 643 | } |
| 644 | .qy-card h3 { |
| 645 | margin: 0; |
| 646 | font-size: clamp(22px, 3vw, 31px); |
| 647 | line-height: 1.12; |
| 648 | letter-spacing: -0.045em; |
| 649 | } |
| 650 | .qy-card p { |
| 651 | margin: 14px 0 0; |
| 652 | color: var(--qy-muted); |
| 653 | font-size: 14px; |
| 654 | line-height: 1.78; |
| 655 | } |
| 656 | .qy-model-cloud { |
| 657 | display: flex; |
| 658 | flex-wrap: wrap; |
| 659 | gap: 10px; |
| 660 | margin-top: 28px; |
| 661 | } |
| 662 | .qy-model-cloud span { |
| 663 | padding: 10px 13px; |
| 664 | border: 1px solid var(--qy-line); |
| 665 | border-radius: 999px; |
| 666 | background: rgba(255, 255, 255, 0.42); |
| 667 | color: var(--qy-muted); |
| 668 | font-size: 12px; |
| 669 | font-weight: 700; |
| 670 | } |
| 671 | .dark .qy-model-cloud span, |
| 672 | .qy-home[data-qy-theme="dark"] .qy-model-cloud span { |
| 673 | background: rgba(255, 255, 255, 0.045); |
| 674 | } |
| 675 | .qy-card-wide { |
| 676 | grid-column: span 2; |
| 677 | min-height: 220px; |
| 678 | background: |
| 679 | radial-gradient(circle at 84% 28%, rgba(116, 215, 223, 0.15), transparent 28%), |
| 680 | var(--qy-card); |
| 681 | } |
| 682 | .qy-orbit { |
| 683 | position: absolute; |
| 684 | right: clamp(20px, 5vw, 64px); |
| 685 | bottom: 26px; |
| 686 | width: 210px; |
| 687 | height: 150px; |
| 688 | opacity: 0.92; |
| 689 | } |
| 690 | .qy-orbit span { |
| 691 | position: absolute; |
| 692 | display: grid; |
| 693 | place-items: center; |
| 694 | border: 1px solid var(--qy-line); |
| 695 | border-radius: 999px; |
| 696 | background: var(--qy-bg-solid); |
| 697 | color: var(--qy-muted); |
| 698 | font-size: 11px; |
| 699 | font-weight: 760; |
| 700 | box-shadow: 0 12px 28px rgba(31, 42, 58, 0.08); |
| 701 | } |
| 702 | .qy-orbit span:nth-child(1) { inset: 10px auto auto 70px; width: 74px; height: 74px; color: var(--qy-primary-strong); } |
| 703 | .qy-orbit span:nth-child(2) { inset: 78px auto auto 8px; width: 56px; height: 56px; } |
| 704 | .qy-orbit span:nth-child(3) { inset: 84px 18px auto auto; width: 62px; height: 62px; } |
| 705 | .qy-orbit span:nth-child(4) { inset: 2px 0 auto auto; width: 44px; height: 44px; color: var(--qy-accent); } |
| 706 | .qy-steps { |
| 707 | display: grid; |
| 708 | grid-template-columns: repeat(3, 1fr); |
| 709 | gap: 14px; |
| 710 | } |
| 711 | .qy-step { |
| 712 | padding: 22px; |
| 713 | border: 1px solid var(--qy-line); |
| 714 | border-radius: var(--qy-radius-lg); |
| 715 | background: color-mix(in srgb, var(--qy-card) 84%, transparent); |
| 716 | backdrop-filter: blur(20px); |
| 717 | -webkit-backdrop-filter: blur(20px); |
| 718 | } |
| 719 | .qy-step-num { |
| 720 | display: inline-flex; |
| 721 | align-items: center; |
| 722 | justify-content: center; |
| 723 | width: 38px; |
| 724 | height: 38px; |
| 725 | margin-bottom: 22px; |
| 726 | border: 1px solid var(--qy-line-strong); |
| 727 | border-radius: 14px; |
| 728 | background: linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.24)); |
| 729 | color: var(--qy-primary-strong); |
| 730 | font-size: 13px; |
| 731 | font-weight: 840; |
| 732 | } |
| 733 | .dark .qy-step-num, |
| 734 | .qy-home[data-qy-theme="dark"] .qy-step-num { |
| 735 | background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035)); |
| 736 | } |
| 737 | .qy-step h3 { |
| 738 | margin: 0; |
| 739 | font-size: 18px; |
| 740 | letter-spacing: -0.03em; |
| 741 | } |
| 742 | .qy-step p { |
| 743 | margin: 10px 0 0; |
| 744 | color: var(--qy-muted); |
| 745 | font-size: 13px; |
| 746 | line-height: 1.75; |
| 747 | } |
| 748 | .qy-cta { |
| 749 | position: relative; |
| 750 | overflow: hidden; |
| 751 | display: grid; |
| 752 | grid-template-columns: minmax(0, 1fr) auto; |
| 753 | gap: 24px; |
| 754 | align-items: center; |
| 755 | padding: clamp(26px, 5vw, 42px); |
| 756 | border: 1px solid var(--qy-line); |
| 757 | border-radius: var(--qy-radius-xl); |
| 758 | background: |
| 759 | radial-gradient(circle at 76% 28%, rgba(116, 215, 223, 0.18), transparent 30%), |
| 760 | radial-gradient(circle at 20% 82%, rgba(199, 159, 98, 0.13), transparent 28%), |
| 761 | var(--qy-card-strong); |
| 762 | box-shadow: var(--qy-shadow); |
| 763 | backdrop-filter: blur(24px); |
| 764 | -webkit-backdrop-filter: blur(24px); |
| 765 | } |
| 766 | .qy-cta h2 { |
| 767 | margin: 0; |
| 768 | font-size: clamp(28px, 4vw, 46px); |
| 769 | line-height: 1.08; |
| 770 | letter-spacing: -0.055em; |
| 771 | } |
| 772 | .qy-cta p { |
| 773 | max-width: 570px; |
| 774 | margin: 14px 0 0; |
| 775 | color: var(--qy-muted); |
| 776 | font-size: 14px; |
| 777 | line-height: 1.8; |
| 778 | } |
| 779 | .qy-footer { |
| 780 | display: flex; |
| 781 | justify-content: space-between; |
| 782 | gap: 18px; |
| 783 | padding: 30px 0 6px; |
| 784 | color: var(--qy-faint); |
| 785 | font-size: 12px; |
| 786 | line-height: 1.8; |
| 787 | } |
| 788 | .qy-footer-links { |
| 789 | display: flex; |
| 790 | flex-wrap: wrap; |
| 791 | justify-content: flex-end; |
| 792 | gap: 12px; |
| 793 | } |
| 794 | .qy-footer a:hover { |
| 795 | color: var(--qy-text); |
| 796 | text-decoration: underline; |
| 797 | text-underline-offset: 4px; |
| 798 | } |
| 799 | @media (max-width: 920px) { |
| 800 | .qy-nav-links { display: none; } |
| 801 | .qy-hero { grid-template-columns: 1fr; } |
| 802 | .qy-console { max-width: 620px; } |
| 803 | .qy-section-head { align-items: start; flex-direction: column; } |
| 804 | .qy-stat-strip { grid-template-columns: repeat(2, 1fr); } |
| 805 | .qy-feature-grid { grid-template-columns: 1fr; } |
| 806 | .qy-card-wide { grid-column: auto; } |
| 807 | .qy-orbit { position: relative; right: auto; bottom: auto; margin-top: 24px; } |
| 808 | .qy-steps { grid-template-columns: 1fr; } |
| 809 | .qy-cta { grid-template-columns: 1fr; } |
| 810 | } |
| 811 | @media (max-width: 640px) { |
| 812 | .qy-shell { padding-inline: 14px; } |
| 813 | .qy-shell::before { inset-inline: -14px; border-radius: 34px; } |
| 814 | .qy-nav { border-radius: 24px; align-items: stretch; } |
| 815 | .qy-brand-sub { display: none; } |
| 816 | .qy-small-button { display: none; } |
| 817 | .qy-theme-toggle { width: 42px; padding: 0; justify-content: center; } |
| 818 | .qy-theme-toggle span { display: none; } |
| 819 | .qy-hero { padding-top: 82px; } |
| 820 | .qy-title { font-size: clamp(40px, 16vw, 62px); } |
| 821 | .qy-hero-actions { align-items: stretch; flex-direction: column; } |
| 822 | .qy-button-primary, .qy-button-ghost { width: 100%; } |
| 823 | .qy-metric-grid { grid-template-columns: 1fr; } |
| 824 | .qy-model-row { grid-template-columns: 82px minmax(0, 1fr); } |
| 825 | .qy-model-row small { display: none; } |
| 826 | .qy-stat-strip { grid-template-columns: 1fr; padding: 10px; } |
| 827 | .qy-card { min-height: auto; } |
| 828 | .qy-footer { flex-direction: column; } |
| 829 | .qy-footer-links { justify-content: flex-start; } |
| 830 | } |
| 831 | @media (prefers-reduced-motion: no-preference) { |
| 832 | .qy-fade-up { |
| 833 | animation: qyFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; |
| 834 | } |
| 835 | .qy-delay-1 { animation-delay: 0.08s; } |
| 836 | .qy-delay-2 { animation-delay: 0.16s; } |
| 837 | .qy-delay-3 { animation-delay: 0.24s; } |
| 838 | .qy-delay-4 { animation-delay: 0.32s; } |
| 839 | .qy-console { |
| 840 | animation: qyFloat 6s ease-in-out infinite; |
| 841 | } |
| 842 | } |
| 843 | @keyframes qyFadeUp { |
| 844 | from { opacity: 0; transform: translateY(18px); } |
| 845 | to { opacity: 1; transform: translateY(0); } |
| 846 | } |
| 847 | @keyframes qyFloat { |
| 848 | 0%, 100% { transform: translateY(0); } |
| 849 | 50% { transform: translateY(-8px); } |
| 850 | } |
| 851 | </style> |
| 852 | <div class="qy-shell"> |
| 853 | <section class="qy-hero" aria-labelledby="qy-hero-title"> |
| 854 | <div class="qy-hero-copy"> |
| 855 | <div class="qy-eyebrow qy-fade-up qy-delay-1"> |
| 856 | <span class="qy-pulse" aria-hidden="true"></span> |
| 857 | <span>轻量、稳定、面向未来的 AI 入口</span> |
| 858 | </div> |
| 859 | <h1 id="qy-hero-title" class="qy-title qy-fade-up qy-delay-2"> |
| 860 | 让每一次调用,<br><span class="qy-gradient-text">都清澈而高效。</span> |
| 861 | </h1> |
| 862 | <p class="qy-lede qy-fade-up qy-delay-3"> |
| 863 | 清羽AI 将模型接入、用量观测、密钥管理与 API 分发整理成一个优雅的工作台。少一点复杂配置,多一点稳定体验。 |
| 864 | </p> |
| 865 | <div class="qy-hero-actions qy-fade-up qy-delay-4"> |
| 866 | <a class="qy-button-primary" href="/dashboard">开始使用 <span aria-hidden="true">→</span></a> |
| 867 | <a class="qy-button-ghost" href="/pricing">浏览模型广场</a> |
| 868 | </div> |
| 869 | <div class="qy-trust-row qy-fade-up qy-delay-4" aria-label="平台能力摘要"> |
| 870 | <span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 多模型统一接入</span> |
| 871 | <span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 透明用量计费</span> |
| 872 | <span class="qy-trust-chip"><i class="qy-dot" aria-hidden="true"></i> 细粒度密钥管理</span> |
| 873 | </div> |
| 874 | </div> |
| 875 | <aside class="qy-console qy-fade-up qy-delay-3" aria-label="清羽AI 状态仪表盘示意"> |
| 876 | <div class="qy-console-inner"> |
| 877 | <div class="qy-console-top"> |
| 878 | <div class="qy-window-dots" aria-hidden="true"><span></span><span></span><span></span></div> |
| 879 | <div class="qy-status-pill"><i class="qy-live-dot" aria-hidden="true"></i> all systems refined</div> |
| 880 | </div> |
| 881 | <div class="qy-console-body"> |
| 882 | <div class="qy-metric-grid"> |
| 883 | <div class="qy-mini-metric"><span>Latency</span><strong>82ms</strong></div> |
| 884 | <div class="qy-mini-metric"><span>Uptime</span><strong>99.9%</strong></div> |
| 885 | <div class="qy-mini-metric"><span>Routes</span><strong>50+</strong></div> |
| 886 | </div> |
| 887 | <div class="qy-route-card"> |
| 888 | <div class="qy-route-head"> |
| 889 | <span>model routing</span> |
| 890 | <span>live</span> |
| 891 | </div> |
| 892 | <div class="qy-model-stack"> |
| 893 | <div class="qy-model-row"><strong>Claude</strong><span class="qy-bar"><i style="width: 86%"></i></span><small>86%</small></div> |
| 894 | <div class="qy-model-row"><strong>Gemini</strong><span class="qy-bar"><i style="width: 72%"></i></span><small>72%</small></div> |
| 895 | <div class="qy-model-row"><strong>DeepSeek</strong><span class="qy-bar"><i style="width: 64%"></i></span><small>64%</small></div> |
| 896 | <div class="qy-model-row"><strong>Qwen</strong><span class="qy-bar"><i style="width: 58%"></i></span><small>58%</small></div> |
| 897 | </div> |
| 898 | </div> |
| 899 | <div class="qy-code-card" aria-label="API 调用示例"> |
| 900 | <code><span class="qy-code-muted">POST</span> <span class="qy-code-key">/v1/chat/completions</span> |
| 901 | { |
| 902 | <span class="qy-code-key">"model"</span>: <span class="qy-code-string">"qingyu-auto"</span>, |
| 903 | <span class="qy-code-key">"stream"</span>: true, |
| 904 | <span class="qy-code-key">"quality"</span>: <span class="qy-code-string">"balanced"</span> |
| 905 | }</code> |
| 906 | </div> |
| 907 | </div> |
| 908 | </div> |
| 909 | </aside> |
| 910 | </section> |
| 911 | <section class="qy-section" aria-label="平台指标"> |
| 912 | <div class="qy-stat-strip"> |
| 913 | <div class="qy-stat"><strong>50+</strong><span>主流上游服务与模型渠道统一适配</span></div> |
| 914 | <div class="qy-stat"><strong>100+</strong><span>模型计费、限额与倍率策略灵活管理</span></div> |
| 915 | <div class="qy-stat"><strong>10+</strong><span>调度、监控、权限与审计能力协同工作</span></div> |
| 916 | <div class="qy-stat"><strong>24/7</strong><span>面向真实业务流量的稳定访问体验</span></div> |
| 917 | </div> |
| 918 | </section> |
| 919 | <section class="qy-section" aria-labelledby="qy-feature-title"> |
| 920 | <div class="qy-section-head"> |
| 921 | <div> |
| 922 | <p class="qy-section-kicker">core system</p> |
| 923 | <h2 id="qy-feature-title" class="qy-section-title">高级感来自秩序,而不是堆满元素。</h2> |
| 924 | </div> |
| 925 | <p class="qy-section-desc">清羽AI 把复杂能力收束成清晰界面:路由清楚、账单清楚、密钥清楚,团队与个人都能快速上手。</p> |
| 926 | </div> |
| 927 | <div class="qy-feature-grid"> |
| 928 | <article class="qy-card qy-card-wide"> |
| 929 | <div class="qy-card-content"> |
| 930 | <span class="qy-card-label">Unified Gateway</span> |
| 931 | <h3>一个入口,连接不同模型生态。</h3> |
| 932 | <p>兼容常见 API 工作流,让应用无需频繁改造就能在多个模型之间切换、降级与调度。</p> |
| 933 | <div class="qy-model-cloud" aria-label="支持模型示例"> |
| 934 | <span>OpenAI</span><span>Claude</span><span>Gemini</span><span>DeepSeek</span><span>Qwen</span><span>Llama</span> |
| 935 | </div> |
| 936 | </div> |
| 937 | <div class="qy-orbit" aria-hidden="true"><span>API</span><span>Key</span><span>Log</span><span>AI</span></div> |
| 938 | </article> |
| 939 | <article class="qy-card"> |
| 940 | <div class="qy-card-content"> |
| 941 | <span class="qy-card-label">Cost Clarity</span> |
| 942 | <h3>用量与成本,不再藏在黑箱里。</h3> |
| 943 | <p>通过清晰的消耗记录、倍率配置和额度控制,让每一次请求都可追踪、可理解、可优化。</p> |
| 944 | </div> |
| 945 | </article> |
| 946 | <article class="qy-card"> |
| 947 | <div class="qy-card-content"> |
| 948 | <span class="qy-card-label">Access Control</span> |
| 949 | <h3>密钥、权限与团队协作保持克制有序。</h3> |
| 950 | <p>为个人项目保留轻量体验,也为多人协作准备权限边界、访问限制与安全策略。</p> |
| 951 | </div> |
| 952 | </article> |
| 953 | </div> |
| 954 | </section> |
| 955 | <section class="qy-section" aria-labelledby="qy-flow-title"> |
| 956 | <div class="qy-section-head"> |
| 957 | <div> |
| 958 | <p class="qy-section-kicker">workflow</p> |
| 959 | <h2 id="qy-flow-title" class="qy-section-title">三步建立自己的 AI 工作流。</h2> |
| 960 | </div> |
| 961 | </div> |
| 962 | <div class="qy-steps"> |
| 963 | <article class="qy-step"> |
| 964 | <span class="qy-step-num">01</span> |
| 965 | <h3>接入渠道</h3> |
| 966 | <p>添加上游模型服务,配置密钥、倍率与可用范围,建立统一的模型资源池。</p> |
| 967 | </article> |
| 968 | <article class="qy-step"> |
| 969 | <span class="qy-step-num">02</span> |
| 970 | <h3>分发请求</h3> |
| 971 | <p>使用统一 API 入口连接你的应用,让模型调用、路由切换和策略调整更加平滑。</p> |
| 972 | </article> |
| 973 | <article class="qy-step"> |
| 974 | <span class="qy-step-num">03</span> |
| 975 | <h3>观察优化</h3> |
| 976 | <p>通过用量、延迟与成本数据持续调整策略,获得更稳定也更经济的调用体验。</p> |
| 977 | </article> |
| 978 | </div> |
| 979 | </section> |
| 980 | <section class="qy-section" aria-label="开始使用清羽AI"> |
| 981 | <div class="qy-cta"> |
| 982 | <div> |
| 983 | <h2>把复杂留给系统,把清爽留给使用者。</h2> |
| 984 | <p>清羽AI 适合个人开发者、轻量团队与 AI 应用探索者。它不追求喧闹,而是把每个必要能力打磨得足够清晰。</p> |
| 985 | </div> |
| 986 | <a class="qy-button-primary" href="/dashboard">进入清羽AI <span aria-hidden="true">→</span></a> |
| 987 | </div> |
| 988 | </section> |
| 989 | <footer class="qy-footer"> |
| 990 | <div> |
| 991 | <strong>清羽AI</strong><br> |
| 992 | <span>© 2026 清羽飞扬。保留所有权利。</span> |
| 993 | </div> |
| 994 | <div class="qy-footer-links"> |
| 995 | <a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer">陕ICP备2024028531号</a> |
| 996 | <a href="https://beian.gov.cn/portal/registerSystemInfo?recordcode=61011602000637" target="_blank" rel="noopener noreferrer">陕公网安备61011602000637号</a> |
| 997 | </div> |
| 998 | </footer> |
| 999 | </div> |
| 1000 | <script> |
| 1001 | (() => { |
| 1002 | const root = document.currentScript.closest('.qy-home'); |
| 1003 | if (!root) return; |
| 1004 | const storageKey = 'qingyu-ai-theme'; |
| 1005 | const applyTheme = (theme) => { |
| 1006 | root.setAttribute('data-qy-theme', theme); |
| 1007 | if (theme === 'dark') document.documentElement.classList.add('dark'); |
| 1008 | if (theme === 'light') document.documentElement.classList.remove('dark'); |
| 1009 | }; |
| 1010 | const saved = localStorage.getItem(storageKey); |
| 1011 | const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; |
| 1012 | applyTheme(saved || (prefersDark ? 'dark' : 'light')); |
| 1013 | })(); |
| 1014 | </script> |
| 1015 | </div> |
| 1016 |