Files
haiyushuke-website/src/styles/components.css
2026-06-19 11:29:38 +08:00

2922 lines
69 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Light-surface components only.
*/
@layer components {
.btn-primary {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--spacing-sm);
font-family: var(--font-display);
font-size: 14px;
font-weight: 500;
line-height: 1.2;
letter-spacing: 0.05em;
color: var(--color-on-primary);
background-color: var(--color-accent-ink);
border: none;
border-radius: var(--radius-md);
padding: 11px var(--spacing-2xl);
min-height: 42px;
box-shadow: var(--shadow-button);
cursor: pointer;
transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}
.btn-primary:hover {
transform: translateY(-1px);
box-shadow: var(--shadow-button-hover);
background-color: var(--color-accent-ink);
}
.btn-primary:active {
transform: translateY(0);
box-shadow: 0 1px 2px rgb(38 112 232 / 0.14);
background-color: var(--color-accent-ink);
}
@media (width < 479px) {
.btn-primary {
min-height: 44px;
}
}
.btn-outline {
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--font-display);
font-size: 14px;
font-weight: 500;
line-height: 1.2;
letter-spacing: 0.05em;
color: var(--color-accent-ink);
background-color: var(--color-canvas);
border: none;
border-radius: var(--radius-md);
padding: 10px var(--spacing-2xl);
min-height: 42px;
box-shadow: var(--shadow-field);
cursor: pointer;
transition:
background-color 0.2s ease,
box-shadow 0.2s ease,
color 0.2s ease,
transform 0.2s ease;
}
.btn-outline:hover {
background-color: var(--color-accent-wash);
box-shadow: var(--shadow-surface);
transform: translateY(-1px);
}
.btn-ghost {
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--font-display);
font-size: 14px;
font-weight: 500;
line-height: 1.2;
letter-spacing: 0.04em;
color: var(--color-accent-soft);
background: transparent;
border: none;
border-radius: var(--radius-md);
padding: 10px var(--spacing-lg);
min-height: 40px;
cursor: pointer;
transition:
background-color 0.2s ease,
color 0.2s ease;
}
.btn-ghost:hover {
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
}
@media (prefers-reduced-motion: reduce) {
.btn-primary:hover,
.btn-outline:hover {
transform: none;
}
}
.card-on-light {
border-radius: var(--radius-md);
padding: var(--spacing-2xl);
background-color: var(--color-canvas);
color: var(--color-ink);
border: none;
box-shadow: var(--shadow-surface);
transition: box-shadow 0.2s ease;
}
.card-on-light:hover {
box-shadow: var(--shadow-surface-hover);
}
.panel-on-light {
border-radius: var(--radius-sm);
border: none;
background-color: var(--color-canvas);
box-shadow: var(--shadow-surface);
}
.stat-tile {
border-radius: var(--radius-sm);
padding: var(--spacing-3xl);
background-color: var(--color-canvas);
color: var(--color-ink);
border: none;
box-shadow: var(--shadow-surface);
}
.code-panel {
border-radius: var(--radius-sm);
padding: var(--spacing-2xl);
background-color: var(--color-canvas-muted);
color: var(--color-ink-soft);
border: none;
box-shadow: var(--shadow-field);
font-family: var(--font-mono-caps);
font-size: 12px;
line-height: 1.7;
}
.input-text {
@apply type-body-md w-full;
background-color: var(--color-canvas);
color: var(--color-ink);
border: none;
border-radius: var(--radius-md);
padding: var(--spacing-md) var(--spacing-lg);
box-shadow: var(--shadow-field);
transition: box-shadow 0.2s ease;
}
.input-text:focus {
outline: none;
box-shadow: var(--shadow-field-focus);
}
.badge-neutral {
@apply type-caption-strong inline-flex items-center;
background-color: var(--color-accent-wash);
color: var(--color-accent);
border: none;
border-radius: var(--radius-sm);
padding: var(--spacing-xxs) var(--spacing-sm);
}
.contact-layout {
display: grid;
gap: var(--spacing-xl);
align-items: stretch;
}
@media (width >= 992px) {
.contact-layout {
grid-template-columns: minmax(0, 1.2fr) minmax(280px, 360px);
gap: var(--spacing-2xl);
}
}
.contact-channels {
display: grid;
gap: var(--spacing-lg);
margin: 0;
padding: 0;
list-style: none;
}
@media (width >= 640px) {
.contact-channels {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (width >= 992px) {
.contact-channels {
grid-template-columns: 1fr;
}
}
.contact-channels__item {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
min-width: 0;
}
.contact-channels__item.card-on-light:hover {
box-shadow: var(--shadow-surface-hover);
}
.contact-business {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
min-width: 0;
padding: var(--spacing-lg);
}
.contact-business__eyebrow {
margin: 0;
color: var(--color-accent);
}
.contact-business__panel {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--spacing-md);
padding: var(--spacing-xl) var(--spacing-lg);
border-radius: var(--radius-md);
background: linear-gradient(
165deg,
rgb(22 32 48) 0%,
rgb(14 22 34) 100%
);
color: rgb(248 250 252);
text-align: center;
box-shadow: var(--shadow-surface-hover);
}
.contact-business__title {
margin: 0;
font-size: 1.125rem;
letter-spacing: 0.04em;
}
.contact-business__lead {
margin: 0;
color: rgb(203 213 225);
line-height: 1.65;
max-width: 16rem;
}
.contact-business__qr-wrap {
padding: var(--spacing-sm);
border-radius: var(--radius-sm);
background-color: rgb(255 255 255);
line-height: 0;
}
.contact-business__qr {
width: 200px;
height: auto;
max-width: 100%;
}
.contact-business__phone {
display: inline-flex;
align-items: center;
gap: var(--spacing-sm);
margin-top: var(--spacing-xs);
color: rgb(94 234 212);
}
.contact-business__phone:hover {
color: rgb(153 246 228);
}
.contact-business__phone-icon {
font-size: 1rem;
line-height: 1;
}
.page-hero__back {
transition: color 0.15s ease;
}
.page-hero__back:hover {
color: var(--color-ink);
}
.page-hero__copy {
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
width: 100%;
max-width: var(--width-container);
min-width: 0;
}
.page-hero__eyebrow {
display: inline-flex;
width: fit-content;
max-width: 100%;
}
.page-hero__title {
margin: 0;
max-width: 20em;
text-wrap: wrap;
word-break: normal;
overflow-wrap: break-word;
white-space: normal;
}
.page-hero__lead {
margin: 0;
max-width: 42rem;
text-wrap: wrap;
word-break: normal;
overflow-wrap: break-word;
white-space: normal;
}
.solution-card-grid {
display: grid;
gap: var(--spacing-xl);
grid-template-columns: minmax(0, 1fr);
}
@media (width >= 640px) {
.solution-card-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (width >= 1180px) {
.solution-card-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
.solution-card.card-on-light {
display: flex;
flex-direction: column;
gap: 0;
overflow: hidden;
padding: 0;
}
.solution-card__media {
position: relative;
display: block;
aspect-ratio: 16 / 9;
width: 100%;
overflow: hidden;
background-color: var(--color-canvas-muted);
}
.solution-card__image {
object-fit: cover;
transition: transform 0.3s ease;
}
.solution-card:hover .solution-card__image {
transform: scale(1.018);
}
.solution-card__body {
display: flex;
flex: 1;
flex-direction: column;
gap: var(--spacing-md);
padding: var(--spacing-xl);
min-width: 0;
}
.solution-card__title {
margin: 0;
}
.solution-card__title a {
color: inherit;
text-decoration: none;
}
.solution-card__title a:hover {
color: var(--color-accent-ink);
text-decoration: none;
}
.solution-card__lead {
flex: 1;
margin: 0;
}
.solution-card__tags {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-xs);
margin: 0;
padding: 0;
list-style: none;
}
.solution-card__tags li {
border-radius: var(--radius-sm);
background-color: var(--color-canvas-muted);
color: var(--color-accent-soft);
font-size: 12px;
line-height: 1;
padding: 6px var(--spacing-sm);
}
.solution-card__link {
align-self: flex-start;
color: var(--color-accent-ink);
font-size: 14px;
font-weight: 500;
text-decoration: none;
}
.solution-card__link:hover {
text-decoration: underline;
}
.solution-detail-page {
display: flex;
flex-direction: column;
}
.solution-detail-hero__layout {
display: grid;
gap: var(--spacing-4xl);
align-items: center;
}
@media (width >= 992px) {
.solution-detail-hero__layout {
grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
}
}
.solution-detail-hero__copy {
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
min-width: 0;
}
.solution-detail-hero__title {
margin: 0;
max-width: 14em;
}
.solution-detail-hero__summary {
margin: 0;
max-width: 40rem;
}
.solution-detail-hero__actions {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-md);
margin-top: var(--spacing-sm);
}
.solution-detail-visual {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
min-width: 0;
}
.solution-detail-visual__image {
position: relative;
aspect-ratio: 16 / 9;
width: 100%;
overflow: hidden;
border-radius: var(--radius-md);
background-color: var(--color-canvas-muted);
box-shadow: var(--shadow-surface-hover);
}
.solution-detail-visual__img {
object-fit: cover;
}
.solution-detail-stats {
display: grid;
gap: var(--spacing-md);
grid-template-columns: repeat(3, minmax(0, 1fr));
margin: 0;
}
@media (width < 640px) {
.solution-detail-stats {
grid-template-columns: 1fr;
}
}
.solution-detail-stat {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
padding: var(--spacing-lg);
border-radius: var(--radius-md);
background-color: var(--color-canvas);
box-shadow: var(--shadow-field);
min-width: 0;
}
.solution-detail-stat dt {
color: var(--color-body-light);
font-size: 12px;
line-height: 1.2;
}
.solution-detail-stat dd {
margin: 0;
color: var(--color-ink);
font-family: var(--font-display);
font-size: 24px;
font-weight: 600;
line-height: 1.1;
}
.solution-workflow {
display: grid;
gap: var(--spacing-md);
grid-template-columns: minmax(0, 1fr);
margin: 0;
padding: 0;
list-style: none;
}
@media (width >= 768px) {
.solution-workflow {
grid-template-columns: repeat(5, minmax(0, 1fr));
}
}
.solution-workflow__item {
position: relative;
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
min-height: 120px;
padding: var(--spacing-xl);
border-radius: var(--radius-md);
background-color: var(--color-canvas);
box-shadow: var(--shadow-field);
}
.solution-workflow__no {
color: var(--color-accent-ink);
font-family: var(--font-mono-caps);
font-size: 12px;
letter-spacing: 0.06em;
}
.solution-workflow__label {
color: var(--color-ink);
font-family: var(--font-display);
font-size: 16px;
font-weight: 500;
line-height: 1.35;
}
.solution-capability-grid {
display: grid;
gap: var(--spacing-xl);
grid-template-columns: minmax(0, 1fr);
}
@media (width >= 768px) {
.solution-capability-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.solution-capability {
min-height: 172px;
}
.solution-capability h3,
.solution-capability p {
margin: 0;
}
.solution-detail-columns {
display: grid;
gap: var(--spacing-xl);
align-items: stretch;
grid-template-columns: minmax(0, 1fr);
}
@media (width >= 900px) {
.solution-detail-columns {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.solution-detail-columns:has(.solution-note) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
.solution-list-panel,
.solution-note {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
padding: var(--spacing-2xl);
border-radius: var(--radius-md);
background-color: var(--color-canvas);
box-shadow: var(--shadow-surface);
min-width: 0;
}
.solution-list-panel h2,
.solution-note p {
margin: 0;
}
.solution-list-panel ul {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
margin: 0;
padding: 0;
list-style: none;
}
.solution-list-panel li {
position: relative;
padding-left: var(--spacing-lg);
color: var(--color-body);
font-size: 15px;
line-height: 1.55;
}
.solution-list-panel li::before {
position: absolute;
top: 0.62em;
left: 0;
width: 6px;
height: 6px;
border-radius: var(--radius-full);
background-color: var(--color-accent-ink);
content: "";
}
.solution-note {
background-color: var(--color-accent-wash);
}
.solution-note p:last-child {
color: var(--color-body);
font-size: 14px;
line-height: 1.7;
}
.news-list-card {
transition: box-shadow 0.2s ease;
}
.news-list-card:hover {
box-shadow: var(--shadow-surface-hover);
}
.news-list-card__media-link {
flex-shrink: 0;
}
.news-list-card:not(.news-list-card--primary):not(.news-list-card--secondary)
.news-list-card__media-link {
aspect-ratio: 16 / 9;
width: 100%;
}
.news-list-card:not(.news-list-card--primary):not(.news-list-card--secondary)
.news-list-card__body {
gap: var(--spacing-md);
padding: var(--spacing-lg) var(--spacing-2xl) var(--spacing-2xl);
}
.news-home-preview {
display: grid;
gap: var(--spacing-lg);
width: 100%;
}
.news-home-preview .news-list-card.card-on-light {
padding: 0;
}
.news-home-preview .news-list-card__media-link {
background-color: transparent;
border-radius: 0;
}
@media (width >= 768px) {
.news-home-preview {
grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
align-items: stretch;
gap: var(--spacing-md);
}
}
.news-home-preview__side {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
min-width: 0;
}
@media (width >= 768px) {
.news-home-preview__side {
height: 100%;
min-height: 0;
}
.news-home-preview__side > .news-list-card--secondary {
flex: 1 1 0;
min-height: 0;
}
}
@media (width >= 768px) {
.news-home-preview > .news-list-card--primary {
height: 100%;
}
}
.news-list-card--primary .news-list-card__media-link {
flex: 0 0 auto;
aspect-ratio: 16 / 10;
width: 100%;
height: auto;
max-height: none;
}
.news-list-card--primary .news-list-card__body {
flex: 1 1 auto;
min-height: 0;
padding: var(--spacing-md) var(--spacing-xl) var(--spacing-xl);
}
.news-list-card--primary .news-list-card__summary--clamp {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
margin: 0;
line-height: 1.6;
}
.news-list-card--secondary {
flex-direction: row;
align-items: stretch;
min-height: 0;
}
.news-list-card--secondary .news-list-card__media-link {
position: relative;
flex: 0 0 34%;
width: auto;
max-width: 148px;
min-width: 96px;
aspect-ratio: unset;
height: auto;
align-self: stretch;
min-height: 100%;
}
@media (width >= 480px) {
.news-list-card--secondary .news-list-card__media-link {
flex-basis: 38%;
max-width: 160px;
min-width: 108px;
}
}
.news-list-card--secondary .news-list-card__body {
flex: 1;
min-width: 0;
justify-content: center;
padding: var(--spacing-md) var(--spacing-lg) var(--spacing-md)
var(--spacing-md);
}
.news-list-card--secondary .news-list-card__title--compact {
margin: 0;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.news-list-card--secondary .news-list-card__foot {
margin-top: auto;
}
.news-detail-layout {
width: 100%;
}
.news-detail-cover {
position: relative;
width: 100%;
max-width: 100%;
min-width: 0;
overflow: hidden;
border-radius: var(--radius-md);
background-color: var(--color-canvas-muted);
box-shadow: var(--shadow-surface-hover);
aspect-ratio: 16 / 9;
min-height: 200px;
}
@media (width >= 768px) {
.news-detail-cover {
aspect-ratio: 21 / 9;
min-height: 320px;
}
}
@media (width >= 992px) {
.news-detail-cover {
aspect-ratio: 2.4 / 1;
min-height: 420px;
}
}
.models-square-grid {
display: grid;
gap: var(--spacing-xl);
grid-template-columns: minmax(0, 1fr);
width: 100%;
}
@media (width >= 768px) {
.models-square-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (width >= 992px) {
.models-square-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
.models-square-item {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
min-width: 0;
width: 100%;
}
.models-square-item__meta {
margin: 0;
white-space: normal;
word-break: normal;
}
.models-square-filters__chip {
@apply type-caption-strong;
white-space: nowrap;
padding: var(--spacing-xs) var(--spacing-md);
border-radius: var(--radius-full);
border: none;
background-color: var(--color-canvas);
color: var(--color-body);
box-shadow: var(--shadow-field);
cursor: pointer;
transition:
background-color 0.15s ease,
color 0.15s ease,
box-shadow 0.15s ease;
}
.models-square-filters__chip:hover {
color: var(--color-ink);
box-shadow: var(--shadow-surface);
}
.models-square-filters__chip.is-active {
background-color: var(--color-accent-wash);
color: var(--color-accent);
box-shadow: var(--shadow-surface);
}
.article-prose {
width: 100%;
max-width: 42rem;
min-width: 0;
padding-bottom: var(--spacing-2xl);
}
.model-library-card {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
min-width: 0;
overflow: hidden;
border-radius: var(--radius-md);
padding: var(--spacing-2xl);
background-color: var(--color-canvas);
border: none;
box-shadow: var(--shadow-surface);
gap: var(--spacing-lg);
writing-mode: horizontal-tb;
text-orientation: mixed;
}
.model-library-card__corner-badge {
position: absolute;
top: 14px;
right: -32px;
z-index: 2;
width: 104px;
padding: 4px 0;
font-size: 11px;
font-weight: 600;
line-height: 1.2;
letter-spacing: 0.06em;
text-align: center;
pointer-events: none;
transform: rotate(42deg);
transform-origin: center center;
box-shadow: 0 2px 6px rgb(0 0 0 / 0.12);
}
.model-library-card__corner-badge--tem {
color: var(--color-on-primary);
background: linear-gradient(
135deg,
var(--color-primary) 0%,
var(--color-accent-ink-hover) 100%
);
box-shadow: 0 2px 8px rgb(38 112 232 / 0.35);
}
.model-library-card__corner-badge--deal {
color: #fff;
background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
box-shadow: 0 2px 8px rgb(234 88 12 / 0.35);
}
.model-marquee-stack {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
width: 100%;
margin-top: var(--spacing-sm);
}
.model-marquee {
width: 100%;
}
.model-marquee__viewport {
overflow: hidden;
width: 100%;
mask-image: linear-gradient(
90deg,
transparent 0%,
#000 6%,
#000 94%,
transparent 100%
);
}
.model-marquee__track {
display: flex;
width: max-content;
will-change: transform;
}
.model-marquee--left .model-marquee__track {
animation: model-marquee-left 48s linear infinite;
}
.model-marquee--right .model-marquee__track {
animation: model-marquee-right 52s linear infinite;
}
.model-marquee__group {
display: flex;
flex-shrink: 0;
align-items: center;
gap: var(--spacing-lg);
margin: 0;
padding: var(--spacing-sm) var(--spacing-md);
list-style: none;
}
.model-marquee__chip {
display: inline-flex;
flex-shrink: 0;
align-items: center;
gap: var(--spacing-sm);
padding: var(--spacing-sm) var(--spacing-md);
border-radius: var(--radius-full);
background-color: var(--color-canvas);
border: 1px solid var(--color-border-light);
box-shadow: var(--shadow-field);
}
.model-marquee__icon {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
border-radius: var(--radius-full);
background-color: var(--color-canvas-muted);
overflow: hidden;
}
.model-marquee__logo {
width: 22px;
height: 22px;
object-fit: contain;
}
.model-marquee__icon-fallback {
width: 12px;
height: 12px;
border-radius: 3px;
background: conic-gradient(
from 200deg,
rgb(59 158 255),
rgb(52 211 153),
rgb(167 139 250),
rgb(59 158 255)
);
}
.model-marquee__name {
max-width: 14rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.model-library-card__head {
display: flex;
flex-direction: row;
align-items: center;
gap: var(--spacing-md);
min-width: 0;
}
.model-library-card__title {
flex: 1;
min-width: 0;
margin: 0;
word-break: normal;
overflow-wrap: break-word;
white-space: normal;
}
.model-library-card__icon {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: var(--radius-full);
background-color: var(--color-canvas-muted);
border: none;
box-shadow: var(--shadow-field);
overflow: hidden;
}
.model-library-card__logo {
width: 28px;
height: 28px;
object-fit: contain;
}
.model-library-card__tag--featured {
background-color: rgb(74 101 130 / 0.12);
color: var(--color-accent-ink);
}
.model-library-card__icon-mark {
width: 14px;
height: 14px;
border-radius: 3px;
background: conic-gradient(
from 200deg,
rgb(59 158 255),
rgb(52 211 153),
rgb(167 139 250),
rgb(251 113 133),
rgb(59 158 255)
);
}
.model-library-card__desc {
margin: 0;
line-height: 1.75;
min-width: 0;
white-space: normal;
word-break: normal;
overflow-wrap: break-word;
}
.model-library-card__tags {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
margin: 0;
padding: 0;
list-style: none;
}
.model-library-card__tag {
@apply type-caption-strong inline-flex items-center;
padding: var(--spacing-xxs) var(--spacing-sm);
border-radius: var(--radius-sm);
background-color: var(--color-accent-wash);
color: var(--color-accent);
border: none;
}
.model-library-card__meta {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: var(--spacing-lg);
padding-top: var(--spacing-lg);
margin-top: var(--spacing-xs);
width: 100%;
}
@media (width >= 480px) {
.model-library-card__meta {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.model-library-card__meta-cell {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
min-width: 0;
white-space: normal;
word-break: normal;
}
.model-library-card__meta-cell .type-body-md-strong {
white-space: normal;
word-break: normal;
overflow-wrap: break-word;
}
.model-library-card__meta-value {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: var(--spacing-sm);
margin: 0;
min-width: 0;
}
.model-library-card__meta-bar {
flex-shrink: 0;
width: 10px;
height: 3px;
border-radius: var(--radius-xs);
background-color: var(--color-nav-axis);
}
.agent-pillar-tile {
border-radius: var(--radius-sm);
padding: var(--spacing-2xl);
background: linear-gradient(
145deg,
rgb(158 178 212 / 0.1),
rgb(158 178 212 / 0.04)
);
border: none;
color: var(--color-ink);
box-shadow: var(--shadow-surface);
}
.agent-skill-agents {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
margin: 0;
padding: 0;
list-style: none;
}
.agent-skill-agents__chip {
@apply type-caption-strong;
display: inline-flex;
align-items: center;
padding: var(--spacing-xs) var(--spacing-md);
border-radius: var(--radius-full);
background-color: var(--color-canvas);
color: var(--color-accent-ink);
box-shadow: var(--shadow-field);
}
.agent-skill-soon-banner {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--spacing-md);
margin: 0 0 var(--spacing-xl);
padding: var(--spacing-md) var(--spacing-lg);
border-radius: var(--radius-sm);
background: linear-gradient(
90deg,
rgb(158 178 212 / 0.2) 0%,
rgb(91 142 196 / 0.12) 100%
);
box-shadow: var(--shadow-field);
}
.agent-skill-soon-banner__label {
@apply type-caption-strong;
flex-shrink: 0;
padding: var(--spacing-xxs) var(--spacing-sm);
border-radius: var(--radius-sm);
background-color: var(--color-accent-wash);
color: var(--color-accent);
}
.agent-skill-soon-banner__text {
margin: 0;
flex: 1;
min-width: 12rem;
}
.btn-primary--coming-soon {
cursor: not-allowed;
opacity: 0.72;
transform: none !important;
box-shadow: var(--shadow-soft) !important;
gap: var(--spacing-sm);
}
.btn-primary--coming-soon:hover {
transform: none;
box-shadow: var(--shadow-soft) !important;
}
.btn-primary__soon-tag {
@apply type-caption-strong;
padding: 2px var(--spacing-sm);
border-radius: var(--radius-xs);
background-color: rgb(255 255 255 / 0.22);
color: inherit;
letter-spacing: 0.06em;
}
.agent-main-panel {
border-radius: var(--radius-md);
border: none;
background-color: var(--color-canvas);
padding: var(--spacing-2xl);
box-shadow: var(--shadow-surface-hover);
}
.agent-main-panel--soon {
position: relative;
}
@media (width >= 992px) {
.agent-main-panel {
padding: var(--spacing-3xl);
}
}
.agent-main-panel__grid {
display: grid;
gap: var(--spacing-3xl);
align-items: stretch;
}
@media (width >= 992px) {
.agent-main-panel__grid {
grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
gap: var(--spacing-3xl);
}
}
.agent-main-panel__copy {
display: flex;
flex-direction: column;
justify-content: space-between;
gap: var(--spacing-2xl);
min-height: 100%;
}
.agent-main-panel__visual {
display: flex;
flex-direction: column;
justify-content: center;
min-height: 100%;
}
.agent-capability-list {
margin: 0;
padding: 0;
list-style: none;
display: grid;
gap: var(--spacing-lg);
}
@media (width >= 768px) {
.agent-capability-list {
grid-template-columns: 1fr 1fr;
gap: var(--spacing-xl) var(--spacing-2xl);
}
}
.agent-capability-list__item {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.agent-flow-visual {
margin: 0;
padding: 0;
list-style: none;
display: grid;
grid-template-columns: 1fr;
gap: var(--spacing-lg);
height: 100%;
align-content: center;
}
@media (width >= 768px) {
.agent-flow-visual {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: var(--spacing-md);
}
}
.agent-flow-visual__step {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
min-width: 0;
}
@media (width >= 768px) {
.agent-flow-visual__step:not(:last-child) {
padding-right: var(--spacing-md);
}
}
.agent-flow-visual__caption {
display: flex;
flex-direction: column;
gap: 2px;
padding-inline: 2px;
}
.agent-mock-screen {
flex: 1;
border-radius: var(--radius-sm);
border: none;
background-color: var(--color-canvas-muted);
overflow: hidden;
box-shadow: var(--shadow-field);
}
.agent-mock-screen__chrome {
display: flex;
align-items: center;
gap: 5px;
padding: var(--spacing-xs) var(--spacing-sm);
background-color: var(--color-canvas);
border-bottom: none;
}
.agent-mock-screen__dot {
width: 6px;
height: 6px;
border-radius: var(--radius-full);
background-color: var(--color-hairline);
}
.agent-mock-screen__title {
margin-left: auto;
color: var(--color-body-light);
max-width: 55%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.agent-mock-screen__body {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
padding: var(--spacing-md);
min-height: 72px;
}
.agent-mock-screen__lines {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: auto;
}
.agent-mock-screen__lines span {
display: block;
height: 6px;
border-radius: var(--radius-xs);
background-color: rgb(228 232 238 / 0.9);
border: none;
}
.report-scenario-card {
position: relative;
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
border-radius: var(--radius-md);
padding: var(--spacing-2xl);
padding-left: calc(var(--spacing-2xl) + 6px);
background-color: var(--color-canvas);
color: var(--color-ink);
border: none;
box-shadow: var(--shadow-surface);
transition: box-shadow 0.2s ease;
}
.report-scenario-card::before {
content: "";
position: absolute;
left: 0;
top: var(--spacing-2xl);
bottom: var(--spacing-2xl);
width: 3px;
border-radius: 0 var(--radius-xs) var(--radius-xs) 0;
background: linear-gradient(
180deg,
var(--color-nav-axis),
rgb(158 178 212 / 0.25)
);
}
.report-scenario-card:hover {
box-shadow: var(--shadow-surface-hover);
}
.report-scenario-card__head {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--spacing-md);
}
.report-scenario-card__index {
font-family: var(--font-mono-caps);
font-size: 11px;
font-weight: 500;
line-height: 1;
letter-spacing: 0.08em;
color: var(--color-body-light);
}
.report-scenario-card__cta {
margin-top: auto;
padding-top: var(--spacing-lg);
}
.report-example-overlay {
position: fixed;
inset: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: center;
padding: var(--spacing-lg);
background-color: rgb(20 20 20 / 0.32);
}
.report-example-dialog {
max-width: min(680px, 100%);
width: 100%;
max-height: min(85vh, 720px);
border: none;
border-radius: var(--radius-md);
background-color: var(--color-canvas-elevated);
color: var(--color-ink);
box-shadow: 0 16px 48px rgb(30 45 65 / 0.18);
}
.report-example-dialog__inner {
display: flex;
max-height: min(85vh, 720px);
flex-direction: column;
gap: 0;
}
.report-example-dialog__header {
flex-shrink: 0;
padding: var(--spacing-2xl);
padding-bottom: var(--spacing-xl);
background-color: var(--color-canvas-muted);
border-bottom: none;
}
.report-example-dialog__body {
overflow-y: auto;
padding: var(--spacing-2xl);
padding-right: calc(var(--spacing-2xl) - var(--spacing-xs));
}
.report-example-dialog__footer {
flex-shrink: 0;
display: flex;
justify-content: flex-end;
padding: var(--spacing-xl) var(--spacing-2xl);
border-top: none;
background-color: var(--color-canvas-muted);
}
.report-example-section {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
padding-block: var(--spacing-xl);
border-top: none;
}
.report-example-section:first-child {
padding-top: 0;
}
.report-example-section:last-child {
padding-bottom: 0;
}
.report-example-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
}
.report-example-list li {
position: relative;
padding-left: var(--spacing-lg);
font-family: var(--font-display);
font-size: 16px;
line-height: 1.75;
letter-spacing: 0.02em;
color: var(--color-body);
}
.report-example-list li::before {
content: "";
position: absolute;
left: 0;
top: 0.72em;
width: 5px;
height: 5px;
border-radius: var(--radius-full);
background-color: var(--color-nav-axis);
}
.report-example-list li:nth-child(4n + 1)::before {
background-color: rgb(59 158 255);
}
.report-example-list li:nth-child(4n + 2)::before {
background-color: rgb(52 211 153);
}
.report-example-list li:nth-child(4n + 3)::before {
background-color: rgb(167 139 250);
}
.report-example-list li:nth-child(4n)::before {
background-color: rgb(251 113 133);
}
.nav-float {
position: fixed;
top: var(--spacing-md);
left: 0;
right: 0;
z-index: 50;
box-sizing: border-box;
width: 100%;
padding-inline: var(--spacing-md);
pointer-events: none;
transition:
top 0.38s cubic-bezier(0.22, 1, 0.36, 1),
padding-inline 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (width >= 768px) {
.nav-float {
top: var(--spacing-lg);
padding-inline: var(--spacing-2xl);
}
}
.nav-float--docked {
top: 0;
padding-inline: 0;
}
.nav-float-stack {
display: flex;
flex-direction: column;
gap: 8px;
width: 100%;
pointer-events: auto;
}
.nav-float-rail {
position: relative;
display: flex;
align-items: stretch;
gap: 6px;
width: 100%;
max-width: none;
transition:
gap 0.38s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1),
border-radius 0.38s cubic-bezier(0.22, 1, 0.36, 1),
background-color 0.38s ease;
}
@media (width >= 768px) {
.nav-float-rail {
gap: 8px;
}
}
.nav-float--docked .nav-float-rail {
gap: 0;
border-radius: 0;
background-color: rgb(255 255 255 / 0.94);
backdrop-filter: blur(12px);
box-shadow: var(--shadow-surface-hover);
border-bottom: 1px solid var(--color-border-light);
}
.nav-axis {
position: absolute;
left: 0;
right: 0;
top: 50%;
z-index: 0;
height: 2px;
background-color: var(--color-nav-axis);
opacity: 1;
pointer-events: none;
transform: translateY(-50%);
transition: opacity 0.28s ease;
}
.nav-float--docked .nav-axis {
opacity: 0;
}
.nav-axis--desktop {
display: none;
}
@media (width >= 992px) {
.nav-axis--desktop {
display: block;
}
}
.nav-island {
position: relative;
z-index: 1;
box-sizing: border-box;
display: flex;
height: 52px;
min-height: 52px;
align-items: center;
background-color: rgb(255 255 255 / 0.92);
backdrop-filter: blur(10px);
border: none;
border-radius: 12px;
box-shadow: var(--shadow-surface-hover);
transition:
border-radius 0.38s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1),
background-color 0.38s ease;
}
.nav-float--docked .nav-island {
border-radius: 0;
box-shadow: none;
background-color: transparent;
backdrop-filter: none;
}
@media (prefers-reduced-motion: reduce) {
.nav-float,
.nav-float-rail,
.nav-island,
.nav-axis {
transition: none;
}
}
.nav-island > * {
position: relative;
z-index: 1;
}
/* 仅用 rail 内一条横轴连线card 边缘伪元素短线已去掉,避免与横轴叠成双線 */
.nav-island-logo {
flex: 1 1 auto;
min-width: 0;
padding-inline: 14px;
}
@media (width >= 768px) {
.nav-island-logo {
flex: 0 0 auto;
padding-inline: 18px;
}
}
@media (width >= 992px) {
.nav-island-logo {
padding-inline: 22px;
}
}
.site-brand-logo {
font-family: var(--font-serif);
font-weight: bold;
white-space: nowrap;
}
.nav-island-logo .site-brand-logo {
font-size: 1.0625rem;
line-height: 1;
letter-spacing: 0.02em;
}
.site-brand-lockup {
display: inline-flex;
align-items: center;
gap: 0.5rem;
line-height: 1;
}
.site-brand-lockup__img {
display: block;
flex-shrink: 0;
height: 2rem;
width: auto;
max-width: 2.75rem;
object-fit: contain;
}
@media (width >= 768px) {
.site-brand-lockup {
gap: 0.625rem;
}
.site-brand-lockup__img {
height: 2.25rem;
max-width: 3rem;
}
}
html[lang="zh-CN"] .site-brand-logo {
font-feature-settings: "palt" 1;
letter-spacing: 0.04em;
}
html[lang="zh-CN"] .nav-island-logo .site-brand-logo {
letter-spacing: 0.03em;
line-height: 1.12;
}
.nav-island-menu--desktop {
display: none;
flex: 1 1 auto;
min-width: 0;
justify-content: center;
padding-inline: 6px;
}
@media (width >= 992px) {
.nav-island-menu--desktop {
display: flex;
}
}
.nav-island-menu__list {
display: flex;
height: 100%;
width: 100%;
align-items: stretch;
justify-content: center;
flex-wrap: nowrap;
margin: 0;
padding: 0;
list-style: none;
}
.nav-island-menu__item {
display: flex;
align-items: center;
}
.nav-island-menu__item--has-menu {
position: relative;
}
.nav-island-menu__item--has-menu::after {
position: absolute;
top: 100%;
right: -10px;
left: -10px;
height: 18px;
content: "";
}
.nav-island-menu__link {
display: inline-flex;
height: 100%;
align-items: center;
gap: 6px;
padding-inline: 12px;
font-size: 13px;
line-height: 1;
letter-spacing: 0.02em;
color: var(--color-body);
text-decoration: none;
transition: color 0.2s ease;
}
.nav-island-menu__item--has-menu > .nav-island-menu__link::after {
width: 6px;
height: 6px;
border-right: 1.5px solid currentColor;
border-bottom: 1.5px solid currentColor;
content: "";
opacity: 0.72;
transform: translateY(-2px) rotate(45deg);
transition: transform 0.18s ease, opacity 0.18s ease;
}
.nav-island-menu__item--has-menu:hover > .nav-island-menu__link::after,
.nav-island-menu__item--has-menu:focus-within > .nav-island-menu__link::after {
opacity: 1;
transform: translateY(1px) rotate(225deg);
}
.nav-island-menu__link:hover {
color: var(--color-accent-ink);
text-decoration: none;
}
.nav-dropdown {
position: absolute;
top: calc(100% + 8px);
left: 50%;
z-index: 10;
display: grid;
width: max-content;
min-width: 220px;
gap: 2px;
padding: var(--spacing-sm);
border-radius: var(--radius-md);
background-color: rgb(255 255 255 / 0.96);
box-shadow: var(--shadow-surface-hover);
opacity: 0;
pointer-events: none;
transform: translate(-50%, -4px);
visibility: hidden;
transition:
opacity 0.18s ease 0.12s,
transform 0.18s ease 0.12s,
visibility 0s linear 0.3s;
}
.nav-island-menu__item--has-menu:hover .nav-dropdown,
.nav-island-menu__item--has-menu:focus-within .nav-dropdown {
opacity: 1;
pointer-events: auto;
transform: translate(-50%, 0);
visibility: visible;
transition-delay: 0.04s, 0.04s, 0s;
}
.nav-dropdown__link {
display: block;
padding: 10px var(--spacing-lg);
border-radius: var(--radius-sm);
color: var(--color-ink);
font-size: 13px;
line-height: 1.25;
letter-spacing: 0.02em;
text-decoration: none;
white-space: nowrap;
transition:
background-color 0.15s ease,
color 0.15s ease;
}
.nav-dropdown__link:hover {
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
text-decoration: none;
}
.nav-island-actions {
flex-shrink: 0;
gap: 4px;
padding-inline: 6px;
}
@media (width >= 768px) {
.nav-island-actions {
gap: 6px;
padding-inline: 8px;
}
}
.nav-island-actions__service {
display: none;
padding: 0 12px;
min-height: 36px;
height: 36px;
font-size: 13px;
}
@media (width >= 992px) {
.nav-island-actions__service {
display: inline-flex;
}
}
.nav-island-actions .btn-primary,
.nav-island-actions .btn-ghost,
.nav-menu-toggle {
min-height: 36px;
height: 36px;
padding: 0 12px;
font-size: 13px;
line-height: 1;
}
@media (width >= 768px) {
.nav-island-actions .btn-primary,
.nav-island-actions .btn-ghost {
padding: 0 16px;
}
}
.nav-menu-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--font-display);
font-size: 13px;
font-weight: 500;
letter-spacing: 0.04em;
color: var(--color-accent-ink);
background-color: var(--color-canvas-muted);
border: none;
border-radius: var(--radius-md);
box-shadow: var(--shadow-field);
cursor: pointer;
transition:
background-color 0.15s ease,
box-shadow 0.15s ease;
}
.nav-menu-toggle:hover {
background-color: var(--color-accent-wash);
box-shadow: var(--shadow-surface);
}
@media (width >= 992px) {
.nav-menu-toggle {
display: none;
}
}
.nav-mobile-drawer {
display: none;
border-radius: 12px;
background-color: rgb(255 255 255 / 0.96);
backdrop-filter: blur(12px);
box-shadow: var(--shadow-surface-hover);
padding: var(--spacing-md);
}
.nav-mobile-drawer.is-open {
display: block;
}
@media (width >= 992px) {
.nav-mobile-drawer {
display: none !important;
}
}
.nav-mobile-drawer__list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 2px;
}
.nav-mobile-drawer__link {
display: block;
padding: var(--spacing-md) var(--spacing-lg);
font-size: 15px;
line-height: 1.4;
letter-spacing: 0.02em;
color: var(--color-ink);
text-decoration: none;
border-radius: var(--radius-sm);
transition: background-color 0.15s ease;
}
.nav-mobile-drawer__link:hover {
background-color: var(--color-accent-wash);
text-decoration: none;
}
.nav-mobile-drawer__sublist {
display: flex;
flex-direction: column;
gap: 2px;
margin: 0 0 var(--spacing-xs);
padding: 0 0 0 var(--spacing-lg);
list-style: none;
}
.nav-mobile-drawer__sublink {
display: block;
padding: 9px var(--spacing-lg);
border-radius: var(--radius-sm);
color: var(--color-body);
font-size: 14px;
line-height: 1.35;
text-decoration: none;
transition:
background-color 0.15s ease,
color 0.15s ease;
}
.nav-mobile-drawer__sublink:hover {
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
text-decoration: none;
}
.nav-mobile-drawer__cta-row {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
margin-top: var(--spacing-md);
padding-top: var(--spacing-md);
border-top: none;
box-shadow: inset 0 1px 0 var(--color-hairline);
}
.btn-sm {
min-height: 34px;
padding: 7px var(--spacing-lg);
font-size: 13px;
border-radius: var(--radius-sm);
}
.btn-outline:disabled {
color: var(--color-body-light);
background-color: var(--color-canvas-muted);
box-shadow: none;
cursor: not-allowed;
opacity: 0.7;
}
.btn-outline:disabled:hover {
transform: none;
background-color: var(--color-canvas-muted);
box-shadow: none;
}
.skill-marketplace {
display: flex;
flex-direction: column;
gap: var(--spacing-3xl);
}
.skill-marketplace__toolbar {
display: flex;
flex-direction: column;
gap: var(--spacing-xl);
align-items: flex-start;
}
@media (width >= 768px) {
.skill-marketplace__toolbar {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
}
.skill-marketplace__categories {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
}
.skill-category-chip {
display: inline-flex;
align-items: center;
gap: var(--spacing-xs);
font-family: var(--font-display);
font-size: 13px;
font-weight: 500;
line-height: 1;
color: var(--color-body);
background-color: var(--color-canvas);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-full);
padding: 8px var(--spacing-lg);
cursor: pointer;
transition:
color 0.2s ease,
background-color 0.2s ease,
border-color 0.2s ease;
}
.skill-category-chip:hover {
color: var(--color-accent-ink);
border-color: var(--color-accent-border);
}
.skill-category-chip--active {
color: var(--color-on-primary);
background-color: var(--color-ink);
border-color: var(--color-ink);
}
.skill-category-chip--active:hover {
color: var(--color-on-primary);
}
.skill-category-chip__emoji {
font-size: 14px;
line-height: 1;
}
.skill-category-chip__count {
font-family: var(--font-mono-caps);
font-size: 11px;
font-weight: 500;
color: inherit;
opacity: 0.7;
margin-left: var(--spacing-xxs);
}
.skill-marketplace__search {
width: 100%;
max-width: 280px;
}
@media (width < 768px) {
.skill-marketplace__search {
max-width: 100%;
}
}
.skill-search-input {
width: 100%;
font-family: var(--font-display);
font-size: 14px;
color: var(--color-ink);
background-color: var(--color-canvas);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-md);
padding: 9px var(--spacing-lg);
min-height: 38px;
box-shadow: var(--shadow-field);
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
}
.skill-search-input::placeholder {
color: var(--color-body-light);
}
.skill-search-input:focus {
outline: none;
border-color: var(--color-accent-border);
box-shadow: var(--shadow-field-focus);
}
.skill-marketplace__grid {
display: grid;
gap: var(--spacing-xl);
grid-template-columns: 1fr;
}
@media (width >= 768px) {
.skill-marketplace__grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (width >= 1024px) {
.skill-marketplace__grid {
grid-template-columns: repeat(3, 1fr);
}
}
.skill-marketplace__empty {
text-align: center;
padding: var(--spacing-5xl) var(--spacing-lg);
}
.skill-card {
position: relative;
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
height: 100%;
border-radius: var(--radius-md);
padding: var(--spacing-2xl);
background-color: var(--color-canvas);
color: var(--color-ink);
border: 1px solid var(--color-hairline);
box-shadow: var(--shadow-surface);
transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.skill-card:hover {
box-shadow: var(--shadow-surface-hover);
transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
.skill-card:hover {
transform: none;
}
}
.skill-card__head {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.skill-card__title {
font-size: 18px;
line-height: 1.35;
}
.skill-card__slug {
font-family: var(--font-mono-caps);
font-size: 11px;
font-weight: 500;
line-height: 1;
letter-spacing: 0.04em;
color: var(--color-accent-soft);
background-color: var(--color-accent-wash);
border-radius: var(--radius-xs);
padding: 4px var(--spacing-sm);
align-self: flex-start;
}
.skill-card__body {
font-size: 13.5px;
line-height: 1.65;
flex: 1;
display: -webkit-box;
-webkit-line-clamp: 4;
line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
}
.skill-card__cta {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
margin-top: auto;
padding-top: var(--spacing-sm);
}
/* ===== 怎么使用 SKILL ===== */
.skill-howto {
display: flex;
flex-direction: column;
gap: var(--spacing-3xl);
}
.skill-howto__head {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
max-width: 720px;
}
.skill-howto__title {
font-size: clamp(24px, 3vw, 34px);
line-height: 1.2;
}
.skill-howto__subtitle {
color: var(--color-body);
}
.skill-howto__layout {
display: grid;
gap: var(--spacing-3xl);
grid-template-columns: 1fr;
align-items: start;
}
@media (width >= 960px) {
.skill-howto__layout {
grid-template-columns: 1fr 1fr;
gap: var(--spacing-4xl);
}
}
.skill-howto__steps {
display: flex;
flex-direction: column;
gap: var(--spacing-2xl);
margin: 0;
padding: 0;
list-style: none;
}
.skill-howto-step {
display: flex;
gap: var(--spacing-lg);
}
.skill-howto-step__no {
font-family: var(--font-mono-caps);
font-size: 12px;
font-weight: 500;
line-height: 1;
letter-spacing: 0.06em;
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
border-radius: var(--radius-full);
width: 32px;
height: 32px;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
}
.skill-howto-step__copy {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
padding-top: 3px;
}
.skill-howto-step__title {
font-size: 15px;
}
.skill-howto-step__desc {
font-size: 13.5px;
line-height: 1.65;
}
.skill-howto-config {
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
}
.skill-howto-config__intro {
font-size: 13.5px;
line-height: 1.65;
margin: 0;
}
/* ===== 可折叠代码面板(仿企查查) ===== */
.skill-code-block {
border: 1px solid var(--color-hairline);
border-radius: var(--radius-md);
background-color: var(--color-canvas-muted);
overflow: hidden;
box-shadow: var(--shadow-field);
}
.skill-code-block__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--spacing-md);
padding: var(--spacing-sm) var(--spacing-md);
background-color: var(--color-canvas);
border-bottom: 1px solid var(--color-hairline);
}
.skill-code-block__filename {
display: inline-flex;
align-items: center;
gap: var(--spacing-sm);
font-family: var(--font-mono-caps);
font-size: 12px;
font-weight: 500;
letter-spacing: 0.04em;
color: var(--color-ink-soft);
}
.skill-code-block__dot {
width: 8px;
height: 8px;
border-radius: var(--radius-full);
background-color: var(--color-accent-ink);
flex-shrink: 0;
}
.skill-code-block__actions {
display: inline-flex;
align-items: center;
gap: var(--spacing-xs);
}
.skill-code-block__btn {
display: inline-flex;
align-items: center;
gap: var(--spacing-xs);
font-family: var(--font-display);
font-size: 12px;
font-weight: 500;
line-height: 1;
color: var(--color-body);
background-color: transparent;
border: 1px solid transparent;
border-radius: var(--radius-sm);
padding: 6px var(--spacing-sm);
cursor: pointer;
transition:
color 0.2s ease,
background-color 0.2s ease,
border-color 0.2s ease;
}
.skill-code-block__btn:hover {
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
}
.skill-code-block__btn--toggle {
color: var(--color-accent-ink);
}
.skill-code-block__chevron {
transition: transform 0.2s ease;
}
.skill-code-block[data-open="true"] .skill-code-block__chevron {
transform: rotate(180deg);
}
.skill-code-block__pre {
margin: 0;
padding: var(--spacing-lg) var(--spacing-md);
overflow-x: auto;
font-family: var(--font-mono-caps);
font-size: 12.5px;
line-height: 1.75;
color: var(--color-ink-soft);
}
.skill-code-block__pre code {
font-family: inherit;
white-space: pre;
}
.skill-howto-config__apps {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--spacing-sm);
margin: 0;
}
.skill-howto-config__apps-label {
font-family: var(--font-mono-caps);
font-size: 11px;
letter-spacing: 0.06em;
color: var(--color-body-light);
}
.skill-howto-config__app {
font-size: 12px;
color: var(--color-ink-soft);
background-color: var(--color-canvas);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-full);
padding: 4px var(--spacing-md);
}
.skill-howto-config__soon {
margin: 0;
}
/* ===== SKILL 详情页 ===== */
.skill-detail {
display: flex;
flex-direction: column;
gap: var(--spacing-2xl);
max-width: 880px;
margin: 0 auto;
width: 100%;
}
.skill-detail__crumbs ol {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--spacing-xs);
list-style: none;
margin: 0;
padding: 0;
font-family: var(--font-mono-caps);
font-size: 12px;
letter-spacing: 0.08em;
color: var(--color-body-light);
text-transform: uppercase;
}
.skill-detail__crumbs a {
color: var(--color-body-light);
text-decoration: none;
transition: color 0.2s ease;
}
.skill-detail__crumbs a:hover {
color: var(--color-accent-ink);
}
.skill-detail__crumbs li[aria-current="page"] {
color: var(--color-ink);
}
.skill-detail__head {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
}
.skill-detail__title {
margin: 0;
}
.skill-detail__lead {
margin: 0;
}
.skill-detail__tabs {
display: flex;
gap: var(--spacing-xs);
border-bottom: 1px solid var(--color-hairline);
padding: 0;
}
.skill-detail__tab {
font-family: var(--font-display);
font-size: 15px;
font-weight: 500;
color: var(--color-body-light);
background: transparent;
border: none;
border-bottom: 2px solid transparent;
padding: var(--spacing-sm) var(--spacing-lg);
margin-bottom: -1px;
cursor: pointer;
transition:
color 0.2s ease,
border-color 0.2s ease;
}
.skill-detail__tab:hover {
color: var(--color-ink-soft);
}
.skill-detail__tab--active {
color: var(--color-accent-ink);
border-bottom-color: var(--color-accent-ink);
}
.skill-detail__panel {
min-height: 320px;
}
/* 在线运行 */
.skill-run {
display: flex;
flex-direction: column;
gap: var(--spacing-xl);
}
.skill-run__head {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.skill-run__title {
margin: 0;
}
.skill-run__hint {
margin: 0;
}
.skill-run__field {
position: relative;
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.skill-run__label {
margin: 0;
}
.skill-run__input {
font-family: var(--font-display);
font-size: 15px;
color: var(--color-ink);
background-color: var(--color-canvas);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-md);
padding: 14px var(--spacing-xl);
padding-right: 44px;
box-shadow: var(--shadow-field);
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
outline: none;
width: 100%;
}
.skill-run__input:focus {
border-color: var(--color-accent-ink);
box-shadow: var(--shadow-field-focus);
}
.skill-run__clear {
position: absolute;
right: var(--spacing-sm);
bottom: 9px;
width: 28px;
height: 28px;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 18px;
line-height: 1;
color: var(--color-body-light);
background: transparent;
border: none;
border-radius: 50%;
cursor: pointer;
transition: color 0.2s ease, background-color 0.2s ease;
}
.skill-run__clear:hover {
color: var(--color-ink);
background-color: var(--color-canvas-muted);
}
.skill-run__go {
align-self: flex-start;
}
.skill-run__note {
margin: 0;
}
/* 安装方式 */
.skill-install {
display: flex;
flex-direction: column;
gap: var(--spacing-3xl);
}
.skill-install__step {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
}
.skill-install__title,
.skill-install__subtitle {
margin: 0;
}
.skill-install__desc {
margin: 0;
}
.skill-install__guide-link {
color: var(--color-accent-ink);
text-decoration: none;
font-weight: 500;
transition: opacity 0.2s ease;
}
.skill-install__guide-link:hover {
opacity: 0.85;
text-decoration: underline;
}
.skill-install__method {
display: flex;
flex-direction: column;
gap: var(--spacing-md);
padding: var(--spacing-lg);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-md);
background-color: var(--color-canvas);
}
.skill-install__method-head {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--spacing-sm);
}
.skill-install__method-title {
margin: 0;
}
.skill-install__badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: var(--radius-full);
font-size: 11px;
font-weight: 600;
line-height: 1.4;
color: var(--color-accent-ink);
background-color: var(--color-accent-wash);
border: 1px solid color-mix(in srgb, var(--color-accent-ink) 18%, transparent);
}
.skill-install__download {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--spacing-md);
flex-wrap: wrap;
padding: var(--spacing-md);
border: 1px solid var(--color-hairline);
border-radius: var(--radius-sm);
background-color: var(--color-canvas-muted);
}
.skill-install__download-name {
font-family: var(--font-mono-caps);
letter-spacing: 0.04em;
}
.skill-install__quote {
margin: 0;
padding: var(--spacing-md) var(--spacing-lg);
border-left: 3px solid var(--color-accent-ink);
background-color: var(--color-canvas-muted);
border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
line-height: 1.65;
}
.skill-code-block__pre--text {
white-space: pre-wrap;
word-break: break-word;
}
/* 示例报告 */
.skill-example {
display: flex;
flex-direction: column;
gap: var(--spacing-xl);
}
.skill-example__content {
display: flex;
flex-direction: column;
gap: var(--spacing-2xl);
}
.skill-example__head {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.skill-example__title {
margin: 0;
}
.skill-example__sections {
display: flex;
flex-direction: column;
gap: var(--spacing-xl);
}
.skill-example__section {
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
padding-bottom: var(--spacing-xl);
border-bottom: 1px solid var(--color-hairline);
}
.skill-example__section:last-child {
border-bottom: none;
padding-bottom: 0;
}
.skill-example__section-title {
margin: 0;
}
.skill-example__bullets {
margin: 0;
padding-left: var(--spacing-xl);
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.skill-example__bullets li {
color: var(--color-body);
font-size: 15px;
line-height: 1.6;
}
.skill-example__empty {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--spacing-lg);
padding: var(--spacing-2xl);
background-color: var(--color-canvas-muted);
border-radius: var(--radius-md);
}
.skill-example__empty p {
margin: 0;
}
/* 卡片标题链接 */
.skill-card__title-link {
color: inherit;
text-decoration: none;
transition: color 0.2s ease;
}
.skill-card__title-link:hover {
color: var(--color-accent-ink);
}
@media (max-width: 640px) {
.skill-detail {
gap: var(--spacing-xl);
}
.skill-detail__tab {
padding: var(--spacing-sm) var(--spacing-md);
font-size: 14px;
}
.skill-install {
gap: var(--spacing-2xl);
}
}
}